@searchspring/snap-controller 0.30.2 → 0.31.0
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":"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;gBAGrB,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;
|
|
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;gBAGrB,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;IAmG3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
|
|
@@ -100,7 +100,9 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
100
100
|
__extends(SearchController, _super);
|
|
101
101
|
function SearchController(config, _a, context) {
|
|
102
102
|
var client = _a.client, store = _a.store, urlManager = _a.urlManager, eventManager = _a.eventManager, profiler = _a.profiler, logger = _a.logger, tracker = _a.tracker;
|
|
103
|
-
var _this =
|
|
103
|
+
var _this = this;
|
|
104
|
+
var _b, _c, _d;
|
|
105
|
+
_this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
|
|
104
106
|
_this.type = types_1.ControllerTypes.search;
|
|
105
107
|
_this.track = {
|
|
106
108
|
product: {
|
|
@@ -314,6 +316,12 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
314
316
|
}); };
|
|
315
317
|
// deep merge config with defaults
|
|
316
318
|
_this.config = (0, deepmerge_1.default)(defaultConfig, _this.config);
|
|
319
|
+
if (((_b = _this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) && typeof _this.config.settings.infinite.restorePosition == 'undefined') {
|
|
320
|
+
_this.config.settings.infinite.restorePosition = true;
|
|
321
|
+
}
|
|
322
|
+
if ((window === null || window === void 0 ? void 0 : window.history) && ((_d = (_c = _this.config.settings) === null || _c === void 0 ? void 0 : _c.infinite) === null || _d === void 0 ? void 0 : _d.restorePosition)) {
|
|
323
|
+
window.history.scrollRestoration = 'manual';
|
|
324
|
+
}
|
|
317
325
|
_this.store.setConfig(_this.config);
|
|
318
326
|
_this.storage = new snap_store_mobx_1.StorageStore({
|
|
319
327
|
type: snap_store_mobx_1.StorageType.SESSION,
|
|
@@ -365,12 +373,12 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
365
373
|
_this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
|
|
366
374
|
var requestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
|
|
367
375
|
var _this = this;
|
|
368
|
-
var _a, _b;
|
|
369
|
-
return __generator(this, function (
|
|
370
|
-
switch (
|
|
376
|
+
var _a, _b, _c;
|
|
377
|
+
return __generator(this, function (_d) {
|
|
378
|
+
switch (_d.label) {
|
|
371
379
|
case 0: return [4 /*yield*/, next()];
|
|
372
380
|
case 1:
|
|
373
|
-
|
|
381
|
+
_d.sent();
|
|
374
382
|
search.controller.store.loading = false;
|
|
375
383
|
// save last params
|
|
376
384
|
this.storage.set('lastStringyParams', JSON.stringify(search.request));
|
|
@@ -382,7 +390,7 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
382
390
|
delete requestParams.search.redirectResponse;
|
|
383
391
|
}
|
|
384
392
|
stringyParams = JSON.stringify(requestParams);
|
|
385
|
-
if (((_b = this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite)
|
|
393
|
+
if ((_c = (_b = this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) === null || _c === void 0 ? void 0 : _c.restorePosition) {
|
|
386
394
|
scrollMap_1 = this.storage.get('scrollMap') || {};
|
|
387
395
|
scrollToPosition_1 = scrollMap_1[stringyParams];
|
|
388
396
|
if (scrollToPosition_1) {
|
|
@@ -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;gBAGrB,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;
|
|
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;gBAGrB,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;IAmG3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
|
|
@@ -200,6 +200,12 @@ export class SearchController extends AbstractController {
|
|
|
200
200
|
};
|
|
201
201
|
// deep merge config with defaults
|
|
202
202
|
this.config = deepmerge(defaultConfig, this.config);
|
|
203
|
+
if (this.config.settings?.infinite && typeof this.config.settings.infinite.restorePosition == 'undefined') {
|
|
204
|
+
this.config.settings.infinite.restorePosition = true;
|
|
205
|
+
}
|
|
206
|
+
if (window?.history && this.config.settings?.infinite?.restorePosition) {
|
|
207
|
+
window.history.scrollRestoration = 'manual';
|
|
208
|
+
}
|
|
203
209
|
this.store.setConfig(this.config);
|
|
204
210
|
this.storage = new StorageStore({
|
|
205
211
|
type: StorageType.SESSION,
|
|
@@ -243,8 +249,8 @@ export class SearchController extends AbstractController {
|
|
|
243
249
|
delete requestParams.search.redirectResponse;
|
|
244
250
|
}
|
|
245
251
|
const stringyParams = JSON.stringify(requestParams);
|
|
246
|
-
if (this.config.settings?.infinite
|
|
247
|
-
//
|
|
252
|
+
if (this.config.settings?.infinite?.restorePosition) {
|
|
253
|
+
// restore the scroll position saved previously
|
|
248
254
|
const scrollMap = this.storage.get('scrollMap') || {};
|
|
249
255
|
// interval we ony need to keep checking until the page height > than our stored value
|
|
250
256
|
const scrollToPosition = scrollMap[stringyParams];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-controller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
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.31.0",
|
|
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.31.0",
|
|
28
|
+
"@searchspring/snap-event-manager": "^0.31.0",
|
|
29
|
+
"@searchspring/snap-logger": "^0.31.0",
|
|
30
|
+
"@searchspring/snap-profiler": "^0.31.0",
|
|
31
|
+
"@searchspring/snap-store-mobx": "^0.31.0",
|
|
32
|
+
"@searchspring/snap-tracker": "^0.31.0",
|
|
33
|
+
"@searchspring/snap-url-manager": "^0.31.0"
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|
|
36
36
|
"files": [
|
|
37
37
|
"dist/**/*"
|
|
38
38
|
],
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "b09e1f5eb179f8ef167d264fab4dc5234ac9f83b"
|
|
40
40
|
}
|