{"version":3,"file":"custom-navigation.min.js","sources":["custom-navigation.min.js"],"sourcesContent":["\"use strict\";\n\n(function () {\n var navContent = document.querySelector('.custom_navigation__content');\n var navSearchWrapper = document.querySelector('.navbar_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('.custom_navigation__inner');\n var navItems = menuInner && menuInner.querySelectorAll('button, [role=\"button\"]');\n var body = document.body;\n body.classList.add('custom-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 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 (window.innerWidth < 1200) return;\n navSearchWrapper.style.width = searchButton.getBoundingClientRect().left - navContent.getBoundingClientRect().left + searchButton.offsetWidth + 'px';\n };\n var searchFocus = function searchFocus() {\n return searchField.focus();\n };\n if (searchButton && navSearchWrapper && 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 }\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.getElementById('custom-navigation-fixed');\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 (window.innerWidth < 1200 && (isMenuOpened.classList.contains('checked') || isLanguageMenuOpened.classList.contains('checked'))) {\n setScrollPosition();\n return;\n }\n if (!header.contains(document.activeElement)) {\n if (getBodyRectTop() >= scrollPosition) {\n header.classList.remove('hidden-header');\n body.classList.remove('hidden-header');\n } else if (!body.classList.contains('overlay-visible')) {\n header.classList.add('hidden-header');\n body.classList.add('hidden-header');\n }\n }\n if (header.parentElement.classList.contains('custom_navigation--inverted')) {\n if (getBodyRectTop() + window.innerHeight >= 0) {\n header.parentElement.classList.remove('scrolled-header');\n } else {\n header.parentElement.classList.add('scrolled-header');\n }\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, .menu__button');\n if (menuButton) {\n menuButton.forEach(function (button) {\n button.addEventListener('click', function () {\n if (window.innerWidth >= 1200) 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 }\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 (e.key === ' ' || e.keyCode === KEYCODE_SPACE || type === 'click') {\n navItems.forEach(function (iItem) {\n if (iItem !== item) {\n setMenu(iItem);\n }\n });\n setMenu(item, !parent.classList.contains('open'));\n console.log(type + 'fired');\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' || type === 'keyup')) 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})();\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":["setMenu","el","show","arguments","length","undefined","navItems","forEach","prev","parent","closest","checks","querySelectorAll","classList","remove","check","contains","searchField","value","getAttribute","setAttribute","add","focus","setSearchFieldWidth","window","innerWidth","navSearchWrapper","style","width","searchButton","getBoundingClientRect","left","navContent","offsetWidth","searchFocus","setScrollPosition","scrollPosition","getBodyRectTop","onScroll","isMenuOpened","isLanguageMenuOpened","header","document","activeElement","body","parentElement","innerHeight","docHeight","documentElement","setProperty","concat","resetHeight","clearTimeout","resetTimeout","setTimeout","_resetTimeout","scrollTimeout","querySelector","getElementById","searchClose","menuInner","addEventListener","e","visibility","target","readyState","removeProperty","click","preventDefault","key","keyCode","KEYCODE_SPACE","Math","round","top","menuButton","button","menuOpened","id","dataset","checkboxLabelFor","item","menuFocusTrap","split","type","iItem","console","log","KEYCODE_ESC","KEYCODE_TAB","KEYCODE_ENTER","element","focusable","first","last","shiftKey"],"mappings":"CAEA,KAmBgB,SAAVA,EAA2BC,GAC7B,IAAIC,EAA0B,EAAnBC,UAAUC,QAA+BC,KAAAA,IAAjBF,UAAU,IAAmBA,UAAU,GAC1EG,EAASC,QAAQ,SAAUC,GACzB,IAAIC,EAASD,EAAKE,QAAQ,YAAY,EAClCC,EAASF,GAAUA,EAAOG,iBAAiB,iBAAiB,EAChEH,GAAUA,EAAOI,UAAUC,OAAO,MAAM,EACpC,CAACZ,GAAQS,IACXA,EAAOJ,QAAQ,SAAUQ,GACvB,OAAOA,EAAMF,UAAUC,OAAO,SAAS,CACzC,CAAC,EACGL,EAAOI,UAAUG,SAAS,QAAQ,KAAGC,EAAYC,MAAQ,IAE/DV,EAAKW,aAAa,eAAe,GAAKX,EAAKY,aAAa,gBAAiB,OAAO,CAClF,CAAC,EACGlB,IACWD,EAAGS,QAAQ,YAAY,EAC7BG,UAAUQ,IAAI,MAAM,EAC3BpB,EAAGmB,aAAa,gBAAiB,MAAM,GAEzCnB,EAAGqB,MAAM,CACX,CAC0B,SAAtBC,IACEC,OAAOC,WAAa,OACxBC,EAAiBC,MAAMC,MAAQC,EAAaC,sBAAsB,EAAEC,KAAOC,EAAWF,sBAAsB,EAAEC,KAAOF,EAAaI,YAAc,KAClJ,CACkB,SAAdC,IACF,OAAOjB,EAAYK,MAAM,CAC3B,CAkDwB,SAApBa,IACKC,EAAiBC,EAAe,GAAK,EAAIA,EAAe,EAAI,CACrE,CACe,SAAXC,IACEd,OAAOC,WAAa,OAASc,EAAa1B,UAAUG,SAAS,SAAS,GAAKwB,EAAqB3B,UAAUG,SAAS,SAAS,KAI3HyB,EAAOzB,SAAS0B,SAASC,aAAa,IACrCN,EAAe,GAAKD,GACtBK,EAAO5B,UAAUC,OAAO,eAAe,EACvC8B,EAAK/B,UAAUC,OAAO,eAAe,GAC3B8B,EAAK/B,UAAUG,SAAS,iBAAiB,IACnDyB,EAAO5B,UAAUQ,IAAI,eAAe,EACpCuB,EAAK/B,UAAUQ,IAAI,eAAe,IAGlCoB,EAAOI,cAAchC,UAAUG,SAAS,6BAA6B,IAC1B,GAAzCqB,EAAe,EAAIb,OAAOsB,YAC5BL,EAAOI,cAAchC,UAAUC,OAAO,iBAAiB,EAEvD2B,EAAOI,cAAchC,UAAUQ,IAAI,iBAAiB,IAGxDc,EAAkB,CACpB,CAuBgB,SAAZY,IACF,OAAOL,SAASM,gBAAgBrB,MAAMsB,YAAY,eAAgB,GAAGC,OAAO1B,OAAOsB,YAAa,IAAI,CAAC,CACvG,CACkB,SAAdK,IACFC,aAAaC,CAAY,EACzBA,EAAeC,WAAWP,EAAW,EAAE,CACzC,CArJA,IAgFMQ,EA0CAC,EAoBFH,EA9IArB,EAAaU,SAASe,cAAc,6BAA6B,EACjE/B,EAAmBgB,SAASe,cAAc,wBAAwB,EAClExC,EAAcyB,SAASgB,eAAe,mBAAmB,EACzD7B,EAAea,SAASgB,eAAe,gBAAgB,EACvDC,EAAcjB,SAASgB,eAAe,eAAe,EACrDE,EAAYlB,SAASe,cAAc,2BAA2B,EAC9DnD,EAAWsD,GAAaA,EAAUhD,iBAAiB,yBAAyB,EAC5EgC,EAAOF,SAASE,KAiFhBH,GAhFJG,EAAK/B,UAAUQ,IAAI,eAAe,EAClCuC,EAAUC,iBAAiB,UAAW,WAChCpB,EAAO5B,UAAUG,SAAS,eAAe,IAC3CyB,EAAO5B,UAAUC,OAAO,eAAe,EACvC8B,EAAK/B,UAAUC,OAAO,eAAe,EAEzC,EAAG,CAAA,CAAI,EAgCHe,GAAgBH,GAAoBiC,IACtCjB,SAASmB,iBAAiB,mBAAoB,SAAUC,GACtDpC,EAAiBC,MAAMoC,WAAa,SACR,aAAxBD,EAAEE,OAAOC,aACX1C,EAAoB,EACpBG,EAAiBC,MAAMuC,eAAe,YAAY,EAEtD,CAAC,EACGjD,IACFY,EAAagC,iBAAiB,QAAS,WACrCtC,EAAoB,EACpB+B,WACSpB,EACN,GAAG,CACR,CAAC,EACDjB,EAAY4C,iBAAiB,OAAQ,WACF,IAA7B5C,EAAYC,MAAMd,QACpBuD,EAAYQ,MAAM,CAEtB,CAAC,EACDR,EAAYE,iBAAiB,QAAS,SAAUC,GAC9CA,EAAEM,eAAe,EACjBnD,EAAYC,MAAQ,GACpBlB,EAAQ6B,CAAY,EACpBA,EAAaP,MAAM,CACrB,CAAC,EACDO,EAAagC,iBAAiB,UAAW,SAAUC,GACjD,OAAkB,MAAVA,EAAEO,KAAeP,EAAEQ,UAAYC,gBAAkBrC,EAAY,CACvE,CAAC,EACDyB,EAAYE,iBAAiB,UAAW,SAAUC,GAChDA,EAAEM,eAAe,EACN,MAAVN,EAAEO,KAAeP,EAAEQ,UAAYC,eAAkBZ,EAAYQ,MAAM,CACtE,CAAC,GAGH3C,OAAOqC,iBAAiB,SAAU,WAChCT,aAAaG,CAAa,EAC1BA,EAAgBD,WAAW/B,EAAqB,EAAE,CACpD,CAAC,GAIUmB,SAASgB,eAAe,yBAAyB,GAC1DnB,EAAeG,SAASgB,eAAe,sBAAsB,EAC7DlB,EAAuBE,SAASgB,eAAe,sBAAsB,EACrEtB,EAAiB,EACjBC,EAAiB,WACnB,OAAOmC,KAAKC,MAAM7B,EAAKd,sBAAsB,EAAE4C,GAAG,CACpD,EAoCIC,GATAlC,GAEFjB,OAAOqC,iBAAiB,SAAU,WAChCT,aAAaI,CAAa,EAC1BA,EAAgBF,WAAWhB,EAAU,EAAE,CACzC,CAAC,EAIcI,SAAS9B,iBAAiB,gCAAgC,GACvE+D,GACFA,EAAWpE,QAAQ,SAAUqE,GAC3BA,EAAOf,iBAAiB,QAAS,WAC/B,IACIgB,EADqB,MAArBrD,OAAOC,aACPoD,EAAanC,SAAS9B,iBAAiB,yBAAyB,GACzDR,QAAUyE,EAAWtE,QAAQ,SAAUQ,GAChD,OAAOA,EAAM+D,KAAOF,EAAOG,QAAQC,kBAAoBjE,EAAMF,UAAUC,OAAO,SAAS,CACzF,CAAC,CACH,CAAC,CACH,CAAC,EAUHiC,EAAU,EACVL,SAASmB,iBAAiB,mBAAoB,SAAUC,GACtD,MAA+B,aAAxBA,EAAEE,OAAOC,YAA6BlB,EAAU,CACzD,CAAC,EACDvB,OAAOqC,iBAAiB,SAAUV,CAAW,EAC7C3B,OAAOqC,iBAAiB,oBAAqBV,CAAW,EACpD7C,EAASF,SACXE,EAASC,QAAQ,SAAU0E,GACzB,IACMxE,EADFwE,EAAK9D,aAAa,eAAe,IAEnC+D,cADIzE,EAASwE,EAAKvE,QAAQ,YAAY,CAClB,EACpB,gBAAgByE,MAAM,GAAG,EAAE5E,QAAQ,SAAU6E,GAC3C,OAAOH,EAAKpB,iBAAiBuB,EAAM,SAAUtB,GAC7B,MAAVA,EAAEO,KAAeP,EAAEQ,UAAYC,eAA0B,UAATa,IAClD9E,EAASC,QAAQ,SAAU8E,GACrBA,IAAUJ,GACZjF,EAAQqF,CAAK,CAEjB,CAAC,EACDrF,EAAQiF,EAAM,CAACxE,EAAOI,UAAUG,SAAS,MAAM,CAAC,EAChDsE,QAAQC,IAAIH,EAAO,OAAO,EAE9B,EAAG,CAAA,CAAK,CACV,CAAC,EACD,iBAAiBD,MAAM,GAAG,EAAE5E,QAAQ,SAAU6E,GAC5C,OAAO3E,EAAOoD,iBAAiBuB,EAAM,SAAUtB,GA/J9CtC,OAAOC,WAAa,MAiKdhB,EAAOI,UAAUG,SAAS,QAAQ,GAAKC,EAAYC,MAAMd,UAAqB,aAATgF,GAAgC,UAATA,IACnF,WAAVtB,EAAEO,KAAoBP,EAAEQ,UAAYkB,aAAyB,YAAV1B,EAAEO,KAA8B,aAATe,GAAqBpF,EAAQiF,CAAI,CACjH,CAAC,CACH,CAAC,EAEL,CAAC,EACDrB,IAAaA,EAAUtC,MAAM,CAEhC,GAAE,EACH,IAAImE,YAAc,EACdC,cAAgB,GAChBF,YAAc,GACdjB,cAAgB,GACpB,SAASW,cAAcS,GACrB,IAAIC,EAAYD,EAAQ/E,iBAAiB,sFAAsF,EAC3HiF,EAAQD,EAAU,GAClBE,EAAOF,EAAUA,EAAUxF,OAAS,GACxCwF,GAAaA,EAAUrF,QAAQ,SAAUN,GACvCA,EAAG4D,iBAAiB,UAAW,SAAUC,GACvC,OAAkB,UAAVA,EAAEO,KAAmBP,EAAEQ,UAAYoB,gBAAkB5B,EAAEE,OAAOG,MAAM,CAC9E,CAAC,CACH,CAAC,EACDwB,EAAQ9B,iBAAiB,UAAW,SAAUC,GACtB,QAAVA,EAAEO,KAAiBP,EAAEQ,UAAYmB,aACV,IAArBG,EAAUxF,SACpB0D,EAAEiC,UAAYrD,SAASC,gBAAkBkD,GAC3C/B,EAAEM,eAAe,EACjB0B,EAAKxE,MAAM,GACDwC,EAAEiC,UAAYrD,SAASC,gBAAkBmD,IACnDhC,EAAEM,eAAe,EACjByB,EAAMvE,MAAM,GAEhB,CAAC,EACDqE,EAAQ9B,iBAAiB,QAAS,WAChC,OAAOnB,SAASC,gBAAkBiD,EAAU,IAAqD,SAA/CA,EAAU,GAAGzE,aAAa,eAAe,GAAgByE,EAAU,GAAGtE,MAAM,CAChI,CAAC,CACH"}