{"version":3,"file":"assets/js/353.2327e47e9ea8390023f0.js","mappings":"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","sources":["webpack://mps/./src/app/components/nav-mobile-inner.vue?2e84","webpack://mps/./src/app/components/nav-mobile-inner.vue","webpack://mps/./src/app/views/nav-mobile/nav-mobile.vue","webpack://mps/./src/app/views/nav-mobile/nav-mobile.vue?45a5","webpack://mps/./src/app/views/nav-mobile/nav-mobile.ts","webpack://mps/./src/app/views/nav-mobile/nav-mobile.vue?d3c8","webpack://mps/./src/app/views/nav-mobile/nav-mobile.vue?df42"],"sourcesContent":["import script from \"./nav-mobile-inner.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./nav-mobile-inner.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <ul v-if=\"isMainView && config.topLinks?.length\" class=\"c-nav-mobile-toplinks__list\" role=\"list\">\r\n    <li v-for=\"(el, i) in config.topLinks\" :key=\"i\" role=\"listitem\">\r\n      <a\r\n        :href=\"el.url\"\r\n        class=\"c-nav-mobile-toplinks__link\"\r\n        :ref=\"(el) => addFocusableRef(el)\"\r\n        :target=\"el.newTab ? '_blank' : null\"\r\n      >\r\n        {{ el.label }}\r\n        <span v-if=\"el.newTab\" class=\"visually-hidden\">{{\r\n          config.globalSrOnlyNewWindowWarningText\r\n        }}</span>\r\n      </a>\r\n    </li>\r\n  </ul>\r\n  <nav\r\n    v-if=\"config.nav.length\"\r\n    :class=\"{ 'c-nav-mobile__nav': isMainView }\"\r\n    :aria-label=\"navAriaLabel\"\r\n  >\r\n    <template v-if=\"!isMainView\">\r\n      <button\r\n        @click=\"emit('handleBackBtnClick')\"\r\n        :ref=\"(el) => addFocusableRef(el)\"\r\n        class=\"c-nav-mobile__back-btn\"\r\n      >\r\n        <svg class=\"c-nav-mobile__back-btn-icon\" focusable=\"false\" aria-hidden=\"true\">\r\n          <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#arrow-left\"></use>\r\n        </svg>\r\n        {{ config.mobileNavBackBtnLabel }}\r\n      </button>\r\n    </template>\r\n    <ul class=\"c-nav-mobile__list\" role=\"list\">\r\n      <template v-if=\"parentObject && parentObject.url\">\r\n        <li class=\"c-nav-mobile__list-item\" role=\"listitem\">\r\n          <a\r\n            v-if=\"parentObject.url\"\r\n            :ref=\"(el) => addFocusableRef(el)\"\r\n            :href=\"parentObject.url\"\r\n            class=\"c-nav-mobile__parent-link\"\r\n            >{{ parentObject.label }}</a\r\n          >\r\n        </li>\r\n      </template>\r\n      <template v-for=\"(el, i) in activeMenuObject\" :key=\"i\">\r\n        <li class=\"c-nav-mobile__list-item\" role=\"listitem\">\r\n          <button\r\n            v-if=\"el.children?.length\"\r\n            @click=\"emit('handleMenuBtnClick', i)\"\r\n            :ref=\"(el) => addFocusableRef(el)\"\r\n            class=\"c-nav-mobile__link-btn\"\r\n          >\r\n            {{ el.label }}\r\n            <svg class=\"c-nav-mobile__list-item-icon\" focusable=\"false\" aria-hidden=\"true\">\r\n              <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#arrow-right\"></use>\r\n            </svg>\r\n          </button>\r\n          <a\r\n            v-else\r\n            :href=\"el.url\"\r\n            :ref=\"(el) => addFocusableRef(el)\"\r\n            class=\"c-nav-mobile__link-btn\"\r\n          >\r\n            {{ el.label }}\r\n          </a>\r\n        </li>\r\n      </template>\r\n    </ul>\r\n  </nav>\r\n</template>\r\n\r\n<script setup>\r\nimport { inject, ref, computed, onMounted, onBeforeUpdate, onUpdated } from 'vue';\r\nconst config = inject('config');\r\n\r\nconst props = defineProps({\r\n  activeMenu: {\r\n    type: Array,\r\n    required: true,\r\n  },\r\n  mobnavTriggerRef: {\r\n    type: [HTMLElement, null],\r\n    required: true,\r\n  },\r\n  firstHeaderElSelector: {\r\n    type: String,\r\n    required: true,\r\n  },\r\n  isNavOpen: {\r\n    type: Boolean,\r\n    required: true,\r\n  },\r\n});\r\n\r\nconst emit = defineEmits(['handleMenuBtnClick', 'handleBackBtnClick']);\r\n// Main menu -> activeMenu = [null,null]\r\n// ├─ (0) Level1 - link\r\n// ├─ (1) Level1 - link\r\n// └─ (2) Level1 - button -> if selected activeMenu = [2, null]\r\n//    ├─ (0) Level2 - link\r\n//    └─ (1) Level2 - button -> if selected activeMenu = [2, 1]\r\n//       └─ (0) Level3 - link\r\nconst isMainView = computed(() => props.activeMenu[0] === null);\r\n\r\nconst parentObject = ref(null);\r\n\r\nconst navAriaLabel = computed(() => {\r\n  return isMainView.value || !parentObject.value\r\n    ? config.primaryNavAriaLabel\r\n    : parentObject.value.label;\r\n});\r\n\r\nconst focusableElementRef = ref([]);\r\n\r\nconst lastFocusableEl = computed(\r\n  () => focusableElementRef.value[focusableElementRef.value.length - 1],\r\n);\r\nconst firstFocusableEl = computed(() => document.querySelector(props.firstHeaderElSelector));\r\n\r\nconst activeMenuObject = computed(() => {\r\n  if (props.activeMenu[0] === null) {\r\n    // Display first level elements\r\n    parentObject.value = null;\r\n    return config.nav;\r\n  } else if (props.activeMenu[1] === null) {\r\n    // Display second level elements\r\n    parentObject.value = config.nav[props.activeMenu[0]];\r\n    return config.nav[props.activeMenu[0]].children;\r\n  } else {\r\n    // Display third level elements\r\n    parentObject.value = config.nav[props.activeMenu[0]].children[props.activeMenu[1]];\r\n    return config.nav[props.activeMenu[0]].children[props.activeMenu[1]].children;\r\n  }\r\n});\r\n\r\nfunction addFocusableRef(el) {\r\n  el && focusableElementRef.value.push(el);\r\n}\r\n\r\nfunction handleKeydown() {\r\n  if (lastFocusableEl.value) {\r\n    lastFocusableEl.value.addEventListener('keydown', (e) => {\r\n      if (e.key === 'Tab' && !e.shiftKey) {\r\n        e.preventDefault();\r\n        props.mobnavTriggerRef.focus();\r\n      }\r\n    });\r\n  }\r\n\r\n  if (firstFocusableEl.value) {\r\n    firstFocusableEl.value.addEventListener('keydown', (e) => {\r\n      if (props.isNavOpen && e.key === 'Tab' && e.shiftKey) {\r\n        e.preventDefault();\r\n        lastFocusableEl.value.focus();\r\n      }\r\n    });\r\n  }\r\n}\r\nonBeforeUpdate(() => {\r\n  focusableElementRef.value = [];\r\n});\r\n\r\nonMounted(() => {\r\n  handleKeydown();\r\n});\r\n</script>\r\n","<template>\r\n  <div\r\n    v-if=\"config.nav.length || config.topLinks.length\"\r\n    class=\"c-nav-mobile__vue-wrapper\"\r\n    ref=\"mobnavRef\"\r\n  >\r\n    <Teleport to=\".js-vue-nav-mobile-trigger\">\r\n      <button\r\n        class=\"c-nav-mobile-trigger\"\r\n        :aria-expanded=\"isNavOpen\"\r\n        type=\"button\"\r\n        @click=\"toggleNav\"\r\n        ref=\"mobnavTriggerRef\"\r\n      >\r\n        <svg aria-hidden=\"true\" focusable=\"false\">\r\n          <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#burger-menu\"></use>\r\n        </svg>\r\n\r\n        <svg aria-hidden=\"true\" focusable=\"false\">\r\n          <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"#close\"></use>\r\n        </svg>\r\n        <span class=\"visually-hidden\">{{ config.mobileNavToggleBtnLabel }}</span>\r\n      </button>\r\n    </Teleport>\r\n    <Transition :name=\"transitionName\" :duration=\"400\">\r\n      <div class=\"c-nav-mobile__panel-content\" :key=\"activeMenu[0] + '-' + activeMenu[1]\">\r\n        <mobileNavPanel\r\n          :activeMenu=\"activeMenu\"\r\n          :isNavOpen=\"isNavOpen\"\r\n          @handleMenuBtnClick=\"handleMenuBtnClick\"\r\n          @handleBackBtnClick=\"handleBackBtnClick\"\r\n          :mobnavTriggerRef=\"mobnavTriggerRef\"\r\n          :firstHeaderElSelector=\"firstHeaderElSelector\"\r\n        />\r\n      </div>\r\n    </Transition>\r\n  </div>\r\n</template>\r\n<script setup>\r\nimport { inject, ref, onMounted } from 'vue';\r\nimport mobileNavPanel from '@/app/components/nav-mobile-inner.vue';\r\nconst config = inject('config');\r\nconst body = document.querySelector('body');\r\n\r\nconst mediaQuery = window.matchMedia('(min-width: 61.25em)');\r\nconst firstHeaderElSelector = '.js-vue-logo-link';\r\nconst bodyWithNavClass = 'is-menu';\r\nconst selectorsToBeInertOnOpenNav = document.querySelectorAll('main, footer, .js-vue-inert');\r\n\r\nconst isNavOpen = ref(false);\r\nconst mobnavTriggerRef = ref(null);\r\n\r\nconst mobnavRef = ref(null);\r\nconst transitionName = ref('slide-left');\r\nconst activeMenu = ref([null, null]);\r\n\r\nfunction handleMenuBtnClick(index) {\r\n  const nextArrayIndex = activeMenu.value.findIndex((el) => el === null);\r\n  transitionName.value = 'slide-right';\r\n  activeMenu.value[nextArrayIndex] = index;\r\n}\r\n\r\nfunction handleBackBtnClick() {\r\n  // finds the deepest opened menu\r\n  const nextArrayIndex = activeMenu.value.findLastIndex((el) => el !== null);\r\n  // and changes index to null -> moves one level up\r\n  transitionName.value = 'slide-left';\r\n  activeMenu.value[nextArrayIndex] = null;\r\n}\r\n\r\nfunction toggleNav() {\r\n  const hasOpenClass = body.classList.contains(bodyWithNavClass);\r\n\r\n  if (hasOpenClass) {\r\n    closeNav();\r\n  } else {\r\n    openNav();\r\n  }\r\n}\r\n\r\nfunction closeNav() {\r\n  isNavOpen.value = false;\r\n  activeMenu.value = [null, null];\r\n  selectorsToBeInertOnOpenNav.forEach((el) => el.removeAttribute('inert'));\r\n  body.classList.remove(bodyWithNavClass);\r\n\r\n  window.removeEventListener('keydown', handleEscape);\r\n}\r\n\r\nfunction openNav() {\r\n  isNavOpen.value = true;\r\n  activeMenu.value = [null, null];\r\n  selectorsToBeInertOnOpenNav.forEach((el) => el.setAttribute('inert', ''));\r\n  body.classList.add(bodyWithNavClass);\r\n\r\n  window.addEventListener('keydown', handleEscape);\r\n}\r\n\r\nfunction handleEscape(e) {\r\n  if (e.key === 'Escape' && isNavOpen.value === true) {\r\n    e.preventDefault();\r\n    closeNav();\r\n  }\r\n}\r\n\r\nonMounted(() => {\r\n  const searchTrigger = document.querySelector('.js-vue-search-toggle');\r\n  searchTrigger.addEventListener('click', () => {\r\n    closeNav();\r\n  });\r\n\r\n  mediaQuery.addEventListener('change', () => {\r\n    closeNav();\r\n  });\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.slide-right-enter-active {\r\n  position: absolute;\r\n  top: 0;\r\n  right: 0;\r\n  left: 0;\r\n  bottom: 0;\r\n  transform: translateX(100%);\r\n  transition: all 0.4s ease;\r\n}\r\n.slide-left-enter-active {\r\n  position: absolute;\r\n  top: 0;\r\n  right: 0;\r\n  left: 0;\r\n  bottom: 0;\r\n  transform: translateX(-100%);\r\n  transition: all 0.4s ease;\r\n}\r\n.slide-left-enter-to,\r\n.slide-right-enter-to {\r\n  transform: translateX(0);\r\n}\r\n</style>\r\n","import script from \"./nav-mobile.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./nav-mobile.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./nav-mobile.vue?vue&type=style&index=0&id=0da4c6e4&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0da4c6e4\"]])\n\nexport default __exports__","import { createApp } from 'vue';\r\nimport meganavMobileApp from '@/app/views/nav-mobile/nav-mobile.vue';\r\n\r\nfunction init() {\r\n  const meganavMobileEl = document.getElementById('nav-mobile');\r\n  if (meganavMobileEl) {\r\n    const app = createApp(meganavMobileApp);\r\n    app.provide('config', VueConfig);\r\n    app.mount(meganavMobileEl);\r\n  }\r\n}\r\n\r\nexport default init;\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.slide-right-enter-active[data-v-0da4c6e4] {\r\n  position: absolute;\r\n  top: 0;\r\n  right: 0;\r\n  left: 0;\r\n  bottom: 0;\r\n  transform: translateX(100%);\r\n  transition: all 0.4s ease;\n}\n.slide-left-enter-active[data-v-0da4c6e4] {\r\n  position: absolute;\r\n  top: 0;\r\n  right: 0;\r\n  left: 0;\r\n  bottom: 0;\r\n  transform: translateX(-100%);\r\n  transition: all 0.4s ease;\n}\n.slide-left-enter-to[data-v-0da4c6e4],\r\n.slide-right-enter-to[data-v-0da4c6e4] {\r\n  transform: translateX(0);\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/views/nav-mobile/nav-mobile.vue\"],\"names\":[],\"mappings\":\";AAsHA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,SAAS;EACT,2BAA2B;EAC3B,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,SAAS;EACT,4BAA4B;EAC5B,yBAAyB;AAC3B;AACA;;EAEE,wBAAwB;AAC1B\",\"sourcesContent\":[\"<template>\\r\\n  <div\\r\\n    v-if=\\\"config.nav.length || config.topLinks.length\\\"\\r\\n    class=\\\"c-nav-mobile__vue-wrapper\\\"\\r\\n    ref=\\\"mobnavRef\\\"\\r\\n  >\\r\\n    <Teleport to=\\\".js-vue-nav-mobile-trigger\\\">\\r\\n      <button\\r\\n        class=\\\"c-nav-mobile-trigger\\\"\\r\\n        :aria-expanded=\\\"isNavOpen\\\"\\r\\n        type=\\\"button\\\"\\r\\n        @click=\\\"toggleNav\\\"\\r\\n        ref=\\\"mobnavTriggerRef\\\"\\r\\n      >\\r\\n        <svg aria-hidden=\\\"true\\\" focusable=\\\"false\\\">\\r\\n          <use xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xlink:href=\\\"#burger-menu\\\"></use>\\r\\n        </svg>\\r\\n\\r\\n        <svg aria-hidden=\\\"true\\\" focusable=\\\"false\\\">\\r\\n          <use xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xlink:href=\\\"#close\\\"></use>\\r\\n        </svg>\\r\\n        <span class=\\\"visually-hidden\\\">{{ config.mobileNavToggleBtnLabel }}</span>\\r\\n      </button>\\r\\n    </Teleport>\\r\\n    <Transition :name=\\\"transitionName\\\" :duration=\\\"400\\\">\\r\\n      <div class=\\\"c-nav-mobile__panel-content\\\" :key=\\\"activeMenu[0] + '-' + activeMenu[1]\\\">\\r\\n        <mobileNavPanel\\r\\n          :activeMenu=\\\"activeMenu\\\"\\r\\n          :isNavOpen=\\\"isNavOpen\\\"\\r\\n          @handleMenuBtnClick=\\\"handleMenuBtnClick\\\"\\r\\n          @handleBackBtnClick=\\\"handleBackBtnClick\\\"\\r\\n          :mobnavTriggerRef=\\\"mobnavTriggerRef\\\"\\r\\n          :firstHeaderElSelector=\\\"firstHeaderElSelector\\\"\\r\\n        />\\r\\n      </div>\\r\\n    </Transition>\\r\\n  </div>\\r\\n</template>\\r\\n<script setup>\\r\\nimport { inject, ref, onMounted } from 'vue';\\r\\nimport mobileNavPanel from '@/app/components/nav-mobile-inner.vue';\\r\\nconst config = inject('config');\\r\\nconst body = document.querySelector('body');\\r\\n\\r\\nconst mediaQuery = window.matchMedia('(min-width: 61.25em)');\\r\\nconst firstHeaderElSelector = '.js-vue-logo-link';\\r\\nconst bodyWithNavClass = 'is-menu';\\r\\nconst selectorsToBeInertOnOpenNav = document.querySelectorAll('main, footer, .js-vue-inert');\\r\\n\\r\\nconst isNavOpen = ref(false);\\r\\nconst mobnavTriggerRef = ref(null);\\r\\n\\r\\nconst mobnavRef = ref(null);\\r\\nconst transitionName = ref('slide-left');\\r\\nconst activeMenu = ref([null, null]);\\r\\n\\r\\nfunction handleMenuBtnClick(index) {\\r\\n  const nextArrayIndex = activeMenu.value.findIndex((el) => el === null);\\r\\n  transitionName.value = 'slide-right';\\r\\n  activeMenu.value[nextArrayIndex] = index;\\r\\n}\\r\\n\\r\\nfunction handleBackBtnClick() {\\r\\n  // finds the deepest opened menu\\r\\n  const nextArrayIndex = activeMenu.value.findLastIndex((el) => el !== null);\\r\\n  // and changes index to null -> moves one level up\\r\\n  transitionName.value = 'slide-left';\\r\\n  activeMenu.value[nextArrayIndex] = null;\\r\\n}\\r\\n\\r\\nfunction toggleNav() {\\r\\n  const hasOpenClass = body.classList.contains(bodyWithNavClass);\\r\\n\\r\\n  if (hasOpenClass) {\\r\\n    closeNav();\\r\\n  } else {\\r\\n    openNav();\\r\\n  }\\r\\n}\\r\\n\\r\\nfunction closeNav() {\\r\\n  isNavOpen.value = false;\\r\\n  activeMenu.value = [null, null];\\r\\n  selectorsToBeInertOnOpenNav.forEach((el) => el.removeAttribute('inert'));\\r\\n  body.classList.remove(bodyWithNavClass);\\r\\n\\r\\n  window.removeEventListener('keydown', handleEscape);\\r\\n}\\r\\n\\r\\nfunction openNav() {\\r\\n  isNavOpen.value = true;\\r\\n  activeMenu.value = [null, null];\\r\\n  selectorsToBeInertOnOpenNav.forEach((el) => el.setAttribute('inert', ''));\\r\\n  body.classList.add(bodyWithNavClass);\\r\\n\\r\\n  window.addEventListener('keydown', handleEscape);\\r\\n}\\r\\n\\r\\nfunction handleEscape(e) {\\r\\n  if (e.key === 'Escape' && isNavOpen.value === true) {\\r\\n    e.preventDefault();\\r\\n    closeNav();\\r\\n  }\\r\\n}\\r\\n\\r\\nonMounted(() => {\\r\\n  const searchTrigger = document.querySelector('.js-vue-search-toggle');\\r\\n  searchTrigger.addEventListener('click', () => {\\r\\n    closeNav();\\r\\n  });\\r\\n\\r\\n  mediaQuery.addEventListener('change', () => {\\r\\n    closeNav();\\r\\n  });\\r\\n});\\r\\n</script>\\r\\n\\r\\n<style scoped>\\r\\n.slide-right-enter-active {\\r\\n  position: absolute;\\r\\n  top: 0;\\r\\n  right: 0;\\r\\n  left: 0;\\r\\n  bottom: 0;\\r\\n  transform: translateX(100%);\\r\\n  transition: all 0.4s ease;\\r\\n}\\r\\n.slide-left-enter-active {\\r\\n  position: absolute;\\r\\n  top: 0;\\r\\n  right: 0;\\r\\n  left: 0;\\r\\n  bottom: 0;\\r\\n  transform: translateX(-100%);\\r\\n  transition: all 0.4s ease;\\r\\n}\\r\\n.slide-left-enter-to,\\r\\n.slide-right-enter-to {\\r\\n  transform: translateX(0);\\r\\n}\\r\\n</style>\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0]!./nav-mobile.vue?vue&type=style&index=0&id=0da4c6e4&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"06b8c500\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0]!./nav-mobile.vue?vue&type=style&index=0&id=0da4c6e4&scoped=true&lang=css\", function() {\n     var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0]!./nav-mobile.vue?vue&type=style&index=0&id=0da4c6e4&scoped=true&lang=css\");\n     if(newContent.__esModule) newContent = newContent.default;\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}"],"names":["config","inject","isMainView","computed","props","activeMenu","parentObject","ref","navAriaLabel","value","primaryNavAriaLabel","label","focusableElementRef","lastFocusableEl","length","firstFocusableEl","document","querySelector","firstHeaderElSelector","activeMenuObject","nav","children","addFocusableRef","el","push","onBeforeUpdate","onMounted","addEventListener","e","key","shiftKey","preventDefault","mobnavTriggerRef","focus","isNavOpen","bodyWithNavClass","body","mediaQuery","window","matchMedia","selectorsToBeInertOnOpenNav","querySelectorAll","mobnavRef","transitionName","handleMenuBtnClick","index","nextArrayIndex","findIndex","handleBackBtnClick","findLastIndex","toggleNav","classList","contains","closeNav","forEach","setAttribute","add","handleEscape","removeAttribute","remove","removeEventListener","meganavMobileEl","getElementById","app","createApp","meganavMobileApp","provide","VueConfig","mount","___CSS_LOADER_EXPORT___","module","id","content","__esModule","default","locals","exports"],"sourceRoot":""}