{"version":3,"sources":["webpack:///./modules/HeaderInfoBar.ts"],"names":["__webpack_require__","r","__webpack_exports__","_TrackingGA4__WEBPACK_IMPORTED_MODULE_0__","HeaderInfoBar","element","_this","this","document","querySelector","classList","add","dataShownCookie","getAttribute","closeBtn","promotionLink","isPromotionBanner","contains","hasParentContainer","parentElement","id","hasAttribute","setAttribute","viewPromotionEvent","addEventListener","remove","hidePromotionBanner","setSessionParameter","selectPromotionEvent","setup","selector","Array","from","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","closePromotionEvent","Object","cookie"],"mappings":"2FAAAA,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,IAGAI,EAAA,WAaI,SAAAA,EAAmBC,GAAnB,IAAAC,EAAAC,KAAmBA,KAAAF,UACfG,SAASC,cAAc,QAAQC,UAAUC,IAAI,mBAC7CJ,KAAKK,gBAAkBL,KAAKF,QAAQQ,aAAa,8BACjDN,KAAKO,SAAWP,KAAKF,QAAQI,cAAc,UAC3CF,KAAKQ,cAAgBR,KAAKF,QAAQI,cAAc,gBAChDF,KAAKS,kBAAoBT,KAAKF,QAAQK,UAAUO,SAAS,oBACzDV,KAAKW,mBAAqBX,KAAKF,QAAQc,eAAmD,SAAlCZ,KAAKF,QAAQc,cAAcC,GAC/Eb,KAAKW,qBACLX,KAAKF,QAAQc,cAAcT,UAAUC,IAAI,sBACrCJ,KAAKF,QAAQgB,aAAa,WAC1Bd,KAAKF,QAAQc,cAAcG,aAAa,SAAU,KAK1Df,KAAKS,mBAAoBT,KAAKgB,qBAC9BhB,KAAKO,SAASU,iBAAiB,QAAS,WACpChB,SAASC,cAAc,QAAQC,UAAUe,OAAO,mBAChDnB,EAAKD,QAAQK,UAAUC,IAAI,UACvBL,EAAKY,oBACLZ,EAAKD,QAAQc,cAAcT,UAAUC,IAAI,UAE7CL,EAAKoB,sBACAC,wBAGTpB,KAAKQ,eAAiBR,KAAKQ,cAAcS,iBAAiB,QAAS,WAE/DlB,EAAKU,mBAAoBV,EAAKsB,yBAiC1C,OApEWxB,EAAAyB,MAAP,SAAaC,QAAA,IAAAA,MATM,iCAUfC,MAAMC,KAAKxB,SAASyB,iBAAiBH,IAAWI,OAAO,SAACC,GAAsB,OAACA,EAAKC,QAAQC,oBAAmBC,QAAQ,SAACjC,GACpH,IAAID,EAAcC,GAClBA,EAAQ+B,QAAQC,kBAAoB,UAoCpCjC,EAAAmC,UAAAb,oBAAR,WAOI,OANAnB,KAAKF,QAAQK,UAAUC,IAAI,UACvBJ,KAAKW,oBACLX,KAAKF,QAAQc,cAAcT,UAAUC,IAAI,UAG7CJ,KAAKS,mBAAoBT,KAAKiC,sBACvBjC,MAGHH,EAAAmC,UAAAC,oBAAR,WAEIC,OAAAtC,EAAA,EAAAsC,CADkB,oBAIdrC,EAAAmC,UAAAhB,mBAAR,WAEIkB,OAAAtC,EAAA,EAAAsC,CADkB,mBAIdrC,EAAAmC,UAAAX,qBAAR,WAEIa,OAAAtC,EAAA,EAAAsC,CADkB,qBAIdrC,EAAAmC,UAAAZ,oBAAR,WAEI,OADAnB,SAASkC,OAAYnC,KAAKK,gBAAe,gBAClCL,MAEfH,EA1EA,eA4EA,IAAIA,EAAcyB","file":"./modules/HeaderInfoBar.8f461332.js","sourcesContent":["const moduleSelector = '[data-module=\"HeaderInfoBar\"]';\r\nimport { promotionEvent } from '../TrackingGA4';\r\n\r\nexport default class HeaderInfoBar {\r\n closeBtn;\r\n dataShownCookie;\r\n promotionLink;\r\n isPromotionBanner;\r\n hasParentContainer;\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 HeaderInfoBar(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n document.querySelector(\"body\").classList.add(\"info-bar-opened\");\r\n this.dataShownCookie = this.element.getAttribute(\"data-info-bar-shown-cookie\");\r\n this.closeBtn = this.element.querySelector(\".close\");\r\n this.promotionLink = this.element.querySelector(\".promotion a\");\r\n this.isPromotionBanner = this.element.classList.contains(\"promotion-banner\");\r\n this.hasParentContainer = this.element.parentElement && this.element.parentElement.id !== \"site\";\r\n if (this.hasParentContainer) {\r\n this.element.parentElement.classList.add(\"info-bar-container\")\r\n if (this.element.hasAttribute(\"hidden\")) {\r\n this.element.parentElement.setAttribute(\"hidden\", \"\")\r\n }\r\n }\r\n\r\n //GA4 Promotion View\r\n this.isPromotionBanner ? this.viewPromotionEvent() : \"\";\r\n this.closeBtn.addEventListener('click', () => {\r\n document.querySelector(\"body\").classList.remove(\"info-bar-opened\");\r\n this.element.classList.add(\"hidden\");\r\n if (this.hasParentContainer) {\r\n this.element.parentElement.classList.add(\"hidden\");\r\n }\r\n this.hidePromotionBanner()\r\n .setSessionParameter();\r\n })\r\n\r\n this.promotionLink && this.promotionLink.addEventListener('click', () => {\r\n //GA4 Promotion Select\r\n this.isPromotionBanner ? this.selectPromotionEvent() :\"\";\r\n })\r\n }\r\n\r\n private hidePromotionBanner(): HeaderInfoBar {\r\n this.element.classList.add(\"hidden\");\r\n if (this.hasParentContainer) {\r\n this.element.parentElement.classList.add(\"hidden\");\r\n }\r\n //GA4 Promotion Close\r\n this.isPromotionBanner ? this.closePromotionEvent() : \"\";\r\n return this;\r\n }\r\n\r\n private closePromotionEvent() {\r\n const eventName = \"close_promotion\"\r\n promotionEvent(eventName);\r\n }\r\n\r\n private viewPromotionEvent() {\r\n const eventName = \"view_promotion\"\r\n promotionEvent(eventName);\r\n }\r\n\r\n private selectPromotionEvent() {\r\n const eventName = \"select_promotion\"\r\n promotionEvent(eventName);\r\n }\r\n\r\n private setSessionParameter(): HeaderInfoBar {\r\n document.cookie = `${this.dataShownCookie}=true; path=/`;\r\n return this;\r\n }\r\n}\r\n\r\nnew HeaderInfoBar.setup();"],"sourceRoot":""}