@searchspring/snap-controller 0.67.5 → 0.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAA6C,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9I,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAsF3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
@@ -120,10 +120,10 @@ var AutocompleteController = /** @class */ (function (_super) {
120
120
  return;
121
121
  }
122
122
  var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
123
+ _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
123
124
  _this.tracker.events.autocomplete.clickThrough({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
124
125
  _this.events.product[result.id] = _this.events.product[result.id] || {};
125
126
  _this.events.product[result.id].clickThrough = true;
126
- _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
127
127
  },
128
128
  click: function (e, result) {
129
129
  var _a;
@@ -145,33 +145,33 @@ var AutocompleteController = /** @class */ (function (_super) {
145
145
  if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.render)
146
146
  return;
147
147
  var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: result ? [result] : [] });
148
+ _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
148
149
  _this.tracker.events.autocomplete.render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
149
150
  _this.events.product[result.id] = _this.events.product[result.id] || {};
150
151
  _this.events.product[result.id].render = true;
151
- _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
152
152
  },
153
153
  impression: function (result) {
154
154
  var _a, _b, _c;
155
155
  if (((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression) || !((_b = _this.events.product[result.id]) === null || _b === void 0 ? void 0 : _b.render))
156
156
  return;
157
157
  var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
158
+ _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
158
159
  _this.tracker.events.autocomplete.impression({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
159
160
  _this.events.product[result.id] = _this.events.product[result.id] || {};
160
161
  _this.events.product[result.id].impression = true;
161
- _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
162
162
  },
163
163
  addToCart: function (result) {
164
164
  var _a;
165
165
  var data = getAutocompleteAddtocartSchemaData({ params: _this.params, store: _this.store, results: [result] });
166
- _this.tracker.events.autocomplete.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
167
166
  _this.eventManager.fire('track.product.addToCart', { controller: _this, product: result, trackEvent: data });
167
+ _this.tracker.events.autocomplete.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
168
168
  },
169
169
  },
170
170
  redirect: function (redirectURL) {
171
171
  var _a;
172
172
  var data = getAutocompleteRedirectSchemaData({ redirectURL: redirectURL });
173
- _this.tracker.events.autocomplete.redirect({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
174
173
  _this.eventManager.fire('track.redirect', { controller: _this, redirectURL: redirectURL, trackEvent: data });
174
+ _this.tracker.events.autocomplete.redirect({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
175
175
  },
176
176
  };
177
177
  _this.handlers = {
@@ -627,7 +627,7 @@ var AutocompleteController = /** @class */ (function (_super) {
627
627
  key: "ss-controller-".concat(_this.config.id),
628
628
  });
629
629
  _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
630
- var controller, products, results, data_1;
630
+ var controller, products, data;
631
631
  var _this = this;
632
632
  var _a;
633
633
  return __generator(this, function (_b) {
@@ -638,16 +638,18 @@ var AutocompleteController = /** @class */ (function (_super) {
638
638
  controller = search.controller;
639
639
  if (controller.store.loaded && !controller.store.error) {
640
640
  products = controller.store.results.filter(function (result) { return result.type === 'product'; });
641
- results = products.length === 0 ? [] : products;
642
- data_1 = getAutocompleteSchemaData({ params: search.request, store: this.store, results: results });
643
- if (!search.response._cached) {
644
- this.tracker.events.autocomplete.render({ data: data_1, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
641
+ if (products.length === 0 && !search.response._cached) {
642
+ data = getAutocompleteSchemaData({ params: search.request, store: this.store });
643
+ this.eventManager.fire('track.product.render', { controller: this, trackEvent: data });
644
+ this.tracker.events.autocomplete.render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
645
645
  }
646
646
  products.forEach(function (result) {
647
- _this.events.product[result.id] = _this.events.product[result.id] || {};
648
- _this.events.product[result.id].render = true;
649
647
  if (!search.response._cached) {
650
- _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data_1 });
648
+ _this.track.product.render(result);
649
+ }
650
+ else {
651
+ _this.events.product[result.id] = _this.events.product[result.id] || {};
652
+ _this.events.product[result.id].render = true;
651
653
  }
652
654
  });
653
655
  }
@@ -657,13 +659,14 @@ var AutocompleteController = /** @class */ (function (_super) {
657
659
  }); });
658
660
  // add 'afterSearch' middleware
659
661
  _this.eventManager.on('afterSearch', function (ac, next) { return __awaiter(_this, void 0, void 0, function () {
660
- return __generator(this, function (_a) {
661
- switch (_a.label) {
662
+ var _a;
663
+ return __generator(this, function (_b) {
664
+ switch (_b.label) {
662
665
  case 0: return [4 /*yield*/, next()];
663
666
  case 1:
664
- _a.sent();
667
+ _b.sent();
665
668
  // cancel search if no input or query doesn't match current urlState
666
- if (ac.response.autocomplete.query != ac.controller.urlManager.state.query) {
669
+ if (((_a = ac.response.autocomplete) === null || _a === void 0 ? void 0 : _a.query) != ac.controller.urlManager.state.query) {
667
670
  return [2 /*return*/, false];
668
671
  }
669
672
  return [2 /*return*/];
@@ -1 +1 @@
1
- {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAkB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB7G,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA+B3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAkB5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoI9B;CACF"}
1
+ {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAwB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBnH,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA+B3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAkB5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoI9B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AAIpH,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;CACF,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA4D3B,KAAK,EAAE,0BAA0B,CAuD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
1
+ {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AAIpH,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;CACF,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAgE3B,KAAK,EAAE,0BAA0B,CAuD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
@@ -96,10 +96,10 @@ var RecommendationController = /** @class */ (function (_super) {
96
96
  if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.clickThrough)
97
97
  return;
98
98
  var data = getRecommendationsSchemaData({ store: _this.store, results: [result] });
99
+ _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
99
100
  _this.tracker.events.recommendations.clickThrough({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
100
101
  _this.events.product[result.id] = _this.events.product[result.id] || {};
101
102
  _this.events.product[result.id].clickThrough = true;
102
- _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
103
103
  },
104
104
  click: function (e, result) {
105
105
  var _a;
@@ -121,10 +121,10 @@ var RecommendationController = /** @class */ (function (_super) {
121
121
  if (((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression) || !((_b = _this.events.product[result.id]) === null || _b === void 0 ? void 0 : _b.render))
122
122
  return;
123
123
  var data = getRecommendationsSchemaData({ store: _this.store, results: [result] });
124
+ _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
124
125
  _this.tracker.events.recommendations.impression({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
125
126
  _this.events.product[result.id] = _this.events.product[result.id] || {};
126
127
  _this.events.product[result.id].impression = true;
127
- _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
128
128
  return data;
129
129
  },
130
130
  render: function (result) {
@@ -132,17 +132,17 @@ var RecommendationController = /** @class */ (function (_super) {
132
132
  if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.render)
133
133
  return;
134
134
  var data = getRecommendationsSchemaData({ store: _this.store, results: [result] });
135
+ _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
135
136
  _this.tracker.events.recommendations.render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
136
137
  _this.events.product[result.id] = _this.events.product[result.id] || {};
137
138
  _this.events.product[result.id].render = true;
138
- _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
139
139
  return data;
140
140
  },
141
141
  addToCart: function (result) {
142
142
  var _a;
143
143
  var data = getRecommendationsAddtocartSchemaData({ store: _this.store, results: [result] });
144
- _this.tracker.events.recommendations.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
145
144
  _this.eventManager.fire('track.product.addToCart', { controller: _this, product: result, trackEvent: data });
145
+ _this.tracker.events.recommendations.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
146
146
  return data;
147
147
  },
148
148
  },
@@ -327,7 +327,7 @@ var RecommendationController = /** @class */ (function (_super) {
327
327
  _this.config = (0, deepmerge_1.default)(defaultConfig, _this.config);
328
328
  _this.store.setConfig(_this.config);
329
329
  _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
330
- var controller, products, results, data_1;
330
+ var controller, products, data;
331
331
  var _this = this;
332
332
  var _a;
333
333
  return __generator(this, function (_b) {
@@ -338,16 +338,18 @@ var RecommendationController = /** @class */ (function (_super) {
338
338
  controller = search.controller;
339
339
  if (controller.store.loaded && !controller.store.error) {
340
340
  products = controller.store.results.filter(function (result) { return result.type === 'product'; });
341
- results = products.length === 0 ? [] : products;
342
- data_1 = getRecommendationsSchemaData({ store: this.store, results: results });
343
- if (!search.response._cached) {
344
- this.tracker.events.recommendations.render({ data: data_1, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
341
+ if (products.length === 0 && !search.response._cached) {
342
+ data = getRecommendationsSchemaData({ store: this.store });
343
+ this.eventManager.fire('track.product.render', { controller: this, trackEvent: data });
344
+ this.tracker.events.recommendations.render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
345
345
  }
346
346
  products.forEach(function (result) {
347
- _this.events.product[result.id] = _this.events.product[result.id] || {};
348
- _this.events.product[result.id].render = true;
349
347
  if (!search.response._cached) {
350
- _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data_1 });
348
+ _this.track.product.render(result);
349
+ }
350
+ else {
351
+ _this.events.product[result.id] = _this.events.product[result.id] || {};
352
+ _this.events.product[result.id].render = true;
351
353
  }
352
354
  });
353
355
  }
@@ -3,7 +3,7 @@ import { StorageStore } from '@searchspring/snap-store-mobx';
3
3
  import { ControllerTypes } from '../types';
4
4
  import type { Product, Banner, SearchStore } from '@searchspring/snap-store-mobx';
5
5
  import type { SearchControllerConfig, ControllerServices, ContextVariables } from '../types';
6
- import type { SearchRequestModel } from '@searchspring/snapi-types';
6
+ import { type SearchRequestModel } from '@searchspring/snapi-types';
7
7
  type SearchTrackMethods = {
8
8
  product: {
9
9
  clickThrough: (e: MouseEvent, result: Product) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAIhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAQlB,MAAM,2BAA2B,CAAC;AAkCnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAGF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,IAAI,CAEV;IACF,OAAO,CAAC,MAAM,CAUM;gBAGnB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAwN3B,KAAK,EAAE,kBAAkB,CA+FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAyN9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF;AAwBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,+BAA+B,CAAC;AAC9F,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAIhB,MAAM,UAAU,CAAC;AAElB,OAAO,EACN,KAAK,kBAAkB,EAYvB,MAAM,2BAA2B,CAAC;AAmCnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAGF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,IAAI,CAEV;IACF,OAAO,CAAC,MAAM,CAUM;gBAGnB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoQ3B,KAAK,EAAE,kBAAkB,CA+FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAyN9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF;AAwBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
@@ -83,7 +83,7 @@ var getParams_1 = require("../utils/getParams");
83
83
  var types_1 = require("../types");
84
84
  var beacon_1 = require("@searchspring/beacon");
85
85
  var isClickWithinProductLink_1 = require("../utils/isClickWithinProductLink");
86
- var BACKGROUND_FILTER_FIELD_MATCHES = ['collection', 'category', 'categories', 'hierarchy'];
86
+ var BACKGROUND_FILTER_FIELD_MATCHES = ['collection', 'category', 'categories', 'hierarchy', 'brand', 'manufacturer'];
87
87
  var BACKGROUND_FILTERS_VALUE_FLAGS = [1, 0, '1', '0', 'true', 'false', true, false];
88
88
  var defaultConfig = {
89
89
  id: 'search',
@@ -106,7 +106,7 @@ var SearchController = /** @class */ (function (_super) {
106
106
  __extends(SearchController, _super);
107
107
  function SearchController(config, _a, context) {
108
108
  var client = _a.client, store = _a.store, urlManager = _a.urlManager, eventManager = _a.eventManager, profiler = _a.profiler, logger = _a.logger, tracker = _a.tracker;
109
- var _b, _c, _d, _e, _f, _g;
109
+ var _b, _c, _d, _e, _f, _g, _h, _j;
110
110
  var _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
111
111
  _this.type = types_1.ControllerTypes.search;
112
112
  _this.previousResults = [];
@@ -148,10 +148,10 @@ var SearchController = /** @class */ (function (_super) {
148
148
  // store position data or empty object
149
149
  _this.storage.set('scrollMap', scrollMap);
150
150
  var data = schemaMap[result.id];
151
+ _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
151
152
  _this.tracker.events[_this.page.type].clickThrough({ data: data, siteId: (_f = _this.config.globals) === null || _f === void 0 ? void 0 : _f.siteId });
152
153
  _this.events.product[result.id] = _this.events.product[result.id] || {};
153
154
  _this.events.product[result.id].clickThrough = true;
154
- _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
155
155
  },
156
156
  click: function (e, result) {
157
157
  var _a;
@@ -174,10 +174,10 @@ var SearchController = /** @class */ (function (_super) {
174
174
  return;
175
175
  }
176
176
  var data = schemaMap[result.id];
177
+ _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
177
178
  _this.tracker.events[_this.page.type].render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
178
179
  _this.events.product[result.id] = _this.events.product[result.id] || {};
179
180
  _this.events.product[result.id].render = true;
180
- _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
181
181
  },
182
182
  impression: function (result) {
183
183
  var _a, _b, _c;
@@ -185,26 +185,26 @@ var SearchController = /** @class */ (function (_super) {
185
185
  return;
186
186
  }
187
187
  var data = schemaMap[result.id];
188
+ _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
188
189
  _this.tracker.events[_this.page.type].impression({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
189
190
  _this.events.product[result.id] = _this.events.product[result.id] || {};
190
191
  _this.events.product[result.id].impression = true;
191
- _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
192
192
  },
193
193
  addToCart: function (result) {
194
194
  var _a;
195
195
  var data = getSearchAddtocartSchemaData({ searchSchemaData: schemaMap[result.id], results: [result] });
196
+ _this.eventManager.fire('track.product.addToCart', { controller: _this, product: result, trackEvent: data });
196
197
  _this.tracker.events[_this.page.type].addToCart({
197
198
  data: data,
198
199
  siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId,
199
200
  });
200
- _this.eventManager.fire('track.product.addToCart', { controller: _this, product: result, trackEvent: data });
201
201
  },
202
202
  },
203
203
  redirect: function (redirectURL) {
204
204
  var _a;
205
205
  var data = getSearchRedirectSchemaData({ redirectURL: redirectURL });
206
- _this.tracker.events.search.redirect({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
207
206
  _this.eventManager.fire('track.product.redirect', { controller: _this, redirectURL: redirectURL, trackEvent: data });
207
+ _this.tracker.events.search.redirect({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
208
208
  },
209
209
  };
210
210
  _this.search = function () { return __awaiter(_this, void 0, void 0, function () {
@@ -558,6 +558,52 @@ var SearchController = /** @class */ (function (_super) {
558
558
  }
559
559
  });
560
560
  }); });
561
+ var hierarchySettings = (_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.filters) === null || _e === void 0 ? void 0 : _e.hierarchy;
562
+ if (hierarchySettings && hierarchySettings.enabled) {
563
+ _this.eventManager.on('afterSearch', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
564
+ var displayDelimiter, showFullPath, facets;
565
+ var _a, _b;
566
+ return __generator(this, function (_c) {
567
+ switch (_c.label) {
568
+ case 0: return [4 /*yield*/, next()];
569
+ case 1:
570
+ _c.sent();
571
+ displayDelimiter = (_a = hierarchySettings.displayDelimiter) !== null && _a !== void 0 ? _a : ' / ';
572
+ showFullPath = (_b = hierarchySettings.showFullPath) !== null && _b !== void 0 ? _b : false;
573
+ facets = search.response.facets;
574
+ if (facets) {
575
+ facets.forEach(function (facet) {
576
+ var _a, _b, _c, _d, _e;
577
+ if (((_a = search.response.meta) === null || _a === void 0 ? void 0 : _a.facets) && facet.field) {
578
+ var metaFacet = search.response.meta.facets[facet.field];
579
+ var dataDelimiter = (metaFacet === null || metaFacet === void 0 ? void 0 : metaFacet.hierarchyDelimiter) || ' / ';
580
+ if (metaFacet && metaFacet.display === 'hierarchy' && facet.filtered && ((_b = facet.values) === null || _b === void 0 ? void 0 : _b.length) > 0) {
581
+ var filteredValues = (_c = facet.values) === null || _c === void 0 ? void 0 : _c.filter(function (val) { return (val === null || val === void 0 ? void 0 : val.filtered) === true; });
582
+ if (filteredValues && filteredValues.length) {
583
+ var filterToAdd = {
584
+ field: facet.field,
585
+ //escape special charactors used in regex
586
+ label: showFullPath
587
+ ? ((_e = (_d = filteredValues[0].value) !== null && _d !== void 0 ? _d : filteredValues[0].label) !== null && _e !== void 0 ? _e : '').replace(new RegExp(dataDelimiter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), displayDelimiter)
588
+ : filteredValues[0].label,
589
+ type: 'value',
590
+ };
591
+ if (search.response.filters) {
592
+ search.response.filters.push(filterToAdd);
593
+ }
594
+ else {
595
+ search.response.filters = [filterToAdd];
596
+ }
597
+ }
598
+ }
599
+ }
600
+ });
601
+ }
602
+ return [2 /*return*/];
603
+ }
604
+ });
605
+ }); });
606
+ }
561
607
  _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
562
608
  var controller, products, data, config_1, nonBackgroundFilters;
563
609
  var _this = this;
@@ -572,14 +618,12 @@ var SearchController = /** @class */ (function (_super) {
572
618
  products = controller.store.results.filter(function (result) { var _a; return result.type === 'product' && !((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.render); });
573
619
  if (products.length === 0 && !search.response._cached) {
574
620
  data = getSearchSchemaData({ params: search.request, response: search.response });
621
+ this.eventManager.fire('track.product.render', { controller: this, trackEvent: data });
575
622
  this.tracker.events[this.page.type].render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
576
623
  }
577
624
  products.forEach(function (result) {
578
- var _a;
579
625
  if (!search.response._cached) {
580
- var data = schemaMap[result.id];
581
- _this.tracker.events[_this.page.type].render({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
582
- _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
626
+ _this.track.product.render(result);
583
627
  }
584
628
  _this.events.product[result.id] = _this.events.product[result.id] || {};
585
629
  _this.events.product[result.id].render = true;
@@ -599,7 +643,7 @@ var SearchController = /** @class */ (function (_super) {
599
643
  });
600
644
  }); });
601
645
  // restore position
602
- if ((_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.restorePosition) === null || _e === void 0 ? void 0 : _e.enabled) {
646
+ if ((_g = (_f = _this.config.settings) === null || _f === void 0 ? void 0 : _f.restorePosition) === null || _g === void 0 ? void 0 : _g.enabled) {
603
647
  _this.eventManager.on('restorePosition', function (_a, next) {
604
648
  var controller = _a.controller, element = _a.element;
605
649
  return __awaiter(_this, void 0, void 0, function () {
@@ -692,7 +736,7 @@ var SearchController = /** @class */ (function (_super) {
692
736
  });
693
737
  });
694
738
  // fire restorePosition event on 'pageshow' when setting is enabled
695
- if ((_g = (_f = _this.config.settings) === null || _f === void 0 ? void 0 : _f.restorePosition) === null || _g === void 0 ? void 0 : _g.onPageShow) {
739
+ if ((_j = (_h = _this.config.settings) === null || _h === void 0 ? void 0 : _h.restorePosition) === null || _j === void 0 ? void 0 : _j.onPageShow) {
696
740
  window.addEventListener('pageshow', function () {
697
741
  _this.eventManager.fire('restorePosition', { controller: _this, element: {} });
698
742
  });
@@ -756,12 +800,12 @@ function createResultSchemaMapping(_a) {
756
800
  params: request,
757
801
  response: searchResponse,
758
802
  });
759
- (_b = searchResponse.results) === null || _b === void 0 ? void 0 : _b.forEach(function (result) {
803
+ (_b = searchResponse.results) === null || _b === void 0 ? void 0 : _b.forEach(function (result, idx) {
760
804
  var _a, _b, _c, _d;
761
805
  schemaMap[result.id] = __assign(__assign({}, schema), { results: [
762
806
  {
763
807
  type: beacon_1.ItemTypeEnum.Product,
764
- position: result.position,
808
+ position: idx + 1,
765
809
  uid: ((_b = (_a = result.mappings) === null || _a === void 0 ? void 0 : _a.core) === null || _b === void 0 ? void 0 : _b.uid) || '',
766
810
  sku: (_d = (_c = result.mappings) === null || _c === void 0 ? void 0 : _c.core) === null || _d === void 0 ? void 0 : _d.sku,
767
811
  },
@@ -6,18 +6,35 @@ import type { Tracker, ProductViewEvent } from '@searchspring/snap-tracker';
6
6
  import type { Profiler } from '@searchspring/snap-profiler';
7
7
  import type { UrlManager } from '@searchspring/snap-url-manager';
8
8
  import type { Logger } from '@searchspring/snap-logger';
9
- import type { SearchRequestModel } from '@searchspring/snapi-types';
9
+ import type { AutocompleteRequestModel, AutocompleteResponseModel, MetaResponseModel, SearchRequestModel, SearchResponseModel } from '@searchspring/snapi-types';
10
10
  export type PluginFunction = (cntrlr: AbstractController, ...args: any) => Promise<void> | void;
11
11
  export type PluginGrouping = [func: PluginFunction, ...args: unknown[]];
12
12
  export type BeforeSearchObj = {
13
13
  controller: AbstractController;
14
14
  request: any;
15
15
  };
16
- export type AfterSearchObj = {
17
- controller: AbstractController;
18
- response: any;
16
+ export type SearchAfterSearchObj = {
17
+ controller: SearchController;
18
+ response: SearchResponseModel & {
19
+ meta?: MetaResponseModel;
20
+ };
21
+ request: SearchRequestModel;
22
+ };
23
+ export type AutocompleteAfterSearchObj = {
24
+ controller: AutocompleteController;
25
+ response: AutocompleteResponseModel & {
26
+ meta?: MetaResponseModel;
27
+ };
28
+ request: AutocompleteRequestModel;
29
+ };
30
+ export type FinderAfterSearchObj = {
31
+ controller: FinderController;
32
+ response: SearchResponseModel & {
33
+ meta?: MetaResponseModel;
34
+ };
19
35
  request: SearchRequestModel;
20
36
  };
37
+ export type AfterSearchObj = SearchAfterSearchObj | AutocompleteAfterSearchObj | FinderAfterSearchObj;
21
38
  export type AfterStoreObj = {
22
39
  controller: AbstractController;
23
40
  request: any;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxI,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EACX,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EACX,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAChG,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC7D,OAAO,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,UAAU,EAAE,sBAAsB,CAAC;IACnC,QAAQ,EAAE,yBAAyB,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,wBAAwB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAC7D,OAAO,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,oBAAoB,CAAC;AAEtG,MAAM,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,eAAe;IAC1B,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,cAAc,mBAAmB;CACjC;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;AAElH,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAC3E,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,UAAU,CAAC,EAAE;QACZ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;KACzD,CAAC;IACF,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAC,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC;AAGzD,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAE1E,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAE1E,MAAM,MAAM,4BAA4B,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAEtF,MAAM,MAAM,8BAA8B,GAAG,gBAAgB,GAAG,yBAAyB,CAAC;AAE1F,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,8BAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAA6C,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9I,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAexI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAsF3B,KAAK,EAAE,wBAAwB,CA0D7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6I9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
@@ -49,10 +49,10 @@ export class AutocompleteController extends AbstractController {
49
49
  return;
50
50
  }
51
51
  const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: [result] });
52
+ this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
52
53
  this.tracker.events.autocomplete.clickThrough({ data, siteId: this.config.globals?.siteId });
53
54
  this.events.product[result.id] = this.events.product[result.id] || {};
54
55
  this.events.product[result.id].clickThrough = true;
55
- this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
56
56
  },
57
57
  click: (e, result) => {
58
58
  if (this.events.product[result.id]?.click) {
@@ -72,30 +72,30 @@ export class AutocompleteController extends AbstractController {
72
72
  if (this.events.product[result.id]?.render)
73
73
  return;
74
74
  const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: result ? [result] : [] });
75
+ this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
75
76
  this.tracker.events.autocomplete.render({ data, siteId: this.config.globals?.siteId });
76
77
  this.events.product[result.id] = this.events.product[result.id] || {};
77
78
  this.events.product[result.id].render = true;
78
- this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
79
79
  },
80
80
  impression: (result) => {
81
81
  if (this.events.product[result.id]?.impression || !this.events.product[result.id]?.render)
82
82
  return;
83
83
  const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: [result] });
84
+ this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
84
85
  this.tracker.events.autocomplete.impression({ data, siteId: this.config.globals?.siteId });
85
86
  this.events.product[result.id] = this.events.product[result.id] || {};
86
87
  this.events.product[result.id].impression = true;
87
- this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
88
88
  },
89
89
  addToCart: (result) => {
90
90
  const data = getAutocompleteAddtocartSchemaData({ params: this.params, store: this.store, results: [result] });
91
- this.tracker.events.autocomplete.addToCart({ data, siteId: this.config.globals?.siteId });
92
91
  this.eventManager.fire('track.product.addToCart', { controller: this, product: result, trackEvent: data });
92
+ this.tracker.events.autocomplete.addToCart({ data, siteId: this.config.globals?.siteId });
93
93
  },
94
94
  },
95
95
  redirect: (redirectURL) => {
96
96
  const data = getAutocompleteRedirectSchemaData({ redirectURL });
97
- this.tracker.events.autocomplete.redirect({ data, siteId: this.config.globals?.siteId });
98
97
  this.eventManager.fire('track.redirect', { controller: this, redirectURL, trackEvent: data });
98
+ this.tracker.events.autocomplete.redirect({ data, siteId: this.config.globals?.siteId });
99
99
  },
100
100
  };
101
101
  this.handlers = {
@@ -465,16 +465,19 @@ export class AutocompleteController extends AbstractController {
465
465
  const controller = search.controller;
466
466
  if (controller.store.loaded && !controller.store.error) {
467
467
  const products = controller.store.results.filter((result) => result.type === 'product');
468
- const results = products.length === 0 ? [] : products;
469
- const data = getAutocompleteSchemaData({ params: search.request, store: this.store, results });
470
- if (!search.response._cached) {
468
+ if (products.length === 0 && !search.response._cached) {
469
+ // handle no results
470
+ const data = getAutocompleteSchemaData({ params: search.request, store: this.store });
471
+ this.eventManager.fire('track.product.render', { controller: this, trackEvent: data });
471
472
  this.tracker.events.autocomplete.render({ data, siteId: this.config.globals?.siteId });
472
473
  }
473
474
  products.forEach((result) => {
474
- this.events.product[result.id] = this.events.product[result.id] || {};
475
- this.events.product[result.id].render = true;
476
475
  if (!search.response._cached) {
477
- this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
476
+ this.track.product.render(result);
477
+ }
478
+ else {
479
+ this.events.product[result.id] = this.events.product[result.id] || {};
480
+ this.events.product[result.id].render = true;
478
481
  }
479
482
  });
480
483
  }
@@ -483,7 +486,7 @@ export class AutocompleteController extends AbstractController {
483
486
  this.eventManager.on('afterSearch', async (ac, next) => {
484
487
  await next();
485
488
  // cancel search if no input or query doesn't match current urlState
486
- if (ac.response.autocomplete.query != ac.controller.urlManager.state.query) {
489
+ if (ac.response.autocomplete?.query != ac.controller.urlManager.state.query) {
487
490
  return false;
488
491
  }
489
492
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAkB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB7G,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA+B3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAkB5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoI9B;CACF"}
1
+ {"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAwB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiBnH,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA+B3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAkB5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoI9B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AAIpH,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;CACF,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA4D3B,KAAK,EAAE,0BAA0B,CAuD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
1
+ {"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AAIpH,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;CACF,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAgE3B,KAAK,EAAE,0BAA0B,CAuD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF"}
@@ -24,10 +24,10 @@ export class RecommendationController extends AbstractController {
24
24
  if (this.events.product[result.id]?.clickThrough)
25
25
  return;
26
26
  const data = getRecommendationsSchemaData({ store: this.store, results: [result] });
27
+ this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
27
28
  this.tracker.events.recommendations.clickThrough({ data, siteId: this.config.globals?.siteId });
28
29
  this.events.product[result.id] = this.events.product[result.id] || {};
29
30
  this.events.product[result.id].clickThrough = true;
30
- this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
31
31
  },
32
32
  click: (e, result) => {
33
33
  if (this.events.product[result.id]?.click) {
@@ -47,26 +47,26 @@ export class RecommendationController extends AbstractController {
47
47
  if (this.events.product[result.id]?.impression || !this.events.product[result.id]?.render)
48
48
  return;
49
49
  const data = getRecommendationsSchemaData({ store: this.store, results: [result] });
50
+ this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
50
51
  this.tracker.events.recommendations.impression({ data, siteId: this.config.globals?.siteId });
51
52
  this.events.product[result.id] = this.events.product[result.id] || {};
52
53
  this.events.product[result.id].impression = true;
53
- this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
54
54
  return data;
55
55
  },
56
56
  render: (result) => {
57
57
  if (this.events.product[result.id]?.render)
58
58
  return;
59
59
  const data = getRecommendationsSchemaData({ store: this.store, results: [result] });
60
+ this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
60
61
  this.tracker.events.recommendations.render({ data, siteId: this.config.globals?.siteId });
61
62
  this.events.product[result.id] = this.events.product[result.id] || {};
62
63
  this.events.product[result.id].render = true;
63
- this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
64
64
  return data;
65
65
  },
66
66
  addToCart: (result) => {
67
67
  const data = getRecommendationsAddtocartSchemaData({ store: this.store, results: [result] });
68
- this.tracker.events.recommendations.addToCart({ data, siteId: this.config.globals?.siteId });
69
68
  this.eventManager.fire('track.product.addToCart', { controller: this, product: result, trackEvent: data });
69
+ this.tracker.events.recommendations.addToCart({ data, siteId: this.config.globals?.siteId });
70
70
  return data;
71
71
  },
72
72
  },
@@ -219,16 +219,19 @@ export class RecommendationController extends AbstractController {
219
219
  const controller = search.controller;
220
220
  if (controller.store.loaded && !controller.store.error) {
221
221
  const products = controller.store.results.filter((result) => result.type === 'product');
222
- const results = products.length === 0 ? [] : products;
223
- const data = getRecommendationsSchemaData({ store: this.store, results });
224
- if (!search.response._cached) {
222
+ if (products.length === 0 && !search.response._cached) {
223
+ // handle no results
224
+ const data = getRecommendationsSchemaData({ store: this.store });
225
+ this.eventManager.fire('track.product.render', { controller: this, trackEvent: data });
225
226
  this.tracker.events.recommendations.render({ data, siteId: this.config.globals?.siteId });
226
227
  }
227
228
  products.forEach((result) => {
228
- this.events.product[result.id] = this.events.product[result.id] || {};
229
- this.events.product[result.id].render = true;
230
229
  if (!search.response._cached) {
231
- this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
230
+ this.track.product.render(result);
231
+ }
232
+ else {
233
+ this.events.product[result.id] = this.events.product[result.id] || {};
234
+ this.events.product[result.id].render = true;
232
235
  }
233
236
  });
234
237
  }
@@ -3,7 +3,7 @@ import { StorageStore } from '@searchspring/snap-store-mobx';
3
3
  import { ControllerTypes } from '../types';
4
4
  import type { Product, Banner, SearchStore } from '@searchspring/snap-store-mobx';
5
5
  import type { SearchControllerConfig, ControllerServices, ContextVariables } from '../types';
6
- import type { SearchRequestModel } from '@searchspring/snapi-types';
6
+ import { type SearchRequestModel } from '@searchspring/snapi-types';
7
7
  type SearchTrackMethods = {
8
8
  product: {
9
9
  clickThrough: (e: MouseEvent, result: Product) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAIhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAQlB,MAAM,2BAA2B,CAAC;AAkCnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAGF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,IAAI,CAEV;IACF,OAAO,CAAC,MAAM,CAUM;gBAGnB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAwN3B,KAAK,EAAE,kBAAkB,CA+FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAyN9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF;AAwBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,+BAA+B,CAAC;AAC9F,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAIhB,MAAM,UAAU,CAAC;AAElB,OAAO,EACN,KAAK,kBAAkB,EAYvB,MAAM,2BAA2B,CAAC;AAmCnC,KAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAGF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,IAAI,CAEV;IACF,OAAO,CAAC,MAAM,CAUM;gBAGnB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAoQ3B,KAAK,EAAE,kBAAkB,CA+FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAyN9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAQ/D;CACF;AAwBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
@@ -6,7 +6,7 @@ import { getSearchParams } from '../utils/getParams';
6
6
  import { ControllerTypes } from '../types';
7
7
  import { ItemTypeEnum, } from '@searchspring/beacon';
8
8
  import { CLICK_DUPLICATION_TIMEOUT, isClickWithinProductLink } from '../utils/isClickWithinProductLink';
9
- const BACKGROUND_FILTER_FIELD_MATCHES = ['collection', 'category', 'categories', 'hierarchy'];
9
+ const BACKGROUND_FILTER_FIELD_MATCHES = ['collection', 'category', 'categories', 'hierarchy', 'brand', 'manufacturer'];
10
10
  const BACKGROUND_FILTERS_VALUE_FLAGS = [1, 0, '1', '0', 'true', 'false', true, false];
11
11
  const defaultConfig = {
12
12
  id: 'search',
@@ -67,10 +67,10 @@ export class SearchController extends AbstractController {
67
67
  // store position data or empty object
68
68
  this.storage.set('scrollMap', scrollMap);
69
69
  const data = schemaMap[result.id];
70
+ this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
70
71
  this.tracker.events[this.page.type].clickThrough({ data, siteId: this.config.globals?.siteId });
71
72
  this.events.product[result.id] = this.events.product[result.id] || {};
72
73
  this.events.product[result.id].clickThrough = true;
73
- this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
74
74
  },
75
75
  click: (e, result) => {
76
76
  if (this.events.product[result.id]?.click) {
@@ -91,34 +91,34 @@ export class SearchController extends AbstractController {
91
91
  return;
92
92
  }
93
93
  const data = schemaMap[result.id];
94
+ this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
94
95
  this.tracker.events[this.page.type].render({ data, siteId: this.config.globals?.siteId });
95
96
  this.events.product[result.id] = this.events.product[result.id] || {};
96
97
  this.events.product[result.id].render = true;
97
- this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
98
98
  },
99
99
  impression: (result) => {
100
100
  if (this.events.product[result.id]?.impression || !this.events.product[result.id]?.render) {
101
101
  return;
102
102
  }
103
103
  const data = schemaMap[result.id];
104
+ this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
104
105
  this.tracker.events[this.page.type].impression({ data, siteId: this.config.globals?.siteId });
105
106
  this.events.product[result.id] = this.events.product[result.id] || {};
106
107
  this.events.product[result.id].impression = true;
107
- this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
108
108
  },
109
109
  addToCart: (result) => {
110
110
  const data = getSearchAddtocartSchemaData({ searchSchemaData: schemaMap[result.id], results: [result] });
111
+ this.eventManager.fire('track.product.addToCart', { controller: this, product: result, trackEvent: data });
111
112
  this.tracker.events[this.page.type].addToCart({
112
113
  data,
113
114
  siteId: this.config.globals?.siteId,
114
115
  });
115
- this.eventManager.fire('track.product.addToCart', { controller: this, product: result, trackEvent: data });
116
116
  },
117
117
  },
118
118
  redirect: (redirectURL) => {
119
119
  const data = getSearchRedirectSchemaData({ redirectURL });
120
- this.tracker.events.search.redirect({ data, siteId: this.config.globals?.siteId });
121
120
  this.eventManager.fire('track.product.redirect', { controller: this, redirectURL, trackEvent: data });
121
+ this.tracker.events.search.redirect({ data, siteId: this.config.globals?.siteId });
122
122
  },
123
123
  };
124
124
  this.search = async () => {
@@ -403,6 +403,43 @@ export class SearchController extends AbstractController {
403
403
  // not awaiting this event as it relies on render, and render is blocked by afterStore event
404
404
  this.eventManager.fire('restorePosition', { controller: this, element: elementPosition });
405
405
  });
406
+ const hierarchySettings = this.config.settings?.filters?.hierarchy;
407
+ if (hierarchySettings && hierarchySettings.enabled) {
408
+ this.eventManager.on('afterSearch', async (search, next) => {
409
+ await next();
410
+ const displayDelimiter = hierarchySettings.displayDelimiter ?? ' / '; // choose delimiter for label
411
+ const showFullPath = hierarchySettings.showFullPath ?? false; // display full hierarchy path or just the current level
412
+ // add hierarchy filter to filter summary
413
+ const facets = search.response.facets;
414
+ if (facets) {
415
+ facets.forEach((facet) => {
416
+ if (search.response.meta?.facets && facet.field) {
417
+ const metaFacet = search.response.meta.facets[facet.field];
418
+ const dataDelimiter = metaFacet?.hierarchyDelimiter || ' / ';
419
+ if (metaFacet && metaFacet.display === 'hierarchy' && facet.filtered && facet.values?.length > 0) {
420
+ const filteredValues = facet.values?.filter((val) => val?.filtered === true);
421
+ if (filteredValues && filteredValues.length) {
422
+ const filterToAdd = {
423
+ field: facet.field,
424
+ //escape special charactors used in regex
425
+ label: showFullPath
426
+ ? (filteredValues[0].value ?? filteredValues[0].label ?? '').replace(new RegExp(dataDelimiter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), displayDelimiter)
427
+ : filteredValues[0].label,
428
+ type: 'value',
429
+ };
430
+ if (search.response.filters) {
431
+ search.response.filters.push(filterToAdd);
432
+ }
433
+ else {
434
+ search.response.filters = [filterToAdd];
435
+ }
436
+ }
437
+ }
438
+ }
439
+ });
440
+ }
441
+ });
442
+ }
406
443
  this.eventManager.on('afterStore', async (search, next) => {
407
444
  await next();
408
445
  const controller = search.controller;
@@ -411,13 +448,12 @@ export class SearchController extends AbstractController {
411
448
  if (products.length === 0 && !search.response._cached) {
412
449
  // handle no results
413
450
  const data = getSearchSchemaData({ params: search.request, response: search.response });
451
+ this.eventManager.fire('track.product.render', { controller: this, trackEvent: data });
414
452
  this.tracker.events[this.page.type].render({ data, siteId: this.config.globals?.siteId });
415
453
  }
416
454
  products.forEach((result) => {
417
455
  if (!search.response._cached) {
418
- const data = schemaMap[result.id];
419
- this.tracker.events[this.page.type].render({ data, siteId: this.config.globals?.siteId });
420
- this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
456
+ this.track.product.render(result);
421
457
  }
422
458
  this.events.product[result.id] = this.events.product[result.id] || {};
423
459
  this.events.product[result.id].render = true;
@@ -552,13 +588,13 @@ function createResultSchemaMapping({ request, response }) {
552
588
  params: request,
553
589
  response: searchResponse,
554
590
  });
555
- searchResponse.results?.forEach((result) => {
591
+ searchResponse.results?.forEach((result, idx) => {
556
592
  schemaMap[result.id] = {
557
593
  ...schema,
558
594
  results: [
559
595
  {
560
596
  type: ItemTypeEnum.Product,
561
- position: result.position,
597
+ position: idx + 1,
562
598
  uid: result.mappings?.core?.uid || '',
563
599
  sku: result.mappings?.core?.sku,
564
600
  },
@@ -6,18 +6,35 @@ import type { Tracker, ProductViewEvent } from '@searchspring/snap-tracker';
6
6
  import type { Profiler } from '@searchspring/snap-profiler';
7
7
  import type { UrlManager } from '@searchspring/snap-url-manager';
8
8
  import type { Logger } from '@searchspring/snap-logger';
9
- import type { SearchRequestModel } from '@searchspring/snapi-types';
9
+ import type { AutocompleteRequestModel, AutocompleteResponseModel, MetaResponseModel, SearchRequestModel, SearchResponseModel } from '@searchspring/snapi-types';
10
10
  export type PluginFunction = (cntrlr: AbstractController, ...args: any) => Promise<void> | void;
11
11
  export type PluginGrouping = [func: PluginFunction, ...args: unknown[]];
12
12
  export type BeforeSearchObj = {
13
13
  controller: AbstractController;
14
14
  request: any;
15
15
  };
16
- export type AfterSearchObj = {
17
- controller: AbstractController;
18
- response: any;
16
+ export type SearchAfterSearchObj = {
17
+ controller: SearchController;
18
+ response: SearchResponseModel & {
19
+ meta?: MetaResponseModel;
20
+ };
21
+ request: SearchRequestModel;
22
+ };
23
+ export type AutocompleteAfterSearchObj = {
24
+ controller: AutocompleteController;
25
+ response: AutocompleteResponseModel & {
26
+ meta?: MetaResponseModel;
27
+ };
28
+ request: AutocompleteRequestModel;
29
+ };
30
+ export type FinderAfterSearchObj = {
31
+ controller: FinderController;
32
+ response: SearchResponseModel & {
33
+ meta?: MetaResponseModel;
34
+ };
19
35
  request: SearchRequestModel;
20
36
  };
37
+ export type AfterSearchObj = SearchAfterSearchObj | AutocompleteAfterSearchObj | FinderAfterSearchObj;
21
38
  export type AfterStoreObj = {
22
39
  controller: AbstractController;
23
40
  request: any;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.67.5",
3
+ "version": "0.69.0",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,22 +20,22 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "0.67.5",
23
+ "@searchspring/snap-toolbox": "0.69.0",
24
24
  "css.escape": "1.5.1",
25
25
  "deepmerge": "4.3.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@searchspring/snap-client": "0.67.5",
29
- "@searchspring/snap-event-manager": "0.67.5",
30
- "@searchspring/snap-logger": "0.67.5",
31
- "@searchspring/snap-profiler": "0.67.5",
32
- "@searchspring/snap-store-mobx": "0.67.5",
33
- "@searchspring/snap-tracker": "0.67.5",
34
- "@searchspring/snap-url-manager": "0.67.5"
28
+ "@searchspring/snap-client": "0.69.0",
29
+ "@searchspring/snap-event-manager": "0.69.0",
30
+ "@searchspring/snap-logger": "0.69.0",
31
+ "@searchspring/snap-profiler": "0.69.0",
32
+ "@searchspring/snap-store-mobx": "0.69.0",
33
+ "@searchspring/snap-tracker": "0.69.0",
34
+ "@searchspring/snap-url-manager": "0.69.0"
35
35
  },
36
36
  "sideEffects": false,
37
37
  "files": [
38
38
  "dist/**/*"
39
39
  ],
40
- "gitHead": "9d3779d4456c454bd73b5e601946298bd89089eb"
40
+ "gitHead": "446629f083776e15b1234fc36f597489795581ce"
41
41
  }