{"version":3,"sources":["./src/ui/FormWidgets/FormGroup.ts","./src/ui/FormWidgets/MultiSelect.ts","./src/ui/ResultsFiltersPreferences/ResultsFiltersPreferences.ts","./sass/vapor/_FormGroup.scss","./sass/vapor/_MultiSelect.scss","./sass/_ResultsFiltersPreferences.scss"],"names":[],"mappings":"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","file":"ResultsFiltersPreferences__d2b01b0f173a0c131e66.js","sourcesContent":["import { IFormWidget } from './FormWidgets';\nimport { Dom, $$ } from '../../utils/Dom';\nimport * as _ from 'underscore';\n\nimport 'styling/vapor/_FormGroup';\nimport { exportGlobally } from '../../GlobalExports';\n\n/**\n * A simple `fieldset` HTMLElement containing multiple form widgets.\n */\nexport class FormGroup {\n  private element: Dom;\n  public labelElement: Dom;\n\n  static doExport() {\n    exportGlobally({\n      FormGroup: FormGroup\n    });\n  }\n\n  /**\n   * Creates a new `FormGroup`.\n   * @param contents The form widgets to include in the form group.\n   * @param label The label to display for the form group.\n   */\n  constructor(contents: IFormWidget[], label: string) {\n    this.labelElement = $$('span', { className: 'coveo-form-group-label' });\n    this.labelElement.text(label);\n    this.element = $$('fieldset', { className: 'coveo-form-group' }, this.labelElement);\n    _.each(contents, (content: IFormWidget) => {\n      this.element.append(content.build());\n    });\n  }\n\n  /**\n   * Gets the element on which the form group is bound.\n   * @returns {HTMLElement} The form group element.\n   */\n  public build(): HTMLElement {\n    return this.element.el;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/FormWidgets/FormGroup.ts","import { IFormWidget, IFormWidgetSettable } from './FormWidgets';\nimport { $$ } from '../../utils/Dom';\nimport * as _ from 'underscore';\nimport { l } from '../../strings/Strings';\nimport 'styling/vapor/_MultiSelect';\nimport { Utils } from '../../utils/Utils';\nimport { exportGlobally } from '../../GlobalExports';\n\n/**\n * A multi select widget with standard styling.\n */\nexport class MultiSelect implements IFormWidget, IFormWidgetSettable {\n  private element: HTMLSelectElement;\n\n  static doExport() {\n    exportGlobally({\n      MultiSelect: MultiSelect\n    });\n  }\n\n  /**\n   * Creates a new `MultiSelect`.\n   * @param onChange The function to call when the widget selected values change. This function takes the current\n   * `MultiSelect` instance as an argument.\n   * @param options The values which can be selected with the multi select.\n   * @param label The label to display for the multi select.\n   */\n  constructor(\n    public onChange: (multiSelect: MultiSelect) => void = (multiSelect: MultiSelect) => {},\n    public options: string[],\n    public label: string\n  ) {\n    this.buildContent();\n  }\n\n  /**\n   * Gets the element on which the multi select is bound.\n   * @returns {HTMLSelectElement} The multi select element.\n   */\n  public build(): HTMLElement {\n    return this.element;\n  }\n\n  /**\n   * Gets the element on which the multi select is bound.\n   * @returns {HTMLSelectElement} The multi select element.\n   */\n  public getElement(): HTMLElement {\n    return this.element;\n  }\n\n  /**\n   * Gets the currently selected values.\n   * @returns {string[]} The array of selected multi select values.\n   */\n  public getValue(): string[] {\n    return _.chain(<any>this.element.options)\n      .toArray()\n      .filter((opt: HTMLOptionElement) => opt.selected)\n      .map((selected: HTMLOptionElement) => selected.value)\n      .value();\n  }\n\n  /**\n   * Gets the currently un-selected values.\n   * @returns {string[]} The array of un-selected multi select values.\n   */\n  public getUnselectedValues(): string[] {\n    return _.chain(<any>this.element.options)\n      .toArray()\n      .filter((opt: HTMLOptionElement) => !opt.selected)\n      .map((selected: HTMLOptionElement) => selected.value)\n      .value();\n  }\n\n  /**\n   * Sets the currently selected values.\n   * @param values The values to select.\n   */\n  public setValue(values: string[]) {\n    const currentlySelected = this.getValue();\n\n    const currentStateSplit = _.partition(_.toArray(this.element.options), (opt: HTMLOptionElement) =>\n      _.contains(currentlySelected, opt.value)\n    );\n    const newStateToApplySplit = _.partition(_.toArray(this.element.options), (opt: HTMLOptionElement) => _.contains(values, opt.value));\n\n    _.each(newStateToApplySplit[0], (toSelect: HTMLOptionElement) => (toSelect.selected = true));\n    _.each(newStateToApplySplit[1], (toUnSelect: HTMLOptionElement) => (toUnSelect.selected = false));\n\n    let hasChanged = false;\n    if (!Utils.arrayEqual(currentStateSplit[0], newStateToApplySplit[0], false)) {\n      hasChanged = true;\n    }\n    if (!Utils.arrayEqual(currentStateSplit[1], newStateToApplySplit[1], false)) {\n      hasChanged = true;\n    }\n\n    if (hasChanged) {\n      $$(this.element).trigger('change');\n    }\n  }\n\n  /**\n   * Resets the multi select.\n   */\n  public reset() {\n    const currentlySelected = this.getValue();\n    this.element.selectedIndex = -1;\n    if (!Utils.isEmptyArray(currentlySelected)) {\n      $$(this.element).trigger('change');\n    }\n  }\n\n  private buildContent() {\n    this.element = <HTMLSelectElement>$$('select', {\n      className: 'coveo-multi-select',\n      multiple: '',\n      size: this.options.length.toString()\n    }).el;\n    const optgroup = $$('optgroup', {\n      className: 'coveo-list-group',\n      label: this.label\n    });\n    const options = _.map(this.options, opt => {\n      return $$('option', { value: opt, className: 'coveo-list-item' }, l(opt));\n    });\n    _.each(options, opt => optgroup.append(opt.el));\n    this.element.appendChild(optgroup.el);\n    $$(this.element).on('change', () => this.onChange(this));\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/FormWidgets/MultiSelect.ts","import 'styling/_ResultsFiltersPreferences';\nimport * as _ from 'underscore';\nimport { BreadcrumbEvents, IPopulateBreadcrumbEventArgs } from '../../events/BreadcrumbEvents';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { PreferencesPanelEvents } from '../../events/PreferencesPanelEvents';\nimport { IBuildingQueryEventArgs, QueryEvents } from '../../events/QueryEvents';\nimport { exportGlobally } from '../../GlobalExports';\nimport { MODEL_EVENTS } from '../../models/Model';\nimport { QueryStateModel, QUERY_STATE_ATTRIBUTES } from '../../models/QueryStateModel';\nimport { l } from '../../strings/Strings';\nimport { AccessibleButton } from '../../utils/AccessibleButton';\nimport { $$ } from '../../utils/Dom';\nimport { LocalStorageUtils } from '../../utils/LocalStorageUtils';\nimport { SVGDom } from '../../utils/SVGDom';\nimport { SVGIcons } from '../../utils/SVGIcons';\nimport { Utils } from '../../utils/Utils';\nimport { analyticsActionCauseList, IAnalyticsCustomFiltersChangeMeta } from '../Analytics/AnalyticsActionListMeta';\nimport { Component } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { ComponentOptions } from '../Base/ComponentOptions';\nimport { Initialization } from '../Base/Initialization';\nimport { Checkbox } from '../FormWidgets/Checkbox';\nimport { FormGroup } from '../FormWidgets/FormGroup';\nimport { MultiSelect } from '../FormWidgets/MultiSelect';\nimport { TextInput } from '../FormWidgets/TextInput';\nimport { Tab } from '../Tab/Tab';\n\nexport interface IResultFilterPreference {\n  selected?: boolean;\n  custom?: boolean;\n  tab?: string[];\n  caption: string;\n  expression: string;\n}\n\nexport interface IResultsFiltersPreferencesOptions {\n  filters?: {\n    [caption: string]: { expression: string; tab?: string[] };\n  };\n  includeInBreadcrumb?: boolean;\n  showAdvancedFilters?: boolean;\n}\n\n/**\n * The `ResultFiltersPreferences` component allows end users to create custom filters to apply to queries. These filters\n * are saved to local storage.\n *\n * Only advanced end users who understand the Coveo query syntax should use this feature (see\n * [Coveo Query Syntax Reference](https://docs.coveo.com/en/1552/searching-with-coveo/coveo-cloud-query-syntax)).\n *\n * This component is normally accessible through the [`Settings`]{@link Settings} menu. Its usual location in the DOM is\n * inside the [`PreferencesPanel`]{@link PreferencesPanel} element.\n *\n * See also the {@link ResultsPreferences} component.\n */\nexport class ResultsFiltersPreferences extends Component {\n  static ID = 'ResultsFiltersPreferences';\n\n  static doExport = () => {\n    exportGlobally({\n      ResultsFiltersPreferences: ResultsFiltersPreferences\n    });\n  };\n\n  /**\n   * The options for the component\n   * @componentOptions\n   */\n  static options: IResultsFiltersPreferencesOptions = {\n    /**\n     * Specifies whether to display the active filter(s) in the [`Breadcrumb`]{@link Breadcrumb}.\n     *\n     * Default value is `true`.\n     */\n    includeInBreadcrumb: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n\n    /**\n     * Specifies whether to show the **Create** button that allows the end user to create filters.\n     *\n     * If you set this option to `false`, only the pre-populated\n     * [`filters`]{@link ResultsFiltersPreferences.options.filters} are available to the end user.\n     *\n     * Default value is `true`.\n     */\n    showAdvancedFilters: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n\n    /**\n     * Specifies the default filters which all end users can apply.\n     *\n     * End users cannot modify or delete these filters. These filters do not count as \"user-made\" filters, but rather as\n     * \"built-in\" filters created by the developer of the search page.\n     *\n     * **Note:**\n     * > You cannot set this option directly in the component markup as an HTML attribute. You must either set it in the\n     * > [`init`]{@link init} call of your search interface (see\n     * > [Passing Component Options in the init Call](https://docs.coveo.com/en/346/#passing-component-options-in-the-init-call)),\n     * > or before the `init` call, using the `options` top-level function (see\n     * > [Passing Component Options Before the init Call](https://docs.coveo.com/en/346/#passing-component-options-before-the-init-call)).\n     *\n     * Filters should follow this definition:\n     *\n     * `filters : { [caption : string] : { expression : string, tab? : string[] } }`;\n     *\n     * **Example:**\n     *\n     * var myFilters = {\n     *   \"Only Google Drive Items\" : {\n     *     expression : \"@connectortype == 'GoogleDriveCrawler'\",\n     *     tab : [\"Tab1\", \"Tab2\"]\n     *   },\n     *\n     *   \"Another Filter\" : {\n     *     expression : [ ... another expression ... ]\n     *   },\n     *\n     *   [ ... ]\n     * };\n     *\n     * ```javascript\n     * // You can set the option in the 'init' call:\n     * Coveo.init(document.querySelector(\"#search\"), {\n     *   ResultsFiltersPreferences : {\n     *     filters : myFilters\n     *   }\n     * });\n     *\n     * // Or before the 'init' call, using the 'options' top-level function:\n     * // Coveo.options(document.querySelector(\"#search\"), {\n     * //   ResultsFiltersPreferences : {\n     *        filters : myFilters\n     *      }\n     * // });\n     * ```\n     *\n     * Default value is `undefined`.\n     */\n    filters: <any>ComponentOptions.buildJsonOption()\n  };\n\n  public preferences: { [caption: string]: IResultFilterPreference };\n  public container: HTMLFieldSetElement;\n  private preferencePanelLocalStorage: LocalStorageUtils<{ [caption: string]: IResultFilterPreference }>;\n  private preferencePanel: HTMLElement;\n  private preferenceContainer: HTMLElement;\n  private preferencePanelCheckboxInput: { [caption: string]: Checkbox } = {};\n  private advancedFilters: HTMLElement;\n  private advancedFiltersBuilder: HTMLElement;\n  private advancedFiltersTextInputCaption: TextInput;\n  private advancedFiltersTextInputExpression: TextInput;\n  private advancedFiltersTabSelect: MultiSelect;\n  private advancedFilterFormValidate: HTMLFormElement;\n  private isFullBreadcrumbClear: boolean;\n\n  /**\n   * Creates a new `ResultsFiltersPreferences` component.\n   * @param element The HTMLElement on which to instantiate the component.\n   * @param options The options for the `ResultsFiltersPreferences` 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: IResultsFiltersPreferencesOptions, public bindings: IComponentBindings) {\n    super(element, ResultsFiltersPreferences.ID, bindings);\n\n    this.options = ComponentOptions.initComponentOptions(element, ResultsFiltersPreferences, options);\n\n    this.preferencePanel = $$(this.element).closest(Component.computeCssClassNameForType('PreferencesPanel'));\n    if (!this.preferencePanel) {\n      this.logger.warn(`Cannot instantiate ResultsFilterPreferences, as there is no \"CoveoPreferencesPanel\" in your page !`);\n      return;\n    }\n    this.preferencePanelLocalStorage = new LocalStorageUtils<{ [caption: string]: IResultFilterPreference }>(ResultsFiltersPreferences.ID);\n    this.mergeLocalPreferencesWithStaticPreferences();\n\n    this.bindPreferencePanelEvent();\n    this.bindBreadcrumbEvent();\n    this.bindQueryEvent();\n\n    // We need to wait after all components are initialized before building the dom, because this component interacts with Tab\n    // And we don't know if Tab(s) are initialized before or after this component.\n    this.bind.oneRootElement(InitializationEvents.afterComponentsInitialization, () => this.createDom());\n\n    this.bind.oneQueryState(MODEL_EVENTS.CHANGE_ONE, QUERY_STATE_ATTRIBUTES.T, () => this.fromPreferencesToCheckboxInput());\n  }\n\n  public createDom() {\n    this.container = <HTMLFieldSetElement>new FormGroup([], l('ResultsFilteringExpression')).build();\n    this.element.appendChild(this.container);\n    this.buildCheckboxesInput();\n    if (this.options.showAdvancedFilters) {\n      this.buildAdvancedFilters();\n    }\n  }\n\n  public save() {\n    this.fromCheckboxInputToPreferences();\n    const toSave = _.omit(this.preferences, 'tab');\n    this.logger.info('Saving preferences', toSave);\n    this.preferencePanelLocalStorage.save(toSave);\n  }\n\n  public exitWithoutSave() {\n    this.fromPreferencesToCheckboxInput();\n    this.hideAdvancedFilterBuilder();\n  }\n\n  private bindPreferencePanelEvent() {\n    this.bind.on(this.preferencePanel, PreferencesPanelEvents.savePreferences, () => this.save());\n    this.bind.on(this.preferencePanel, PreferencesPanelEvents.exitPreferencesWithoutSave, () => this.exitWithoutSave());\n  }\n\n  private bindBreadcrumbEvent() {\n    if (this.options.includeInBreadcrumb) {\n      this.bind.onRootElement(BreadcrumbEvents.populateBreadcrumb, (args: IPopulateBreadcrumbEventArgs) =>\n        this.handlePopulateBreadcrumb(args)\n      );\n      this.bind.onRootElement(BreadcrumbEvents.clearBreadcrumb, () => this.handleClearBreadcrumb());\n    }\n  }\n\n  private bindQueryEvent() {\n    this.bind.onRootElement(QueryEvents.buildingQuery, (args: IBuildingQueryEventArgs) => this.handleBuildingQuery(args));\n  }\n\n  private handleBuildingQuery(args: IBuildingQueryEventArgs) {\n    _.each(this.getActiveFilters(), filter => {\n      if (Utils.isNonEmptyString(filter.expression)) {\n        args.queryBuilder.advancedExpression.add(filter.expression);\n      }\n    });\n  }\n\n  private handlePopulateBreadcrumb(args: IPopulateBreadcrumbEventArgs) {\n    const actives = this.getActiveFilters();\n    if (Utils.isNonEmptyArray(actives)) {\n      const container = $$('div', { className: 'coveo-results-filter-preferences-breadcrumb' });\n      const title = $$('span', { className: 'coveo-title' });\n      title.text(l('FiltersInYourPreferences') + ':');\n      container.el.appendChild(title.el);\n\n      const valuesContainer = $$('span', { className: 'coveo-values' });\n      container.el.appendChild(valuesContainer.el);\n\n      for (var i = 0; i < actives.length; i++) {\n        valuesContainer.el.appendChild(this.buildBreadcrumb(actives[i]));\n      }\n      args.breadcrumbs.push({ element: container.el });\n    }\n  }\n\n  private handleClearBreadcrumb() {\n    this.isFullBreadcrumbClear = true;\n    _.each(this.getActiveFilters(), filter => {\n      filter.selected = false;\n    });\n    this.fromPreferencesToCheckboxInput();\n    this.isFullBreadcrumbClear = false;\n  }\n\n  private buildAdvancedFilters() {\n    this.advancedFilters = $$('div', { className: 'coveo-advanced-filters' }, l('Create')).el;\n    new AccessibleButton()\n      .withElement(this.advancedFilters)\n      .withoutLabelOrTitle()\n      .withSelectAction(() => this.openAdvancedFilterSectionOrSaveFilters())\n      .build();\n\n    this.buildAdvancedFilterInput();\n    this.buildAdvancedFilterFormValidate();\n    this.advancedFiltersBuilder = $$('div', { className: 'coveo-advanced-filters-builder' }).el;\n    this.advancedFiltersBuilder.appendChild(this.advancedFilterFormValidate);\n    const onlineHelp = $$(\n      'a',\n      {\n        href: 'https://docs.coveo.com/en/2053/index-content/inspect-items-with-the-content-browser#result-filtering-expressions',\n        className: 'coveo-online-help'\n      },\n      '?'\n    );\n\n    const title = $$(this.container).find('.coveo-form-group-label');\n\n    onlineHelp.insertAfter(title);\n    $$(this.advancedFilters).insertAfter(title);\n    this.container.appendChild(this.advancedFiltersBuilder);\n  }\n\n  private buildAdvancedFilterInput() {\n    this.advancedFiltersTextInputCaption = new TextInput(() => {}, l('Caption'));\n\n    this.advancedFiltersTextInputCaption.getInput().setAttribute('required', '');\n\n    this.advancedFiltersTextInputExpression = new TextInput(() => {}, l('Expression'));\n\n    this.advancedFiltersTextInputExpression.getInput().setAttribute('required', '');\n\n    this.advancedFiltersTabSelect = new MultiSelect(() => {}, this.getAllTabs(), l('Tab'));\n  }\n\n  private buildAdvancedFilterFormValidate() {\n    this.advancedFilterFormValidate = <HTMLFormElement>$$('form').el;\n\n    const formSubmit = $$('input', {\n      type: 'submit'\n    });\n\n    const saveFormButton = $$(\n      'span',\n      {\n        className: 'coveo-save'\n      },\n      SVGIcons.icons.save\n    );\n    SVGDom.addClassToSVGInContainer(saveFormButton.el, 'coveo-save-svg');\n    new AccessibleButton()\n      .withElement(saveFormButton.el)\n      .withLabel(l('Save'))\n      .withSelectAction(() => formSubmit.el.click())\n      .build();\n\n    const closeFormButton = $$(\n      'span',\n      {\n        className: 'coveo-close'\n      },\n      SVGIcons.icons.close\n    );\n    SVGDom.addClassToSVGInContainer(closeFormButton.el, 'coveo-close-svg');\n    new AccessibleButton()\n      .withElement(closeFormButton.el)\n      .withLabel(l('Close'))\n      .withSelectAction(() => this.hideAdvancedFilterBuilder())\n      .build();\n\n    const saveAndCloseContainer = $$('div', {\n      className: 'coveo-choice-container coveo-close-and-save'\n    });\n\n    saveAndCloseContainer.el.appendChild(saveFormButton.el);\n    saveAndCloseContainer.el.appendChild(closeFormButton.el);\n\n    const inputCaption = this.advancedFiltersTextInputCaption.build();\n    $$(inputCaption).addClass('coveo-caption');\n\n    const filtersTabSelect = this.advancedFiltersTabSelect.build();\n    $$(filtersTabSelect).addClass('coveo-tab');\n\n    const filtersExpression = this.advancedFiltersTextInputExpression.build();\n    $$(filtersExpression).addClass('coveo-expression');\n\n    _.each([inputCaption, filtersExpression, filtersTabSelect, saveAndCloseContainer.el, formSubmit.el], (el: HTMLElement) => {\n      this.advancedFilterFormValidate.appendChild(el);\n    });\n\n    $$(this.advancedFilterFormValidate).on('submit', (e: Event) => this.validateAndSaveAdvancedFilter(e));\n  }\n\n  private getAllTabs() {\n    const tabRef = Component.getComponentRef('Tab');\n    if (tabRef) {\n      const tabsElement = $$(this.root).findAll('.' + Component.computeCssClassName(tabRef));\n      return _.map(tabsElement, (tabElement: HTMLElement) => {\n        let tab = <Tab>Component.get(tabElement);\n        return tab.options.id;\n      });\n    } else {\n      return [];\n    }\n  }\n\n  private getPreferencesBoxInputToBuild() {\n    return _.map(this.preferences, (filter: IResultFilterPreference) => {\n      return {\n        label: filter.caption,\n        tab: filter.tab,\n        expression: filter.expression\n      };\n    });\n  }\n\n  private buildCheckboxesInput() {\n    if (this.preferenceContainer != undefined) {\n      this.preferenceContainer.remove();\n    }\n    const toBuild = this.getPreferencesBoxInputToBuild();\n    if (Utils.isNonEmptyArray(toBuild)) {\n      this.preferenceContainer = $$('div', {\n        className: 'coveo-choices-container'\n      }).el;\n\n      _.each(toBuild, filterToBuild => {\n        const checkbox = new Checkbox((checkbox: Checkbox) => {\n          this.save();\n          const filter = this.preferences[checkbox.getValue()];\n\n          if (!this.queryController.firstQuery && !this.isFullBreadcrumbClear) {\n            this.fromFilterToAnalyticsEvent(filter, filter.selected ? 'selected' : 'unselected');\n            this.queryController.executeQuery({\n              closeModalBox: false\n            });\n          }\n        }, filterToBuild.label);\n        $$(checkbox.build()).addClass('coveo-choice-container');\n        this.preferencePanelCheckboxInput[filterToBuild.label] = checkbox;\n        this.preferenceContainer.appendChild(checkbox.getElement());\n      });\n\n      _.each($$(this.preferenceContainer).findAll('.coveo-choice-container'), (choiceContainer: HTMLElement) => {\n        choiceContainer.appendChild($$('div', { className: 'coveo-section coveo-section-edit-delete' }).el);\n      });\n\n      $$(this.container).append(this.preferenceContainer);\n      this.buildEditAdvancedFilter();\n      this.buildDeleteAdvancedFilter();\n      this.fromPreferencesToCheckboxInput();\n    }\n  }\n\n  private buildDeleteAdvancedFilter() {\n    _.each(this.preferences, filter => {\n      if (filter.custom) {\n        const deleteElement = $$(\n          'span',\n          {\n            className: 'coveo-delete'\n          },\n          SVGIcons.icons.delete\n        ).el;\n        new AccessibleButton()\n          .withElement(deleteElement)\n          .withLabel(l('Delete'))\n          .withSelectAction(() => this.confirmDelete(filter, filterElement))\n          .build();\n        SVGDom.addClassToSVGInContainer(deleteElement, 'coveo-delete-svg');\n        const filterElement = this.getFilterElementByCaption(filter.caption);\n        const insertInto = $$(filterElement).find('.coveo-section-edit-delete');\n        insertInto.appendChild(deleteElement);\n      }\n    });\n  }\n\n  private buildEditAdvancedFilter() {\n    _.each(this.preferences, filter => {\n      if (filter.custom) {\n        const editElement = $$(\n          'span',\n          {\n            className: 'coveo-edit'\n          },\n          SVGIcons.icons.edit\n        );\n        new AccessibleButton()\n          .withElement(editElement)\n          .withLabel(l('Edit'))\n          .withSelectAction(() => this.editElement(filter, filterElement))\n          .build();\n        SVGDom.addClassToSVGInContainer(editElement.el, 'coveo-edit-svg');\n        const filterElement = this.getFilterElementByCaption(filter.caption);\n        const insertInto = $$(filterElement).find('.coveo-section-edit-delete');\n        insertInto.appendChild(editElement.el);\n      }\n    });\n  }\n\n  private buildBreadcrumb(filter: IResultFilterPreference): HTMLElement {\n    const elem = $$('span', { className: 'coveo-value' });\n\n    const caption = $$('span', { className: 'coveo-caption' });\n    caption.text(filter.caption);\n    elem.el.appendChild(caption.el);\n\n    const clear = $$('span', { className: 'coveo-clear' }, SVGIcons.icons.mainClear);\n    elem.el.appendChild(clear.el);\n\n    const onSelectAction = () => {\n      filter.selected = false;\n      this.fromFilterToAnalyticsEvent(filter, 'cleared from breadcrumb');\n      this.fromPreferencesToCheckboxInput();\n    };\n\n    new AccessibleButton().withElement(elem).withLabel(l('RemoveFilterOn', filter.caption)).withSelectAction(onSelectAction).build();\n\n    return elem.el;\n  }\n\n  private confirmDelete(filter: IResultFilterPreference, filterElement: HTMLElement) {\n    if (confirm(l('AreYouSureDeleteFilter', filter.caption, filter.expression))) {\n      const isSelected = filter.selected;\n      this.deleteFilterPreference(filter, filterElement);\n      if (isSelected) {\n        this.fromFilterToAnalyticsEvent(filter, 'deleted');\n        this.queryController.executeQuery({\n          closeModalBox: false\n        });\n      }\n    }\n  }\n\n  private editElement(filter: IResultFilterPreference, filterElement: HTMLElement) {\n    const oldCaption = this.preferences[filter.caption].caption;\n    const oldTab = this.preferences[filter.caption].tab;\n    const oldExpression = this.preferences[filter.caption].expression;\n    this.deleteFilterPreference(filter, filterElement);\n    this.openAdvancedFilterSectionOrSaveFilters();\n    this.populateEditSection({ tab: oldTab, caption: oldCaption, expression: oldExpression });\n  }\n\n  private populateEditSection(toPopulate = { tab: [''], caption: '', expression: '' }) {\n    this.advancedFiltersTextInputCaption.setValue(toPopulate.caption);\n    this.advancedFiltersTextInputExpression.setValue(toPopulate.expression);\n    this.advancedFiltersTabSelect.setValue(toPopulate.tab);\n  }\n\n  private deleteFilterPreference(filter: IResultFilterPreference, filterElement: HTMLElement) {\n    this.preferencePanelLocalStorage.remove(filter.caption);\n    delete this.preferences[filter.caption];\n    $$($$(filterElement).closest('.coveo-choice-container')).detach();\n  }\n\n  private openAdvancedFilterSectionOrSaveFilters() {\n    if ($$(this.advancedFiltersBuilder).hasClass('coveo-active')) {\n      $$($$(this.advancedFilterFormValidate).find('input[type=submit]')).trigger('click');\n      this.hideAdvancedFilterBuilder();\n    } else {\n      this.populateEditSection();\n      this.showAdvancedFilterBuilder();\n    }\n  }\n\n  private validateAndSaveAdvancedFilter(e: Event) {\n    e.preventDefault();\n    this.hideAdvancedFilterBuilder();\n    const caption = this.advancedFiltersTextInputCaption.getValue();\n    const expression = this.advancedFiltersTextInputExpression.getValue();\n    const tabs = this.advancedFiltersTabSelect.getValue();\n    this.preferences[caption] = {\n      caption: caption,\n      custom: true,\n      expression: expression,\n      tab: tabs,\n      selected: true\n    };\n    this.buildCheckboxesInput();\n    this.save();\n    this.queryStateModel.set(QueryStateModel.attributesEnum.t, this.getActiveTab());\n    this.advancedFiltersTextInputCaption.reset();\n    this.advancedFiltersTextInputExpression.reset();\n    this.advancedFiltersTabSelect.reset();\n    this.container.appendChild(this.advancedFiltersBuilder);\n    this.fromFilterToAnalyticsEvent(this.preferences[caption], 'saved');\n    this.queryController.executeQuery({\n      closeModalBox: false\n    });\n  }\n\n  private fromPreferencesToCheckboxInput() {\n    _.each(this.getActiveFilters(), (filter: IResultFilterPreference) => {\n      this.preferencePanelCheckboxInput[filter.caption].select();\n    });\n    _.each(this.getInactiveFilters(), (filter: IResultFilterPreference) => {\n      this.preferencePanelCheckboxInput[filter.caption].reset();\n    });\n    _.each(this.getDormantFilters(), (filter: IResultFilterPreference) => {\n      this.preferencePanelCheckboxInput[filter.caption].select();\n    });\n  }\n\n  private fromCheckboxInputToPreferences() {\n    if (this.preferencePanelCheckboxInput) {\n      const selecteds = _.map(\n        _.filter(this.preferencePanelCheckboxInput, (checkbox: Checkbox) => checkbox.isSelected()),\n        (selected: Checkbox) => selected.getValue()\n      );\n      _.each(this.preferences, (filter: IResultFilterPreference) => {\n        if (_.contains(selecteds, filter.caption)) {\n          filter.selected = true;\n        } else {\n          filter.selected = false;\n        }\n      });\n    }\n  }\n\n  private getDormantFilters() {\n    const activeTab = this.getActiveTab();\n    return _.filter(this.preferences, (filter: IResultFilterPreference) => {\n      return filter.selected && !this.filterIsInActiveTab(filter, activeTab);\n    });\n  }\n\n  private getActiveFilters() {\n    const activeTab = this.getActiveTab();\n    return _.filter(this.preferences, (filter: IResultFilterPreference) => {\n      return filter.selected && this.filterIsInActiveTab(filter, activeTab);\n    });\n  }\n\n  private getInactiveFilters() {\n    const activeTab = this.getActiveTab();\n    return _.filter(this.preferences, (filter: IResultFilterPreference) => {\n      return !filter.selected || !this.filterIsInActiveTab(filter, activeTab);\n    });\n  }\n\n  private getActiveTab() {\n    return this.queryStateModel.get(QueryStateModel.attributesEnum.t);\n  }\n\n  private filterIsInActiveTab(filter: IResultFilterPreference, tab: string) {\n    filter.tab = _.compact(filter.tab);\n    return _.contains(filter.tab, tab) || Utils.isEmptyArray(filter.tab);\n  }\n\n  private getFilterElementByCaption(caption: string): HTMLElement {\n    return $$(this.preferenceContainer).find(\"input[value='\" + caption.replace(/'/g, \"\\\\'\") + \"']\").parentElement;\n  }\n\n  private fromResultsFilterOptionToResultsPreferenceInterface() {\n    const ret: { [key: string]: IResultFilterPreference } = {};\n    _.each(<any>this.options.filters, (filter: { expression: string; tab?: string[]; selected?: boolean }, caption: string) => {\n      ret[caption] = {\n        expression: filter.expression,\n        tab: filter.tab,\n        selected: filter.selected ? filter.selected : false,\n        custom: false,\n        caption: caption\n      };\n    });\n    return ret;\n  }\n\n  private mergeLocalPreferencesWithStaticPreferences() {\n    const staticPreferences = this.fromResultsFilterOptionToResultsPreferenceInterface();\n    const localPreferences = this.preferencePanelLocalStorage.load();\n    const localPreferencesWithoutRemoved = _.filter<IResultFilterPreference>(localPreferences, preference => {\n      const isCustom = preference.custom;\n      const existsInStatic = _.find<IResultFilterPreference>(staticPreferences, staticPreference => {\n        return staticPreference.caption == preference.caption;\n      });\n      return isCustom || existsInStatic != undefined;\n    });\n\n    const localToMerge = {};\n    _.each(localPreferencesWithoutRemoved, (filter: IResultFilterPreference) => {\n      localToMerge[filter.caption] = {\n        expression: filter.expression,\n        tab: filter.tab,\n        selected: filter.selected,\n        custom: filter.custom,\n        caption: filter.caption\n      };\n    });\n    this.preferences = <{ [caption: string]: IResultFilterPreference }>Utils.extendDeep(staticPreferences, localToMerge);\n  }\n\n  private fromFilterToAnalyticsEvent(filter: IResultFilterPreference, type: string) {\n    this.usageAnalytics.logSearchEvent<IAnalyticsCustomFiltersChangeMeta>(analyticsActionCauseList.customfiltersChange, {\n      customFilterName: filter.caption,\n      customFilterExpression: filter.expression,\n      customFilterType: type\n    });\n  }\n\n  private enlargeModalBox() {\n    const modalBoxContainer = $$(document.body).find('.coveo-modal-container');\n    if (modalBoxContainer) {\n      $$(modalBoxContainer).addClass('coveo-mod-big');\n    }\n  }\n\n  private shrinkModalBox() {\n    const modalBoxContainer = $$(document.body).find('.coveo-modal-container');\n    if (modalBoxContainer) {\n      $$(modalBoxContainer).removeClass('coveo-mod-big');\n    }\n  }\n\n  private showAdvancedFilterBuilder() {\n    if (this.advancedFiltersBuilder) {\n      $$(this.advancedFiltersBuilder).addClass('coveo-active');\n      this.enlargeModalBox();\n    }\n  }\n\n  private hideAdvancedFilterBuilder() {\n    if (this.advancedFiltersBuilder) {\n      $$(this.advancedFiltersBuilder).removeClass('coveo-active');\n      this.shrinkModalBox();\n    }\n  }\n}\n\nInitialization.registerAutoCreateComponent(ResultsFiltersPreferences);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ResultsFiltersPreferences/ResultsFiltersPreferences.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/vapor/_FormGroup.scss\n// module id = 564\n// module chunks = 25 26 57 88","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/vapor/_MultiSelect.scss\n// module id = 576\n// module chunks = 26 56 88","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_ResultsFiltersPreferences.scss\n// module id = 662\n// module chunks = 26 88"],"sourceRoot":""}