{"version":3,"file":"Modal-6e0b9a9a.js","names":["define","Moduler","create","defaults","event","contentElement","replaceHtmlAfterClose","activeCssClass","openOnLoad","closeOnOverlay","cookieName","cookieExpiresIn","init","self","this","document","querySelector","options","contentElementHtml","innerHTML","initEvents","el","addEventListener","e","preventDefault","openDialog","closeLink","closeDialog","acceptAndCloseLink","setCookie","target","matches","parentElement","body","removeChild","appendChild","classList","add","CustomEvent","dispatchEvent","focus","closeOnEsc","key","removeEventListener","remove","loadModules","date","Date","expires","setTime","getTime","toUTCString","cookie"],"sources":["Modal.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC1B,aAEA,OAAOA,EAAQC,OAAO,CAClBC,SAAU,CACNC,MAAO,QACPC,eAAgB,KAChBC,uBAAuB,EACvBC,eAAgB,YAChBC,YAAY,EACZC,gBAAgB,EAChBC,WAAY,KACZC,gBAAiB,MAGrBC,KAAM,WACF,IAAIC,EAAOC,KAEXD,EAAKR,eAAiBU,SAASC,cAAcH,EAAKI,QAAQZ,gBAE1DQ,EAAKK,mBAAqBL,EAAKR,eAAec,UAE9CL,KAAKM,YACT,EAEAA,WAAY,WACR,IAAIP,EAAOC,KAGND,EAAKI,QAAQT,YACdK,EAAKQ,GAAGC,iBAAiBT,EAAKI,QAAQb,OAAO,SAAUmB,GACnDA,EAAEC,iBACFX,EAAKY,YACT,IAIJ,IAAIC,EAAYb,EAAKR,eAAeW,cAAc,aACjC,MAAbU,GACAA,EAAUJ,iBAAiB,SAAS,SAAUC,GAC1CA,EAAEC,iBACFX,EAAKc,aACT,IAIJ,IAAIC,EAAqBf,EAAKR,eAAeW,cAAc,sBACjC,MAAtBY,GACAA,EAAmBN,iBAAiB,SAAS,SAAUC,GACnDA,EAAEC,iBACFX,EAAKgB,YACLhB,EAAKc,aACT,IAIAd,EAAKI,QAAQR,gBACbI,EAAKR,eAAeiB,iBAAiB,SAAS,SAAUC,GAC/CA,EAAEO,OAAOC,QAAQ,YAItBR,EAAEC,iBACFX,EAAKc,cACT,IAGAd,EAAKI,QAAQT,YACbK,EAAKY,YAEb,EAEAA,WAAY,WACR,IAAIZ,EAAOC,KAGPD,EAAKR,eAAe2B,eAAiBjB,SAASkB,OAC9CpB,EAAKR,eAAiBQ,EAAKR,eAAe2B,cAAcE,YAAYrB,EAAKR,gBACzEU,SAASkB,KAAKE,YAAYtB,EAAKR,iBAGnCQ,EAAKR,eAAe+B,UAAUC,IAAIxB,EAAKI,QAAQV,gBAE/C,IAAIH,EAAQ,IAAIkC,YAAY,cAC5BzB,EAAKQ,GAAGkB,cAAcnC,GACtBS,EAAKR,eAAekC,cAAcnC,GAClCS,EAAKR,eAAemC,QAQpBzB,SAASO,iBAAiB,WAN1B,SAASmB,EAAWlB,GACF,WAAVA,EAAEmB,MACF3B,SAAS4B,oBAAoB,UAAWF,GACxC5B,EAAKc,cAEb,GAEJ,EAEAA,YAAa,WACT,IAAId,EAAOC,KAEXD,EAAKR,eAAe+B,UAAUQ,OAAO/B,EAAKI,QAAQV,gBAE9CM,EAAKI,QAAQX,wBACbO,EAAKR,eAAec,UAAYN,EAAKK,mBACrCjB,EAAQ4C,YAAYhC,EAAKR,iBAG7B,IAAID,EAAQ,IAAIkC,YAAY,eAC5BzB,EAAKQ,GAAGkB,cAAcnC,GACtBS,EAAKR,eAAekC,cAAcnC,EACtC,EAEAyB,UAAW,WACP,IAAIiB,EAAO,IAAIC,KACXlC,EAAOC,KAEPkC,EAAU,GACVnC,EAAKI,QAAQN,gBAAkB,IAC/BmC,EAAKG,QAAQH,EAAKI,UAA4C,GAA/BrC,EAAKI,QAAQN,gBAAuB,KACnEqC,EAAU,YAAcF,EAAKK,eAGjCpC,SAASqC,OAASvC,EAAKI,QAAQP,WAAa,QAAUsC,EAAU,yBACpE,GAER","sourcesContent":["define(['moduler'], function (Moduler) {\r\n 'use strict';\r\n\r\n return Moduler.create({\r\n defaults: {\r\n event: 'click', // the event to open the modal on\r\n contentElement: null, // selector for the Modal component\r\n replaceHtmlAfterClose: true, // if true will restore the html to the initial state\r\n activeCssClass: 'is-active',\r\n openOnLoad: false,\r\n closeOnOverlay: true,\r\n cookieName: null,\r\n cookieExpiresIn: null\r\n },\r\n\r\n init: function () {\r\n var self = this;\r\n\r\n self.contentElement = document.querySelector(self.options.contentElement);\r\n\r\n self.contentElementHtml = self.contentElement.innerHTML;\r\n\r\n this.initEvents();\r\n },\r\n\r\n initEvents: function () {\r\n var self = this;\r\n\r\n // opening the modal\r\n if (!self.options.openOnLoad) {\r\n self.el.addEventListener(self.options.event, function (e) {\r\n e.preventDefault();\r\n self.openDialog();\r\n }); \r\n }\r\n\r\n // closing window by clicking close link\r\n var closeLink = self.contentElement.querySelector('.js-close');\r\n if (closeLink != null) {\r\n closeLink.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n self.closeDialog();\r\n });\r\n }\r\n\r\n // closing window by clicking accept link\r\n var acceptAndCloseLink = self.contentElement.querySelector('.js-acceptAndClose');\r\n if (acceptAndCloseLink != null) {\r\n acceptAndCloseLink.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n self.setCookie();\r\n self.closeDialog();\r\n });\r\n }\r\n\r\n // closing window by clicking overlay\r\n if (self.options.closeOnOverlay) {\r\n self.contentElement.addEventListener('click', function (e) {\r\n if (!e.target.matches('.Modal')) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n self.closeDialog();\r\n });\r\n }\r\n\r\n if (self.options.openOnLoad) {\r\n self.openDialog();\r\n }\r\n },\r\n\r\n openDialog: function () {\r\n var self = this;\r\n\r\n // move modal element to body to avoid z-index issues.\r\n if (self.contentElement.parentElement != document.body) {\r\n self.contentElement = self.contentElement.parentElement.removeChild(self.contentElement);\r\n document.body.appendChild(self.contentElement);\r\n }\r\n\r\n self.contentElement.classList.add(self.options.activeCssClass);\r\n\r\n var event = new CustomEvent('modal-open');\r\n self.el.dispatchEvent(event);\r\n self.contentElement.dispatchEvent(event);\r\n self.contentElement.focus();\r\n\r\n function closeOnEsc(e) {\r\n if (e.key === \"Escape\") {\r\n document.removeEventListener('keydown', closeOnEsc);\r\n self.closeDialog();\r\n }\r\n }\r\n document.addEventListener('keydown', closeOnEsc);\r\n },\r\n\r\n closeDialog: function () {\r\n var self = this;\r\n\r\n self.contentElement.classList.remove(self.options.activeCssClass);\r\n\r\n if (self.options.replaceHtmlAfterClose) {\r\n self.contentElement.innerHTML = self.contentElementHtml;\r\n Moduler.loadModules(self.contentElement);\r\n }\r\n\r\n var event = new CustomEvent('modal-close');\r\n self.el.dispatchEvent(event);\r\n self.contentElement.dispatchEvent(event);\r\n },\r\n\r\n setCookie: function () {\r\n var date = new Date(),\r\n self = this;\r\n\r\n var expires = '';\r\n if (self.options.cookieExpiresIn > 0) {\r\n date.setTime(date.getTime() + (self.options.cookieExpiresIn * 60 * 1000));\r\n expires = ';expires=' + date.toUTCString();\r\n }\r\n\r\n document.cookie = self.options.cookieName + '=seen' + expires + ';SameSite=Strict;path=/';\r\n },\r\n });\r\n});"]}