coveo-search-ui
Version:
Coveo JavaScript Search Framework
99 lines (93 loc) • 4.45 kB
JavaScript
webpackJsonpCoveo__temporary([85],{
/***/ 297:
/***/ (function(module, exports, __webpack_require__) {
;
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 ComponentOptions_1 = __webpack_require__(8);
var QueryEvents_1 = __webpack_require__(11);
var AnalyticsEvents_1 = __webpack_require__(58);
var Initialization_1 = __webpack_require__(2);
var GlobalExports_1 = __webpack_require__(3);
var OmniboxEvents_1 = __webpack_require__(34);
/**
* This component exposes options to handle commerce-related queries.
*
* @availablesince [March 2020 Release (v2.8521)](https://docs.coveo.com/en/3203/)
*/
var CommerceQuery = /** @class */ (function (_super) {
__extends(CommerceQuery, _super);
/**
* Creates a new CommerceQuery component.
* @param element The HTMLElement on which to instantiate the component.
* @param options The options for the CommerceQuery 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 CommerceQuery(element, options, bindings) {
var _this = _super.call(this, element, CommerceQuery.ID, bindings) || this;
_this.element = element;
_this.options = options;
_this.bindings = bindings;
_this.options = ComponentOptions_1.ComponentOptions.initComponentOptions(element, CommerceQuery, options);
_this.bind.onRootElement(QueryEvents_1.QueryEvents.doneBuildingQuery, _this.handleDoneBuildingQuery);
_this.bind.onRootElement(OmniboxEvents_1.OmniboxEvents.buildingQuerySuggest, _this.handleBuildingQuerySuggest);
_this.bind.onRootElement(AnalyticsEvents_1.AnalyticsEvents.changeAnalyticsCustomData, _this.handleChangeAnalytics);
return _this;
}
CommerceQuery.prototype.handleDoneBuildingQuery = function (event) {
if (this.options.listing) {
event.queryBuilder.tab = this.options.listing;
event.queryBuilder.addContextValue('listing', this.options.listing);
}
};
CommerceQuery.prototype.handleBuildingQuerySuggest = function (event) {
if (this.options.listing) {
event.payload.tab = this.options.listing;
(event.payload.context || (event.payload.context = {})).listing = this.options.listing;
}
};
CommerceQuery.prototype.handleChangeAnalytics = function (event) {
if (this.options.listing) {
event.originLevel2 = this.options.listing;
}
};
CommerceQuery.ID = 'CommerceQuery';
CommerceQuery.doExport = function () {
GlobalExports_1.exportGlobally({
CommerceQuery: CommerceQuery
});
};
/**
* The options for the CommerceQuery.
* @componentOptions
*/
CommerceQuery.options = {
/**
* The listing page identifier.
*
* In a typical Coveo for Commerce solution, all listing pages should share the same `searchHub`/`originLevel1` and be differentiated by setting this option to a unique, human-readable value.
*
* When specified, this option sets the `tab`/`originLevel2` parameter, as well as the `listing` property of the `context`/`customData` object of each query/usage analytics event originating from the listing page. This allows Coveo ML to provide relevant output for the listing page, and can also be useful for usage analytics reporting purposes.
*
* @examples ACME Furniture, ACME Jewelry, ACME Clothes
*/
listing: ComponentOptions_1.ComponentOptions.buildStringOption()
};
return CommerceQuery;
}(Component_1.Component));
exports.CommerceQuery = CommerceQuery;
Initialization_1.Initialization.registerAutoCreateComponent(CommerceQuery);
/***/ })
});
//# sourceMappingURL=CommerceQuery__65d8de8a9f769489e2ff.js.map