@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.
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +8 -6
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +65 -54
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +3 -1
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +10 -2
- package/package.json +10 -10
|
@@ -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,
|
|
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 (
|
|
333
|
-
switch (
|
|
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 =
|
|
347
|
+
terms = _e.sent();
|
|
348
348
|
trendingProfile.stop();
|
|
349
349
|
this.log.profile(trendingProfile);
|
|
350
|
-
|
|
351
|
-
|
|
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;
|
|
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,
|
|
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*/,
|
|
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
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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*/,
|
|
247
|
-
case
|
|
248
|
-
case
|
|
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 =
|
|
263
|
-
case
|
|
264
|
-
case
|
|
265
|
-
case
|
|
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 =
|
|
278
|
-
case
|
|
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 =
|
|
283
|
-
case
|
|
284
|
-
_u.trys.push([
|
|
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
|
|
300
|
+
case 19:
|
|
291
301
|
_u.sent();
|
|
292
|
-
return [3 /*break*/,
|
|
293
|
-
case
|
|
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*/,
|
|
305
|
-
case
|
|
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 =
|
|
315
|
-
case
|
|
316
|
-
_u.trys.push([
|
|
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
|
|
333
|
+
case 23:
|
|
323
334
|
_u.sent();
|
|
324
|
-
return [3 /*break*/,
|
|
325
|
-
case
|
|
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*/,
|
|
337
|
-
case
|
|
347
|
+
return [3 /*break*/, 25];
|
|
348
|
+
case 25:
|
|
338
349
|
afterStoreProfile.stop();
|
|
339
350
|
this.log.profile(afterStoreProfile);
|
|
340
|
-
return [3 /*break*/,
|
|
341
|
-
case
|
|
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*/,
|
|
369
|
-
case
|
|
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,
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.38.1",
|
|
24
24
|
"deepmerge": "4.2.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-client": "^0.
|
|
28
|
-
"@searchspring/snap-event-manager": "^0.
|
|
29
|
-
"@searchspring/snap-logger": "^0.
|
|
30
|
-
"@searchspring/snap-profiler": "^0.
|
|
31
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
32
|
-
"@searchspring/snap-tracker": "^0.
|
|
33
|
-
"@searchspring/snap-url-manager": "^0.
|
|
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": "
|
|
39
|
+
"gitHead": "c7f130f994a310eb4fefc9806ea102194981bed0"
|
|
40
40
|
}
|