{"version":3,"sources":["./src/utils/SVGDom.ts","./src/utils/AccessibleButton.ts","./src/ui/Breadcrumb/Breadcrumb.ts","./sass/_AccessibleButton.scss","./sass/_Breadcrumb.scss"],"names":[],"mappings":"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","file":"Breadcrumb__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<any>) {\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 { 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","import 'styling/_Breadcrumb';\nimport { each } from 'underscore';\nimport { BreadcrumbEvents, IBreadcrumbItem, IClearBreadcrumbEventArgs, IPopulateBreadcrumbEventArgs } from '../../events/BreadcrumbEvents';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { QueryEvents } from '../../events/QueryEvents';\nimport { 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 { analyticsActionCauseList, IAnalyticsNoMeta } from '../Analytics/AnalyticsActionListMeta';\nimport { Component } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { ComponentOptions } from '../Base/ComponentOptions';\nimport { Initialization } from '../Base/Initialization';\n\nexport interface IBreadcrumbOptions {}\n\n/**\n * The Breadcrumb component displays a summary of the currently active query filters.\n *\n * For example, when the user selects a {@link Facet} value, the breadcrumbs display this value.\n *\n * The active filters are obtained by the component by firing an event in the Breadcrumb component.\n *\n * All other components having an active state can react to this event by providing custom bits of HTML to display\n * inside the breadcrumbs.\n *\n * Thus, it is possible to easily extend the Breadcrumb component using custom code to display information about custom\n * states and filters.\n *\n * See {@link BreadcrumbEvents} for the list of events and parameters sent when a Breadcrumb component is populated.\n */\nexport class Breadcrumb extends Component {\n static ID = 'Breadcrumb';\n static options: IBreadcrumbOptions = {};\n\n static doExport = () => {\n exportGlobally({\n Breadcrumb: Breadcrumb\n });\n };\n\n private lastBreadcrumbs: IBreadcrumbItem[];\n\n /**\n * Creates a new Breadcrumb component. Binds event on {@link QueryEvents.deferredQuerySuccess} to draw the\n * breadcrumbs.\n * @param element The HTMLElement on which to instantiate the component.\n * @param options The options for the Breadcrumb 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?: IBreadcrumbOptions, bindings?: IComponentBindings) {\n super(element, Breadcrumb.ID, bindings);\n\n this.options = ComponentOptions.initComponentOptions(element, Breadcrumb, options);\n\n this.bind.oneRootElement(InitializationEvents.afterInitialization, () => this.handleAfterInitialization());\n this.bind.onRootElement(BreadcrumbEvents.redrawBreadcrumb, () => this.redrawBreadcrumb());\n this.element.style.display = 'none';\n }\n\n /**\n * Triggers the event to populate the breadcrumbs. Components such as {@link Facet} can populate the breadcrumbs.\n *\n * This method triggers a {@link BreadcrumbEvents.populateBreadcrumb} event with an\n * {@link IPopulateBreadcrumbEventArgs} object (an array) that other components or code can populate.\n * @returns {IBreadcrumbItem[]} A populated breadcrumb item list.\n */\n public getBreadcrumbs(): IBreadcrumbItem[] {\n const args = <IPopulateBreadcrumbEventArgs>{ breadcrumbs: [] };\n this.bind.trigger(this.root, BreadcrumbEvents.populateBreadcrumb, args);\n this.logger.debug('Retrieved breadcrumbs', args.breadcrumbs);\n this.lastBreadcrumbs = args.breadcrumbs;\n return args.breadcrumbs;\n }\n\n /**\n * Triggers the event to clear the current breadcrumbs that components such as {@link Facet} can populate.\n *\n * Also triggers a new query and logs the `breadcrumbResetAll` event in the usage analytics.\n */\n public clearBreadcrumbs() {\n const args = <IClearBreadcrumbEventArgs>{};\n this.bind.trigger(this.root, BreadcrumbEvents.clearBreadcrumb, args);\n this.logger.debug('Clearing breadcrumbs');\n this.usageAnalytics.logSearchEvent<IAnalyticsNoMeta>(analyticsActionCauseList.breadcrumbResetAll, {});\n this.queryController.executeQuery();\n }\n\n /**\n * Draws the specified breadcrumb items.\n * @param breadcrumbs The breadcrumb items to draw.\n */\n public drawBreadcrumb(breadcrumbs: IBreadcrumbItem[]) {\n $$(this.element).empty();\n if (breadcrumbs.length != 0) {\n this.element.style.display = '';\n } else {\n this.element.style.display = 'none';\n }\n\n const breadcrumbItems = document.createElement('div');\n $$(breadcrumbItems).addClass('coveo-breadcrumb-items');\n this.element.appendChild(breadcrumbItems);\n each(breadcrumbs, (bcrumb: IBreadcrumbItem) => {\n const elem = bcrumb.element;\n $$(elem).addClass('coveo-breadcrumb-item');\n breadcrumbItems.appendChild(elem);\n });\n\n const clear = $$('div', {\n className: 'coveo-breadcrumb-clear-all',\n title: l('ClearAllFilters')\n }).el;\n\n new AccessibleButton()\n .withElement(clear)\n .withSelectAction(() => this.clearBreadcrumbs())\n .withOwner(this.bind)\n .withLabel(l('ClearAllFilters'))\n .build();\n\n const clearIcon = $$(\n 'div',\n {\n className: 'coveo-icon coveo-breadcrumb-clear-all-icon'\n },\n SVGIcons.icons.checkboxHookExclusionMore\n ).el;\n\n SVGDom.addClassToSVGInContainer(clearIcon, 'coveo-breadcrumb-clear-all-svg');\n\n clear.appendChild(clearIcon);\n const clearText = $$('div', undefined, l('Clear', '')).el;\n\n clear.appendChild(clearText);\n this.element.appendChild(clear);\n }\n\n private redrawBreadcrumb() {\n this.lastBreadcrumbs ? this.drawBreadcrumb(this.lastBreadcrumbs) : this.drawBreadcrumb(this.getBreadcrumbs());\n }\n\n private handleDeferredQuerySuccess() {\n this.drawBreadcrumb(this.getBreadcrumbs());\n }\n\n private handleQueryError() {\n this.drawBreadcrumb(this.getBreadcrumbs());\n }\n\n private handleAfterInitialization() {\n // We must bind to these events after the initialization to make sure the breadcrumb generation\n // is made with updated components. (E.G facet, facetrange, ...)\n this.bind.onRootElement(QueryEvents.deferredQuerySuccess, () => this.handleDeferredQuerySuccess());\n this.bind.onRootElement(QueryEvents.queryError, () => this.handleQueryError());\n }\n}\n\nInitialization.registerAutoCreateComponent(Breadcrumb);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Breadcrumb/Breadcrumb.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","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_Breadcrumb.scss\n// module id = 429\n// module chunks = 31 77"],"sourceRoot":""}