@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.
@@ -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;IAuG3B,KAAK,EAAE,kBAAkB,CAwCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA8J9B;CACF"}
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, _c, _d;
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
- var paramsObj = JSON.parse(stringyParams);
116
- if ((_b = paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search) === null || _b === void 0 ? void 0 : _b.redirectResponse) {
117
- (_c = paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search) === null || _c === void 0 ? true : delete _c.redirectResponse;
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 _e = result.attributes, intellisuggestData = _e.intellisuggestData, intellisuggestSignature = _e.intellisuggestSignature;
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) || ((_d = result.mappings.core) === null || _d === void 0 ? void 0 : _d.url) || undefined;
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 requestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
373
+ var storableRequestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
383
374
  var _this = this;
384
- var _a, _b, _c;
385
- return __generator(this, function (_d) {
386
- switch (_d.label) {
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
- _d.sent();
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
- requestParams = __assign({}, search.request);
394
- if (requestParams.personalization) {
395
- delete requestParams.personalization;
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;IAuG3B,KAAK,EAAE,kBAAkB,CAwCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAgD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA8J9B;CACF"}
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
- const paramsObj = JSON.parse(stringyParams);
34
- if (paramsObj?.search?.redirectResponse) {
35
- delete paramsObj?.search?.redirectResponse;
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 requestParams = { ...search.request };
253
- if (requestParams.personalization) {
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.0",
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.0",
23
+ "@searchspring/snap-toolbox": "^0.34.1",
24
24
  "deepmerge": "4.2.2"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-client": "^0.34.0",
28
- "@searchspring/snap-event-manager": "^0.34.0",
29
- "@searchspring/snap-logger": "^0.34.0",
30
- "@searchspring/snap-profiler": "^0.34.0",
31
- "@searchspring/snap-store-mobx": "^0.34.0",
32
- "@searchspring/snap-tracker": "^0.34.0",
33
- "@searchspring/snap-url-manager": "^0.34.0"
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": "ba20dc14f2c771f77e2ba840059500209e37e07d"
39
+ "gitHead": "ca04548dde7220089c6ca07e88602ff9579a69bf"
40
40
  }