{"version":3,"sources":["./src/utils/SVGDom.ts","./src/ui/SearchButton/SearchButton.ts","./src/utils/AccessibleButton.ts","./sass/_AccessibleButton.scss"],"names":[],"mappings":"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","file":"SearchButton__a32fd127c77e29c02637.js","sourcesContent":["import { IStringMap } from '../rest/GenericParam';\nimport * as _ from 'underscore';\n\nexport class SVGDom {\n public static addClassToSVGInContainer(svgContainer: HTMLElement, classToAdd: string) {\n const svgElement = svgContainer.querySelector('svg');\n svgElement.setAttribute('class', `${SVGDom.getClass(svgElement)}${classToAdd}`);\n }\n\n public static removeClassFromSVGInContainer(svgContainer: HTMLElement, classToRemove: string) {\n const svgElement = svgContainer.querySelector('svg');\n svgElement.setAttribute('class', SVGDom.getClass(svgElement).replace(classToRemove, ''));\n }\n\n public static addStyleToSVGInContainer(svgContainer: HTMLElement, styleToAdd: IStringMap) {\n const svgElement = svgContainer.querySelector('svg');\n _.each(styleToAdd, (styleValue, styleKey) => {\n svgElement.style[styleKey] = styleValue;\n });\n }\n\n private static getClass(svgElement: SVGElement) {\n const className = svgElement.getAttribute('class');\n return className ? className + ' ' : '';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/SVGDom.ts","import { exportGlobally } from '../../GlobalExports';\nimport { l } from '../../strings/Strings';\nimport { AccessibleButton } from '../../utils/AccessibleButton';\nimport { $$ } from '../../utils/Dom';\nimport { SVGDom } from '../../utils/SVGDom';\nimport { SVGIcons } from '../../utils/SVGIcons';\nimport { Utils } from '../../utils/Utils';\nimport { IAnalyticsNoMeta, analyticsActionCauseList } from '../Analytics/AnalyticsActionListMeta';\nimport { Component } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { Initialization } from '../Base/Initialization';\n\nexport interface ISearchButtonOptions {}\n\n/**\n * The SearchButton component renders a search icon that the end user can click to trigger a new query.\n *\n * See also the {@link Searchbox} component, which can automatically instantiate a SearchButton component along with a\n * {@link Querybox} component or an {@link Omnibox} component.\n */\nexport class SearchButton extends Component {\n static ID = 'SearchButton';\n\n static doExport = () => {\n exportGlobally({\n SearchButton: SearchButton\n });\n };\n\n static options: ISearchButtonOptions = {};\n\n /**\n * Creates a new SearchButton. Binds a `click` event on the element. Adds a search icon on the element.\n * @param element The HTMLElement on which to instantiate the component.\n * @param options The options for the SearchButton 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(public element: HTMLElement, public options?: ISearchButtonOptions, bindings?: IComponentBindings) {\n super(element, SearchButton.ID, bindings);\n\n new AccessibleButton()\n .withElement(element)\n .withOwner(this.bind)\n .withLabel(l('Search'))\n .withSelectAction(() => this.handleClick())\n .build();\n\n // Provide a magnifier icon if element contains nothing\n if (Utils.trim($$(this.element).text()) == '') {\n const svgMagnifierContainer = $$('span', { className: 'coveo-search-button' }, SVGIcons.icons.search).el;\n SVGDom.addClassToSVGInContainer(svgMagnifierContainer, 'coveo-search-button-svg');\n const svgLoadingAnimationContainer = $$('span', { className: 'coveo-search-button-loading' }, SVGIcons.icons.loading).el;\n SVGDom.addClassToSVGInContainer(svgLoadingAnimationContainer, 'coveo-search-button-loading-svg');\n element.appendChild(svgMagnifierContainer);\n element.appendChild(svgLoadingAnimationContainer);\n }\n }\n\n /**\n * Triggers the `click` event handler, which logs a `searchboxSubmit` event in the usage analytics and executes a\n * query.\n */\n public click() {\n this.handleClick();\n }\n\n private handleClick() {\n this.logger.debug('Performing query following button click');\n this.usageAnalytics.logSearchEvent(analyticsActionCauseList.searchboxSubmit, {});\n this.queryController.executeQuery();\n }\n}\n\nInitialization.registerAutoCreateComponent(SearchButton);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/SearchButton/SearchButton.ts","import { Logger } from '../misc/Logger';\nimport { ComponentEvents } from '../ui/Base/Component';\nimport { KEYBOARD, KeyboardUtils } from '../utils/KeyboardUtils';\nimport { $$, Dom } from './Dom';\nimport 'styling/_AccessibleButton';\n\nexport class AccessibleButton {\n private element: Dom;\n private label: string;\n private title: string;\n\n private clickAction: (e: Event) => void;\n private enterKeyboardAction: (e: Event) => void;\n private blurAction: (e: Event) => void;\n private mouseleaveAction: (e: Event) => void;\n private focusAction: (e: Event) => void;\n private mouseenterAction: (e: Event) => void;\n\n private logger: Logger;\n private eventOwner: ComponentEvents;\n\n public constructor() {\n this.logger = new Logger(this);\n }\n\n public withOwner(owner: ComponentEvents) {\n this.eventOwner = owner;\n return this;\n }\n\n public withElement(element: Dom | HTMLElement) {\n if (element instanceof HTMLElement) {\n this.element = $$(element);\n } else {\n this.element = element;\n }\n return this;\n }\n\n public withLabel(label: string) {\n this.label = label;\n return this;\n }\n\n public withTitle(title: string) {\n this.title = title;\n return this;\n }\n\n public withSelectAction(action: (e: Event) => void) {\n this.clickAction = action;\n this.enterKeyboardAction = action;\n return this;\n }\n\n public withClickAction(clickAction: (e: Event) => void) {\n this.clickAction = clickAction;\n return this;\n }\n\n public withEnterKeyboardAction(enterAction: (e: Event) => void) {\n this.enterKeyboardAction = enterAction;\n return this;\n }\n\n public withFocusAndMouseEnterAction(action: (e: Event) => void) {\n this.focusAction = action;\n this.mouseenterAction = action;\n return this;\n }\n\n public withFocusAction(action: (e: Event) => void) {\n this.focusAction = action;\n return this;\n }\n\n public withMouseEnterAction(action: (e: Event) => void) {\n this.mouseenterAction = action;\n return this;\n }\n\n public withBlurAndMouseLeaveAction(action: (e: Event) => void) {\n this.mouseleaveAction = action;\n this.blurAction = action;\n return this;\n }\n\n public withMouseLeaveAction(action: (e: Event) => void) {\n this.mouseleaveAction = action;\n return this;\n }\n\n public withBlurAction(action: (e: Event) => void) {\n this.blurAction = action;\n return this;\n }\n\n public build() {\n if (!this.element) {\n this.element = $$('div');\n }\n\n this.ensureCorrectRole();\n this.ensureCorrectLabel();\n this.ensureTitle();\n this.ensureSelectAction();\n this.ensureUnselectAction();\n this.ensureMouseenterAndFocusAction();\n this.ensureMouseleaveAndBlurAction();\n this.ensureDifferentiationBetweenKeyboardAndMouseFocus();\n\n return this;\n }\n\n private ensureDifferentiationBetweenKeyboardAndMouseFocus() {\n const classOnPress = 'coveo-accessible-button-pressed';\n const classOnFocus = 'coveo-accessible-button-focused';\n $$(this.element).addClass('coveo-accessible-button');\n\n $$(this.element).on('mousedown', () => {\n $$(this.element).addClass(classOnPress);\n $$(this.element).removeClass(classOnFocus);\n });\n\n $$(this.element).on('mouseup', () => $$(this.element).removeClass(classOnPress));\n $$(this.element).on('focus', () => {\n if (!$$(this.element).hasClass(classOnPress)) {\n $$(this.element).addClass(classOnFocus);\n }\n });\n\n $$(this.element).on('blur', () => $$(this.element).removeClass(classOnFocus));\n }\n\n private ensureCorrectRole() {\n if (!this.element.getAttribute('role')) {\n this.element.setAttribute('role', 'button');\n }\n }\n\n private ensureCorrectLabel() {\n if (!this.label) {\n this.logger.error(`Missing label to create an accessible button !`);\n return;\n }\n this.element.setAttribute('aria-label', this.label);\n }\n\n private ensureTitle() {\n this.title && this.element.setAttribute('title', this.title);\n }\n\n private ensureTabIndex() {\n this.element.setAttribute('tabindex', '0');\n }\n\n private ensureSelectAction() {\n if (this.enterKeyboardAction) {\n this.ensureTabIndex();\n this.bindEvent('keyup', KeyboardUtils.keypressAction(KEYBOARD.ENTER, (e: Event) => this.enterKeyboardAction(e)));\n }\n\n if (this.clickAction) {\n this.bindEvent('click', this.clickAction);\n }\n }\n\n private ensureUnselectAction() {\n if (this.blurAction) {\n this.bindEvent('blur', this.blurAction);\n }\n\n if (this.mouseleaveAction) {\n this.bindEvent('mouseleave', this.mouseleaveAction);\n }\n }\n\n private ensureMouseenterAndFocusAction() {\n if (this.mouseenterAction) {\n this.bindEvent('mouseenter', this.mouseenterAction);\n }\n if (this.focusAction) {\n this.bindEvent('focus', this.focusAction);\n }\n }\n\n private ensureMouseleaveAndBlurAction() {\n if (this.mouseleaveAction) {\n this.bindEvent('mouseleave', this.mouseleaveAction);\n }\n if (this.blurAction) {\n this.bindEvent('blur', this.blurAction);\n }\n }\n\n private bindEvent(event: string, action: (...args: any[]) => void) {\n if (this.eventOwner) {\n this.eventOwner.on(this.element, event, action);\n } else {\n $$(this.element).on(event, action);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/AccessibleButton.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_AccessibleButton.scss\n// module id = 372\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 14 16 17 18 19 20 21 23 24 25 26 27 29 30 31 37 38 39 40 41 77"],"sourceRoot":""}