{"version":3,"sources":["./src/ui/ShareQuery/ShareQuery.ts","./sass/_ShareQuery.scss"],"names":[],"mappings":"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","file":"ShareQuery__d2b01b0f173a0c131e66.js","sourcesContent":["import { Component } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { SettingsEvents } from '../../events/SettingsEvents';\nimport { ISettingsPopulateMenuArgs } from '../Settings/Settings';\nimport { $$ } from '../../utils/Dom';\nimport { l } from '../../strings/Strings';\nimport { Utils } from '../../utils/Utils';\nimport { Initialization } from '../Base/Initialization';\nimport { exportGlobally } from '../../GlobalExports';\nimport { ModalBox as ModalBoxModule } from '../../ExternalModulesShim';\n\nimport 'styling/_ShareQuery';\nimport { SVGIcons } from '../../utils/SVGIcons';\n\nexport interface IShareQueryOptions {}\n\n/**\n * The ShareQuery component populates the {@link Settings} popup menu with the **Share Query** menu item. When the end\n * user clicks this item, it displays a panel containing two input boxes: one containing a shareable link and the other\n * containing the complete current query expression.\n */\nexport class ShareQuery extends Component {\n  static ID = 'ShareQuery';\n  static options: IShareQueryOptions = {};\n\n  static doExport = () => {\n    exportGlobally({\n      ShareQuery: ShareQuery\n    });\n  };\n\n  public dialogBoxContent: HTMLElement;\n  private linkToThisQuery: HTMLInputElement;\n  private completeQuery: HTMLInputElement;\n  private modalbox: Coveo.ModalBox.ModalBox;\n\n  /**\n   * Creates a new ShareQuery component.\n   * @param element The HTMLElement on which to instantiate the component.\n   * @param options The options for the ShareQuery 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: IShareQueryOptions,\n    bindings?: IComponentBindings,\n    private ModalBox = ModalBoxModule\n  ) {\n    super(element, ShareQuery.ID, bindings);\n\n    this.bind.onRootElement(SettingsEvents.settingsPopulateMenu, (args: ISettingsPopulateMenuArgs) => {\n      args.menuData.push({\n        className: 'coveo-share-query',\n        text: l('ShareQuery'),\n        onOpen: () => this.open(),\n        onClose: () => this.close(),\n        svgIcon: SVGIcons.icons.dropdownShareQuery,\n        svgIconClassName: 'coveo-share-query-svg'\n      });\n    });\n  }\n\n  /**\n   * Open the **Share Query** modal box.\n   */\n  public open() {\n    if (this.modalbox == null) {\n      this.dialogBoxContent = this.buildContent();\n      this.modalbox = this.ModalBox.open(this.dialogBoxContent, {\n        title: l('ShareQuery'),\n        className: 'coveo-share-query-opened',\n        body: this.searchInterface.options.modalContainer\n      });\n    }\n  }\n\n  /**\n   * Close the **Share Query** modal box.\n   */\n  public close() {\n    if (this.modalbox) {\n      this.modalbox.close();\n      this.modalbox = null;\n    }\n  }\n\n  /**\n   * Gets the link to the current query.\n   */\n  public getLinkToThisQuery(): string {\n    if (!this.linkToThisQuery) {\n      this.buildLinkToThisQuery();\n    }\n    return this.linkToThisQuery.value;\n  }\n\n  /**\n   * Sets the link to the current query.\n   */\n  public setLinkToThisQuery(link: string): void {\n    if (!this.linkToThisQuery) {\n      this.buildLinkToThisQuery();\n    }\n    this.linkToThisQuery.value = link;\n  }\n\n  /**\n   * Gets the complete query expression string\n   */\n  public getCompleteQuery(): string {\n    if (!this.completeQuery) {\n      this.buildCompleteQuery();\n    }\n    return this.completeQuery.value;\n  }\n\n  /**\n   * Set the complete query expression string.\n   */\n  public setCompleteQuery(completeQuery: string) {\n    if (!this.completeQuery) {\n      this.buildCompleteQuery();\n    }\n    this.completeQuery.value = completeQuery;\n  }\n\n  private outputIfNotNull(value: string): string {\n    if (value) {\n      return '(' + value + ')';\n    }\n    return '';\n  }\n\n  private buildContent(): HTMLElement {\n    const content = $$('div', {\n      className: 'coveo-share-query-summary-info'\n    }).el;\n\n    const boxes = $$('div', {\n      className: 'coveo-share-query-summary-info-boxes'\n    }).el;\n\n    this.buildLinkToThisQuery();\n    this.buildCompleteQuery();\n\n    boxes.appendChild(this.buildTextBoxWithLabel(l('Link'), this.linkToThisQuery));\n    boxes.appendChild(this.buildTextBoxWithLabel(l('CompleteQuery'), this.completeQuery));\n    content.appendChild(boxes);\n\n    Component.pointElementsToDummyForm(content);\n\n    return content;\n  }\n\n  private buildCompleteQuery() {\n    this.completeQuery = <HTMLInputElement>$$('input', {\n      type: 'text',\n      className: 'coveo-share-query-summary-info-input'\n    }).el;\n\n    const lastQuery = this.queryController.getLastQuery();\n    this.completeQuery.value = Utils.trim(\n      `${this.outputIfNotNull(lastQuery.q)} ${this.outputIfNotNull(lastQuery.aq)} ${this.outputIfNotNull(lastQuery.cq)}`\n    );\n  }\n\n  private buildLinkToThisQuery() {\n    this.linkToThisQuery = <HTMLInputElement>$$('input', {\n      type: 'text',\n      className: 'coveo-share-query-summary-info-input'\n    }).el;\n\n    $$(this.linkToThisQuery).on('click', () => this.linkToThisQuery.select());\n    this.linkToThisQuery.value = window.location.href;\n  }\n\n  private buildTextBoxWithLabel(label: string, input: HTMLInputElement): HTMLElement {\n    const labelElement = $$('span', {\n      className: 'coveo-share-query-summary-info-label'\n    });\n    labelElement.text(label);\n\n    const returnDiv = $$('div').el;\n    returnDiv.appendChild(labelElement.el);\n    returnDiv.appendChild(input);\n    return returnDiv;\n  }\n}\n\nInitialization.registerAutoCreateComponent(ShareQuery);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ShareQuery/ShareQuery.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_ShareQuery.scss\n// module id = 670\n// module chunks = 61 88"],"sourceRoot":""}