@searchspring/snap-controller 0.61.4 → 0.62.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.
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +52 -65
- package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderController.js +30 -41
- package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/cjs/Recommendation/RecommendationController.js +45 -48
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +53 -66
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +25 -24
- package/dist/esm/Finder/FinderController.d.ts.map +1 -1
- package/dist/esm/Finder/FinderController.js +12 -13
- package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/esm/Recommendation/RecommendationController.js +23 -17
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +12 -15
- package/package.json +10 -10
|
@@ -46,14 +46,15 @@ export class FinderController extends AbstractController {
|
|
|
46
46
|
this.store.setService('urlManager', this.urlManager);
|
|
47
47
|
};
|
|
48
48
|
this.search = async () => {
|
|
49
|
-
if (!this.initialized) {
|
|
50
|
-
await this.init();
|
|
51
|
-
}
|
|
52
|
-
if (this.store.state.persisted) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
const params = this.params;
|
|
56
49
|
try {
|
|
50
|
+
if (!this.initialized) {
|
|
51
|
+
await this.init();
|
|
52
|
+
}
|
|
53
|
+
if (this.store.state.persisted) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const params = this.params;
|
|
57
|
+
this.store.loading = true;
|
|
57
58
|
try {
|
|
58
59
|
await this.eventManager.fire('beforeSearch', {
|
|
59
60
|
controller: this,
|
|
@@ -164,9 +165,11 @@ export class FinderController extends AbstractController {
|
|
|
164
165
|
this.log.error(err);
|
|
165
166
|
this.handleError(err);
|
|
166
167
|
}
|
|
167
|
-
this.store.loading = false;
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
+
finally {
|
|
171
|
+
this.store.loading = false;
|
|
172
|
+
}
|
|
170
173
|
};
|
|
171
174
|
// deep merge config with defaults
|
|
172
175
|
this.config = deepmerge(defaultConfig, this.config);
|
|
@@ -180,11 +183,7 @@ export class FinderController extends AbstractController {
|
|
|
180
183
|
};
|
|
181
184
|
});
|
|
182
185
|
}
|
|
183
|
-
this
|
|
184
|
-
finder.controller.store.loading = true;
|
|
185
|
-
await next();
|
|
186
|
-
});
|
|
187
|
-
// TODO: move this to afterStore
|
|
186
|
+
// TODO: remove this aftersearch when store interface changes
|
|
188
187
|
this.eventManager.on('afterSearch', async (finder, next) => {
|
|
189
188
|
await next();
|
|
190
189
|
finder.controller.store.loading = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,
|
|
1
|
+
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAiB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEpH,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC;QACnE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC;QACrD,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC;QACzD,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC;QAChE,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC;KAC5D,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,WAAW,GAAG,SAAS,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,GAAG,SAAS,CAAC;IAC1E,UAAU,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,WAAW,GAAG,SAAS,CAAC;CACzD,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,UAAU,CAAC,EAAE,WAAW,CAAC;YAAC,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;KAC7E,CAKC;gBAGD,MAAM,EAAE,8BAA8B,EACtC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA4C3B,KAAK,EAAE,0BAA0B,CAwS5B;IAEL,IAAI,MAAM,IAAI,qBAAqB,CA2BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0H9B;CACF"}
|
|
@@ -65,7 +65,7 @@ export class RecommendationController extends AbstractController {
|
|
|
65
65
|
product: {
|
|
66
66
|
id: result.id,
|
|
67
67
|
mappings: {
|
|
68
|
-
core: result.
|
|
68
|
+
core: result.mappings.core,
|
|
69
69
|
},
|
|
70
70
|
seed: getSeed(),
|
|
71
71
|
},
|
|
@@ -92,7 +92,7 @@ export class RecommendationController extends AbstractController {
|
|
|
92
92
|
product: {
|
|
93
93
|
id: result.id,
|
|
94
94
|
mappings: {
|
|
95
|
-
core: result.
|
|
95
|
+
core: result.mappings.core,
|
|
96
96
|
},
|
|
97
97
|
seed: getSeed(),
|
|
98
98
|
},
|
|
@@ -120,7 +120,7 @@ export class RecommendationController extends AbstractController {
|
|
|
120
120
|
product: {
|
|
121
121
|
id: result.id,
|
|
122
122
|
mappings: {
|
|
123
|
-
core: result.
|
|
123
|
+
core: result.mappings.core,
|
|
124
124
|
},
|
|
125
125
|
seed: getSeed(),
|
|
126
126
|
},
|
|
@@ -152,7 +152,7 @@ export class RecommendationController extends AbstractController {
|
|
|
152
152
|
product: {
|
|
153
153
|
id: result.id,
|
|
154
154
|
mappings: {
|
|
155
|
-
core: result.
|
|
155
|
+
core: result.mappings.core,
|
|
156
156
|
},
|
|
157
157
|
seed: getSeed(),
|
|
158
158
|
},
|
|
@@ -184,7 +184,7 @@ export class RecommendationController extends AbstractController {
|
|
|
184
184
|
product: {
|
|
185
185
|
id: result.id,
|
|
186
186
|
mappings: {
|
|
187
|
-
core: result.
|
|
187
|
+
core: result.mappings.core,
|
|
188
188
|
},
|
|
189
189
|
seed: getSeed(),
|
|
190
190
|
},
|
|
@@ -213,7 +213,7 @@ export class RecommendationController extends AbstractController {
|
|
|
213
213
|
products: results.map((result) => ({
|
|
214
214
|
id: result.id,
|
|
215
215
|
mappings: {
|
|
216
|
-
core: result.
|
|
216
|
+
core: result.mappings.core,
|
|
217
217
|
},
|
|
218
218
|
quantity: result.quantity,
|
|
219
219
|
})),
|
|
@@ -311,11 +311,12 @@ export class RecommendationController extends AbstractController {
|
|
|
311
311
|
};
|
|
312
312
|
})();
|
|
313
313
|
this.search = async () => {
|
|
314
|
-
if (!this.initialized) {
|
|
315
|
-
await this.init();
|
|
316
|
-
}
|
|
317
|
-
const params = this.params;
|
|
318
314
|
try {
|
|
315
|
+
if (!this.initialized) {
|
|
316
|
+
await this.init();
|
|
317
|
+
}
|
|
318
|
+
const params = this.params;
|
|
319
|
+
this.store.loading = true;
|
|
319
320
|
try {
|
|
320
321
|
await this.eventManager.fire('beforeSearch', {
|
|
321
322
|
controller: this,
|
|
@@ -420,21 +421,27 @@ export class RecommendationController extends AbstractController {
|
|
|
420
421
|
this.log.error(err);
|
|
421
422
|
this.handleError(err);
|
|
422
423
|
}
|
|
423
|
-
this.store.loading = false;
|
|
424
424
|
}
|
|
425
425
|
}
|
|
426
|
+
finally {
|
|
427
|
+
this.store.loading = false;
|
|
428
|
+
}
|
|
426
429
|
};
|
|
427
430
|
if (!config.tag) {
|
|
428
431
|
throw new Error(`Invalid config passed to RecommendationController. The "tag" attribute is required.`);
|
|
429
432
|
}
|
|
433
|
+
// attach to bfCache restore event and re-run search on the controller
|
|
434
|
+
// enabled by default
|
|
435
|
+
if (config.settings?.searchOnPageShow !== false) {
|
|
436
|
+
window.addEventListener('pageshow', (e) => {
|
|
437
|
+
if (e.persisted && !this.store.error && this.store.loaded && !this.store.loading) {
|
|
438
|
+
this.search();
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
}
|
|
430
442
|
// deep merge config with defaults
|
|
431
443
|
this.config = deepmerge(defaultConfig, this.config);
|
|
432
444
|
this.store.setConfig(this.config);
|
|
433
|
-
// add 'beforeSearch' middleware
|
|
434
|
-
this.eventManager.on('beforeSearch', async (recommend, next) => {
|
|
435
|
-
recommend.controller.store.loading = true;
|
|
436
|
-
await next();
|
|
437
|
-
});
|
|
438
445
|
// add 'afterStore' middleware
|
|
439
446
|
this.eventManager.on('afterStore', async (recommend, next) => {
|
|
440
447
|
await next();
|
|
@@ -449,7 +456,6 @@ export class RecommendationController extends AbstractController {
|
|
|
449
456
|
this.track.product.removedFromBundle(item);
|
|
450
457
|
});
|
|
451
458
|
});
|
|
452
|
-
recommend.controller.store.loading = false;
|
|
453
459
|
});
|
|
454
460
|
// attach config plugins and event middleware
|
|
455
461
|
this.use(this.config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,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,EACX,sBAAsB,
|
|
1
|
+
{"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAExE,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,EACX,sBAAsB,EAGtB,kBAAkB,EAClB,gBAAgB,EAGhB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACX,kBAAkB,EAKlB,MAAM,2BAA2B,CAAC;AAmBnC,KAAK,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;IAuJ3B,KAAK,EAAE,kBAAkB,CA+CvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAiD/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAmN9B;CACF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,GAAG,SAAS,CAgCvG"}
|
|
@@ -67,15 +67,16 @@ export class SearchController extends AbstractController {
|
|
|
67
67
|
},
|
|
68
68
|
};
|
|
69
69
|
this.search = async () => {
|
|
70
|
-
if (!this.initialized) {
|
|
71
|
-
await this.init();
|
|
72
|
-
}
|
|
73
|
-
const params = this.params;
|
|
74
|
-
if (this.params.search?.query?.string && this.params.search?.query?.string.length) {
|
|
75
|
-
// save it to the history store
|
|
76
|
-
this.store.history.save(this.params.search.query.string);
|
|
77
|
-
}
|
|
78
70
|
try {
|
|
71
|
+
if (!this.initialized) {
|
|
72
|
+
await this.init();
|
|
73
|
+
}
|
|
74
|
+
const params = this.params;
|
|
75
|
+
if (this.params.search?.query?.string && this.params.search?.query?.string.length) {
|
|
76
|
+
// save it to the history store
|
|
77
|
+
this.store.history.save(this.params.search.query.string);
|
|
78
|
+
}
|
|
79
|
+
this.store.loading = true;
|
|
79
80
|
try {
|
|
80
81
|
await this.eventManager.fire('beforeSearch', {
|
|
81
82
|
controller: this,
|
|
@@ -250,9 +251,11 @@ export class SearchController extends AbstractController {
|
|
|
250
251
|
this.log.error(err);
|
|
251
252
|
this.handleError(err);
|
|
252
253
|
}
|
|
253
|
-
this.store.loading = false;
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
|
+
finally {
|
|
257
|
+
this.store.loading = false;
|
|
258
|
+
}
|
|
256
259
|
};
|
|
257
260
|
// deep merge config with defaults
|
|
258
261
|
this.config = deepmerge(defaultConfig, this.config);
|
|
@@ -267,11 +270,6 @@ export class SearchController extends AbstractController {
|
|
|
267
270
|
});
|
|
268
271
|
// set last params to undefined for compare in search
|
|
269
272
|
this.storage.set('lastStringyParams', undefined);
|
|
270
|
-
// add 'beforeSearch' middleware
|
|
271
|
-
this.eventManager.on('beforeSearch', async (search, next) => {
|
|
272
|
-
search.controller.store.loading = true;
|
|
273
|
-
await next();
|
|
274
|
-
});
|
|
275
273
|
// add 'afterSearch' middleware
|
|
276
274
|
this.eventManager.on('afterSearch', async (search, next) => {
|
|
277
275
|
const config = search.controller.config;
|
|
@@ -306,7 +304,6 @@ export class SearchController extends AbstractController {
|
|
|
306
304
|
this.storage.set('scrollMap', {});
|
|
307
305
|
}
|
|
308
306
|
await this.eventManager.fire('restorePosition', { controller: this, element: elementPosition });
|
|
309
|
-
search.controller.store.loading = false;
|
|
310
307
|
});
|
|
311
308
|
// restore position
|
|
312
309
|
if (this.config.settings?.restorePosition?.enabled) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-controller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.62.0",
|
|
4
4
|
"description": "Snap Controllers",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -20,22 +20,22 @@
|
|
|
20
20
|
"test:watch": "jest --watch"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@searchspring/snap-toolbox": "^0.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.62.0",
|
|
24
24
|
"css.escape": "1.5.1",
|
|
25
25
|
"deepmerge": "4.3.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@searchspring/snap-client": "^0.
|
|
29
|
-
"@searchspring/snap-event-manager": "^0.
|
|
30
|
-
"@searchspring/snap-logger": "^0.
|
|
31
|
-
"@searchspring/snap-profiler": "^0.
|
|
32
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
33
|
-
"@searchspring/snap-tracker": "^0.
|
|
34
|
-
"@searchspring/snap-url-manager": "^0.
|
|
28
|
+
"@searchspring/snap-client": "^0.62.0",
|
|
29
|
+
"@searchspring/snap-event-manager": "^0.62.0",
|
|
30
|
+
"@searchspring/snap-logger": "^0.62.0",
|
|
31
|
+
"@searchspring/snap-profiler": "^0.62.0",
|
|
32
|
+
"@searchspring/snap-store-mobx": "^0.62.0",
|
|
33
|
+
"@searchspring/snap-tracker": "^0.62.0",
|
|
34
|
+
"@searchspring/snap-url-manager": "^0.62.0"
|
|
35
35
|
},
|
|
36
36
|
"sideEffects": false,
|
|
37
37
|
"files": [
|
|
38
38
|
"dist/**/*"
|
|
39
39
|
],
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "2c9561e8b0097a44c5587bc5629068b06041385f"
|
|
41
41
|
}
|