{"version":3,"sources":["webpack:///./modules/Navigation.ts","webpack:///./helpers/domhelpers.ts","webpack:///C:/agentEucerin/_work/343/s/Eucerin/Foundation/Eucerin.Foundation.Core/node_modules/menu-aim/index.js"],"names":["menuAim","__webpack_require__","Navigation","element","_this","this","isRtl","isPageRtl","aimMenuOptions","menuItemSelector","menuItemActiveClassName","delayingClassName","isNewHeader","closest","classList","contains","initAimMenu","classesToAdd","btnMenu","document","querySelector","mobileNavigationMenu","addEventListener","toggleNavigation","isShop","firstLevelItem","querySelectorAll","mobileFirstLevelItem","secondLevelitem","mobileSecondLevelitem","mobileSecondLevelParent","closeThirdLevelBtn","closeSecondLevelBtn","thirdLevelItem","prevDeviceType","Eucerin","isDesktop","isTablet","closeMobLayerOutsideCLick","setUpDektopMetaNavigation","forEach","e","navigationTracking","isMobile","add","openFirstItems","closeFirstItems","onHoverHandler","openMobileThirdLevelNav","index","openMobileSecondLevelNav","closeThirdLevelNav","closeSecondLevelNav","target","body","isBurgerMenu","onflyoutShow","closeTab","closeNavigations","window","setTimeout","scrollTo","setup","selector","Array","from","filter","node","dataset","moduleInitialized","prototype","mobileNav","getMetaNav","itemMetaNavigtions","desktopMetaNavs","menuItems","push","reverse","insertAdjacentElement","remove","append","Object","_helpers_domhelpers__WEBPACK_IMPORTED_MODULE_0__","openFistTab","currentTarget","secondLevelWrapperHeight","clientHeight","nextElement","nextElementSibling","_a","apply","__spread","removeAttribute","preventDefault","rtlActiveTab","setflyoutHeight","parentElement","thirdLevelNav","cloneNode","removeChild","childNodes","appendChild","thirdlevelNavHeader","levelLink","innerHTML","clearFakeHeaderContent","animateHeaderInPlace","cloneElement","secondLevelNav","secondlevelNavHeader","newMobileNav","firstlevelNavHeader","levelNavHeaderV2","requestAnimation","fakeNavHeader","animateTitle","levelNavHeaderHtml","renderMarkup","rightCloseDirection","addAnimation","firstLevelCloseBtn","console","log","navigationLogoTracking","activeAimMenu","dataLayer","eventLink","getAttribute","firstTitle","innerText","targetElement","item","mobileTarget","secondTitle","children","eventLabel","event","eventCategory","eventAction","eventNonInteraction","thirdElement","thirdLeveActivelWithChildren","secondLevelWrapper","secondLevelSelectorOpened","thirdLevelActive","thirdLevelActiveHeight","newThirdLevel","offsetHeight","length","hasThirdElementChildrens","setAttribute","firstTab","closeDirection","secondLevelActiveFlyout","secondLevelActiveFlyoutHeader","secondLevelActiveFlyoutHeaderTitle","firstLevelFlyoutHeader","mobileNavOpen","direction","documentElement","createElement","createElementFromString","str","wrapper","className","addClassName","createDiv","firstElementChild","value","addClass","removeClass","createScriptTag","script","domScript","type","src","textContent","defer","injectScriptsFromAjaxResponse","scripts","getElementsByTagName","exist","shouldScriptNotBeMoved","hasAttribute","indexOf","isScriptTagRendered","map","Promise","all","resolve","reject","onload","onerror","error","head","listenToLoad$","_functional__WEBPACK_IMPORTED_MODULE_3__","arg","img","rxjs__WEBPACK_IMPORTED_MODULE_0__","pipe","rxjs_operators__WEBPACK_IMPORTED_MODULE_1__","rxjs_operators__WEBPACK_IMPORTED_MODULE_2__","removeDataAttr","hideSpinner","dispatchEvent","CustomEvent","srcset","supportWebP","tagName","includes","replace","addSpinnerToImage","calculateTopLeftAndBottomRightCoordinates","rect","getBoundingClientRect","topX","left","pageXOffset","scrollLeft","topY","top","pageYOffset","scrollTop","x","offsetWidth","y","calculateGradient","A","B","module","exports","menuElement","options","timeoutId","activeMenuItem","activeSubMenuTopLeftCoordinates","activeSubMenuBottomLeftCoordinates","extremeCoordinates","delay","menuItemSubMenuSelector","previousMouseCoordinates","currentMouseCoordinates","menuElementCoordinates","possiblyActivateMenuItem","menuItem","cancelPendingMenuItemActivations","deactivateActiveMenuItem","activeSubMenu","activeSubMenuCoordinates","activateMenuItem","clearTimeout","onMenuItemMouseEnter","i","onWindowMouseMove","saveMouseCoordinates","pageX","pageY","removeEventListener"],"mappings":"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","file":"./modules/Navigation.accccee7.js","sourcesContent":["/// \r\nconst menuAim = require('menu-aim')\r\nconst moduleSelector = '[data-module=\"Navigation\"]';\r\nimport { createElementFromString } from '../helpers/domhelpers';\r\n\r\nexport default class Navigation {\r\n btnMenu: HTMLElement;\r\n closeBtns;\r\n secondLevelitem;\r\n mobileSecondLevelitem;\r\n mobileSecondLevelParent;\r\n closeThirdLevelBtn;\r\n closeSecondLevelBtn;\r\n mobileNavigationMenu;\r\n prevDeviceType;\r\n isRtl = this.isPageRtl();\r\n classesToAdd;\r\n firstLevelItem;\r\n mobileFirstLevelItem;\r\n thirdLevelItem;\r\n secondLevelWrapperHeight: number;\r\n isNewHeader: boolean;\r\n isShop;\r\n isMobile;\r\n\r\n aimMenuOptions = {\r\n menuItemSelector: '.menu-aim__item',\r\n menuItemActiveClassName: 'menu-aim__item--active',\r\n delayingClassName: 'menu-aim--delaying'\r\n }\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 Navigation(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.isNewHeader = this.element.closest('.header').classList.contains('header-v2');\r\n this.initAimMenu();\r\n this.classesToAdd = ['uk-navbar-dropdown-dropbar', 'uk-open', 'uk-navbar-dropdown-stack', 'uk-navbar-dropdown-bottom-left'];\r\n this.btnMenu = document.querySelector('.uk-navbar-item .menu');\r\n this.mobileNavigationMenu = document.querySelector('#mobile-navigation .menu');\r\n this.btnMenu.addEventListener('click', () => this.toggleNavigation());\r\n this.mobileNavigationMenu && this.mobileNavigationMenu.addEventListener('click', () => this.toggleNavigation());\r\n this.isShop = document.querySelector(\".shoppable\");\r\n this.firstLevelItem = document.querySelectorAll('.desktop-nav .cp-first-level-nav > li');\r\n this.mobileFirstLevelItem = document.querySelectorAll('#mobile-navigation .uk-parent > a');\r\n this.secondLevelitem = document.querySelectorAll('.desktop-nav .cp-second-level-nav > li > a');\r\n this.mobileSecondLevelitem = document.querySelectorAll('#mobile-navigation .cp-second-level-nav > li > a');\r\n this.mobileSecondLevelParent = document.querySelectorAll('#mobile-navigation .cp-first-level-nav > li');\r\n this.closeThirdLevelBtn = document.querySelectorAll('.close-thirt-level-btn');\r\n this.closeSecondLevelBtn = document.querySelectorAll('.close-second-level-btn');\r\n this.thirdLevelItem = document.querySelectorAll('.desktop-nav .cp-third-level-nav li > a');\r\n this.prevDeviceType = Eucerin.isDesktop;\r\n\r\n if (Eucerin.isTablet) this.closeMobLayerOutsideCLick();\r\n\r\n !(document.querySelector('.checkout')) ? this.setUpDektopMetaNavigation() : \"\";\r\n\r\n this.mobileFirstLevelItem.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => {\r\n this.navigationTracking(e, element);\r\n })\r\n });\r\n\r\n this.element.querySelectorAll(\".badged-nav-item\").forEach((element: HTMLElement) => {\r\n !Eucerin.isMobile && element.closest(\"li\") ? element.closest(\"li\").classList.add(\"badged-list\") : \"\";\r\n });\r\n\r\n this.firstLevelItem.forEach((element: HTMLElement) => {\r\n element.addEventListener('mouseenter', (e) => this.openFirstItems(e));\r\n });\r\n\r\n this.firstLevelItem.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => this.closeFirstItems(e));\r\n });\r\n\r\n this.thirdLevelItem.forEach((element: HTMLElement) => {\r\n\r\n element.addEventListener('click', (e) => this.navigationTracking(e, element));\r\n });\r\n\r\n this.firstLevelItem.forEach((element: HTMLElement) => {\r\n element.addEventListener('mouseleave', (e) => this.closeFirstItems(e));\r\n });\r\n\r\n this.secondLevelitem.forEach((element: HTMLElement) => {\r\n element.addEventListener('mouseenter', (e) => this.onHoverHandler(e));\r\n });\r\n\r\n this.secondLevelitem.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => {\r\n\r\n this.onHoverHandler(e);\r\n this.navigationTracking(e, element);\r\n });\r\n });\r\n\r\n this.mobileSecondLevelitem.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => {\r\n\r\n this.openMobileThirdLevelNav(e)\r\n this.navigationTracking(e, element);\r\n });\r\n\r\n });\r\n\r\n if (this.isNewHeader) {\r\n this.mobileSecondLevelParent.forEach((element, index) => {\r\n element.classList.add(\"first-level-list-item\");\r\n if (!(index === 0) && element.querySelector(\".cp-second-level-nav-wrapper\")) {\r\n element.classList.add(\"hidden-list\")\r\n element.addEventListener('click', (e) => {\r\n this.openMobileSecondLevelNav(e)\r\n });\r\n }\r\n });\r\n this.isShop ? this.element.closest('.header').classList.add(\"shoppable-header\") :\"\";\r\n }\r\n\r\n this.closeThirdLevelBtn.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => this.closeThirdLevelNav());\r\n });\r\n\r\n this.closeSecondLevelBtn.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => this.closeSecondLevelNav());\r\n })\r\n\r\n document.addEventListener(\"click\", (e) => {\r\n var target = e.target;\r\n\r\n if (!target.closest('.third-level-flayout') && !target.closest('.uk-offcanvas-bar') && !document.body.classList.contains('third-level-navigation') && !this.isBurgerMenu(target)) {\r\n } else if (!target.closest('.third-level-flayout') && !target.closest('.uk-offcanvas-bar') && document.body.classList.contains('third-level-navigation') && !this.isBurgerMenu(target) && !target.closest(\".second-level-flayout\")) {\r\n this.isNewHeader ? target.classList.contains(\"close-thirt-level-btn\") ? this.closeThirdLevelNav() : \"\" : this.closeThirdLevelNav();\r\n }\r\n\r\n if (!target.closest('.second-level-flayout') && !target.closest('.uk-offcanvas-bar') && !document.body.classList.contains('second-level-navigation') && !this.isBurgerMenu(target)) {\r\n } else if (!target.closest('.second-level-flayout') && !target.closest('.uk-offcanvas-bar') && document.body.classList.contains('second-level-navigation') && !this.isBurgerMenu(target) && !target.closest(\".third-level-flayout\")) {\r\n this.isNewHeader ? target.classList.contains(\"close-second-level-btn\") ? this.closeSecondLevelNav() : \"\" : this.closeSecondLevelNav();\r\n }\r\n\r\n\r\n });\r\n\r\n if (document.querySelector('.cp-navigation.desktop-nav')) {\r\n document.querySelector('.cp-navigation.desktop-nav').addEventListener('show', () => this.onflyoutShow());\r\n document.querySelector('.cp-navigation.desktop-nav').addEventListener('hide', () => this.closeTab());\r\n }\r\n\r\n document.addEventListener('Eucerin:deviceChanged', () => {\r\n this.closeNavigations();\r\n if (Eucerin.isTablet) this.closeMobLayerOutsideCLick();\r\n })\r\n\r\n window.addEventListener(\"orientationchange\", () => {\r\n if (document.querySelector('#mobile-navigation').classList.contains('uk-list')) {\r\n setTimeout(() => {\r\n window.scrollTo(0, 1);\r\n }, 0);\r\n }\r\n });\r\n }\r\n\r\n setUpDektopMetaNavigation() {\r\n const mobileNav = this.element.querySelector('#mobile-navigation'),\r\n getMetaNav = mobileNav ? mobileNav.querySelector('.meta-navigations-links') : null,\r\n itemMetaNavigtions = getMetaNav ? getMetaNav.querySelectorAll('.uk-navbar-item') : null,\r\n desktopMetaNavs = this.element.querySelector('.uk-navbar-right');\r\n let menuItems = [];\r\n\r\n if (!itemMetaNavigtions) return;\r\n\r\n itemMetaNavigtions.forEach(element => {\r\n menuItems.push(element);\r\n });\r\n\r\n menuItems.reverse();\r\n\r\n menuItems.forEach(element => {\r\n desktopMetaNavs.insertAdjacentElement('afterbegin', element);\r\n });\r\n\r\n getMetaNav.remove();\r\n }\r\n\r\n initAimMenu() {\r\n Array.from(document.querySelectorAll('.cp-navigation .cp-second-level-nav > li')).forEach((element: HTMLElement) => {\r\n if (!element.querySelector('.cp-third-level-nav-wrapper')) {\r\n element.append(createElementFromString('
'));\r\n element.classList.add('no-subnav');\r\n }\r\n });\r\n if (!this.isNewHeader) {\r\n Array.from(document.querySelectorAll('.desktop-nav .cp-second-level-nav-wrapper')).forEach((element: HTMLElement) => {\r\n new menuAim(element, this.aimMenuOptions);\r\n });\r\n }\r\n }\r\n\r\n private onflyoutShow() {\r\n this.openFistTab();\r\n\r\n }\r\n\r\n private openFirstItems(e) {\r\n var target = e.currentTarget;\r\n if (target.querySelector(\".cp-second-level-nav\")) {\r\n this.secondLevelWrapperHeight = target.querySelector(\".cp-second-level-nav\").clientHeight;\r\n this.element.closest(\".header-v2\") ? this.element.closest(\".header-v2\").classList.add(\"nav-overlay\") : \"\";\r\n } else {\r\n return\r\n }\r\n document.querySelector(\"body\").classList.add(\"navigation-active\")\r\n target.querySelector(\"a\").classList.add(\"active\");\r\n target.classList.add(\"open\");\r\n var nextElement = target.querySelector(\"a\").nextElementSibling;\r\n nextElement ? nextElement.classList.add(...this.classesToAdd) : '';\r\n this.onflyoutShow()\r\n }\r\n\r\n private closeFirstItems(e) {\r\n var target = e.currentTarget;\r\n target.querySelector(\"a\").classList.remove(\"active\");\r\n target.classList.remove(\"open\");\r\n var nextElement = target.querySelector(\"a\").nextElementSibling;\r\n this.element.closest(\".header-v2\") ? this.element.closest(\".header-v2\").classList.remove(\"nav-overlay\") : \"\";\r\n\r\n Array.from(target.querySelectorAll('.menu-aim__item--active')).forEach((element: HTMLElement) => {\r\n if (this.isNewHeader) {\r\n if (element) {\r\n element.classList.remove('menu-aim__item--active');\r\n\r\n }\r\n }\r\n });\r\n\r\n if (nextElement) {\r\n nextElement.removeAttribute(\"style\");\r\n nextElement.classList.remove(\"uk-open\")\r\n document.querySelector(\"body\").classList.remove(\"navigation-active\")\r\n //this.closeTab();\r\n }\r\n }\r\n\r\n private onHoverHandler(e) {\r\n if (this.isNewHeader) return\r\n var target = e.currentTarget;\r\n var nextElement = target.nextElementSibling;\r\n document.querySelectorAll(\".first-active\")\r\n\r\n if (this.element.querySelector('.first-active')) {\r\n this.element.querySelector('.first-active').classList.remove('first-active');\r\n }\r\n if (Eucerin.isMobile) {\r\n if (!nextElement.classList.contains('no-subnav')) e.preventDefault();\r\n }\r\n\r\n if (this.isRtl) {\r\n this.rtlActiveTab(target);\r\n } else {\r\n setTimeout(() => this.setflyoutHeight(), 200);\r\n }\r\n }\r\n\r\n private openMobileThirdLevelNav(e) {\r\n var target = e.currentTarget;\r\n var nextElement = target.nextElementSibling;\r\n if (nextElement && !target.parentElement.classList.contains('no-subnav')) {\r\n e.preventDefault();\r\n\r\n var thirdLevelNav = nextElement.cloneNode(true);\r\n document.querySelector('.third-level-flayout .cp-third-level-nav-content').removeChild(document.querySelector('.third-level-flayout .cp-third-level-nav-content').childNodes[0]);\r\n document.querySelector('.third-level-flayout .cp-third-level-nav-content').appendChild(thirdLevelNav);\r\n document.querySelector('.third-level-flayout').classList.add(\"third-level-flayout-active\");\r\n document.querySelector('.third-level-flayout').classList.add(\"flayout-active\");\r\n document.body.classList.add('third-level-navigation');\r\n document.body.classList.add('third-level-navigation-open');\r\n\r\n const thirdlevelNavHeader = document.querySelector(\"#mobile-navigation.navigation-v2 .third-level-navigation-header\");\r\n const levelLink = nextElement.querySelector(\".third-level-link\").innerHTML;\r\n this.clearFakeHeaderContent();\r\n if((document.querySelector(\"body\").classList.contains(\"second-level-navigation-open\"))){\r\n this.animateHeaderInPlace(thirdlevelNavHeader, levelLink, true)\r\n } else{ \r\n this.animateHeaderInPlace(thirdlevelNavHeader, levelLink, true)};\r\n\r\n (thirdLevelNav as HTMLElement).querySelectorAll(\".cp-third-level-nav > li > a\").forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => {\r\n this.navigationTracking(e, element);\r\n });\r\n\r\n });\r\n }\r\n }\r\n\r\n private openMobileSecondLevelNav(e) {\r\n var target = e.currentTarget;\r\n var cloneElement = target.querySelector(\".cp-second-level-nav-wrapper\");\r\n if (cloneElement) {\r\n e.preventDefault();\r\n var secondLevelNav = cloneElement.cloneNode(true);\r\n document.querySelector('.second-level-flayout .cp-second-level-nav-content').removeChild(document.querySelector('.second-level-flayout .cp-second-level-nav-content').childNodes[0]);\r\n document.querySelector('.second-level-flayout .cp-second-level-nav-content').appendChild(secondLevelNav);\r\n document.querySelector('.second-level-flayout').classList.add('second-level-flayout-active');\r\n document.querySelector('.second-level-flayout').classList.add('flayout-active');\r\n document.querySelector('.third-level-flayout').classList.contains(\"opened-by-second-flyout\") ? \"\" : document.querySelector('.third-level-flayout').classList.add(\"opened-by-second-flyout\");\r\n\r\n document.body.classList.add('second-level-navigation');\r\n document.body.classList.add('second-level-navigation-open');\r\n const secondlevelNavHeader = document.querySelector(\"#mobile-navigation.navigation-v2 .second-level-navigation-header\");\r\n const levelLink = cloneElement.querySelector(\".second-level-link\").innerHTML;\r\n this.clearFakeHeaderContent();\r\n this.animateHeaderInPlace(secondlevelNavHeader, levelLink, true);\r\n\r\n (secondLevelNav as HTMLElement).querySelectorAll(\".cp-second-level-nav > li > a\").forEach((element: HTMLElement) => {\r\n element.addEventListener('click', (e) => {\r\n this.openMobileThirdLevelNav(e)\r\n this.navigationTracking(e, element);\r\n });\r\n\r\n });\r\n }\r\n }\r\n\r\n private toggleNavigation() {\r\n const mobileNav = document.querySelector('#mobile-navigation');\r\n const newMobileNav = document.querySelector('#mobile-navigation .menu');\r\n const firstlevelNavHeader = document.querySelector(\"#mobile-navigation.navigation-v2 .first-level-navigation-header\");\r\n\r\n if (this.btnMenu.classList.contains('open')) {\r\n this.btnMenu.classList.remove('open');\r\n mobileNav.classList.remove('open');\r\n newMobileNav.classList.remove('open');\r\n document.body.classList.remove('overflow-hidden');\r\n setTimeout(() => { document.body.classList.remove('navigation-active'); }, 500);\r\n if(this.isNewHeader && document.querySelector(\"body\").classList.contains(\"second-level-navigation\")){\r\n document.querySelector(\".nav-fake-header\") && document.querySelector(\".nav-fake-header\").classList.add(\"animation\")\r\n }\r\n\r\n } else {\r\n if(this.isNewHeader && document.querySelector(\"body\").classList.contains(\"second-level-navigation\")){\r\n document.querySelector(\".nav-fake-header\") && document.querySelector(\".nav-fake-header\").classList.remove(\"animation\")\r\n }\r\n this.btnMenu.classList.add('open');\r\n mobileNav.classList.add('open');\r\n newMobileNav.classList.add('open');\r\n document.body.classList.add('overflow-hidden');\r\n document.body.classList.add('navigation-active');\r\n if (this.isNewHeader) {\r\n this.animateHeaderInPlace(firstlevelNavHeader, \"\")\r\n }\r\n }\r\n }\r\n\r\n private animateHeaderInPlace(levelNavHeaderV2, levelLink, requestAnimation?) {\r\n const fakeNavHeader = document.querySelector(\".header-v2 .nav-fake-header\");\r\n requestAnimation ? levelNavHeaderV2 && levelNavHeaderV2.querySelector(\".nav-title\") && levelLink ? levelNavHeaderV2.querySelector(\".nav-title\").innerHTML = levelLink :\"\" : this.animateTitle(levelNavHeaderV2 , levelLink);\r\n const levelNavHeaderHtml = levelNavHeaderV2 && levelNavHeaderV2.innerHTML;\r\n const rightCloseDirection = \"close-right\";\r\n if (levelNavHeaderV2 && fakeNavHeader) {\r\n\r\n fakeNavHeader.classList.add(\"visible\"); \r\n requestAnimation ? this.renderMarkup(fakeNavHeader, levelNavHeaderHtml, rightCloseDirection, true) : this.renderMarkup(fakeNavHeader, levelNavHeaderHtml, rightCloseDirection);\r\n }\r\n\r\n }\r\n private animateTitle(levelNavHeaderV2, levelLink){\r\n \r\n if(levelNavHeaderV2 && levelNavHeaderV2.querySelector(\".nav-title\") && levelLink) {\r\n\r\n levelNavHeaderV2.querySelector(\".nav-title\").classList.add(\"fadeIn\");\r\n levelNavHeaderV2.querySelector(\".nav-title\").innerHTML = levelLink;\r\n setTimeout(() => {\r\n document.querySelector(\".nav-fake-header .nav-title.fadeIn\") && document.querySelector(\".nav-fake-header .nav-title.fadeIn\").classList.remove(\"fadeIn\");\r\n }, 50);\r\n levelNavHeaderV2.querySelector(\".nav-title\").classList.remove(\"fadeIn\");\r\n \r\n\r\n }\r\n \r\n }\r\n\r\n private renderMarkup(fakeNavHeader, levelNavHeaderHtml, rightCloseDirection, addAnimation?){\r\n addAnimation ? fakeNavHeader.classList.add(\"animation\") :\"\";\r\n fakeNavHeader.innerHTML = levelNavHeaderHtml\r\n setTimeout(() => { addAnimation ? fakeNavHeader.classList.remove(\"animation\") :\"\"; }, 500);\r\n\r\n //Toggle first level\r\n const firstLevelCloseBtn = fakeNavHeader.querySelector(\".menu.burger-menu\") || fakeNavHeader.querySelector(\".close-button\");\r\n firstLevelCloseBtn && firstLevelCloseBtn.addEventListener(\"click\", (e) => {\r\n fakeNavHeader.classList.remove(\"visible\");\r\n this.toggleNavigation()\r\n this.clearFakeHeaderContent();\r\n \r\n })\r\n \r\n const closeBtns = fakeNavHeader.querySelectorAll(\".close-button\");\r\n closeBtns.forEach((element: HTMLElement) => {\r\n element.addEventListener('click', () => {\r\n this.isShop ? this.closeThirdLevelNav(rightCloseDirection) : this.closeThirdLevelNav();\r\n this.isShop ? this.closeSecondLevelNav(rightCloseDirection) : this.closeSecondLevelNav();\r\n this.clearFakeHeaderContent();\r\n });\r\n })\r\n console.log(fakeNavHeader.querySelector(\".uk-logo\"))\r\n fakeNavHeader.querySelector(\".uk-logo\") && fakeNavHeader.querySelector(\".uk-logo\").addEventListener('click', () => this.navigationLogoTracking())\r\n }\r\n\r\n private clearFakeHeaderContent() {\r\n const fakeNavHeader = document.querySelector(\".header-v2 .nav-fake-header\");\r\n fakeNavHeader && fakeNavHeader.classList.remove(\"visible\");\r\n fakeNavHeader ? fakeNavHeader.innerHTML = \"\" : \"\";\r\n\r\n }\r\n\r\n private closeTab() {\r\n var activeAimMenu = document.querySelector('.menu-aim__item--active');\r\n\r\n if (activeAimMenu)\r\n activeAimMenu.classList.remove('menu-aim__item--active');\r\n\r\n if (this.isRtl) {\r\n if (document.querySelector('.active-tab')) {\r\n document.querySelector('.active-tab').classList.remove(\"active-tab\");\r\n }\r\n }\r\n }\r\n\r\n navigationTracking(e: Event, element) {\r\n if (typeof window.dataLayer == 'undefined' || !window.dataLayer) {\r\n return;\r\n }\r\n if (element.closest('.uk-logo')) {\r\n return\r\n }\r\n\r\n if (Eucerin.isMobile && !element.closest('.no-subnav') && element.closest(\".cp-second-level-nav\") || element.closest(\".hidden-list\")) {\r\n return\r\n }\r\n\r\n var eventLink = element.getAttribute('href');\r\n const firstTitle = element.innerText;\r\n if (element.closest(\".cp-third-level-nav\")) {\r\n let targetElement = Array.from(document.querySelectorAll(`a[href=\"${eventLink}\"]`)).filter(item => item.closest('#mobile-navigation') && item.closest('.cp-first-level-nav'))\r\n let mobileTarget: HTMLElement = targetElement[0] ? targetElement[0] as HTMLElement : element;\r\n const secondTitle = (element.closest(\".cp-second-level-nav > li\")) ? element.closest(\".cp-second-level-nav > li\").children[0].innerText : element.closest(\".cp-third-level-nav-wrapper\").querySelector(\".second-level-link\") && element.closest(\".cp-third-level-nav-wrapper\").querySelector(\".second-level-link\").innerText;\r\n const thirdTitle = (element.closest(\".cp-first-level-nav > li\")) ? element.closest(\".cp-first-level-nav > li\").children[0].innerText : (mobileTarget.closest(\".cp-first-level-nav > li\").children[0]) && (mobileTarget.closest(\".cp-first-level-nav > li\").children[0]).innerText;\r\n var eventLabel = `${thirdTitle} » ${secondTitle} » ${firstTitle}`;\r\n\r\n } else if (element.closest(\".cp-second-level-nav\")) {\r\n const secondTitle = element.closest(\".cp-first-level-nav > li\") && element.closest(\".cp-first-level-nav > li\").children[0].innerText;\r\n var eventLabel = `${secondTitle} » ${firstTitle}`;\r\n } else {\r\n var eventLabel = `${firstTitle}`;\r\n\r\n }\r\n\r\n window.dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Navigation',\r\n eventAction: 'Item Click',\r\n eventLabel: `${eventLabel} ${'|'} ${eventLink}`,\r\n eventNonInteraction: false\r\n });\r\n }\r\n\r\n navigationLogoTracking() {\r\n if (typeof window.dataLayer == 'undefined' || !window.dataLayer) {\r\n return;\r\n }\r\n window.dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Navigation',\r\n eventAction: 'Logo Click',\r\n eventLabel: 'undefined',\r\n eventNonInteraction: false\r\n });\r\n }\r\n\r\n private setflyoutHeight(thirdElement = null, thirdLeveActivelWithChildren?: HTMLElement) {\r\n let secondLevelWrapper,\r\n secondLevelSelectorOpened,\r\n thirdLevelActive,\r\n thirdLevelActiveHeight = 0,\r\n newThirdLevel = thirdLeveActivelWithChildren ? thirdLeveActivelWithChildren.querySelector('.cp-third-level-nav-wrapper') : null;\r\n\r\n secondLevelSelectorOpened = document.querySelector('.cp-first-level-nav li.open');\r\n secondLevelWrapper = secondLevelSelectorOpened ? secondLevelSelectorOpened.querySelector('.cp-second-level-nav-wrapper') as HTMLElement : \"\";\r\n secondLevelWrapper ? secondLevelWrapper.offsetHeight : 0;\r\n\r\n\r\n if (thirdElement == null) {\r\n thirdLevelActive = document.querySelector('.menu-aim__item--active .cp-third-level-nav-wrapper');\r\n } else {\r\n thirdLevelActive = thirdElement.children.length > 0 ? thirdElement : newThirdLevel;\r\n }\r\n\r\n if (thirdLevelActive) {\r\n thirdLevelActiveHeight = thirdLevelActive.offsetHeight;\r\n }\r\n\r\n let hasThirdElementChildrens = thirdLevelActive ? thirdLevelActive.children.length > 0 : \"\";\r\n\r\n if (secondLevelWrapper) {\r\n if (!this.isNewHeader) {\r\n if (hasThirdElementChildrens) {\r\n secondLevelWrapper.setAttribute('style', `height: ${thirdLevelActiveHeight}px; transition: height 0.3s ease;`); //Removed 30px added on height\r\n } else {\r\n secondLevelWrapper.setAttribute('style', `height: ${this.secondLevelWrapperHeight}px; transition: height 0.3s ease;`); //Removed 60px added on height\r\n }\r\n } else {\r\n secondLevelWrapper.setAttribute('style', `height: ${this.secondLevelWrapperHeight}px; transition: height 0.3s ease;`); //Removed 60px added on height\r\n }\r\n }\r\n }\r\n\r\n private openFistTab() {\r\n var secondLevelWrapper = document.querySelector('.cp-second-level-nav-wrapper.uk-open');\r\n var firstTab = secondLevelWrapper.querySelector('ul > li');\r\n var thirdElement = firstTab.querySelector('.cp-third-level-nav-wrapper');\r\n if (thirdElement.innerHTML.length > 0) firstTab.classList.add(\"first-active\");\r\n\r\n Array.from(document.querySelectorAll('.menu-aim__item:not(.no-subnav)')).forEach((element: HTMLElement) => {\r\n if (this.isNewHeader) {\r\n element.classList.add('menu-aim__item--active');\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n this.setflyoutHeight(thirdElement);\r\n }, 200)\r\n }\r\n\r\n private closeThirdLevelNav(closeDirection?) {\r\n closeDirection ? document.querySelector(\"#mobile-navigation .uk-offcanvas-bar\").classList.add(\"close-right\") :\"\";\r\n document.querySelector('.third-level-flayout').classList.remove('third-level-flayout-active');\r\n document.querySelector('.third-level-flayout').classList.remove(\"flayout-active\");\r\n\r\n document.body.classList.remove('third-level-navigation');\r\n\r\n setTimeout(() => {\r\n document.body.classList.remove('third-level-navigation-open');\r\n closeDirection ? document.querySelector(\"#mobile-navigation .uk-offcanvas-bar\").classList.remove(\"close-right\") :\"\";\r\n }, 300);\r\n\r\n\r\n this.clearFakeHeaderContent();\r\n const secondLevelActiveFlyout = document.querySelector(\".second-level-flayout.second-level-flayout-active\"),\r\n secondLevelActiveFlyoutHeader = secondLevelActiveFlyout && secondLevelActiveFlyout.querySelector(\".second-level-navigation-header\"),\r\n secondLevelActiveFlyoutHeaderTitle = secondLevelActiveFlyoutHeader && secondLevelActiveFlyoutHeader.querySelector(\".nav-title\").innerHTML,\r\n firstLevelFlyoutHeader = document.querySelector(\".first-level-navigation-header\");\r\n if(secondLevelActiveFlyout){\r\n document.querySelector(\".nav-fake-header\") && document.querySelector(\".nav-fake-header\").classList.add(\"second-level-header\")\r\n\r\n setTimeout(() => {\r\n document.querySelector(\".nav-fake-header\") && document.querySelector(\".nav-fake-header\").classList.remove(\"second-level-header\")\r\n }, 500);\r\n this.animateHeaderInPlace(secondLevelActiveFlyoutHeader, secondLevelActiveFlyoutHeaderTitle, true) }else{ this.animateHeaderInPlace(firstLevelFlyoutHeader, \"\", true)}\r\n }\r\n\r\n private closeSecondLevelNav(closeDirection?) {\r\n document.querySelector('.third-level-flayout').classList.contains(\"opened-by-second-flyout\") ? document.querySelector('.third-level-flayout').classList.remove(\"opened-by-second-flyout\") : \"\";\r\n\r\n closeDirection ? document.querySelector(\"#mobile-navigation .uk-offcanvas-bar\").classList.add(\"close-right\") :\"\";\r\n document.querySelector('.second-level-flayout').classList.remove('second-level-flayout-active');\r\n document.querySelector('.second-level-flayout').classList.remove('flayout-active');\r\n document.body.classList.remove('second-level-navigation');\r\n\r\n setTimeout(() => {\r\n document.body.classList.remove('second-level-navigation-open');\r\n closeDirection ? document.querySelector(\"#mobile-navigation .uk-offcanvas-bar\").classList.remove(\"close-right\") :\"\";\r\n }, 300);\r\n\r\n this.clearFakeHeaderContent();\r\n const firstLevelFlyoutHeader = document.querySelector(\".first-level-navigation-header\");\r\n this.animateHeaderInPlace(firstLevelFlyoutHeader, \"\", true);\r\n\r\n }\r\n\r\n private closeMobLayerOutsideCLick() {\r\n document.addEventListener(\"click\", (e) => {\r\n const mobileNavOpen = this.element.querySelector(\".cp-navigation.open\");\r\n const target = e.target;\r\n if (target === mobileNavOpen) this.toggleNavigation();\r\n })\r\n }\r\n\r\n private closeNavigations() {\r\n if (this.prevDeviceType !== Eucerin.isDesktop) {\r\n this.prevDeviceType = Eucerin.isDesktop;\r\n }\r\n }\r\n\r\n private isBurgerMenu(element: HTMLElement) {\r\n return element.classList.contains('menu') || element.classList.contains('bar');\r\n }\r\n\r\n private rtlActiveTab(target) {\r\n var thirdElement = target.querySelector('.cp-third-level-nav-wrapper');\r\n if (document.querySelector('.active-tab')) {\r\n document.querySelector('.active-tab').classList.remove(\"active-tab\");\r\n }\r\n target.parentElement.classList.add(\"active-tab\");\r\n\r\n this.setflyoutHeight(thirdElement);\r\n }\r\n\r\n private isPageRtl() {\r\n var direction = document.documentElement.getAttribute('dir');\r\n\r\n if (direction && direction == 'rtl') {\r\n return true\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nnew Navigation.setup();","/// \r\nimport {\r\n fromEvent,\r\n Observable,\r\n} from 'rxjs';\r\n\r\nimport {\r\n first,\r\n map,\r\n} from 'rxjs/operators';\r\n\r\nimport {\r\n pipe,\r\n fork,\r\n alt,\r\n not,\r\n tap,\r\n} from './functional';\r\n\r\nimport { isIOS } from '../helpers/helperFunctions';\r\n\r\nexport function bindFunctions(element: any, ...funcs: Array<(target: any, ...args: any[]) => void>) {\r\n return function (...args) {\r\n funcs.forEach((f, i) => f(element, args[i]));\r\n return element;\r\n }\r\n}\r\n\r\nexport function createElement(selector: string): HTMLElement {\r\n return document.createElement(selector);\r\n}\r\n\r\nexport function createAnchor(href: string = '', text: string = '', className: string = ''): HTMLAnchorElement {\r\n return bindFunctions(\r\n createElement('a'),\r\n addHref,\r\n addTextContent,\r\n addClassName\r\n )(href, text, className);\r\n}\r\n\r\nexport function createSpan(className: string): HTMLElement {\r\n return addClassName(createElement('span'), className);\r\n};\r\n\r\nexport function createDiv(className: string): HTMLElement {\r\n return addClassName(createElement('div'), className);\r\n};\r\n\r\nexport function createNav(className: string): HTMLElement {\r\n return addClassName(createElement('nav'), className);\r\n};\r\n\r\nexport function createUList(className: string): HTMLElement {\r\n return addClassName(createElement('ul'), className);\r\n};\r\n\r\nexport function createListItem(className: string): HTMLElement {\r\n return addClassName(createElement('li'), className);\r\n};\r\n\r\nexport function createButton(className: string): HTMLElement {\r\n return addClassName(createElement('button'), className);\r\n};\r\n\r\nexport function createElementFromString(str: string): HTMLElement {\r\n const wrapper = createDiv('');\r\n wrapper.innerHTML = str;\r\n return wrapper.firstElementChild || wrapper;\r\n}\r\n\r\nexport function createSVG(inner: string): HTMLElement {\r\n const svg = document.createElement('svg');\r\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svg.setAttribute('viewBox', '0 0 86 86');\r\n svg.innerHTML = inner;\r\n\r\n return svg;\r\n}\r\n\r\nexport function addTextContent(element: HTMLElement, value: string): HTMLElement {\r\n element.textContent = value;\r\n return element;\r\n}\r\n\r\nexport function addInnerHTML(element: HTMLElement, value: string): HTMLElement {\r\n element.innerHTML = value;\r\n return element;\r\n}\r\n\r\nexport function addClassName(element: HTMLElement, value: string): HTMLElement {\r\n element.className = value;\r\n return element;\r\n}\r\n\r\nexport function addClass(element: HTMLElement, value: string): HTMLElement {\r\n element.classList.add(value);\r\n return element;\r\n}\r\n\r\nexport function addClasses(element: HTMLElement, ...classes: string[]): HTMLElement {\r\n classes.forEach(cls => addClass(element, cls));\r\n return element;\r\n}\r\n\r\nexport function removeClass(node: HTMLElement, className: string): HTMLElement {\r\n node.classList.remove(className);\r\n return node;\r\n}\r\n\r\nexport function removeClasses(node: HTMLElement, ...classes: string[]): HTMLElement {\r\n classes.forEach(cls => removeClass(node, cls));\r\n return node;\r\n}\r\n\r\nexport function addClassToList(list: Element[] | HTMLElement[] | HTMLCollection | NodeList, className: string) {\r\n Array.from(list).forEach(itm => addClass(itm, className));\r\n return list;\r\n}\r\n\r\nexport function removeClassFromList(list: Element[] | HTMLElement[] | HTMLCollection | NodeList, className: string) {\r\n Array.from(list).forEach(itm => removeClass(itm, className));\r\n return list;\r\n}\r\n\r\nexport function hasClass(\r\n element: HTMLElement | Element | EventTarget,\r\n value: string\r\n): boolean {\r\n return (element).classList.contains(value);\r\n}\r\n\r\nexport function addHref(element: HTMLAnchorElement, value: string): HTMLAnchorElement {\r\n element.href = value;\r\n return element;\r\n}\r\n\r\nexport function addToElement(element: HTMLElement, ...items: HTMLElement[]): HTMLElement {\r\n items.filter(i => i).forEach(i => element.appendChild(i));\r\n return element;\r\n}\r\n\r\nexport function addToElementAtTheBeginning(element: HTMLElement, ...items: HTMLElement[]): HTMLElement {\r\n const children = Array.from(element.children);\r\n return addToElement(element, ...items.concat(children));\r\n}\r\n\r\nexport function addElementsFromArray(target: HTMLElement, arr: HTMLElement[]) {\r\n arr.forEach(e => addToElement(target, e));\r\n return arr;\r\n}\r\n\r\nexport function getElementHeight(element: HTMLElement): number {\r\n return element.offsetHeight;\r\n}\r\n\r\nexport function setElementHeight(element: HTMLElement, height: number) {\r\n element.style.height = height ? height + 'px' : '';\r\n return this;\r\n}\r\n\r\nexport function isInViewPort(element: HTMLElement): boolean {\r\n const elementRect = element.getBoundingClientRect();\r\n let offsetHeight = window.innerHeight + 250;\r\n\r\n return elementRect.top < 0 && elementRect.bottom > 0\r\n || elementRect.top >= 0 && elementRect.top < offsetHeight\r\n || elementRect.bottom > 0 && elementRect.bottom < offsetHeight\r\n || elementRect.bottom <= (offsetHeight || document.documentElement.clientHeight) &&\r\n elementRect.right <= (window.innerWidth || document.documentElement.clientWidth);\r\n}\r\n\r\nexport function getSibling(element: HTMLElement, selector: string): HTMLElement {\r\n return element.parentElement.querySelector(selector);\r\n}\r\n\r\nexport function getClosest(element: HTMLElement, selector: string): HTMLElement {\r\n do {\r\n if (element.matches(selector)) {\r\n return element;\r\n }\r\n element = element.parentElement || element.parentNode;\r\n } while (element !== null && element.nodeType === 1);\r\n\r\n return null;\r\n}\r\n\r\nexport function createScriptTag(script: HTMLScriptElement): HTMLScriptElement {\r\n let domScript = document.createElement('script');\r\n domScript.type = 'text/javascript';\r\n\r\n if (script.src) {\r\n domScript.src = script.src;\r\n } else {\r\n domScript.textContent = script.innerText;\r\n }\r\n\r\n if (script.defer) {\r\n domScript.defer = true;\r\n }\r\n\r\n return domScript;\r\n}\r\n\r\nexport function insertScript(script: HTMLScriptElement): HTMLScriptElement {\r\n let domScript = document.createElement('script');\r\n domScript.type = 'text/javascript';\r\n\r\n if (script.src) {\r\n domScript.src = script.src;\r\n } else {\r\n domScript.textContent = script.innerText;\r\n }\r\n\r\n if (script.defer) {\r\n domScript.defer = true;\r\n }\r\n\r\n return document.head.appendChild(domScript);\r\n}\r\n\r\nexport function addScriptToHead(url: string, callback: Callback) {\r\n var newScript = document.createElement(\"script\");\r\n newScript.onerror = loadError;\r\n\r\n if (callback) {\r\n newScript.onload = callback;\r\n }\r\n\r\n newScript.src = url;\r\n\r\n return document.head.appendChild(newScript);\r\n}\r\n\r\nexport function loadError(oError) {\r\n throw new URIError(\"The script \" + oError.target.src + \" didn't load correctly.\");\r\n}\r\n\r\nexport function injectScriptsFromAjaxResponse(element: HTMLElement): Promise {\r\n\r\n const scripts = Array.from(element.getElementsByTagName('script'))\r\n .filter(script => !isScriptTagRendered(script))\r\n .map(createScriptTag);\r\n\r\n return Promise.all(scripts.map(script => new Promise((resolve, reject) => {\r\n if (script.src) {\r\n script.onload = () => resolve();\r\n script.onerror = () => {\r\n console.error(`Layer script was not loaded: URL ${(event.target).src}`);\r\n resolve();\r\n };\r\n } else {\r\n resolve();\r\n }\r\n\r\n document.head.appendChild(script);\r\n })));\r\n}\r\n\r\nexport function isScriptTagRendered(script: HTMLScriptElement): boolean {\r\n var exist: boolean = false;\r\n const shouldScriptNotBeMoved = script.hasAttribute('data-dont-move-script-from-layer');\r\n \r\n if (script.src) {\r\n (document.querySelectorAll(`[src=\"${script.src}\"]`).length > 0 && script.src.indexOf(\"recaptcha\") == -1 && script.src.indexOf(\"friendly-challenge\") == -1) ? exist = true : exist = false;\r\n }\r\n\r\n if (shouldScriptNotBeMoved) {\r\n exist = true;\r\n }\r\n\r\n return exist;\r\n}\r\n\r\nexport function toggleClass(node: HTMLElement, className: string, force?: boolean): HTMLElement {\r\n if (typeof force === undefined) {\r\n node.classList.toggle(className);\r\n } else {\r\n force\r\n ? node.classList.add(className)\r\n : node.classList.remove(className);\r\n }\r\n\r\n return node;\r\n}\r\n\r\nexport function getChildren(node: HTMLElement, selector?: string): HTMLElement[] {\r\n let children = Array.from(node.children);\r\n\r\n if (selector) {\r\n children = children.filter(ch => hasClass(ch, selector));\r\n }\r\n\r\n return children;\r\n}\r\n\r\nexport function dispatchEvent(element: HTMLElement, event: Event): HTMLElement {\r\n element.dispatchEvent(event);\r\n return element;\r\n}\r\n\r\n/*\r\n *\r\n * Helper Functions for ImageLoad\r\n *\r\n */\r\n\r\nexport const listenToLoad$ = fork(arg => arg, loadPicture$, setSourceAttr);\r\nexport const addSpinnerToImage = alt(not(isImage), showSpinner);\r\nexport const loadImageLazy$ = pipe(tap(addSpinnerToImage), listenToLoad$);\r\n\r\nexport function isImage(element: HTMLElement): HTMLImageElement | false {\r\n return element.tagName === 'IMG' ? element : false;\r\n}\r\n\r\nexport function isImageLoaded(img: HTMLImageElement): boolean {\r\n return (img.hasAttribute('src') || img.hasAttribute('srcset'))\r\n || (!isIOS && img.complete && img.naturalHeight !== 0);\r\n}\r\n\r\nexport function hasImageToBeLoaded(img: HTMLImageElement): boolean {\r\n if (!isImageLoaded(img) && isInViewPort(img)) {\r\n addClass(img.parentElement, 'image-loaded');\r\n }\r\n return !isImageLoaded(img) && isInViewPort(img) && Eucerin.supportWebP != undefined;\r\n}\r\n\r\nexport function loadPicture$(img: HTMLImageElement): Observable {\r\n return fromEvent(img, 'load').pipe(\r\n first(),\r\n map(e => e.target),\r\n map(removeDataAttr),\r\n map(hideSpinner),\r\n tap(() => document.dispatchEvent(new CustomEvent('Eucerin:lazyimageloaded'))));\r\n}\r\n\r\nexport function setSourceAttr(img: HTMLImageElement): HTMLImageElement {\r\n let src = img.dataset.src,\r\n srcset = img.dataset.srcset;\r\n\r\n if (Eucerin.supportWebP && img.tagName == \"SOURCE\") {\r\n if (src && src.includes('.webp')) img.setAttribute('src', src);\r\n\r\n\r\n if (srcset && srcset.includes('.webp')) img.setAttribute('srcset', srcset);\r\n\r\n } else {\r\n if (src && !src.includes('.webp')) img.setAttribute('src', src);\r\n\r\n\r\n if (srcset && !srcset.includes('.webp')) img.setAttribute('srcset', srcset);\r\n }\r\n\r\n if (img.tagName == \"IMG\") {\r\n if (Eucerin.supportWebP) {\r\n if (src) {\r\n src = src.replace(/(.jpg$|.jpeg$|.png$)/g, \".webp\");\r\n src = src.replace(/(.jpg\\?|.jpeg\\?|.png\\?)/g, \".webp?\");\r\n }\r\n\r\n if (srcset) {\r\n srcset = srcset.replace(/(.jpg$|.jpeg$|.png$)/g, \".webp\");\r\n srcset = srcset.replace(/(.jpg\\?|.jpg\\?|.png\\?)/g, \".webp?\");\r\n }\r\n }\r\n\r\n\r\n srcset && img.setAttribute('srcset', srcset);\r\n src && img.setAttribute('src', src);\r\n }\r\n\r\n return img;\r\n}\r\n\r\nexport function removeDataAttr(img: HTMLImageElement): HTMLImageElement {\r\n img.removeAttribute('data-src');\r\n img.removeAttribute('data-srcset');\r\n\r\n return img;\r\n}\r\n\r\nexport function showSpinner(img: HTMLImageElement) {\r\n addClass(img.parentElement, 'lazy-spinner');\r\n return img;\r\n}\r\n\r\nexport function hideSpinner(img: HTMLImageElement) {\r\n removeClass(img.parentElement, 'lazy-spinner');\r\n return img;\r\n}\r\n\r\nexport function checkWebPSupport() {\r\n return new Promise((resolve, reject) => {\r\n var img = new Image();\r\n img.onload = function () { resolve(); };\r\n img.onerror = function () { reject(); };\r\n img.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';\r\n })\r\n}\r\n\r\nexport function isEmpty(value) {\r\n return (value === undefined || value == null || value.length <= 0) ? true : false;\r\n}\r\n\r\nexport function scrollToElement(element, to, duration) {\r\n var start = element.scrollTop,\r\n change = to - start,\r\n currentTime = 0,\r\n increment = 20;\r\n\r\n var animateScroll = function () {\r\n currentTime += increment;\r\n\r\n var val = Math.easeInOutQuad(currentTime, start, change, duration);\r\n\r\n element.scrollTop = val;\r\n\r\n if (currentTime < duration) {\r\n setTimeout(animateScroll, increment);\r\n }\r\n };\r\n\r\n animateScroll();\r\n\r\n return;\r\n}\r\nexport function adjustLayerMarkUp(html: string, overlayTitle?, getLayerTitleFromContent?): HTMLElement {\r\n let node = createElementFromString(`
${html}
`),\r\n layerTitle = (overlayTitle) ? overlayTitle : '';\r\n\r\n if (getLayerTitleFromContent) {\r\n let title: HTMLElement = node.querySelector('h2') || node.querySelector('.hdl-3') || node.querySelector('.hdl-4');\r\n if (title) {\r\n layerTitle = title.innerHTML;\r\n title.remove();\r\n } else {\r\n layerTitle = '';\r\n }\r\n\r\n }\r\n\r\n return createElementFromString(`\r\n
\r\n ${(overlayTitle || getLayerTitleFromContent) ?\r\n `
\r\n

${layerTitle}

\r\n
`\r\n : \"\"}\r\n
${node.innerHTML}
\r\n
`);\r\n}\r\n\r\nexport function isObjectLiteral(a) {\r\n return (!!a) && (a.constructor === Object);\r\n};\r\n\r\nexport function isObject(a) {\r\n return typeof a === 'object' && a !== null;\r\n}\r\n\r\nexport function isArray(a) {\r\n return (!!a) && (a.constructor === Array);\r\n};\r\n\r\nexport function objectToStyleString(styleObject): string {\r\n return Object.entries(styleObject).map(([k, v]) => `${k}: ${v}`).join(';');\r\n};","function calculateTopLeftAndBottomRightCoordinates (element) {\n var rect = element.getBoundingClientRect()\n var topX =\n rect.left + (window.pageXOffset || document.documentElement.scrollLeft)\n var topY =\n rect.top + (window.pageYOffset || document.documentElement.scrollTop)\n return {\n x: [topX, topX + element.offsetWidth],\n y: [topY, topY + element.offsetHeight]\n }\n}\n\nfunction calculateGradient (A, B) {\n return (B.y - A.y) / (B.x - A.x)\n}\n\nmodule.exports = function (menuElement, options) {\n var delay = options.delay || 200\n var menuItemSelector = options.menuItemSelector || '.menu-aim__item'\n var menuItemActiveClassName =\n options.menuItemActiveClassName || 'menu-aim__item--active'\n var menuItemSubMenuSelector =\n options.menuItemSubMenuSelector || '.menu-aim__item-submenu'\n var delayingClassName = options.delayingClassName || 'menu-aim--delaying'\n\n var previousMouseCoordinates = {}\n var currentMouseCoordinates = {}\n var timeoutId\n var activeMenuItem\n var activeSubMenuTopLeftCoordinates\n var activeSubMenuBottomLeftCoordinates\n\n var menuElementCoordinates = calculateTopLeftAndBottomRightCoordinates(\n menuElement\n )\n var extremeCoordinates\n\n function saveMouseCoordinates (x, y) {\n previousMouseCoordinates.x = currentMouseCoordinates.x\n previousMouseCoordinates.y = currentMouseCoordinates.y\n currentMouseCoordinates.x = x\n currentMouseCoordinates.y = y\n }\n\n // Return `true` if there currently isn't an active menu item, or if\n // `currentMouseCoordinates` is outside of the triangle drawn between\n // `previousMouseCoordinates`, `activeSubMenuTopLeftCoordinates` and\n // `activeSubMenuBottomLeftCoordinates`.\n function shouldChangeActiveMenuItem () {\n // prettier-ignore\n return (\n !activeMenuItem ||\n calculateGradient(previousMouseCoordinates, activeSubMenuTopLeftCoordinates) <\n calculateGradient(currentMouseCoordinates, activeSubMenuTopLeftCoordinates) ||\n calculateGradient(previousMouseCoordinates, activeSubMenuBottomLeftCoordinates) >\n calculateGradient(currentMouseCoordinates, activeSubMenuBottomLeftCoordinates)\n )\n }\n\n // Possibly activates the given `menuItem`. If so, returns true.\n function possiblyActivateMenuItem (menuItem) {\n cancelPendingMenuItemActivations()\n if (shouldChangeActiveMenuItem()) {\n deactivateActiveMenuItem()\n activateMenuItem(menuItem)\n return true\n }\n }\n\n function activateMenuItem (menuItem) {\n activeMenuItem = menuItem\n activeMenuItem.classList.add(menuItemActiveClassName)\n var activeSubMenu = activeMenuItem.querySelector(menuItemSubMenuSelector)\n var activeSubMenuCoordinates = calculateTopLeftAndBottomRightCoordinates(\n activeSubMenu\n )\n activeSubMenuTopLeftCoordinates = {\n x: activeSubMenuCoordinates.x[0],\n y: activeSubMenuCoordinates.y[0]\n }\n activeSubMenuBottomLeftCoordinates = {\n x: activeSubMenuCoordinates.x[0],\n y: activeSubMenuCoordinates.y[1]\n }\n // `extremeCoordinates` corresponds to the top-left coordinates (Ax, Ay) and\n // bottom-right coordinates (Bx, By) of the entire menu, encompassing both the\n // `menuElement` and `activeSubMenu`.\n extremeCoordinates = {\n x: [\n menuElementCoordinates.x[0],\n activeSubMenuTopLeftCoordinates.x + activeSubMenu.offsetWidth\n ],\n y: [\n menuElementCoordinates.y[0],\n activeSubMenuTopLeftCoordinates.y + activeSubMenu.offsetHeight\n ]\n }\n }\n\n function possiblyDeactivateActiveMenuItem () {\n if (\n currentMouseCoordinates.x < extremeCoordinates.x[0] ||\n currentMouseCoordinates.x > extremeCoordinates.x[1] ||\n currentMouseCoordinates.y < extremeCoordinates.y[0] ||\n currentMouseCoordinates.y > extremeCoordinates.y[1]\n ) {\n cancelPendingMenuItemActivations()\n deactivateActiveMenuItem()\n }\n }\n\n function deactivateActiveMenuItem () {\n if (activeMenuItem) {\n menuElement.classList.remove(delayingClassName)\n activeMenuItem.classList.remove(menuItemActiveClassName)\n activeMenuItem = null\n }\n }\n\n function cancelPendingMenuItemActivations () {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n }\n\n function onMenuItemMouseEnter (event) {\n var menuItem = event.target\n if (!possiblyActivateMenuItem(menuItem)) {\n menuElement.classList.add(delayingClassName)\n timeoutId = setTimeout(function () {\n possiblyActivateMenuItem(menuItem)\n }, delay)\n }\n }\n var menuItems = menuElement.querySelectorAll(menuItemSelector)\n var i = menuItems.length\n while (i--) {\n menuItems[i].addEventListener('mouseenter', onMenuItemMouseEnter)\n }\n\n function onWindowMouseMove (event) {\n saveMouseCoordinates(event.pageX, event.pageY)\n if (activeMenuItem) {\n possiblyDeactivateActiveMenuItem()\n }\n }\n window.addEventListener('mousemove', onWindowMouseMove)\n\n return function () {\n i = menuItems.length\n while (i--) {\n menuItems[i].removeEventListener('mouseenter', onMenuItemMouseEnter)\n }\n window.removeEventListener('mousemove', onWindowMouseMove)\n }\n}\n"],"sourceRoot":""}