{"version":3,"file":"./modules/NivTNavigation.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/NivTNavigation.ts"],"sourcesContent":["/// \r\nimport { addLayer } from \"../ClassWithTracking/helpers\";\r\n\r\nconst fileName = 'NivTNavigation.ts';\r\n\r\n\r\nexport default class NivTNavigation {\r\n constructor(public element: HTMLElement) {\r\n \r\n if (window.NiveaX.IsUAEnabled) {\r\n this.init();\r\n }\r\n }\r\n\r\n init() {\r\n let logoElement: HTMLLinkElement = this.element.querySelector('.nx-nav-desktop__logo'),\r\n navigationItem: HTMLElement = this.element.querySelector('.nx-nav-desktop'),\r\n searchIcon: HTMLElement = this.element.querySelector('[data-action-id=\"search\"]'),\r\n smartCompanion: HTMLElement = document.querySelector('.nx-mob-nav--initialized');\r\n\r\n if (!logoElement) {\r\n console.onSelectorError('.nx-nav-desktop__logo', fileName);\r\n return;\r\n }\r\n if (!navigationItem) {\r\n console.onSelectorError('.nx-nav-desktop', fileName);\r\n return;\r\n }\r\n if (!searchIcon) {\r\n console.onSelectorError('.nx-search-icon', fileName);\r\n return;\r\n }\r\n\r\n // Tracking Home Logo\r\n if (logoElement) logoElement.addEventListener('click', () => {\r\n this.trackHomeLogo(logoElement.href);\r\n });\r\n\r\n // Tracking Desktop Menu Items\r\n if (navigationItem) navigationItem.addEventListener('click', (event) => {\r\n let linkElement: HTMLAnchorElement = event.target;\r\n if (linkElement.classList.contains('nx-nav-third-level__link--has-submenu')) {\r\n return false;\r\n }\r\n this.trackMenuItem(this.getLinkPath(event) + ' | ' + linkElement.getAttribute('href'), linkElement.href);\r\n });\r\n\r\n // Tracking Opening Search Layer\r\n if (searchIcon) searchIcon.addEventListener('click', () => {\r\n this.trackOpenSearchLayer();\r\n });\r\n\r\n // Tracking Submit Search Form\r\n document.addEventListener('niveax:submitHeaderSearchForm', (event) => {\r\n this.trackSubmitSearchForm(event);\r\n });\r\n\r\n // Tracking Opening Smart Companion\r\n if (smartCompanion) {\r\n this.trackOpenSmartCompanion();\r\n this.trackMenuItemSmartCompanion();\r\n } else {\r\n document.addEventListener('niveax:smartCompanionInitialized', (event) => {\r\n this.trackOpenSmartCompanion();\r\n this.trackMenuItemSmartCompanion();\r\n });\r\n }\r\n\r\n //@danko: missing listeners to track path of clicked companion link, proper path needs to be built Product>Face>link for example\r\n this.resetMenuSessionValue();\r\n }\r\n\r\n trackHomeLogo(destinationUrl: any) {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Navigation',\r\n eventAction: 'Nivea Button Click',\r\n eventLabel: 'Homepage',\r\n eventNonInteraction: false,\r\n });\r\n\r\n if (destinationUrl) { document.location = destinationUrl; }\r\n }\r\n\r\n trackMenuItem(eventLabel: string, destinationUrl: any) {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Navigation',\r\n eventAction: 'Item Click',\r\n eventLabel: eventLabel,\r\n eventNonInteraction: false,\r\n });\r\n\r\n if (destinationUrl) { document.location = destinationUrl; }\r\n }\r\n\r\n trackOpenSearchLayer() {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Site Search',\r\n eventAction: 'Focus',\r\n eventLabel: undefined,\r\n eventNonInteraction: false\r\n });\r\n }\r\n\r\n trackSubmitSearchForm(event) {\r\n let headerSearchForm: HTMLFormElement = document.querySelector('.nx-header-search-form');\r\n if (!headerSearchForm) {\r\n console.onSelectorError('.nx-header-search-form', fileName);\r\n return;\r\n }\r\n\r\n headerSearchForm.addEventListener('submit', (event) => {\r\n let target: HTMLElement = event.target;\r\n\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Site Search',\r\n eventAction: 'Submit',\r\n eventLabel: target.querySelector('input').value,\r\n eventNonInteraction: false,\r\n });\r\n });\r\n }\r\n\r\n trackOpenSmartCompanion() {\r\n let smartCompanionIcon: HTMLFormElement = document.querySelector('.nx-mob-nav__button');\r\n if (!smartCompanionIcon) {\r\n console.onSelectorError('.nx-mob-nav__button', fileName);\r\n return;\r\n }\r\n\r\n smartCompanionIcon.addEventListener('click', (event) => {\r\n let target: HTMLElement = event.currentTarget;\r\n if (!target.classList.contains('nx-btn--close-menu')) {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Navigation',\r\n eventAction: 'Open Menu',\r\n eventLabel: undefined,\r\n eventNonInteraction: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n trackMenuItemSmartCompanion() {\r\n let navigationItem: HTMLFormElement = document.querySelector('.nx-mob-nav__inner');\r\n if (!navigationItem) {\r\n console.onSelectorError('.nx-mob-nav__inner', fileName);\r\n return;\r\n }\r\n\r\n navigationItem.addEventListener('click', (event) => {\r\n let clickedElement: HTMLAnchorElement = event.target,\r\n clickedElementListElement = clickedElement.parentElement,\r\n pathObject = JSON.parse(sessionStorage.getItem('companionLinkPath'));\r\n\r\n if (clickedElement.tagName === 'A' && clickedElementListElement.childrenList) {\r\n event.preventDefault();\r\n\r\n if (clickedElement.closest('nav').classList.contains('nx-mob-nav__level--1')) {\r\n this.updateMenuSessionValue('firstLevel', clickedElement.innerText);\r\n this.resetMenuLevels();\r\n } else if (clickedElement.closest('nav').classList.contains('nx-mob-nav__level--2')) {\r\n this.updateMenuSessionValue('secondLevel', clickedElement.innerText);\r\n } else if (clickedElement.closest('nav').classList.contains('nx-mob-nav__level--3')) {\r\n this.updateMenuSessionValue('thirdLevel', clickedElement.innerText);\r\n } else if (clickedElement.closest('nav').classList.contains('nx-mob-nav__level--4')) {\r\n this.updateMenuSessionValue('fourthLevel', clickedElement.innerText);\r\n }\r\n }\r\n\r\n if (clickedElement.innerText === pathObject.secondLevel) {\r\n if (pathObject.secondLevel) {\r\n delete pathObject.secondLevel;\r\n sessionStorage.setItem('companionLinkPath', JSON.stringify(pathObject));\r\n }\r\n }\r\n\r\n if (clickedElementListElement.classList.contains('nx-mob-nav__item--small') || clickedElement.classList.contains('nx-mob-nav__item--small')) {\r\n this.trackMobileLinkPath(clickedElement);\r\n }\r\n\r\n });\r\n }\r\n\r\n updateMenuSessionValue(key: string, value: string) {\r\n let pathObject = JSON.parse(sessionStorage.getItem('companionLinkPath'));\r\n pathObject[key] = value;\r\n sessionStorage.setItem('companionLinkPath', JSON.stringify(pathObject));\r\n }\r\n\r\n resetMenuSessionValue() {\r\n sessionStorage.setItem('companionLinkPath', JSON.stringify({}));\r\n }\r\n\r\n resetMenuLevels() {\r\n let pathObject = JSON.parse(sessionStorage.getItem('companionLinkPath'));\r\n if (pathObject.secondLevel) {\r\n delete pathObject.secondLevel;\r\n }\r\n\r\n if (pathObject.thirdLevel) {\r\n delete pathObject.thirdLevel;\r\n }\r\n sessionStorage.setItem('companionLinkPath', JSON.stringify(pathObject));\r\n }\r\n\r\n trackMobileLinkPath(element: HTMLAnchorElement) {\r\n\r\n let pathObject = JSON.parse(sessionStorage.getItem('companionLinkPath')),\r\n linkPath: string = '';\r\n\r\n if (pathObject.firstLevel) {\r\n linkPath += pathObject.firstLevel;\r\n }\r\n\r\n if (pathObject.secondLevel) {\r\n linkPath += ' » ' + pathObject.secondLevel;\r\n }\r\n\r\n if (pathObject.thirdLevel) {\r\n linkPath += ' » ' + pathObject.thirdLevel;\r\n }\r\n\r\n if (element.parentElement.classList.contains('nx-mob-nav__item--small')) {\r\n linkPath += `${(linkPath != '' ? ' »' : '')} ${element.innerText}`\r\n }\r\n\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Navigation',\r\n eventAction: 'Item Click',\r\n navigationLevel: this.getNavigationLevel(element),\r\n eventLabel: linkPath,\r\n eventNonInteraction: false,\r\n });\r\n\r\n if (element.href) { document.location.href = element.href; }\r\n }\r\n\r\n getLinkPath(event: any) {\r\n let currentElement: HTMLElement = event.target,\r\n secondLevel: HTMLElement = currentElement.closest('.nx-nav-second-level__item--list'),\r\n secondLevelLink: HTMLElement,\r\n firstLevel: HTMLElement = currentElement.closest('.nx-nav-first-level__item'),\r\n firstLevelLink: HTMLElement,\r\n thirdLevel: HTMLElement = currentElement.closest('.nx-nav-third-level__item'),\r\n thirdLevelLink: HTMLElement,\r\n returnPath: string = '';\r\n\r\n if (firstLevel) {\r\n firstLevelLink = firstLevel.querySelector('.nx-nav-first-level__link');\r\n returnPath += firstLevelLink.title;\r\n }\r\n\r\n if (secondLevel) {\r\n secondLevelLink = secondLevel.querySelector('.nx-nav-desktop__second-level-link');\r\n returnPath += ' » ' + secondLevelLink.title;\r\n }\r\n\r\n if(thirdLevel){\r\n thirdLevelLink = thirdLevel.querySelector('.nx-nav-third-level__link');\r\n returnPath += ' » ' + thirdLevelLink.title;\r\n }\r\n\r\n if (currentElement !== secondLevelLink && currentElement !== firstLevelLink && currentElement !== thirdLevelLink) {\r\n returnPath += ' » ' + currentElement.title;\r\n }\r\n\r\n return returnPath;\r\n }\r\n\r\n getNavigationLevel(target) {\r\n if (target.closest('.nx-mob-nav__level--1'))\r\n return '1'\r\n else if (target.closest('.nx-mob-nav__level--2'))\r\n return '2'\r\n else if (target.closest('.nx-mob-nav__level--3'))\r\n return '3'\r\n else if (target.closest('.nx-mob-nav__level--4'))\r\n return '4'\r\n\r\n return '';\r\n }\r\n}"],"names":["fileName","NivTNavigation","constructor","element","window","NiveaX","IsUAEnabled","this","init","logoElement","querySelector","navigationItem","searchIcon","smartCompanion","document","addEventListener","trackHomeLogo","href","event","linkElement","target","classList","contains","trackMenuItem","getLinkPath","getAttribute","trackOpenSearchLayer","trackSubmitSearchForm","trackOpenSmartCompanion","trackMenuItemSmartCompanion","resetMenuSessionValue","console","onSelectorError","destinationUrl","eventCategory","eventAction","eventLabel","eventNonInteraction","location","undefined","headerSearchForm","value","smartCompanionIcon","currentTarget","clickedElement","clickedElementListElement","parentElement","pathObject","JSON","parse","sessionStorage","getItem","tagName","childrenList","preventDefault","closest","updateMenuSessionValue","innerText","resetMenuLevels","secondLevel","setItem","stringify","trackMobileLinkPath","key","thirdLevel","linkPath","firstLevel","navigationLevel","getNavigationLevel","secondLevelLink","firstLevelLink","thirdLevelLink","currentElement","returnPath","title"],"sourceRoot":""}