{"version":3,"sources":["./src/ui/FormWidgets/FormGroup.ts","./src/ui/ResultsPreferences/ResultsPreferences.ts","./sass/vapor/_Radio.scss","./sass/vapor/_FormGroup.scss","./sass/_ResultsPreferences.scss","./src/ui/FormWidgets/RadioButton.ts"],"names":[],"mappings":"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","file":"ResultsPreferences__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 'styling/_ResultsPreferences';\nimport * as _ from 'underscore';\nimport { PreferencesPanelEvents } from '../../events/PreferencesPanelEvents';\nimport { exportGlobally } from '../../GlobalExports';\nimport { Assert } from '../../misc/Assert';\nimport { Defer } from '../../misc/Defer';\nimport { ComponentOptionsModel } from '../../models/ComponentOptionsModel';\nimport { l } from '../../strings/Strings';\nimport { $$ } from '../../utils/Dom';\nimport { StorageUtils } from '../../utils/StorageUtils';\nimport { analyticsActionCauseList, IAnalyticsPreferencesChangeMeta } 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 { IFormWidgetSelectable } from '../FormWidgets/FormWidgets';\nimport { RadioButton } from '../FormWidgets/RadioButton';\n\nexport interface IResultsPreferencesOptions {\n  enableOpenInOutlook?: boolean;\n  enableOpenInNewWindow?: boolean;\n  enableQuerySyntax?: boolean;\n}\n\nexport interface IPossiblePreferences {\n  openInOutlook?: boolean;\n  alwaysOpenInNewWindow?: boolean;\n  enableQuerySyntax?: boolean;\n}\n\n/**\n * The ResultsPreferences component allows the end user to select preferences related to the search results. These\n * preferences are then saved in the local storage of the end user.\n *\n * This component is normally accessible through the {@link Settings} menu. Its usual location in the DOM is inside the\n * {@link PreferencesPanel} component.\n *\n * See also the {@link ResultsFiltersPreferences} component.\n */\nexport class ResultsPreferences extends Component {\n  static ID = 'ResultsPreferences';\n\n  static doExport = () => {\n    exportGlobally({\n      ResultsPreferences: ResultsPreferences\n    });\n  };\n\n  /**\n   * The options for the component\n   * @componentOptions\n   */\n  static options: IResultsPreferencesOptions = {\n    /**\n     * Specifies whether to make the option to open results in Microsoft Outlook available.\n     *\n     * Default value is `false`\n     */\n    enableOpenInOutlook: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n    /**\n     * Specifies whether to make the option to open results in a new window available.\n     *\n     * Default value is `true`\n     */\n    enableOpenInNewWindow: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n    /**\n     * Specifies whether to make the option to allow end users to turn query syntax on or off available.\n     *\n     * If query syntax is enabled, the Coveo Platform tries to interpret special query syntax (e.g.,\n     * `@objecttype=message`) when the end user types a query in the [`Querybox`]{@link Querybox} (see\n     * [Coveo Query Syntax Reference](https://docs.coveo.com/en/1552/searching-with-coveo/coveo-cloud-query-syntax)). Enabling query\n     * syntax also causes the `Querybox` to highlight any query syntax.\n     *\n     * Selecting **On** for the **Enable query syntax** setting enables query syntax, whereas selecting **Off** disables\n     * it. Selecting **Automatic** uses the `Querybox` [`enableQuerySyntax`]{@link Querybox.options.enableQuerySyntax}\n     * option value (which is `false` by default).\n     *\n     * Default value is `false`\n     */\n    enableQuerySyntax: ComponentOptions.buildBooleanOption({ defaultValue: false })\n  };\n\n  public preferences: IPossiblePreferences;\n  private preferencePanelLocalStorage: StorageUtils<IPossiblePreferences>;\n  private preferencesPanel: HTMLElement;\n  private preferencePanelCheckboxInputs: { [label: string]: Checkbox } = {};\n  private preferencePanelRadioInputs: { [label: string]: RadioButton } = {};\n\n  /**\n   * Creates a new ResultsPreference component.\n   * @param element The HTMLElement on which to instantiate the component.\n   * @param options The options for the ResultsPreferences 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: IResultsPreferencesOptions, public bindings: IComponentBindings) {\n    super(element, ResultsPreferences.ID, bindings);\n\n    this.options = ComponentOptions.initComponentOptions(element, ResultsPreferences, options);\n\n    this.preferencesPanel = $$(this.element).closest(Component.computeCssClassNameForType('PreferencesPanel'));\n    this.preferencePanelLocalStorage = new StorageUtils(ResultsPreferences.ID);\n    Assert.exists(this.componentOptionsModel);\n    Assert.exists(this.preferencesPanel);\n\n    this.preferences = this.preferencePanelLocalStorage.load() || {};\n    this.adjustPreferencesToComponentConfig();\n\n    ComponentOptions.initComponentOptions(this.element, ResultsPreferences, this.options);\n\n    this.updateComponentOptionsModel();\n\n    this.bind.on(this.preferencesPanel, PreferencesPanelEvents.savePreferences, () => this.save());\n    this.bind.on(this.preferencesPanel, PreferencesPanelEvents.exitPreferencesWithoutSave, () => this.exitWithoutSave());\n    this.buildCheckboxesInput();\n    this.buildRadiosInput();\n  }\n\n  /**\n   * Saves the current state of the ResultsPreferences component in the local storage.\n   */\n  public save() {\n    this.fromInputToPreferences();\n    this.logger.info('Saving preferences', this.preferences);\n    this.preferencePanelLocalStorage.save(this.preferences);\n    this.updateComponentOptionsModel();\n  }\n\n  public exitWithoutSave() {\n    this.fromPreferencesToCheckboxInput();\n  }\n\n  private updateComponentOptionsModel() {\n    const resultLinkOption = _.pick(this.preferences, 'openInOutlook', 'alwaysOpenInNewWindow');\n    const searchBoxOption = _.pick(this.preferences, 'enableQuerySyntax');\n    this.componentOptionsModel.set(ComponentOptionsModel.attributesEnum.resultLink, resultLinkOption);\n    this.componentOptionsModel.set(ComponentOptionsModel.attributesEnum.searchBox, searchBoxOption);\n  }\n\n  private buildRadiosInput() {\n    if (this.options.enableQuerySyntax) {\n      const createRadioButton = (label: string) => {\n        const radio = new RadioButton(\n          radioButtonInstance => {\n            this.fromPreferenceChangeEventToUsageAnalyticsLog(radioButtonInstance.isSelected() ? 'selected' : 'unselected', label);\n            this.save();\n\n            this.queryController.executeQuery({\n              closeModalBox: false\n            });\n          },\n          label,\n          'coveo-results-preferences-query-syntax'\n        );\n        return radio;\n      };\n\n      const translatedLabels = _.map(['On', 'Off', 'Automatic'], label => l(label));\n      const radios = _.map(translatedLabels, label => {\n        const radio = createRadioButton(label);\n        this.preferencePanelRadioInputs[label] = radio;\n        return radio;\n      });\n\n      const formGroup = new FormGroup(radios, l('EnableQuerySyntax'));\n      $$(this.element).append(formGroup.build());\n      this.fromPreferencesToRadioInput();\n    }\n  }\n\n  private buildCheckboxesInput() {\n    const createCheckbox = (label: string) => {\n      const checkbox = new Checkbox(checkboxInstance => {\n        this.fromPreferenceChangeEventToUsageAnalyticsLog(checkboxInstance.isSelected() ? 'selected' : 'unselected', label);\n        this.save();\n        this.queryController.executeQuery({\n          closeModalBox: false\n        });\n      }, label);\n      this.preferencePanelCheckboxInputs[label] = checkbox;\n      return checkbox;\n    };\n\n    const checkboxes: Checkbox[] = [];\n\n    if (this.options.enableOpenInOutlook) {\n      checkboxes.push(createCheckbox(l('OpenInOutlookWhenPossible')));\n    }\n    if (this.options.enableOpenInNewWindow) {\n      checkboxes.push(createCheckbox(l('AlwaysOpenInNewWindow')));\n    }\n\n    this.element.appendChild(new FormGroup(checkboxes, l('ResultLinks')).build());\n    this.fromPreferencesToCheckboxInput();\n  }\n\n  private fromInputToPreferences() {\n    this.preferences = this.preferences || {\n      openInOutlook: false,\n      alwaysOpenInNewWindow: false,\n      enableQuerySyntax: undefined\n    };\n\n    _.each(this.preferencePanelCheckboxInputs, (checkbox: Checkbox, label: string) => {\n      if (label == l('OpenInOutlookWhenPossible')) {\n        if (this.isSelected(l('OpenInOutlookWhenPossible'), label, checkbox)) {\n          this.preferences.openInOutlook = true;\n        } else if (this.preferences.openInOutlook != null) {\n          this.preferences.openInOutlook = false;\n        }\n      }\n      if (label == l('AlwaysOpenInNewWindow')) {\n        if (this.isSelected(l('AlwaysOpenInNewWindow'), label, checkbox)) {\n          this.preferences.alwaysOpenInNewWindow = true;\n        } else if (this.preferences.alwaysOpenInNewWindow != null) {\n          this.preferences.alwaysOpenInNewWindow = false;\n        }\n      }\n    });\n\n    _.each(this.preferencePanelRadioInputs, (radio: RadioButton, label: string) => {\n      if (this.isSelected(l('On'), label, radio)) {\n        this.preferences.enableQuerySyntax = true;\n      }\n      if (this.isSelected(l('Off'), label, radio)) {\n        this.preferences.enableQuerySyntax = false;\n      }\n      if (this.isSelected(l('Automatic'), label, radio)) {\n        delete this.preferences.enableQuerySyntax;\n      }\n    });\n  }\n\n  private fromPreferencesToCheckboxInput() {\n    if (this.preferences.openInOutlook) {\n      this.preferencePanelCheckboxInputs[l('OpenInOutlookWhenPossible')].select(false);\n    }\n    if (this.preferences.alwaysOpenInNewWindow) {\n      this.preferencePanelCheckboxInputs[l('AlwaysOpenInNewWindow')].select(false);\n    }\n  }\n\n  private fromPreferencesToRadioInput() {\n    if (this.preferences.enableQuerySyntax === true) {\n      this.preferencePanelRadioInputs[l('On')].select(false);\n    } else if (this.preferences.enableQuerySyntax === false) {\n      this.preferencePanelRadioInputs[l('Off')].select(false);\n    } else {\n      this.preferencePanelRadioInputs[l('Automatic')].select(false);\n    }\n  }\n\n  private fromPreferenceChangeEventToUsageAnalyticsLog(type: 'selected' | 'unselected', preference: string) {\n    this.usageAnalytics.logCustomEvent<IAnalyticsPreferencesChangeMeta>(\n      analyticsActionCauseList.preferencesChange,\n      { preferenceName: preference, preferenceType: type },\n      this.element\n    );\n    this.usageAnalytics.logSearchEvent<IAnalyticsPreferencesChangeMeta>(analyticsActionCauseList.preferencesChange, {\n      preferenceName: preference,\n      preferenceType: type\n    });\n  }\n\n  private adjustPreferencesToComponentConfig() {\n    // This method is used when there are illogical configuration between what's saved in local storage (the preferences)\n    // and how the component is configured.\n    // This can happen if an admin change the component configuration after end users have already selected a preferences.\n    // We need to adapt the saved preferences to what's actually available in the component\n    let needToSave = false;\n    if (!this.options.enableOpenInNewWindow) {\n      delete this.preferences.alwaysOpenInNewWindow;\n      needToSave = true;\n    }\n\n    if (!this.options.enableOpenInOutlook) {\n      delete this.preferences.openInOutlook;\n      needToSave = true;\n    }\n\n    if (!this.options.enableQuerySyntax) {\n      delete this.preferences.enableQuerySyntax;\n      needToSave = true;\n    }\n\n    if (needToSave) {\n      Defer.defer(() => {\n        this.save();\n      });\n    }\n  }\n\n  private isSelected(checkingFor: string, label: string, input: IFormWidgetSelectable) {\n    return checkingFor == label && input.isSelected();\n  }\n}\n\nInitialization.registerAutoCreateComponent(ResultsPreferences);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ResultsPreferences/ResultsPreferences.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/vapor/_Radio.scss\n// module id = 558\n// module chunks = 14 19 25 55 88","// 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/_ResultsPreferences.scss\n// module id = 664\n// module chunks = 25 88","import { $$ } from '../../utils/Dom';\nimport { IFormWidgetWithLabel, IFormWidgetSelectable } from './FormWidgets';\nimport 'styling/vapor/_Radio';\nimport { exportGlobally } from '../../GlobalExports';\n\n/**\n * A radio button widget with standard styling.\n */\nexport class RadioButton implements IFormWidgetWithLabel, IFormWidgetSelectable {\n  protected element: HTMLElement;\n\n  static doExport() {\n    exportGlobally({\n      RadioButton: RadioButton\n    });\n  }\n\n  /**\n   * Creates a new `RadioButton`.\n   * @param onChange The function to call when the radio button value changes. This function takes the current\n   * `RadioButton` instance as an argument.\n   * @param label The label to display next to the radio button.\n   * @param name The value to set the `input` HTMLElement `name` attribute to.\n   */\n  constructor(\n    public onChange: (radioButton: RadioButton) => void = (radioButton: RadioButton) => {},\n    public label: string,\n    public name: string,\n    private id: string = label\n  ) {\n    this.buildContent();\n  }\n\n  /**\n   * Resets the radio button.\n   */\n  public reset() {\n    const currentlySelected = this.isSelected();\n    this.getRadio().checked = false;\n    if (currentlySelected) {\n      this.onChange(this);\n    }\n  }\n\n  /**\n   * Select the radio button\n   * @param triggerChange will trigger change event if specified and the radio button is not already selected\n   */\n  public select(triggerChange = true) {\n    const currentlySelected = this.isSelected();\n    this.getRadio().checked = true;\n    if (!currentlySelected && triggerChange) {\n      this.onChange(this);\n    }\n  }\n\n  /**\n   * Gets the element on which the radio button is bound.\n   * @returns {HTMLElement} The radio button element.\n   */\n  public build(): HTMLElement {\n    return this.element;\n  }\n\n  /**\n   * Gets the element on which the radio button is bound.\n   * @returns {HTMLElement} The radio button element.\n   */\n  public getElement(): HTMLElement {\n    return this.element;\n  }\n\n  public getValue(): string {\n    return this.label;\n  }\n\n  /**\n   * Indicates whether the radio button is selected.\n   * @returns {boolean} `true` if the radio button is selected, `false` otherwise.\n   */\n  public isSelected(): boolean {\n    return this.getRadio().checked;\n  }\n\n  /**\n   * Gets the `input` element (the radio button itself).\n   * @returns {HTMLInputElement} The `input` element.\n   */\n  public getRadio(): HTMLInputElement {\n    return <HTMLInputElement>$$(this.element).find('input');\n  }\n\n  /**\n   * Gets the radio button [`label`]{@link RadioButton.label} element.\n   * @returns {HTMLLabelElement} The `label` element.\n   */\n  public getLabel(): HTMLLabelElement {\n    return <HTMLLabelElement>$$(this.element).find('label');\n  }\n\n  private buildContent() {\n    const radioOption = $$('div', { className: 'coveo-radio' });\n    const radioInput = $$('input', { type: 'radio', name: this.name, id: this.id });\n    const labelInput = $$('label', { className: 'coveo-radio-input-label', for: this.id });\n    labelInput.text(this.label);\n    radioInput.on('change', () => {\n      this.onChange(this);\n    });\n\n    radioOption.append(radioInput.el);\n    radioOption.append(labelInput.el);\n    this.element = radioOption.el;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/FormWidgets/RadioButton.ts"],"sourceRoot":""}