{"version":3,"sources":["webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack:///./src/js/modules/header.js","webpack:///./node_modules/@verndale/roving-ux/dist/index.module.js"],"names":["hasPassiveEvents","window","passiveTestOptions","addEventListener","removeEventListener","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPosition","previousBodyPaddingRight","allowTouchMove","el","some","lock","options","preventDefault","rawEvent","e","event","target","touches","length","restoreOverflowSetting","undefined","document","body","style","paddingRight","overflow","restorePositionSetting","y","parseInt","top","x","left","position","scrollTo","disableBodyScroll","targetElement","concat","arr","Array","isArray","i","arr2","from","_toConsumableArray","requestAnimationFrame","_window","scrollY","scrollX","innerHeight","setTimeout","bottomBarHeight","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","computedBodyPaddingRight","getComputedStyle","getPropertyValue","setOverflowHidden","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","passive","console","error","enableBodyScroll","filter","Module","Component","setupDefaults","this","dom","$mobileMenuTrigger","querySelector","$mobileTopMenu","$mobileMenu","$mobileCompanyNav","$mobileCompanyNavButton","querySelectorAll","$mobileCompanyNestedLists","$mobilePrimaryNav","$mobilePrimaryNavButton","$mobilePrimaryNavItem","$mobilePrimaryNavNestedMenu","$mobilePrimaryNavNestedTrigger","$mobilePrimaryNavItemBack","$mobilePrimaryNavNestedItemBack","$mobilePrimaryNavNestedSubmenu","$companyNav","$companyNavButton","$primaryNav","$primaryNavButton","$innerMenuHeader","$innerMenuHeaderButton","$innerMenuTabPanel","$companyNestedLists","$innerMenu","$innerMenuLists","$innerMenuDirectLists","$innerMenuLink","$headerSearchBtn","$headerSearchContainer","navBackButton","self","mainFocusTrap","createFocusTrap","escapeDeactivates","onActivate","closest","onDeactivate","forEach","$headerSearchBtnSvgs","addRovings","preventNestedBehaviour","addListeners","handleMobileMenuTriggerClick","bind","button","handleMobileCompanyNavButtonClick","handleMobilePrimaryNavButtonClick","handleMobilePrimaryNavItemBackClick","menu","handleMobilePrimaryNavNestedMenuFocusOut","handleMobilePrimaryNavNestedItemBackClick","trigger","handleMobilePrimaryNavNestedTriggerClick","handleMobilePrimaryNavNestedSubmenuFocusOut","handleCompanyNavButtonClick","handlePrimaryNavButtonClick","activateTab","handleInnerMenuFocusOut","handlePrimaryNavFocusOut","matchMedia","MEDIA_QUERIES","TABLET_LANDSCAPE","handleMediaQueryChange","toggleSearch","hasAttribute","removeAttribute","classList","add","remove","setAttribute","rovingIndex","element","innerMenu","callback","list","tab","panelId","getAttribute","panelEl","parentNode","panel","hidden","innerMenuHeader","selectedPanel","find","links","keyCode","KEYCODE","UP","DOWN","LEFT","RIGHT","HOME","END","TAB","shiftKey","focus","backButton","currentTarget","ESCAPE","click","stringToBoolean","previousElementSibling","keysSoFar","relatedTarget","contains","key","searchOptionToFocus","link","selectedTab","nextLink","nextElementSibling","filteredOptions","option","textContent","toLowerCase","startsWith","isOpen","openCompanyMenu","openPrimaryMenu","prevSelected","tabIndex","focusable","focusableElements","dataset","open","deactivate","activate","matches","openMobilePrimaryNestedMenu","activeTrigger","item","srcElement","submenu","Map","t","c","d","o","s","set","targets","active","index","u","get","v","f","r","n","a","delete"],"mappings":"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","file":"68.bundle.js","sourcesContent":["function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\nvar setPositionFixed = function setPositionFixed() {\n return window.requestAnimationFrame(function () {\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === undefined) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n };\n\n // Update the dom inside an animation frame \n var _window = window,\n scrollY = _window.scrollY,\n scrollX = _window.scrollX,\n innerHeight = _window.innerHeight;\n\n document.body.style.position = 'fixed';\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n\n setTimeout(function () {\n return window.requestAnimationFrame(function () {\n // Attempt to check if the bottom bar appeared due to the position change\n var bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollY >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\n\nvar restorePositionSetting = function restorePositionSetting() {\n if (previousBodyPosition !== undefined) {\n // Convert the position from \"px\" to Int\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10);\n\n // Restore styles\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left;\n\n // Restore scroll\n window.scrollTo(x, y);\n\n previousBodyPosition = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};\n\n","import { Component } from '@verndale/core'\nimport { createFocusTrap } from 'focus-trap'\nimport { disableBodyScroll, clearAllBodyScrollLocks, enableBodyScroll } from 'body-scroll-lock'\nimport { rovingIndex } from '@verndale/roving-ux'\nimport { focusableElements, KEYCODE, MEDIA_QUERIES, stringToBoolean } from '../utils'\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $mobileMenuTrigger: this.el.querySelector('.header__mobile-top-trigger'),\n $mobileTopMenu: this.el.querySelector('.header__mobile-top'),\n $mobileMenu: this.el.querySelector('.header__mobile-menu'),\n $mobileCompanyNav: this.el.querySelector('.header__mobile-company-nav'),\n $mobileCompanyNavButton: this.el.querySelectorAll(\n '.header__mobile-company-nav button[aria-haspopup]'\n ),\n $mobileCompanyNestedLists: this.el.querySelectorAll('.header__mobile-nested-list'),\n $mobilePrimaryNav: this.el.querySelector('.header__mobile-primary-nav'),\n $mobilePrimaryNavButton: this.el.querySelectorAll(\n '.header__mobile-primary-nav .header__mobile-primary-nav-item'\n ),\n $mobilePrimaryNavItem: this.el.querySelectorAll('.header__mobile-primary-nav-item'),\n $mobilePrimaryNavNestedMenu: this.el.querySelectorAll(\n '.header__mobile-primary-nav-nested-menu'\n ),\n $mobilePrimaryNavNestedTrigger: this.el.querySelectorAll(\n '.header__mobile-primary-nav-nested-trigger'\n ),\n $mobilePrimaryNavItemBack: this.el.querySelectorAll('.header__mobile-primary-nav-item-back'),\n $mobilePrimaryNavNestedItemBack: this.el.querySelectorAll(\n '.header__mobile-primary-nav-nested-item-back'\n ),\n $mobilePrimaryNavNestedSubmenu: this.el.querySelectorAll(\n '.header__mobile-primary-nav-nested-submenu'\n ),\n $companyNav: this.el.querySelector('.header__company-nav'),\n $companyNavButton: this.el.querySelectorAll('.header__company-nav button[aria-haspopup]'),\n $primaryNav: this.el.querySelector('.header__primary-nav'),\n $primaryNavButton: this.el.querySelectorAll('.header__primary-nav button[aria-haspopup]'),\n $innerMenuHeader: this.el.querySelectorAll('.header__inner-menu-header'),\n $innerMenuHeaderButton: this.el.querySelectorAll(\n '.header__inner-menu-header button[role=\"tab\"]'\n ),\n $innerMenuTabPanel: this.el.querySelectorAll('[role=\"tabpanel\"]'),\n $companyNestedLists: this.el.querySelectorAll('.header__nested-list'),\n $innerMenu: this.el.querySelectorAll('.header__inner-menu'),\n $innerMenuLists: this.el.querySelectorAll('.header__inner-menu [role=\"tabpanel\"] ul'),\n $innerMenuDirectLists: this.el.querySelectorAll('.header__inner-menu > ul'),\n $innerMenuLink: this.el.querySelectorAll('.header__inner-menu-link'),\n $headerSearchBtn: this.el.querySelector('.header__search-btn'),\n $headerSearchContainer: this.el.querySelector('.header__search-container-desktop')\n }\n\n this.navBackButton = ''\n\n const self = this\n\n this.mainFocusTrap = createFocusTrap(this.el, {\n escapeDeactivates: false,\n onActivate() {\n disableBodyScroll(self.el, {\n allowTouchMove: (el) => el.closest('.header__mobile-menu')\n })\n },\n onDeactivate() {\n clearAllBodyScrollLocks()\n }\n })\n\n this.$headerSearchBtnSvgs = this.dom.$headerSearchBtn.querySelectorAll('svg')\n\n this.addRovings()\n this.preventNestedBehaviour()\n }\n\n addListeners() {\n this.dom.$mobileMenuTrigger.addEventListener(\n 'click',\n this.handleMobileMenuTriggerClick.bind(this)\n )\n this.dom.$mobileCompanyNavButton.forEach((button) =>\n button.addEventListener('click', this.handleMobileCompanyNavButtonClick.bind(this))\n )\n this.dom.$mobilePrimaryNavButton.forEach((button) =>\n button.addEventListener('click', this.handleMobilePrimaryNavButtonClick.bind(this))\n )\n this.dom.$mobilePrimaryNavItemBack.forEach((button) =>\n button.addEventListener('click', this.handleMobilePrimaryNavItemBackClick.bind(this))\n )\n this.dom.$mobilePrimaryNavNestedMenu.forEach((menu) =>\n menu.addEventListener('focusout', this.handleMobilePrimaryNavNestedMenuFocusOut.bind(this))\n )\n this.dom.$mobilePrimaryNavNestedItemBack.forEach((menu) =>\n menu.addEventListener('click', this.handleMobilePrimaryNavNestedItemBackClick.bind(this))\n )\n this.dom.$mobilePrimaryNavNestedTrigger.forEach((trigger) =>\n trigger.addEventListener('click', this.handleMobilePrimaryNavNestedTriggerClick.bind(this))\n )\n this.dom.$mobilePrimaryNavNestedSubmenu.forEach((trigger) =>\n trigger.addEventListener(\n 'focusout',\n this.handleMobilePrimaryNavNestedSubmenuFocusOut.bind(this)\n )\n )\n this.dom.$companyNavButton.forEach((button) =>\n button.addEventListener('click', this.handleCompanyNavButtonClick.bind(this))\n )\n this.dom.$primaryNavButton.forEach((button) =>\n button.addEventListener('click', this.handlePrimaryNavButtonClick.bind(this))\n )\n this.dom.$innerMenuHeaderButton.forEach((button) =>\n button.addEventListener('click', (e) => this.activateTab(e.target))\n )\n this.dom.$innerMenu.forEach((menu) =>\n menu.addEventListener('focusout', this.handleInnerMenuFocusOut.bind(this))\n )\n this.dom.$primaryNav.addEventListener('focusout', this.handlePrimaryNavFocusOut.bind(this))\n window\n .matchMedia(`(min-width: ${MEDIA_QUERIES.TABLET_LANDSCAPE}px)`)\n .addEventListener('change', this.handleMediaQueryChange.bind(this))\n this.dom.$headerSearchBtn.addEventListener('click', this.toggleSearch.bind(this))\n }\n\n toggleSearch(e) {\n if (this.dom.$headerSearchContainer.hasAttribute('hidden')) {\n this.dom.$headerSearchContainer.removeAttribute('hidden')\n this.$headerSearchBtnSvgs[0].classList.add('header__search-svg-hidden')\n this.$headerSearchBtnSvgs[1].classList.remove('header__search-svg-hidden')\n } else {\n this.dom.$headerSearchContainer.setAttribute('hidden', true)\n this.$headerSearchBtnSvgs[1].classList.add('header__search-svg-hidden')\n this.$headerSearchBtnSvgs[0].classList.remove('header__search-svg-hidden')\n }\n }\n\n addRovings() {\n if (this.dom.$mobileCompanyNav?.querySelector('.header__mobile-company-nav-item')) {\n rovingIndex({\n element: this.dom.$mobileCompanyNav,\n target: '.header__mobile-company-nav-item'\n })\n }\n\n if (this.dom.$mobilePrimaryNav?.querySelector('.header__mobile-primary-nav-item')) {\n rovingIndex({\n element: this.dom.$mobilePrimaryNav,\n target: '.header__mobile-primary-nav-item'\n })\n }\n\n if (this.dom.$companyNav?.querySelector('.header__company-nav-item')) {\n rovingIndex({\n element: this.dom.$companyNav,\n target: '.header__company-nav-item'\n })\n }\n\n this.dom.$innerMenuHeader.forEach((innerMenu) => {\n if (innerMenu.querySelector('[role=\"tab\"]')) {\n rovingIndex({\n element: innerMenu,\n target: '[role=\"tab\"]',\n callback: this.activateTab.bind(this)\n })\n }\n })\n\n this.dom.$mobilePrimaryNavNestedSubmenu.forEach((menu) => {\n if (menu.querySelector('[role=\"menuitem\"]')) {\n rovingIndex({\n element: menu,\n target: '[role=\"menuitem\"]'\n })\n }\n })\n\n this.dom.$mobileCompanyNestedLists.forEach((list) => {\n if (list.querySelector('a')) {\n rovingIndex({\n element: list,\n target: 'a'\n })\n }\n })\n\n this.dom.$companyNestedLists.forEach((list) => {\n if (list.querySelector('a')) {\n rovingIndex({\n element: list,\n target: 'a'\n })\n }\n })\n\n this.dom.$mobilePrimaryNavNestedMenu.forEach((menu) => {\n if (menu.querySelector(':scope > li > [role=\"menuitem\"]')) {\n rovingIndex({\n element: menu,\n target: ':scope > li > [role=\"menuitem\"]'\n })\n }\n })\n\n this.dom.$innerMenuLists.forEach((menu) => {\n if (menu.querySelector('a')) {\n rovingIndex({\n element: menu,\n target: 'a'\n })\n }\n })\n\n this.dom.$innerMenuDirectLists.forEach((menu) => {\n if (menu.querySelector('a')) {\n rovingIndex({\n element: menu,\n target: 'a'\n })\n }\n })\n }\n\n activateTab(tab) {\n const panelId = tab.getAttribute('aria-controls')\n const panelEl = this.el.querySelector(`#${panelId}`)\n\n this.dom.$innerMenuHeaderButton.forEach((button) => {\n if (button.parentNode.parentNode === tab.parentNode.parentNode) {\n button.setAttribute('aria-selected', false)\n }\n })\n\n this.dom.$innerMenuTabPanel.forEach((panel) => {\n if (panel.parentNode === tab.parentNode.parentNode) {\n panel.hidden = true\n }\n })\n\n if (tab) tab.setAttribute('aria-selected', true)\n if (panelEl) panelEl.hidden = false\n }\n\n preventNestedBehaviour() {\n this.dom.$innerMenuHeader.forEach((innerMenu) => {\n const innerMenuHeader = innerMenu\n\n innerMenuHeader.addEventListener('focusin', (e) => e.stopPropagation())\n innerMenuHeader.addEventListener('keydown', (e) => {\n const selectedPanel = Array.from(this.dom.$innerMenuTabPanel).find((panel) => !panel.hidden)\n const links = selectedPanel?.querySelectorAll('a')\n\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.TAB:\n e.stopPropagation()\n e.preventDefault()\n if (links?.length && !e.shiftKey) links[0].focus()\n break\n default:\n break\n }\n })\n })\n\n this.dom.$mobilePrimaryNavNestedSubmenu.forEach((menu) => {\n menu.addEventListener('focusin', (e) => e.stopPropagation())\n menu.addEventListener('keydown', (e) => {\n const backButton = e.currentTarget.querySelector(\n '.header__mobile-primary-nav-nested-item-back'\n )\n\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n e.stopPropagation()\n e.preventDefault()\n if (backButton) backButton.click()\n break\n }\n })\n })\n\n this.dom.$mobilePrimaryNavNestedItemBack.forEach((button) => {\n button.addEventListener('focusin', (e) => e.stopPropagation())\n button.addEventListener('keydown', (e) => {\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n e.stopPropagation()\n e.preventDefault()\n e.currentTarget.click()\n break\n }\n })\n })\n\n this.dom.$mobilePrimaryNavNestedTrigger.forEach((trigger) =>\n trigger.addEventListener('focusin', (e) => e.stopPropagation())\n )\n\n this.dom.$mobilePrimaryNavNestedMenu.forEach((menu) => {\n menu.addEventListener('focusin', (e) => e.stopPropagation())\n menu.addEventListener('keydown', (e) => {\n const backButton = e.target\n .closest('.header__mobile-primary-nav-nested-menu')\n ?.querySelector('.header__mobile-primary-nav-item-back')\n\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n e.stopPropagation()\n e.preventDefault()\n backButton?.click()\n default:\n break\n }\n })\n })\n\n this.dom.$innerMenuHeaderButton.forEach((button) =>\n button.addEventListener('keydown', (e) => {\n const trigger = Array.from(this.dom.$primaryNavButton).find((button) =>\n stringToBoolean(button.getAttribute('aria-expanded'))\n )\n\n if (e.keyCode === KEYCODE.ESCAPE || (e.keyCode === KEYCODE.TAB && e.shiftKey)) {\n trigger.setAttribute('aria-expanded', false)\n trigger.focus()\n }\n })\n )\n\n this.dom.$primaryNavButton.forEach((button) =>\n button.addEventListener('focusin', (e) => e.stopPropagation())\n )\n\n // mobile and desktop\n ;[...this.dom.$mobileCompanyNestedLists, ...this.dom.$companyNestedLists].forEach((list) => {\n const trigger = list.previousElementSibling\n const links = list.querySelectorAll('a')\n let keysSoFar = ''\n\n function clearKeysSoFar() {\n setTimeout(() => (keysSoFar = ''), 350)\n }\n\n list.addEventListener('focusin', (e) => e.stopPropagation())\n list.addEventListener('focusout', (e) => {\n if (e.relatedTarget === trigger) return\n if (!list.contains(e.relatedTarget) && trigger) {\n if (\n !e.relatedTarget?.classList.contains('header__company-nav') &&\n !e.relatedTarget?.classList.contains('header__mobile-company-nav')\n ) {\n trigger.setAttribute('aria-expanded', false)\n }\n }\n })\n list.addEventListener('keydown', (e) => {\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n e.preventDefault()\n if (trigger) {\n trigger.click()\n trigger.focus()\n }\n break\n default:\n keysSoFar += e.key\n if (keysSoFar) this.searchOptionToFocus(links, keysSoFar)\n clearKeysSoFar()\n break\n }\n })\n })\n\n this.dom.$innerMenuLink.forEach((link) => {\n link.addEventListener('focusin', (e) => e.stopPropagation())\n link.addEventListener('keydown', (e) => {\n const trigger = Array.from(this.dom.$primaryNavButton).find((button) =>\n stringToBoolean(button.getAttribute('aria-expanded'))\n )\n\n switch (e.keyCode) {\n case KEYCODE.ESCAPE:\n e.preventDefault()\n if (trigger) {\n trigger.setAttribute('aria-expanded', false)\n trigger.focus()\n }\n break\n default:\n break\n }\n })\n })\n\n this.dom.$innerMenuLists.forEach((list) => {\n list.addEventListener('focusin', (e) => e.stopPropagation())\n list.addEventListener('keydown', (e) => {\n const selectedTab = Array.from(this.dom.$innerMenuHeaderButton).find((button) =>\n stringToBoolean(button.getAttribute('aria-selected'))\n )\n\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n e.preventDefault()\n if (selectedTab) selectedTab.focus()\n break\n case KEYCODE.TAB:\n e.stopPropagation()\n if (e.shiftKey && selectedTab) {\n e.preventDefault()\n selectedTab.focus()\n }\n default:\n break\n }\n })\n })\n\n this.dom.$innerMenuDirectLists.forEach((list) => {\n list.addEventListener('focusin', (e) => e.stopPropagation())\n list.addEventListener('keydown', (e) => {\n const trigger = Array.from(this.dom.$primaryNavButton).find((button) =>\n stringToBoolean(button.getAttribute('aria-expanded'))\n )\n const nextLink = e.currentTarget.nextElementSibling\n\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n e.preventDefault()\n if (trigger) {\n trigger.setAttribute('aria-expanded', false)\n trigger.focus()\n }\n break\n case KEYCODE.TAB:\n e.stopPropagation()\n if (e.shiftKey && trigger) {\n e.preventDefault()\n if (trigger) trigger.focus()\n } else if (nextLink) {\n e.preventDefault()\n nextLink.focus()\n }\n break\n default:\n break\n }\n })\n })\n\n this.dom.$mobilePrimaryNavItemBack?.forEach((button) => {\n button.addEventListener('focusin', (e) => e.stopPropagation())\n button.addEventListener('keydown', (e) => {\n switch (e.keyCode) {\n case KEYCODE.UP:\n case KEYCODE.DOWN:\n case KEYCODE.LEFT:\n case KEYCODE.RIGHT:\n case KEYCODE.HOME:\n case KEYCODE.END:\n e.stopPropagation()\n e.preventDefault()\n break\n case KEYCODE.ESCAPE:\n button.click()\n break\n default:\n break\n }\n })\n })\n }\n\n searchOptionToFocus(options, keysSoFar) {\n const filteredOptions = Array.from(options).filter((option) =>\n option.textContent.toLowerCase().startsWith(keysSoFar)\n )\n\n if (filteredOptions?.length) {\n filteredOptions[0].focus()\n }\n }\n\n handleCompanyNavButtonClick(e) {\n const isOpen = stringToBoolean(e.target.getAttribute('aria-expanded'))\n\n Array.from(this.dom.$companyNavButton)\n .filter((button) => button !== e.target)\n .forEach((button) => button.setAttribute('aria-expanded', false))\n\n e.target.setAttribute('aria-expanded', !isOpen)\n\n if (!isOpen) this.openCompanyMenu(e.target)\n }\n\n handlePrimaryNavButtonClick(e) {\n const isOpen = stringToBoolean(e.target.getAttribute('aria-expanded'))\n\n Array.from(this.dom.$primaryNavButton).forEach((button) =>\n button.setAttribute('aria-expanded', false)\n )\n\n e.target.setAttribute('aria-expanded', !isOpen)\n\n if (!isOpen) this.openPrimaryMenu(e.target)\n }\n\n openCompanyMenu(button) {\n const menu = button.nextElementSibling\n const links = menu.querySelectorAll('a')\n\n if (links?.length) {\n const prevSelected = Array.from(links).find((link) => link.tabIndex === 0)\n\n if (prevSelected) prevSelected.focus()\n }\n }\n\n openPrimaryMenu(button) {\n const menu = button.nextElementSibling\n const focusable = menu?.querySelectorAll(focusableElements)\n\n if (focusable?.length) {\n focusable[0].focus()\n }\n }\n\n handleInnerMenuFocusOut(e) {\n const trigger = e.currentTarget.previousElementSibling\n\n if (e.relatedTarget === trigger) return\n if (!e.currentTarget.contains(e.relatedTarget)) trigger.setAttribute('aria-expanded', false)\n }\n\n handlePrimaryNavFocusOut(e) {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n this.dom.$primaryNavButton.forEach((button) => button.setAttribute('aria-expanded', false))\n }\n }\n\n handleMobileMenuTriggerClick(e) {\n const isOpen = stringToBoolean(e.target.getAttribute('aria-expanded'))\n e.target.setAttribute('aria-expanded', !isOpen)\n this.dom.$mobileMenu.dataset.open = !isOpen\n\n if (!isOpen) {\n this.mainFocusTrap.activate()\n } else {\n this.mainFocusTrap.deactivate()\n this.dom.$mobileTopMenu.classList.remove('header__mobile-top--open')\n this.dom.$mobileMenu.classList.remove('header__mobile-top--submenu-open')\n }\n }\n\n handleMobileCompanyNavButtonClick(e) {\n const isOpen = stringToBoolean(e.target.getAttribute('aria-expanded'))\n\n Array.from(this.dom.$mobileCompanyNavButton)\n .filter((button) => button !== e.target)\n .forEach((button) => button.setAttribute('aria-expanded', false))\n e.target.setAttribute('aria-expanded', !isOpen)\n\n if (!isOpen) this.openCompanyMenu(e.target)\n }\n\n handleMediaQueryChange(e) {\n if (e.matches) {\n this.dom.$mobileMenuTrigger.setAttribute('aria-expanded', false)\n this.dom.$mobileMenu.dataset.open = false\n this.mainFocusTrap.deactivate()\n }\n }\n\n handleMobilePrimaryNavButtonClick(e) {\n const isOpen = stringToBoolean(e.target.getAttribute('aria-expanded'))\n\n Array.from(this.dom.$mobilePrimaryNavButton)\n .filter((button) => button !== e.currentTarget)\n .forEach((button) => button.setAttribute('aria-expanded', false))\n\n e.currentTarget.setAttribute('aria-expanded', !isOpen)\n\n if (isOpen) {\n this.dom.$mobileTopMenu.classList.remove('header__mobile-top--open')\n this.dom.$mobileMenu.classList.remove('header__mobile-top--submenu-open')\n } else {\n this.openMobilePrimaryNestedMenu(e.target)\n this.dom.$mobileTopMenu.classList.add('header__mobile-top--open')\n this.dom.$mobileMenu.classList.add('header__mobile-top--submenu-open')\n }\n }\n\n openMobilePrimaryNestedMenu(button) {\n const menu = button.nextElementSibling\n this.navBackButton = menu.querySelector('.header__mobile-primary-nav-item-back')\n const focusable = menu?.querySelectorAll(focusableElements)\n\n if (focusable?.length) focusable[0].focus()\n if (menu) disableBodyScroll(menu)\n }\n\n handleMobilePrimaryNavItemBackClick(e) {\n this.navBackButton.hidden = false\n const menu = e.target.closest('.header__mobile-primary-nav-nested-menu')\n const trigger = menu.previousElementSibling\n const activeTrigger = Array.from(this.dom.$mobilePrimaryNavItem).find(\n (item) => item.tabIndex === 0\n )\n this.dom.$mobileTopMenu.classList.remove('header__mobile-top--open')\n this.dom.$mobileMenu.classList.remove('header__mobile-top--submenu-open')\n\n if (menu) enableBodyScroll(menu)\n if (trigger) trigger.setAttribute('aria-expanded', false)\n if (activeTrigger) activeTrigger.focus()\n }\n\n handleMobilePrimaryNavNestedMenuFocusOut(e) {\n if (e.srcElement) {\n if (\n !e.currentTarget.contains(e.relatedTarget) &&\n !e.srcElement.classList.contains('header__mobile-primary-nav-nested-item-back')\n )\n this.handleMobilePrimaryNavItemBackClick(e)\n } else {\n if (!e.currentTarget.contains(e.relatedTarget)) this.handleMobilePrimaryNavItemBackClick(e)\n }\n }\n\n handleMobilePrimaryNavNestedTriggerClick(e) {\n const submenu = e.target.nextElementSibling\n this.navBackButton.hidden = true\n const backButton = submenu.querySelector('.header__mobile-primary-nav-nested-item-back')\n\n e.currentTarget.setAttribute('aria-expanded', true)\n if (backButton) backButton.focus()\n disableBodyScroll(submenu)\n }\n\n handleMobilePrimaryNavNestedItemBackClick(e) {\n const isOpen = stringToBoolean(e.currentTarget.getAttribute('aria-expanded'))\n const submenu = e.target.closest('.header__mobile-primary-nav-nested-submenu')\n const trigger = submenu.previousElementSibling\n const activeTrigger = Array.from(this.dom.$mobilePrimaryNavNestedTrigger).find(\n (item) => item.tabIndex === 0\n )\n\n this.navBackButton.hidden = false\n\n if (submenu) enableBodyScroll(submenu)\n if (trigger) trigger.setAttribute('aria-expanded', !isOpen)\n if (activeTrigger) activeTrigger.focus()\n }\n\n handleMobilePrimaryNavNestedSubmenuFocusOut(e) {\n const trigger = e.currentTarget.previousElementSibling\n\n if (!e.currentTarget.contains(e.relatedTarget)) {\n trigger.setAttribute('aria-expanded', false)\n this.navBackButton.focus()\n enableBodyScroll(e.currentTarget)\n }\n }\n}\n\nexport default Module\n","var e=new Map,t=function(t){var c=t.element,d=t.callback,o=c.querySelectorAll(t.target||\":scope *\"),s=o[0];c.tabIndex=-1,o.forEach(function(e){return e.tabIndex=-1}),s.tabIndex=0,e.set(c,{targets:o,active:s,index:0});var u=function(t){e.get(\"last_rover\")!=c&&(v(c,e.get(c).active),e.set(\"last_rover\",c))};c.addEventListener(\"focusin\",u);var f=function(e){switch(e.keyCode){case 39:case 40:e.preventDefault(),r(c,d);break;case 37:case 38:e.preventDefault(),i(c,d);break;case 36:e.preventDefault(),n(c,d);break;case 35:e.preventDefault(),a(c,d)}};c.addEventListener(\"keydown\",f),c.addEventListener(\"DOMNodeRemovedFromDocument\",function t(n){c.removeEventListener(\"focusin\",u),c.removeEventListener(\"keydown\",f),c.removeEventListener(\"DOMNodeRemoved\",t),e.delete(c),o.forEach(function(e){return e.tabIndex=\"\"})})},n=function(t,n){var a=e.get(t);a.index=0;var r=a.targets[a.index];r&&v(t,r,n)},a=function(t,n){var a=e.get(t);a.index=a.targets.length-1;var r=a.targets[a.index];r&&v(t,r,n)},r=function(t,n){var a=e.get(t);a.index+=1,a.index>a.targets.length-1&&(a.index=a.targets.length-1);var r=a.targets[a.index];r&&v(t,r,n)},i=function(t,n){var a=e.get(t);a.index-=1,a.index<1&&(a.index=0);var r=a.targets[a.index];r&&v(t,r,n)},v=function(t,n,a){var r=e.get(t);r.active.tabIndex=-1,a&&a(n),r.active=n,r.active.tabIndex=0,r.active.focus()};export{t as rovingIndex};\n//# sourceMappingURL=index.module.js.map\n"],"sourceRoot":""}