{"version":3,"file":"js/mobileNavigation.e1baf2d2a8caacab8477.js","mappings":"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","sources":["webpack://netzkern.am/./src/Feature/Navigation/code/Scripts/Navigation/mobileNavigation.js"],"sourcesContent":["import '../../Navigation/Styles/mobileNavigation.scss';\r\n\r\nawait import('Feature/Common/code/Scripts/Common/forEach');\r\nawait import(/* webpackChunkName: \"parents\" */ 'Feature/Common/code/Scripts/Common/parents');\r\n\r\nwindow.am = window.am || {};\r\n\r\nwindow.am.mobileNavigation = new function () {\r\n var that = this;\r\n var desktopWidth = 1024;\r\n\r\n this.init = function ()\r\n {\r\n if (document.querySelector('.nav-mobile') == null)\r\n {\r\n return;\r\n }\r\n\r\n var navButtonOpen = document.querySelector('.nav-mobile-open');\r\n var navButtonClose = document.querySelector('.nav-mobile-header-close');\r\n var parentMenuItems = document.querySelectorAll('.nav-mobile-level-item[data-has-children=\"true\"] > a');\r\n var menuHeaderItems = document.querySelectorAll('.nav-mobile-header-level-item > a');\r\n navButtonOpen.addEventListener('click', that.onOpenClick);\r\n navButtonClose.addEventListener('click', that.onCloseClick);\r\n window.addEventListener('resize', that.onResize);\r\n\r\n parentMenuItems.forEach(function (node)\r\n {\r\n node.addEventListener('click', that.onMenuParentItemClick);\r\n });\r\n\r\n menuHeaderItems.forEach(function (node)\r\n {\r\n node.addEventListener('click', that.onMenuHeaderItemClick);\r\n });\r\n\r\n that.resetToActiveLevel();\r\n that.setAnchorsAccessibility();\r\n };\r\n\r\n /**\r\n * Show full width mobile menu\r\n */\r\n this.onOpenClick = function () {\r\n var navMobile = document.querySelector('.nav-mobile');\r\n var navMobileHeader = document.querySelector('.nav-mobile-header');\r\n var closeButton = document.querySelector('.nav-mobile-header-close');\r\n var body = document.querySelector('body');\r\n\r\n window.scrollTo(0, 0);\r\n navMobile.classList.add('nav-mobile--visible');\r\n navMobileHeader.classList.add('nav-mobile-header--visible');\r\n navMobile.style.top = navMobileHeader.getBoundingClientRect().height;\r\n body.style.overflow = 'hidden';\r\n closeButton.querySelector('button').classList.add('js-hiraku-offcanvas-btn-active');\r\n };\r\n\r\n /**\r\n * Close full width mobile menu\r\n */\r\n this.onCloseClick = function () {\r\n var navMobile = document.querySelector('.nav-mobile');\r\n var navMobileHeader = document.querySelector('.nav-mobile-header');\r\n var closeButton = document.querySelector('.nav-mobile-header-close');\r\n var body = document.querySelector('body');\r\n\r\n navMobile.classList.remove('nav-mobile--visible');\r\n navMobileHeader.classList.remove('nav-mobile-header--visible');\r\n body.style.overflow = 'auto';\r\n closeButton.querySelector('button').classList.remove('js-hiraku-offcanvas-btn-active');\r\n\r\n if (body.classList.contains('nav-mobile-show')) {\r\n body.style.position = 'initial';\r\n }\r\n\r\n setTimeout(function () {\r\n that.resetToActiveLevel();\r\n },\r\n 420);\r\n };\r\n\r\n /**\r\n * Click handler for menu item\r\n * @param {any} event\r\n */\r\n this.onMenuParentItemClick = function (event) {\r\n event.preventDefault();\r\n var menuElement = document.querySelector('.nav-mobile-level[data-id=\"' + this.parentElement.dataset.id + '\"]');\r\n that.showMenuLevel(menuElement);\r\n };\r\n\r\n /**\r\n * Click handler for Header menu item \r\n * @param {any} event\r\n */\r\n this.onMenuHeaderItemClick = function (event) {\r\n event.preventDefault();\r\n\r\n // Get correct target menu level, default is root\r\n var menuElement = document.querySelector('.nav-mobile-level[data-id=\"' + this.parentElement.dataset.id + '\"]')\r\n || document.querySelector('.nav-mobile-level[data-id=\"00000000-0000-0000-0000-000000000000\"]');\r\n\r\n // Pre remove visible modifier, for correct animation direction\r\n document.querySelectorAll('.nav-mobile-level--visible').forEach(function (currentElement) {\r\n currentElement.classList.remove('nav-mobile-level--visible');\r\n });\r\n\r\n // Pre remove visible modifier, for correct animation direction\r\n document.querySelectorAll('.nav-mobile-header-level--visible').forEach(function (currentElement) {\r\n currentElement.classList.remove('nav-mobile-header-level--visible');\r\n });\r\n\r\n that.showMenuLevel(menuElement);\r\n };\r\n\r\n /**\r\n * Hide navigation on desktop size\r\n */\r\n this.onResize = function () {\r\n var navMobile = document.querySelector('.nav-mobile');\r\n\r\n if (window.innerWidth >= desktopWidth && navMobile.classList.contains('nav-mobile--visible')) {\r\n that.onCloseClick();\r\n }\r\n\r\n that.setAnchorsAccessibility();\r\n };\r\n\r\n /**\r\n * Disables anchors accessibility for desktop and enables it on mobile\r\n */\r\n this.setAnchorsAccessibility = function () {\r\n var anchors = document.querySelectorAll('.nav-mobile-header a, .nav-mobile a');\r\n if (window.innerWidth >= desktopWidth) {\r\n anchors.forEach(function (element) {\r\n element.setAttribute('tabindex', '-1');\r\n element.setAttribute('aria-hidden', 'true');\r\n });\r\n } else {\r\n anchors.forEach(function (element) {\r\n element.removeAttribute('tabindex');\r\n element.removeAttribute('aria-hidden');\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Resets all levels to the active one or default the root level menu\r\n */\r\n this.resetToActiveLevel = function () {\r\n var rootElement = document.querySelector('.nav-mobile-level[data-id=\"00000000-0000-0000-0000-000000000000\"]');\r\n var activeMenuItem = document.querySelector('.nav-mobile-level-item--active');\r\n\r\n // Remove all modifiers for initial state\r\n document.querySelectorAll('.nav-mobile-level--visible, .nav-mobile-level--hidden').forEach(function (currentElement) {\r\n currentElement.classList.remove('nav-mobile-level--visible');\r\n currentElement.classList.remove('nav-mobile-level--hidden');\r\n });\r\n document.querySelectorAll('.nav-mobile-header-level--visible, .nav-mobile-header-level--hidden').forEach(function (currentElement) {\r\n currentElement.classList.remove('nav-mobile-header-level--visible');\r\n currentElement.classList.remove('nav-mobile-header-level--hidden');\r\n });\r\n\r\n if (activeMenuItem) {\r\n // Pre hide all parents\r\n var parent = document.querySelector('.nav-mobile-level[data-id=\"' + activeMenuItem.dataset.parentId + '\"]');\r\n rootElement.classList.add('nav-mobile-level--hidden');\r\n\r\n while (parent) {\r\n // Also reset header\r\n var parentHeader = document.querySelector('.nav-mobile-header-level[data-id=\"' + parent.dataset.id + '\"]');\r\n if (parentHeader) {\r\n parentHeader.classList.add('nav-mobile-header-level--hidden');\r\n }\r\n\r\n parent.classList.add('nav-mobile-level--hidden');\r\n parent = document.querySelector('.nav-mobile-level[data-id=\"' + parent.dataset.parentId + '\"]');\r\n }\r\n\r\n // Actually reset to active menu item\r\n that.showMenuLevel(activeMenuItem.parentElement);\r\n } else {\r\n // Default is root menu\r\n rootElement.classList.add('nav-mobile-level--visible');\r\n that.showMenuLevel(rootElement);\r\n }\r\n };\r\n\r\n /**\r\n * Shows the specific menu level element\r\n * @param {any} menuElementToShow\r\n */\r\n this.showMenuLevel = function (menuElementToShow) {\r\n // Pre hide all current visible\r\n document.querySelectorAll('.nav-mobile-level--visible').forEach(function (currentElement) {\r\n currentElement.classList.add('nav-mobile-level--hidden');\r\n });\r\n\r\n // Append meta navigations\r\n that.appendMetaNavigations(menuElementToShow);\r\n\r\n // slide new menu level in\r\n menuElementToShow.scrollTop = 0;\r\n menuElementToShow.classList.remove('nav-mobile-level--hidden');\r\n menuElementToShow.classList.add('nav-mobile-level--visible');\r\n\r\n // set header menu level\r\n var headerElement = document.querySelector('.nav-mobile-header-level[data-id=\"' + menuElementToShow.dataset.id + '\"]');\r\n that.showMenuHeaderLevel(headerElement);\r\n };\r\n\r\n /**\r\n * Shows the specific menu header level element\r\n * @param {any} headerElementToShow\r\n */\r\n this.showMenuHeaderLevel = function (headerElementToShow) {\r\n // Pre hide all current visible\r\n document.querySelectorAll('.nav-mobile-header-level--visible').forEach(function (currentElement) {\r\n currentElement.classList.add('nav-mobile-header-level--hidden');\r\n });\r\n\r\n // slide new header in\r\n headerElementToShow.classList.remove('nav-mobile-header-level--hidden');\r\n headerElementToShow.classList.add('nav-mobile-header-level--visible');\r\n\r\n // Show logo, if root menu is reached\r\n var headerContentElement = document.querySelector('.nav-mobile-header-content');\r\n\r\n if (headerElementToShow.dataset.id === \"00000000-0000-0000-0000-000000000000\") {\r\n headerContentElement.classList.remove('nav-mobile-header-content--visible');\r\n } else {\r\n headerContentElement.classList.add('nav-mobile-header-content--visible');\r\n }\r\n };\r\n\r\n this.appendMetaNavigations = function (menuElement) {\r\n if (menuElement.dataset.hasMetaNavigationItems === 'true') {\r\n return;\r\n }\r\n\r\n var itemTemplates = document.querySelectorAll('.nav-mobile-meta-template > .nav-mobile-meta > .nav-mobile-meta-item');\r\n itemTemplates.forEach(function (currentItemTemplate) {\r\n menuElement.appendChild(currentItemTemplate.cloneNode(true));\r\n });\r\n\r\n menuElement.dataset.hasMetaNavigationItems = true;\r\n\r\n // Need to remove the original html markup because of the doubled id\r\n // and the original markup is no longer used.\r\n that.removeOriginalAfterCloned();\r\n };\r\n\r\n this.removeOriginalAfterCloned = function ()\r\n {\r\n var mobileSwitchNavigation = document.querySelector('.nav-mobile-meta-template .nav-mobile-meta-right');\r\n if (mobileSwitchNavigation != null) {\r\n mobileSwitchNavigation.parentElement.remove();\r\n }\r\n };\r\n\r\n this.fireNavItemEvent = (eventName, params) => {\r\n const event = new CustomEvent(\"mobileNavigationNavItem\", { detail: {\r\n event: eventName,\r\n params: params\r\n }});\r\n\r\n window.dispatchEvent(event);\r\n\r\n return false;\r\n };\r\n}\r\n\r\nwindow.am.mobileNavigation.init();"],"names":["window","am","mobileNavigation","that","this","init","document","querySelector","navButtonOpen","navButtonClose","parentMenuItems","querySelectorAll","menuHeaderItems","addEventListener","onOpenClick","onCloseClick","onResize","forEach","node","onMenuParentItemClick","onMenuHeaderItemClick","resetToActiveLevel","setAnchorsAccessibility","navMobile","navMobileHeader","closeButton","body","scrollTo","classList","add","style","top","getBoundingClientRect","height","overflow","remove","contains","position","setTimeout","event","preventDefault","menuElement","parentElement","dataset","id","showMenuLevel","currentElement","innerWidth","anchors","element","setAttribute","removeAttribute","rootElement","activeMenuItem","parent","parentId","parentHeader","menuElementToShow","appendMetaNavigations","scrollTop","headerElement","showMenuHeaderLevel","headerElementToShow","headerContentElement","hasMetaNavigationItems","currentItemTemplate","appendChild","cloneNode","removeOriginalAfterCloned","mobileSwitchNavigation","fireNavItemEvent","eventName","params","CustomEvent","detail","dispatchEvent"],"sourceRoot":""}