@searchspring/snap-controller 0.73.6 → 0.74.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 +0 -1
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +91 -66
- package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderController.js +3 -0
- package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/cjs/Recommendation/RecommendationController.js +67 -57
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +112 -64
- package/dist/cjs/utils/isClickWithinProductLink.d.ts.map +1 -1
- package/dist/cjs/utils/isClickWithinProductLink.js +13 -11
- package/dist/esm/Autocomplete/AutocompleteController.d.ts +0 -1
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +68 -26
- package/dist/esm/Finder/FinderController.d.ts.map +1 -1
- package/dist/esm/Finder/FinderController.js +3 -0
- package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/esm/Recommendation/RecommendationController.js +47 -21
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +76 -20
- package/dist/esm/utils/isClickWithinProductLink.d.ts.map +1 -1
- package/dist/esm/utils/isClickWithinProductLink.js +12 -11
- package/package.json +10 -10
|
@@ -28,7 +28,6 @@ export declare class AutocompleteController extends AbstractController {
|
|
|
28
28
|
store: AutocompleteStore;
|
|
29
29
|
config: AutocompleteControllerConfig;
|
|
30
30
|
storage: StorageStore;
|
|
31
|
-
private lastSearchQuery;
|
|
32
31
|
private events;
|
|
33
32
|
constructor(config: AutocompleteControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
|
|
34
33
|
track: AutocompleteTrackMethods;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAA6C,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9I,OAAO,KAAK,EAAE,wBAAwB,EAA4C,MAAM,2BAA2B,CAAC;AAkBpH,eAAO,MAAM,WAAW,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,4BAA4B,EAA6C,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9I,OAAO,KAAK,EAAE,wBAAwB,EAA4C,MAAM,2BAA2B,CAAC;AAkBpH,eAAO,MAAM,WAAW,MAAM,CAAC;AAkC/B,KAAK,wBAAwB,GAAG;IAC/B,MAAM,EAAE;QACP,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,0BAA0B,KAAK,IAAI,CAAC;QAChF,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,0BAA0B,KAAK,IAAI,CAAC;QACvF,UAAU,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,KAAK,IAAI,CAAC;KACtE,CAAC;IACF,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7F,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;IAE7B,OAAO,CAAC,MAAM,CAgBP;gBAGN,MAAM,EAAE,4BAA4B,EACpC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IA8D3B,KAAK,EAAE,wBAAwB,CAkL7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAkDrC;IAEK,UAAU,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,KAAK,IAAI,IAAI;IASb,QAAQ;;0BAEc,aAAa,KAAG,QAAQ,OAAO,GAAG,SAAS,CAAC;wBAiDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCA+ChD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBA0DL,UAAU,KAAG,IAAI;;MAS5B;IAEF,MAAM,IAAI,IAAI;IAgBR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B,cAAc,QAAa,QAAQ,IAAI,CAAC,CAwBtC;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAkK9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAY/D;CACF"}
|
|
@@ -84,6 +84,9 @@ var defaultConfig = {
|
|
|
84
84
|
selector: '',
|
|
85
85
|
action: '',
|
|
86
86
|
globals: {},
|
|
87
|
+
beacon: {
|
|
88
|
+
enabled: true,
|
|
89
|
+
},
|
|
87
90
|
settings: {
|
|
88
91
|
integratedSpellCorrection: false,
|
|
89
92
|
initializeFromUrl: true,
|
|
@@ -113,7 +116,11 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
113
116
|
_this.track = {
|
|
114
117
|
banner: {
|
|
115
118
|
impression: function (_banner) {
|
|
116
|
-
var _a, _b, _c, _d;
|
|
119
|
+
var _a, _b, _c, _d, _e;
|
|
120
|
+
if (!_banner) {
|
|
121
|
+
_this.log.warn('No banner provided to track.banner.impression');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
117
124
|
var responseId = _banner.responseId, uid = _banner.uid;
|
|
118
125
|
if ((_c = (_b = (_a = _this.events[responseId]) === null || _a === void 0 ? void 0 : _a.banner) === null || _b === void 0 ? void 0 : _b[uid]) === null || _c === void 0 ? void 0 : _c.impression) {
|
|
119
126
|
return;
|
|
@@ -125,12 +132,16 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
125
132
|
results: [],
|
|
126
133
|
};
|
|
127
134
|
_this.eventManager.fire('track.banner.impression', { controller: _this, product: { uid: uid }, trackEvent: data });
|
|
128
|
-
_this.tracker.events.autocomplete.impression({ data: data, siteId: (
|
|
135
|
+
((_d = _this.config.beacon) === null || _d === void 0 ? void 0 : _d.enabled) && _this.tracker.events.autocomplete.impression({ data: data, siteId: (_e = _this.config.globals) === null || _e === void 0 ? void 0 : _e.siteId });
|
|
129
136
|
_this.events[responseId].banner[uid] = _this.events[responseId].banner[uid] || {};
|
|
130
137
|
_this.events[responseId].banner[uid].impression = true;
|
|
131
138
|
},
|
|
132
139
|
click: function (e, banner) {
|
|
133
140
|
var _a, _b, _c;
|
|
141
|
+
if (!banner) {
|
|
142
|
+
_this.log.warn('No banner provided to track.banner.click');
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
134
145
|
var responseId = banner.responseId, uid = banner.uid;
|
|
135
146
|
if ((0, isClickWithinBannerLink_1.isClickWithinBannerLink)(e)) {
|
|
136
147
|
if ((_c = (_b = (_a = _this.events) === null || _a === void 0 ? void 0 : _a[responseId]) === null || _b === void 0 ? void 0 : _b.banner[uid]) === null || _c === void 0 ? void 0 : _c.clickThrough) {
|
|
@@ -145,15 +156,19 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
145
156
|
}
|
|
146
157
|
},
|
|
147
158
|
clickThrough: function (e, _a) {
|
|
148
|
-
var _b;
|
|
159
|
+
var _b, _c;
|
|
149
160
|
var uid = _a.uid, responseId = _a.responseId;
|
|
161
|
+
if (!uid) {
|
|
162
|
+
_this.log.warn('No banner uid provided to track.banner.clickThrough');
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
150
165
|
var banner = { uid: uid };
|
|
151
166
|
var data = {
|
|
152
167
|
responseId: responseId,
|
|
153
168
|
banners: [banner],
|
|
154
169
|
};
|
|
155
170
|
_this.eventManager.fire('track.banner.clickThrough', { controller: _this, event: e, product: { uid: uid }, trackEvent: data });
|
|
156
|
-
_this.tracker.events.autocomplete.clickThrough({ data: data, siteId: (
|
|
171
|
+
((_b = _this.config.beacon) === null || _b === void 0 ? void 0 : _b.enabled) && _this.tracker.events.autocomplete.clickThrough({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
|
|
157
172
|
_this.events[responseId].banner[uid] = _this.events[responseId].banner[uid] || {};
|
|
158
173
|
_this.events[responseId].banner[uid].clickThrough = true;
|
|
159
174
|
setTimeout(function () {
|
|
@@ -163,23 +178,32 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
163
178
|
},
|
|
164
179
|
product: {
|
|
165
180
|
clickThrough: function (e, result) {
|
|
166
|
-
var _a, _b;
|
|
181
|
+
var _a, _b, _c, _d;
|
|
182
|
+
if (!result) {
|
|
183
|
+
_this.log.warn('No result provided to track.product.clickThrough');
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
167
186
|
var responseId = result.responseId;
|
|
168
|
-
var
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
187
|
+
var type = (['product', 'banner'].includes(result.type) ? result.type : 'product');
|
|
188
|
+
var item = __assign({ type: type, uid: result.id ? '' + result.id : '' }, (type === 'product'
|
|
189
|
+
? {
|
|
190
|
+
parentId: result.id ? '' + result.id : '',
|
|
191
|
+
sku: ((_a = result.mappings.core) === null || _a === void 0 ? void 0 : _a.sku) ? '' + ((_b = result.mappings.core) === null || _b === void 0 ? void 0 : _b.sku) : undefined,
|
|
192
|
+
}
|
|
193
|
+
: {}));
|
|
174
194
|
var data = {
|
|
175
195
|
responseId: responseId,
|
|
176
196
|
results: [item],
|
|
177
197
|
};
|
|
178
198
|
_this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, product: result, trackEvent: data });
|
|
179
|
-
_this.tracker.events.autocomplete.clickThrough({ data: data, siteId: (
|
|
199
|
+
((_c = _this.config.beacon) === null || _c === void 0 ? void 0 : _c.enabled) && _this.tracker.events.autocomplete.clickThrough({ data: data, siteId: (_d = _this.config.globals) === null || _d === void 0 ? void 0 : _d.siteId });
|
|
180
200
|
},
|
|
181
201
|
click: function (e, result) {
|
|
182
202
|
var _a, _b, _c, _d, _e, _f;
|
|
203
|
+
if (!result) {
|
|
204
|
+
_this.log.warn('No result provided to track.product.click');
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
183
207
|
var responseId = result.responseId;
|
|
184
208
|
if (result.type === 'banner' && (0, isClickWithinBannerLink_1.isClickWithinBannerLink)(e)) {
|
|
185
209
|
if ((_c = (_b = (_a = _this.events) === null || _a === void 0 ? void 0 : _a[responseId]) === null || _b === void 0 ? void 0 : _b.product[result.id]) === null || _c === void 0 ? void 0 : _c.inlineBannerClickThrough) {
|
|
@@ -205,29 +229,38 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
205
229
|
}
|
|
206
230
|
},
|
|
207
231
|
impression: function (result) {
|
|
208
|
-
var _a, _b, _c, _d, _e;
|
|
232
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
233
|
+
if (!result) {
|
|
234
|
+
_this.log.warn('No result provided to track.product.impression');
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
209
237
|
var responseId = result.responseId;
|
|
210
238
|
if ((_c = (_b = (_a = _this.events) === null || _a === void 0 ? void 0 : _a[responseId]) === null || _b === void 0 ? void 0 : _b.product[result.id]) === null || _c === void 0 ? void 0 : _c.impression) {
|
|
211
239
|
return;
|
|
212
240
|
}
|
|
213
|
-
var
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
241
|
+
var type = (['product', 'banner'].includes(result.type) ? result.type : 'product');
|
|
242
|
+
var item = __assign({ type: type, uid: result.id ? '' + result.id : '' }, (type === 'product'
|
|
243
|
+
? {
|
|
244
|
+
parentId: result.id ? '' + result.id : '',
|
|
245
|
+
sku: ((_d = result.mappings.core) === null || _d === void 0 ? void 0 : _d.sku) ? '' + ((_e = result.mappings.core) === null || _e === void 0 ? void 0 : _e.sku) : undefined,
|
|
246
|
+
}
|
|
247
|
+
: {}));
|
|
219
248
|
var data = {
|
|
220
249
|
responseId: responseId,
|
|
221
250
|
results: [item],
|
|
222
251
|
banners: [],
|
|
223
252
|
};
|
|
224
253
|
_this.eventManager.fire('track.product.impression', { controller: _this, product: result, trackEvent: data });
|
|
225
|
-
_this.tracker.events.autocomplete.impression({ data: data, siteId: (
|
|
254
|
+
((_f = _this.config.beacon) === null || _f === void 0 ? void 0 : _f.enabled) && _this.tracker.events.autocomplete.impression({ data: data, siteId: (_g = _this.config.globals) === null || _g === void 0 ? void 0 : _g.siteId });
|
|
226
255
|
_this.events[responseId].product[result.id] = _this.events[responseId].product[result.id] || {};
|
|
227
256
|
_this.events[responseId].product[result.id].impression = true;
|
|
228
257
|
},
|
|
229
258
|
addToCart: function (result) {
|
|
230
|
-
var _a, _b, _c;
|
|
259
|
+
var _a, _b, _c, _d;
|
|
260
|
+
if (!result) {
|
|
261
|
+
_this.log.warn('No result provided to track.product.addToCart');
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
231
264
|
var responseId = result.responseId;
|
|
232
265
|
var product = {
|
|
233
266
|
parentId: result.id,
|
|
@@ -241,18 +274,22 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
241
274
|
results: [product],
|
|
242
275
|
};
|
|
243
276
|
_this.eventManager.fire('track.product.addToCart', { controller: _this, product: result, trackEvent: data });
|
|
244
|
-
_this.tracker.events.autocomplete.addToCart({ data: data, siteId: (
|
|
277
|
+
((_c = _this.config.beacon) === null || _c === void 0 ? void 0 : _c.enabled) && _this.tracker.events.autocomplete.addToCart({ data: data, siteId: (_d = _this.config.globals) === null || _d === void 0 ? void 0 : _d.siteId });
|
|
245
278
|
},
|
|
246
279
|
},
|
|
247
280
|
redirect: function (_a) {
|
|
248
|
-
var _b;
|
|
281
|
+
var _b, _c;
|
|
249
282
|
var redirectURL = _a.redirectURL, responseId = _a.responseId;
|
|
283
|
+
if (!redirectURL) {
|
|
284
|
+
_this.log.warn('No redirectURL provided to track.redirect');
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
250
287
|
var data = {
|
|
251
288
|
responseId: responseId,
|
|
252
289
|
redirect: redirectURL,
|
|
253
290
|
};
|
|
254
291
|
_this.eventManager.fire('track.redirect', { controller: _this, redirectURL: redirectURL, trackEvent: data });
|
|
255
|
-
_this.tracker.events.autocomplete.redirect({ data: data, siteId: (
|
|
292
|
+
((_b = _this.config.beacon) === null || _b === void 0 ? void 0 : _b.enabled) && _this.tracker.events.autocomplete.redirect({ data: data, siteId: (_c = _this.config.globals) === null || _c === void 0 ? void 0 : _c.siteId });
|
|
256
293
|
},
|
|
257
294
|
};
|
|
258
295
|
_this.handlers = {
|
|
@@ -515,18 +552,18 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
515
552
|
});
|
|
516
553
|
}); };
|
|
517
554
|
_this.search = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
518
|
-
var params, err_3, searchProfile, _a, meta, response, responseId_1, impressedResultIds, afterSearchProfile, err_4, afterStoreProfile, err_5, err_6;
|
|
555
|
+
var params, err_3, searchProfile, _a, meta, response, responseId_1, previousResponseId, impressedResultIds, afterSearchProfile, err_4, data, afterStoreProfile, err_5, err_6;
|
|
519
556
|
var _this = this;
|
|
520
|
-
var _b, _c, _d, _e;
|
|
521
|
-
return __generator(this, function (
|
|
522
|
-
switch (
|
|
557
|
+
var _b, _c, _d, _e, _f;
|
|
558
|
+
return __generator(this, function (_g) {
|
|
559
|
+
switch (_g.label) {
|
|
523
560
|
case 0:
|
|
524
|
-
|
|
561
|
+
_g.trys.push([0, 16, 17, 18]);
|
|
525
562
|
if (!!this.initialized) return [3 /*break*/, 2];
|
|
526
563
|
return [4 /*yield*/, this.init()];
|
|
527
564
|
case 1:
|
|
528
|
-
|
|
529
|
-
|
|
565
|
+
_g.sent();
|
|
566
|
+
_g.label = 2;
|
|
530
567
|
case 2:
|
|
531
568
|
// if urlManager has no query, there will be no need to get params and no query
|
|
532
569
|
if (!this.urlManager.state.query) {
|
|
@@ -540,18 +577,18 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
540
577
|
this.store.loading = true;
|
|
541
578
|
// clear the redirect URL until proper abort functionality is implemented
|
|
542
579
|
this.store.merchandising.redirect = '';
|
|
543
|
-
|
|
580
|
+
_g.label = 3;
|
|
544
581
|
case 3:
|
|
545
|
-
|
|
582
|
+
_g.trys.push([3, 5, , 6]);
|
|
546
583
|
return [4 /*yield*/, this.eventManager.fire('beforeSearch', {
|
|
547
584
|
controller: this,
|
|
548
585
|
request: params,
|
|
549
586
|
})];
|
|
550
587
|
case 4:
|
|
551
|
-
|
|
588
|
+
_g.sent();
|
|
552
589
|
return [3 /*break*/, 6];
|
|
553
590
|
case 5:
|
|
554
|
-
err_3 =
|
|
591
|
+
err_3 = _g.sent();
|
|
555
592
|
if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
|
|
556
593
|
this.log.warn("'beforeSearch' middleware cancelled");
|
|
557
594
|
return [2 /*return*/];
|
|
@@ -565,7 +602,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
565
602
|
searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
566
603
|
return [4 /*yield*/, this.client.autocomplete(params)];
|
|
567
604
|
case 7:
|
|
568
|
-
_a =
|
|
605
|
+
_a = _g.sent(), meta = _a[0], response = _a[1];
|
|
569
606
|
// @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
|
|
570
607
|
if (!response.meta) {
|
|
571
608
|
// @ts-ignore : MockClient will overwrite the client search() method and use SearchData to return mock data which already contains meta data
|
|
@@ -575,7 +612,8 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
575
612
|
this.log.profile(searchProfile);
|
|
576
613
|
responseId_1 = response.tracking.responseId;
|
|
577
614
|
this.events[responseId_1] = this.events[responseId_1] || { product: {}, banner: {} };
|
|
578
|
-
|
|
615
|
+
previousResponseId = (_d = this.store.results[0]) === null || _d === void 0 ? void 0 : _d.responseId;
|
|
616
|
+
if (previousResponseId && previousResponseId === responseId_1) {
|
|
579
617
|
impressedResultIds = Object.keys(this.events[responseId_1].product || {}).filter(function (resultId) { var _a, _b; return (_b = (_a = _this.events[responseId_1].product) === null || _a === void 0 ? void 0 : _a[resultId]) === null || _b === void 0 ? void 0 : _b.impression; });
|
|
580
618
|
this.events[responseId_1] = {
|
|
581
619
|
product: impressedResultIds.reduce(function (acc, resultId) {
|
|
@@ -587,22 +625,21 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
587
625
|
}
|
|
588
626
|
else {
|
|
589
627
|
this.events[responseId_1] = { product: {}, banner: {} };
|
|
590
|
-
this.lastSearchQuery = (_e = response.search) === null || _e === void 0 ? void 0 : _e.query;
|
|
591
628
|
}
|
|
592
629
|
afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params }).start();
|
|
593
|
-
|
|
630
|
+
_g.label = 8;
|
|
594
631
|
case 8:
|
|
595
|
-
|
|
632
|
+
_g.trys.push([8, 10, , 11]);
|
|
596
633
|
return [4 /*yield*/, this.eventManager.fire('afterSearch', {
|
|
597
634
|
controller: this,
|
|
598
635
|
request: params,
|
|
599
636
|
response: response,
|
|
600
637
|
})];
|
|
601
638
|
case 9:
|
|
602
|
-
|
|
639
|
+
_g.sent();
|
|
603
640
|
return [3 /*break*/, 11];
|
|
604
641
|
case 10:
|
|
605
|
-
err_4 =
|
|
642
|
+
err_4 = _g.sent();
|
|
606
643
|
if ((err_4 === null || err_4 === void 0 ? void 0 : err_4.message) == 'cancelled') {
|
|
607
644
|
this.log.warn("'afterSearch' middleware cancelled");
|
|
608
645
|
afterSearchProfile.stop();
|
|
@@ -618,20 +655,22 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
618
655
|
this.log.profile(afterSearchProfile);
|
|
619
656
|
// update the store
|
|
620
657
|
this.store.update(response);
|
|
658
|
+
data = { responseId: responseId_1 };
|
|
659
|
+
((_e = this.config.beacon) === null || _e === void 0 ? void 0 : _e.enabled) && this.tracker.events.autocomplete.render({ data: data, siteId: (_f = this.config.globals) === null || _f === void 0 ? void 0 : _f.siteId });
|
|
621
660
|
afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
|
|
622
|
-
|
|
661
|
+
_g.label = 12;
|
|
623
662
|
case 12:
|
|
624
|
-
|
|
663
|
+
_g.trys.push([12, 14, , 15]);
|
|
625
664
|
return [4 /*yield*/, this.eventManager.fire('afterStore', {
|
|
626
665
|
controller: this,
|
|
627
666
|
request: params,
|
|
628
667
|
response: response,
|
|
629
668
|
})];
|
|
630
669
|
case 13:
|
|
631
|
-
|
|
670
|
+
_g.sent();
|
|
632
671
|
return [3 /*break*/, 15];
|
|
633
672
|
case 14:
|
|
634
|
-
err_5 =
|
|
673
|
+
err_5 = _g.sent();
|
|
635
674
|
if ((err_5 === null || err_5 === void 0 ? void 0 : err_5.message) == 'cancelled') {
|
|
636
675
|
this.log.warn("'afterStore' middleware cancelled");
|
|
637
676
|
afterStoreProfile.stop();
|
|
@@ -647,7 +686,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
647
686
|
this.log.profile(afterStoreProfile);
|
|
648
687
|
return [3 /*break*/, 18];
|
|
649
688
|
case 16:
|
|
650
|
-
err_6 =
|
|
689
|
+
err_6 = _g.sent();
|
|
651
690
|
if (err_6) {
|
|
652
691
|
if (err_6.err && err_6.fetchDetails) {
|
|
653
692
|
switch (err_6.fetchDetails.status) {
|
|
@@ -699,7 +738,11 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
699
738
|
var products;
|
|
700
739
|
var _this = this;
|
|
701
740
|
return __generator(this, function (_a) {
|
|
702
|
-
products = typeof _products.slice == 'function' ? _products.slice() : [_products];
|
|
741
|
+
products = typeof (_products === null || _products === void 0 ? void 0 : _products.slice) == 'function' ? _products.slice() : [_products];
|
|
742
|
+
if (!_products || products.length === 0) {
|
|
743
|
+
this.log.warn('No products provided to autocomplete controller.addToCart');
|
|
744
|
+
return [2 /*return*/];
|
|
745
|
+
}
|
|
703
746
|
products.forEach(function (product) {
|
|
704
747
|
_this.track.product.addToCart(product);
|
|
705
748
|
});
|
|
@@ -724,24 +767,6 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
724
767
|
type: 'session',
|
|
725
768
|
key: "ss-controller-".concat(_this.config.id),
|
|
726
769
|
});
|
|
727
|
-
_this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
|
|
728
|
-
var controller, responseId, data;
|
|
729
|
-
var _a;
|
|
730
|
-
return __generator(this, function (_b) {
|
|
731
|
-
switch (_b.label) {
|
|
732
|
-
case 0: return [4 /*yield*/, next()];
|
|
733
|
-
case 1:
|
|
734
|
-
_b.sent();
|
|
735
|
-
controller = search.controller;
|
|
736
|
-
responseId = search.response.tracking.responseId;
|
|
737
|
-
if (controller.store.loaded && !controller.store.error) {
|
|
738
|
-
data = { responseId: responseId };
|
|
739
|
-
this.tracker.events.autocomplete.render({ data: data, siteId: (_a = this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
|
|
740
|
-
}
|
|
741
|
-
return [2 /*return*/];
|
|
742
|
-
}
|
|
743
|
-
});
|
|
744
|
-
}); });
|
|
745
770
|
// add 'afterSearch' middleware
|
|
746
771
|
_this.eventManager.on('afterSearch', function (ac, next) { return __awaiter(_this, void 0, void 0, function () {
|
|
747
772
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAwB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FinderController.d.ts","sourceRoot":"","sources":["../../../src/Finder/FinderController.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAwB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoBnH,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,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+B3B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA6BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAkB5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoI9B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAW3C,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAW3C,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGrG,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QAC/C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;CACF,CAAC;AAaF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,OAAO,CAAC,MAAM,CAUP;gBAGN,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;IAwC3B,KAAK,EAAE,0BAA0B,CA+G/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CAgI9B;IAEF,SAAS,cAAqB,OAAO,EAAE,GAAG,OAAO,KAAG,QAAQ,IAAI,CAAC,CAY/D;CACF"}
|