@searchspring/snap-controller 0.34.0 → 0.34.3

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;IA2F3B,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");
@@ -101,37 +101,28 @@ var SearchController = /** @class */ (function (_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
103
  var _this = this;
104
- var _b, _c, _d;
104
+ var _b;
105
105
  _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
106
106
  _this.type = types_1.ControllerTypes.search;
107
107
  _this.previousResults = [];
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,
@@ -327,9 +318,6 @@ var SearchController = /** @class */ (function (_super) {
327
318
  if (((_b = _this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) && typeof _this.config.settings.infinite.restorePosition == 'undefined') {
328
319
  _this.config.settings.infinite.restorePosition = true;
329
320
  }
330
- 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)) {
331
- window.history.scrollRestoration = 'manual';
332
- }
333
321
  _this.store.setConfig(_this.config);
334
322
  _this.storage = new snap_store_mobx_1.StorageStore({
335
323
  type: snap_store_mobx_1.StorageType.SESSION,
@@ -379,29 +367,20 @@ var SearchController = /** @class */ (function (_super) {
379
367
  });
380
368
  }); });
381
369
  _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;
370
+ var storableRequestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
383
371
  var _this = this;
384
- var _a, _b, _c;
385
- return __generator(this, function (_d) {
386
- switch (_d.label) {
372
+ var _a, _b;
373
+ return __generator(this, function (_c) {
374
+ switch (_c.label) {
387
375
  case 0: return [4 /*yield*/, next()];
388
376
  case 1:
389
- _d.sent();
377
+ _c.sent();
390
378
  search.controller.store.loading = false;
391
379
  // save last params
392
380
  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) {
381
+ storableRequestParams = getStorableRequestParams(search.request);
382
+ stringyParams = JSON.stringify(storableRequestParams);
383
+ if ((_b = (_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.infinite) === null || _b === void 0 ? void 0 : _b.restorePosition) {
405
384
  scrollMap_1 = this.storage.get('scrollMap') || {};
406
385
  scrollToPosition_1 = scrollMap_1[stringyParams];
407
386
  if (scrollToPosition_1) {
@@ -475,3 +454,23 @@ var SearchController = /** @class */ (function (_super) {
475
454
  return SearchController;
476
455
  }(AbstractController_1.AbstractController));
477
456
  exports.SearchController = SearchController;
457
+ function getStorableRequestParams(request) {
458
+ var _a, _b, _c, _d;
459
+ return {
460
+ siteId: request.siteId,
461
+ sorts: request.sorts,
462
+ search: {
463
+ query: {
464
+ 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) || '',
465
+ },
466
+ subQuery: ((_c = request === null || request === void 0 ? void 0 : request.search) === null || _c === void 0 ? void 0 : _c.subQuery) || '',
467
+ },
468
+ filters: request.filters,
469
+ pagination: request.pagination,
470
+ facets: request.facets,
471
+ merchandising: {
472
+ landingPage: ((_d = request.merchandising) === null || _d === void 0 ? void 0 : _d.landingPage) || '',
473
+ },
474
+ };
475
+ }
476
+ 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;IA2F3B,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);
@@ -211,9 +202,6 @@ export class SearchController extends AbstractController {
211
202
  if (this.config.settings?.infinite && typeof this.config.settings.infinite.restorePosition == 'undefined') {
212
203
  this.config.settings.infinite.restorePosition = true;
213
204
  }
214
- if (window?.history && this.config.settings?.infinite?.restorePosition) {
215
- window.history.scrollRestoration = 'manual';
216
- }
217
205
  this.store.setConfig(this.config);
218
206
  this.storage = new StorageStore({
219
207
  type: StorageType.SESSION,
@@ -249,17 +237,8 @@ export class SearchController extends AbstractController {
249
237
  search.controller.store.loading = false;
250
238
  // save last params
251
239
  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);
240
+ const storableRequestParams = getStorableRequestParams(search.request);
241
+ const stringyParams = JSON.stringify(storableRequestParams);
263
242
  if (this.config.settings?.infinite?.restorePosition) {
264
243
  // restore the scroll position saved previously
265
244
  const scrollMap = this.storage.get('scrollMap') || {};
@@ -325,3 +304,21 @@ export class SearchController extends AbstractController {
325
304
  return params;
326
305
  }
327
306
  }
307
+ export function getStorableRequestParams(request) {
308
+ return {
309
+ siteId: request.siteId,
310
+ sorts: request.sorts,
311
+ search: {
312
+ query: {
313
+ string: request?.search?.query?.string || '',
314
+ },
315
+ subQuery: request?.search?.subQuery || '',
316
+ },
317
+ filters: request.filters,
318
+ pagination: request.pagination,
319
+ facets: request.facets,
320
+ merchandising: {
321
+ landingPage: request.merchandising?.landingPage || '',
322
+ },
323
+ };
324
+ }
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.3",
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.3",
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.3",
28
+ "@searchspring/snap-event-manager": "^0.34.3",
29
+ "@searchspring/snap-logger": "^0.34.3",
30
+ "@searchspring/snap-profiler": "^0.34.3",
31
+ "@searchspring/snap-store-mobx": "^0.34.3",
32
+ "@searchspring/snap-tracker": "^0.34.3",
33
+ "@searchspring/snap-url-manager": "^0.34.3"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "files": [
37
37
  "dist/**/*"
38
38
  ],
39
- "gitHead": "ba20dc14f2c771f77e2ba840059500209e37e07d"
39
+ "gitHead": "a65e4ec69ae5c605d81d597cd50bd86448a480b6"
40
40
  }