@searchspring/snap-controller 0.67.1 → 0.67.3

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.
@@ -966,7 +966,7 @@ function getAutocompleteAddtocartSchemaData(_a) {
966
966
  })) || [] });
967
967
  }
968
968
  function getAutocompleteSchemaData(_a) {
969
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
969
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
970
970
  var params = _a.params, store = _a.store, results = _a.results;
971
971
  var filters = (_b = params.filters) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, filter) {
972
972
  var _a;
@@ -990,7 +990,7 @@ function getAutocompleteSchemaData(_a) {
990
990
  }
991
991
  return acc;
992
992
  }, {});
993
- 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, matchType: store.search.matchType }, filters), { sort: (_l = params.sorts) === null || _l === void 0 ? void 0 : _l.map(function (sort) {
993
+ 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) || '', rq: ((_g = params.search) === null || _g === void 0 ? void 0 : _g.subQuery) ? (_h = params.search) === null || _h === void 0 ? void 0 : _h.subQuery : undefined, correctedQuery: ((_k = (_j = store.search) === null || _j === void 0 ? void 0 : _j.originalQuery) === null || _k === void 0 ? void 0 : _k.string) ? (_m = (_l = store.search) === null || _l === void 0 ? void 0 : _l.query) === null || _m === void 0 ? void 0 : _m.string : undefined, matchType: store.search.matchType }, filters), { sort: (_o = params.sorts) === null || _o === void 0 ? void 0 : _o.map(function (sort) {
994
994
  return {
995
995
  field: sort.field,
996
996
  dir: sort.direction,
@@ -1002,8 +1002,8 @@ function getAutocompleteSchemaData(_a) {
1002
1002
  }, merchandising: {
1003
1003
  personalized: store.merchandising.personalized,
1004
1004
  redirect: store.merchandising.redirect,
1005
- triggeredCampaigns: (((_m = store.merchandising.campaigns) === null || _m === void 0 ? void 0 : _m.length) &&
1006
- ((_o = store.merchandising.campaigns) === null || _o === void 0 ? void 0 : _o.map(function (campaign) {
1005
+ triggeredCampaigns: (((_p = store.merchandising.campaigns) === null || _p === void 0 ? void 0 : _p.length) &&
1006
+ ((_q = store.merchandising.campaigns) === null || _q === void 0 ? void 0 : _q.map(function (campaign) {
1007
1007
  var experiement = store.merchandising.experiments.find(function (experiment) { return experiment.campaignId === campaign.id; });
1008
1008
  return {
1009
1009
  id: campaign.id,
@@ -20,7 +20,7 @@ export declare class SearchController extends AbstractController {
20
20
  config: SearchControllerConfig;
21
21
  storage: StorageStore;
22
22
  private previousResults;
23
- private pageType;
23
+ private page;
24
24
  private events;
25
25
  constructor(config: SearchControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
26
26
  track: SearchTrackMethods;
@@ -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,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,QAAQ,CAAmC;IACnD,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;IAyN3B,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,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"}
@@ -106,11 +106,13 @@ 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;
109
+ var _b, _c, _d, _e, _f, _g;
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 = [];
113
- _this.pageType = 'search';
113
+ _this.page = {
114
+ type: 'search',
115
+ };
114
116
  _this.events = { product: {} };
115
117
  _this.track = {
116
118
  product: {
@@ -146,7 +148,7 @@ var SearchController = /** @class */ (function (_super) {
146
148
  // store position data or empty object
147
149
  _this.storage.set('scrollMap', scrollMap);
148
150
  var data = schemaMap[result.id];
149
- _this.tracker.events[_this.pageType].clickThrough({ data: data, siteId: (_f = _this.config.globals) === null || _f === void 0 ? void 0 : _f.siteId });
151
+ _this.tracker.events[_this.page.type].clickThrough({ data: data, siteId: (_f = _this.config.globals) === null || _f === void 0 ? void 0 : _f.siteId });
150
152
  _this.events.product[result.id] = _this.events.product[result.id] || {};
151
153
  _this.events.product[result.id].clickThrough = true;
152
154
  _this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
@@ -172,7 +174,7 @@ var SearchController = /** @class */ (function (_super) {
172
174
  return;
173
175
  }
174
176
  var data = schemaMap[result.id];
175
- _this.tracker.events[_this.pageType].render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
177
+ _this.tracker.events[_this.page.type].render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
176
178
  _this.events.product[result.id] = _this.events.product[result.id] || {};
177
179
  _this.events.product[result.id].render = true;
178
180
  _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
@@ -183,7 +185,7 @@ var SearchController = /** @class */ (function (_super) {
183
185
  return;
184
186
  }
185
187
  var data = schemaMap[result.id];
186
- _this.tracker.events[_this.pageType].impression({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
188
+ _this.tracker.events[_this.page.type].impression({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
187
189
  _this.events.product[result.id] = _this.events.product[result.id] || {};
188
190
  _this.events.product[result.id].impression = true;
189
191
  _this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
@@ -191,7 +193,7 @@ var SearchController = /** @class */ (function (_super) {
191
193
  addToCart: function (result) {
192
194
  var _a;
193
195
  var data = getSearchAddtocartSchemaData({ searchSchemaData: schemaMap[result.id], results: [result] });
194
- _this.tracker.events[_this.pageType].addToCart({
196
+ _this.tracker.events[_this.page.type].addToCart({
195
197
  data: data,
196
198
  siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId,
197
199
  });
@@ -464,27 +466,26 @@ var SearchController = /** @class */ (function (_super) {
464
466
  });
465
467
  // set last params to undefined for compare in search
466
468
  _this.storage.set('lastStringyParams', undefined);
469
+ if (typeof ((_c = _this.context) === null || _c === void 0 ? void 0 : _c.page) === 'object' && ['search', 'category'].includes(_this.context.page.type)) {
470
+ _this.page = (0, deepmerge_1.default)(_this.page, _this.context.page);
471
+ }
467
472
  _this.eventManager.on('beforeSearch', function (_a, next) {
468
473
  var request = _a.request;
469
474
  return __awaiter(_this, void 0, void 0, function () {
470
475
  var req, query, hasCategoryBackgroundFilters;
471
- var _b, _c, _d;
472
- return __generator(this, function (_e) {
473
- switch (_e.label) {
476
+ var _b, _c;
477
+ return __generator(this, function (_d) {
478
+ switch (_d.label) {
474
479
  case 0:
475
480
  // wait for other middleware to resolve
476
481
  return [4 /*yield*/, next()];
477
482
  case 1:
478
483
  // wait for other middleware to resolve
479
- _e.sent();
480
- if (((_b = this.context) === null || _b === void 0 ? void 0 : _b.pageType) === 'category') {
481
- this.pageType = 'category';
482
- return [2 /*return*/];
483
- }
484
+ _d.sent();
484
485
  req = request;
485
- query = (_c = req.search) === null || _c === void 0 ? void 0 : _c.query;
486
+ query = (_b = req.search) === null || _b === void 0 ? void 0 : _b.query;
486
487
  if (!query) {
487
- hasCategoryBackgroundFilters = (_d = req.filters) === null || _d === void 0 ? void 0 : _d.filter(function (filter) { return filter.background; }).filter(function (filter) {
488
+ hasCategoryBackgroundFilters = (_c = req.filters) === null || _c === void 0 ? void 0 : _c.filter(function (filter) { return filter.background; }).filter(function (filter) {
488
489
  return BACKGROUND_FILTER_FIELD_MATCHES.find(function (bgFilter) {
489
490
  var _a;
490
491
  return (_a = filter.field) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(bgFilter);
@@ -503,7 +504,7 @@ var SearchController = /** @class */ (function (_super) {
503
504
  });
504
505
  });
505
506
  if (hasCategoryBackgroundFilters === null || hasCategoryBackgroundFilters === void 0 ? void 0 : hasCategoryBackgroundFilters.length) {
506
- this.pageType = 'category';
507
+ this.page = (0, deepmerge_1.default)(this.page, { type: 'category' });
507
508
  }
508
509
  }
509
510
  return [2 /*return*/];
@@ -571,13 +572,13 @@ var SearchController = /** @class */ (function (_super) {
571
572
  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); });
572
573
  if (products.length === 0 && !search.response._cached) {
573
574
  data = getSearchSchemaData({ params: search.request, response: search.response });
574
- this.tracker.events[this.pageType].render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
575
+ this.tracker.events[this.page.type].render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
575
576
  }
576
577
  products.forEach(function (result) {
577
578
  var _a;
578
579
  if (!search.response._cached) {
579
580
  var data = schemaMap[result.id];
580
- _this.tracker.events[_this.pageType].render({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
581
+ _this.tracker.events[_this.page.type].render({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
581
582
  _this.eventManager.fire('track.product.render', { controller: _this, product: result, trackEvent: data });
582
583
  }
583
584
  _this.events.product[result.id] = _this.events.product[result.id] || {};
@@ -598,7 +599,7 @@ var SearchController = /** @class */ (function (_super) {
598
599
  });
599
600
  }); });
600
601
  // restore position
601
- if ((_d = (_c = _this.config.settings) === null || _c === void 0 ? void 0 : _c.restorePosition) === null || _d === void 0 ? void 0 : _d.enabled) {
602
+ if ((_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.restorePosition) === null || _e === void 0 ? void 0 : _e.enabled) {
602
603
  _this.eventManager.on('restorePosition', function (_a, next) {
603
604
  var controller = _a.controller, element = _a.element;
604
605
  return __awaiter(_this, void 0, void 0, function () {
@@ -691,7 +692,7 @@ var SearchController = /** @class */ (function (_super) {
691
692
  });
692
693
  });
693
694
  // fire restorePosition event on 'pageshow' when setting is enabled
694
- if ((_f = (_e = _this.config.settings) === null || _e === void 0 ? void 0 : _e.restorePosition) === null || _f === void 0 ? void 0 : _f.onPageShow) {
695
+ if ((_g = (_f = _this.config.settings) === null || _f === void 0 ? void 0 : _f.restorePosition) === null || _g === void 0 ? void 0 : _g.onPageShow) {
695
696
  window.addEventListener('pageshow', function () {
696
697
  _this.eventManager.fire('restorePosition', { controller: _this, element: {} });
697
698
  });
@@ -832,7 +833,7 @@ function getSearchAddtocartSchemaData(_a) {
832
833
  })) || [] });
833
834
  }
834
835
  function getSearchSchemaData(_a) {
835
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
836
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
836
837
  var params = _a.params, response = _a.response;
837
838
  var filters = (_b = params.filters) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, filter) {
838
839
  var _a;
@@ -862,18 +863,18 @@ function getSearchSchemaData(_a) {
862
863
  }
863
864
  var campaigns = ((_f = response === null || response === void 0 ? void 0 : response.merchandising) === null || _f === void 0 ? void 0 : _f.campaigns) || [];
864
865
  var experiments = ((_g = response === null || response === void 0 ? void 0 : response.merchandising) === null || _g === void 0 ? void 0 : _g.experiments) || [];
865
- return __assign(__assign({ q: ((_j = (_h = params.search) === null || _h === void 0 ? void 0 : _h.query) === null || _j === void 0 ? void 0 : _j.string) || '', correctedQuery: correctedQuery, matchType: (_k = response === null || response === void 0 ? void 0 : response.search) === null || _k === void 0 ? void 0 : _k.matchType }, filters), { sort: (_l = params.sorts) === null || _l === void 0 ? void 0 : _l.map(function (sort) {
866
+ return __assign(__assign({ q: ((_j = (_h = params.search) === null || _h === void 0 ? void 0 : _h.query) === null || _j === void 0 ? void 0 : _j.string) || '', rq: ((_k = params.search) === null || _k === void 0 ? void 0 : _k.subQuery) ? (_l = params.search) === null || _l === void 0 ? void 0 : _l.subQuery : undefined, correctedQuery: correctedQuery, matchType: (_m = response === null || response === void 0 ? void 0 : response.search) === null || _m === void 0 ? void 0 : _m.matchType }, filters), { sort: (_o = params.sorts) === null || _o === void 0 ? void 0 : _o.map(function (sort) {
866
867
  return {
867
868
  field: sort.field,
868
869
  dir: sort.direction,
869
870
  };
870
871
  }), pagination: {
871
- totalResults: (_m = response === null || response === void 0 ? void 0 : response.pagination) === null || _m === void 0 ? void 0 : _m.totalResults,
872
- page: (_o = response === null || response === void 0 ? void 0 : response.pagination) === null || _o === void 0 ? void 0 : _o.page,
873
- resultsPerPage: (_p = response === null || response === void 0 ? void 0 : response.pagination) === null || _p === void 0 ? void 0 : _p.pageSize,
872
+ totalResults: (_p = response === null || response === void 0 ? void 0 : response.pagination) === null || _p === void 0 ? void 0 : _p.totalResults,
873
+ page: (_q = response === null || response === void 0 ? void 0 : response.pagination) === null || _q === void 0 ? void 0 : _q.page,
874
+ resultsPerPage: (_r = response === null || response === void 0 ? void 0 : response.pagination) === null || _r === void 0 ? void 0 : _r.pageSize,
874
875
  }, merchandising: {
875
- personalized: (_q = response === null || response === void 0 ? void 0 : response.merchandising) === null || _q === void 0 ? void 0 : _q.personalized,
876
- redirect: (_r = response === null || response === void 0 ? void 0 : response.merchandising) === null || _r === void 0 ? void 0 : _r.redirect,
876
+ personalized: (_s = response === null || response === void 0 ? void 0 : response.merchandising) === null || _s === void 0 ? void 0 : _s.personalized,
877
+ redirect: (_t = response === null || response === void 0 ? void 0 : response.merchandising) === null || _t === void 0 ? void 0 : _t.redirect,
877
878
  triggeredCampaigns: (campaigns.length &&
878
879
  campaigns.map(function (campaign) {
879
880
  var experiement = experiments.find(function (experiment) { return experiment.campaignId === campaign.id; });
@@ -61,8 +61,12 @@ export type ContextVariables = {
61
61
  cart?: ProductViewEvent[];
62
62
  [variable: string]: any;
63
63
  };
64
+ page?: PageContextVariable;
64
65
  [variable: string]: any;
65
66
  };
67
+ export type PageContextVariable = {
68
+ type: 'search' | 'category';
69
+ };
66
70
  export type ControllerConfig = StoreConfig & Attachments;
67
71
  export type SearchControllerConfig = ControllerConfig & SearchStoreConfig;
68
72
  export type FinderControllerConfig = ControllerConfig & FinderStoreConfig;
@@ -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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"}
@@ -756,6 +756,7 @@ function getAutocompleteSchemaData({ params, store, results, }) {
756
756
  }, {});
757
757
  return {
758
758
  q: store.search?.originalQuery?.string || store.search?.query?.string || '',
759
+ rq: params.search?.subQuery ? params.search?.subQuery : undefined,
759
760
  correctedQuery: store.search?.originalQuery?.string ? store.search?.query?.string : undefined,
760
761
  matchType: store.search.matchType,
761
762
  ...filters,
@@ -20,7 +20,7 @@ export declare class SearchController extends AbstractController {
20
20
  config: SearchControllerConfig;
21
21
  storage: StorageStore;
22
22
  private previousResults;
23
- private pageType;
23
+ private page;
24
24
  private events;
25
25
  constructor(config: SearchControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
26
26
  track: SearchTrackMethods;
@@ -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,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,QAAQ,CAAmC;IACnD,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;IAyN3B,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,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"}
@@ -30,7 +30,9 @@ export class SearchController extends AbstractController {
30
30
  super(config, { client, store, urlManager, eventManager, profiler, logger, tracker }, context);
31
31
  this.type = ControllerTypes.search;
32
32
  this.previousResults = [];
33
- this.pageType = 'search';
33
+ this.page = {
34
+ type: 'search',
35
+ };
34
36
  this.events = { product: {} };
35
37
  this.track = {
36
38
  product: {
@@ -65,7 +67,7 @@ export class SearchController extends AbstractController {
65
67
  // store position data or empty object
66
68
  this.storage.set('scrollMap', scrollMap);
67
69
  const data = schemaMap[result.id];
68
- this.tracker.events[this.pageType].clickThrough({ data, siteId: this.config.globals?.siteId });
70
+ this.tracker.events[this.page.type].clickThrough({ data, siteId: this.config.globals?.siteId });
69
71
  this.events.product[result.id] = this.events.product[result.id] || {};
70
72
  this.events.product[result.id].clickThrough = true;
71
73
  this.eventManager.fire('track.product.clickThrough', { controller: this, event: e, product: result, trackEvent: data });
@@ -89,7 +91,7 @@ export class SearchController extends AbstractController {
89
91
  return;
90
92
  }
91
93
  const data = schemaMap[result.id];
92
- this.tracker.events[this.pageType].render({ data, siteId: this.config.globals?.siteId });
94
+ this.tracker.events[this.page.type].render({ data, siteId: this.config.globals?.siteId });
93
95
  this.events.product[result.id] = this.events.product[result.id] || {};
94
96
  this.events.product[result.id].render = true;
95
97
  this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
@@ -99,14 +101,14 @@ export class SearchController extends AbstractController {
99
101
  return;
100
102
  }
101
103
  const data = schemaMap[result.id];
102
- this.tracker.events[this.pageType].impression({ data, siteId: this.config.globals?.siteId });
104
+ this.tracker.events[this.page.type].impression({ data, siteId: this.config.globals?.siteId });
103
105
  this.events.product[result.id] = this.events.product[result.id] || {};
104
106
  this.events.product[result.id].impression = true;
105
107
  this.eventManager.fire('track.product.impression', { controller: this, product: result, trackEvent: data });
106
108
  },
107
109
  addToCart: (result) => {
108
110
  const data = getSearchAddtocartSchemaData({ searchSchemaData: schemaMap[result.id], results: [result] });
109
- this.tracker.events[this.pageType].addToCart({
111
+ this.tracker.events[this.page.type].addToCart({
110
112
  data,
111
113
  siteId: this.config.globals?.siteId,
112
114
  });
@@ -338,13 +340,12 @@ export class SearchController extends AbstractController {
338
340
  });
339
341
  // set last params to undefined for compare in search
340
342
  this.storage.set('lastStringyParams', undefined);
343
+ if (typeof this.context?.page === 'object' && ['search', 'category'].includes(this.context.page.type)) {
344
+ this.page = deepmerge(this.page, this.context.page);
345
+ }
341
346
  this.eventManager.on('beforeSearch', async ({ request }, next) => {
342
347
  // wait for other middleware to resolve
343
348
  await next();
344
- if (this.context?.pageType === 'category') {
345
- this.pageType = 'category';
346
- return;
347
- }
348
349
  const req = request;
349
350
  const query = req.search?.query;
350
351
  if (!query) {
@@ -369,7 +370,7 @@ export class SearchController extends AbstractController {
369
370
  });
370
371
  });
371
372
  if (hasCategoryBackgroundFilters?.length) {
372
- this.pageType = 'category';
373
+ this.page = deepmerge(this.page, { type: 'category' });
373
374
  }
374
375
  }
375
376
  });
@@ -410,12 +411,12 @@ export class SearchController extends AbstractController {
410
411
  if (products.length === 0 && !search.response._cached) {
411
412
  // handle no results
412
413
  const data = getSearchSchemaData({ params: search.request, response: search.response });
413
- this.tracker.events[this.pageType].render({ data, siteId: this.config.globals?.siteId });
414
+ this.tracker.events[this.page.type].render({ data, siteId: this.config.globals?.siteId });
414
415
  }
415
416
  products.forEach((result) => {
416
417
  if (!search.response._cached) {
417
418
  const data = schemaMap[result.id];
418
- this.tracker.events[this.pageType].render({ data, siteId: this.config.globals?.siteId });
419
+ this.tracker.events[this.page.type].render({ data, siteId: this.config.globals?.siteId });
419
420
  this.eventManager.fire('track.product.render', { controller: this, product: result, trackEvent: data });
420
421
  }
421
422
  this.events.product[result.id] = this.events.product[result.id] || {};
@@ -655,6 +656,7 @@ function getSearchSchemaData({ params, response }) {
655
656
  const experiments = response?.merchandising?.experiments || [];
656
657
  return {
657
658
  q: params.search?.query?.string || '',
659
+ rq: params.search?.subQuery ? params.search?.subQuery : undefined,
658
660
  correctedQuery,
659
661
  matchType: response?.search?.matchType,
660
662
  ...filters,
@@ -61,8 +61,12 @@ export type ContextVariables = {
61
61
  cart?: ProductViewEvent[];
62
62
  [variable: string]: any;
63
63
  };
64
+ page?: PageContextVariable;
64
65
  [variable: string]: any;
65
66
  };
67
+ export type PageContextVariable = {
68
+ type: 'search' | 'category';
69
+ };
66
70
  export type ControllerConfig = StoreConfig & Attachments;
67
71
  export type SearchControllerConfig = ControllerConfig & SearchStoreConfig;
68
72
  export type FinderControllerConfig = ControllerConfig & FinderStoreConfig;
@@ -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.1",
3
+ "version": "0.67.3",
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.1",
23
+ "@searchspring/snap-toolbox": "0.67.3",
24
24
  "css.escape": "1.5.1",
25
25
  "deepmerge": "4.3.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@searchspring/snap-client": "0.67.1",
29
- "@searchspring/snap-event-manager": "0.67.1",
30
- "@searchspring/snap-logger": "0.67.1",
31
- "@searchspring/snap-profiler": "0.67.1",
32
- "@searchspring/snap-store-mobx": "0.67.1",
33
- "@searchspring/snap-tracker": "0.67.1",
34
- "@searchspring/snap-url-manager": "0.67.1"
28
+ "@searchspring/snap-client": "0.67.3",
29
+ "@searchspring/snap-event-manager": "0.67.3",
30
+ "@searchspring/snap-logger": "0.67.3",
31
+ "@searchspring/snap-profiler": "0.67.3",
32
+ "@searchspring/snap-store-mobx": "0.67.3",
33
+ "@searchspring/snap-tracker": "0.67.3",
34
+ "@searchspring/snap-url-manager": "0.67.3"
35
35
  },
36
36
  "sideEffects": false,
37
37
  "files": [
38
38
  "dist/**/*"
39
39
  ],
40
- "gitHead": "f77ba63a7348a8f9249ba53999533f865c8a1d30"
40
+ "gitHead": "77d0386b8c9d4f1e8b55a6b28f6227f1f838f5ef"
41
41
  }