{"version":3,"sources":["webpack:///./modules/LegalDisclaimer.ts"],"names":["__webpack_require__","r","__webpack_exports__","uikit__WEBPACK_IMPORTED_MODULE_0__","uikit__WEBPACK_IMPORTED_MODULE_0___default","n","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_1__","LegalDisclaimer","element","this","excludedUris","dataset","init","initModal","setup","selector","Array","from","document","querySelectorAll","filter","node","moduleInitialized","forEach","prototype","_this","addEventListener","e","onLinkClicked","modal","getModal","a","Object","target","legalDisclaimer","querySelector","closeBtn","link","findLink","isExternal","indexOf","window","location","hostname","url","URL","preventDefault","updateModal","modal_1","show","style","display","body","setAttribute","tagName","href","parentElement"],"mappings":"2FAAAA,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,KAAAI,EAAAJ,EAAAK,EAAAF,GAAAG,EAAAN,EAAA,GAKAO,EAAA,WAWI,SAAAA,EAAmBC,GAAAC,KAAAD,UACfC,KAAKC,aAAeF,EAAQG,QAAQD,aACpCD,KAAKG,OACAC,YAyEb,OAnFWN,EAAAO,MAAP,SAAaC,QAAA,IAAAA,MAPM,mCAQfC,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,OAAO,SAACC,GAAsB,OAACA,EAAKV,QAAQW,oBAAmBC,QAAQ,SAACf,GACpH,IAAID,EAAgBC,GACpBA,EAAQG,QAAQW,kBAAoB,UAUpCf,EAAAiB,UAAAZ,KAAR,eAAAa,EAAAhB,KAEI,OADAS,SAASQ,iBAAiB,QAAS,SAACC,GAAM,OAAAF,EAAKG,cAAcD,KAAI,GAC1DlB,MAGHF,EAAAiB,UAAAX,UAAR,WACI,IAAMgB,EAAqBpB,KAAKqB,WAEhC,OADA1B,EAAA2B,EAAMF,MAAMA,MACLpB,MAGHF,EAAAiB,UAAAI,cAAR,SAAsBD,GAClB,IAAIK,OAAA1B,EAAA,EAAA0B,CAASL,EAAEM,OAAQ,cAAvB,CAEA,IAAMC,EAAkBhB,SAASiB,cAAc,wBACzCC,EAAWlB,SAASiB,cAAc,2BAClCN,EAAQX,SAASiB,cAAc,oBAC/BE,EAAe5B,KAAK6B,SAASX,EAAEM,QACrC,GAAY,MAARI,EAAJ,CAGA,IAAME,GAAgD,IAA1BF,EAAKG,QAAQ,UAA8D,IAA5CH,EAAKG,QAAQC,OAAOC,SAASC,UACpFC,EAAM,IAAIC,IAAIR,GAClB,GAAIE,IAA2D,IAA7C9B,KAAKC,aAAa8B,QAAQI,EAAID,UAAkB,CAE9D,GADAhB,EAAEmB,iBACErC,KAAKsC,YAAYV,GAAO,CACxB,IAAMW,EAAqBvC,KAAKqB,WAChC1B,EAAA2B,EAAMF,MAAMmB,GAAOC,OACnBf,EAAgBgB,MAAMC,QAAU,QAEpCf,EAASV,iBAAiB,QAAS,WAC/BQ,EAAgBgB,MAAMC,QAAU,SAIpCjC,SAASkC,KAAK1B,iBAAiB,QAAS,SAACC,GACjCA,EAAEM,SAAWC,GAAmBP,EAAEM,SAAWJ,IAC7CK,EAAgBgB,MAAMC,QAAU,cAMxC5C,EAAAiB,UAAAM,SAAR,WACI,OAAoBZ,SAASiB,cAAc,yBAGvC5B,EAAAiB,UAAAuB,YAAR,SAAoBH,GAChB,IAAMpC,EAAuBC,KAAKqB,WAClC,IAAKtB,EACD,OAAO,EAEX,IAAM6B,EAAiC7B,EAAQ2B,cAAc,eAC7D,QAAKE,IAGLA,EAAKgB,aAAa,OAAQT,IACnB,IAGHrC,EAAAiB,UAAAc,SAAR,SAAiBX,GACb,MAAkB,MAAdA,EAAE2B,SAAmB3B,EAAE4B,KAChB5B,EAAE4B,KACF5B,EAAE6B,cACF/C,KAAK6B,SAASX,EAAE6B,eAEhB,MAInBjD,EAvFA,eAyFA,IAAIA,EAAgBO","file":"./modules/LegalDisclaimer.fde8a314.js","sourcesContent":["import UIkit from 'uikit';\r\nimport { hasClass } from \"../helpers/DOMHelpers\";\r\nconst moduleSelector = '[data-module=\"LegalDisclaimer\"]';\r\n\r\n\r\nexport default class LegalDisclaimer {\r\n\r\n private excludedUris: string;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new LegalDisclaimer(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.excludedUris = element.dataset.excludedUris;\r\n this.init()\r\n .initModal();\r\n }\r\n\r\n private init(): LegalDisclaimer {\r\n document.addEventListener('click', (e) => this.onLinkClicked(e), false);\r\n return this;\r\n }\r\n\r\n private initModal(): LegalDisclaimer {\r\n const modal: HTMLElement = this.getModal();\r\n UIkit.modal(modal, { });\r\n return this;\r\n }\r\n\r\n private onLinkClicked(e: Event): void {\r\n if (hasClass(e.target, \"go-to-link\"))\r\n return;\r\n const legalDisclaimer = document.querySelector(\".external-link-popup\") as HTMLElement;\r\n const closeBtn = document.querySelector(\".uk-modal-close-default\") as HTMLElement;\r\n const modal = document.querySelector(\".uk-modal-dialog\") as HTMLElement;\r\n const link: string = this.findLink(e.target);\r\n if (link == null)\r\n return;\r\n\r\n const isExternal: boolean = link.indexOf(\"http\") !== -1 && link.indexOf(window.location.hostname) === -1,\r\n url = new URL(link);\r\n if (isExternal && this.excludedUris.indexOf(url.hostname) === -1) {\r\n e.preventDefault();\r\n if (this.updateModal(link)) {\r\n const modal: HTMLElement = this.getModal();\r\n UIkit.modal(modal).show();\r\n legalDisclaimer.style.display = \"block\";\r\n }\r\n closeBtn.addEventListener(\"click\", () => {\r\n legalDisclaimer.style.display = \"none\";\r\n\r\n\r\n });\r\n document.body.addEventListener(\"click\", (e) => {\r\n if (e.target === legalDisclaimer && e.target !== modal) {\r\n legalDisclaimer.style.display = 'none';\r\n }\r\n })\r\n }\r\n }\r\n\r\n private getModal(): HTMLElement {\r\n return document.querySelector('.external-link-popup');\r\n }\r\n\r\n private updateModal(url: string): boolean {\r\n const element: HTMLElement = this.getModal();\r\n if (!element)\r\n return false;\r\n\r\n const link: HTMLElement = element.querySelector('.go-to-link');\r\n if (!link)\r\n return false;\r\n\r\n link.setAttribute('href', url);\r\n return true;\r\n }\r\n\r\n private findLink(e:any):string|null {\r\n if (e.tagName === 'A' && e.href) {\r\n return e.href;\r\n } else if (e.parentElement) {\r\n return this.findLink(e.parentElement);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n\r\nnew LegalDisclaimer.setup();"],"sourceRoot":""}