{"version":3,"file":"static/js/3434.7cb55366.chunk.js","mappings":"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","sources":["../node_modules/@coveo/atomic/dist/esm/src/utils/accessibility-utils.tsx","../node_modules/@coveo/atomic/dist/esm/src/components/common/atomic-focus-trap.tsx","../node_modules/@coveo/atomic/dist/esm/src/components/common/atomic-modal/atomic-modal.tsx","../node_modules/@coveo/atomic/dist/esm/src/components/common/atomic-modal/atomic-modal.pcss?tag=atomic-modal&encapsulation=shadow","../node_modules/@coveo/atomic/dist/esm/src/utils/device-utils.ts","../node_modules/@coveo/atomic/dist/esm/src/utils/event-utils.ts","../node_modules/@coveo/atomic/dist/esm/src/components/common/hidden.tsx","../node_modules/@coveo/atomic/dist/esm/src/utils/initialization-utils.tsx","../node_modules/@coveo/atomic/dist/esm/src/utils/replace-breakpoint.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {AnyBindings} from '../components/common/interface/bindings';\nimport {buildCustomEvent} from './event-utils';\nimport {InitializableComponent} from './initialization-utils';\nimport {defer} from './utils';\n\nexport const findAriaLiveEventName = 'atomic/accessibility/findAriaLive';\n\nexport interface FindAriaLiveEventArgs {\n element?: HTMLAtomicAriaLiveElement;\n}\n\nexport function AriaLiveRegion(regionName: string, assertive = false) {\n function getAriaLiveElement() {\n const event = buildCustomEvent(\n findAriaLiveEventName,\n {}\n );\n document.dispatchEvent(event);\n const {element} = event.detail;\n return element;\n }\n\n function dispatchMessage(message: string) {\n getAriaLiveElement()?.updateMessage(regionName, message, assertive);\n }\n\n function registerRegion() {\n getAriaLiveElement()?.registerRegion(regionName, assertive);\n }\n\n return (\n component: InitializableComponent,\n setterName: string\n ) => {\n const {componentWillRender} = component;\n Object.defineProperty(component, setterName, {\n set: (message: string) => dispatchMessage(message),\n });\n\n component.componentWillRender = function () {\n componentWillRender && componentWillRender.call(this);\n registerRegion();\n };\n };\n}\n\nexport class FocusTargetController {\n private bindings: AnyBindings;\n private lastSearchId?: string;\n private element?: HTMLElement;\n private onFocusCallback?: Function;\n private doFocusAfterSearch = false;\n private doFocusOnNextTarget = false;\n\n constructor(private component: InitializableComponent) {\n this.bindings = component.bindings;\n this.handleComponentRenderLoop();\n }\n\n public setTarget(el: HTMLElement | undefined) {\n if (!el) {\n return;\n }\n this.element = el;\n if (this.doFocusOnNextTarget) {\n this.doFocusOnNextTarget = false;\n this.focus();\n }\n }\n\n public async focus() {\n await defer();\n this.element?.focus();\n this.onFocusCallback?.();\n }\n\n public focusAfterSearch() {\n this.lastSearchId = this.bindings.store.getUniqueIDFromEngine(\n this.bindings.engine\n );\n this.doFocusAfterSearch = true;\n return new Promise((resolve) => (this.onFocusCallback = resolve));\n }\n\n public focusOnNextTarget() {\n this.doFocusOnNextTarget = true;\n return new Promise((resolve) => (this.onFocusCallback = resolve));\n }\n\n public disableForCurrentSearch() {\n if (\n this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==\n this.lastSearchId\n ) {\n this.doFocusAfterSearch = false;\n }\n }\n\n private handleComponentRenderLoop() {\n const originalComponentDidRender = this.component.componentDidRender;\n\n this.component.componentDidRender = () => {\n originalComponentDidRender &&\n originalComponentDidRender.call(this.component);\n if (!this.bindings) {\n return;\n }\n if (\n this.doFocusAfterSearch &&\n this.bindings.store.getUniqueIDFromEngine(this.bindings.engine) !==\n this.lastSearchId\n ) {\n this.doFocusAfterSearch = false;\n if (this.element) {\n const el = this.element;\n // The focus seems to be flaky without deferring, especially on iOS.\n defer().then(() => {\n el.focus();\n this.onFocusCallback?.();\n });\n }\n }\n };\n }\n}\n\nfunction isFocusable(element: Element) {\n // Source: https://stackoverflow.com/a/30753870\n if (element.getAttribute('tabindex') === '-1') {\n return false;\n }\n if (element.hasAttribute('tabindex')) {\n return true;\n }\n if (element.getAttribute('contentEditable') === 'true') {\n return true;\n }\n switch (element.tagName) {\n case 'A':\n case 'AREA':\n return element.hasAttribute('href');\n case 'INPUT':\n case 'SELECT':\n case 'TEXTAREA':\n case 'BUTTON':\n return !element.hasAttribute('disabled');\n case 'IFRAME':\n return true;\n default:\n return false;\n }\n}\n\nexport function* getFocusableDescendants(\n element: Element\n): Generator {\n if (isFocusable(element)) {\n yield element as HTMLElement;\n }\n let children = Array.from(element.children);\n if (element instanceof HTMLSlotElement) {\n children = element.assignedElements();\n } else if (element.shadowRoot) {\n children.push(...Array.from(element.shadowRoot.children));\n }\n for (const child of children) {\n yield* getFocusableDescendants(child);\n }\n}\n\nexport function getFirstFocusableDescendant(\n element: Element\n): HTMLElement | null {\n return getFocusableDescendants(element).next().value ?? null;\n}\n","import {Component, Element, Listen, Prop, Watch} from '@stencil/core';\nimport {getFirstFocusableDescendant} from '../../utils/accessibility-utils';\nimport {\n isAncestorOf,\n defer,\n getFocusedElement,\n getParent,\n} from '../../utils/utils';\n\n/**\n * @internal\n */\n@Component({\n tag: 'atomic-focus-trap',\n shadow: false,\n})\nexport class AtomicFocusTrap {\n @Element() private host!: HTMLElement;\n @Prop() public active = false;\n /**\n * The source to focus when the focus trap becomes inactive.\n */\n @Prop({mutable: true}) source?: HTMLElement;\n /**\n * The container to hide from the tabindex and accessibility DOM when the focus trap is inactive.\n */\n @Prop({mutable: true}) container?: HTMLElement;\n\n /**\n * Whether the element should be hidden from screen readers & not interactive with the tab, when not active.\n */\n @Prop() shouldHideSelf = true;\n\n /**\n * The common ancestor of the focus trap and of all the elements that should be inaccessible when inside the focus trap.\n */\n @Prop() scope = document.body;\n\n private readonly hiddenElements: Element[] = [];\n\n hide(element: Element) {\n // aria-hidden -> already hidden\n // aria-live or atomic-aria-live -> must not be hidden otherwise it won't announce dynamic changes in the live region\n if (\n element.hasAttribute('aria-hidden') ||\n element.hasAttribute('aria-live') ||\n element.tagName.toLowerCase() === 'atomic-aria-live'\n ) {\n return;\n }\n element.setAttribute('aria-hidden', 'true');\n this.hiddenElements.push(element);\n }\n\n showAll() {\n let el: Element | undefined;\n while ((el = this.hiddenElements.pop())) {\n el.removeAttribute('aria-hidden');\n }\n }\n\n hideSiblingsRecursively(element: Element | ShadowRoot) {\n const parent = getParent(element);\n if (parent === null) {\n return;\n }\n Array.from(parent.children as HTMLCollection).forEach((sibling) => {\n if (sibling === element) {\n return;\n }\n if (\n sibling.assignedSlot &&\n isAncestorOf(this.host, sibling.assignedSlot)\n ) {\n return;\n }\n this.hide(sibling);\n });\n if (parent !== this.scope) {\n this.hideSiblingsRecursively(parent);\n }\n }\n\n showSelf() {\n this.parentToHide.removeAttribute('aria-hidden');\n this.parentToHide.removeAttribute('tabindex');\n }\n\n hideSelf() {\n if (this.shouldHideSelf) {\n this.parentToHide.setAttribute('aria-hidden', 'true');\n this.parentToHide.setAttribute('tabindex', '-1');\n }\n }\n\n async onDeactivated(isInitialLoad: boolean) {\n this.showAll();\n if (!isInitialLoad) {\n await defer();\n this.source?.focus();\n }\n this.hideSelf();\n }\n\n async onActivated(isInitialLoad: boolean) {\n this.showSelf();\n if (!isInitialLoad) {\n await defer();\n getFirstFocusableDescendant(this.host)?.focus();\n }\n this.hideSiblingsRecursively(this.host);\n }\n\n @Watch('active')\n async activeChanged(active: boolean, wasActive: boolean) {\n const isInitialLoad = active === wasActive;\n if (active) {\n await this.onActivated(isInitialLoad);\n } else {\n await this.onDeactivated(isInitialLoad);\n }\n }\n\n @Listen('focusin', {target: 'document'})\n onFocusChanged(e: FocusEvent) {\n const elementIsPartOfHost = (focusedElement: Element | ShadowRoot) =>\n isAncestorOf(this.host, focusedElement);\n\n const elementIsPartOfScope = (focusedElement: Element | ShadowRoot) =>\n isAncestorOf(this.scope, focusedElement);\n\n if (!e.target || !this.active) {\n return;\n }\n\n const focusedElement = getFocusedElement();\n\n if (\n focusedElement &&\n (elementIsPartOfHost(focusedElement) ||\n !elementIsPartOfScope(focusedElement))\n ) {\n return;\n }\n\n getFirstFocusableDescendant(this.host)?.focus();\n }\n\n connectedCallback() {\n this.activeChanged(this.active, this.active);\n }\n\n disconnectedCallback() {\n this.showAll();\n }\n\n private get parentToHide() {\n return this.container ?? this.host;\n }\n}\n","import {\n Component,\n h,\n State,\n Prop,\n Element,\n Watch,\n Event,\n EventEmitter,\n Host,\n Listen,\n} from '@stencil/core';\nimport {isIOS} from '../../../utils/device-utils';\nimport {listenOnce} from '../../../utils/event-utils';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {updateBreakpoints} from '../../../utils/replace-breakpoint';\nimport {once, randomID} from '../../../utils/utils';\nimport {AnyBindings} from '../interface/bindings';\n\n/**\n * When the modal is opened, the class `atomic-modal-opened` is added to the interfaceElement and the body, allowing further customization.\n *\n * @part backdrop - The transparent backdrop hiding the content behind the modal.\n * @part container - The modal's outermost container with the outline and background.\n * @part header-wrapper - The wrapper around the header.\n * @part header - The header at the top of the modal.\n * @part header-ruler - The horizontal ruler underneath the header.\n * @part body-wrapper - The wrapper around the body.\n * @part body - The body of the modal, between the header and the footer.\n * @part footer-wrapper - The wrapper with a shadow or background color around the footer.\n * @part footer - The footer at the bottom of the modal.\n * @internal\n */\n@Component({\n tag: 'atomic-modal',\n styleUrl: 'atomic-modal.pcss',\n shadow: true,\n})\nexport class AtomicModal implements InitializableComponent {\n @InitializeBindings() public bindings!: AnyBindings;\n @Element() public host!: HTMLElement;\n\n @State() public error!: Error;\n\n @Prop({reflect: true, mutable: true}) fullscreen = false;\n @Prop({mutable: true}) source?: HTMLElement;\n /**\n * The container to hide from the tabindex and accessibility DOM when the modal is closed.\n */\n @Prop({mutable: true}) container?: HTMLElement;\n @Prop({reflect: true, mutable: true}) isOpen = false;\n @Prop({mutable: true}) close: () => void = () => (this.isOpen = false);\n @Prop({reflect: true}) scope?: HTMLElement;\n /**\n * Whether to display the open and close animations over the entire page or the atomic-modal only.\n */\n @Prop({reflect: true}) boundary: 'page' | 'element' = 'page';\n\n @Event() animationEnded!: EventEmitter;\n\n private wasEverOpened = false;\n private headerId = randomID('atomic-modal-header-');\n private focusTrap?: HTMLAtomicFocusTrapElement;\n private animatableContainer?: HTMLElement;\n private currentWatchToggleOpenExecution = 0;\n\n @Watch('isOpen')\n async watchToggleOpen(isOpen: boolean) {\n const watchToggleOpenExecution = ++this.currentWatchToggleOpenExecution;\n const modalOpenedClass = 'atomic-modal-opened';\n\n if (isOpen) {\n this.wasEverOpened = true;\n //TODO: remove the addition of a class to the body in atomicV3\n document.body.classList.add(modalOpenedClass);\n this.bindings.interfaceElement.classList.add(modalOpenedClass);\n await this.waitForAnimationEnded();\n if (watchToggleOpenExecution !== this.currentWatchToggleOpenExecution) {\n return;\n }\n this.focusTrap!.active = true;\n } else {\n //TODO: remove the removal of a class to the body in atomicV3\n document.body.classList.remove(modalOpenedClass);\n this.bindings.interfaceElement.classList.remove(modalOpenedClass);\n if (isIOS()) {\n await this.waitForAnimationEnded();\n }\n if (watchToggleOpenExecution !== this.currentWatchToggleOpenExecution) {\n return;\n }\n this.focusTrap!.active = false;\n }\n }\n\n @Listen('keyup', {target: 'body'})\n handleCloseOnEscape(e: KeyboardEvent) {\n if (e.key?.toLowerCase() === 'escape') {\n this.close();\n }\n }\n\n private waitForAnimationEnded() {\n // The focus trap focuses its first child when active. It cannot do that while an animation is ongoing.\n return new Promise((resolve) =>\n listenOnce(this.animatableContainer!, 'animationend', resolve)\n );\n }\n\n private getClasses() {\n const classes: string[] = [];\n if (this.isOpen) {\n classes.push('open');\n }\n if (this.fullscreen) {\n classes.push('fullscreen');\n } else {\n classes.push('dialog');\n }\n return classes;\n }\n\n @Listen('touchmove', {passive: false})\n onWindowTouchMove(e: Event) {\n this.isOpen && e.preventDefault();\n }\n\n public componentDidLoad() {\n this.watchToggleOpen(this.isOpen);\n }\n\n private updateBreakpoints = once(() => updateBreakpoints(this.host));\n\n public render() {\n this.updateBreakpoints();\n\n const Content = () => (\n this.animationEnded.emit()}\n ref={(ref) => (this.animatableContainer = ref)}\n >\n
\n \n \n \n
\n
\n \n \n element?.addEventListener(\n 'touchmove',\n (e) => this.isOpen && e.stopPropagation(),\n {passive: false}\n )\n }\n >\n \n \n \n \n
\n \n
\n \n \n );\n\n return (\n \n e.target === e.currentTarget && this.close()}\n >\n (this.focusTrap = ref)}\n scope={this.scope}\n >\n \n \n \n \n );\n }\n}\n","@import '../../../global/global.pcss';\n\n[part='backdrop'] {\n @apply pointer-events-none;\n}\n\natomic-focus-trap {\n @apply contents;\n}\n\n[part='container'] {\n @apply overflow-hidden;\n grid-area: modal;\n}\n\n.animate-scaleUpModalIPX[part='container'] {\n @apply rounded shadow;\n}\n\n:host(.open) {\n [part='backdrop'] {\n @apply pointer-events-auto;\n }\n}\n\n:host(.open.dialog) {\n [part='backdrop'] {\n background-color: rgba(40, 40, 40, 0.8);\n }\n}\n\n:host(.dialog) {\n [part='backdrop'] {\n @apply grid p-6;\n transition: background-color 500ms ease-in-out;\n\n grid-template-areas:\n '. . .'\n '. modal .'\n '. . .';\n\n grid-template-columns: 1fr min(30rem, 100%) 1fr;\n grid-template-rows: 1fr auto 3fr;\n }\n\n [part='container'] {\n @apply rounded shadow;\n }\n\n [part='header-wrapper'] {\n @apply px-6 py-4;\n }\n\n [part='header'] {\n @apply font-bold;\n }\n\n [part='body-wrapper'] {\n @apply p-6;\n }\n\n [part='footer-wrapper'] {\n @apply bg-neutral-light;\n padding: 1rem 1.125rem;\n }\n}\n\n:host(.fullscreen) {\n [part='container'] {\n @apply absolute inset-0;\n }\n\n [part='header-wrapper'] {\n @apply p-6;\n }\n\n [part='body-wrapper'] {\n @apply px-6 pt-8 pb-5;\n }\n\n [part='footer-wrapper'] {\n @apply shadow-t-lg px-6 py-4;\n }\n}\n","export function isIOS() {\n // Source: https://stackoverflow.com/a/62094756\n const iosQuirkPresent = () => {\n const audio = new Audio();\n\n audio.volume = 0.5;\n return audio.volume === 1; // volume cannot be changed from \"1\" on iOS 12 and below\n };\n\n const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\n const isAppleDevice = navigator.userAgent.includes('Macintosh');\n const isTouchScreen = navigator.maxTouchPoints >= 1; // true for iOS 13 (and hopefully beyond)\n\n return isIOS || (isAppleDevice && (isTouchScreen || iosQuirkPresent()));\n}\n\nexport function isMacOS() {\n // Source: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform#examples\n return navigator.platform.startsWith('Mac');\n}\n\nexport function hasKeyboard() {\n return window.matchMedia('(any-hover: hover)').matches;\n}\n","export function buildCustomEvent(name: string, detail: T) {\n return new CustomEvent(name, {\n detail,\n // Event will bubble up the DOM until it is caught\n bubbles: true,\n // Allows to verify if event is caught (cancelled). If it's not caught, it won't be initialized.\n cancelable: true,\n // Allows to compose Atomic components inside one another, event will go across DOM/Shadow DOM\n composed: true,\n });\n}\n\nexport function listenOnce(\n element: HTMLElement,\n type: K,\n listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void,\n options?: boolean | AddEventListenerOptions\n): void;\nexport function listenOnce(\n element: HTMLElement,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n): void;\nexport function listenOnce(\n element: HTMLElement,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n): void {\n const _listener: EventListener = (evt: Event) => {\n element.removeEventListener(type, _listener, options);\n typeof listener === 'object'\n ? listener.handleEvent.call(element, evt)\n : listener.call(element, evt);\n };\n element.addEventListener(type, _listener, options);\n}\n","import {FunctionalComponent, Host, h} from '@stencil/core';\n\nexport const Hidden: FunctionalComponent = () => (\n \n);\n","import {\n ComponentInterface,\n getElement,\n h,\n forceUpdate as forceUpdateComponent,\n} from '@stencil/core';\nimport {TOptions} from 'i18next';\nimport {Hidden} from '../components/common/hidden';\nimport {AnyBindings} from '../components/common/interface/bindings';\nimport {Bindings} from '../components/search/atomic-search-interface/atomic-search-interface';\nimport {buildCustomEvent} from './event-utils';\nimport {closest} from './utils';\n\ndeclare global {\n interface Window {\n applyFocusVisiblePolyfill?: (shadowRoot: ShadowRoot) => void;\n }\n}\n\nexport type InitializeEventHandler = (bindings: AnyBindings) => void;\nexport type InitializeEvent = CustomEvent;\nexport const initializeEventName = 'atomic/initializeComponent';\nconst initializableElements = [\n 'atomic-recs-interface',\n 'atomic-search-interface',\n 'atomic-commerce-interface',\n 'atomic-commerce-recommendation-interface',\n 'atomic-relevance-inspector',\n 'atomic-insight-interface',\n 'atomic-external',\n];\n\n/**\n * Retrieves `Bindings` or `CommerceBindings` on a configured parent interface.\n * @param event - The element on which to dispatch the event, which must be the child of a configured Atomic container element.\n * @returns A promise that resolves upon initialization of the parent container element, and rejects otherwise.\n */\nexport function initializeBindings<\n SpecificBindings extends AnyBindings = Bindings,\n>(element: Element) {\n return new Promise((resolve, reject) => {\n const event = buildCustomEvent(\n initializeEventName,\n (bindings) => resolve(bindings as SpecificBindings)\n );\n element.dispatchEvent(event);\n\n if (!closest(element, initializableElements.join(', '))) {\n reject(new MissingInterfaceParentError(element.nodeName.toLowerCase()));\n }\n });\n}\n\nexport class MissingInterfaceParentError extends Error {\n constructor(elementName: string) {\n super(\n `The \"${elementName}\" element must be the child of the following elements: ${initializableElements.join(\n ', '\n )}`\n );\n }\n}\n\n/**\n * Necessary interface an Atomic Component must have to initialize itself correctly.\n */\nexport interface InitializableComponent<\n SpecificBindings extends AnyBindings = Bindings,\n> extends ComponentInterface {\n /**\n * Bindings passed from the `AtomicSearchInterface` to its children components.\n */\n bindings: SpecificBindings;\n /**\n * Method called right after the `bindings` property is defined. This is the method where Headless Framework controllers should be initialized.\n */\n initialize?: () => void;\n error: Error;\n}\n\n/**\n * Makes Shadow Dom elements compatible with the focus-visible polyfill https://github.com/WICG/focus-visible\n * Necessary for Safari under version 15.4.\n */\nexport function applyFocusVisiblePolyfill(element: HTMLElement) {\n if (!element.shadowRoot) {\n return;\n }\n\n if (window.applyFocusVisiblePolyfill) {\n window.applyFocusVisiblePolyfill(element.shadowRoot);\n return;\n }\n\n window.addEventListener(\n 'focus-visible-polyfill-ready',\n () => window.applyFocusVisiblePolyfill?.(element.shadowRoot!),\n {once: true}\n );\n}\n\ntype InitializeBindingsProps = {\n forceUpdate?: boolean;\n};\n\nconst renderedAttribute = 'data-atomic-rendered';\nconst loadedAttribute = 'data-atomic-loaded';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used on a property named `bindings`.\n * This will automatically fetch the `Bindings` from the parent `atomic-search-interface` or `atomic-external` components.\n *\n * Once a component is bound, the `initialize` method is called.\n * In the event of an initialization error, the `error` property will be set and an `atomic-component-error` will be rendered.\n *\n * In order for a component using this decorator to render properly, it should have an internal state bound to one of the properties from `bindings`.\n * This is possible by using the `BindStateToController` decorator.\n *\n * @example\n * @InitializeBindings() public bindings!: Bindings;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n */\nexport function InitializeBindings({\n forceUpdate,\n}: InitializeBindingsProps = {}) {\n return (\n component: InitializableComponent,\n bindingsProperty: string\n ) => {\n const {\n componentWillLoad,\n render,\n componentDidRender,\n componentDidLoad,\n disconnectedCallback,\n } = component;\n let unsubscribeLanguage = () => {};\n\n if (bindingsProperty !== 'bindings') {\n return console.error(\n `The InitializeBindings decorator should be used on a property called \"bindings\", and not \"${bindingsProperty}\"`,\n component\n );\n }\n\n component.componentWillLoad = function () {\n const element = getElement(this);\n element.setAttribute(renderedAttribute, 'false');\n element.setAttribute(loadedAttribute, 'false');\n const event = buildCustomEvent(\n initializeEventName,\n (bindings: SpecificBindings) => {\n this.bindings = bindings;\n\n const updateLanguage = () => forceUpdateComponent(this);\n this.bindings.i18n.on('languageChanged', updateLanguage);\n unsubscribeLanguage = () =>\n this.bindings.i18n.off('languageChanged', updateLanguage);\n\n try {\n // When no controller is initialized, updating a property with a State() decorator, there will be no re-render.\n // In this case, we have to manually trigger it.\n if (this.initialize) {\n this.initialize();\n if (forceUpdate) {\n forceUpdateComponent(this);\n }\n } else {\n forceUpdateComponent(this);\n }\n } catch (e) {\n this.error = e as Error;\n }\n }\n );\n\n element.dispatchEvent(event);\n\n if (!closest(element, initializableElements.join(', '))) {\n this.error = new MissingInterfaceParentError(\n element.nodeName.toLowerCase()\n );\n return;\n }\n\n return componentWillLoad && componentWillLoad.call(this);\n };\n\n component.render = function () {\n if (this.error) {\n return (\n \n );\n }\n\n if (!this.bindings) {\n return ;\n }\n\n getElement(this).setAttribute(renderedAttribute, 'true');\n return render && render.call(this);\n };\n\n component.disconnectedCallback = function () {\n const element = getElement(this);\n element.setAttribute(renderedAttribute, 'false');\n element.setAttribute(loadedAttribute, 'false');\n unsubscribeLanguage();\n disconnectedCallback && disconnectedCallback.call(this);\n };\n\n component.componentDidRender = function () {\n const element = getElement(this);\n if (element.getAttribute(renderedAttribute) === 'false') {\n return;\n }\n\n componentDidRender && componentDidRender.call(this);\n if (element.getAttribute(loadedAttribute) === 'false') {\n element.setAttribute(loadedAttribute, 'true');\n applyFocusVisiblePolyfill(getElement(this));\n componentDidLoad && componentDidLoad.call(this);\n }\n };\n\n component.componentDidLoad = function () {};\n };\n}\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) is used together with the [State decorator](https://stenciljs.com/docs/state#state-decorator).\n * This allows the Stencil component state property to automatically get updates from a [Coveo Headless controller](https://docs.coveo.com/en/headless/latest/usage/#use-headless-controllers).\n *\n * @example\n * @BindStateToController('pager') @State() private pagerState!: PagerState;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n *\n * @param controllerProperty The controller property to subscribe to. The controller has to be created inside of the `initialize` method.\n * @param options The configurable `BindStateToController` options.\n */\nexport function BindStateToController(\n controllerProperty: string,\n options?: {\n /**\n * Component's method to be called when state is updated.\n */\n onUpdateCallbackMethod?: string;\n }\n) {\n return (\n component: InitializableComponent,\n stateProperty: string\n ) => {\n const {disconnectedCallback, initialize} = component;\n\n component.initialize = function () {\n initialize && initialize.call(this);\n\n if (!initialize) {\n return console.error(\n `ControllerState: The \"initialize\" method has to be defined and instantiate a controller for the property ${controllerProperty}`,\n component\n );\n }\n\n if (!this[controllerProperty]) {\n return;\n }\n\n if (\n options?.onUpdateCallbackMethod &&\n !this[options.onUpdateCallbackMethod]\n ) {\n return console.error(\n `ControllerState: The onUpdateCallbackMethod property \"${options.onUpdateCallbackMethod}\" is not defined`,\n component\n );\n }\n\n this.unsubscribeController = this[controllerProperty].subscribe(() => {\n this[stateProperty] = this[controllerProperty].state;\n options?.onUpdateCallbackMethod &&\n this[options.onUpdateCallbackMethod]();\n });\n };\n\n component.disconnectedCallback = function () {\n !getElement(this).isConnected && this.unsubscribeController?.();\n disconnectedCallback && disconnectedCallback.call(this);\n };\n };\n}\n\ninterface DeferredExecution {\n args: unknown[];\n}\n\nexport function DeferUntilRender() {\n return (component: ComponentInterface, methodName: string) => {\n const {componentDidRender, connectedCallback} = component;\n const originalMethod = component[methodName] as Function;\n let deferredExecutions: DeferredExecution[] = [];\n\n component.connectedCallback = function () {\n this[methodName] = function (...args: unknown[]) {\n deferredExecutions.push({args});\n };\n connectedCallback && connectedCallback.call(this);\n };\n\n component.componentDidRender = function () {\n deferredExecutions.forEach(({args}) =>\n originalMethod.call(this, ...args)\n );\n deferredExecutions = [];\n componentDidRender && componentDidRender.call(this);\n };\n };\n}\n\nexport type I18nState = Record string>;\n","import {closest} from './utils';\n\nexport const DEFAULT_MOBILE_BREAKPOINT = '1024px';\n\nfunction replaceMediaQuery(style: string, mobileBreakpoint: string) {\n return style.replace(\n new RegExp(`\\\\(min-width: ${DEFAULT_MOBILE_BREAKPOINT}\\\\)`, 'g'),\n `(min-width: ${mobileBreakpoint})`\n );\n}\n\nfunction replaceStyleSheet(element: HTMLElement, mobileBreakpoint: string) {\n // Not adopted by all browsers, not part of Typescript yet\n // https://caniuse.com/mdn-api_document_adoptedstylesheets\n // https://github.com/microsoft/TypeScript/issues/30022\n const stylesheets = element.shadowRoot?.adoptedStyleSheets;\n if (!stylesheets || !stylesheets.length) {\n return;\n }\n\n const stylesheet = stylesheets[0];\n const style = Object.values(stylesheet.cssRules)\n .map((rule) => rule.cssText)\n .join('');\n stylesheet.replaceSync?.(replaceMediaQuery(style, mobileBreakpoint));\n}\n\nfunction replateStyleContent(element: HTMLElement, breakpoint: string) {\n const styleTag = element.shadowRoot?.querySelector('style');\n if (!styleTag) {\n return;\n }\n\n styleTag.textContent = replaceMediaQuery(styleTag.textContent!, breakpoint);\n}\n\nconst layouts = ['atomic-search-layout', 'atomic-insight-layout'];\ntype LayoutElement = HTMLElement & {mobileBreakpoint: string};\nexport function updateBreakpoints(element: HTMLElement) {\n const layout: LayoutElement | null = closest(element, layouts.join(', '));\n\n if (!layout?.mobileBreakpoint) {\n return;\n }\n\n if (layout.mobileBreakpoint === DEFAULT_MOBILE_BREAKPOINT) {\n return;\n }\n\n replaceStyleSheet(element, layout.mobileBreakpoint);\n replateStyleContent(element, layout.mobileBreakpoint);\n}\n"],"names":["getFocusableDescendants","findAriaLiveEventName","AriaLiveRegion","regionName","assertive","arguments","length","undefined","getAriaLiveElement","event","buildCustomEvent","document","dispatchEvent","detail","element","component","setterName","componentWillRender","Object","defineProperty","set","message","dispatchMessage","_a","updateMessage","call","this","registerRegion","FocusTargetController","_classCallCheck","doFocusAfterSearch","doFocusOnNextTarget","bindings","handleComponentRenderLoop","_createClass","key","value","setTarget","el","focus","_focus","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_b","wrap","_callee$","_context","prev","next","defer","onFocusCallback","stop","apply","focusAfterSearch","_this","lastSearchId","store","getUniqueIDFromEngine","engine","Promise","resolve","focusOnNextTarget","_this2","disableForCurrentSearch","_this3","originalComponentDidRender","componentDidRender","then","isFocusable","getAttribute","hasAttribute","tagName","children","_children","_iterator","_step","child","getFocusableDescendants$","_context2","Array","from","HTMLSlotElement","assignedElements","shadowRoot","push","_toConsumableArray","_createForOfIteratorHelper","s","n","done","delegateYield","t1","e","f","finish","_marked","getFirstFocusableDescendant","AtomicFocusTrap","active","shouldHideSelf","scope","body","hiddenElements","hide","toLowerCase","setAttribute","showAll","pop","removeAttribute","hideSiblingsRecursively","parent","getParent","forEach","sibling","assignedSlot","isAncestorOf","host","showSelf","parentToHide","hideSelf","_onDeactivated","isInitialLoad","source","onDeactivated","_x","_onActivated","_callee2","_callee2$","onActivated","_x2","_activeChanged","_callee3","wasActive","_callee3$","_context3","activeChanged","_x3","_x4","onFocusChanged","target","focusedElement","getFocusedElement","elementIsPartOfHost","elementIsPartOfScope","connectedCallback","disconnectedCallback","get","container","AtomicModal","fullscreen","isOpen","close","boundary","wasEverOpened","headerId","randomID","currentWatchToggleOpenExecution","updateBreakpoints","once","_callee4","watchToggleOpenExecution","modalOpenedClass","_callee4$","_context4","classList","add","interfaceElement","waitForAnimationEnded","abrupt","focusTrap","remove","isIOS","watchToggleOpen","_x5","_watchToggleOpen","handleCloseOnEscape","_this4","listenOnce","animatableContainer","getClasses","classes","onWindowTouchMove","preventDefault","componentDidLoad","render","_this5","h","Host","class","join","part","concat","onClick","currentTarget","role","toString","ref","Content","onAnimationEnd","animationEnded","emit","id","name","addEventListener","stopPropagation","passive","__decorate","InitializeBindings","test","navigator","userAgent","isAppleDevice","includes","isTouchScreen","maxTouchPoints","iosQuirkPresent","audio","Audio","volume","isMacOS","platform","startsWith","hasKeyboard","window","matchMedia","matches","CustomEvent","bubbles","cancelable","composed","type","listener","options","_listener","evt","removeEventListener","handleEvent","Hidden","initializeEventName","initializableElements","MissingInterfaceParentError","_Error","elementName","_callSuper","_inherits","_wrapNativeSuper","Error","applyFocusVisiblePolyfill","renderedAttribute","loadedAttribute","forceUpdate$1","forceUpdate","bindingsProperty","componentWillLoad","unsubscribeLanguage","console","error","getElement","updateLanguage","i18n","on","off","initialize","closest","nodeName","BindStateToController","controllerProperty","stateProperty","onUpdateCallbackMethod","unsubscribeController","subscribe","state","isConnected","DEFAULT_MOBILE_BREAKPOINT","replaceMediaQuery","style","mobileBreakpoint","replace","RegExp","layouts","layout","replaceStyleSheet","stylesheets","adoptedStyleSheets","stylesheet","values","cssRules","map","rule","cssText","replaceSync","replateStyleContent","breakpoint","styleTag","querySelector","textContent"],"sourceRoot":""}