{"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":""}