{"version":3,"sources":["webpack:///./modules/VariantSelector.ts"],"names":["__webpack_require__","r","__webpack_exports__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_0__","VariantSelector","element","this","addEventListeners","positionCloseButton","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","_this","variantSelectorTitle","querySelector","variantSelectorItems","closeButtonMobile","addEventListener","classList","toggle","Eucerin","isMobile","body","remove","unlockBody","item","event","currentTarget","contains","preventDefault","window","Object","onResize","getDropdonwnHeight","height","clientHeight","style","bottom","isVariantSelectorOpen","lockBody","add"],"mappings":"2FAAAA,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAGAI,EAAA,WAUI,SAAAA,EAAmBC,GAAAC,KAAAD,UACfC,KAAKC,oBACLD,KAAKE,sBAoEb,OA7EWJ,EAAAK,MAAP,SAAaC,QAAA,IAAAA,MALM,mCAMfC,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,OAAO,SAACC,GAAsB,OAACA,EAAKC,QAAQC,oBAAmBC,QAAQ,SAACd,GACpH,IAAID,EAAgBC,GACpBA,EAAQY,QAAQC,kBAAoB,UASpCd,EAAAgB,UAAAb,kBAAR,eAAAc,EAAAf,KACUgB,EAAuBhB,KAAKD,QAAQkB,cAAc,4BACpDC,EAAuBlB,KAAKD,QAAQS,iBAAiB,2BAEzDR,KAAKmB,kBAAiCnB,KAAKD,QAAQkB,cAAc,cAEjED,EAAqBI,iBAAiB,QAAS,WAC3CL,EAAKhB,QAAQsB,UAAUC,OAAO,8BAE1BC,QAAQC,UACRjB,SAASkB,KAAKJ,UAAUC,OAAO,iBAIvCtB,KAAKmB,kBAAkBC,iBAAiB,QAAS,WAC7CL,EAAKhB,QAAQsB,UAAUK,OAAO,8BAC9BX,EAAKY,eAGTT,EAAqBL,QAAQ,SAACe,GAC1BA,EAAKR,iBAAiB,QAAS,SAACS,GACAA,EAAMC,cACvBT,UAAUU,SAAS,WAC1BF,EAAMG,qBAKlBC,OAAOb,iBAAiB,SAAUc,OAAArC,EAAA,EAAAqC,CAAS,WAAM,OAAAnB,EAAKoB,YAAY,OAG9DrC,EAAAgB,UAAAsB,mBAAR,WACI,IACIC,EAAS,EAIb,OALcrC,KAAKD,QAAQS,iBAAiB,2BAGtCK,QAAQ,SAAAe,GAAQ,OAAAS,GAAUT,EAAKU,eAE9BD,GAGHvC,EAAAgB,UAAAZ,oBAAR,WACIF,KAAKmB,kBAAkBoB,MAAMC,OAAYxC,KAAKoC,qBAAuB,GAAE,MAGnEtC,EAAAgB,UAAAqB,SAAR,WACI,IAAMM,EAAwBzC,KAAKD,QAAQsB,UAAUU,SAAS,8BAE9D/B,KAAKE,uBAEAqB,QAAQC,UAAYiB,GACrBzC,KAAK2B,aAGLJ,QAAQC,UAAYiB,GACpBzC,KAAK0C,YAIL5C,EAAAgB,UAAAa,WAAR,WACIpB,SAASkB,KAAKJ,UAAUK,OAAO,gBAG3B5B,EAAAgB,UAAA4B,SAAR,WACInC,SAASkB,KAAKJ,UAAUsB,IAAI,gBAEpC7C,EAhFA,eAkFA,IAAIA,EAAgBK","file":"./modules/VariantSelector.a472d4ca.js","sourcesContent":["import { debounce } from \"../helpers/helperFunctions\";\r\nconst moduleSelector = '[data-module=\"VariantSelector\"]';\r\n\r\nexport default class VariantSelector {\r\n closeButtonMobile: HTMLElement;\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 VariantSelector(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.addEventListeners();\r\n this.positionCloseButton();\r\n }\r\n\r\n private addEventListeners() {\r\n const variantSelectorTitle = this.element.querySelector('.variant-selector__title'),\r\n variantSelectorItems = this.element.querySelectorAll('.variant-selector__item');\r\n\r\n this.closeButtonMobile = this.element.querySelector('.close-btn');\r\n\r\n variantSelectorTitle.addEventListener('click', () => {\r\n this.element.classList.toggle('variant-selector__expanded');\r\n\r\n if (Eucerin.isMobile) {\r\n document.body.classList.toggle('lock-screen');\r\n }\r\n });\r\n\r\n this.closeButtonMobile.addEventListener('click', () => {\r\n this.element.classList.remove('variant-selector__expanded');\r\n this.unlockBody();\r\n });\r\n\r\n variantSelectorItems.forEach((item) => {\r\n item.addEventListener('click', (event) => {\r\n const target = event.currentTarget;\r\n if (target.classList.contains('active')) {\r\n event.preventDefault();\r\n }\r\n })\r\n })\r\n\r\n window.addEventListener('resize', debounce(() => this.onResize(), 250))\r\n }\r\n\r\n private getDropdonwnHeight(): number {\r\n const items = this.element.querySelectorAll('.variant-selector__item');\r\n let height = 0;\r\n\r\n items.forEach(item => height += item.clientHeight);\r\n\r\n return height;\r\n }\r\n\r\n private positionCloseButton() {\r\n this.closeButtonMobile.style.bottom = `${this.getDropdonwnHeight() + 20}px`;\r\n }\r\n\r\n private onResize() {\r\n const isVariantSelectorOpen = this.element.classList.contains('variant-selector__expanded');\r\n\r\n this.positionCloseButton();\r\n\r\n if (!Eucerin.isMobile && isVariantSelectorOpen) {\r\n this.unlockBody()\r\n }\r\n\r\n if (Eucerin.isMobile && isVariantSelectorOpen) {\r\n this.lockBody();\r\n }\r\n }\r\n\r\n private unlockBody() {\r\n document.body.classList.remove('lock-screen');\r\n }\r\n\r\n private lockBody() {\r\n document.body.classList.add('lock-screen')\r\n }\r\n}\r\n\r\nnew VariantSelector.setup();"],"sourceRoot":""}