{"version":3,"sources":["webpack://@verndale/toolkit/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://@verndale/toolkit/./src/js/helpers/index.js","webpack://@verndale/toolkit/./src/js/modules/bicentennial/top-navigation.js"],"names":[],"mappings":"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","file":"scripts/4843.58b868c8e13cab7e9c38.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","// /**\n// * debounce function\n// * Delays the processing of the event\n// */\nexport const debounce = (callback, wait) => {\n let timerId;\n return (...args) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n};\n\nexport const throttle = (callback, wait) => {\n let inThrottle;\n return (...args) => {\n if (!inThrottle) {\n callback(...args);\n inThrottle = true;\n setTimeout(() => {\n inThrottle = false;\n }, wait);\n }\n };\n};\n// /**\n// * Checks if an element is focusable\n// *\n// * @param {Object} el - HTML element you want to check if it's focusable\n// */\nexport const isFocusable = el => {\n if (\n el.tabIndex > 0 ||\n (el.tabIndex === 0 && el.getAttribute('tabIndex') !== null)\n ) {\n return true;\n }\n\n if (el.disabled) {\n return false;\n }\n\n /* eslint-disable indent */\n switch (el.nodeName) {\n case 'A':\n return !!el.href && el.rel !== 'ignore';\n case 'INPUT':\n return el.type !== 'hidden' && el.type !== 'file';\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n /* eslint-enable indent */\n};\n\n// /**\n// * Key code list object\n// */\nexport const keyCode = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\n\n// /**\n// * Breakpoints list object\n// */\nexport const breakpoints = {\n mobile: 360,\n tablet: 768,\n tabletLandscape: 1024,\n desktop: 1280,\n wide: 1600\n};\n\n// /**\n// * Bicentennial Swiper Object\n// */\n\nexport const bicentennialSwiperConfig = {\n allowTouchMove: false,\n autoHeight: false,\n rewind: true,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 1000,\n watchOverflow: true,\n watchSlidesProgress: true\n}\n\n// /**\n// * Convert Unicode characters inside a string to their actual characters\n// */\n\nexport const convertUnicode = (input) => {\n if (typeof input === 'string') {\n return input.replace(/\\\\+u([0-9a-fA-F]{4})/g, (a, b) =>\n String.fromCharCode(parseInt(b, 16)))\n }\n return input;\n};\n","import { Component } from '@verndale/core';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { animate } from 'motion';\nimport { debounce, keyCode } from '../../helpers';\n\nclass TopNavigation extends Component {\n setupDefaults() {\n this.dom = {\n menuTrigger: this.el.querySelector(\n '.bicentennial-top-navigation__menu-wrapper'\n ),\n menu: this.el.querySelector('.bicentennial-navigation'),\n navigation: Array.from(\n this.el.querySelectorAll('.bicentennial-navigation__nav-link')\n ),\n\n lineOne: this.el.querySelector('.bicentennial-navigation__nav-list'),\n lineTwo: this.el.querySelector('.bicentennial-navigation__line'),\n lineThree: this.el.querySelectorAll('.bicentennial-navigation__nav-item'),\n lineRectangle: this.el.querySelectorAll(\n '.bicentennial-navigation__nav-link'\n )\n };\n\n this.isShadowActive = false;\n this.animations = [];\n this.firstLineScale = 0;\n this.secondLineScaleLeft = 0;\n this.secondLineScaleRight = 0;\n this.thirdLineScale = [];\n this.fourthRectangleScale = [];\n\n this.animTime = 0.3;\n this.finished = [false, false, false, false, false, false, false];\n\n this.lineTwoWidth =\n this.dom.lineOne.clientWidth -\n this.dom.lineThree[0].clientWidth / 2 -\n this.dom.lineThree[3].clientWidth / 2;\n\n this.lineTwoOffset = this.dom.lineThree[0].clientWidth / 2;\n\n this.forwardBackward = true;\n\n this.positions = [1, 0.3333, 0.3333, 1];\n\n const selectedPage = this.el.dataset.page;\n\n this.dom.lineThree.forEach(line => {\n line.style = '--line-scale-item: 0';\n });\n this.dom.lineRectangle.forEach(rectangle => {\n rectangle.style = '--line-scale-rectangle: 100%';\n });\n if (selectedPage) {\n this.selected = this.dom.navigation.findIndex(\n el => el.getAttribute('id') === selectedPage\n );\n\n if (this.selected > -1) {\n this.dom.navigation[this.selected].classList.add('selected');\n this.dom.menu.dataset.gradient = this.selected;\n this.animateFirstLine(true, this.selected);\n this.hasDefaultPage = true;\n }\n }\n this.handleResize();\n }\n\n addListeners() {\n window.addEventListener(\n 'resize',\n debounce(this.handleResize.bind(this), 100)\n );\n if (this.el.classList.contains('bicentennial-top-navigation--sticky') || this.el.classList.contains('bicentennial-top-navigation--landing')) {\n window.addEventListener('scroll', debounce(this.handleScroll.bind(this), 15));\n }\n window.addEventListener('keydown', this.handleKeyDown.bind(this));\n this.dom.menuTrigger.addEventListener(\n 'click',\n this.handleMenuTrigger.bind(this)\n );\n this.dom.menu.addEventListener(\n 'mouseover',\n debounce(this.handleHover.bind(this), 100)\n );\n this.dom.menu.addEventListener(\n 'focusin',\n debounce(this.handleHover.bind(this), 100)\n );\n\n this.dom.menu.addEventListener(\n 'transitionend',\n this.handleTransitionEnd.bind(this)\n );\n }\n\n animateFirstLine(inOut, pos) {\n const initialPos = this.firstLineScale || 0;\n this.finished[0] = false;\n\n this.animations[0] = animate(\n progress => {\n if (inOut) {\n this.firstLineScale = initialPos + progress;\n if (this.firstLineScale > 1) {\n this.firstLineScale = 1;\n }\n } else if (this.hoveredElement === -1 && !this.hasDefaultPage) {\n this.firstLineScale = initialPos - progress;\n if (this.firstLineScale < 0) this.firstLineScale = 0;\n } else {\n this.firstLineScale = initialPos - progress;\n if (this.firstLineScale < 0) this.firstLineScale = 0;\n }\n this.dom.lineOne.style = `--line-scale: ${this.firstLineScale}`;\n },\n {\n easing: inOut ? 'ease-in' : 'ease-out',\n delay: 0,\n duration: this.animTime * 0.08\n }\n );\n\n this.animations[0]?.finished.then(() => {\n this.finished[0] = true;\n if (this.animations[0] && inOut) {\n this.animateSecondLine(inOut, pos);\n } else {\n this.stopAnimations();\n }\n });\n }\n\n animateSecondLine(inOut, pos) {\n if (!inOut) {\n this.animateToCenter(inOut, pos);\n return;\n }\n\n if (\n (pos < 2 && this.secondLineScaleRight > 0) ||\n (pos > 1 && this.secondLineScaleLeft > 0)\n ) {\n this.animateToCenter(inOut, pos);\n } else {\n this.animateToItem(pos);\n }\n }\n\n animateToCenter(inOut, pos) {\n const leftRight = this.secondLineScaleLeft > 0;\n const initialLeft = this.secondLineScaleLeft;\n const initialRight = this.secondLineScaleRight;\n\n this.finished[1] = false;\n this.animations[1] = animate(\n progress => {\n let scaleTo0 = leftRight\n ? initialLeft - progress\n : initialRight - progress;\n if (scaleTo0 < 0) {\n scaleTo0 = 0;\n if (!this.finished[1]) {\n this.finished[1] = true;\n this.animations[1].finish();\n }\n }\n if (leftRight) {\n this.secondLineScaleLeft = scaleTo0;\n } else {\n this.secondLineScaleRight = scaleTo0;\n }\n\n this.dom.lineTwo.style = `width: ${this.lineTwoWidth}px; inset-inline-start: ${this.lineTwoOffset}px; --line-scale-left: ${this.secondLineScaleLeft}; --line-scale-right:${this.secondLineScaleRight};`;\n },\n {\n easing: 'ease-in-out',\n duration: this.animTime * 0.33\n }\n );\n\n this.animations[1].finished.then(() => {\n this.finished[1] = true;\n if (this.animations[1]) {\n if (inOut) {\n this.animateToItem(pos);\n } else {\n this.animateFirstLine(inOut, pos);\n }\n }\n });\n }\n\n animateToItem(pos) {\n const leftRight = pos < 2;\n const initialLeft = this.secondLineScaleLeft;\n const initialRight = this.secondLineScaleRight;\n\n this.finished[2] = false;\n this.animations[2] = animate(\n progress => {\n let scaleToPos;\n if (leftRight) {\n scaleToPos =\n initialLeft > this.positions[pos]\n ? initialLeft - progress\n : initialLeft + progress;\n\n if (scaleToPos > 1) {\n scaleToPos = 1;\n if (!this.finished[2]) {\n this.finished[2] = true;\n this.animations[2].finish();\n }\n }\n\n if (\n (pos === 1 &&\n scaleToPos > this.positions[pos] &&\n initialLeft < this.positions[pos]) ||\n (pos === 1 &&\n scaleToPos < this.positions[pos] &&\n initialLeft > this.positions[pos])\n ) {\n scaleToPos = this.positions[pos];\n if (!this.finished[2]) {\n this.finished[2] = true;\n this.animations[2].finish();\n }\n }\n\n this.secondLineScaleLeft = scaleToPos;\n } else {\n scaleToPos =\n initialRight > this.positions[pos]\n ? initialRight - progress\n : initialRight + progress;\n\n if (scaleToPos > 1) {\n scaleToPos = 1;\n if (!this.finished[2]) {\n this.finished[2] = true;\n this.animations[2].finish();\n }\n }\n\n if (\n (pos === 2 &&\n scaleToPos > this.positions[pos] &&\n initialRight < this.positions[pos]) ||\n (pos === 2 &&\n scaleToPos < this.positions[pos] &&\n initialRight > this.positions[pos])\n ) {\n scaleToPos = this.positions[pos];\n if (!this.finished[2]) {\n this.finished[2] = true;\n this.animations[2].finish();\n }\n }\n\n this.secondLineScaleRight = scaleToPos;\n }\n\n this.dom.lineTwo.style = `width: ${this.lineTwoWidth}px; inset-inline-start: ${this.lineTwoOffset}px; --line-scale-left: ${this.secondLineScaleLeft}; --line-scale-right:${this.secondLineScaleRight};`;\n },\n {\n easing: 'ease-in-out',\n duration: this.animTime * 0.33\n }\n );\n\n this.animations[2].finished.then(() => {\n this.finished[2] = true;\n if (this.animations[2]) {\n this.animateThirdLine(true, pos);\n }\n });\n }\n\n animateThirdLine(inOut, pos) {\n const initialThirdLine = this.thirdLineScale;\n let scaleItemTo0;\n const index = initialThirdLine.findIndex(el => el > 0);\n\n if (index >= 0) {\n this.finished[3] = false;\n this.animations[3] = animate(\n progress => {\n scaleItemTo0 = initialThirdLine[index] - progress;\n if (scaleItemTo0 < 0) {\n scaleItemTo0 = 0;\n if (!this.finished[3]) {\n this.finished[3] = true;\n }\n }\n this.thirdLineScale[pos] = scaleItemTo0;\n\n this.dom.lineThree[\n index\n ].style = `--line-scale-item: ${scaleItemTo0}`;\n },\n { easing: 'ease-in-out', duration: this.animTime * 0.2 }\n );\n\n this.animations[3].finished.then(() => {\n this.finished[3] = true;\n if (inOut) {\n this.animateItemLine(inOut, pos);\n } else {\n this.lastAnim = 2;\n this.checkNewPosition();\n }\n });\n } else {\n this.animateItemLine(inOut, pos);\n }\n }\n\n animateItemLine(inOut, pos) {\n const initialThirdItem = this.thirdLineScale[pos] || 0;\n\n if (inOut) {\n this.finished[4] = false;\n this.animations[4] = animate(\n progress => {\n let scaleToItem = initialThirdItem + progress;\n if (scaleToItem > 1) {\n scaleToItem = 1;\n if (!this.finished[4]) {\n this.finished[4] = true;\n this.animations[4].finish();\n }\n }\n\n this.thirdLineScale[pos] = scaleToItem;\n\n this.dom.lineThree[pos].style = `--line-scale-item: ${scaleToItem}`;\n },\n { easing: 'ease-in-out', duration: this.animTime * 0.2 }\n );\n\n this.animations[4].finished.then(() => {\n this.finished[4] = true;\n if (this.animations[4]) {\n this.animateFourthLine(inOut, pos);\n }\n });\n }\n }\n\n animateFourthLine(inOut, pos) {\n const initialFourthRectangle = this.fourthRectangleScale;\n let scaleRectangleTo0;\n const index = initialFourthRectangle.findIndex(el => el < 100);\n if (index >= 0) {\n this.finished[5] = false;\n this.animations[5] = animate(\n progress => {\n scaleRectangleTo0 = initialFourthRectangle[index] + progress * 100;\n\n if (scaleRectangleTo0 > 100) {\n scaleRectangleTo0 = 100;\n if (!this.finished[5]) {\n this.finished[5] = true;\n this.animations[5].finish();\n }\n }\n\n this.fourthRectangleScale[index] = scaleRectangleTo0;\n\n this.dom.lineRectangle[\n index\n ].style = `--line-rectangle: ${scaleRectangleTo0}%`;\n },\n {\n easing: inOut ? 'ease-out' : 'ease-in',\n duration: this.animTime * 0.04\n }\n );\n this.animations[5].finished.then(() => {\n this.finished[5] = true;\n if (inOut) {\n this.animateRectangle(inOut, pos);\n } else {\n this.animateThirdLine(inOut, pos);\n }\n });\n } else {\n this.animateRectangle(inOut, pos);\n }\n }\n\n animateRectangle(inOut, pos) {\n const initialRectangle = this.fourthRectangleScale[pos] || 100;\n\n if (inOut) {\n this.finished[6] = false;\n this.animations[6] = animate(\n progress => {\n let scaleToRectangle = initialRectangle - progress * 100;\n if (scaleToRectangle < 0) {\n scaleToRectangle = 0;\n if (!this.finished[6]) {\n this.animations[6].finish();\n this.finished = true;\n }\n }\n this.fourthRectangleScale[pos] = scaleToRectangle;\n\n this.dom.lineRectangle[\n pos\n ].style = `--line-rectangle: ${scaleToRectangle}%`;\n },\n {\n easing: inOut ? 'ease-out' : 'ease-in',\n duration: this.animTime * 0.04\n }\n );\n\n this.animations[6].finished.then(() => {\n this.finished[6] = true;\n this.stopAnimations();\n });\n }\n }\n\n stopAnimations() {\n this.animations.forEach((anim, index) => {\n if (anim) {\n this.finished[index] = true;\n anim.stop();\n this.animations[index] = null;\n this.lastAnim = index;\n }\n });\n }\n\n handleMenuTrigger() {\n this.openMenu = !this.openMenu;\n\n if (this.openMenu) {\n disableBodyScroll(this.dom.menu,\n {\n allowTouchMove: () => true\n });\n document.body.style.maxInlineSize = '100vw';\n this.dom.menu.style.display = 'block';\n window.dispatchEvent(new Event('resize'));\n } else {\n enableBodyScroll(this.dom.menu);\n }\n\n window.requestAnimationFrame(() => {\n this.el.classList.toggle('open-menu');\n });\n }\n\n handleTransitionEnd(e) {\n if (\n e.target === this.dom.menu &&\n e.propertyName === 'opacity' &&\n !this.openMenu\n ) {\n this.dom.menu.style.display = 'none';\n }\n }\n\n checkNewPosition() {\n let animDirection = true;\n let lastPos = this.hoveredElement;\n if (this.hoveredElement > -1) {\n this.stopAnimations();\n } else if (this.hasDefaultPage) {\n this.stopAnimations();\n lastPos = this.selected;\n } else {\n animDirection = false;\n lastPos = 0;\n }\n\n if (this.lastAnim > 2) {\n if (animDirection) {\n this.animateFirstLine(animDirection, lastPos);\n } else {\n this.animateFourthLine(animDirection, lastPos);\n }\n } else if (this.lastAnim === 1 || this.lastAnim === 2) {\n this.animateSecondLine(animDirection, lastPos);\n } else {\n this.animateFirstLine(animDirection, lastPos);\n }\n }\n\n handleHover(e) {\n this.prevHovered = this.hoveredElement;\n\n this.hoveredElement = this.dom.navigation.findIndex(\n el => el.getAttribute('id') === e.target.getAttribute('id')\n );\n\n let preventWithSelected = false\n\n if (this.hasDefaultPage) {\n\n // mouse goes to the default selected item from anywhere\n if (this.hoveredElement === this.selected && this.prevHovered === -1) {\n preventWithSelected = true;\n }\n\n // mouse goes to anywhere (not link) from the default selected item\n if (this.prevHovered === this.selected && this.hoveredElement === -1) {\n preventWithSelected = true;\n }\n\n this.hoveredElement = this.hoveredElement === -1 ? this.selected : this.hoveredElement;\n }\n\n if (this.prevHovered === this.hoveredElement || preventWithSelected || this.prevHovered === undefined) {\n return;\n }\n\n if (\n this.prevHovered > -1 ||\n (this.hasDefaultPage && this.hoveredElement > -1)\n ) {\n this.stopAnimations();\n this.animateFourthLine(false, this.prevHovered);\n } else if (this.hoveredElement > -1 && !this.hasDefaultPage) {\n this.checkNewPosition();\n }\n\n if (this.hoveredElement > -1) {\n this.dom.menu.dataset.gradient = this.hoveredElement;\n } else {\n this.dom.menu.dataset.gradient = this.selected;\n }\n }\n\n handleKeyDown(e) {\n if (e.keyCode === keyCode.ESC && this.openMenu) {\n this.handleMenuTrigger();\n }\n }\n\n handleResize() {\n if (!this.openMenu) {\n this.dom.menu.style.display = 'block';\n this.dom.menu.style.visibility = 'hidden';\n }\n this.lineTwoWidth =\n this.dom.lineOne.clientWidth -\n this.dom.lineThree[0].clientWidth / 2 -\n this.dom.lineThree[3].clientWidth / 2;\n\n this.lineTwoOffset = this.dom.lineThree[0].clientWidth / 2;\n this.itemOffset = this.dom.lineTwo.clientWidth;\n\n this.positions[2] = this.dom.lineThree[1].offsetLeft / this.lineTwoWidth;\n this.positions[1] =\n (this.dom.lineThree[2].offsetLeft - this.lineTwoWidth) /\n -this.lineTwoWidth;\n\n if (!this.openMenu) {\n this.dom.menu.style.display = 'none';\n this.dom.menu.style.visibility = 'visible';\n }\n this.dom.lineTwo.style = `width: ${this.lineTwoWidth}px; inset-inline-start: ${this.lineTwoOffset}px; --line-scale-left: ${this.secondLineScaleLeft}; --line-scale-right:${this.secondLineScaleRight} `;\n }\n\n handleScroll() {\n if (window.scrollY > 30 && !this.isShadowActive) {\n this.el.classList.add('bicentennial-top-navigation--sticky-shadow');\n this.isShadowActive = true;\n return;\n }\n\n if (window.scrollY <= 30 && this.isShadowActive) {\n this.el.classList.remove('bicentennial-top-navigation--sticky-shadow');\n this.isShadowActive = false;\n }\n }\n}\n\nexport default TopNavigation;\n"],"sourceRoot":""}