{"version":3,"sources":["webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/js/modules/irSubNavigation.js"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","uuid","test","byteToHex","push","toString","substr","arr","offset","arguments","length","undefined","toLowerCase","TypeError","options","buf","rnds","random","i","Module","this","handleEscape","handleFocus","ignoreUtilFocusChanges","dom","primaryLinkContainers","el","querySelectorAll","primaryLinks","submenus","dropdownTriggerOuter","dropdownTriggerInner","dropdownListOuter","dropdownListInner","menu","querySelector","primaryNav","outerDropdown","innerDropdown","menuSmDevice","window","addEventListener","resetState","forEach","link","index","guid","uuidv4","id","setAttribute","handlePrimaryLinkSelect","handleOuterDropdownClick","handleInnerDropdownClick","document","handleClickOutside","handleScroll","hero","offsetHeight","offsetTop","subnavHeight","headerHeight","scrollY","classList","add","remove","removeEventListener","e","currentTarget","getAttribute","activeSubmenu","hideSubmenus","displaySubmenu","activeOuterDropdown","hideOuterDropdown","hideInnerDropdown","displayOuterDropdown","activeInnerDropdown","displayInnerDropdown","option","find","submenu","x","getBoundingClientRect","left","style","gsap","to","height","autoAlpha","duration","parentNode","contains","activeElement","submenuLinks","indexOf","keyCode","TAB","preventDefault","attemptFocus","RIGHT","DOWN","focusFirstDescendant","LEFT","UP","focusLastDescendant","breakpoint","matchMedia","matches","target","element","childNodes","child","which","ESC","stopPropagation","isFocusable","focus","Component"],"mappings":"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","file":"42.9a4bcb0a9eea202e00c6.js","sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n  // lazy load so that environments that need to polyfill have a chance to do so\n  if (!getRandomValues) {\n    // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n    // find the complete implementation of crypto (msCrypto) on IE11.\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n    if (!getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n  }\n\n  return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  // Note: Be careful editing this code!  It's been tuned for performance\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one\n  // of the following:\n  // - One or more input array values don't map to a hex octet (leading to\n  // \"undefined\" in the uuid)\n  // - Invalid input values for the RFC `version` or `variant` fields\n\n  if (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n  return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  options = options || {};\n  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    offset = offset || 0;\n\n    for (var i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n\n    return buf;\n  }\n\n  return stringify(rnds);\n}\n\nexport default v4;","import { Component } from '@verndale/core';\r\nimport { gsap } from 'gsap';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { isFocusable, keyCode } from '../helpers';\r\n\r\nclass Module extends Component {\r\n  setupDefaults() {\r\n    this.handleEscape = this.handleEscape.bind(this);\r\n    this.handleFocus = this.handleFocus.bind(this);\r\n    this.ignoreUtilFocusChanges = false;\r\n\r\n    this.dom = {\r\n      primaryLinkContainers: [\r\n        ...this.el.querySelectorAll('.ir-sub-nav')\r\n      ],\r\n      primaryLinks: this.el.querySelectorAll('.ir-sub-nav__primary-link'),\r\n      submenus: [...this.el.querySelectorAll('.ir-sub-nav__menu-submenu')],\r\n      dropdownTriggerOuter: this.el.querySelectorAll('.dropdown__trigger-outer'),\r\n      dropdownTriggerInner: this.el.querySelectorAll('.dropdown__trigger-inner'),\r\n      dropdownListOuter: [...this.el.querySelectorAll('.dropdown__list-outer')],\r\n      dropdownListInner: [...this.el.querySelectorAll('.dropdown__list-inner')],\r\n      menu: this.el.querySelector('.ir-sub-nav__sticky'),\r\n      primaryNav: this.el.querySelector('.ir-sub-nav__primary-nav'),\r\n      outerDropdown: this.el.querySelector('.dropdown__outer'),\r\n      innerDropdown: [...this.el.querySelectorAll('dropdown__inner')],\r\n      menuSmDevice: this.el.querySelector('.ir-sub-nav__menu-sm-device')\r\n    };\r\n  }\r\n\r\n  addListeners() {\r\n    window.addEventListener('resize', this.resetState.bind(this));\r\n\r\n\r\n    this.dom.primaryLinks.forEach((link, index) => {\r\n      const guid = uuidv4();\r\n      if (this.dom.submenus[index]) {\r\n        this.dom.submenus[index].id = guid;\r\n      }\r\n      link.setAttribute('aria-controls', guid);\r\n      link.addEventListener('click', this.handlePrimaryLinkSelect.bind(this));\r\n\r\n    });\r\n\r\n    this.dom.dropdownTriggerOuter.forEach((link, index) => {\r\n      const guid = uuidv4();\r\n      if (this.dom.dropdownListOuter[index]) {\r\n        this.dom.dropdownListOuter[index].id = guid;\r\n      }\r\n      link.setAttribute('aria-controls', guid);\r\n      link.addEventListener('click', this.handleOuterDropdownClick.bind(this));\r\n    });\r\n\r\n    this.dom.dropdownTriggerInner.forEach((link, index) => {\r\n      const guid = uuidv4();\r\n      if (this.dom.dropdownListInner[index]) {\r\n        this.dom.dropdownListInner[index].id = guid;\r\n      }\r\n      link.setAttribute('aria-controls', guid);\r\n      link.addEventListener('click', this.handleInnerDropdownClick.bind(this));\r\n    });\r\n\r\n    document.addEventListener('click', this.handleClickOutside.bind(this));\r\n    document.addEventListener('scroll', this.handleScroll.bind(this));\r\n\r\n  }\r\n\r\n  addEventListeners() {\r\n    document.addEventListener('keyup', this.handleEscape);\r\n    document.addEventListener('focus', this.handleFocus, true);\r\n\r\n\r\n  }\r\n\r\n  handleScroll() {\r\n    const hero = document.querySelector('[data-hero=\"true\"]');\r\n    const { offsetHeight, offsetTop } = hero;\r\n    const subnavHeight = this.el.offsetHeight;\r\n    const headerHeight = document.querySelector('.header.v2').offsetHeight;\r\n    const scroll = window.scrollY;\r\n    const pageContentScroll = scroll - offsetTop;\r\n\r\n    if (pageContentScroll >= offsetHeight - (2 * subnavHeight) - headerHeight) {\r\n      this.el.classList.add('scrolled');\r\n    } else {\r\n      this.el.classList.remove('scrolled');\r\n    }\r\n  }\r\n\r\n  removeEventListeners() {\r\n    document.removeEventListener('keyup', this.handleEscape);\r\n    document.removeEventListener('focus', this.handleFocus, true);\r\n    document.addEventListener('scroll', this.handleScroll);\r\n  }\r\n\r\n  handlePrimaryLinkSelect(e) {\r\n    const id = e.currentTarget.getAttribute('aria-controls');\r\n    if (this.activeSubmenu && this.activeSubmenu.id === id) {\r\n      e.currentTarget.classList.remove('ir-sub-nav__primary-link-selected');\r\n      this.hideSubmenus();\r\n    } else {\r\n      this.displaySubmenu(e.currentTarget);\r\n    }\r\n  }\r\n\r\n  handleOuterDropdownClick(e) {\r\n    const id = e.currentTarget.getAttribute('aria-controls');\r\n    if (this.activeOuterDropdown && this.activeOuterDropdown.id === id) {\r\n      this.hideOuterDropdown();\r\n      this.hideInnerDropdown();\r\n    } else {\r\n      this.displayOuterDropdown(e.currentTarget);\r\n    }\r\n  }\r\n\r\n  handleInnerDropdownClick(e) {\r\n    const id = e.currentTarget.getAttribute('aria-controls');\r\n    if (this.activeInnerDropdown && this.activeInnerDropdown.id === id) {\r\n      e.currentTarget.classList.remove('ir-sub-nav__inner-dropdown-selected');\r\n      this.hideInnerDropdown();\r\n    } else {\r\n      this.displayInnerDropdown(e.currentTarget);\r\n    }\r\n  }\r\n\r\n  displaySubmenu(option) {\r\n    this.hideSubmenus();\r\n    this.activeSubmenu = this.dom.submenus.find(\r\n      submenu => submenu.id === option.getAttribute('aria-controls')\r\n    );\r\n    option.classList.add('ir-sub-nav__primary-link-selected');\r\n    const buttonRect = option.getBoundingClientRect();\r\n    const x = buttonRect.left;\r\n    this.activeSubmenu.style.left = `${x-24}px`;\r\n    gsap.to(this.activeSubmenu, {\r\n      height: 'auto',\r\n      autoAlpha: 1,\r\n      duration: 0.3\r\n    });\r\n  }\r\n\r\n  displayOuterDropdown(option) {\r\n    this.hideOuterDropdown();\r\n\r\n    this.activeOuterDropdown = this.dom.dropdownListOuter.find(\r\n      submenu => submenu.id === option.getAttribute('aria-controls')\r\n    );\r\n\r\n    option.parentNode.classList.add('ir-sub-nav__outer-menu-active');\r\n\r\n    gsap.to(this.activeOuterDropdown, {\r\n      height: 'auto',\r\n      autoAlpha: 1,\r\n      duration: 0.3\r\n    });\r\n  }\r\n\r\n  displayInnerDropdown(option) {\r\n    this.hideInnerDropdown();\r\n\r\n    this.activeInnerDropdown = this.dom.dropdownListInner.find(\r\n      submenu => submenu.id === option.getAttribute('aria-controls')\r\n    );\r\n\r\n    option.parentNode.classList.add('ir-sub-nav__inner-menu-active');\r\n\r\n    gsap.to(this.activeInnerDropdown, {\r\n      height: 'auto',\r\n      autoAlpha: 1,\r\n      duration: 0.3\r\n    });\r\n  }\r\n\r\n  hideSubmenus() {\r\n    if (this.activeSubmenu) {\r\n      this.dom.primaryLinkContainers\r\n        .find(link =>\r\n          link.classList.contains('ir-sub-nav__menu-section--active')\r\n        )\r\n        ?.classList.remove('ir-sub-nav__menu-section--active');\r\n\r\n      const links = [...this.dom.primaryLinks];\r\n\r\n        links\r\n          .find(link =>\r\n            link.classList.contains('ir-sub-nav__primary-link-selected')\r\n          )\r\n        ?.classList.remove('ir-sub-nav__primary-link-selected');\r\n\r\n        gsap.to(this.activeSubmenu, {\r\n          height: 0,\r\n          autoAlpha: 0,\r\n          duration: 0.3\r\n        });\r\n\r\n        this.activeSubmenu = null;\r\n    }\r\n  }\r\n\r\n  hideOuterDropdown() {\r\n    if (this.activeOuterDropdown) {\r\n      [...this.dom.dropdownTriggerOuter]\r\n        .find(link =>\r\n          link.parentNode.classList.contains('ir-sub-nav__outer-menu-active')\r\n        )\r\n        ?.parentNode.classList.remove('ir-sub-nav__outer-menu-active');\r\n\r\n      gsap.to(this.activeOuterDropdown, {\r\n        height: 0,\r\n        autoAlpha: 0,\r\n        duration: 0.3\r\n      });\r\n      this.activeOuterDropdown = null;\r\n    }\r\n  }\r\n\r\n  hideInnerDropdown() {\r\n    if (this.activeInnerDropdown) {\r\n      [...this.dom.dropdownTriggerInner]\r\n        .find(link =>\r\n          link.parentNode.classList.contains('ir-sub-nav__inner-menu-active')\r\n        )\r\n        ?.parentNode.classList.remove('ir-sub-nav__inner-menu-active');\r\n\r\n      gsap.to(this.activeInnerDropdown, {\r\n        height: 0,\r\n        autoAlpha: 0,\r\n        duration: 0.3\r\n      });\r\n      this.activeInnerDropdown = null;\r\n    }\r\n  }\r\n\r\n  handleSubmenuNavigate(e) {\r\n    if (this.ignoreUtilFocusChanges) return;\r\n    const { activeElement } = document;\r\n    const submenuLinks = [...this.activeSubmenu?.querySelectorAll('a')];\r\n    const activeSubmenu = submenuLinks.indexOf(activeElement);\r\n\r\n    switch (e.keyCode) {\r\n      case keyCode.TAB:\r\n        if (this.activeSubmenu && this.activeSubmenu.contains(activeElement)) {\r\n          e.preventDefault();\r\n\r\n          this.attemptFocus(\r\n            this.dom.primaryLinks.find(\r\n              link =>\r\n                link.getAttribute('aria-controls') === this.activeSubmenu.id\r\n            )\r\n          );\r\n        }\r\n        break;\r\n      case keyCode.RIGHT:\r\n      case keyCode.DOWN:\r\n        if (this.activeSubmenu && this.activeSubmenu.contains(activeElement)) {\r\n          e.preventDefault();\r\n          if (activeSubmenu === submenuLinks.length - 1) {\r\n            this.focusFirstDescendant(this.activeSubmenu);\r\n          } else {\r\n            this.attemptFocus(submenuLinks[activeSubmenu + 1]);\r\n          }\r\n        }\r\n        break;\r\n      case keyCode.LEFT:\r\n      case keyCode.UP:\r\n        if (this.activeSubmenu && this.activeSubmenu.contains(activeElement)) {\r\n          e.preventDefault();\r\n          if (activeSubmenu === 0) {\r\n            this.focusLastDescendant(this.activeSubmenu);\r\n          } else {\r\n            this.attemptFocus(submenuLinks[activeSubmenu - 1]);\r\n          }\r\n        }\r\n        break;\r\n    }\r\n  }\r\n\r\n  handleClickOutside(e) {\r\n    this.breakpoint = matchMedia('(min-width: 1280px)');\r\n    if (this.breakpoint.matches) {\r\n      if (!this.dom.menu.contains(e.target) && (!this.dom.primaryNav.contains(e.target))){\r\n        this.hideSubmenus();\r\n      }\r\n    } else {\r\n      if (!this.dom.menuSmDevice.contains(e.target)) {\r\n        this.resetState();\r\n      }\r\n    }\r\n  }\r\n\r\n  resetState() {\r\n    this.hideSubmenus();\r\n    this.hideOuterDropdown();\r\n    this.hideInnerDropdown();\r\n  }\r\n\r\n  focusFirstDescendant(element) {\r\n    for (let i = 0; i < element.childNodes.length; i++) {\r\n      const child = element.childNodes[i];\r\n      if (this.attemptFocus(child) || this.focusFirstDescendant(child)) {\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  focusLastDescendant(element) {\r\n    for (let i = element.childNodes.length - 1; i >= 0; i--) {\r\n      const child = element.childNodes[i];\r\n      if (this.attemptFocus(child) || this.focusLastDescendant(child)) {\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  handleEscape(e) {\r\n    const key = e.which || e.keyCode;\r\n\r\n    if (key === keyCode.ESC) {\r\n      e.stopPropagation();\r\n    }\r\n  }\r\n\r\n  handleFocus(e) {\r\n    if (\r\n      this.ignoreUtilFocusChanges ||\r\n      e.target.classList.contains('ir-sub-nav__menu__primary-link')\r\n    )\r\n      return;\r\n  }\r\n\r\n  attemptFocus(element) {\r\n    if (!isFocusable(element)) {\r\n      return false;\r\n    }\r\n\r\n    this.ignoreUtilFocusChanges = true;\r\n    try {\r\n      element.focus();\r\n    } catch (e) {\r\n      return;\r\n    }\r\n    this.ignoreUtilFocusChanges = false;\r\n    return document.activeElement === element;\r\n  }\r\n}\r\n\r\nexport default Module;\r\n"],"sourceRoot":""}