{"version":3,"sources":["webpack:///./modules/Header.ts","webpack:///./modules/CheckoutPanel.ts"],"names":["__webpack_require__","r","__webpack_exports__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_0__","_modules_CheckoutPanel__WEBPACK_IMPORTED_MODULE_1__","_Tracking__WEBPACK_IMPORTED_MODULE_2__","_TrackingGA4__WEBPACK_IMPORTED_MODULE_3__","Header","element","_this","this","StickableHeader","document","querySelector","cartIcon","classList","add","openCartOverview","hasParentContainer","parentElement","id","Eucerin","isMobile","setAttribute","e","then","bind","module","default","prevDeviceType","isTablet","addEventListener","removeSticky","setup","selector","Array","from","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","shoppingBagOverviewContent","data","Object","innerHTML","shoppingCart","setTimeout","window","initModules","Promise","all","removeAttribute","fetchAndUpdateStore","url","fetch","credentials","res","text","DOMParser","parseFromString","getElementById","cartIconAttr","getAttribute","closest","hasAttribute","location","hash","match","d","trackLogedInCheckoutButton","trackFirstCheckoutStep_V2","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_0__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_1__","CheckoutPanel","initCheckoutPanel","checkoutButton","event","showCheckoutPanel","hidePanelOnClickOut","preventDefault","contains","target","hideCheckoutPanel","checkoutPanel"],"mappings":"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","file":"./modules/Header.bf13f3ed.js","sourcesContent":["/// \r\nimport { emptyCartCanvas } from '../helpers/helperFunctions';\r\nimport { trackFirstCheckoutStep_V2, trackLogedInCheckoutButton } from '../modules/CheckoutPanel';\r\n\r\n\r\nimport { shoppingBagProductsTracking, trackProductTeaserOnCart, trackProductImpressions } from '../Tracking';\r\nimport { cartProductClickEvent, viewCartEvent } from '../TrackingGA4';\r\nconst moduleSelector = '[data-module=\"Header\"]';\r\n\r\nexport default class Header {\r\n isMobile;\r\n StickableHeader: HTMLElement;\r\n prevDeviceType;\r\n cartIcon;\r\n cartIconAttr;\r\n shoppingCart: HTMLElement;\r\n hasParentContainer;\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 Header(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.StickableHeader = document.querySelector('.header .sticky');\r\n this.cartIcon = document.querySelector('.cart');\r\n\r\n if (!this.element.querySelector(\".user-account\")) {\r\n this.element.classList.add(\"no-account\");\r\n }\r\n\r\n\r\n this.cartIcon ? this.openCartOverview() : \"\";\r\n this.hasParentContainer = this.element.parentElement && this.element.parentElement.id !== \"site\";\r\n if (Eucerin.isMobile) {\r\n this.StickableHeader.setAttribute('uk-sticky', 'showOnUp: true; animation: uk-animation-slide-top');\r\n }\r\n\r\n if (this.hasParentContainer) {\r\n this.element.parentElement.classList.add(\"header-container\");\r\n }\r\n\r\n if (document.querySelector('.checkout')) { \r\n const CheckoutLayerOptions = () => import('./CheckoutLayerOptions');\r\n CheckoutLayerOptions().then((module) => new module.default(this.element));\r\n }\r\n\r\n this.prevDeviceType = Eucerin.isTablet;\r\n document.addEventListener('Eucerin:deviceChanged', () => this.removeSticky());\r\n }\r\n\r\n private shoppingBagOverviewContent(data) {\r\n emptyCartCanvas();\r\n\r\n const OffCanvas = () => import('./OffCanvas');\r\n OffCanvas().then((module) => new module.default(document.querySelector('.empty.shopping-bag-overview')));\r\n\r\n document.querySelector('.empty .uk-offcanvas-push').innerHTML = data;\r\n this.shoppingCart = document.querySelector('.off-canvas-slide');\r\n shoppingBagProductsTracking();\r\n setTimeout(() => window.Eucerin.initModules(), 100);\r\n this.shoppingCart.querySelector('.bag-overlay').classList.add('open');\r\n if (document.querySelector(\".shopping-bag-total-price\")) {\r\n const ScrollBar = () => import('../modules/scrollBar');\r\n ScrollBar().then((module) => new module.default(document.querySelector(\".shopping-bag-overview .canvas-overlay\") as HTMLElement));\r\n } \r\n\r\n // Tracking\r\n trackFirstCheckoutStep_V2();\r\n trackLogedInCheckoutButton();\r\n trackProductImpressions();\r\n trackProductTeaserOnCart();\r\n\r\n //GA4\r\n //Select Product On Cart\r\n cartProductClickEvent();\r\n // view cart \r\n viewCartEvent();\r\n }\r\n\r\n private removeSticky() {\r\n if (!Eucerin.isMobile) {\r\n this.prevDeviceType = Eucerin.isMobile;\r\n this.StickableHeader.removeAttribute('uk-sticky');\r\n } else {\r\n this.StickableHeader.setAttribute('uk-sticky', 'showOnUp: true; animation: uk-animation-slide-top');\r\n }\r\n }\r\n\r\n private fetchAndUpdateStore(url: string): void {\r\n fetch(url, { credentials: \"include\" })\r\n .then((res) => res.text())\r\n .then((res) => this.shoppingBagOverviewContent(new DOMParser().parseFromString(res, \"text/html\").getElementById(\"offcanvas-push\").innerHTML))\r\n .then(() => window.Eucerin.initModules());\r\n }\r\n\r\n private openCartOverview() {\r\n this.cartIconAttr = this.cartIcon.getAttribute('data-shopping-cart');\r\n\r\n this.cartIcon.addEventListener('click', () => {\r\n if (this.cartIcon.closest(\".uk-logo\") && this.cartIcon.closest(\".uk-logo\").hasAttribute(\"href\")) {\r\n return;\r\n }\r\n\r\n emptyCartCanvas();\r\n const OffCanvas = () => import('./OffCanvas');\r\n OffCanvas().then((module) => new module.default(document.querySelector('.empty.shopping-bag-overview')));\r\n this.fetchAndUpdateStore(this.cartIconAttr);\r\n });\r\n \r\n if (location.hash.match(/layer/g) && location.hash.match(/shopping-cart/g)) {\r\n emptyCartCanvas();\r\n const OffCanvas = () => import('./OffCanvas');\r\n OffCanvas().then((module) => new module.default(document.querySelector('.empty.shopping-bag-overview')));\r\n this.fetchAndUpdateStore(this.cartIconAttr);\r\n if (document.querySelector(\".shopping-bag-total-price\")) {\r\n const ScrollBar = () => import('../modules/scrollBar');\r\n ScrollBar().then((module) => new module.default(document.querySelector(\".shopping-bag-overview .canvas-overlay\") as HTMLElement));\r\n } \r\n }\r\n }\r\n}\r\n\r\nnew Header.setup();","import { addClass, removeClass } from '../helpers/DOMHelpers';\r\nimport { setCookie } from '../helpers/helperFunctions';\r\n\r\n\r\nimport { checkoutV2FirstStepTracking, checkoutStepOneOptionTracking } from '../Tracking';\r\nimport { beginCheckoutEvent } from '../TrackingGA4';\r\n\r\nconst moduleSelector = '[data-module=\"CheckoutPanel\"]';\r\n\r\nexport default class CheckoutPanel {\r\n counter: 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 CheckoutPanel(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.initCheckoutPanel()\r\n }\r\n\r\n initCheckoutPanel() {\r\n const checkoutButton = this.element.querySelector('.checkout-button');\r\n\r\n if (checkoutButton) {\r\n checkoutButton.addEventListener('click', (event: Event) => this.showCheckoutPanel(event));\r\n this.hidePanelOnClickOut();\r\n }\r\n }\r\n\r\n showCheckoutPanel(event: Event) {\r\n event.preventDefault();\r\n addClass(this.element, 'visible');\r\n if (document.querySelector(\".checkout-options\") && !(document.querySelector('.checkout-button').classList.contains(\"checkout-v2\"))) {\r\n Array.from(document.querySelectorAll('.checkout-options a')).forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => {\r\n checkoutStepOneOptionTracking(e, element)\r\n beginCheckoutEvent();\r\n })\r\n });\r\n }\r\n }\r\n\r\n hidePanelOnClickOut() {\r\n document.addEventListener('click', (event) => {\r\n\r\n const target = event.target;\r\n\r\n if (!target.closest('.checkout-button') && !target.closest('.checkout-panel')) {\r\n this.hideCheckoutPanel(this.element)\r\n }\r\n });\r\n }\r\n\r\n hideCheckoutPanel(checkoutPanel: HTMLElement) {\r\n removeClass(this.element, 'visible');\r\n }\r\n}\r\n\r\nexport function trackLogedInCheckoutButton() {\r\n var checkoutButton = document.querySelector('.checkout-button');\r\n if (checkoutButton) {\r\n if (checkoutButton.classList.contains(\"logged-in\") && !(checkoutButton.classList.contains(\"checkout-v2\"))) {\r\n checkoutButton.addEventListener('click', (e) => checkoutStepOneOptionTracking(e, checkoutButton))\r\n }\r\n }\r\n}\r\n\r\nexport function trackFirstCheckoutStep_V2(){\r\n var checkoutButton = document.querySelector('.checkout-button');\r\n if(checkoutButton && checkoutButton.classList.contains(\"checkout-v2\")){\r\n checkoutButton.addEventListener('click', () =>{ \r\n checkoutV2FirstStepTracking()\r\n\r\n //GA4 Begin Checkout - New Checkout\r\n beginCheckoutEvent()\r\n\r\n if(checkoutButton.classList.contains(\"logged-in\")){\r\n setCookie(\"User\", \"AlreadyLoggedIn\", 0); \r\n }\r\n })\r\n }\r\n}\r\n\r\nnew CheckoutPanel.setup();"],"sourceRoot":""}