{"version":3,"sources":["./src/utils/AccessibleModal.ts","./src/ui/PreferencesPanel/PreferencesPanel.ts","./src/ui/FocusTrap/FocusTrap.ts","./sass/_PreferencesPanel.scss"],"names":[],"mappings":"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","file":"PreferencesPanel__d2b01b0f173a0c131e66.js","sourcesContent":["import { ModalBox as ModalBoxModule } from '../ExternalModulesShim';\nimport { FocusTrap } from '../ui/FocusTrap/FocusTrap';\nimport { l } from '../strings/Strings';\nimport { $$ } from './Dom';\nimport { KeyboardUtils, KEYBOARD } from './KeyboardUtils';\nimport { IQuickViewHeaderOptions } from './DomUtils';\nimport { IQueryResult } from '../rest/QueryResult';\nimport { IComponentBindings } from '../ui/Base/ComponentBindings';\nimport { DomUtils } from '../Core';\n\nexport interface IAccessibleModalOptions {\n overlayClose?: boolean;\n sizeMod: 'small' | 'normal' | 'big';\n focusOnOpen?(): HTMLElement;\n}\n\nexport interface IAccessibleModalOpenParameters {\n content: HTMLElement;\n validation: () => boolean;\n origin: HTMLElement;\n}\n\nexport interface IAccessibleModalOpenResultParameters extends IAccessibleModalOpenParameters {\n result: IQueryResult;\n options: IQuickViewHeaderOptions;\n bindings: IComponentBindings;\n}\n\nexport interface IAccessibleModalOpenNormalParameters extends IAccessibleModalOpenParameters {\n title: HTMLElement;\n}\n\nexport class AccessibleModal {\n private focusTrap: FocusTrap;\n private activeModal: Coveo.ModalBox.ModalBox;\n private options: IAccessibleModalOptions;\n private initiallyFocusedElement: HTMLElement;\n\n public get isOpen() {\n return !!this.focusTrap;\n }\n\n public get element() {\n return this.activeModal && this.activeModal.modalBox;\n }\n\n public get content() {\n return this.activeModal && this.activeModal.content;\n }\n\n public get wrapper() {\n return this.activeModal && this.activeModal.wrapper;\n }\n\n private get headerElement() {\n return this.element && this.element.querySelector<HTMLElement>('.coveo-modal-header h1');\n }\n\n constructor(\n private className: string,\n private ownerElement: HTMLElement,\n private modalboxModule: Coveo.ModalBox.ModalBox = ModalBoxModule,\n options: Partial<IAccessibleModalOptions> = {}\n ) {\n this.options = {\n ...{\n sizeMod: 'big'\n },\n ...options\n };\n }\n\n public openResult(parameters: IAccessibleModalOpenResultParameters) {\n if (this.isOpen) {\n return;\n }\n this.openModalAndTrap({\n content: parameters.content,\n validation: parameters.validation,\n origin: parameters.origin,\n title: DomUtils.getQuickviewHeader(parameters.result, parameters.options, parameters.bindings).el\n });\n this.makeAccessible(parameters.options.title || parameters.result.title);\n }\n\n public open(parameters: IAccessibleModalOpenNormalParameters) {\n if (this.isOpen) {\n return;\n }\n this.openModalAndTrap(parameters);\n this.makeAccessible();\n }\n\n private openModalAndTrap(parameters: IAccessibleModalOpenNormalParameters) {\n this.initiallyFocusedElement = parameters.origin || (document.activeElement as HTMLElement);\n this.activeModal = this.modalboxModule.open(parameters.content, {\n title: parameters.title,\n className: this.className,\n validation: () => {\n this.onModalClose();\n return parameters.validation();\n },\n body: this.ownerElement,\n sizeMod: this.options.sizeMod,\n overlayClose: this.options.overlayClose\n });\n this.focusTrap = new FocusTrap(this.element);\n }\n\n public close() {\n if (!this.isOpen) {\n return;\n }\n this.activeModal.close();\n this.activeModal = null;\n }\n\n private makeAccessible(title?: string) {\n this.element.setAttribute('aria-modal', 'true');\n if (title) {\n this.headerElement.setAttribute('aria-label', title);\n }\n this.makeCloseButtonAccessible();\n this.updateFocus();\n }\n\n private get closeButton(): HTMLElement {\n return this.element.querySelector('.coveo-small-close');\n }\n\n private makeCloseButtonAccessible() {\n const closeButton = this.closeButton;\n closeButton.setAttribute('aria-label', l('Close'));\n closeButton.setAttribute('role', 'button');\n closeButton.tabIndex = 0;\n $$(closeButton).on(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.ENTER, () => closeButton.click())\n );\n }\n\n private updateFocus() {\n const focusOnElement: HTMLElement = (this.options.focusOnOpen && this.options.focusOnOpen()) || this.closeButton;\n focusOnElement.focus();\n }\n\n private onModalClose() {\n this.focusTrap.disable();\n this.focusTrap = null;\n if (this.initiallyFocusedElement && document.body.contains(this.initiallyFocusedElement)) {\n this.initiallyFocusedElement.focus();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/AccessibleModal.ts","import { Component } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { ComponentOptions } from '../Base/ComponentOptions';\nimport { SettingsEvents } from '../../events/SettingsEvents';\nimport { ISettingsPopulateMenuArgs } from '../Settings/Settings';\nimport { PreferencesPanelEvents } from '../../events/PreferencesPanelEvents';\nimport { Initialization } from '../Base/Initialization';\nimport { l } from '../../strings/Strings';\nimport { $$ } from '../../utils/Dom';\nimport { exportGlobally } from '../../GlobalExports';\nimport { ModalBox as ModalBoxModule } from '../../ExternalModulesShim';\nimport * as _ from 'underscore';\nimport { AccessibleModal } from '../../utils/AccessibleModal';\n\nimport 'styling/_PreferencesPanel';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { SVGIcons } from '../../utils/SVGIcons';\n\nexport interface IPreferencesPanelOptions {}\n\n/**\n * The PreferencesPanel component renders a **Preferences** item inside the {@link Settings} component which the end\n * user can click to access a panel from which it is possible to specify certain customization options for the search\n * interface. These customization options are then saved in the browser local storage.\n *\n * This component should be used inside the {@link Settings} component.\n *\n * See also the {@link ResultsFiltersPreferences} and {@link ResultsPreferences} components.\n */\nexport class PreferencesPanel extends Component {\n static ID = 'PreferencesPanel';\n\n static doExport = () => {\n exportGlobally({\n PreferencesPanel: PreferencesPanel\n });\n };\n\n static options: IPreferencesPanelOptions = {};\n private modalbox: AccessibleModal;\n private content: HTMLElement[] = [];\n\n /**\n * Creates a new PreferencesPanel.\n * @param element The HTMLElement on which to instantiate the component.\n * @param options The options for the PreferencesPanel component.\n * @param bindings The bindings that the component requires to function normally. If not set, these will be\n * automatically resolved (with a slower execution time).\n */\n constructor(\n public element: HTMLElement,\n public options: IPreferencesPanelOptions,\n bindings?: IComponentBindings,\n private ModalBox = ModalBoxModule\n ) {\n super(element, PreferencesPanel.ID, bindings);\n this.options = ComponentOptions.initComponentOptions(element, PreferencesPanel, options);\n this.bind.onRootElement(SettingsEvents.settingsPopulateMenu, (args: ISettingsPopulateMenuArgs) => {\n args.menuData.push({\n className: 'coveo-preferences-panel',\n text: l('Preferences'),\n onOpen: () => this.open(),\n onClose: () => this.close(),\n svgIcon: SVGIcons.icons.dropdownPreferences,\n svgIconClassName: 'coveo-preferences-panel-svg'\n });\n });\n this.bind.onRootElement(InitializationEvents.afterComponentsInitialization, () => {\n this.content = $$(this.element).children();\n });\n this.modalbox = new AccessibleModal('coveo-preferences-panel', this.searchInterface.options.modalContainer, this.ModalBox, {\n overlayClose: true\n });\n }\n\n /**\n * Opens the PreferencesPanel.\n */\n public open(): void {\n let root = $$('div');\n _.each(this.content, oneChild => {\n root.append(oneChild);\n });\n this.modalbox.open({\n title: l('Preferences'),\n content: root.el,\n origin: this.element,\n validation: () => {\n this.cleanupOnExit();\n return true;\n }\n });\n }\n\n /**\n * Closes the PreferencesPanel without saving changes.\n *\n * Also triggers the `exitPreferencesWithoutSave` event.\n */\n public close(): void {\n this.cleanupOnExit();\n this.modalbox.close();\n }\n\n /**\n * Saves the changes and executes a new query.\n *\n * Also triggers the `savePreferences` event.\n */\n public save(): void {\n $$(this.element).trigger(PreferencesPanelEvents.savePreferences);\n this.queryController.executeQuery();\n }\n\n private cleanupOnExit() {\n $$(this.element).trigger(PreferencesPanelEvents.exitPreferencesWithoutSave);\n }\n}\n\nInitialization.registerAutoCreateComponent(PreferencesPanel);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/PreferencesPanel/PreferencesPanel.ts","import { Defer } from '../../misc/Defer';\nimport { without, chain } from 'underscore';\nimport { $$, Dom } from '../../utils/Dom';\n\nexport interface FocusTrapOptions {\n focusableSelector: string;\n}\n\nexport class FocusTrap {\n private focusInEvent: (e: FocusEvent) => void;\n private focusOutEvent: (e: FocusEvent) => void;\n private hiddenElements: HTMLElement[];\n private enabled: boolean;\n\n private get focusableElements(): HTMLElement[] {\n return chain(Dom.nodeListToArray(this.container.querySelectorAll(this.options.focusableSelector)))\n .filter(element => $$(element).isVisible())\n .sortBy(element => element.tabIndex)\n .value();\n }\n\n constructor(\n private container: HTMLElement,\n private options: FocusTrapOptions = {\n focusableSelector: '[tabindex], button'\n }\n ) {\n this.hiddenElements = [];\n this.enable();\n }\n\n public disable() {\n document.removeEventListener('focusin', this.focusInEvent);\n document.removeEventListener('focusout', this.focusOutEvent);\n this.showHiddenElements();\n this.enabled = false;\n }\n\n private enable() {\n document.addEventListener('focusin', (this.focusInEvent = e => this.onFocusIn(e)));\n document.addEventListener('focusout', (this.focusOutEvent = e => this.onFocusOut(e)));\n this.hideAllExcept(this.container);\n this.enabled = true;\n }\n\n private showHiddenElements() {\n while (this.hiddenElements.length) {\n this.hiddenElements.pop().removeAttribute('aria-hidden');\n }\n }\n\n private hideElement(element: HTMLElement) {\n if (element.getAttribute('aria-hidden')) {\n return;\n }\n this.hiddenElements.push(element);\n element.setAttribute('aria-hidden', `${true}`);\n }\n\n private hideSiblings(allowedElement: HTMLElement) {\n const parent = allowedElement.parentElement;\n if (parent) {\n without($$(parent).children(), allowedElement).forEach(elementToHide => {\n this.hideElement(elementToHide);\n });\n }\n }\n\n private hideAllExcept(allowedElement: HTMLElement) {\n this.hideSiblings(allowedElement);\n const parent = allowedElement.parentElement;\n if (parent && parent !== document.body) {\n this.hideAllExcept(parent);\n }\n }\n\n private getFocusableSibling(element: HTMLElement, previous = false) {\n const elements = this.focusableElements;\n const currentIndex = elements.indexOf(element);\n if (currentIndex === -1) {\n return null;\n }\n return elements[(currentIndex + (previous ? -1 : 1) + elements.length) % elements.length];\n }\n\n private focusSibling(element: HTMLElement, previous = false) {\n const sibling = this.getFocusableSibling(element, previous);\n if (sibling) {\n sibling.focus();\n }\n }\n\n private focusFirstElement() {\n const elements = this.focusableElements;\n if (elements.length) {\n elements[0].focus();\n }\n }\n\n private elementIsBefore(oldElement: HTMLElement, newElement: HTMLElement) {\n if (!newElement) {\n return false;\n }\n return oldElement.compareDocumentPosition(newElement) === Node.DOCUMENT_POSITION_PRECEDING;\n }\n\n private onLosingFocus(oldElement: HTMLElement, newElement: HTMLElement) {\n Defer.defer(() => {\n if (!this.enabled) {\n return;\n }\n this.enabled = false;\n if (oldElement && this.focusIsAllowed(oldElement)) {\n this.focusSibling(oldElement, this.elementIsBefore(oldElement, newElement));\n } else {\n this.focusFirstElement();\n }\n this.enabled = true;\n });\n }\n\n private focusIsAllowed(element: HTMLElement) {\n return this.container.contains(element);\n }\n\n private elementIsInPage(element: HTMLElement) {\n return element && element !== document.body.parentElement;\n }\n\n private onFocusIn(e: FocusEvent) {\n if (!this.enabled) {\n return;\n }\n const oldElement = e.relatedTarget as HTMLElement;\n const handledByFocusOut = this.elementIsInPage(oldElement);\n if (handledByFocusOut) {\n return;\n }\n const newElement = e.target as HTMLElement;\n if (!this.elementIsInPage(newElement)) {\n return;\n }\n if (!this.focusIsAllowed(newElement)) {\n this.onLosingFocus(null, newElement);\n }\n }\n\n private onFocusOut(e: FocusEvent) {\n if (!this.enabled) {\n return;\n }\n const newElement = e.relatedTarget as HTMLElement;\n if (!this.elementIsInPage(newElement)) {\n return;\n }\n if (!newElement || !this.focusIsAllowed(newElement)) {\n this.onLosingFocus(e.target as HTMLElement, newElement);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/FocusTrap/FocusTrap.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_PreferencesPanel.scss\n// module id = 635\n// module chunks = 37 88"],"sourceRoot":""}