@searchspring/snap-controller 0.64.0 → 0.65.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/Autocomplete/AutocompleteController.d.ts +15 -2
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +133 -7
- package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderController.js +1 -3
- package/dist/cjs/Recommendation/RecommendationController.d.ts +12 -16
- package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/cjs/Recommendation/RecommendationController.js +83 -320
- package/dist/cjs/Search/SearchController.d.ts +10 -3
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +192 -21
- package/dist/esm/Autocomplete/AutocompleteController.d.ts +15 -2
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +127 -7
- package/dist/esm/Finder/FinderController.d.ts.map +1 -1
- package/dist/esm/Finder/FinderController.js +1 -3
- package/dist/esm/Recommendation/RecommendationController.d.ts +12 -16
- package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/esm/Recommendation/RecommendationController.js +79 -302
- package/dist/esm/Search/SearchController.d.ts +10 -3
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +173 -19
- package/package.json +10 -10
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { StorageStore } from '@searchspring/snap-store-mobx';
|
|
2
|
+
import { StorageStore, Product, Banner } from '@searchspring/snap-store-mobx';
|
|
3
3
|
import { AbstractController } from '../Abstract/AbstractController';
|
|
4
4
|
import { ControllerTypes } from '../types';
|
|
5
5
|
import { AutocompleteStore } from '@searchspring/snap-store-mobx';
|
|
@@ -8,14 +8,26 @@ import type { AutocompleteRequestModel } from '@searchspring/snapi-types';
|
|
|
8
8
|
export declare const INPUT_DELAY = 200;
|
|
9
9
|
type AutocompleteTrackMethods = {
|
|
10
10
|
product: {
|
|
11
|
-
|
|
11
|
+
clickThrough: (e: MouseEvent, result: Product) => void;
|
|
12
|
+
click: (e: MouseEvent, result: Product | Banner) => void;
|
|
13
|
+
render: (result: Product) => void;
|
|
14
|
+
impression: (result: Product) => void;
|
|
15
|
+
addToCart: (results: Product) => void;
|
|
12
16
|
};
|
|
17
|
+
redirect: (redirectURL: string) => void;
|
|
13
18
|
};
|
|
14
19
|
export declare class AutocompleteController extends AbstractController {
|
|
15
20
|
type: ControllerTypes;
|
|
16
21
|
store: AutocompleteStore;
|
|
17
22
|
config: AutocompleteControllerConfig;
|
|
18
23
|
storage: StorageStore;
|
|
24
|
+
events: {
|
|
25
|
+
product: Record<string, {
|
|
26
|
+
clickThrough?: boolean;
|
|
27
|
+
impression?: boolean;
|
|
28
|
+
render?: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
};
|
|
19
31
|
constructor(config: AutocompleteControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
|
|
20
32
|
track: AutocompleteTrackMethods;
|
|
21
33
|
get params(): AutocompleteRequestModel;
|
|
@@ -39,6 +51,7 @@ export declare class AutocompleteController extends AbstractController {
|
|
|
39
51
|
bind(): Promise<void>;
|
|
40
52
|
searchTrending: () => Promise<void>;
|
|
41
53
|
search: () => Promise<void>;
|
|
54
|
+
addToCart: (product: Product) => Promise<void>;
|
|
42
55
|
}
|
|
43
56
|
export {};
|
|
44
57
|
//# sourceMappingURL=AutocompleteController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"AutocompleteController.d.ts","sourceRoot":"","sources":["../../../src/Autocomplete/AutocompleteController.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAa,OAAO,EAAqB,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5G,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,EAAiC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAElI,OAAO,KAAK,EAAE,wBAAwB,EAAgE,MAAM,2BAA2B,CAAC;AAWxI,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;QACzD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,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,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;gBAGD,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;IA0D3B,KAAK,EAAE,wBAAwB,CAqD7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CAwCrC;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;wBAkDpD,aAAa,KAAG,IAAI;uBAMrB,UAAU,KAAG,IAAI;4BAQN,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,QAAQ,IAAI,CAAC;mCAgDhD,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI;uBAqBtD,KAAK;;;;uBAyDL,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,CA6I9B;IAEF,SAAS,YAAmB,OAAO,KAAG,QAAQ,IAAI,CAAC,CAGjD;CACF"}
|
|
@@ -107,12 +107,68 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
107
107
|
var client = _a.client, store = _a.store, urlManager = _a.urlManager, eventManager = _a.eventManager, profiler = _a.profiler, logger = _a.logger, tracker = _a.tracker;
|
|
108
108
|
var _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
|
|
109
109
|
_this.type = types_1.ControllerTypes.autocomplete;
|
|
110
|
+
_this.events = {
|
|
111
|
+
product: {},
|
|
112
|
+
};
|
|
110
113
|
_this.track = {
|
|
111
|
-
// TODO: add in future when autocomplete supports result click tracking
|
|
112
114
|
product: {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
+
clickThrough: function (e, result) {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.clickThrough) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
|
|
121
|
+
_this.tracker.events.autocomplete.clickThrough({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
|
|
122
|
+
_this.events.product[result.id] = _this.events.product[result.id] || {};
|
|
123
|
+
_this.events.product[result.id].clickThrough = true;
|
|
124
|
+
_this.eventManager.fire('track.product.clickThrough', { controller: _this, event: e, products: [result], trackEvent: data });
|
|
125
|
+
},
|
|
126
|
+
click: function (e, result) {
|
|
127
|
+
var _a, _b, _c;
|
|
128
|
+
if (result.type === 'banner') {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
// TODO: closest might be going too far - write own function to only go n levels up - additionally check that href includes result.url
|
|
132
|
+
var href = ((_a = e.target) === null || _a === void 0 ? void 0 : _a.getAttribute('href')) || ((_c = (_b = e.target) === null || _b === void 0 ? void 0 : _b.closest('a')) === null || _c === void 0 ? void 0 : _c.getAttribute('href'));
|
|
133
|
+
if (href) {
|
|
134
|
+
_this.track.product.clickThrough(e, result);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
// TODO: in future, send as an interaction event
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
render: function (result) {
|
|
141
|
+
var _a, _b;
|
|
142
|
+
if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.render)
|
|
143
|
+
return;
|
|
144
|
+
var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
|
|
145
|
+
_this.tracker.events.autocomplete.render({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
|
|
146
|
+
_this.events.product[result.id] = _this.events.product[result.id] || {};
|
|
147
|
+
_this.events.product[result.id].render = true;
|
|
148
|
+
_this.eventManager.fire('track.product.render', { controller: _this, products: [result], trackEvent: data });
|
|
149
|
+
},
|
|
150
|
+
impression: function (result) {
|
|
151
|
+
var _a, _b;
|
|
152
|
+
if ((_a = _this.events.product[result.id]) === null || _a === void 0 ? void 0 : _a.impression)
|
|
153
|
+
return;
|
|
154
|
+
var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
|
|
155
|
+
_this.tracker.events.autocomplete.impression({ data: data, siteId: (_b = _this.config.globals) === null || _b === void 0 ? void 0 : _b.siteId });
|
|
156
|
+
_this.events.product[result.id] = _this.events.product[result.id] || {};
|
|
157
|
+
_this.events.product[result.id].impression = true;
|
|
158
|
+
_this.eventManager.fire('track.product.impression', { controller: _this, products: [result], trackEvent: data });
|
|
115
159
|
},
|
|
160
|
+
addToCart: function (result) {
|
|
161
|
+
var _a;
|
|
162
|
+
var data = getAutocompleteSchemaData({ params: _this.params, store: _this.store, results: [result] });
|
|
163
|
+
_this.tracker.events.autocomplete.addToCart({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
|
|
164
|
+
_this.eventManager.fire('track.product.addToCart', { controller: _this, products: [result], trackEvent: data });
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
redirect: function (redirectURL) {
|
|
168
|
+
var _a;
|
|
169
|
+
var data = getAutocompleteRedirectSchemaData({ redirectURL: redirectURL });
|
|
170
|
+
_this.tracker.events.autocomplete.redirect({ data: data, siteId: (_a = _this.config.globals) === null || _a === void 0 ? void 0 : _a.siteId });
|
|
171
|
+
_this.eventManager.fire('track.product.redirect', { controller: _this, redirectURL: redirectURL, trackEvent: data });
|
|
116
172
|
},
|
|
117
173
|
};
|
|
118
174
|
_this.handlers = {
|
|
@@ -388,6 +444,8 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
388
444
|
_d.sent();
|
|
389
445
|
_d.label = 2;
|
|
390
446
|
case 2:
|
|
447
|
+
// reset events for new search
|
|
448
|
+
this.events = { product: {} };
|
|
391
449
|
// if urlManager has no query, there will be no need to get params and no query
|
|
392
450
|
if (!this.urlManager.state.query) {
|
|
393
451
|
return [2 /*return*/];
|
|
@@ -537,6 +595,13 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
537
595
|
}
|
|
538
596
|
});
|
|
539
597
|
}); };
|
|
598
|
+
_this.addToCart = function (product) { return __awaiter(_this, void 0, void 0, function () {
|
|
599
|
+
return __generator(this, function (_a) {
|
|
600
|
+
this.track.product.addToCart(product);
|
|
601
|
+
this.eventManager.fire('addToCart', { controller: this, products: [product] });
|
|
602
|
+
return [2 /*return*/];
|
|
603
|
+
});
|
|
604
|
+
}); };
|
|
540
605
|
// deep merge config with defaults
|
|
541
606
|
_this.config = (0, deepmerge_1.default)(defaultConfig, _this.config);
|
|
542
607
|
_this.store.setConfig(_this.config);
|
|
@@ -577,6 +642,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
577
642
|
_j.sent();
|
|
578
643
|
redirectURL = (_a = ac.controller.store.merchandising) === null || _a === void 0 ? void 0 : _a.redirect;
|
|
579
644
|
if (redirectURL && ((_d = (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.settings) === null || _c === void 0 ? void 0 : _c.redirects) === null || _d === void 0 ? void 0 : _d.merchandising)) {
|
|
645
|
+
this.track.redirect(redirectURL);
|
|
580
646
|
window.location.href = redirectURL;
|
|
581
647
|
return [2 /*return*/, false];
|
|
582
648
|
}
|
|
@@ -602,9 +668,7 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
602
668
|
var _a, _b;
|
|
603
669
|
var urlState = this.urlManager.state;
|
|
604
670
|
var params = (0, deepmerge_1.default)(__assign({}, (0, getParams_1.getSearchParams)(urlState)), this.config.globals);
|
|
605
|
-
var
|
|
606
|
-
var sessionId = this.tracker.getContext().sessionId;
|
|
607
|
-
var pageLoadId = this.tracker.getContext().pageLoadId;
|
|
671
|
+
var _c = this.tracker.getContext(), userId = _c.userId, sessionId = _c.sessionId, pageLoadId = _c.pageLoadId, shopperId = _c.shopperId;
|
|
608
672
|
params.tracking = params.tracking || {};
|
|
609
673
|
params.tracking.domain = window.location.href;
|
|
610
674
|
if (userId) {
|
|
@@ -627,7 +691,6 @@ var AutocompleteController = /** @class */ (function (_super) {
|
|
|
627
691
|
params.personalization = params.personalization || {};
|
|
628
692
|
params.personalization.lastViewed = lastViewedItems.join(',');
|
|
629
693
|
}
|
|
630
|
-
var shopperId = this.tracker.getShopperId();
|
|
631
694
|
if (shopperId) {
|
|
632
695
|
params.personalization = params.personalization || {};
|
|
633
696
|
params.personalization.shopper = shopperId;
|
|
@@ -845,3 +908,66 @@ function unbindFormParameters(form, fn) {
|
|
|
845
908
|
}
|
|
846
909
|
}
|
|
847
910
|
}
|
|
911
|
+
function getAutocompleteRedirectSchemaData(_a) {
|
|
912
|
+
var redirectURL = _a.redirectURL;
|
|
913
|
+
return {
|
|
914
|
+
redirect: redirectURL,
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
function getAutocompleteSchemaData(_a) {
|
|
918
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
919
|
+
var params = _a.params, store = _a.store, results = _a.results;
|
|
920
|
+
var filters = (_b = params.filters) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, filter) {
|
|
921
|
+
var _a;
|
|
922
|
+
var _b, _c, _d, _e;
|
|
923
|
+
var key = filter.background ? 'bgfilter' : 'filter';
|
|
924
|
+
acc[key] = acc[key] || [];
|
|
925
|
+
var value = filter.type === 'range' &&
|
|
926
|
+
!isNaN((_b = filter.value) === null || _b === void 0 ? void 0 : _b.low) &&
|
|
927
|
+
!isNaN((_c = filter.value) === null || _c === void 0 ? void 0 : _c.low)
|
|
928
|
+
? ["low=".concat((_d = filter.value) === null || _d === void 0 ? void 0 : _d.low), "high=".concat((_e = filter.value) === null || _e === void 0 ? void 0 : _e.high)]
|
|
929
|
+
: ["".concat(filter.value)];
|
|
930
|
+
var existing = acc[key].find(function (item) { return item.field === filter.field; });
|
|
931
|
+
if (existing && !existing.value.includes(value[0])) {
|
|
932
|
+
(_a = existing.value).push.apply(_a, value);
|
|
933
|
+
}
|
|
934
|
+
else {
|
|
935
|
+
acc[key].push({
|
|
936
|
+
field: filter.field,
|
|
937
|
+
value: value,
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
return acc;
|
|
941
|
+
}, {});
|
|
942
|
+
return __assign(__assign({ q: ((_d = (_c = store.search) === null || _c === void 0 ? void 0 : _c.originalQuery) === null || _d === void 0 ? void 0 : _d.string) || ((_f = (_e = store.search) === null || _e === void 0 ? void 0 : _e.query) === null || _f === void 0 ? void 0 : _f.string) || '', correctedQuery: ((_h = (_g = store.search) === null || _g === void 0 ? void 0 : _g.originalQuery) === null || _h === void 0 ? void 0 : _h.string) ? (_k = (_j = store.search) === null || _j === void 0 ? void 0 : _j.query) === null || _k === void 0 ? void 0 : _k.string : undefined }, filters), { sort: [
|
|
943
|
+
{
|
|
944
|
+
field: (_l = store.sorting.current) === null || _l === void 0 ? void 0 : _l.field,
|
|
945
|
+
dir: (_m = store.sorting.current) === null || _m === void 0 ? void 0 : _m.direction,
|
|
946
|
+
},
|
|
947
|
+
], pagination: {
|
|
948
|
+
totalResults: store.pagination.totalResults,
|
|
949
|
+
page: store.pagination.page,
|
|
950
|
+
resultsPerPage: store.pagination.pageSize,
|
|
951
|
+
}, merchandising: {
|
|
952
|
+
personalized: store.merchandising.personalized,
|
|
953
|
+
redirect: store.merchandising.redirect,
|
|
954
|
+
triggeredCampaigns: (((_o = store.merchandising.campaigns) === null || _o === void 0 ? void 0 : _o.length) &&
|
|
955
|
+
((_p = store.merchandising.campaigns) === null || _p === void 0 ? void 0 : _p.map(function (campaign) {
|
|
956
|
+
var experiement = store.merchandising.experiments.find(function (experiment) { return experiment.campaignId === campaign.id; });
|
|
957
|
+
return {
|
|
958
|
+
id: campaign.id,
|
|
959
|
+
experimentId: experiement === null || experiement === void 0 ? void 0 : experiement.experimentId,
|
|
960
|
+
variationId: experiement === null || experiement === void 0 ? void 0 : experiement.variationId,
|
|
961
|
+
};
|
|
962
|
+
}))) ||
|
|
963
|
+
undefined,
|
|
964
|
+
}, results: (results === null || results === void 0 ? void 0 : results.map(function (result) {
|
|
965
|
+
var core = result.mappings.core;
|
|
966
|
+
return {
|
|
967
|
+
uid: core.uid || '',
|
|
968
|
+
// childUid: core.uid,
|
|
969
|
+
sku: core.sku,
|
|
970
|
+
// childSku: core.sku,
|
|
971
|
+
};
|
|
972
|
+
})) || [] });
|
|
973
|
+
}
|
|
@@ -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,EAAkB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB7G,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,
|
|
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,EAAkB,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB7G,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"}
|
|
@@ -314,9 +314,7 @@ var FinderController = /** @class */ (function (_super) {
|
|
|
314
314
|
Object.defineProperty(FinderController.prototype, "params", {
|
|
315
315
|
get: function () {
|
|
316
316
|
var urlState = this.urlManager.state;
|
|
317
|
-
var
|
|
318
|
-
var sessionId = this.tracker.getContext().sessionId;
|
|
319
|
-
var pageLoadId = this.tracker.getContext().pageLoadId;
|
|
317
|
+
var _a = this.tracker.getContext(), userId = _a.userId, sessionId = _a.sessionId, pageLoadId = _a.pageLoadId;
|
|
320
318
|
var tracking = {};
|
|
321
319
|
if (userId) {
|
|
322
320
|
tracking.userId = userId;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Product } from '@searchspring/snap-store-mobx';
|
|
2
|
-
import { BeaconEvent } from '@searchspring/snap-tracker';
|
|
3
2
|
import { AbstractController } from '../Abstract/AbstractController';
|
|
4
3
|
import { ControllerTypes } from '../types';
|
|
5
4
|
import type { RecommendationStore } from '@searchspring/snap-store-mobx';
|
|
@@ -7,28 +6,25 @@ import type { RecommendRequestModel } from '@searchspring/snap-client';
|
|
|
7
6
|
import type { RecommendationControllerConfig, ControllerServices, ContextVariables } from '../types';
|
|
8
7
|
type RecommendationTrackMethods = {
|
|
9
8
|
product: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
clickThrough: (e: MouseEvent, result: Product) => void;
|
|
10
|
+
click: (e: MouseEvent, result: Product) => void;
|
|
11
|
+
render: (result: Product) => void;
|
|
12
|
+
impression: (result: Product) => void;
|
|
13
|
+
addToCart: (result: Product) => void;
|
|
14
|
+
};
|
|
15
|
+
bundle: {
|
|
16
|
+
addToCart: (results: Product[]) => void;
|
|
15
17
|
};
|
|
16
|
-
click: (e: MouseEvent) => BeaconEvent | undefined;
|
|
17
|
-
addBundle: (e: MouseEvent, results: Product[]) => BeaconEvent | undefined;
|
|
18
|
-
impression: () => BeaconEvent | undefined;
|
|
19
|
-
render: (results?: Product[]) => BeaconEvent | undefined;
|
|
20
18
|
};
|
|
21
19
|
export declare class RecommendationController extends AbstractController {
|
|
22
20
|
type: ControllerTypes;
|
|
23
21
|
store: RecommendationStore;
|
|
24
22
|
config: RecommendationControllerConfig;
|
|
25
23
|
events: {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
impression?: BeaconEvent;
|
|
31
|
-
render?: BeaconEvent;
|
|
24
|
+
product: Record<string, {
|
|
25
|
+
clickThrough?: boolean;
|
|
26
|
+
impression?: boolean;
|
|
27
|
+
render?: boolean;
|
|
32
28
|
}>;
|
|
33
29
|
};
|
|
34
30
|
constructor(config: RecommendationControllerConfig, { client, store, urlManager, eventManager, profiler, logger, tracker }: ControllerServices, context?: ContextVariables);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendationController.d.ts","sourceRoot":"","sources":["../../../src/Recommendation/RecommendationController.ts"],"names":[],"mappings":"
|
|
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;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIrG,KAAK,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAChD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC,CAAC;IACF,MAAM,EAAE;QACP,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACxC,CAAC;CACF,CAAC;AAUF,qBAAa,wBAAyB,SAAQ,kBAAkB;IACxD,IAAI,kBAAkC;IACrC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,8BAA8B,CAAC;IAE/C,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CACd,MAAM,EACN;YACC,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,CAAC;SACjB,CACD,CAAC;KACF,CAEC;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;IAwC3B,KAAK,EAAE,0BAA0B,CAyD/B;IAEF,IAAI,MAAM,IAAI,qBAAqB,CA4BlC;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA6H9B;CACF"}
|