@searchspring/snap-controller 0.65.0 → 0.65.2

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,EAAqB,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5G,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;AAWxI,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,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;IA0D3B,KAAK,EAAE,wBAAwB,CAqD7B;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;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,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,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;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,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAaxI,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,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;IA0E3B,KAAK,EAAE,wBAAwB,CAqD7B;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;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,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,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF"}
@@ -141,7 +141,7 @@ var AutocompleteController = /** @class */ (function (_super) {
141
141
  var _a, _b;
142
142
  if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.render)
143
143
  return;
144
- var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
144
+ var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: result ? [result] : [] });
145
145
  _this.tracker.events.autocomplete.render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
146
146
  _this.events.product[result.id] = _this.events.product[result.id] || {};
147
147
  _this.events.product[result.id].render = true;
@@ -159,7 +159,7 @@ var AutocompleteController = /** @class */ (function (_super) {
159
159
  },
160
160
  addToCart: function (result) {
161
161
  var _a;
162
- var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
162
+ var data = getAutocompleteAddtocartSchemaData({ params: _this.params, store: _this.store, results: [result] });
163
163
  _this.tracker.events.autocomplete.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
164
164
  _this.eventManager.fire('track.product.addToCart', { controller: _this, products: [result], trackEvent: data });
165
165
  },
@@ -617,6 +617,31 @@ var AutocompleteController = /** @class */ (function (_super) {
617
617
  type: 'session',
618
618
  key: "ss-controller-".concat(_this.config.id),
619
619
  });
620
+ _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
621
+ var controller, products, results, data;
622
+ var _this = this;
623
+ var _a;
624
+ return __generator(this, function (_b) {
625
+ switch (_b.label) {
626
+ case 0: return [4 /*yield*/, next()];
627
+ case 1:
628
+ _b.sent();
629
+ controller = search.controller;
630
+ if (controller.store.loaded && !controller.store.error) {
631
+ products = controller.store.results.filter(function (result) { return result.type === 'product'; });
632
+ results = products.length === 0 ? [] : products;
633
+ data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: results });
634
+ this.tracker.events.autocomplete.render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
635
+ products.forEach(function (result) {
636
+ _this.events.product[result.id] = _this.events.product[result.id] || {};
637
+ _this.events.product[result.id].render = true;
638
+ });
639
+ this.eventManager.fire('track.product.render', { controller: this, products: products, trackEvent: data });
640
+ }
641
+ return [2 /*return*/];
642
+ }
643
+ });
644
+ }); });
620
645
  // add 'afterSearch' middleware
621
646
  _this.eventManager.on('afterSearch', function (ac, next) { return __awaiter(_this, void 0, void 0, function () {
622
647
  return __generator(this, function (_a) {
@@ -914,8 +939,21 @@ function getAutocompleteRedirectSchemaData(_a) {
914
939
  redirect: redirectURL,
915
940
  };
916
941
  }
942
+ function getAutocompleteAddtocartSchemaData(_a) {
943
+ var params = _a.params, store = _a.store, results = _a.results;
944
+ var base = getAutocompleteSchemaData({ params: params, store: store, results: results });
945
+ return __assign(__assign({}, base), { results: (results === null || results === void 0 ? void 0 : results.map(function (result) {
946
+ var core = result.mappings.core;
947
+ return {
948
+ uid: core.uid || '',
949
+ sku: core.sku,
950
+ price: Number(core.price),
951
+ qty: result.quantity || 1,
952
+ };
953
+ })) || [] });
954
+ }
917
955
  function getAutocompleteSchemaData(_a) {
918
- var _b, _c, _d, _e, _f, _g, _h, _j;
956
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
919
957
  var params = _a.params, store = _a.store, results = _a.results;
920
958
  var filters = (_b = params.filters) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, filter) {
921
959
  var _a;
@@ -939,20 +977,20 @@ function getAutocompleteSchemaData(_a) {
939
977
  }
940
978
  return acc;
941
979
  }, {});
942
- return __assign(__assign({ q: ((_d = (_c = params.search) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.string) || '', correctedQuery: ((_e = params.search) === null || _e === void 0 ? void 0 : _e.originalQuery) || '' }, filters), { sort: [
943
- {
944
- field: (_f = store.sorting.current) === null || _f === void 0 ? void 0 : _f.field,
945
- dir: (_g = store.sorting.current) === null || _g === void 0 ? void 0 : _g.direction,
946
- },
947
- ], pagination: {
980
+ return __assign(__assign({ q: ((_d = (_c = store.search) === null || _c === void 0 ? void 0 : _c.originalQuery) === null || _d === void 0 ? void 0 : _d.string) || ((_f = (_e = store.search) === null || _e === void 0 ? void 0 : _e.query) === null || _f === void 0 ? void 0 : _f.string) || '', correctedQuery: ((_h = (_g = store.search) === null || _g === void 0 ? void 0 : _g.originalQuery) === null || _h === void 0 ? void 0 : _h.string) ? (_k = (_j = store.search) === null || _j === void 0 ? void 0 : _j.query) === null || _k === void 0 ? void 0 : _k.string : undefined }, filters), { sort: (_l = params.sorts) === null || _l === void 0 ? void 0 : _l.map(function (sort) {
981
+ return {
982
+ field: sort.field,
983
+ dir: sort.direction,
984
+ };
985
+ }), pagination: {
948
986
  totalResults: store.pagination.totalResults,
949
987
  page: store.pagination.page,
950
988
  resultsPerPage: store.pagination.pageSize,
951
989
  }, merchandising: {
952
990
  personalized: store.merchandising.personalized,
953
991
  redirect: store.merchandising.redirect,
954
- triggeredCampaigns: (((_h = store.merchandising.campaigns) === null || _h === void 0 ? void 0 : _h.length) &&
955
- ((_j = store.merchandising.campaigns) === null || _j === void 0 ? void 0 : _j.map(function (campaign) {
992
+ triggeredCampaigns: (((_m = store.merchandising.campaigns) === null || _m === void 0 ? void 0 : _m.length) &&
993
+ ((_o = store.merchandising.campaigns) === null || _o === void 0 ? void 0 : _o.map(function (campaign) {
956
994
  var experiement = store.merchandising.experiments.find(function (experiment) { return experiment.campaignId === campaign.id; });
957
995
  return {
958
996
  id: campaign.id,
@@ -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;AAC3C,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,EAAE,MAAM,UAAU,CAAC;AAIrG,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;IACF,MAAM,EAAE;QACP,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACxC,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,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;IAwC3B,KAAK,EAAE,0BAA0B,CAyD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;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;AAC3C,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;AAKpH,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;IACF,MAAM,EAAE;QACP,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACxC,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,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;IAwD3B,KAAK,EAAE,0BAA0B,CAyD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;CACF"}
@@ -134,7 +134,7 @@ var RecommendationController = /** @class */ (function (_super) {
134
134
  },
135
135
  addToCart: function (result) {
136
136
  var _a;
137
- var data = getRecommendationsSchemaData({ store: _this.store, results: [result] });
137
+ var data = getRecommendationsAddtocartSchemaData({ store: _this.store, results: [result] });
138
138
  _this.tracker.events.recommendations.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
139
139
  _this.eventManager.fire('track.product.addToCart', { controller: _this, products: [result], trackEvent: data });
140
140
  return data;
@@ -145,7 +145,7 @@ var RecommendationController = /** @class */ (function (_super) {
145
145
  var _a;
146
146
  if (_this.store.profile.type != 'bundle')
147
147
  return;
148
- var data = getRecommendationsSchemaData({ store: _this.store, results: results });
148
+ var data = getRecommendationsAddtocartSchemaData({ store: _this.store, results: results });
149
149
  _this.tracker.events.recommendations.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
150
150
  _this.eventManager.fire('track.bundle.addToCart', { controller: _this, products: results, trackEvent: data });
151
151
  return data;
@@ -317,6 +317,31 @@ var RecommendationController = /** @class */ (function (_super) {
317
317
  // deep merge config with defaults
318
318
  _this.config = (0, deepmerge_1.default)(defaultConfig, _this.config);
319
319
  _this.store.setConfig(_this.config);
320
+ _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
321
+ var controller, products, results, data;
322
+ var _this = this;
323
+ var _a;
324
+ return __generator(this, function (_b) {
325
+ switch (_b.label) {
326
+ case 0: return [4 /*yield*/, next()];
327
+ case 1:
328
+ _b.sent();
329
+ controller = search.controller;
330
+ if (controller.store.loaded && !controller.store.error) {
331
+ products = controller.store.results.filter(function (result) { return result.type === 'product'; });
332
+ results = products.length === 0 ? [] : products;
333
+ data = getRecommendationsSchemaData({ store: this.store, results: results });
334
+ this.tracker.events.recommendations.render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
335
+ products.forEach(function (result) {
336
+ _this.events.product[result.id] = _this.events.product[result.id] || {};
337
+ _this.events.product[result.id].render = true;
338
+ });
339
+ this.eventManager.fire('track.product.render', { controller: this, products: products, trackEvent: data });
340
+ }
341
+ return [2 /*return*/];
342
+ }
343
+ });
344
+ }); });
320
345
  // add 'afterStore' middleware
321
346
  // this.eventManager.on('afterStore', async (recommend: AfterStoreObj, next: Next): Promise<void | boolean> => {
322
347
  // await next();
@@ -357,6 +382,21 @@ var RecommendationController = /** @class */ (function (_super) {
357
382
  return RecommendationController;
358
383
  }(AbstractController_1.AbstractController));
359
384
  exports.RecommendationController = RecommendationController;
385
+ function getRecommendationsAddtocartSchemaData(_a) {
386
+ var store = _a.store, results = _a.results;
387
+ return {
388
+ tag: store.profile.tag,
389
+ results: (results === null || results === void 0 ? void 0 : results.map(function (result) {
390
+ var core = result.mappings.core;
391
+ return {
392
+ uid: core.uid || '',
393
+ sku: core.sku,
394
+ price: Number(core.price),
395
+ qty: result.quantity || 1,
396
+ };
397
+ })) || [],
398
+ };
399
+ }
360
400
  function getRecommendationsSchemaData(_a) {
361
401
  var store = _a.store, results = _a.results;
362
402
  return {
@@ -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,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAqB,MAAM,+BAA+B,CAAC;AACrG,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAIhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAOlB,MAAM,2BAA2B,CAAC;AA8BnC,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;AAEF,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,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CASM;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;IAmM3B,KAAK,EAAE,kBAAkB,CA0FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuN9B;IAEF,SAAS,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF;AAED,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,EAAE,MAAM,UAAU,CAAC;AAE3C,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,EAOlB,MAAM,2BAA2B,CAAC;AAgCnC,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;AAEF,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,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CASM;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;IAqN3B,KAAK,EAAE,kBAAkB,CA0FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuN9B;IAEF,SAAS,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF;AAED,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"}
@@ -167,7 +167,7 @@ var SearchController = /** @class */ (function (_super) {
167
167
  if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.render) {
168
168
  return;
169
169
  }
170
- var data = getSearchSchemaData({ params: _this.params, store: _this.store, results: [result] });
170
+ var data = getSearchSchemaData({ params: _this.params, store: _this.store, results: result ? [result] : [] });
171
171
  _this.tracker.events[_this.pageType].render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
172
172
  _this.events.product[result.id] = _this.events.product[result.id] || {};
173
173
  _this.events.product[result.id].render = true;
@@ -186,7 +186,7 @@ var SearchController = /** @class */ (function (_super) {
186
186
  },
187
187
  addToCart: function (result) {
188
188
  var _a;
189
- var data = getSearchSchemaData({ params: _this.params, store: _this.store, results: [result] });
189
+ var data = getSearchAddtocartSchemaData({ params: _this.params, store: _this.store, results: [result] });
190
190
  _this.tracker.events[_this.pageType].addToCart({
191
191
  data: data,
192
192
  siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId,
@@ -217,8 +217,6 @@ var SearchController = /** @class */ (function (_super) {
217
217
  _o.label = 2;
218
218
  case 2:
219
219
  params_1 = this.params;
220
- // reset events for new search
221
- this.events = { product: {} };
222
220
  if (((_d = (_c = params_1.search) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.string) && ((_f = (_e = params_1.search) === null || _e === void 0 ? void 0 : _e.query) === null || _f === void 0 ? void 0 : _f.string.length)) {
223
221
  // save it to the history store
224
222
  this.store.history.save(params_1.search.query.string);
@@ -307,7 +305,9 @@ var SearchController = /** @class */ (function (_super) {
307
305
  _o.label = 10;
308
306
  case 10: return [3 /*break*/, 13];
309
307
  case 11:
310
- // normal request for next page
308
+ // normal request
309
+ // reset events for new search
310
+ this.events = { product: {} };
311
311
  // clear previousResults to prevent infinite scroll from using them
312
312
  this.previousResults = [];
313
313
  return [4 /*yield*/, this.client.search(params_1)];
@@ -553,6 +553,31 @@ var SearchController = /** @class */ (function (_super) {
553
553
  }
554
554
  });
555
555
  }); });
556
+ _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
557
+ var controller, products, results, data;
558
+ var _this = this;
559
+ var _a;
560
+ return __generator(this, function (_b) {
561
+ switch (_b.label) {
562
+ case 0: return [4 /*yield*/, next()];
563
+ case 1:
564
+ _b.sent();
565
+ controller = search.controller;
566
+ if (controller.store.loaded && !controller.store.error) {
567
+ 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); });
568
+ results = products.length === 0 ? [] : products;
569
+ data = getSearchSchemaData({ params: this.params, store: this.store, results: results });
570
+ this.tracker.events[this.pageType].render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
571
+ products.forEach(function (result) {
572
+ _this.events.product[result.id] = _this.events.product[result.id] || {};
573
+ _this.events.product[result.id].render = true;
574
+ });
575
+ this.eventManager.fire('track.product.render', { controller: this, products: products, trackEvent: data });
576
+ }
577
+ return [2 /*return*/];
578
+ }
579
+ });
580
+ }); });
556
581
  // restore position
557
582
  if ((_d = (_c = _this.config.settings) === null || _c === void 0 ? void 0 : _c.restorePosition) === null || _d === void 0 ? void 0 : _d.enabled) {
558
583
  _this.eventManager.on('restorePosition', function (_a, next) {
@@ -755,8 +780,21 @@ function getSearchRedirectSchemaData(_a) {
755
780
  redirect: redirectURL,
756
781
  };
757
782
  }
783
+ function getSearchAddtocartSchemaData(_a) {
784
+ var params = _a.params, store = _a.store, results = _a.results;
785
+ var base = getSearchSchemaData({ params: params, store: store, results: results });
786
+ return __assign(__assign({}, base), { results: (results === null || results === void 0 ? void 0 : results.map(function (result) {
787
+ var core = result.mappings.core;
788
+ return {
789
+ uid: core.uid || '',
790
+ sku: core.sku,
791
+ price: Number(core.price),
792
+ qty: result.quantity || 1,
793
+ };
794
+ })) || [] });
795
+ }
758
796
  function getSearchSchemaData(_a) {
759
- var _b, _c, _d, _e, _f, _g, _h, _j;
797
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
760
798
  var params = _a.params, store = _a.store, results = _a.results;
761
799
  var filters = (_b = params.filters) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, filter) {
762
800
  var _a;
@@ -780,20 +818,20 @@ function getSearchSchemaData(_a) {
780
818
  }
781
819
  return acc;
782
820
  }, {});
783
- return __assign(__assign({ q: ((_d = (_c = params.search) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.string) || '', correctedQuery: (_e = params.search) === null || _e === void 0 ? void 0 : _e.originalQuery }, filters), { sort: [
784
- {
785
- field: (_f = store.sorting.current) === null || _f === void 0 ? void 0 : _f.field,
786
- dir: (_g = store.sorting.current) === null || _g === void 0 ? void 0 : _g.direction,
787
- },
788
- ], pagination: {
821
+ return __assign(__assign({ q: ((_d = (_c = params.search) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.string) || '', correctedQuery: ((_f = (_e = store.search) === null || _e === void 0 ? void 0 : _e.originalQuery) === null || _f === void 0 ? void 0 : _f.string) ? (_h = (_g = store.search) === null || _g === void 0 ? void 0 : _g.query) === null || _h === void 0 ? void 0 : _h.string : undefined }, filters), { sort: (_j = params.sorts) === null || _j === void 0 ? void 0 : _j.map(function (sort) {
822
+ return {
823
+ field: sort.field,
824
+ dir: sort.direction,
825
+ };
826
+ }), pagination: {
789
827
  totalResults: store.pagination.totalResults,
790
828
  page: store.pagination.page,
791
829
  resultsPerPage: store.pagination.pageSize,
792
830
  }, merchandising: {
793
831
  personalized: store.merchandising.personalized,
794
832
  redirect: store.merchandising.redirect,
795
- triggeredCampaigns: (((_h = store.merchandising.campaigns) === null || _h === void 0 ? void 0 : _h.length) &&
796
- ((_j = store.merchandising.campaigns) === null || _j === void 0 ? void 0 : _j.map(function (campaign) {
833
+ triggeredCampaigns: (((_k = store.merchandising.campaigns) === null || _k === void 0 ? void 0 : _k.length) &&
834
+ ((_l = store.merchandising.campaigns) === null || _l === void 0 ? void 0 : _l.map(function (campaign) {
797
835
  var experiement = store.merchandising.experiments.find(function (experiment) { return experiment.campaignId === campaign.id; });
798
836
  return {
799
837
  id: campaign.id,
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAqB,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5G,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;AAWxI,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,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;IA0D3B,KAAK,EAAE,wBAAwB,CAqD7B;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;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,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,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;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,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAaxI,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,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;IA0E3B,KAAK,EAAE,wBAAwB,CAqD7B;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;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,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,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF"}
@@ -68,7 +68,7 @@ export class AutocompleteController extends AbstractController {
68
68
  render: (result) => {
69
69
  if (this.events.product[result.id]?.render)
70
70
  return;
71
- const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: [result] });
71
+ const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: result ? [result] : [] });
72
72
  this.tracker.events.autocomplete.render({ data, siteId: this.config.globals?.siteId });
73
73
  this.events.product[result.id] = this.events.product[result.id] || {};
74
74
  this.events.product[result.id].render = true;
@@ -84,7 +84,7 @@ export class AutocompleteController extends AbstractController {
84
84
  this.eventManager.fire('track.product.impression', { controller: this, products: [result], trackEvent: data });
85
85
  },
86
86
  addToCart: (result) => {
87
- const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results: [result] });
87
+ const data = getAutocompleteAddtocartSchemaData({ params: this.params, store: this.store, results: [result] });
88
88
  this.tracker.events.autocomplete.addToCart({ data, siteId: this.config.globals?.siteId });
89
89
  this.eventManager.fire('track.product.addToCart', { controller: this, products: [result], trackEvent: data });
90
90
  },
@@ -453,6 +453,21 @@ export class AutocompleteController extends AbstractController {
453
453
  type: 'session',
454
454
  key: `ss-controller-${this.config.id}`,
455
455
  });
456
+ this.eventManager.on('afterStore', async (search, next) => {
457
+ await next();
458
+ const controller = search.controller;
459
+ if (controller.store.loaded && !controller.store.error) {
460
+ const products = controller.store.results.filter((result) => result.type === 'product');
461
+ const results = products.length === 0 ? [] : products;
462
+ const data = getAutocompleteSchemaData({ params: this.params, store: this.store, results });
463
+ this.tracker.events.autocomplete.render({ data, siteId: this.config.globals?.siteId });
464
+ products.forEach((result) => {
465
+ this.events.product[result.id] = this.events.product[result.id] || {};
466
+ this.events.product[result.id].render = true;
467
+ });
468
+ this.eventManager.fire('track.product.render', { controller: this, products, trackEvent: data });
469
+ }
470
+ });
456
471
  // add 'afterSearch' middleware
457
472
  this.eventManager.on('afterSearch', async (ac, next) => {
458
473
  await next();
@@ -692,6 +707,21 @@ function getAutocompleteRedirectSchemaData({ redirectURL }) {
692
707
  redirect: redirectURL,
693
708
  };
694
709
  }
710
+ function getAutocompleteAddtocartSchemaData({ params, store, results, }) {
711
+ const base = getAutocompleteSchemaData({ params, store, results });
712
+ return {
713
+ ...base,
714
+ results: results?.map((result) => {
715
+ const core = result.mappings.core;
716
+ return {
717
+ uid: core.uid || '',
718
+ sku: core.sku,
719
+ price: Number(core.price),
720
+ qty: result.quantity || 1,
721
+ };
722
+ }) || [],
723
+ };
724
+ }
695
725
  function getAutocompleteSchemaData({ params, store, results, }) {
696
726
  const filters = params.filters?.reduce((acc, filter) => {
697
727
  const key = filter.background ? 'bgfilter' : 'filter';
@@ -714,15 +744,15 @@ function getAutocompleteSchemaData({ params, store, results, }) {
714
744
  return acc;
715
745
  }, {});
716
746
  return {
717
- q: params.search?.query?.string || '',
718
- correctedQuery: params.search?.originalQuery || '',
747
+ q: store.search?.originalQuery?.string || store.search?.query?.string || '',
748
+ correctedQuery: store.search?.originalQuery?.string ? store.search?.query?.string : undefined,
719
749
  ...filters,
720
- sort: [
721
- {
722
- field: store.sorting.current?.field,
723
- dir: store.sorting.current?.direction,
724
- },
725
- ],
750
+ sort: params.sorts?.map((sort) => {
751
+ return {
752
+ field: sort.field,
753
+ dir: sort.direction,
754
+ };
755
+ }),
726
756
  pagination: {
727
757
  totalResults: store.pagination.totalResults,
728
758
  page: store.pagination.page,
@@ -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;AAC3C,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,EAAE,MAAM,UAAU,CAAC;AAIrG,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;IACF,MAAM,EAAE;QACP,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACxC,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,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;IAwC3B,KAAK,EAAE,0BAA0B,CAyD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;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;AAC3C,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;AAKpH,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;IACF,MAAM,EAAE;QACP,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACxC,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,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;IAwD3B,KAAK,EAAE,0BAA0B,CAyD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;CACF"}
@@ -58,7 +58,7 @@ export class RecommendationController extends AbstractController {
58
58
  return data;
59
59
  },
60
60
  addToCart: (result) => {
61
- const data = getRecommendationsSchemaData({ store: this.store, results: [result] });
61
+ const data = getRecommendationsAddtocartSchemaData({ store: this.store, results: [result] });
62
62
  this.tracker.events.recommendations.addToCart({ data, siteId: this.config.globals?.siteId });
63
63
  this.eventManager.fire('track.product.addToCart', { controller: this, products: [result], trackEvent: data });
64
64
  return data;
@@ -68,7 +68,7 @@ export class RecommendationController extends AbstractController {
68
68
  addToCart: (results) => {
69
69
  if (this.store.profile.type != 'bundle')
70
70
  return;
71
- const data = getRecommendationsSchemaData({ store: this.store, results });
71
+ const data = getRecommendationsAddtocartSchemaData({ store: this.store, results });
72
72
  this.tracker.events.recommendations.addToCart({ data, siteId: this.config.globals?.siteId });
73
73
  this.eventManager.fire('track.bundle.addToCart', { controller: this, products: results, trackEvent: data });
74
74
  return data;
@@ -209,6 +209,21 @@ export class RecommendationController extends AbstractController {
209
209
  // deep merge config with defaults
210
210
  this.config = deepmerge(defaultConfig, this.config);
211
211
  this.store.setConfig(this.config);
212
+ this.eventManager.on('afterStore', async (search, next) => {
213
+ await next();
214
+ const controller = search.controller;
215
+ if (controller.store.loaded && !controller.store.error) {
216
+ const products = controller.store.results.filter((result) => result.type === 'product');
217
+ const results = products.length === 0 ? [] : products;
218
+ const data = getRecommendationsSchemaData({ store: this.store, results });
219
+ this.tracker.events.recommendations.render({ data, siteId: this.config.globals?.siteId });
220
+ products.forEach((result) => {
221
+ this.events.product[result.id] = this.events.product[result.id] || {};
222
+ this.events.product[result.id].render = true;
223
+ });
224
+ this.eventManager.fire('track.product.render', { controller: this, products, trackEvent: data });
225
+ }
226
+ });
212
227
  // add 'afterStore' middleware
213
228
  // this.eventManager.on('afterStore', async (recommend: AfterStoreObj, next: Next): Promise<void | boolean> => {
214
229
  // await next();
@@ -248,6 +263,20 @@ export class RecommendationController extends AbstractController {
248
263
  return params;
249
264
  }
250
265
  }
266
+ function getRecommendationsAddtocartSchemaData({ store, results, }) {
267
+ return {
268
+ tag: store.profile.tag,
269
+ results: results?.map((result) => {
270
+ const core = result.mappings.core;
271
+ return {
272
+ uid: core.uid || '',
273
+ sku: core.sku,
274
+ price: Number(core.price),
275
+ qty: result.quantity || 1,
276
+ };
277
+ }) || [],
278
+ };
279
+ }
251
280
  function getRecommendationsSchemaData({ store, results }) {
252
281
  return {
253
282
  tag: store.profile.tag,
@@ -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,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAqB,MAAM,+BAA+B,CAAC;AACrG,OAAO,KAAK,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAIhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAOlB,MAAM,2BAA2B,CAAC;AA8BnC,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;AAEF,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,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CASM;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;IAmM3B,KAAK,EAAE,kBAAkB,CA0FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuN9B;IAEF,SAAS,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF;AAED,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,EAAE,MAAM,UAAU,CAAC;AAE3C,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,EAOlB,MAAM,2BAA2B,CAAC;AAgCnC,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;AAEF,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,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CASM;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;IAqN3B,KAAK,EAAE,kBAAkB,CA0FvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CA8C/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuN9B;IAEF,SAAS,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF;AAED,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"}
@@ -84,7 +84,7 @@ export class SearchController extends AbstractController {
84
84
  if (this.events.product[result.id]?.render) {
85
85
  return;
86
86
  }
87
- const data = getSearchSchemaData({ params: this.params, store: this.store, results: [result] });
87
+ const data = getSearchSchemaData({ params: this.params, store: this.store, results: result ? [result] : [] });
88
88
  this.tracker.events[this.pageType].render({ data, siteId: this.config.globals?.siteId });
89
89
  this.events.product[result.id] = this.events.product[result.id] || {};
90
90
  this.events.product[result.id].render = true;
@@ -101,7 +101,7 @@ export class SearchController extends AbstractController {
101
101
  this.eventManager.fire('track.product.impression', { controller: this, products: [result], trackEvent: data });
102
102
  },
103
103
  addToCart: (result) => {
104
- const data = getSearchSchemaData({ params: this.params, store: this.store, results: [result] });
104
+ const data = getSearchAddtocartSchemaData({ params: this.params, store: this.store, results: [result] });
105
105
  this.tracker.events[this.pageType].addToCart({
106
106
  data,
107
107
  siteId: this.config.globals?.siteId,
@@ -121,8 +121,6 @@ export class SearchController extends AbstractController {
121
121
  await this.init();
122
122
  }
123
123
  const params = this.params;
124
- // reset events for new search
125
- this.events = { product: {} };
126
124
  if (params.search?.query?.string && params.search?.query?.string.length) {
127
125
  // save it to the history store
128
126
  this.store.history.save(params.search.query.string);
@@ -205,7 +203,9 @@ export class SearchController extends AbstractController {
205
203
  }
206
204
  }
207
205
  else {
208
- // normal request for next page
206
+ // normal request
207
+ // reset events for new search
208
+ this.events = { product: {} };
209
209
  // clear previousResults to prevent infinite scroll from using them
210
210
  this.previousResults = [];
211
211
  [meta, response] = await this.client.search(params);
@@ -400,6 +400,21 @@ export class SearchController extends AbstractController {
400
400
  // not awaiting this event as it relies on render, and render is blocked by afterStore event
401
401
  this.eventManager.fire('restorePosition', { controller: this, element: elementPosition });
402
402
  });
403
+ this.eventManager.on('afterStore', async (search, next) => {
404
+ await next();
405
+ const controller = search.controller;
406
+ if (controller.store.loaded && !controller.store.error) {
407
+ const products = controller.store.results.filter((result) => result.type === 'product' && !this.events.product[result.id]?.render);
408
+ const results = products.length === 0 ? [] : products;
409
+ const data = getSearchSchemaData({ params: this.params, store: this.store, results });
410
+ this.tracker.events[this.pageType].render({ data, siteId: this.config.globals?.siteId });
411
+ products.forEach((result) => {
412
+ this.events.product[result.id] = this.events.product[result.id] || {};
413
+ this.events.product[result.id].render = true;
414
+ });
415
+ this.eventManager.fire('track.product.render', { controller: this, products, trackEvent: data });
416
+ }
417
+ });
403
418
  // restore position
404
419
  if (this.config.settings?.restorePosition?.enabled) {
405
420
  this.eventManager.on('restorePosition', async ({ controller, element }, next) => {
@@ -560,7 +575,22 @@ function getSearchRedirectSchemaData({ redirectURL }) {
560
575
  redirect: redirectURL,
561
576
  };
562
577
  }
563
- function getSearchSchemaData({ params, store, results, }) {
578
+ function getSearchAddtocartSchemaData({ params, store, results, }) {
579
+ const base = getSearchSchemaData({ params, store, results });
580
+ return {
581
+ ...base,
582
+ results: results?.map((result) => {
583
+ const core = result.mappings.core;
584
+ return {
585
+ uid: core.uid || '',
586
+ sku: core.sku,
587
+ price: Number(core.price),
588
+ qty: result.quantity || 1,
589
+ };
590
+ }) || [],
591
+ };
592
+ }
593
+ function getSearchSchemaData({ params, store, results }) {
564
594
  const filters = params.filters?.reduce((acc, filter) => {
565
595
  const key = filter.background ? 'bgfilter' : 'filter';
566
596
  acc[key] = acc[key] || [];
@@ -583,14 +613,14 @@ function getSearchSchemaData({ params, store, results, }) {
583
613
  }, {});
584
614
  return {
585
615
  q: params.search?.query?.string || '',
586
- correctedQuery: params.search?.originalQuery,
616
+ correctedQuery: store.search?.originalQuery?.string ? store.search?.query?.string : undefined,
587
617
  ...filters,
588
- sort: [
589
- {
590
- field: store.sorting.current?.field,
591
- dir: store.sorting.current?.direction,
592
- },
593
- ],
618
+ sort: params.sorts?.map((sort) => {
619
+ return {
620
+ field: sort.field,
621
+ dir: sort.direction,
622
+ };
623
+ }),
594
624
  pagination: {
595
625
  totalResults: store.pagination.totalResults,
596
626
  page: store.pagination.page,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.65.0",
3
+ "version": "0.65.2",
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.65.0",
23
+ "@searchspring/snap-toolbox": "^0.65.2",
24
24
  "css.escape": "1.5.1",
25
25
  "deepmerge": "4.3.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@searchspring/snap-client": "^0.65.0",
29
- "@searchspring/snap-event-manager": "^0.65.0",
30
- "@searchspring/snap-logger": "^0.65.0",
31
- "@searchspring/snap-profiler": "^0.65.0",
32
- "@searchspring/snap-store-mobx": "^0.65.0",
33
- "@searchspring/snap-tracker": "^0.65.0",
34
- "@searchspring/snap-url-manager": "^0.65.0"
28
+ "@searchspring/snap-client": "^0.65.2",
29
+ "@searchspring/snap-event-manager": "^0.65.2",
30
+ "@searchspring/snap-logger": "^0.65.2",
31
+ "@searchspring/snap-profiler": "^0.65.2",
32
+ "@searchspring/snap-store-mobx": "^0.65.2",
33
+ "@searchspring/snap-tracker": "^0.65.2",
34
+ "@searchspring/snap-url-manager": "^0.65.2"
35
35
  },
36
36
  "sideEffects": false,
37
37
  "files": [
38
38
  "dist/**/*"
39
39
  ],
40
- "gitHead": "e96fc4426a64178a94a8ca603ec834bdca020fdb"
40
+ "gitHead": "3e80b62664af7e3104e578d6c2596c439d5dfd78"
41
41
  }