@searchspring/snap-controller 0.34.0 → 0.34.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/Search/SearchController.d.ts +1 -0
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +35 -33
- package/dist/esm/Search/SearchController.d.ts +1 -0
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +23 -23
- package/package.json +10 -10
|
@@ -21,5 +21,6 @@ export declare class SearchController extends AbstractController {
|
|
|
21
21
|
get params(): SearchRequestModel;
|
|
22
22
|
search: () => Promise<void>;
|
|
23
23
|
}
|
|
24
|
+
export declare function getStorableRequestParams(request: SearchRequestModel): SearchRequestModel;
|
|
24
25
|
export {};
|
|
25
26
|
//# sourceMappingURL=SearchController.d.ts.map
|
|
@@ -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;
|
|
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;IA+F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA8J9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
|
|
@@ -74,7 +74,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
74
74
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
75
75
|
};
|
|
76
76
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
77
|
-
exports.SearchController = void 0;
|
|
77
|
+
exports.getStorableRequestParams = exports.SearchController = void 0;
|
|
78
78
|
var deepmerge_1 = __importDefault(require("deepmerge"));
|
|
79
79
|
var AbstractController_1 = require("../Abstract/AbstractController");
|
|
80
80
|
var snap_store_mobx_1 = require("@searchspring/snap-store-mobx");
|
|
@@ -108,30 +108,21 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
108
108
|
_this.track = {
|
|
109
109
|
product: {
|
|
110
110
|
click: function (e, result) {
|
|
111
|
-
var _a, _b
|
|
111
|
+
var _a, _b;
|
|
112
112
|
// store scroll position
|
|
113
113
|
if ((_a = _this.config.settings) === null || _a === void 0 ? void 0 : _a.infinite) {
|
|
114
114
|
var stringyParams = _this.storage.get('lastStringyParams');
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if ((paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search) && Object.keys(paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search).length === 0) {
|
|
119
|
-
// if redirectResponse was the only key, also delete the empty search object
|
|
120
|
-
delete paramsObj.search;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
if (paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.personalization) {
|
|
124
|
-
paramsObj === null || paramsObj === void 0 ? true : delete paramsObj.personalization;
|
|
125
|
-
}
|
|
126
|
-
stringyParams = JSON.stringify(paramsObj);
|
|
115
|
+
stringyParams = JSON.parse(stringyParams);
|
|
116
|
+
var storableRequestParams = getStorableRequestParams(stringyParams);
|
|
117
|
+
stringyParams = JSON.stringify(storableRequestParams);
|
|
127
118
|
var scrollMap = {};
|
|
128
119
|
scrollMap[stringyParams] = window.scrollY;
|
|
129
120
|
_this.storage.set('scrollMap', scrollMap);
|
|
130
121
|
}
|
|
131
122
|
// track
|
|
132
|
-
var
|
|
123
|
+
var _c = result.attributes, intellisuggestData = _c.intellisuggestData, intellisuggestSignature = _c.intellisuggestSignature;
|
|
133
124
|
var target = e.target;
|
|
134
|
-
var href = (target === null || target === void 0 ? void 0 : target.href) || ((
|
|
125
|
+
var href = (target === null || target === void 0 ? void 0 : target.href) || ((_b = result.mappings.core) === null || _b === void 0 ? void 0 : _b.url) || undefined;
|
|
135
126
|
var event = _this.tracker.track.product.click({
|
|
136
127
|
intellisuggestData: intellisuggestData,
|
|
137
128
|
intellisuggestSignature: intellisuggestSignature,
|
|
@@ -379,29 +370,20 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
379
370
|
});
|
|
380
371
|
}); });
|
|
381
372
|
_this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
|
|
382
|
-
var
|
|
373
|
+
var storableRequestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
|
|
383
374
|
var _this = this;
|
|
384
|
-
var _a, _b
|
|
385
|
-
return __generator(this, function (
|
|
386
|
-
switch (
|
|
375
|
+
var _a, _b;
|
|
376
|
+
return __generator(this, function (_c) {
|
|
377
|
+
switch (_c.label) {
|
|
387
378
|
case 0: return [4 /*yield*/, next()];
|
|
388
379
|
case 1:
|
|
389
|
-
|
|
380
|
+
_c.sent();
|
|
390
381
|
search.controller.store.loading = false;
|
|
391
382
|
// save last params
|
|
392
383
|
this.storage.set('lastStringyParams', JSON.stringify(search.request));
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
}
|
|
397
|
-
if ((_a = requestParams === null || requestParams === void 0 ? void 0 : requestParams.search) === null || _a === void 0 ? void 0 : _a.redirectResponse) {
|
|
398
|
-
delete requestParams.search.redirectResponse;
|
|
399
|
-
}
|
|
400
|
-
if (requestParams.tracking.pageLoadId) {
|
|
401
|
-
delete requestParams.tracking.pageLoadId;
|
|
402
|
-
}
|
|
403
|
-
stringyParams = JSON.stringify(requestParams);
|
|
404
|
-
if ((_c = (_b = this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) === null || _c === void 0 ? void 0 : _c.restorePosition) {
|
|
384
|
+
storableRequestParams = getStorableRequestParams(search.request);
|
|
385
|
+
stringyParams = JSON.stringify(storableRequestParams);
|
|
386
|
+
if ((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.infinite) === null || _b === void 0 ? void 0 : _b.restorePosition) {
|
|
405
387
|
scrollMap_1 = this.storage.get('scrollMap') || {};
|
|
406
388
|
scrollToPosition_1 = scrollMap_1[stringyParams];
|
|
407
389
|
if (scrollToPosition_1) {
|
|
@@ -475,3 +457,23 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
475
457
|
return SearchController;
|
|
476
458
|
}(AbstractController_1.AbstractController));
|
|
477
459
|
exports.SearchController = SearchController;
|
|
460
|
+
function getStorableRequestParams(request) {
|
|
461
|
+
var _a, _b, _c, _d;
|
|
462
|
+
return {
|
|
463
|
+
siteId: request.siteId,
|
|
464
|
+
sorts: request.sorts,
|
|
465
|
+
search: {
|
|
466
|
+
query: {
|
|
467
|
+
string: ((_b = (_a = request === null || request === void 0 ? void 0 : request.search) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.string) || '',
|
|
468
|
+
},
|
|
469
|
+
subQuery: ((_c = request === null || request === void 0 ? void 0 : request.search) === null || _c === void 0 ? void 0 : _c.subQuery) || '',
|
|
470
|
+
},
|
|
471
|
+
filters: request.filters,
|
|
472
|
+
pagination: request.pagination,
|
|
473
|
+
facets: request.facets,
|
|
474
|
+
merchandising: {
|
|
475
|
+
landingPage: ((_d = request.merchandising) === null || _d === void 0 ? void 0 : _d.landingPage) || '',
|
|
476
|
+
},
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
exports.getStorableRequestParams = getStorableRequestParams;
|
|
@@ -21,5 +21,6 @@ export declare class SearchController extends AbstractController {
|
|
|
21
21
|
get params(): SearchRequestModel;
|
|
22
22
|
search: () => Promise<void>;
|
|
23
23
|
}
|
|
24
|
+
export declare function getStorableRequestParams(request: SearchRequestModel): SearchRequestModel;
|
|
24
25
|
export {};
|
|
25
26
|
//# sourceMappingURL=SearchController.d.ts.map
|
|
@@ -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;
|
|
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;IA+F3B,KAAK,EAAE,kBAAkB,CA+BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA8J9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF"}
|
|
@@ -30,18 +30,9 @@ export class SearchController extends AbstractController {
|
|
|
30
30
|
// store scroll position
|
|
31
31
|
if (this.config.settings?.infinite) {
|
|
32
32
|
let stringyParams = this.storage.get('lastStringyParams');
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (paramsObj?.search && Object.keys(paramsObj?.search).length === 0) {
|
|
37
|
-
// if redirectResponse was the only key, also delete the empty search object
|
|
38
|
-
delete paramsObj.search;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (paramsObj?.personalization) {
|
|
42
|
-
delete paramsObj?.personalization;
|
|
43
|
-
}
|
|
44
|
-
stringyParams = JSON.stringify(paramsObj);
|
|
33
|
+
stringyParams = JSON.parse(stringyParams);
|
|
34
|
+
const storableRequestParams = getStorableRequestParams(stringyParams);
|
|
35
|
+
stringyParams = JSON.stringify(storableRequestParams);
|
|
45
36
|
const scrollMap = {};
|
|
46
37
|
scrollMap[stringyParams] = window.scrollY;
|
|
47
38
|
this.storage.set('scrollMap', scrollMap);
|
|
@@ -249,17 +240,8 @@ export class SearchController extends AbstractController {
|
|
|
249
240
|
search.controller.store.loading = false;
|
|
250
241
|
// save last params
|
|
251
242
|
this.storage.set('lastStringyParams', JSON.stringify(search.request));
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
delete requestParams.personalization;
|
|
255
|
-
}
|
|
256
|
-
if (requestParams?.search?.redirectResponse) {
|
|
257
|
-
delete requestParams.search.redirectResponse;
|
|
258
|
-
}
|
|
259
|
-
if (requestParams.tracking.pageLoadId) {
|
|
260
|
-
delete requestParams.tracking.pageLoadId;
|
|
261
|
-
}
|
|
262
|
-
const stringyParams = JSON.stringify(requestParams);
|
|
243
|
+
const storableRequestParams = getStorableRequestParams(search.request);
|
|
244
|
+
const stringyParams = JSON.stringify(storableRequestParams);
|
|
263
245
|
if (this.config.settings?.infinite?.restorePosition) {
|
|
264
246
|
// restore the scroll position saved previously
|
|
265
247
|
const scrollMap = this.storage.get('scrollMap') || {};
|
|
@@ -325,3 +307,21 @@ export class SearchController extends AbstractController {
|
|
|
325
307
|
return params;
|
|
326
308
|
}
|
|
327
309
|
}
|
|
310
|
+
export function getStorableRequestParams(request) {
|
|
311
|
+
return {
|
|
312
|
+
siteId: request.siteId,
|
|
313
|
+
sorts: request.sorts,
|
|
314
|
+
search: {
|
|
315
|
+
query: {
|
|
316
|
+
string: request?.search?.query?.string || '',
|
|
317
|
+
},
|
|
318
|
+
subQuery: request?.search?.subQuery || '',
|
|
319
|
+
},
|
|
320
|
+
filters: request.filters,
|
|
321
|
+
pagination: request.pagination,
|
|
322
|
+
facets: request.facets,
|
|
323
|
+
merchandising: {
|
|
324
|
+
landingPage: request.merchandising?.landingPage || '',
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-controller",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.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.34.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.34.1",
|
|
24
24
|
"deepmerge": "4.2.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-client": "^0.34.
|
|
28
|
-
"@searchspring/snap-event-manager": "^0.34.
|
|
29
|
-
"@searchspring/snap-logger": "^0.34.
|
|
30
|
-
"@searchspring/snap-profiler": "^0.34.
|
|
31
|
-
"@searchspring/snap-store-mobx": "^0.34.
|
|
32
|
-
"@searchspring/snap-tracker": "^0.34.
|
|
33
|
-
"@searchspring/snap-url-manager": "^0.34.
|
|
27
|
+
"@searchspring/snap-client": "^0.34.1",
|
|
28
|
+
"@searchspring/snap-event-manager": "^0.34.1",
|
|
29
|
+
"@searchspring/snap-logger": "^0.34.1",
|
|
30
|
+
"@searchspring/snap-profiler": "^0.34.1",
|
|
31
|
+
"@searchspring/snap-store-mobx": "^0.34.1",
|
|
32
|
+
"@searchspring/snap-tracker": "^0.34.1",
|
|
33
|
+
"@searchspring/snap-url-manager": "^0.34.1"
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|
|
36
36
|
"files": [
|
|
37
37
|
"dist/**/*"
|
|
38
38
|
],
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "ca04548dde7220089c6ca07e88602ff9579a69bf"
|
|
40
40
|
}
|