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