UNPKG

coveo-search-ui

Version:

Coveo JavaScript Search Framework

190 lines (181 loc) 7.11 kB
webpackJsonpCoveo__temporary([62],{ /***/ 284: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var Component_1 = __webpack_require__(7); var SettingsEvents_1 = __webpack_require__(56); var Dom_1 = __webpack_require__(1); var Strings_1 = __webpack_require__(6); var Utils_1 = __webpack_require__(4); var Initialization_1 = __webpack_require__(2); var GlobalExports_1 = __webpack_require__(3); var ExternalModulesShim_1 = __webpack_require__(26); __webpack_require__(674); var SVGIcons_1 = __webpack_require__(12); /** * The ShareQuery component populates the {@link Settings} popup menu with the **Share Query** menu item. When the end * user clicks this item, it displays a panel containing two input boxes: one containing a shareable link and the other * containing the complete current query expression. */ var ShareQuery = /** @class */ (function (_super) { __extends(ShareQuery, _super); /** * Creates a new ShareQuery component. * @param element The HTMLElement on which to instantiate the component. * @param options The options for the ShareQuery component. * @param bindings The bindings that the component requires to function normally. If not set, these will be * automatically resolved (with a slower execution time). */ function ShareQuery(element, options, bindings, ModalBox) { if (ModalBox === void 0) { ModalBox = ExternalModulesShim_1.ModalBox; } var _this = _super.call(this, element, ShareQuery.ID, bindings) || this; _this.element = element; _this.options = options; _this.ModalBox = ModalBox; _this.bind.onRootElement(SettingsEvents_1.SettingsEvents.settingsPopulateMenu, function (args) { args.menuData.push({ className: 'coveo-share-query', text: Strings_1.l('ShareQuery'), onOpen: function () { return _this.open(); }, onClose: function () { return _this.close(); }, svgIcon: SVGIcons_1.SVGIcons.icons.dropdownShareQuery, svgIconClassName: 'coveo-share-query-svg' }); }); return _this; } /** * Open the **Share Query** modal box. */ ShareQuery.prototype.open = function () { if (this.modalbox == null) { this.dialogBoxContent = this.buildContent(); this.modalbox = this.ModalBox.open(this.dialogBoxContent, { title: Strings_1.l('ShareQuery'), className: 'coveo-share-query-opened', body: this.searchInterface.options.modalContainer }); } }; /** * Close the **Share Query** modal box. */ ShareQuery.prototype.close = function () { if (this.modalbox) { this.modalbox.close(); this.modalbox = null; } }; /** * Gets the link to the current query. */ ShareQuery.prototype.getLinkToThisQuery = function () { if (!this.linkToThisQuery) { this.buildLinkToThisQuery(); } return this.linkToThisQuery.value; }; /** * Sets the link to the current query. */ ShareQuery.prototype.setLinkToThisQuery = function (link) { if (!this.linkToThisQuery) { this.buildLinkToThisQuery(); } this.linkToThisQuery.value = link; }; /** * Gets the complete query expression string */ ShareQuery.prototype.getCompleteQuery = function () { if (!this.completeQuery) { this.buildCompleteQuery(); } return this.completeQuery.value; }; /** * Set the complete query expression string. */ ShareQuery.prototype.setCompleteQuery = function (completeQuery) { if (!this.completeQuery) { this.buildCompleteQuery(); } this.completeQuery.value = completeQuery; }; ShareQuery.prototype.outputIfNotNull = function (value) { if (value) { return '(' + value + ')'; } return ''; }; ShareQuery.prototype.buildContent = function () { var content = Dom_1.$$('div', { className: 'coveo-share-query-summary-info' }).el; var boxes = Dom_1.$$('div', { className: 'coveo-share-query-summary-info-boxes' }).el; this.buildLinkToThisQuery(); this.buildCompleteQuery(); boxes.appendChild(this.buildTextBoxWithLabel(Strings_1.l('Link'), this.linkToThisQuery)); boxes.appendChild(this.buildTextBoxWithLabel(Strings_1.l('CompleteQuery'), this.completeQuery)); content.appendChild(boxes); Component_1.Component.pointElementsToDummyForm(content); return content; }; ShareQuery.prototype.buildCompleteQuery = function () { this.completeQuery = Dom_1.$$('input', { type: 'text', className: 'coveo-share-query-summary-info-input' }).el; var lastQuery = this.queryController.getLastQuery(); this.completeQuery.value = Utils_1.Utils.trim(this.outputIfNotNull(lastQuery.q) + " " + this.outputIfNotNull(lastQuery.aq) + " " + this.outputIfNotNull(lastQuery.cq)); }; ShareQuery.prototype.buildLinkToThisQuery = function () { var _this = this; this.linkToThisQuery = Dom_1.$$('input', { type: 'text', className: 'coveo-share-query-summary-info-input' }).el; Dom_1.$$(this.linkToThisQuery).on('click', function () { return _this.linkToThisQuery.select(); }); this.linkToThisQuery.value = window.location.href; }; ShareQuery.prototype.buildTextBoxWithLabel = function (label, input) { var labelElement = Dom_1.$$('span', { className: 'coveo-share-query-summary-info-label' }); labelElement.text(label); var returnDiv = Dom_1.$$('div').el; returnDiv.appendChild(labelElement.el); returnDiv.appendChild(input); return returnDiv; }; ShareQuery.ID = 'ShareQuery'; ShareQuery.options = {}; ShareQuery.doExport = function () { GlobalExports_1.exportGlobally({ ShareQuery: ShareQuery }); }; return ShareQuery; }(Component_1.Component)); exports.ShareQuery = ShareQuery; Initialization_1.Initialization.registerAutoCreateComponent(ShareQuery); /***/ }), /***/ 674: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }) }); //# sourceMappingURL=ShareQuery__65d8de8a9f769489e2ff.js.map