@searchspring/snap-controller 0.42.3 → 0.43.1

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,EAA8C,MAAM,+BAA+B,CAAC;AACzG,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,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AA0B/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,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;IA6D3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;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,aAAa,KAAG,IAAI;;;;uBAiDpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0E3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,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,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AA0B/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,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;IA6D3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;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,aAAa,KAAG,IAAI;;;;uBA8DpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAkH9B;CACF"}
@@ -105,7 +105,7 @@ var AutocompleteController = /** @class */ (function (_super) {
105
105
  _this.track = {
106
106
  // TODO: add in future when autocomplete supports result click tracking
107
107
  product: {
108
- click: function (e, result) {
108
+ click: function () {
109
109
  _this.log.warn('product.click tracking is not currently supported in this controller type');
110
110
  },
111
111
  },
@@ -287,8 +287,8 @@ var AutocompleteController = /** @class */ (function (_super) {
287
287
  _this.setFocused(e.target);
288
288
  }
289
289
  var value = e.target.value;
290
- // prevent search when value is unchanged
291
- if (_this.store.state.input == value && _this.store.loaded) {
290
+ // prevent search when value is unchanged or empty
291
+ if (((!_this.store.state.input && !value) || _this.store.state.input == value) && _this.store.loaded) {
292
292
  return;
293
293
  }
294
294
  _this.store.state.input = value;
@@ -298,23 +298,32 @@ var AutocompleteController = /** @class */ (function (_super) {
298
298
  input.value = value;
299
299
  });
300
300
  }
301
+ // TODO cancel any current requests?
301
302
  clearTimeout(_this.handlers.input.timeoutDelay);
303
+ var trendingResultsEnabled = ((_c = _this.store.trending) === null || _c === void 0 ? void 0 : _c.length) && ((_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.trending) === null || _e === void 0 ? void 0 : _e.showResults);
304
+ var historyResultsEnabled = ((_f = _this.store.history) === null || _f === void 0 ? void 0 : _f.length) && ((_h = (_g = _this.config.settings) === null || _g === void 0 ? void 0 : _g.history) === null || _h === void 0 ? void 0 : _h.showResults);
302
305
  if (!value) {
303
- // TODO cancel any current requests?
306
+ // there is no input value - reset state of store and UrlManager
304
307
  _this.store.reset();
305
308
  _this.urlManager.reset().go();
306
- if (((_c = _this.store.trending) === null || _c === void 0 ? void 0 : _c.length) && ((_e = (_d = _this.config.settings) === null || _d === void 0 ? void 0 : _d.trending) === null || _e === void 0 ? void 0 : _e.showResults)) {
309
+ // show results for trending or history (if configured) - trending has priority
310
+ if (trendingResultsEnabled) {
307
311
  _this.store.trending[0].preview();
308
312
  }
309
- else if (((_f = _this.store.history) === null || _f === void 0 ? void 0 : _f.length) && ((_h = (_g = _this.config.settings) === null || _g === void 0 ? void 0 : _g.history) === null || _h === void 0 ? void 0 : _h.showResults)) {
313
+ else if (historyResultsEnabled) {
310
314
  _this.store.history[0].preview();
311
315
  }
312
316
  }
313
317
  else {
318
+ // new query in the input - trigger a new search via UrlManager
314
319
  _this.store.resetTerms();
315
320
  _this.handlers.input.timeoutDelay = setTimeout(function () {
316
321
  _this.store.state.locks.terms.unlock();
317
322
  _this.store.state.locks.facets.unlock();
323
+ // must reset query to ensure funcitonality when trending/history term is equal to the typed term
324
+ if (trendingResultsEnabled || historyResultsEnabled) {
325
+ _this.urlManager.set({ query: '' }).go();
326
+ }
318
327
  _this.urlManager.set({ query: _this.store.state.input }).go();
319
328
  }, exports.INPUT_DELAY);
320
329
  }
@@ -370,7 +379,12 @@ var AutocompleteController = /** @class */ (function (_super) {
370
379
  return __generator(this, function (_d) {
371
380
  switch (_d.label) {
372
381
  case 0:
382
+ // if urlManager has no query, there will be no need to get params and no query
383
+ if (!this.urlManager.state.query) {
384
+ return [2 /*return*/];
385
+ }
373
386
  params = this.params;
387
+ // if params have no query do not search
374
388
  if (!((_c = (_b = params === null || params === void 0 ? void 0 : params.search) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.string)) {
375
389
  return [2 /*return*/];
376
390
  }
@@ -403,13 +417,9 @@ var AutocompleteController = /** @class */ (function (_super) {
403
417
  return [4 /*yield*/, this.client.autocomplete(params)];
404
418
  case 6:
405
419
  _a = _d.sent(), meta = _a[0], response = _a[1];
406
- // @ts-ignore
420
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
407
421
  if (!response.meta) {
408
- /**
409
- * MockClient will overwrite the client search() method and use
410
- * SearchData to return mock data which already contains meta data
411
- */
412
- // @ts-ignore
422
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
413
423
  response.meta = meta;
414
424
  }
415
425
  searchProfile.stop();
@@ -442,7 +452,6 @@ var AutocompleteController = /** @class */ (function (_super) {
442
452
  afterSearchProfile.stop();
443
453
  this.log.profile(afterSearchProfile);
444
454
  // update the store
445
- // @ts-ignore
446
455
  this.store.update(response);
447
456
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
448
457
  _d.label = 11;
@@ -727,6 +736,7 @@ var AutocompleteController = /** @class */ (function (_super) {
727
736
  else if (form) {
728
737
  form.addEventListener('submit', _this.handlers.input.formSubmit);
729
738
  formActionUrl = form.action || '';
739
+ // serializeForm will include additional form element in our urlManager as globals
730
740
  if ((_c = _this.config.settings) === null || _c === void 0 ? void 0 : _c.serializeForm) {
731
741
  bindFormParameters(form, _this.handlers.input.formElementChange, function (elem) {
732
742
  return elem != input;
@@ -744,10 +754,12 @@ var AutocompleteController = /** @class */ (function (_super) {
744
754
  return __assign(__assign({}, translatorConfig), { urlRoot: formActionUrl });
745
755
  }));
746
756
  }
747
- if (document.activeElement === input) {
757
+ // if the input is currently focused, trigger setFocues which will eventually trigger keyup - but not if loading
758
+ if (document.activeElement === input && !_this.store.loading) {
748
759
  _this.setFocused(input);
749
760
  }
750
761
  });
762
+ // get trending terms - this is at the bottom because urlManager changes need to be in place before creating the store
751
763
  if (((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.trending) === null || _b === void 0 ? void 0 : _b.limit) && ((_d = (_c = this.config.settings) === null || _c === void 0 ? void 0 : _c.trending) === null || _d === void 0 ? void 0 : _d.limit) > 0 && !((_e = this.store.trending) === null || _e === void 0 ? void 0 : _e.length)) {
752
764
  this.searchTrending();
753
765
  }
@@ -781,7 +793,7 @@ function timeout(time) {
781
793
  });
782
794
  }
783
795
  // for grabbing other parameters from the form and using them in UrlManager
784
- var INPUT_TYPE_BLACKLIST = ['file', 'reset', 'submit', 'button', 'image', 'password'];
796
+ var INPUT_TYPE_BLOCKLIST = ['file', 'reset', 'submit', 'button', 'image', 'password'];
785
797
  function getFormParameters(form, filterFn) {
786
798
  var parameters = {};
787
799
  if (typeof form == 'object' && form.nodeName == 'FORM') {
@@ -790,7 +802,7 @@ function getFormParameters(form, filterFn) {
790
802
  if (typeof filterFn == 'function' && !filterFn(elem)) {
791
803
  continue;
792
804
  }
793
- if (elem.name && !INPUT_TYPE_BLACKLIST.includes(elem.type)) {
805
+ if (elem.name && !INPUT_TYPE_BLOCKLIST.includes(elem.type)) {
794
806
  if ((elem.type != 'checkbox' && elem.type != 'radio') || elem.checked) {
795
807
  parameters[elem.name] = elem.value;
796
808
  }
@@ -799,6 +811,7 @@ function getFormParameters(form, filterFn) {
799
811
  }
800
812
  return parameters;
801
813
  }
814
+ // this picks up changes to the form
802
815
  function bindFormParameters(form, fn, filterFn) {
803
816
  if (typeof form == 'object' && form.nodeName == 'FORM') {
804
817
  for (var i = form.elements.length - 1; i >= 0; i--) {
@@ -806,7 +819,7 @@ function bindFormParameters(form, fn, filterFn) {
806
819
  if (typeof filterFn == 'function' && !filterFn(elem)) {
807
820
  continue;
808
821
  }
809
- if (elem.name && !INPUT_TYPE_BLACKLIST.includes(elem.type)) {
822
+ if (elem.name && !INPUT_TYPE_BLOCKLIST.includes(elem.type)) {
810
823
  elem.addEventListener('change', fn);
811
824
  }
812
825
  }
@@ -816,7 +829,7 @@ function unbindFormParameters(form, fn) {
816
829
  if (typeof form == 'object' && form.nodeName == 'FORM') {
817
830
  for (var i = form.elements.length - 1; i >= 0; i--) {
818
831
  var elem = form.elements[i];
819
- if (elem.name && !INPUT_TYPE_BLACKLIST.includes(elem.type)) {
832
+ if (elem.name && !INPUT_TYPE_BLOCKLIST.includes(elem.type)) {
820
833
  elem.removeEventListener('change', fn);
821
834
  }
822
835
  }
@@ -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,EAAmC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB9H,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;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqH9B;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,EAAmC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB9H,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;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
@@ -170,13 +170,9 @@ var FinderController = /** @class */ (function (_super) {
170
170
  return [4 /*yield*/, this.client.finder(params)];
171
171
  case 8:
172
172
  _a = _b.sent(), meta = _a[0], response = _a[1];
173
- // @ts-ignore
173
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
174
174
  if (!response.meta) {
175
- /**
176
- * MockClient will overwrite the client search() method and use
177
- * SearchData to return mock data which already contains meta data
178
- */
179
- // @ts-ignore
175
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
180
176
  response.meta = meta;
181
177
  }
182
178
  searchProfile.stop();
@@ -209,7 +205,7 @@ var FinderController = /** @class */ (function (_super) {
209
205
  afterSearchProfile.stop();
210
206
  this.log.profile(afterSearchProfile);
211
207
  // update the store
212
- // @ts-ignore
208
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
213
209
  this.store.update(response);
214
210
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
215
211
  _b.label = 13;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAsB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,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;gBAG9D,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;IAqI3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAmO9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAqB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,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;gBAG9D,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;IAqI3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
@@ -80,7 +80,6 @@ var AbstractController_1 = require("../Abstract/AbstractController");
80
80
  var snap_store_mobx_1 = require("@searchspring/snap-store-mobx");
81
81
  var getParams_1 = require("../utils/getParams");
82
82
  var types_1 = require("../types");
83
- var HEIGHT_CHECK_INTERVAL = 50;
84
83
  var API_LIMIT = 500;
85
84
  var defaultConfig = {
86
85
  id: 'search',
@@ -244,11 +243,7 @@ var SearchController = /** @class */ (function (_super) {
244
243
  // set the response results with results from backfill responses
245
244
  response_1.results = backfillResults_1;
246
245
  if (!response_1.meta) {
247
- /**
248
- * MockClient will overwrite the client search() method and use
249
- * SearchData to return mock data which already contains meta data
250
- */
251
- // @ts-ignore
246
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
252
247
  response_1.meta = meta_1;
253
248
  }
254
249
  return [3 /*break*/, 14];
@@ -256,13 +251,9 @@ var SearchController = /** @class */ (function (_super) {
256
251
  case 13:
257
252
  // infinite with no backfills.
258
253
  _b = _x.sent(), meta_1 = _b[0], response_1 = _b[1];
259
- // @ts-ignore
254
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
260
255
  if (!response_1.meta) {
261
- /**
262
- * MockClient will overwrite the client search() method and use
263
- * SearchData to return mock data which already contains meta data
264
- */
265
- // @ts-ignore
256
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
266
257
  response_1.meta = meta_1;
267
258
  }
268
259
  //append new results to previous results
@@ -273,13 +264,9 @@ var SearchController = /** @class */ (function (_super) {
273
264
  case 16:
274
265
  //standard.
275
266
  _c = _x.sent(), meta_1 = _c[0], response_1 = _c[1];
276
- // @ts-ignore
267
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
277
268
  if (!response_1.meta) {
278
- /**
279
- * MockClient will overwrite the client search() method and use
280
- * SearchData to return mock data which already contains meta data
281
- */
282
- // @ts-ignore
269
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
283
270
  response_1.meta = meta_1;
284
271
  }
285
272
  _x.label = 17;
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA8C,MAAM,+BAA+B,CAAC;AACzG,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,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AA0B/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,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;IA6D3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;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,aAAa,KAAG,IAAI;;;;uBAiDpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0E3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
1
+ {"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACrF,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,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEnJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AA0B/B,aAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,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;IA6D3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;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,aAAa,KAAG,IAAI;;;;uBA8DpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAkH9B;CACF"}
@@ -35,7 +35,7 @@ export class AutocompleteController extends AbstractController {
35
35
  this.track = {
36
36
  // TODO: add in future when autocomplete supports result click tracking
37
37
  product: {
38
- click: (e, result) => {
38
+ click: () => {
39
39
  this.log.warn('product.click tracking is not currently supported in this controller type');
40
40
  },
41
41
  },
@@ -173,8 +173,8 @@ export class AutocompleteController extends AbstractController {
173
173
  this.setFocused(e.target);
174
174
  }
175
175
  const value = e.target.value;
176
- // prevent search when value is unchanged
177
- if (this.store.state.input == value && this.store.loaded) {
176
+ // prevent search when value is unchanged or empty
177
+ if (((!this.store.state.input && !value) || this.store.state.input == value) && this.store.loaded) {
178
178
  return;
179
179
  }
180
180
  this.store.state.input = value;
@@ -184,23 +184,32 @@ export class AutocompleteController extends AbstractController {
184
184
  input.value = value;
185
185
  });
186
186
  }
187
+ // TODO cancel any current requests?
187
188
  clearTimeout(this.handlers.input.timeoutDelay);
189
+ const trendingResultsEnabled = this.store.trending?.length && this.config.settings?.trending?.showResults;
190
+ const historyResultsEnabled = this.store.history?.length && this.config.settings?.history?.showResults;
188
191
  if (!value) {
189
- // TODO cancel any current requests?
192
+ // there is no input value - reset state of store and UrlManager
190
193
  this.store.reset();
191
194
  this.urlManager.reset().go();
192
- if (this.store.trending?.length && this.config.settings?.trending?.showResults) {
195
+ // show results for trending or history (if configured) - trending has priority
196
+ if (trendingResultsEnabled) {
193
197
  this.store.trending[0].preview();
194
198
  }
195
- else if (this.store.history?.length && this.config.settings?.history?.showResults) {
199
+ else if (historyResultsEnabled) {
196
200
  this.store.history[0].preview();
197
201
  }
198
202
  }
199
203
  else {
204
+ // new query in the input - trigger a new search via UrlManager
200
205
  this.store.resetTerms();
201
206
  this.handlers.input.timeoutDelay = setTimeout(() => {
202
207
  this.store.state.locks.terms.unlock();
203
208
  this.store.state.locks.facets.unlock();
209
+ // must reset query to ensure funcitonality when trending/history term is equal to the typed term
210
+ if (trendingResultsEnabled || historyResultsEnabled) {
211
+ this.urlManager.set({ query: '' }).go();
212
+ }
204
213
  this.urlManager.set({ query: this.store.state.input }).go();
205
214
  }, INPUT_DELAY);
206
215
  }
@@ -242,7 +251,12 @@ export class AutocompleteController extends AbstractController {
242
251
  this.store.updateTrendingTerms(terms);
243
252
  };
244
253
  this.search = async () => {
254
+ // if urlManager has no query, there will be no need to get params and no query
255
+ if (!this.urlManager.state.query) {
256
+ return;
257
+ }
245
258
  const params = this.params;
259
+ // if params have no query do not search
246
260
  if (!params?.search?.query?.string) {
247
261
  return;
248
262
  }
@@ -265,13 +279,9 @@ export class AutocompleteController extends AbstractController {
265
279
  }
266
280
  const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
267
281
  const [meta, response] = await this.client.autocomplete(params);
268
- // @ts-ignore
282
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
269
283
  if (!response.meta) {
270
- /**
271
- * MockClient will overwrite the client search() method and use
272
- * SearchData to return mock data which already contains meta data
273
- */
274
- // @ts-ignore
284
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
275
285
  response.meta = meta;
276
286
  }
277
287
  searchProfile.stop();
@@ -298,7 +308,6 @@ export class AutocompleteController extends AbstractController {
298
308
  afterSearchProfile.stop();
299
309
  this.log.profile(afterSearchProfile);
300
310
  // update the store
301
- // @ts-ignore
302
311
  this.store.update(response);
303
312
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
304
313
  try {
@@ -508,6 +517,7 @@ export class AutocompleteController extends AbstractController {
508
517
  else if (form) {
509
518
  form.addEventListener('submit', this.handlers.input.formSubmit);
510
519
  formActionUrl = form.action || '';
520
+ // serializeForm will include additional form element in our urlManager as globals
511
521
  if (this.config.settings?.serializeForm) {
512
522
  bindFormParameters(form, this.handlers.input.formElementChange, function (elem) {
513
523
  return elem != input;
@@ -528,10 +538,12 @@ export class AutocompleteController extends AbstractController {
528
538
  };
529
539
  }));
530
540
  }
531
- if (document.activeElement === input) {
541
+ // if the input is currently focused, trigger setFocues which will eventually trigger keyup - but not if loading
542
+ if (document.activeElement === input && !this.store.loading) {
532
543
  this.setFocused(input);
533
544
  }
534
545
  });
546
+ // get trending terms - this is at the bottom because urlManager changes need to be in place before creating the store
535
547
  if (this.config.settings?.trending?.limit && this.config.settings?.trending?.limit > 0 && !this.store.trending?.length) {
536
548
  this.searchTrending();
537
549
  }
@@ -554,7 +566,7 @@ async function timeout(time) {
554
566
  });
555
567
  }
556
568
  // for grabbing other parameters from the form and using them in UrlManager
557
- const INPUT_TYPE_BLACKLIST = ['file', 'reset', 'submit', 'button', 'image', 'password'];
569
+ const INPUT_TYPE_BLOCKLIST = ['file', 'reset', 'submit', 'button', 'image', 'password'];
558
570
  function getFormParameters(form, filterFn) {
559
571
  const parameters = {};
560
572
  if (typeof form == 'object' && form.nodeName == 'FORM') {
@@ -563,7 +575,7 @@ function getFormParameters(form, filterFn) {
563
575
  if (typeof filterFn == 'function' && !filterFn(elem)) {
564
576
  continue;
565
577
  }
566
- if (elem.name && !INPUT_TYPE_BLACKLIST.includes(elem.type)) {
578
+ if (elem.name && !INPUT_TYPE_BLOCKLIST.includes(elem.type)) {
567
579
  if ((elem.type != 'checkbox' && elem.type != 'radio') || elem.checked) {
568
580
  parameters[elem.name] = elem.value;
569
581
  }
@@ -572,6 +584,7 @@ function getFormParameters(form, filterFn) {
572
584
  }
573
585
  return parameters;
574
586
  }
587
+ // this picks up changes to the form
575
588
  function bindFormParameters(form, fn, filterFn) {
576
589
  if (typeof form == 'object' && form.nodeName == 'FORM') {
577
590
  for (let i = form.elements.length - 1; i >= 0; i--) {
@@ -579,7 +592,7 @@ function bindFormParameters(form, fn, filterFn) {
579
592
  if (typeof filterFn == 'function' && !filterFn(elem)) {
580
593
  continue;
581
594
  }
582
- if (elem.name && !INPUT_TYPE_BLACKLIST.includes(elem.type)) {
595
+ if (elem.name && !INPUT_TYPE_BLOCKLIST.includes(elem.type)) {
583
596
  elem.addEventListener('change', fn);
584
597
  }
585
598
  }
@@ -589,7 +602,7 @@ function unbindFormParameters(form, fn) {
589
602
  if (typeof form == 'object' && form.nodeName == 'FORM') {
590
603
  for (let i = form.elements.length - 1; i >= 0; i--) {
591
604
  const elem = form.elements[i];
592
- if (elem.name && !INPUT_TYPE_BLACKLIST.includes(elem.type)) {
605
+ if (elem.name && !INPUT_TYPE_BLOCKLIST.includes(elem.type)) {
593
606
  elem.removeEventListener('change', fn);
594
607
  }
595
608
  }
@@ -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,EAAmC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB9H,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;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqH9B;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,EAAmC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB9H,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;IA2C3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAe5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
@@ -70,13 +70,9 @@ export class FinderController extends AbstractController {
70
70
  }
71
71
  const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
72
72
  const [meta, response] = await this.client.finder(params);
73
- // @ts-ignore
73
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
74
74
  if (!response.meta) {
75
- /**
76
- * MockClient will overwrite the client search() method and use
77
- * SearchData to return mock data which already contains meta data
78
- */
79
- // @ts-ignore
75
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
80
76
  response.meta = meta;
81
77
  }
82
78
  searchProfile.stop();
@@ -103,7 +99,7 @@ export class FinderController extends AbstractController {
103
99
  afterSearchProfile.stop();
104
100
  this.log.profile(afterSearchProfile);
105
101
  // update the store
106
- // @ts-ignore
102
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
107
103
  this.store.update(response);
108
104
  const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
109
105
  try {
@@ -189,7 +185,7 @@ export class FinderController extends AbstractController {
189
185
  const userId = this.tracker.getUserId();
190
186
  const sessionId = this.tracker.getContext().sessionId;
191
187
  const pageLoadId = this.tracker.getContext().pageLoadId;
192
- let tracking = {};
188
+ const tracking = {};
193
189
  if (userId) {
194
190
  tracking.userId = userId;
195
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAsB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,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;gBAG9D,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;IAqI3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAmO9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACX,sBAAsB,EAItB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAqB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,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;gBAG9D,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;IAqI3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAuN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
@@ -3,7 +3,6 @@ import { AbstractController } from '../Abstract/AbstractController';
3
3
  import { StorageStore, StorageType, ErrorType } from '@searchspring/snap-store-mobx';
4
4
  import { getSearchParams } from '../utils/getParams';
5
5
  import { ControllerTypes } from '../types';
6
- const HEIGHT_CHECK_INTERVAL = 50;
7
6
  const API_LIMIT = 500;
8
7
  const defaultConfig = {
9
8
  id: 'search',
@@ -126,7 +125,7 @@ export class SearchController extends AbstractController {
126
125
  // infinite backfill results
127
126
  if (backfills && backfills.length) {
128
127
  // array to hold all results from backfill responses
129
- let backfillResults = [];
128
+ const backfillResults = [];
130
129
  const backfillResponses = await Promise.all(backfills);
131
130
  backfillResponses.map(([metaBackfill, responseBackfill]) => {
132
131
  if (!meta) {
@@ -147,24 +146,16 @@ export class SearchController extends AbstractController {
147
146
  // set the response results with results from backfill responses
148
147
  response.results = backfillResults;
149
148
  if (!response.meta) {
150
- /**
151
- * MockClient will overwrite the client search() method and use
152
- * SearchData to return mock data which already contains meta data
153
- */
154
- // @ts-ignore
149
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
155
150
  response.meta = meta;
156
151
  }
157
152
  }
158
153
  else {
159
154
  // infinite with no backfills.
160
155
  [meta, response] = await this.client.search(params);
161
- // @ts-ignore
156
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
162
157
  if (!response.meta) {
163
- /**
164
- * MockClient will overwrite the client search() method and use
165
- * SearchData to return mock data which already contains meta data
166
- */
167
- // @ts-ignore
158
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
168
159
  response.meta = meta;
169
160
  }
170
161
  //append new results to previous results
@@ -174,13 +165,9 @@ export class SearchController extends AbstractController {
174
165
  else {
175
166
  //standard.
176
167
  [meta, response] = await this.client.search(params);
177
- // @ts-ignore
168
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
178
169
  if (!response.meta) {
179
- /**
180
- * MockClient will overwrite the client search() method and use
181
- * SearchData to return mock data which already contains meta data
182
- */
183
- // @ts-ignore
170
+ // @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
184
171
  response.meta = meta;
185
172
  }
186
173
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.42.3",
3
+ "version": "0.43.1",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,21 +20,21 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.42.3",
24
- "deepmerge": "4.2.2"
23
+ "@searchspring/snap-toolbox": "^0.43.1",
24
+ "deepmerge": "4.3.1"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-client": "^0.42.3",
28
- "@searchspring/snap-event-manager": "^0.42.3",
29
- "@searchspring/snap-logger": "^0.42.3",
30
- "@searchspring/snap-profiler": "^0.42.3",
31
- "@searchspring/snap-store-mobx": "^0.42.3",
32
- "@searchspring/snap-tracker": "^0.42.3",
33
- "@searchspring/snap-url-manager": "^0.42.3"
27
+ "@searchspring/snap-client": "^0.43.1",
28
+ "@searchspring/snap-event-manager": "^0.43.1",
29
+ "@searchspring/snap-logger": "^0.43.1",
30
+ "@searchspring/snap-profiler": "^0.43.1",
31
+ "@searchspring/snap-store-mobx": "^0.43.1",
32
+ "@searchspring/snap-tracker": "^0.43.1",
33
+ "@searchspring/snap-url-manager": "^0.43.1"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "files": [
37
37
  "dist/**/*"
38
38
  ],
39
- "gitHead": "1f4391fecb93cba1e227bee2b965a9903b29c65b"
39
+ "gitHead": "45b2fd3657b3d4dddf4256657d18baa4be0647f8"
40
40
  }