{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/animation/eventBus/EventBus.ts","webpack://@verndale/toolkit/./src/js/animation/eventBus/index.ts","webpack://@verndale/toolkit/./src/js/helpers/index.ts","webpack://@verndale/toolkit/./src/js/helpers/variables.ts","webpack://@verndale/toolkit/./src/js/modules/header/GlobalNavigation/DesktopGlobalNavigation.ts","webpack://@verndale/toolkit/./src/js/modules/header/HeaderSearch.ts","webpack://@verndale/toolkit/./src/js/modules/header/LanguageSelector.ts","webpack://@verndale/toolkit/./src/js/modules/header/UtilityNavigation.ts","webpack://@verndale/toolkit/./src/js/modules/header/GlobalNavigation/MobileGlobalNavigation.ts","webpack://@verndale/toolkit/./src/js/modules/header/GlobalNavigation/index.ts","webpack://@verndale/toolkit/./src/js/modules/header/index.ts","webpack://@verndale/toolkit/./node_modules/@motionone/dom/dist/animate/create-animate.es.js","webpack://@verndale/toolkit/./node_modules/@motionone/dom/dist/animate/index.es.js","webpack://@verndale/toolkit/./node_modules/motion/dist/animate.es.js"],"names":["EventBus","subscriptions","eventType","callback","id","arg","key","_EventBus","EventBusSingleton","debounce","wait","timerId","args","darkColorPalette","lightColorPalette","getRandomColor","background","breakpoints","DesktopGlobalNavigation","Component","el","__publicField","trigger","staggerItems","sequence","stagger","timeline","item","animate","progress","__async","menuTarget","menu","diff","menuInner","links","_a","activeTrigger","activeMenuTarget","activeMenu","items","featuredItem","header","menuRight","navRight","HeaderSearch","_b","LanguageSelector","button","guid","content","panel","scrollHeight","UtilityNavigation","_c","MobileGlobalNavigation","backButton","navWrapper","_d","sequence2","correspondingLevel2Menu","t","_e","itemsWrapper","link","GlobalNavigation","Header","createAnimate","AnimatePolyfill","elements","keyframes","options","numElements","animationFactories","i","element","valueOptions","animation","animateProgress","target","keyframesOrOptions"],"mappings":"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","file":"scripts/2354.8fce62fe205e70a9b9be.js","sourcesContent":["declare class EventBus {\n constructor();\n subscribe(\n eventType: string,\n callback: () => void\n ): {\n unsubscribe: () => void;\n };\n publish(eventType: string, arg?: symbol): void;\n}\n\nexport type Subscriptions = {\n [key: string]: {\n [key: symbol]: (arg: symbol) => void;\n };\n};\n\nfunction EventBus() {\n const subscriptions: Subscriptions = {};\n\n const subscribe = (eventType: string, callback: () => void) => {\n const id = Symbol('id');\n if (!subscriptions[eventType]) subscriptions[eventType] = {};\n subscriptions[eventType][id] = callback;\n return {\n unsubscribe: function unsubscribe() {\n delete subscriptions[eventType][id];\n if (\n Object.getOwnPropertySymbols(subscriptions[eventType]).length === 0\n ) {\n delete subscriptions[eventType];\n }\n }\n };\n };\n\n const publish = (eventType: string, arg: symbol) => {\n if (!subscriptions[eventType]) return;\n Object.getOwnPropertySymbols(subscriptions[eventType]).forEach(key =>\n subscriptions[eventType][key](arg)\n );\n };\n\n return { subscribe, publish };\n}\n\nexport default EventBus;\n","import _EventBus from './EventBus';\n\nexport const EventBus = _EventBus;\nexport const EventBusSingleton = new _EventBus();\n","// /**\n// * debounce function\n// * Delays the processing of the event\n// */\nexport const debounce = (callback: (args: unknown) => void, wait: number) => {\n let timerId: ReturnType;\n\n return (...args: [unknown]) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n};\n\ninterface IColorPalette {\n name: string;\n code: string;\n}\n\nexport const darkColorPalette: Array = [\n { name: 'orange', code: '#f47920' },\n { name: 'yellow', code: '#f4b450' },\n { name: 'green', code: '#0f9d58' },\n { name: 'light-blue', code: '#009cde' }\n];\n\nexport const lightColorPalette: Array = [\n { name: 'red', code: '#da291c' },\n { name: 'purple', code: '#492d8c' },\n { name: 'blue', code: '#2e67b2' },\n { name: 'orange', code: '#f47920' },\n { name: 'yellow', code: '#f4b450' },\n { name: 'green', code: '#0f9d58' },\n { name: 'light-blue', code: '#009cde' }\n];\n\nexport const getRandomColor = (\n background: 'light' | 'dark' = 'light'\n): IColorPalette => {\n if (background === 'light') {\n const lightRandomColor =\n lightColorPalette[Math.floor(Math.random() * lightColorPalette.length)];\n return lightRandomColor;\n }\n\n const darkRandomColor =\n darkColorPalette[Math.floor(Math.random() * darkColorPalette.length)];\n return darkRandomColor;\n};\n","// /**\n// * Key code list object\n// */\nexport const breakpoints = {\n mobile: 360,\n mobileLarge: 480,\n tablet: 768,\n tabletLandscape: 1024,\n desktop: 1280,\n wide: 1440\n};\n","import { Component } from '@verndale/core';\nimport { animate, ElementOrSelector, stagger, timeline } from 'motion';\nimport { TimelineDefinition } from '@motionone/dom/types/timeline/types';\nimport { EventBusSingleton } from '../../../animation/eventBus';\n\nclass DesktopGlobalNavigation extends Component {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [x: string]: any;\n MOTION_ZERO_DURATION = 0.000001;\n diffLevel1 = 0;\n diffLevel2 = 0;\n activeMenu: HTMLElement | null = null;\n currentFeaturedItem: HTMLElement | null = null;\n isDesktop = false;\n reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n initialDelay = 0.75;\n hasMastheadPlayed: string | null;\n\n constructor(el: HTMLElement) {\n super(el);\n this.hasMastheadPlayed = localStorage.getItem(\n 'manhattan_masthead-animation'\n );\n if (this.hasMastheadPlayed === null) {\n if (!this.reducedMotion.matches) {\n if (!document.querySelector('.intro-animation-overlay')) {\n this.initialDelay = 0;\n this.animateIn();\n } else {\n EventBusSingleton.subscribe(\n 'introAnimationOverlay:hide',\n this.animateIn.bind(this)\n );\n }\n }\n }\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el,\n menuTriggers: this.el.querySelectorAll(\n '.global-navigation__menu-trigger'\n ),\n cta: this.el.querySelector('.global-navigation__cta'),\n container: this.el.querySelector(\n '.global-navigation__container'\n ),\n navigationItems: this.el.querySelectorAll(\n '.global-navigation__item'\n ),\n menus: this.el.querySelectorAll('.global-navigation__menu'),\n level3Triggers: this.el.querySelectorAll(\n '.global-navigation__menu-level-3-trigger'\n ),\n level3Menus: this.el.querySelectorAll(\n '.global-navigation__menu-level-3-wrapper'\n ),\n background: this.el.querySelector(\n '.global-navigation__background'\n ),\n logo: this.el.querySelector('.global-navigation__logo')\n };\n this.listenerRefs = {\n toggleMenu: this.toggleMenu.bind(this),\n toggleLevel3Menu: this.toggleLevel3Menu.bind(this),\n handleClickOutside: this.handleClickOutside.bind(this)\n };\n }\n\n addListeners() {\n [].forEach.call(this.dom.menuTriggers, (trigger: HTMLElement) => {\n trigger.addEventListener('click', this.listenerRefs.toggleMenu);\n });\n [].forEach.call(this.dom.level3Triggers, (trigger: HTMLElement) => {\n trigger.addEventListener('click', this.listenerRefs.toggleLevel3Menu);\n });\n document.addEventListener(\n 'click',\n this.listenerRefs.handleClickOutside,\n true\n );\n }\n\n removeListeners() {\n [].forEach.call(this.dom.menuTriggers, (trigger: HTMLElement) => {\n trigger.removeEventListener('click', this.listenerRefs.toggleMenu);\n });\n [].forEach.call(this.dom.level3Triggers, (trigger: HTMLElement) => {\n trigger.removeEventListener('click', this.listenerRefs.toggleLevel3Menu);\n });\n document.removeEventListener(\n 'click',\n this.listenerRefs.handleClickOutside,\n true\n );\n }\n\n handleClickOutside(e: Event) {\n if (!this.el.contains(e.target as Node)) {\n this.hideMenu();\n }\n }\n\n animateIn() {\n (this.dom.container as HTMLElement).style.overflow = 'hidden';\n const staggerItems = [] as HTMLElement[];\n staggerItems.push(this.dom.logo as HTMLElement);\n staggerItems.push(...(this.dom.navigationItems as NodeListOf));\n\n (this.dom.background as HTMLElement).style.zIndex = '999';\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'z-index', at: 1 });\n sequence.push([\n this.dom.background as ElementOrSelector,\n {\n x: [`${window.innerWidth}px`, 0]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 1.25,\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.background as ElementOrSelector,\n {\n scaleX: [0, 1]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 1.2,\n at: 'start',\n easing: 'linear'\n }\n ]);\n sequence.push([\n this.dom.background as ElementOrSelector,\n {\n zIndex: -1\n },\n {\n duration: this.MOTION_ZERO_DURATION,\n at: 'z-index',\n easing: 'linear'\n }\n ]);\n sequence.push([\n staggerItems.reverse(),\n {\n opacity: [0, 1],\n transform: ['translateY(60px)', 'translateY(0)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25,\n delay: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : stagger(0.05),\n opacity: {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 1\n }\n }\n ]);\n timeline(sequence, { delay: this.initialDelay }).finished.then(() => {\n (this.dom.container as HTMLElement).style.overflow = '';\n staggerItems.forEach(item => {\n item.style.opacity = '';\n item.style.transform = '';\n });\n });\n this.animateCTAClipPath();\n }\n\n animateCTAClipPath() {\n if (this.dom.cta)\n animate(\n progress => {\n (this.dom.cta as HTMLElement).setAttribute(\n 'style',\n `--clip: calc(${100 - progress * 100}% - ${progress * 20}px)`\n );\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 1.25,\n easing: 'linear',\n delay: this.reducedMotion.matches ? 0 : this.initialDelay + 0.25\n }\n );\n }\n\n async toggleMenu(e: Event) {\n const trigger = e.currentTarget as HTMLElement;\n if (trigger.getAttribute('aria-expanded') === 'false') {\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n await this.hideMenu();\n this.showMenu(menu, trigger);\n } else {\n this.hideMenu();\n }\n }\n\n hideLevel3Menus() {\n [].forEach.call(this.dom.level3Triggers, (trigger: HTMLElement) => {\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n (menu as HTMLElement).style.display = 'none';\n trigger.setAttribute('aria-expanded', 'false');\n });\n }\n\n showMenu(menu: HTMLElement, trigger: HTMLElement) {\n menu.style.display = 'flex';\n requestAnimationFrame(async () => {\n let diff = this.getWidthDifference(menu);\n if (diff > 0) diff = 0;\n this.diffLevel1 = diff;\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'links-enter', at: 0.25 });\n sequence.push([\n menu as ElementOrSelector,\n {\n opacity: [0, 1],\n transform: `translate(${this.diffLevel1}px, 0)`\n },\n {\n duration: this.MOTION_ZERO_DURATION,\n at: 'start'\n }\n ]);\n sequence.push([\n menu.querySelector(\n '.global-navigation__menu-inner'\n ) as ElementOrSelector,\n {\n transform: ['translate(0, -100%)', 'translate(0, 0)']\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n at: 'start'\n }\n ]);\n sequence.push([\n menu.querySelectorAll(\n '.global-navigation__menu-left > .link'\n ),\n {\n transform: ['translate(-25px, 0)', 'translate(0, 0)'],\n opacity: [0, 1]\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.25,\n delay: this.reducedMotion.matches ? 0 : stagger(0.1),\n at: this.reducedMotion.matches ? 'start' : 'links-enter'\n }\n ]);\n trigger.setAttribute('aria-expanded', 'true');\n this.activeMenu = menu;\n this.animateFeaturedItemClipPathIn();\n this.animateMenuClipPathsIn(menu);\n timeline(sequence);\n });\n }\n\n async hideMenu() {\n const menu = this.activeMenu as HTMLElement;\n if (!menu) return;\n const menuInner = menu.querySelector(\n '.global-navigation__menu-inner'\n ) as HTMLElement;\n if (!menuInner) return;\n const links = Array.from(\n menu.querySelectorAll(\n '.global-navigation__menu-left > .link'\n )\n );\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'inner-up', at: 0.25 });\n sequence.push([\n links.reverse() as ElementOrSelector,\n {\n transform: 'translate(-25px, 0)',\n opacity: [1, 0]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.15,\n delay: this.reducedMotion.matches ? 0 : stagger(0.05),\n at: 'start'\n }\n ]);\n sequence.push([\n menuInner,\n {\n transform: ['translate(0, 0)', 'translate(0, -100%)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25,\n at: this.reducedMotion.matches ? 'start' : 'inner-up'\n }\n ]);\n this.animateMenuClipPathsOut(menu);\n await timeline(sequence).finished.then(() => {\n menuInner.removeAttribute('style');\n this.activeMenu?.removeAttribute('style');\n this.activeMenu = null;\n this.hideLevel3Menus();\n [].forEach.call(this.dom.menuTriggers, (trigger: HTMLElement) => {\n trigger.setAttribute('aria-expanded', 'false');\n });\n });\n }\n\n async toggleLevel3Menu(e: Event) {\n const trigger = e.currentTarget as HTMLElement;\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n if (trigger.getAttribute('aria-expanded') === 'false') {\n await this.hideLevel3ActiveMenu(trigger);\n trigger.setAttribute('aria-expanded', 'true');\n await this.animateFeaturedItemClipPathOut();\n this.showLevel3Menu(menu);\n } else {\n if (this.currentFeaturedItem) {\n await this.hideLevel3Menu(menu, trigger);\n await this.animateFeaturedItemClipPathIn();\n } else {\n this.hideLevel3Menu(menu, trigger);\n this.animateFeaturedItemClipPathIn();\n }\n }\n }\n\n async hideLevel3ActiveMenu(trigger: HTMLElement) {\n const activeTrigger = (\n trigger as HTMLElement\n ).parentElement?.querySelector(\n '.global-navigation__menu-level-3-trigger[aria-expanded=\"true\"]'\n );\n\n if (!activeTrigger) return;\n const activeMenuTarget = activeTrigger.getAttribute('aria-controls');\n if (!activeMenuTarget) return;\n const activeMenu = document.getElementById(activeMenuTarget) as HTMLElement;\n await this.hideLevel3Menu(activeMenu, activeTrigger);\n }\n\n showLevel3Menu(menu: HTMLElement) {\n if (!this.activeMenu) return;\n (menu as HTMLElement).style.display = 'flex';\n requestAnimationFrame(() => {\n let diff = this.getWidthDifference(this.activeMenu as HTMLElement);\n if (diff > 0) diff = 0;\n this.diffLevel2 = diff;\n const items = menu.querySelectorAll('.link');\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n items as ElementOrSelector,\n {\n transform: ['translate(-25px, 0)', 'translate(0, 0)'],\n opacity: [0, 1]\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n delay: this.reducedMotion.matches ? 0 : stagger(0.1),\n at: 'start'\n }\n ]);\n sequence.push([\n (this.activeMenu as HTMLElement).querySelector(\n '.global-navigation__menu-inner'\n ) as ElementOrSelector,\n {\n clipPath: [\n 'inset(-50px calc(100% - 330px) -50px -50px)',\n 'inset(-50px -50px -50px -50px)'\n ]\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n at: 'start'\n }\n ]);\n sequence.push([\n this.activeMenu as ElementOrSelector,\n {\n transform: `translate(${this.diffLevel2 + this.diffLevel1}px, 0)`\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.25,\n at: 'start'\n }\n ]);\n timeline(sequence);\n });\n }\n\n async hideLevel3Menu(menu: HTMLElement, trigger: HTMLElement) {\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n (this.activeMenu as HTMLElement).querySelector(\n '.global-navigation__menu-inner'\n ) as ElementOrSelector,\n {\n clipPath: [\n 'inset(-50px -50px -50px -50px)',\n 'inset(-50px calc(100% - 330px) -50px -50px)'\n ]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: 'start'\n }\n ]);\n sequence.push([\n this.activeMenu as ElementOrSelector,\n {\n transform: `translate(${this.diffLevel1}px, 0)`\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: 'start'\n }\n ]);\n await timeline(sequence).finished.then(() => {\n (menu as HTMLElement).style.display = 'none';\n trigger.setAttribute('aria-expanded', 'false');\n });\n }\n\n async animateFeaturedItemClipPathIn() {\n this.currentFeaturedItem = (this.activeMenu as HTMLElement).querySelector(\n '.global-navigation__menu-right .featured-menu-item'\n );\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n (this.activeMenu as HTMLElement).querySelector(\n '.global-navigation__menu-inner'\n ) as ElementOrSelector,\n {\n clipPath: 'inset(-50px -50px -50px -50px)'\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: 'start'\n }\n ]);\n timeline(sequence);\n\n if (!this.currentFeaturedItem) return;\n (this.currentFeaturedItem as HTMLElement).style.display = 'block';\n await animate(\n progress => {\n (this.currentFeaturedItem as HTMLElement).style.setProperty(\n '--featured-menu-item-clip',\n `${100 - progress * 100}%`\n );\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5\n }\n ).finished.then();\n }\n\n async animateFeaturedItemClipPathOut() {\n this.currentFeaturedItem = (this.activeMenu as HTMLElement).querySelector(\n '.global-navigation__menu-right .featured-menu-item'\n );\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n (this.activeMenu as HTMLElement).querySelector(\n '.global-navigation__menu-inner'\n ) as ElementOrSelector,\n {\n clipPath: [\n 'inset(-50px -50px -50px -50px)',\n 'inset(-50px calc(100% - 330px) -50px -50px)'\n ]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: 'start'\n }\n ]);\n timeline(sequence);\n\n if (!this.currentFeaturedItem) return;\n\n await animate(\n progress => {\n (this.currentFeaturedItem as HTMLElement).style.setProperty(\n '--featured-menu-item-clip',\n `${progress * 100}%`\n );\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5\n }\n ).finished.then(() => {\n (this.currentFeaturedItem as HTMLElement).style.display = 'none';\n });\n }\n\n animateMenuClipPathsIn(menu: HTMLElement) {\n animate(\n progress => {\n (menu as HTMLElement).style.setProperty(\n '--menu-clip',\n `calc(${100 - progress * 100}% - 25px)`\n );\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n easing: 'ease-out'\n }\n );\n animate(\n progress => {\n (menu as HTMLElement)\n .querySelector(\n '.global-navigation__menu-right .featured-menu-item'\n )\n ?.style.setProperty(\n '--featured-menu-item-clip',\n `${99.75 - progress * 99.75}%`\n );\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.75,\n delay: this.reducedMotion.matches ? 0 : 0.25\n }\n );\n }\n\n animateMenuClipPathsOut(menu: HTMLElement) {\n animate(\n progress => {\n (menu as HTMLElement).style.setProperty(\n '--menu-clip',\n `calc(${progress * 100}% + ${progress * 25}px)`\n );\n },\n {\n easing: 'ease-out',\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.15,\n delay: this.reducedMotion.matches ? 0 : 0.25\n }\n );\n animate(\n progress => {\n (menu as HTMLElement)\n .querySelector(\n '.global-navigation__menu-right .featured-menu-item'\n )\n ?.style.setProperty(\n '--featured-menu-item-clip',\n `${progress * 99.75}%`\n );\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25\n }\n );\n }\n\n getWidthDifference(menu: HTMLElement) {\n const featuredItem = (menu as HTMLElement).querySelector(\n '.global-navigation__menu-right .featured-menu-item'\n );\n if (featuredItem) (featuredItem as HTMLElement).style.display = 'block';\n\n const header = document.querySelector('.header') as HTMLElement;\n const menuRight = menu.getBoundingClientRect().right;\n const navRight = header.getBoundingClientRect().right;\n if (featuredItem) (featuredItem as HTMLElement).style.display = 'none';\n\n return navRight - menuRight;\n }\n}\n\nexport default DesktopGlobalNavigation;\n","import { Component } from '@verndale/core';\nimport { breakpoints } from '../../helpers/variables';\nimport { ElementOrSelector, stagger, timeline } from 'motion';\nimport { TimelineDefinition } from '@motionone/dom/types/timeline/types';\nimport { EventBusSingleton } from '../../animation/eventBus';\n\nclass HeaderSearch extends Component {\n MOTION_ZERO_DURATION = 0.000001;\n breakpoint = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n );\n reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n constructor(el: HTMLElement) {\n super(el);\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el,\n closeButton: this.el.querySelector(\n '.header-search__close-btn'\n ),\n inputField: this.el.querySelector('.header-search__input'),\n topSection: this.el.querySelector(\n '.header-search__top-section'\n ),\n featuredTopicsSection: this.el.querySelector(\n '.header-search__featured-section'\n ),\n featuredTopicsTitle: this.el.querySelector(\n '.header-search__featured-topics-title'\n ),\n featuredTopicsItems: this.el.querySelectorAll(\n '.header-search__featured-topics-items > *'\n ),\n featuredMenuItem: this.el.querySelector(\n '.featured-menu-item'\n ),\n backButtonMobile: this.el.querySelector(\n '.header-search__back-button-mobile'\n ),\n form: this.el.querySelector('.header-search__form')\n };\n }\n\n addListeners() {\n (this.dom.closeButton as HTMLElement).addEventListener(\n 'click',\n this.handleClose.bind(this)\n );\n (this.dom.inputField as HTMLElement).addEventListener(\n 'click',\n this.handleMobileTap.bind(this)\n );\n (this.dom.inputField as HTMLElement).addEventListener(\n 'input',\n this.handleInput.bind(this)\n );\n\n (this.dom.backButtonMobile as HTMLElement).addEventListener(\n 'click',\n this.handleClose.bind(this)\n );\n (this.dom.form as HTMLElement).addEventListener(\n 'submit',\n this.handleFormSubmit.bind(this)\n );\n document.addEventListener(\n 'click',\n this.handleClickOutside.bind(this),\n true\n );\n }\n\n handleClickOutside(e: Event) {\n if (!this.breakpoint.matches) return;\n if (\n !(this.dom.el as HTMLElement).contains(e.target as Node) &&\n !(e.target as HTMLElement)?.classList?.contains(\n 'utility-navigation__search-button'\n )\n ) {\n this.closeSearch();\n }\n }\n\n handleInput() {\n const searchInput = this.dom.inputField as HTMLInputElement;\n if (searchInput.value.length > 0) {\n (this.dom.form as HTMLElement).classList.remove(\n 'header-search__input--error'\n );\n }\n }\n\n handleMobileTap() {\n if (this.dom.featuredTopicsSection && !this.breakpoint.matches) {\n EventBusSingleton.publish('utilityNavigation:openingHeaderSearch');\n (this.dom.el as HTMLElement).classList.add('featured-topics--open');\n }\n }\n\n handleFormSubmit(e: Event) {\n const searchInput = this.dom.inputField as HTMLInputElement;\n if (!searchInput.value) {\n e.preventDefault();\n (this.dom.form as HTMLElement).classList.add(\n 'header-search__input--error'\n );\n }\n }\n\n handleClose() {\n (this.dom.el as HTMLElement).classList.remove('featured-topics--open');\n (this.dom.form as HTMLElement).classList.remove(\n 'header-search__input--error'\n );\n (this.dom.inputField as HTMLInputElement).value = '';\n this.closeSearch();\n EventBusSingleton.publish('utilityNavigation:closingHeaderSearch');\n }\n\n openSearch() {\n if (this.el.classList.contains('header-search--open')) return;\n this.el.style.display = 'block';\n const staggerItems = [] as HTMLElement[];\n staggerItems.push(this.dom.featuredTopicsTitle as HTMLElement);\n staggerItems.push(\n ...(this.dom.featuredTopicsItems as NodeListOf)\n );\n\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'featured-item', at: 0.25 });\n\n sequence.push([\n this.dom.el as ElementOrSelector,\n { clipPath: ['inset(0 0 100% 0)', 'inset(0 0 0 0)'] },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.topSection as ElementOrSelector,\n { clipPath: ['inset(0 100% 0 0)', 'inset(0 0 0 0)'] },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.45,\n at: this.reducedMotion.matches ? 'start' : 'featured-item'\n }\n ]);\n sequence.push([\n staggerItems as ElementOrSelector,\n {\n opacity: [0, 1],\n transform: ['translate(-20px, 0)', 'translate(0, 0)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.35,\n delay: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : stagger(0.05),\n at: this.reducedMotion.matches ? 'start' : 'featured-item'\n }\n ]);\n sequence.push([\n this.dom.featuredMenuItem as ElementOrSelector,\n {\n opacity: [0, 1],\n transform: ['translate(0, 50px)', 'translate(0, 0)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: this.reducedMotion.matches ? 'start' : 'featured-item'\n }\n ]);\n\n timeline(sequence).finished.then(() => {\n [].forEach.call(staggerItems, (item: HTMLElement) => {\n item.removeAttribute('style');\n });\n this.el.classList.add('header-search--open');\n });\n }\n\n async closeSearch() {\n if (!this.el.classList.contains('header-search--open')) return;\n\n const staggerItems = [] as HTMLElement[];\n staggerItems.push(this.dom.featuredTopicsTitle as HTMLElement);\n staggerItems.push(\n ...(this.dom.featuredTopicsItems as NodeListOf)\n );\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n staggerItems.reverse() as ElementOrSelector,\n {\n opacity: [1, 0],\n transform: ['translate(0, 0)', 'translate(-25px, 0)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25,\n delay: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : stagger(0.05),\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.featuredMenuItem as ElementOrSelector,\n {\n opacity: [1, 0],\n transform: ['translate(0, 0)', 'translate(-25px, 0)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25,\n delay: 0,\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.el as ElementOrSelector,\n { clipPath: ['inset(0 0 0 0)', 'inset(0 0 100% 0)'] },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25,\n at: this.reducedMotion.matches ? 'start' : '-0.25'\n }\n ]);\n sequence.push([\n this.dom.topSection as ElementOrSelector,\n { clipPath: ['inset(0 0 0 0)', 'inset(0 100% 0 0)'] },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.25,\n at: this.reducedMotion.matches ? 'start' : '-0.25'\n }\n ]);\n await timeline(sequence).finished.then(() => {\n this.el.classList.remove('header-search--open');\n this.el.classList.remove('featured-topics--open');\n\n this.el.removeAttribute('style');\n staggerItems.forEach((item: HTMLElement) => {\n item.removeAttribute('style');\n });\n });\n }\n}\n\nexport default HeaderSearch;\n","import { Component } from '@verndale/core';\nimport { stagger, timeline } from 'motion';\nimport { breakpoints } from '../../helpers/variables';\nimport { TimelineDefinition } from '@motionone/dom/types/timeline/types';\nimport { EventBusSingleton } from '../../animation/eventBus';\n\nclass LanguageSelector extends Component {\n MOTION_ZERO_DURATION = 0.000001;\n breakpoint = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n );\n lastHeight = 0;\n reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n constructor(el: HTMLElement) {\n super(el);\n this.init();\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el,\n container: this.el.querySelector(\n '.language-selector__accordion-items'\n ),\n title: this.el.querySelector('.language-selector__title'),\n items: this.el.querySelectorAll(\n '.language-selector__accordion-item'\n ),\n triggers: this.el.querySelectorAll(\n '.language-selector__accordion-item-trigger'\n ),\n panels: this.el.querySelectorAll(\n '.language-selector__accordion-item-panel'\n ),\n backButtons: this.el.querySelectorAll(\n '.language-selector__back-button'\n ),\n closeButton: this.el.querySelector(\n '.language-selector__close-button'\n )\n };\n }\n\n addListeners() {\n [].forEach.call(this.dom.triggers, (trigger: HTMLElement) => {\n trigger.addEventListener('click', this.handleTriggerClick.bind(this));\n });\n [].forEach.call(this.dom.backButtons, (button: HTMLElement) => {\n button.addEventListener('click', this.handleBackButton.bind(this));\n });\n (this.dom.closeButton as HTMLElement).addEventListener(\n 'click',\n this.closeMenu.bind(this)\n );\n document.addEventListener(\n 'click',\n this.handleClickOutside.bind(this),\n true\n );\n }\n\n handleClickOutside(e: Event) {\n if (!this.breakpoint.matches) return;\n if (\n !(this.dom.el as HTMLElement).contains(e.target as Node) &&\n !(e.target as HTMLElement)?.classList?.contains(\n 'utility-navigation__language-and-region-button'\n )\n ) {\n EventBusSingleton.publish('utilityNavigation:closingLanguageSelector');\n this.closeMenu();\n }\n }\n\n init() {\n [].forEach.call(this.dom.items, (item: HTMLElement) => {\n const guid = crypto.randomUUID();\n\n const trigger = item.querySelector(\n '.language-selector__accordion-item-trigger'\n );\n const content = item.querySelector(\n '.language-selector__accordion-item-panel'\n );\n\n if (!trigger || !content) return;\n\n if (trigger.getAttribute('aria-expanded') === 'true') {\n this.openPanel(content as HTMLElement);\n }\n\n trigger.setAttribute('aria-controls', `tabcontent-${guid}`);\n trigger.setAttribute('id', `tab-${guid}`);\n content.setAttribute('aria-labelledby', `tab-${guid}`);\n content.setAttribute('id', `tabcontent-${guid}`);\n content.setAttribute(\n 'aria-hidden',\n trigger.getAttribute('aria-expanded') !== 'true' ? 'true' : 'false'\n );\n });\n }\n\n handleBackButton(e: Event) {\n const button = e.currentTarget as HTMLElement;\n if (!button) return;\n const panel = button.parentElement;\n if (!panel) return;\n\n if (button.classList.contains('language-selector__back-to-main')) {\n EventBusSingleton.publish('utilityNavigation:closingLanguageSelector');\n this.closeMenu();\n }\n const trigger = panel.previousElementSibling as HTMLElement;\n if (!trigger) return;\n this.closeItem(trigger);\n }\n\n handleTriggerClick(e: Event) {\n const button = e.currentTarget;\n if (!button) return;\n if ((button as HTMLElement).getAttribute('aria-expanded') === 'true') {\n this.closeItem(button as HTMLElement);\n } else {\n this.openItem(button as HTMLElement);\n }\n }\n\n openItem(trigger: HTMLElement) {\n const content = document.getElementById(\n trigger.getAttribute('aria-controls') as string\n );\n trigger.setAttribute('aria-expanded', 'true');\n\n if (content) this.openPanel(content);\n }\n\n closeItem(trigger: HTMLElement) {\n const content = document.getElementById(\n trigger.getAttribute('aria-controls') as string\n );\n\n trigger.setAttribute('aria-expanded', 'false');\n\n if (content) this.closePanel(content);\n }\n\n openPanel(panel: HTMLElement) {\n const { scrollHeight } = panel as HTMLElement;\n panel.style.visibility = 'visible';\n panel.setAttribute('aria-hidden', 'false');\n\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n if (this.breakpoint.matches) {\n sequence.push([\n panel,\n { blockSize: `${scrollHeight}px` },\n {\n duration:\n this.breakpoint.matches && !this.reducedMotion.matches\n ? 0.25\n : this.MOTION_ZERO_DURATION,\n easing: 'linear',\n at: 'start'\n }\n ]);\n timeline(sequence).finished.then(() => {\n panel.style.blockSize = 'auto';\n });\n } else {\n (this.dom.container as HTMLElement).style.blockSize = `${scrollHeight}px`;\n (this.dom.container as HTMLElement).style.transform =\n 'translate(-100%, 0)';\n panel.style.blockSize = 'auto';\n }\n }\n\n closePanel(panel: HTMLElement) {\n if (this.breakpoint.matches) {\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'move', at: 0.3 });\n sequence.push([\n panel,\n { blockSize: '0px' },\n {\n duration:\n this.breakpoint.matches && !this.reducedMotion\n ? 0.25\n : this.MOTION_ZERO_DURATION,\n easing: 'linear',\n at: 'start'\n }\n ]);\n timeline(sequence).finished.then(() => {\n panel.setAttribute('aria-hidden', 'true');\n panel.style.blockSize = '';\n panel.style.visibility = 'hidden';\n });\n } else {\n (this.dom.container as HTMLElement).style.transform = '';\n (this.dom.container as HTMLElement).style.blockSize = '';\n (this.dom.triggers as NodeListOf).forEach(trigger => {\n trigger.style.transform = '';\n trigger.style.opacity = '';\n });\n panel.setAttribute('aria-hidden', 'true');\n panel.style.blockSize = '';\n panel.style.visibility = 'hidden';\n }\n }\n\n openMenu() {\n if (this.el.classList.contains('language-selector--open')) return;\n (this.dom.el as HTMLElement).style.display = 'block';\n (this.dom.el as HTMLElement).style.visibility = 'visible';\n if (this.breakpoint.matches) {\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'enter', at: 0.15 });\n sequence.push([\n this.dom.el as HTMLElement,\n { transform: ['scale(1, 0)', 'scale(1, 1)'] },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.25,\n easing: 'linear',\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.title as HTMLElement,\n {\n opacity: [0, 1],\n transform: ['translate(-20px, 0)', 'translate(0, 0)']\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n at: this.reducedMotion.matches ? 'start' : 'enter'\n }\n ]);\n sequence.push([\n this.dom.closeButton as HTMLElement,\n {\n opacity: [0, 1]\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n at: this.reducedMotion.matches ? 'start' : 'enter'\n }\n ]);\n sequence.push([\n (this.dom.el as HTMLElement).querySelectorAll(\n '.language-selector__accordion-items > div'\n ) as NodeListOf,\n { clipPath: ['inset(0 100% 0 0)', 'inset(0 0 0 0)'] },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n delay: this.reducedMotion.matches ? 0 : stagger(0.1),\n at: this.reducedMotion.matches ? 'start' : 'enter'\n }\n ]);\n timeline(sequence).finished.then(() => {\n this.el.setAttribute('aria-hidden', 'false');\n this.el.classList.add('language-selector--open');\n (this.dom.closeButton as HTMLElement).removeAttribute('style');\n (this.dom.title as HTMLElement).removeAttribute('style');\n (\n (this.dom.el as HTMLElement).querySelectorAll(\n '.language-selector__accordion-items > div'\n ) as NodeListOf\n ).forEach(item => {\n item.removeAttribute('style');\n });\n });\n } else {\n (this.dom.el as HTMLElement).setAttribute('aria-hidden', 'false');\n (this.dom.el as HTMLElement).classList.add('language-selector--open');\n }\n }\n\n async closeMenu() {\n if (!this.el.classList.contains('language-selector--open')) return;\n\n if (this.breakpoint.matches) {\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'leave', at: 0.25 });\n sequence.push([\n (this.dom.el as HTMLElement).querySelectorAll(\n '.language-selector__accordion-items > div'\n ) as NodeListOf,\n { clipPath: ['inset(0 0 0 0)', 'inset(0 100% 0 0)'] },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.25,\n delay: this.reducedMotion.matches ? 0 : stagger(0.1),\n at: 'start'\n }\n ]);\n sequence.push([\n [this.dom.title as HTMLElement, this.dom.closeButton as HTMLElement],\n {\n opacity: [1, 0]\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.25,\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.el as HTMLElement,\n {\n transform: ['scale(1, 1)', 'scale(1, 0)']\n },\n {\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.5,\n at: this.reducedMotion.matches ? 'start' : 'leave'\n }\n ]);\n await timeline(sequence).finished.then(() => {\n (this.dom.el as HTMLElement).setAttribute('aria-hidden', 'true');\n (this.dom.el as HTMLElement).removeAttribute('style');\n (this.dom.el as HTMLElement).classList.remove(\n 'language-selector--open'\n );\n });\n } else {\n (this.dom.el as HTMLElement).setAttribute('aria-hidden', 'false');\n (this.dom.el as HTMLElement).removeAttribute('style');\n (this.dom.el as HTMLElement).classList.remove('language-selector--open');\n }\n }\n}\n\nexport default LanguageSelector;\n","import { Component } from '@verndale/core';\nimport { breakpoints } from '../../helpers/variables';\nimport HeaderSearch from './HeaderSearch';\nimport LanguageSelector from './LanguageSelector';\nimport { EventBusSingleton } from '../../animation/eventBus';\nimport { TimelineDefinition } from '@motionone/dom/types/timeline/types';\nimport { ElementOrSelector, stagger, timeline } from 'motion';\n\nclass UtilityNavigation extends Component {\n MOTION_ZERO_DURATION = 0.000001;\n breakpoint = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n );\n breakpointAnimation = window.matchMedia(\n `(min-width: ${breakpoints.tablet}px)`\n );\n headerSearch: HeaderSearch | null = null;\n languageSelector: LanguageSelector | null = null;\n reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n initialDelay = 0.75;\n viewportWidth = window.innerWidth;\n\n constructor(el: HTMLElement) {\n super(el);\n if (this.dom.headerSearch)\n this.headerSearch = new HeaderSearch(\n this.dom.headerSearch as HTMLElement\n );\n if (this.dom.languageSelector)\n this.languageSelector = new LanguageSelector(\n this.dom.languageSelector as HTMLElement\n );\n const hasMastheadPlayed = localStorage.getItem(\n 'manhattan_masthead-animation'\n );\n if (!hasMastheadPlayed && this.breakpointAnimation.matches) {\n if (!this.reducedMotion.matches && this.breakpoint.matches) {\n if (!document.querySelector('.intro-animation-overlay')) {\n this.initialDelay = 0;\n this.animateIn();\n } else {\n EventBusSingleton.subscribe(\n 'introAnimationOverlay:hide',\n this.animateIn.bind(this)\n );\n }\n }\n }\n EventBusSingleton.subscribe(\n 'utilityNavigation:closingHeaderSearch',\n this.handleCloseSearch.bind(this)\n );\n EventBusSingleton.subscribe(\n 'utilityNavigation:closingLanguageSelector',\n () => {\n (this.dom.languageButton as HTMLElement).classList.remove(\n 'language-selector--open'\n );\n }\n );\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el,\n searchButton: this.el.querySelector(\n '.utility-navigation__search-button'\n ),\n loginButton: this.el.querySelector(\n '.utility-navigation__login-button'\n ),\n languageButton: this.el.querySelector(\n '.utility-navigation__language-and-region-button'\n ),\n headerSearch: this.el.querySelector('.header-search'),\n languageSelector:\n this.el.querySelector('.language-selector'),\n background: this.el.querySelector(\n '.utility-navigation__background'\n )\n };\n }\n\n addListeners() {\n (this.dom.searchButton as HTMLElement)?.addEventListener(\n 'click',\n this.handleSearchClick.bind(this)\n );\n (this.dom.languageButton as HTMLElement)?.addEventListener(\n 'click',\n this.handleLanguageSelectorClick.bind(this)\n );\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n animateIn() {\n const staggerItems = (this.dom.el as HTMLElement).querySelectorAll(\n '.utility-navigation__section > *:not(.header-search):not(.language-selector)'\n ) as NodeListOf;\n\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push({ name: 'stagger-items', at: 0.75 });\n sequence.push([\n this.dom.background as ElementOrSelector,\n {\n transform: ['scale(0, 1)', 'scale(1, 1)']\n },\n {\n duration: 1,\n at: 'start'\n }\n ]);\n sequence.push([\n staggerItems,\n {\n opacity: [0, 1],\n transform: ['translate(0, -100%)', 'translate(0, 0)']\n },\n {\n duration: 0.25,\n at: 'stagger-items',\n delay: stagger(0.1)\n }\n ]);\n timeline(sequence, { delay: this.initialDelay });\n }\n\n handleResize() {\n if (window.innerWidth !== this.viewportWidth) {\n this.headerSearch?.closeSearch();\n this.languageSelector?.closeMenu();\n (this.dom.el as HTMLElement).classList.remove('language-selector--open');\n this.viewportWidth = window.innerWidth;\n this.breakpoint = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n );\n this.breakpointAnimation = window.matchMedia(\n `(min-width: ${breakpoints.tablet}px)`\n );\n }\n }\n\n handleCloseSearch() {\n (this.dom.searchButton as HTMLElement).classList.remove(\n 'header-search--open'\n );\n }\n\n async handleSearchClick() {\n const isOpen = (this.dom.headerSearch as HTMLElement).classList.contains(\n 'header-search--open'\n );\n if (!isOpen) {\n EventBusSingleton.publish('utilityNavigation:openingHeaderSearch');\n await this.headerSearch?.openSearch();\n (this.dom.searchButton as HTMLElement).classList.add(\n 'header-search--open'\n );\n (this.dom.languageButton as HTMLElement).classList.remove(\n 'language-selector--open'\n );\n } else {\n EventBusSingleton.publish('utilityNavigation:closingHeaderSearch');\n this.headerSearch?.closeSearch();\n this.languageSelector?.closeMenu();\n (this.dom.searchButton as HTMLElement).classList.remove(\n 'header-search--open'\n );\n }\n }\n\n async handleLanguageSelectorClick() {\n const isOpen = (\n this.dom.languageSelector as HTMLElement\n ).classList.contains('language-selector--open');\n if (!isOpen) {\n EventBusSingleton.publish('utilityNavigation:openingLanguageSelector');\n this.languageSelector?.openMenu();\n (this.dom.languageButton as HTMLElement).classList.add(\n 'language-selector--open'\n );\n (this.dom.searchButton as HTMLElement).classList.remove(\n 'header-search--open'\n );\n (this.dom.el as HTMLElement).classList.add('language-selector--open');\n } else {\n EventBusSingleton.publish('utilityNavigation:closingLanguageSelector');\n (this.dom.languageButton as HTMLElement).classList.remove(\n 'language-selector--open'\n );\n (this.dom.el as HTMLElement).classList.remove('language-selector--open');\n this.languageSelector?.closeMenu();\n }\n }\n}\n\nexport default UtilityNavigation;\n","import { Component } from '@verndale/core';\nimport {\n AnimationControls,\n ElementOrSelector,\n stagger,\n timeline\n} from 'motion';\nimport { TimelineDefinition } from '@motionone/dom/types/timeline/types';\nimport UtilityNavigation from '../UtilityNavigation';\nimport HeaderSearch from '../HeaderSearch';\nimport { EventBusSingleton } from '../../../animation/eventBus';\nimport { breakpoints } from '../../../helpers/variables';\n\nclass MobileGlobalNavigation extends Component {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [x: string]: any;\n showMenuTimeline: AnimationControls | null = null;\n backTimeline: AnimationControls | null = null;\n activeMenu: HTMLElement | null = null;\n currentLevel = 1;\n level1Height = 0;\n level2Height = 0;\n level3Height = 0;\n level1Items = [] as HTMLElement[];\n reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n breakpoint = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n );\n hasMastheadPlayed: string | null;\n\n constructor(el: HTMLElement) {\n super(el);\n this.hasMastheadPlayed = localStorage.getItem(\n 'manhattan_masthead-animation'\n );\n this.level1Items = [];\n if (this.dom.headerSearch)\n this.level1Items.push(this.dom.headerSearch as HTMLElement);\n if (this.dom.level1Links)\n this.level1Items.push(\n ...(this.dom.level1Links as NodeListOf)\n );\n if (this.dom.cta) this.level1Items.push(this.dom.cta as HTMLElement);\n if (this.dom.utilityNavigation) {\n this.level1Items.push(this.dom.utilityNavigation as HTMLElement);\n }\n\n if (this.hasMastheadPlayed === null) {\n if (!this.reducedMotion.matches) {\n if (!document.querySelector('.intro-animation-overlay')) {\n this.initialDelay = 0;\n this.animateIn();\n } else {\n EventBusSingleton.subscribe(\n 'introAnimationOverlay:hide',\n this.animateIn.bind(this)\n );\n }\n }\n }\n }\n\n setupDefaults() {\n this.dom = {\n logo: this.el.querySelector('.global-navigation__logo'),\n navigationItemsWrapper: this.el.querySelector(\n '.global-navigation__items'\n ),\n mobileMenuTrigger: this.el.querySelector(\n '.global-navigation__mobile-menu-trigger'\n ),\n container: this.el.querySelector(\n '.global-navigation__container'\n ),\n navigationItems: this.el.querySelectorAll(\n '.global-navigation__item'\n ),\n globalNavigationWrapper: this.el.querySelector(\n '.global-navigation__items-wrapper'\n ),\n utilityNavigation: this.el.querySelector(\n '.utility-navigation'\n ),\n headerSearch: this.el.querySelector('.header-search'),\n cta: this.el.querySelector('.global-navigation__cta'),\n level2MenuTriggers: this.el.querySelectorAll(\n '.global-navigation__menu-trigger'\n ),\n level3MenuTriggers: this.el.querySelectorAll(\n '.global-navigation__menu-level-3-trigger'\n ),\n level1Links: this.el.querySelectorAll(\n '.global-navigation__item > .link'\n ),\n backButtons: this.el.querySelectorAll(\n '.global-navigation__back-button'\n ),\n background: this.el.querySelector(\n '.global-navigation__background'\n )\n };\n\n this.utilityNavigation = new UtilityNavigation(\n this.dom.utilityNavigation as HTMLElement\n );\n this.headerSearch = new HeaderSearch(this.dom.headerSearch as HTMLElement);\n\n this.listenerRefs = {\n toggleMobileMenu: this.toggleMobileMenu.bind(this),\n toggleLevel2Menu: this.toggleLevel2Menu.bind(this),\n toggleLevel3Menu: this.toggleLevel3Menu.bind(this),\n handleBackButton: this.handleBackButton.bind(this),\n handleClickOutside: this.handleClickOutside.bind(this)\n };\n }\n\n addListeners() {\n (this.dom.mobileMenuTrigger as HTMLElement).addEventListener(\n 'click',\n this.listenerRefs.toggleMobileMenu\n );\n [].forEach.call(this.dom.level2MenuTriggers, (trigger: HTMLElement) => {\n trigger.addEventListener('click', this.listenerRefs.toggleLevel2Menu);\n });\n [].forEach.call(this.dom.level3MenuTriggers, (trigger: HTMLElement) => {\n trigger.addEventListener('click', this.listenerRefs.toggleLevel3Menu);\n });\n [].forEach.call(this.dom.backButtons, (backButton: HTMLElement) => {\n backButton.addEventListener('click', this.listenerRefs.handleBackButton);\n });\n\n document.addEventListener(\n 'click',\n this.listenerRefs.handleClickOutside,\n true\n );\n\n EventBusSingleton.subscribe(\n 'utilityNavigation:openingLanguageSelector',\n this.handleLanguageSelectorOpen.bind(this)\n );\n\n EventBusSingleton.subscribe(\n 'utilityNavigation:closingLanguageSelector',\n () => {\n if (this.breakpoint.matches) return;\n this.level1Items.forEach((item: HTMLElement) => {\n item.style.display = '';\n if (item.classList.contains('utility-navigation')) {\n item\n .querySelectorAll(\n '.utility-navigation__section > *:not(language-selector)'\n )\n .forEach((el: HTMLElement) => {\n el.style.display = '';\n });\n }\n (this.dom.utilityNavigation as HTMLElement).classList.remove(\n 'language-selector--open'\n );\n });\n }\n );\n\n EventBusSingleton.subscribe('utilityNavigation:openingHeaderSearch', () => {\n if (this.breakpoint.matches) return;\n this.level1Items.forEach((item: HTMLElement) => {\n if (!item.classList.contains('header-search'))\n item.style.display = 'none';\n });\n });\n\n EventBusSingleton.subscribe('utilityNavigation:closingHeaderSearch', () => {\n if (this.breakpoint.matches) return;\n this.resetMenu();\n this.openMobileMenu(this.dom.mobileMenuTrigger as HTMLElement);\n });\n }\n\n animateIn() {\n (this.dom.container as HTMLElement).style.overflow = 'hidden';\n\n const staggerItems = [] as HTMLElement[];\n staggerItems.push(this.dom.logo as HTMLElement);\n staggerItems.push(this.dom.mobileMenuTrigger as HTMLElement);\n\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n this.dom.background as ElementOrSelector,\n {\n x: [`${window.innerWidth}px`, 0]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 1.25,\n at: 'start'\n }\n ]);\n sequence.push([\n this.dom.background as ElementOrSelector,\n {\n scaleX: [0, 1]\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 1.2,\n at: 'start',\n easing: 'linear'\n }\n ]);\n sequence.push([\n staggerItems,\n {\n opacity: [0, 1],\n transform: ['translateY(10px)', 'translateY(0)']\n },\n {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5,\n at: 'stagger-items',\n delay: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : stagger(0.5),\n opacity: {\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 1\n }\n }\n ]);\n timeline(sequence, { delay: this.initialDelay }).finished.then(() => {\n (this.dom.container as HTMLElement).style.overflow = '';\n staggerItems.forEach(item => {\n item.style.opacity = '';\n item.style.transform = '';\n });\n });\n }\n\n handleLanguageSelectorOpen() {\n if (this.breakpoint.matches) return;\n const staggerItems = this.level1Items.filter(\n (item: HTMLElement) => !item.classList.contains('utility-navigation')\n );\n const navWrapper = this.dom.globalNavigationWrapper as HTMLElement;\n if (!navWrapper) return;\n navWrapper.style.overflow = 'hidden';\n staggerItems.forEach((item: HTMLElement) => {\n item.style.display = 'none';\n });\n (this.dom.utilityNavigation as HTMLElement)\n .querySelectorAll(\n '.utility-navigation__section > *:not(language-selector)'\n )\n .forEach((el: HTMLElement) => {\n el.style.display = 'none';\n });\n }\n\n handleClickOutside(e: MouseEvent) {\n if (this.breakpoint.matches) return;\n if (!this.el.contains(e.target as Node)) {\n this.closeMobileMenu(this.dom.mobileMenuTrigger as HTMLElement);\n }\n }\n\n removeListeners() {\n (this.dom.mobileMenuTrigger as HTMLElement).removeEventListener(\n 'click',\n this.listenerRefs.toggleMobileMenu\n );\n [].forEach.call(this.dom.level2MenuTriggers, (trigger: HTMLElement) => {\n trigger.removeEventListener('click', this.listenerRefs.toggleLevel2Menu);\n });\n [].forEach.call(this.dom.level3MenuTriggers, (trigger: HTMLElement) => {\n trigger.removeEventListener('click', this.listenerRefs.toggleLevel3Menu);\n });\n [].forEach.call(this.dom.backButtons, (backButton: HTMLElement) => {\n backButton.removeEventListener(\n 'click',\n this.listenerRefs.handleBackButton\n );\n });\n document.removeEventListener(\n 'click',\n this.listenerRefs.handleClickOutside,\n true\n );\n }\n\n async handleBackButton() {\n if (this.currentLevel === 1) return;\n if (this.currentLevel === 2) this.hideLevel2Menu();\n if (this.currentLevel === 3) this.hideLevel3Menu();\n }\n\n toggleMobileMenu(e: Event) {\n const trigger = e.currentTarget as HTMLElement;\n if (trigger.getAttribute('aria-expanded') === 'false') {\n this.openMobileMenu(trigger);\n } else {\n this.closeMobileMenu(trigger);\n }\n }\n\n openMobileMenu(trigger: HTMLElement) {\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n menu.style.display = 'block';\n menu.style.visibility = 'visible';\n menu.style.overflow = 'hidden';\n menu.setAttribute('aria-hidden', 'false');\n trigger.setAttribute('aria-expanded', 'true');\n menu.style.overflow = '';\n menu.style.blockSize = '';\n }\n\n closeMobileMenu(trigger: HTMLElement) {\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n if (menu) {\n menu.style.overflow = 'hidden';\n menu.style.overflow = '';\n menu.style.blockSize = '';\n menu.style.display = 'none';\n menu.style.visibility = 'hidden';\n menu.setAttribute('aria-hidden', 'true');\n }\n trigger.setAttribute('aria-expanded', 'false');\n (this.dom.headerSearch as HTMLElement)?.classList.remove(\n 'header-search--open'\n );\n (this.dom.headerSearch as HTMLElement)?.classList.remove(\n 'featured-topics--open'\n );\n (this.dom.headerSearch as HTMLElement)\n ?.querySelector('.header-search__form')\n ?.classList.remove('header-search__input--error');\n\n this.resetMenu();\n }\n\n async toggleLevel2Menu(e: Event) {\n const trigger = e.currentTarget as HTMLElement;\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n if (trigger.getAttribute('aria-expanded') === 'false')\n this.showLevel2Menu(menu, trigger);\n }\n\n showLevel2Menu(menu: HTMLElement, trigger: HTMLElement) {\n const navWrapper = this.dom.globalNavigationWrapper as HTMLElement;\n if (!navWrapper) return;\n navWrapper.style.overflow = 'hidden';\n menu.style.display = 'block';\n menu.style.visibility = 'visible';\n menu.setAttribute('aria-hidden', 'false');\n this.level1Items.forEach((item: HTMLElement) => {\n item.style.display = 'none';\n });\n this.level2Height = menu.scrollHeight;\n\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n navWrapper,\n { blockSize: [this.level1Height, `${this.level2Height}px`] },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n sequence.push([\n menu,\n {\n opacity: [0, 1],\n transform: ['translate(100%, 0)', 'translate(0, 0)']\n },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n timeline(sequence).finished.then(() => {\n this.currentLevel = 2;\n this.activeMenu = menu;\n trigger.setAttribute('aria-expanded', 'true');\n navWrapper.style.overflow = '';\n navWrapper.style.blockSize = '';\n });\n }\n\n async hideLevel2Menu() {\n const navWrapper = this.dom.globalNavigationWrapper as HTMLElement;\n navWrapper.style.overflow = 'hidden';\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n this.activeMenu as HTMLElement,\n {\n opacity: [1, 0],\n transform: ['translate(0, 0)', 'translate(100%, 0)']\n },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n sequence.push([\n navWrapper,\n {\n blockSize: [`${this.level2Height}px`, `${this.level1Height}px`]\n },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n await timeline(sequence).finished.then(() => {\n (this.activeMenu as HTMLElement).style.display = 'none';\n this.resetLevel1Menu();\n });\n const sequence2 = [] as TimelineDefinition;\n sequence2.push({ name: 'start', at: 0 });\n sequence2.push([\n this.level1Items,\n\n { opacity: [0, 1] },\n { duration: 0.15, easing: 'linear', at: 'start' }\n ]);\n await timeline(sequence2).finished.then(() => {\n this.currentLevel = 1;\n navWrapper.style.overflow = '';\n navWrapper.style.blockSize = '';\n });\n }\n\n async toggleLevel3Menu(e: Event) {\n const trigger = e.currentTarget as HTMLElement;\n const menuTarget = trigger.getAttribute('aria-controls');\n if (!menuTarget) return;\n const menu = document.getElementById(menuTarget) as HTMLElement;\n if (trigger.getAttribute('aria-expanded') === 'false')\n this.showLevel3Menu(menu, trigger);\n }\n\n showLevel3Menu(menu: HTMLElement, trigger: HTMLElement) {\n const navWrapper = this.dom.globalNavigationWrapper as HTMLElement;\n if (!navWrapper) return;\n navWrapper.style.overflow = 'hidden';\n\n const correspondingLevel2Menu = (\n this.activeMenu as HTMLElement\n ).querySelector('.global-navigation__menu-left');\n menu.style.display = 'block';\n menu.style.visibility = 'visible';\n menu.setAttribute('aria-hidden', 'false');\n this.level3Height = menu.scrollHeight;\n\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n navWrapper,\n { blockSize: [this.level2Height, `${this.level3Height}px`] },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n sequence.push([\n this.activeMenu as ElementOrSelector,\n {\n transform: ['translate(0, 0)', 'translate(-50%, 0)']\n },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n timeline(sequence).finished.then(() => {\n (correspondingLevel2Menu as HTMLElement).style.blockSize = '0px';\n this.currentLevel = 3;\n trigger.setAttribute('aria-expanded', 'true');\n (this.dom.globalNavigationWrapper as HTMLElement).style.overflow = '';\n (this.dom.globalNavigationWrapper as HTMLElement).style.blockSize = '';\n });\n }\n\n async hideLevel3Menu() {\n const navWrapper = this.dom.globalNavigationWrapper as HTMLElement;\n navWrapper.style.overflow = 'hidden';\n const sequence = [] as TimelineDefinition;\n sequence.push({ name: 'start', at: 0 });\n sequence.push([\n this.activeMenu as HTMLElement,\n {\n transform: 'translate(0, 0)'\n },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n sequence.push([\n this.activeMenu?.querySelector(\n '.global-navigation__menu-left'\n ) as HTMLElement,\n {\n opacity: [0, 1],\n blockSize: `${this.level2Height}px`\n },\n {\n duration: 0.15,\n easing: 'linear',\n at: 'start',\n blockSize: { duration: 0.1 }\n }\n ]);\n sequence.push([\n navWrapper,\n {\n blockSize: [`${this.level3Height}px`, `${this.level2Height}px`]\n },\n { duration: 0.25, easing: 'linear', at: 'start' }\n ]);\n await timeline(sequence).finished.then(() => {\n const menu3Wrappers = this.activeMenu?.querySelectorAll(\n '.global-navigation__level-3-wrapper'\n ) as NodeListOf;\n menu3Wrappers.forEach((t: HTMLElement) => {\n t.style.display = 'none';\n t.style.visibility = 'hidden';\n t.setAttribute('aria-hidden', 'true');\n });\n\n this.currentLevel = 2;\n this.resetLevel2Menu();\n });\n }\n\n resetMenu() {\n const items = (this.dom.utilityNavigation as HTMLElement)?.querySelectorAll(\n ':scope *'\n ) as NodeListOf;\n if (!items) return;\n items.forEach((item: HTMLElement) => {\n if (item.getAttribute('aria-expanded') === 'true')\n item.setAttribute('aria-expanded', 'false');\n item.removeAttribute('style');\n });\n const navWrapper = this.dom.globalNavigationWrapper as HTMLElement;\n const itemsWrapper = this.dom.navigationItemsWrapper as HTMLElement;\n if (!navWrapper || !itemsWrapper) return;\n navWrapper.removeAttribute('style');\n itemsWrapper.removeAttribute('style');\n this.activeMenu?.removeAttribute('style');\n this.resetLevel1Menu();\n this.resetLevel2Menu();\n (this.dom.headerSearch as HTMLElement)\n .querySelector('.header-search__featured-section')\n ?.removeAttribute('style');\n\n (this.dom.utilityNavigation as HTMLElement)\n .querySelector('.language-selector')\n ?.removeAttribute('style');\n (this.dom.utilityNavigation as HTMLElement)\n .querySelector('.language-selector')\n ?.classList.remove('language-selector--open');\n (this.dom.utilityNavigation as HTMLElement).classList.remove(\n 'language-selector--open'\n );\n }\n\n resetLevel1Menu() {\n [].forEach.call(this.dom.level1Links, (link: HTMLElement) => {\n (link as HTMLElement).setAttribute('aria-expanded', 'false');\n });\n this.level1Items.forEach((item: HTMLElement) => {\n item.removeAttribute('style');\n });\n }\n\n resetLevel2Menu() {\n [].forEach.call(\n (\n this.dom.navigationItemsWrapper as HTMLElement\n ).querySelectorAll('.global-navigation__menu-left'),\n (menu: HTMLElement) => {\n menu.removeAttribute('style');\n [].forEach.call(menu.querySelectorAll('.link'), (link: HTMLElement) => {\n link.removeAttribute('style');\n if (link.getAttribute('aria-expanded'))\n link.setAttribute('aria-expanded', 'false');\n });\n }\n );\n }\n}\n\nexport default MobileGlobalNavigation;\n","import { Component } from '@verndale/core';\nimport DesktopGlobalNavigation from './DesktopGlobalNavigation';\nimport MobileGlobalNavigation from './MobileGlobalNavigation';\nimport { debounce } from '../../../helpers';\nimport { breakpoints } from '../../../helpers/variables';\n\nclass GlobalNavigation extends Component {\n desktopGlobalNavigation: DesktopGlobalNavigation | null = null;\n mobileGlobalNavigation: MobileGlobalNavigation | null = null;\n isDesktop = false;\n\n constructor(el: HTMLElement) {\n super(el);\n const header = document.querySelector('.header') as HTMLElement;\n header.style.display = 'block';\n\n this.isDesktop = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n ).matches;\n this.initNavigation();\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el\n };\n }\n\n addListeners() {\n window.addEventListener(\n 'resize',\n debounce(this.checkViewportWidth.bind(this), 300)\n );\n }\n\n checkViewportWidth() {\n if (\n this.isDesktop &&\n !window.matchMedia(`(min-width: ${breakpoints.tabletLandscape}px)`)\n .matches\n ) {\n this.isDesktop = false;\n this.initNavigation();\n } else if (\n !this.isDesktop &&\n window.matchMedia(`(min-width: ${breakpoints.tabletLandscape}px)`).matches\n ) {\n this.isDesktop = true;\n this.initNavigation();\n }\n }\n initNavigation() {\n if (this.isDesktop) {\n if (this.mobileGlobalNavigation !== null) {\n this.mobileGlobalNavigation.removeListeners();\n this.mobileGlobalNavigation.resetMenu();\n }\n this.desktopGlobalNavigation = new DesktopGlobalNavigation(\n this.dom.el as HTMLElement\n );\n } else {\n if (this.desktopGlobalNavigation !== null) {\n this.desktopGlobalNavigation.removeListeners();\n this.desktopGlobalNavigation.hideMenu();\n }\n this.mobileGlobalNavigation = new MobileGlobalNavigation(\n this.dom.el as HTMLElement\n );\n }\n }\n}\n\nexport default GlobalNavigation;\n","import { Component } from '@verndale/core';\nimport GlobalNavigation from './GlobalNavigation';\nimport UtilityNavigation from './UtilityNavigation';\n\nclass Header extends Component {\n globalNavigation: GlobalNavigation | null = null;\n utilityNavigation: UtilityNavigation | null = null;\n\n constructor(el: HTMLElement) {\n super(el);\n\n if (this.dom.globalNavigation) {\n this.globalNavigation = new GlobalNavigation(\n this.dom.globalNavigation as HTMLElement\n );\n }\n\n if (this.dom.utilityNavigation) {\n this.utilityNavigation = new UtilityNavigation(\n this.dom.utilityNavigation as HTMLElement\n );\n }\n }\n\n setupDefaults() {\n this.dom = {\n globalNavigation:\n this.el.querySelector('.global-navigation'),\n utilityNavigation: this.el.querySelector(\n ':scope > .utility-navigation'\n )\n };\n }\n}\n\nexport default Header;\n","import { invariant } from 'hey-listen';\nimport { animateStyle } from './animate-style.es.js';\nimport { getOptions } from './utils/options.es.js';\nimport { resolveElements } from '../utils/resolve-elements.es.js';\nimport { withControls } from './utils/controls.es.js';\nimport { resolveOption } from '../utils/stagger.es.js';\n\nfunction createAnimate(AnimatePolyfill) {\n return function animate(elements, keyframes, options = {}) {\n elements = resolveElements(elements);\n const numElements = elements.length;\n invariant(Boolean(numElements), \"No valid element provided.\");\n invariant(Boolean(keyframes), \"No keyframes defined.\");\n /**\n * Create and start new animations\n */\n const animationFactories = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n for (const key in keyframes) {\n const valueOptions = getOptions(options, key);\n valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);\n const animation = animateStyle(element, key, keyframes[key], valueOptions, AnimatePolyfill);\n animationFactories.push(animation);\n }\n }\n return withControls(animationFactories, options, \n /**\n * TODO:\n * If easing is set to spring or glide, duration will be dynamically\n * generated. Ideally we would dynamically generate this from\n * animation.effect.getComputedTiming().duration but this isn't\n * supported in iOS13 or our number polyfill. Perhaps it's possible\n * to Proxy animations returned from animateStyle that has duration\n * as a getter.\n */\n options.duration);\n };\n}\n\nexport { createAnimate };\n","import { Animation } from '@motionone/animation';\nimport { createAnimate } from './create-animate.es.js';\n\nconst animate = createAnimate(Animation);\n\nexport { animate };\n","import { animate as animate$1, withControls } from '@motionone/dom';\nimport { isFunction } from '@motionone/utils';\nimport { Animation } from '@motionone/animation';\n\nfunction animateProgress(target, options = {}) {\n return withControls([\n () => {\n const animation = new Animation(target, [0, 1], options);\n animation.finished.catch(() => { });\n return animation;\n },\n ], options, options.duration);\n}\nfunction animate(target, keyframesOrOptions, options) {\n const factory = isFunction(target) ? animateProgress : animate$1;\n return factory(target, keyframesOrOptions, options);\n}\n\nexport { animate, animateProgress };\n"],"sourceRoot":""}