@searchspring/snap-controller 0.64.0 → 0.65.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.
@@ -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
- click: (e: MouseEvent, result: any) => void;
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;AACxE,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,EAAE,MAAM,2BAA2B,CAAC;AAG1E,eAAO,MAAM,WAAW,MAAM,CAAC;AA+B/B,KAAK,wBAAwB,GAAG;IAC/B,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,kBAAkB;IACtD,IAAI,kBAAgC;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;gBAG5B,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;IAyD3B,KAAK,EAAE,wBAAwB,CAO7B;IAEF,IAAI,MAAM,IAAI,wBAAwB,CA0CrC;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,CA0I9B;CACF"}
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
- click: function () {
114
- _this.log.warn('product.click tracking is not currently supported in this controller type');
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 userId = this.tracker.getUserId();
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;
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 = params.search) === null || _c === void 0 ? void 0 : _c.query) === null || _d === void 0 ? void 0 : _d.string) || '', correctedQuery: ((_e = params.search) === null || _e === void 0 ? void 0 : _e.originalQuery) || '' }, filters), { sort: [
943
+ {
944
+ field: (_f = store.sorting.current) === null || _f === void 0 ? void 0 : _f.field,
945
+ dir: (_g = store.sorting.current) === null || _g === void 0 ? void 0 : _g.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: (((_h = store.merchandising.campaigns) === null || _h === void 0 ? void 0 : _h.length) &&
955
+ ((_j = store.merchandising.campaigns) === null || _j === void 0 ? void 0 : _j.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,CA+BhC;IAED,IAAI,QAAa,QAAQ,IAAI,CAAC,CAkB5B;IAEF,KAAK,QAAO,IAAI,CAId;IAEF,MAAM,QAAa,QAAQ,IAAI,CAAC,CAoI9B;CACF"}
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 userId = this.tracker.getUserId();
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
- click: (e: MouseEvent, result: Product) => BeaconEvent | undefined;
11
- render: (result: Product) => BeaconEvent | undefined;
12
- impression: (result: Product) => BeaconEvent | undefined;
13
- removedFromBundle: (result: Product) => BeaconEvent | undefined;
14
- addedToBundle: (result: Product) => BeaconEvent | undefined;
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
- click?: BeaconEvent;
27
- impression?: BeaconEvent;
28
- render?: BeaconEvent;
29
- product?: Record<string, {
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":"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"}
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"}