{"version":3,"file":"static/js/8301.0e65cf0f.chunk.js","mappings":"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","sources":["../node_modules/@coveo/atomic/dist/esm/src/components/search/atomic-search-interface/atomic-aria-live.tsx","../node_modules/@coveo/atomic/dist/esm/src/utils/debounce-utils.tsx"],"sourcesContent":["import {\n Component,\n h,\n Host,\n State,\n Element,\n Method,\n Listen,\n} from '@stencil/core';\nimport {FindAriaLiveEventArgs} from '../../../utils/accessibility-utils';\nimport {buildDebouncedQueue} from '../../../utils/debounce-utils';\nimport {randomID} from '../../../utils/utils';\n\ntype Regions = {[regionName: string]: {assertive: boolean; message: string}};\n\n/**\n * The `atomic-aria-live` component notifies screen readers of changes in the search interface.\n */\n@Component({\n tag: 'atomic-aria-live',\n shadow: false,\n})\nexport class AtomicAriaLive {\n @Element() private host!: HTMLAtomicAriaLiveElement;\n @State() private regions: Readonly = {};\n\n private messagesQueue = buildDebouncedQueue({delay: 500});\n private id = randomID('aria-live-');\n\n @Listen('atomic/accessibility/findAriaLive', {target: 'document'})\n protected onFindAriaLive({detail: args}: CustomEvent) {\n if (!args.element || !this.isInSearchInterface) {\n args.element = this.host;\n }\n }\n\n private get isInSearchInterface() {\n let element: Element | null = this.host;\n while (element) {\n if (element.tagName === 'ATOMIC-SEARCH-INTERFACE') {\n return true;\n }\n element = element.parentElement;\n }\n return false;\n }\n\n /**\n * @internal\n */\n @Method()\n public async updateMessage(\n region: string,\n message: string,\n assertive: boolean\n ) {\n const updateRegion = () =>\n (this.regions = {...this.regions, [region]: {assertive, message}});\n\n if (message) {\n this.messagesQueue.enqueue(updateRegion, region);\n } else {\n this.messagesQueue.cancelActionIfQueued(region);\n updateRegion();\n }\n }\n\n /**\n * @internal\n */\n @Method()\n public async registerRegion(region: string, assertive: boolean) {\n if (region in this.regions) {\n return;\n }\n this.regions = {...this.regions, [region]: {assertive, message: ''}};\n }\n\n public disconnectedCallback() {\n this.messagesQueue.clear();\n }\n\n public render() {\n return (\n \n {Object.entries(this.regions).map(\n ([regionName, {assertive, message}]) => (\n \n {message}\n \n )\n )}\n \n );\n }\n}\n","export interface DebouncedQueueOptions {\n delay: number;\n}\n\nexport interface DebouncedQueue {\n enqueue(execute: () => void, uniqueId?: string): void;\n clear(): void;\n cancelActionIfQueued(id: string): void;\n}\n\ninterface QueuedAction {\n id?: string;\n execute: () => void;\n}\n\nexport function buildDebouncedQueue(\n options: DebouncedQueueOptions\n): DebouncedQueue {\n let actions: QueuedAction[] = [];\n let intervalId: ReturnType | null = null;\n\n function dequeueAction() {\n const action = actions.shift();\n if (action) {\n action.execute();\n } else {\n clearInterval(intervalId!);\n intervalId = null;\n }\n }\n\n function cancelActionIfQueued(id: string) {\n actions = actions.filter((action) => action.id !== id);\n }\n\n return {\n enqueue(execute: () => void, uniqueId?: string) {\n if (uniqueId) {\n cancelActionIfQueued(uniqueId);\n }\n actions.push({id: uniqueId, execute});\n if (intervalId === null) {\n dequeueAction();\n intervalId = setInterval(dequeueAction, options.delay);\n }\n },\n clear() {\n actions = [];\n },\n cancelActionIfQueued,\n };\n}\n\nexport function debounce<\n ExecuteParameters extends unknown[],\n ExecuteReturnType,\n>(\n execute: (\n ...args: ExecuteParameters\n ) => Promise | ExecuteReturnType,\n wait: number\n) {\n let timer: ReturnType;\n\n return (...args: ExecuteParameters): Promise => {\n clearTimeout(timer);\n return new Promise((resolve) => {\n timer = setTimeout(() => resolve(execute(...args)), wait);\n });\n };\n}\n"],"names":["AtomicAriaLive","regions","messagesQueue","buildDebouncedQueue","delay","id","randomID","onFindAriaLive","_ref","args","detail","element","this","isInSearchInterface","host","key","get","tagName","parentElement","_callee","region","message","assertive","updateRegion","_this","_regeneratorRuntime","wrap","_callee$","_context","prev","next","_objectSpread","_defineProperty","enqueue","cancelActionIfQueued","stop","updateMessage","_x","_x2","_x3","_updateMessage","apply","arguments","_callee2","_callee2$","_context2","abrupt","registerRegion","_x4","_x5","_registerRegion","value","disconnectedCallback","clear","render","_this2","h","Host","style","position","display","height","overflow","margin","Object","entries","map","_ref2","_ref3","_slicedToArray","regionName","_ref3$","concat","role","options","actions","intervalId","dequeueAction","action","shift","execute","clearInterval","filter","uniqueId","push","setInterval","debounce","wait","timer","_len","length","Array","_key","clearTimeout","Promise","resolve","setTimeout"],"sourceRoot":""}