{"version":3,"file":"mega-navigation.min.js","sources":["navigation/mega-navigation.min.js"],"sourcesContent":["\"use strict\";\n\n(function () {\n var navFirstItem = document.querySelector('.mega_navigation .menu_item:not(.utility__item):not(.button)') || document.querySelector('.mega_navigation .site_logo') || document.querySelector('.mega_navigation__inner');\n var navSearchWrapper = document.querySelector('.search_wrapper');\n var searchField = document.getElementById('menu-search-field');\n var searchButton = document.getElementById('search__button');\n var searchClose = document.getElementById('search__close');\n var menuInner = document.querySelector('.mega_navigation__inner');\n var navItems = menuInner && menuInner.querySelectorAll('button, [role=\"button\"]');\n var body = document.body;\n var logoOffset = null;\n body.classList.add('mega-header');\n menuInner.addEventListener('focusin', function () {\n if (header.classList.contains('hidden-header')) {\n header.classList.remove('hidden-header');\n body.classList.remove('hidden-header');\n }\n }, true);\n if (navFirstItem.classList.contains('site_logo')) {\n logoOffset = navFirstItem.getBoundingClientRect().right + 12;\n }\n var isMobile = function isMobile() {\n return window.innerWidth < 900;\n };\n var setMenu = function setMenu(el) {\n var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n navItems.forEach(function (prev) {\n var parent = prev.closest('.menu_item');\n var checks = parent && parent.querySelectorAll('.menu__checkbox');\n parent && parent.classList.remove('open');\n if (!show && checks) {\n checks.forEach(function (check) {\n return check.classList.remove('checked');\n });\n if (parent.classList.contains('search')) searchField.value = '';\n }\n prev.getAttribute('aria-expanded') && prev.setAttribute('aria-expanded', 'false');\n });\n if (show) {\n var parent = el.closest('.menu_item');\n parent.classList.add('open');\n el.setAttribute('aria-expanded', 'true');\n }\n el.focus();\n };\n var setSearchFieldWidth = function setSearchFieldWidth() {\n if (isMobile()) return;\n navSearchWrapper.style.width = searchButton.getBoundingClientRect().left - (logoOffset ? logoOffset : navFirstItem.getBoundingClientRect().left) + searchButton.offsetWidth + 'px';\n };\n var searchFocus = function searchFocus() {\n return searchField.focus();\n };\n if (searchButton && navSearchWrapper && navFirstItem && searchClose) {\n document.addEventListener('readystatechange', function (e) {\n navSearchWrapper.style.visibility = 'hidden';\n if (e.target.readyState === 'complete') {\n setSearchFieldWidth();\n navSearchWrapper.style.removeProperty('visibility');\n }\n });\n if (searchField) {\n searchButton.addEventListener('click', function () {\n setSearchFieldWidth();\n setTimeout(function () {\n return searchFocus();\n }, 100);\n });\n searchField.addEventListener('blur', function () {\n if (searchField.value.length === 0) {\n searchClose.click();\n setMenu(searchButton);\n }\n });\n searchClose.addEventListener('click', function (e) {\n e.preventDefault();\n searchField.value = '';\n setMenu(searchButton);\n searchButton.focus();\n });\n searchButton.addEventListener('keydown', function (e) {\n return (e.key === ' ' || e.keyCode === KEYCODE_SPACE) && searchFocus();\n });\n searchClose.addEventListener('keydown', function (e) {\n e.preventDefault();\n (e.key === ' ' || e.keyCode === KEYCODE_SPACE) && searchClose.click();\n });\n }\n var _resetTimeout;\n window.addEventListener('resize', function () {\n clearTimeout(_resetTimeout);\n _resetTimeout = setTimeout(setSearchFieldWidth, 50);\n });\n }\n\n // ============= On Scroll Header ===============\n var header = document.querySelector('[data-navigation-node]');\n var isMenuOpened = document.getElementById('main-navigation-menu');\n var isLanguageMenuOpened = document.getElementById('language-menu-switch');\n var scrollPosition = 0;\n var getBodyRectTop = function getBodyRectTop() {\n return Math.round(body.getBoundingClientRect().top);\n };\n var setScrollPosition = function setScrollPosition() {\n return scrollPosition = getBodyRectTop() <= 0 ? getBodyRectTop() : 0;\n };\n var onScroll = function onScroll() {\n if (isMenuOpened && isLanguageMenuOpened) {\n if (isMobile() && (isMenuOpened.classList.contains('checked') || isLanguageMenuOpened.classList.contains('checked'))) {\n setScrollPosition();\n return;\n }\n }\n if (!header.contains(document.activeElement)) {\n if (getBodyRectTop() >= scrollPosition) {\n body.classList.remove('hidden-header');\n header.classList.remove('hidden-header');\n } else if (!body.classList.contains('overlay-visible')) {\n body.classList.add('hidden-header');\n header.classList.add('hidden-header');\n }\n }\n if (header.parentElement.classList.contains('inverted')) {\n if (getBodyRectTop() + window.innerHeight >= 0) header.parentElement.classList.remove('scrolled-header');else header.parentElement.classList.add('scrolled-header');\n }\n setScrollPosition();\n };\n if (header) {\n var scrollTimeout;\n window.addEventListener('scroll', function () {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(onScroll, 25);\n });\n }\n // ============= On Scroll Header END ===============\n\n var menuButton = document.querySelectorAll('.language__link, .mobile__button');\n menuButton && menuButton.forEach(function (button) {\n return button.addEventListener('click', function () {\n if (!isMobile()) return;\n var menuOpened = document.querySelectorAll('.menu__checkbox.checked');\n menuOpened.length && menuOpened.forEach(function (check) {\n return check.id !== button.dataset.checkboxLabelFor && check.classList.remove('checked');\n });\n });\n });\n var resetTimeout;\n var docHeight = function docHeight() {\n return document.documentElement.style.setProperty('--doc-height', \"\".concat(window.innerHeight, \"px\"));\n };\n var resetHeight = function resetHeight() {\n clearTimeout(resetTimeout);\n resetTimeout = setTimeout(docHeight, 50);\n };\n docHeight();\n document.addEventListener('readystatechange', function (e) {\n return e.target.readyState === 'complete' && docHeight();\n });\n window.addEventListener('resize', resetHeight);\n window.addEventListener('orientationchange', resetHeight);\n if (navItems.length) {\n navItems.forEach(function (item) {\n if (item.getAttribute('aria-expanded')) {\n var parent = item.closest('.menu_item');\n menuFocusTrap(parent);\n 'keydown click'.split(' ').forEach(function (type) {\n return item.addEventListener(type, function (e) {\n if (isMobile()) return;\n if (e.key === ' ' || e.keyCode === KEYCODE_SPACE || type === 'click' || e.key === 'ArrowDown') {\n navItems.forEach(function (iItem) {\n if (iItem !== item) {\n setMenu(iItem);\n }\n });\n e.preventDefault();\n setMenu(item, !parent.classList.contains('open'));\n }\n }, false);\n });\n 'keyup mouseout'.split(' ').forEach(function (type) {\n return parent.addEventListener(type, function (e) {\n if (isMobile()) return;\n if ((parent.classList.contains('search') || searchField.value.length) && type === 'mouseout') return;\n if (e.key === 'Escape' || e.keyCode === KEYCODE_ESC || e.key === 'ArrowUp' || type === 'mouseout') setMenu(item);\n });\n });\n }\n });\n menuInner && menuInner.focus();\n }\n\n // Top Level Arrow Navigation\n var levelOnItems = menuInner && menuInner.querySelectorAll('*:not([data-mobile]) [role=\"button\"]');\n if (levelOnItems.length) {\n var activate = function activate(target, active) {\n var next = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var current = 0;\n active.classList.remove('tab-focus');\n levelOnItems.forEach(function (item, index) {\n if (item === target) current = next ? index + 1 : index - 1;\n });\n if (current < 0) {\n current = levelOnItems.length - 1;\n } else if (current > levelOnItems.length - 1) {\n current = 0;\n }\n levelOnItems[current].focus();\n levelOnItems[current].classList.add('tab-focus');\n };\n levelOnItems.forEach(function (item) {\n return item.addEventListener('keyup', function (e) {\n if (e.key === ('ArrowRight' || 'ArrowLeft')) e.preventDefault();\n switch (e.key) {\n case 'ArrowRight':\n activate(e.target, document.activeElement);\n break;\n case 'ArrowLeft':\n activate(e.target, document.activeElement, false);\n break;\n }\n });\n });\n }\n})();\nvar KEYCODE_TAB = 9;\nvar KEYCODE_ENTER = 13;\nvar KEYCODE_ESC = 27;\nvar KEYCODE_SPACE = 32;\nfunction menuFocusTrap(element) {\n var focusable = element.querySelectorAll('a, button, [role=\"button\"][aria-haspopup=\"true\"], input[type=\"text\"]:not([disabled])');\n var first = focusable[1];\n var last = focusable[focusable.length - 1];\n focusable && focusable.forEach(function (el) {\n el.addEventListener('keydown', function (e) {\n return (e.key === 'Enter' || e.keyCode === KEYCODE_ENTER) && e.target.click();\n });\n });\n element.addEventListener('keydown', function (e) {\n var isTab = e.key === 'Tab' || e.keyCode === KEYCODE_TAB;\n if (!isTab || focusable.length === 1) return;\n if (e.shiftKey && document.activeElement === first) {\n e.preventDefault();\n last.focus(); /* shift + tab */\n } else if (!e.shiftKey && document.activeElement === last) {\n e.preventDefault();\n first.focus(); /* tab */\n }\n });\n element.addEventListener('keyup', function () {\n return document.activeElement === focusable[0] && focusable[0].getAttribute('aria-expanded') === 'true' && focusable[1].focus();\n });\n}"],"names":["isMobile","window","innerWidth","setMenu","el","show","arguments","length","undefined","navItems","forEach","prev","parent","closest","checks","querySelectorAll","classList","remove","check","contains","searchField","value","getAttribute","setAttribute","add","focus","setSearchFieldWidth","navSearchWrapper","style","width","searchButton","getBoundingClientRect","left","logoOffset","navFirstItem","offsetWidth","searchFocus","setScrollPosition","scrollPosition","getBodyRectTop","onScroll","isMenuOpened","isLanguageMenuOpened","header","document","activeElement","body","parentElement","innerHeight","docHeight","documentElement","setProperty","concat","resetHeight","clearTimeout","resetTimeout","setTimeout","_resetTimeout","scrollTimeout","activate","querySelector","getElementById","searchClose","menuInner","addEventListener","right","e","visibility","target","readyState","removeProperty","click","preventDefault","key","keyCode","KEYCODE_SPACE","Math","round","top","menuButton","levelOnItems","button","menuOpened","id","dataset","checkboxLabelFor","item","menuFocusTrap","split","type","iItem","KEYCODE_ESC","active","next","current","index","KEYCODE_TAB","KEYCODE_ENTER","element","focusable","first","last","shiftKey"],"mappings":"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"}