@searchspring/snap-controller 0.37.1 → 0.38.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,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;AAuB/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;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,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;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAuBtC;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;AAuB/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;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,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;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
@@ -328,9 +328,9 @@ var AutocompleteController = /** @class */ (function (_super) {
328
328
  };
329
329
  _this.searchTrending = function () { return __awaiter(_this, void 0, void 0, function () {
330
330
  var terms, storedTerms, trendingParams, trendingProfile;
331
- var _a, _b;
332
- return __generator(this, function (_c) {
333
- switch (_c.label) {
331
+ var _a, _b, _c, _d;
332
+ return __generator(this, function (_e) {
333
+ switch (_e.label) {
334
334
  case 0:
335
335
  storedTerms = this.storage.get('terms');
336
336
  if (!storedTerms) return [3 /*break*/, 1];
@@ -344,11 +344,13 @@ var AutocompleteController = /** @class */ (function (_super) {
344
344
  trendingProfile = this.profiler.create({ type: 'event', name: 'trending', context: trendingParams }).start();
345
345
  return [4 /*yield*/, this.client.trending(trendingParams)];
346
346
  case 2:
347
- terms = _c.sent();
347
+ terms = _e.sent();
348
348
  trendingProfile.stop();
349
349
  this.log.profile(trendingProfile);
350
- this.storage.set('terms', JSON.stringify(terms));
351
- _c.label = 3;
350
+ if ((_d = (_c = terms === null || terms === void 0 ? void 0 : terms.trending) === null || _c === void 0 ? void 0 : _c.queries) === null || _d === void 0 ? void 0 : _d.length) {
351
+ this.storage.set('terms', JSON.stringify(terms));
352
+ }
353
+ _e.label = 3;
352
354
  case 3:
353
355
  this.store.updateTrendingTerms(terms);
354
356
  return [2 /*return*/];
@@ -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,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAoB7I,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;IA2F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6N9B;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,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,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;IA2F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqO9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
@@ -93,6 +93,7 @@ var defaultConfig = {
93
93
  trim: true,
94
94
  pinFiltered: true,
95
95
  storeRange: true,
96
+ autoOpenActive: true,
96
97
  },
97
98
  },
98
99
  };
@@ -134,7 +135,7 @@ var SearchController = /** @class */ (function (_super) {
134
135
  },
135
136
  };
136
137
  _this.search = function () { return __awaiter(_this, void 0, void 0, function () {
137
- var params, err_1, stringyParams, prevStringyParams, searchProfile, meta_1, response_1, preventBackfill, dontBackfill, previousResults, backfills, pageSize, pagesNeeded1, totalResultsNeeded, apiLimit, backfillParams, pagesNeeded, lastPageCount, i, backfillParams, backfillResults_1, backfillResponses, afterSearchProfile, err_2, afterStoreProfile, err_3, err_4;
138
+ var params, err_1, stringyParams, prevStringyParams, searchProfile, meta_1, response_1, preventBackfill, dontBackfill, previousResults, backfills, pageSize, meta_2, pagesNeeded1, totalResultsNeeded, apiLimit, backfillParams, pagesNeeded, lastPageCount, i, backfillParams, backfillResults_1, backfillResponses, afterSearchProfile, err_2, afterStoreProfile, err_3, err_4;
138
139
  var _a, _b;
139
140
  var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
140
141
  return __generator(this, function (_u) {
@@ -149,7 +150,7 @@ var SearchController = /** @class */ (function (_super) {
149
150
  params = this.params;
150
151
  _u.label = 3;
151
152
  case 3:
152
- _u.trys.push([3, 23, , 24]);
153
+ _u.trys.push([3, 26, , 27]);
153
154
  _u.label = 4;
154
155
  case 4:
155
156
  _u.trys.push([4, 6, , 7]);
@@ -179,7 +180,7 @@ var SearchController = /** @class */ (function (_super) {
179
180
  return [2 /*return*/];
180
181
  }
181
182
  searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
182
- if (!(((_c = this.config.settings) === null || _c === void 0 ? void 0 : _c.infinite) && ((_d = params.pagination) === null || _d === void 0 ? void 0 : _d.page) > 1)) return [3 /*break*/, 12];
183
+ if (!(((_c = this.config.settings) === null || _c === void 0 ? void 0 : _c.infinite) && ((_d = params.pagination) === null || _d === void 0 ? void 0 : _d.page) > 1)) return [3 /*break*/, 15];
183
184
  preventBackfill = ((_e = this.config.settings.infinite) === null || _e === void 0 ? void 0 : _e.backfill) && !this.store.results.length && ((_f = params.pagination) === null || _f === void 0 ? void 0 : _f.page) > this.config.settings.infinite.backfill;
184
185
  dontBackfill = !((_g = this.config.settings.infinite) === null || _g === void 0 ? void 0 : _g.backfill) && !this.store.results.length && ((_h = params.pagination) === null || _h === void 0 ? void 0 : _h.page) > 1;
185
186
  //if the page is higher than the backfill setting redirect back to page 1
@@ -190,32 +191,40 @@ var SearchController = /** @class */ (function (_super) {
190
191
  }
191
192
  previousResults = this.previousResults;
192
193
  backfills = [];
193
- if (((_j = this.config.settings) === null || _j === void 0 ? void 0 : _j.infinite.backfill) && !previousResults.length) {
194
- pageSize = ((_k = params.pagination) === null || _k === void 0 ? void 0 : _k.pageSize) || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
195
- pagesNeeded1 = ((_l = params.pagination) === null || _l === void 0 ? void 0 : _l.page) && ((_m = params.pagination) === null || _m === void 0 ? void 0 : _m.page) > ((_o = this.config.settings) === null || _o === void 0 ? void 0 : _o.infinite.backfill)
196
- ? (_p = this.config.settings) === null || _p === void 0 ? void 0 : _p.infinite.backfill
197
- : (_q = params.pagination) === null || _q === void 0 ? void 0 : _q.page;
198
- totalResultsNeeded = pageSize * (pagesNeeded1 || 1);
199
- apiLimit = 500;
200
- // our search api is limited to a certain amount per request.
201
- //so we will need to make more than one request if totalresultsneeded is greater.
202
- if (totalResultsNeeded < apiLimit) {
203
- backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { pageSize: totalResultsNeeded, page: 1 } });
194
+ pageSize = ((_j = params.pagination) === null || _j === void 0 ? void 0 : _j.pageSize) || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
195
+ if (!(((_k = this.config.settings) === null || _k === void 0 ? void 0 : _k.infinite.backfill) && !previousResults.length)) return [3 /*break*/, 10];
196
+ if (!!pageSize) return [3 /*break*/, 9];
197
+ return [4 /*yield*/, this.client.meta()];
198
+ case 8:
199
+ meta_2 = _u.sent();
200
+ pageSize = (_l = meta_2.pagination) === null || _l === void 0 ? void 0 : _l.defaultPageSize;
201
+ _u.label = 9;
202
+ case 9:
203
+ pagesNeeded1 = ((_m = params.pagination) === null || _m === void 0 ? void 0 : _m.page) && ((_o = params.pagination) === null || _o === void 0 ? void 0 : _o.page) > ((_p = this.config.settings) === null || _p === void 0 ? void 0 : _p.infinite.backfill)
204
+ ? (_q = this.config.settings) === null || _q === void 0 ? void 0 : _q.infinite.backfill
205
+ : (_r = params.pagination) === null || _r === void 0 ? void 0 : _r.page;
206
+ totalResultsNeeded = pageSize * (pagesNeeded1 || 1);
207
+ apiLimit = 500;
208
+ // our search api is limited to a certain amount per request.
209
+ //so we will need to make more than one request if totalresultsneeded is greater.
210
+ if (totalResultsNeeded < apiLimit) {
211
+ backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { pageSize: totalResultsNeeded, page: 1 } });
212
+ backfills.push(this.client.search(backfillParams));
213
+ }
214
+ else {
215
+ pagesNeeded = Math.ceil(totalResultsNeeded / apiLimit);
216
+ lastPageCount = apiLimit - (pagesNeeded * apiLimit - totalResultsNeeded);
217
+ for (i = 1; i <= pagesNeeded; i++) {
218
+ backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { pageSize: i < pagesNeeded ? apiLimit : lastPageCount, page: i } });
204
219
  backfills.push(this.client.search(backfillParams));
205
220
  }
206
- else {
207
- pagesNeeded = Math.ceil(totalResultsNeeded / apiLimit);
208
- lastPageCount = apiLimit - (pagesNeeded * apiLimit - totalResultsNeeded);
209
- for (i = 1; i <= pagesNeeded; i++) {
210
- backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { pageSize: i < pagesNeeded ? apiLimit : lastPageCount, page: i } });
211
- backfills.push(this.client.search(backfillParams));
212
- }
213
- }
214
221
  }
215
- if (!(backfills && backfills.length)) return [3 /*break*/, 9];
222
+ _u.label = 10;
223
+ case 10:
224
+ if (!(backfills && backfills.length)) return [3 /*break*/, 12];
216
225
  backfillResults_1 = [];
217
226
  return [4 /*yield*/, Promise.all(backfills)];
218
- case 8:
227
+ case 11:
219
228
  backfillResponses = _u.sent();
220
229
  backfillResponses.map(function (_a) {
221
230
  var Bmeta = _a[0], Bresponse = _a[1];
@@ -239,13 +248,14 @@ var SearchController = /** @class */ (function (_super) {
239
248
  response_1.meta = meta_1;
240
249
  }
241
250
  //we need to overwrite the pagination params so the ui doesnt get confused.
242
- response_1.pagination.pageSize = ((_r = params.pagination) === null || _r === void 0 ? void 0 : _r.pageSize) || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
251
+ response_1.pagination.pageSize = pageSize;
252
+ response_1.pagination.totalPages = Math.ceil(response_1.pagination.totalResults / response_1.pagination.pageSize);
243
253
  response_1.pagination.page = (_s = params.pagination) === null || _s === void 0 ? void 0 : _s.page;
244
254
  //set the response results after all backfill promises are resolved.
245
255
  response_1.results = backfillResults_1;
246
- return [3 /*break*/, 11];
247
- case 9: return [4 /*yield*/, this.client.search(params)];
248
- case 10:
256
+ return [3 /*break*/, 14];
257
+ case 12: return [4 /*yield*/, this.client.search(params)];
258
+ case 13:
249
259
  // infinite with no backfills.
250
260
  _a = _u.sent(), meta_1 = _a[0], response_1 = _a[1];
251
261
  // @ts-ignore
@@ -259,10 +269,10 @@ var SearchController = /** @class */ (function (_super) {
259
269
  }
260
270
  //append new results to previous results
261
271
  response_1.results = __spreadArray(__spreadArray([], previousResults, true), (response_1.results || []), true);
262
- _u.label = 11;
263
- case 11: return [3 /*break*/, 14];
264
- case 12: return [4 /*yield*/, this.client.search(params)];
265
- case 13:
272
+ _u.label = 14;
273
+ case 14: return [3 /*break*/, 17];
274
+ case 15: return [4 /*yield*/, this.client.search(params)];
275
+ case 16:
266
276
  //standard.
267
277
  _b = _u.sent(), meta_1 = _b[0], response_1 = _b[1];
268
278
  // @ts-ignore
@@ -274,23 +284,23 @@ var SearchController = /** @class */ (function (_super) {
274
284
  // @ts-ignore
275
285
  response_1.meta = meta_1;
276
286
  }
277
- _u.label = 14;
278
- case 14:
287
+ _u.label = 17;
288
+ case 17:
279
289
  searchProfile.stop();
280
290
  this.log.profile(searchProfile);
281
291
  afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params }).start();
282
- _u.label = 15;
283
- case 15:
284
- _u.trys.push([15, 17, , 18]);
292
+ _u.label = 18;
293
+ case 18:
294
+ _u.trys.push([18, 20, , 21]);
285
295
  return [4 /*yield*/, this.eventManager.fire('afterSearch', {
286
296
  controller: this,
287
297
  request: params,
288
298
  response: response_1,
289
299
  })];
290
- case 16:
300
+ case 19:
291
301
  _u.sent();
292
- return [3 /*break*/, 18];
293
- case 17:
302
+ return [3 /*break*/, 21];
303
+ case 20:
294
304
  err_2 = _u.sent();
295
305
  if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
296
306
  this.log.warn("'afterSearch' middleware cancelled");
@@ -301,28 +311,29 @@ var SearchController = /** @class */ (function (_super) {
301
311
  this.log.error("error in 'afterSearch' middleware");
302
312
  throw err_2;
303
313
  }
304
- return [3 /*break*/, 18];
305
- case 18:
314
+ return [3 /*break*/, 21];
315
+ case 21:
306
316
  afterSearchProfile.stop();
307
317
  this.log.profile(afterSearchProfile);
318
+ // store previous results for infinite usage
308
319
  if ((_t = this.config.settings) === null || _t === void 0 ? void 0 : _t.infinite) {
309
320
  this.previousResults = JSON.parse(JSON.stringify(response_1.results));
310
321
  }
311
322
  // update the store
312
323
  this.store.update(response_1);
313
324
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
314
- _u.label = 19;
315
- case 19:
316
- _u.trys.push([19, 21, , 22]);
325
+ _u.label = 22;
326
+ case 22:
327
+ _u.trys.push([22, 24, , 25]);
317
328
  return [4 /*yield*/, this.eventManager.fire('afterStore', {
318
329
  controller: this,
319
330
  request: params,
320
331
  response: response_1,
321
332
  })];
322
- case 20:
333
+ case 23:
323
334
  _u.sent();
324
- return [3 /*break*/, 22];
325
- case 21:
335
+ return [3 /*break*/, 25];
336
+ case 24:
326
337
  err_3 = _u.sent();
327
338
  if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
328
339
  this.log.warn("'afterStore' middleware cancelled");
@@ -333,12 +344,12 @@ var SearchController = /** @class */ (function (_super) {
333
344
  this.log.error("error in 'afterStore' middleware");
334
345
  throw err_3;
335
346
  }
336
- return [3 /*break*/, 22];
337
- case 22:
347
+ return [3 /*break*/, 25];
348
+ case 25:
338
349
  afterStoreProfile.stop();
339
350
  this.log.profile(afterStoreProfile);
340
- return [3 /*break*/, 24];
341
- case 23:
351
+ return [3 /*break*/, 27];
352
+ case 26:
342
353
  err_4 = _u.sent();
343
354
  if (err_4) {
344
355
  switch (err_4) {
@@ -365,8 +376,8 @@ var SearchController = /** @class */ (function (_super) {
365
376
  this.store.loading = false;
366
377
  this.handleError(err_4);
367
378
  }
368
- return [3 /*break*/, 24];
369
- case 24: return [2 /*return*/];
379
+ return [3 /*break*/, 27];
380
+ case 27: return [2 /*return*/];
370
381
  }
371
382
  });
372
383
  }); };
@@ -1 +1 @@
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;AAuB/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;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,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;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAuBtC;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;AAuB/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;IAoD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsChE,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;;;;uBA8CpB,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAiH9B;CACF"}
@@ -228,7 +228,9 @@ export class AutocompleteController extends AbstractController {
228
228
  terms = await this.client.trending(trendingParams);
229
229
  trendingProfile.stop();
230
230
  this.log.profile(trendingProfile);
231
- this.storage.set('terms', JSON.stringify(terms));
231
+ if (terms?.trending?.queries?.length) {
232
+ this.storage.set('terms', JSON.stringify(terms));
233
+ }
232
234
  }
233
235
  this.store.updateTrendingTerms(terms);
234
236
  };
@@ -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,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAoB7I,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;IA2F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6N9B;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,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,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;IA2F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAqO9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
@@ -16,6 +16,7 @@ const defaultConfig = {
16
16
  trim: true,
17
17
  pinFiltered: true,
18
18
  storeRange: true,
19
+ autoOpenActive: true,
19
20
  },
20
21
  },
21
22
  };
@@ -96,9 +97,14 @@ export class SearchController extends AbstractController {
96
97
  // if no results fetch results...
97
98
  let previousResults = this.previousResults;
98
99
  const backfills = [];
100
+ let pageSize = params.pagination?.pageSize || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
99
101
  if (this.config.settings?.infinite.backfill && !previousResults.length) {
100
102
  // figure out how many pages of results to backfill and wait on all responses
101
- const pageSize = params.pagination?.pageSize || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
103
+ if (!pageSize) {
104
+ //unfortunatly we need to fetch meta to know the default pagesize before we can continue.
105
+ const meta = await this.client.meta();
106
+ pageSize = meta.pagination?.defaultPageSize;
107
+ }
102
108
  let pagesNeeded1 = params.pagination?.page && params.pagination?.page > this.config.settings?.infinite.backfill
103
109
  ? this.config.settings?.infinite.backfill
104
110
  : params.pagination?.page;
@@ -147,7 +153,8 @@ export class SearchController extends AbstractController {
147
153
  response.meta = meta;
148
154
  }
149
155
  //we need to overwrite the pagination params so the ui doesnt get confused.
150
- response.pagination.pageSize = params.pagination?.pageSize || this.store.pagination.pageSize || this.store.pagination.defaultPageSize;
156
+ response.pagination.pageSize = pageSize;
157
+ response.pagination.totalPages = Math.ceil(response.pagination.totalResults / response.pagination.pageSize);
151
158
  response.pagination.page = params.pagination?.page;
152
159
  //set the response results after all backfill promises are resolved.
153
160
  response.results = backfillResults;
@@ -204,6 +211,7 @@ export class SearchController extends AbstractController {
204
211
  }
205
212
  afterSearchProfile.stop();
206
213
  this.log.profile(afterSearchProfile);
214
+ // store previous results for infinite usage
207
215
  if (this.config.settings?.infinite) {
208
216
  this.previousResults = JSON.parse(JSON.stringify(response.results));
209
217
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.37.1",
3
+ "version": "0.38.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.37.1",
23
+ "@searchspring/snap-toolbox": "^0.38.1",
24
24
  "deepmerge": "4.2.2"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-client": "^0.37.1",
28
- "@searchspring/snap-event-manager": "^0.37.1",
29
- "@searchspring/snap-logger": "^0.37.1",
30
- "@searchspring/snap-profiler": "^0.37.1",
31
- "@searchspring/snap-store-mobx": "^0.37.1",
32
- "@searchspring/snap-tracker": "^0.37.1",
33
- "@searchspring/snap-url-manager": "^0.37.1"
27
+ "@searchspring/snap-client": "^0.38.1",
28
+ "@searchspring/snap-event-manager": "^0.38.1",
29
+ "@searchspring/snap-logger": "^0.38.1",
30
+ "@searchspring/snap-profiler": "^0.38.1",
31
+ "@searchspring/snap-store-mobx": "^0.38.1",
32
+ "@searchspring/snap-tracker": "^0.38.1",
33
+ "@searchspring/snap-url-manager": "^0.38.1"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "files": [
37
37
  "dist/**/*"
38
38
  ],
39
- "gitHead": "aa7796aaea7e111ac70cb3f3349d4a096a64faf6"
39
+ "gitHead": "c7f130f994a310eb4fefc9806ea102194981bed0"
40
40
  }