fast-simon-sdk 1.6.4 → 1.6.9

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.
Files changed (167) hide show
  1. package/lib/config.d.ts +25 -22
  2. package/lib/config.js +30 -27
  3. package/lib/config.js.map +1 -1
  4. package/lib/index.d.ts +3 -3
  5. package/lib/index.js +72 -71
  6. package/lib/index.js.map +1 -1
  7. package/lib/models/autocomplete.d.ts +73 -70
  8. package/lib/models/autocomplete.js +2 -2
  9. package/lib/models/common.d.ts +267 -208
  10. package/lib/models/common.js +65 -63
  11. package/lib/models/common.js.map +1 -1
  12. package/lib/models/content.d.ts +37 -37
  13. package/lib/models/content.js +2 -2
  14. package/lib/models/events.d.ts +113 -87
  15. package/lib/models/events.js +2 -2
  16. package/lib/models/exports.d.ts +6 -6
  17. package/lib/models/exports.js +5 -5
  18. package/lib/models/fullTextSearch.d.ts +130 -126
  19. package/lib/models/fullTextSearch.js +17 -17
  20. package/lib/models/fullTextSearch.js.map +1 -1
  21. package/lib/models/lookAlikeProductRecommendation.d.ts +8 -8
  22. package/lib/models/lookAlikeProductRecommendation.js +2 -2
  23. package/lib/models/productsInventory.d.ts +10 -10
  24. package/lib/models/productsInventory.js +2 -2
  25. package/lib/models/related.d.ts +35 -35
  26. package/lib/models/related.js +2 -2
  27. package/lib/models/smartCollections.d.ts +94 -90
  28. package/lib/models/smartCollections.js +2 -2
  29. package/lib/models/visualDiscovery.d.ts +129 -0
  30. package/lib/models/visualDiscovery.js +31 -0
  31. package/lib/models/visualDiscovery.js.map +1 -0
  32. package/lib/sections/contentSearch/index.d.ts +7 -7
  33. package/lib/sections/contentSearch/index.js +44 -44
  34. package/lib/sections/contentSearch/index.js.map +1 -1
  35. package/lib/sections/enums/index.d.ts +47 -45
  36. package/lib/sections/enums/index.js +50 -48
  37. package/lib/sections/enums/index.js.map +1 -1
  38. package/lib/sections/eventReporter/index.d.ts +10 -10
  39. package/lib/sections/eventReporter/index.js +628 -501
  40. package/lib/sections/eventReporter/index.js.map +1 -1
  41. package/lib/sections/eventReporter/utils.d.ts +9 -9
  42. package/lib/sections/eventReporter/utils.js +31 -29
  43. package/lib/sections/eventReporter/utils.js.map +1 -1
  44. package/lib/sections/fullTextSearch/index.d.ts +6 -6
  45. package/lib/sections/fullTextSearch/index.js +178 -171
  46. package/lib/sections/fullTextSearch/index.js.map +1 -1
  47. package/lib/sections/fullTextSearch/utils.d.ts +17 -17
  48. package/lib/sections/fullTextSearch/utils.js +185 -177
  49. package/lib/sections/fullTextSearch/utils.js.map +1 -1
  50. package/lib/sections/index.d.ts +3 -3
  51. package/lib/sections/index.js +432 -342
  52. package/lib/sections/index.js.map +1 -1
  53. package/lib/sections/initialization/index.d.ts +8 -8
  54. package/lib/sections/initialization/index.js +150 -150
  55. package/lib/sections/initialization/index.js.map +1 -1
  56. package/lib/sections/initialization/utils.d.ts +11 -11
  57. package/lib/sections/initialization/utils.js +200 -196
  58. package/lib/sections/initialization/utils.js.map +1 -1
  59. package/lib/sections/instantSearch/index.d.ts +6 -6
  60. package/lib/sections/instantSearch/index.js +66 -66
  61. package/lib/sections/instantSearch/index.js.map +1 -1
  62. package/lib/sections/instantSearch/utils.d.ts +21 -21
  63. package/lib/sections/instantSearch/utils.js +232 -232
  64. package/lib/sections/instantSearch/utils.js.map +1 -1
  65. package/lib/sections/landingPage/index.d.ts +6 -6
  66. package/lib/sections/landingPage/index.js +95 -95
  67. package/lib/sections/landingPage/index.js.map +1 -1
  68. package/lib/sections/landingPage/utils.d.ts +14 -14
  69. package/lib/sections/landingPage/utils.js +96 -90
  70. package/lib/sections/landingPage/utils.js.map +1 -1
  71. package/lib/sections/lookAlikeProductRecommendation/index.d.ts +6 -6
  72. package/lib/sections/lookAlikeProductRecommendation/index.js +23 -23
  73. package/lib/sections/recommendations/index.d.ts +10 -6
  74. package/lib/sections/recommendations/index.js +95 -48
  75. package/lib/sections/recommendations/index.js.map +1 -1
  76. package/lib/sections/recommendations/utils.d.ts +6 -7
  77. package/lib/sections/recommendations/utils.js +82 -91
  78. package/lib/sections/recommendations/utils.js.map +1 -1
  79. package/lib/sections/smartCollections/index.d.ts +6 -6
  80. package/lib/sections/smartCollections/index.js +169 -163
  81. package/lib/sections/smartCollections/index.js.map +1 -1
  82. package/lib/sections/smartCollections/utils.d.ts +41 -40
  83. package/lib/sections/smartCollections/utils.js +286 -269
  84. package/lib/sections/smartCollections/utils.js.map +1 -1
  85. package/lib/sections/visualDiscovery/index.d.ts +22 -0
  86. package/lib/sections/visualDiscovery/index.js +262 -0
  87. package/lib/sections/visualDiscovery/index.js.map +1 -0
  88. package/lib/services/autocomplete.d.ts +24 -24
  89. package/lib/services/autocomplete.js +50 -50
  90. package/lib/services/common.d.ts +35 -35
  91. package/lib/services/common.js +94 -94
  92. package/lib/services/content.d.ts +4 -4
  93. package/lib/services/content.js +25 -25
  94. package/lib/services/fullTextSearch.d.ts +4 -4
  95. package/lib/services/fullTextSearch.js +87 -84
  96. package/lib/services/fullTextSearch.js.map +1 -1
  97. package/lib/services/landingPage.d.ts +21 -21
  98. package/lib/services/landingPage.js +44 -44
  99. package/lib/services/lookAlikeProductRecommendation.d.ts +13 -13
  100. package/lib/services/lookAlikeProductRecommendation.js +23 -23
  101. package/lib/services/related.d.ts +48 -29
  102. package/lib/services/related.js +114 -72
  103. package/lib/services/related.js.map +1 -1
  104. package/lib/services/reporting.d.ts +80 -68
  105. package/lib/services/reporting.js +258 -208
  106. package/lib/services/reporting.js.map +1 -1
  107. package/lib/services/smartCollections.d.ts +5 -5
  108. package/lib/services/smartCollections.js +93 -82
  109. package/lib/services/smartCollections.js.map +1 -1
  110. package/lib/services/utils.d.ts +5 -5
  111. package/lib/services/utils.js +25 -25
  112. package/lib/services/utils.js.map +1 -1
  113. package/lib/services/visualDiscovery.d.ts +9 -0
  114. package/lib/services/visualDiscovery.js +167 -0
  115. package/lib/services/visualDiscovery.js.map +1 -0
  116. package/lib/utils/ABTesting.d.ts +2 -1
  117. package/lib/utils/ABTesting.js +27 -14
  118. package/lib/utils/ABTesting.js.map +1 -1
  119. package/lib/utils/API.d.ts +19 -19
  120. package/lib/utils/API.js +81 -81
  121. package/lib/utils/API.js.map +1 -1
  122. package/lib/utils/ArrayUtils.d.ts +2 -2
  123. package/lib/utils/ArrayUtils.js +16 -17
  124. package/lib/utils/ArrayUtils.js.map +1 -1
  125. package/lib/utils/bindingBoxes.d.ts +23 -0
  126. package/lib/utils/bindingBoxes.js +89 -0
  127. package/lib/utils/bindingBoxes.js.map +1 -0
  128. package/lib/utils/cookies.d.ts +13 -13
  129. package/lib/utils/cookies.js +50 -50
  130. package/lib/utils/debug.d.ts +4 -4
  131. package/lib/utils/debug.js +31 -31
  132. package/lib/utils/debug.js.map +1 -1
  133. package/lib/utils/duplicationsHandler.d.ts +19 -0
  134. package/lib/utils/duplicationsHandler.js +70 -0
  135. package/lib/utils/duplicationsHandler.js.map +1 -0
  136. package/lib/utils/filtersPersonalization.d.ts +3 -3
  137. package/lib/utils/filtersPersonalization.js +39 -39
  138. package/lib/utils/filtersPersonalization.js.map +1 -1
  139. package/lib/utils/image.d.ts +6 -0
  140. package/lib/utils/image.js +154 -0
  141. package/lib/utils/image.js.map +1 -0
  142. package/lib/utils/klaviyo.js +1 -1
  143. package/lib/utils/location.d.ts +1 -1
  144. package/lib/utils/location.js +11 -11
  145. package/lib/utils/location.js.map +1 -1
  146. package/lib/utils/mappingUtil.d.ts +4 -4
  147. package/lib/utils/mappingUtil.js +16 -16
  148. package/lib/utils/options.d.ts +23 -23
  149. package/lib/utils/options.js +16 -16
  150. package/lib/utils/personalization.d.ts +2 -0
  151. package/lib/utils/personalization.js +21 -0
  152. package/lib/utils/personalization.js.map +1 -0
  153. package/lib/utils/segments.d.ts +2 -2
  154. package/lib/utils/segments.js +19 -20
  155. package/lib/utils/segments.js.map +1 -1
  156. package/lib/utils/shopifyMarkets.d.ts +3 -3
  157. package/lib/utils/shopifyMarkets.js +12 -12
  158. package/lib/utils/sortUtil.d.ts +1 -0
  159. package/lib/utils/sortUtil.js +25 -0
  160. package/lib/utils/sortUtil.js.map +1 -0
  161. package/lib/utils/updateRecentSearches.d.ts +2 -1
  162. package/lib/utils/updateRecentSearches.js +56 -26
  163. package/lib/utils/updateRecentSearches.js.map +1 -1
  164. package/lib/utils/validation.d.ts +5 -5
  165. package/lib/utils/validation.js +46 -46
  166. package/lib/utils/validation.js.map +1 -1
  167. package/package.json +3 -2
@@ -1,502 +1,629 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.reportEvent = exports.event = exports.SPAOnlyReports = void 0;
15
- var utils_1 = require("./utils");
16
- var utils_2 = require("../smartCollections/utils");
17
- var utils_3 = require("../fullTextSearch/utils");
18
- var config_1 = require("../../config");
19
- var reporting_1 = require("../../services/reporting");
20
- var utils_4 = require("../recommendations/utils");
21
- exports.SPAOnlyReports = new Set([
22
- "lookALikeViewSerp",
23
- "quickViewSerp",
24
- "lookALikeViewCollection",
25
- "quickViewCollection",
26
- "search",
27
- "collection",
28
- "cartPerformed"
29
- ]);
30
- var event = function (_a) {
31
- var report = _a.report, self = _a.self;
32
- var type = report.reportAppType ? report.reportAppType : self.type;
33
- var categoryName = self.temp.smartCollections.name;
34
- if (report.eventName === "productFromCollection" && !report.data.query) {
35
- report = __assign(__assign({}, report), { data: __assign(__assign({}, report.data), { query: categoryName !== null && categoryName !== void 0 ? categoryName : "" }) });
36
- }
37
- console.log("event-received", type, report);
38
- if (type === "MPA" && !exports.SPAOnlyReports.has(report.eventName)) {
39
- (0, utils_1.saveEvent)(report);
40
- }
41
- else {
42
- reportEvent({ report: report, self: self });
43
- }
44
- };
45
- exports.event = event;
46
- function reportEvent(_a) {
47
- var report = _a.report, self = _a.self;
48
- switch (report.eventName) {
49
- case "instantsearch-product": {
50
- reportAutocompleteProductSeen({ self: self, report: report });
51
- break;
52
- }
53
- case "instantsearch-category": {
54
- reportAutocompleteCategory({ self: self, report: report });
55
- break;
56
- }
57
- case "instantsearch-popular-search": {
58
- reportAutocompletePopularSearch({ self: self, report: report });
59
- break;
60
- }
61
- case "search": {
62
- reportSearchPreformed({ self: self, report: report });
63
- break;
64
- }
65
- case "productFromSearch": {
66
- reportSerpProductSeen({ self: self, report: report });
67
- break;
68
- }
69
- case "collection": {
70
- reportSmartCollectionPreformed({ self: self, report: report });
71
- break;
72
- }
73
- case "productFromCollection": {
74
- reportProductFromCollection({ self: self, report: report });
75
- break;
76
- }
77
- case "productFromRecommendation": {
78
- reportRecommendationsProductSeen({ self: self, report: report });
79
- break;
80
- }
81
- case "productFromLookALike": {
82
- reportProductFromLookALike({ self: self, report: report });
83
- break;
84
- }
85
- case "quickViewCollection": {
86
- reportQuickViewCollection({ self: self, report: report, type: "Quick View" });
87
- break;
88
- }
89
- case "quickViewSerp": {
90
- reportQuickViewSerp({ self: self, report: report, type: "Quick View" });
91
- break;
92
- }
93
- case "productFromQuickView": {
94
- reportProductFromQuickView({ self: self, report: report });
95
- break;
96
- }
97
- case "lookALikeViewCollection": {
98
- reportQuickViewCollection({ self: self, report: report, type: "Look A Like" });
99
- break;
100
- }
101
- case "lookALikeViewSerp": {
102
- reportQuickViewSerp({ self: self, report: report, type: "Look A Like" });
103
- break;
104
- }
105
- case "productDirect": {
106
- reportDirectProductViewData({ self: self, report: report });
107
- break;
108
- }
109
- case "cartPerformed": {
110
- reportAddToCart({ self: self, report: report });
111
- break;
112
- }
113
- case "cartVisited": {
114
- reportCartVisited({ self: self, report: report });
115
- break;
116
- }
117
- }
118
- localStorage.removeItem(config_1.POST_LOAD_EVENT_KEY);
119
- }
120
- exports.reportEvent = reportEvent;
121
- var reportAutocompleteProductSeen = function (_a) {
122
- var self = _a.self, report = _a.report;
123
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
124
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
125
- var _c = report.data, productID = _c.productID, query = _c.query, productQuery = _c.productQuery;
126
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
127
- function reportEvent() {
128
- (0, utils_3.setRecentSearchProducts)(self, productID);
129
- (0, utils_1.postLoadCallback)({
130
- eventName: report.eventName,
131
- promise: reporting_1.Reporting.productSeen({
132
- type: "autocomplete", query: productQuery,
133
- term: query,
134
- uuid: uuid,
135
- storeID: storeID,
136
- userToken: userToken,
137
- productId: productID,
138
- sessionStart: sessionToken.start,
139
- cartToken: cartToken
140
- }),
141
- callback: callback
142
- });
143
- }
144
- if (report.reportAppType && report.reportAppType === "SPA") {
145
- reportEvent();
146
- }
147
- else {
148
- setTimeout(function () {
149
- if (!targetURL || targetURL.includes(window.location.pathname)) {
150
- reportEvent();
151
- }
152
- }, waitTime);
153
- }
154
- };
155
- var reportAutocompleteCategory = function (_a) {
156
- var report = _a.report, self = _a.self;
157
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
158
- var callback = report.callback;
159
- var _c = report.data, categoryID = _c.categoryID, query = _c.query;
160
- (0, utils_1.postLoadCallback)({
161
- eventName: report.eventName,
162
- promise: reporting_1.Reporting.categorySearchSeen({
163
- query: query,
164
- uuid: uuid,
165
- storeID: storeID,
166
- userToken: userToken,
167
- categoryID: categoryID,
168
- sessionStart: sessionToken.start,
169
- cartToken: cartToken
170
- }),
171
- callback: callback
172
- });
173
- };
174
- var reportDirectProductViewData = function (_a) {
175
- var report = _a.report, self = _a.self;
176
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
177
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
178
- var productID = report.data.productID;
179
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
180
- setTimeout(function () {
181
- if (!targetURL || targetURL.includes(window.location.pathname)) {
182
- (0, utils_1.postLoadCallback)({
183
- eventName: report.eventName,
184
- promise: reporting_1.Reporting.productSeen({
185
- type: "direct",
186
- uuid: uuid,
187
- storeID: storeID,
188
- userToken: userToken,
189
- productId: productID,
190
- sessionStart: sessionToken.start,
191
- cartToken: cartToken
192
- }),
193
- callback: callback
194
- });
195
- }
196
- }, waitTime);
197
- };
198
- var reportAutocompletePopularSearch = function (_a) {
199
- var report = _a.report, self = _a.self;
200
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
201
- var callback = report.callback;
202
- var _c = report.data, query = _c.query, term = _c.term;
203
- (0, utils_1.postLoadCallback)({
204
- eventName: report.eventName,
205
- promise: reporting_1.Reporting.popularSearchSeen({
206
- originId: query,
207
- uuid: uuid,
208
- storeID: storeID,
209
- userToken: userToken,
210
- term: term,
211
- sessionStart: sessionToken.start,
212
- cartToken: cartToken
213
- }),
214
- callback: callback
215
- });
216
- };
217
- var reportSearchPreformed = function (_a) {
218
- var self = _a.self, report = _a.report;
219
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
220
- var _c = report.data, query = _c.query, narrowBy = _c.narrowBy, sortBy = _c.sortBy, products = _c.products, pagenum = _c.pagenum, rescount = _c.rescount;
221
- var callback = report.callback;
222
- (0, utils_1.postLoadCallback)({
223
- eventName: report.eventName,
224
- promise: reporting_1.Reporting.searchPerformed({
225
- userToken: userToken,
226
- sessionStart: sessionToken.start,
227
- uuid: uuid,
228
- storeID: storeID,
229
- query: query,
230
- narrow: narrowBy,
231
- sortBy: sortBy,
232
- cartToken: cartToken,
233
- products: products,
234
- pagenum: pagenum,
235
- rescount: rescount
236
- }),
237
- callback: callback
238
- });
239
- };
240
- var reportSmartCollectionPreformed = function (_a) {
241
- var self = _a.self, report = _a.report;
242
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
243
- var _c = report.data, query = _c.query, categoryID = _c.categoryID, narrowBy = _c.narrowBy, sortBy = _c.sortBy, products = _c.products, pagenum = _c.pagenum, rescount = _c.rescount;
244
- var callback = report.callback;
245
- var categoryName = self.temp.smartCollections.name;
246
- /* check if categories were fetched, if not retry in 300ms */
247
- if (!categoryName && self.data.categories.length === 0) {
248
- setTimeout(function () {
249
- reportSmartCollectionPreformed({ self: self, report: report });
250
- }, 300);
251
- return;
252
- }
253
- (0, utils_1.postLoadCallback)({
254
- eventName: report.eventName,
255
- promise: reporting_1.Reporting.collectionPerformed({
256
- uuid: uuid,
257
- storeID: storeID,
258
- userToken: userToken,
259
- sessionStart: sessionToken.start,
260
- query: (query !== null && query !== void 0 ? query : categoryName) || (0, utils_2.getCollectionName)(self, categoryID),
261
- collectionID: categoryID,
262
- narrow: narrowBy,
263
- sortBy: sortBy,
264
- cartToken: cartToken,
265
- products: products,
266
- pagenum: pagenum,
267
- rescount: rescount
268
- }),
269
- callback: callback
270
- });
271
- };
272
- var reportQuickViewSerp = function (_a) {
273
- var self = _a.self, report = _a.report, type = _a.type;
274
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
275
- var _c = report.data, position = _c.position, productID = _c.productID, term = _c.term;
276
- var callback = report.callback;
277
- (0, utils_1.postLoadCallback)({
278
- eventName: report.eventName,
279
- promise: reporting_1.Reporting.popUpUsed({
280
- uuid: uuid,
281
- storeID: storeID,
282
- userToken: userToken,
283
- cartToken: cartToken,
284
- query: term,
285
- productId: productID,
286
- position: position,
287
- sessionStart: sessionToken.start,
288
- type: type
289
- }),
290
- callback: callback
291
- });
292
- };
293
- var reportQuickViewCollection = function (_a) {
294
- var self = _a.self, report = _a.report, type = _a.type;
295
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
296
- var _c = report.data, position = _c.position, productID = _c.productID, collectionID = _c.collectionID;
297
- var callback = report.callback;
298
- var categoryName = self.temp.smartCollections.name;
299
- (0, utils_1.postLoadCallback)({
300
- eventName: report.eventName,
301
- promise: reporting_1.Reporting.popUpUsed({
302
- uuid: uuid,
303
- storeID: storeID,
304
- userToken: userToken,
305
- cartToken: cartToken,
306
- productId: productID,
307
- position: position,
308
- categoryID: collectionID,
309
- categoryName: categoryName || (0, utils_2.getCollectionName)(self, collectionID),
310
- sessionStart: sessionToken.start,
311
- type: type
312
- }),
313
- callback: callback
314
- });
315
- };
316
- var reportSerpProductSeen = function (_a) {
317
- var self = _a.self, report = _a.report;
318
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
319
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
320
- var _c = report.data, productID = _c.productID, query = _c.query, _d = _c.position, position = _d === void 0 ? 1 : _d, imageID = _c.imageID;
321
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
322
- setTimeout(function () {
323
- if (!targetURL || targetURL.includes(window.location.pathname)) {
324
- (0, utils_3.setRecentSearchProducts)(self, productID);
325
- (0, utils_1.postLoadCallback)({
326
- eventName: report.eventName,
327
- promise: reporting_1.Reporting.productSeen({
328
- type: "search",
329
- term: query,
330
- originId: query,
331
- uuid: uuid,
332
- storeID: storeID,
333
- userToken: userToken,
334
- productId: productID,
335
- sessionStart: sessionToken.start,
336
- position: position,
337
- cartToken: cartToken,
338
- recommended: (0, utils_3.isRecentSearchProduct)(productID, self),
339
- imageID: imageID
340
- }),
341
- callback: callback
342
- });
343
- }
344
- }, waitTime);
345
- };
346
- var reportRecommendationsProductSeen = function (_a) {
347
- var self = _a.self, report = _a.report;
348
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
349
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
350
- var _c = report.data, productID = _c.productID, _d = _c.position, position = _d === void 0 ? 1 : _d, sourceProductID = _c.sourceProductID;
351
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
352
- var promotedByPersonalization = (0, utils_4.getPromotedByPersonalization)();
353
- setTimeout(function () {
354
- if (!targetURL || targetURL.includes(window.location.pathname)) {
355
- (0, utils_3.setRecentSearchProducts)(self, productID);
356
- (0, utils_1.postLoadCallback)({
357
- eventName: report.eventName,
358
- promise: reporting_1.Reporting.productSeen({
359
- type: "related", sourceProduct: sourceProductID,
360
- uuid: uuid,
361
- storeID: storeID,
362
- userToken: userToken,
363
- productId: productID,
364
- cartToken: cartToken,
365
- sessionStart: sessionToken.start,
366
- position: position,
367
- reference: 'isp_rel_prd',
368
- recommended: (promotedByPersonalization === null || promotedByPersonalization === void 0 ? void 0 : promotedByPersonalization[productID]) ? true : undefined,
369
- rec_src: promotedByPersonalization === null || promotedByPersonalization === void 0 ? void 0 : promotedByPersonalization[productID]
370
- }),
371
- callback: callback
372
- });
373
- }
374
- }, waitTime);
375
- };
376
- var reportProductFromCollection = function (_a) {
377
- var report = _a.report, self = _a.self;
378
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
379
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
380
- var _c = report.data, productID = _c.productID, collectionID = _c.collectionID, _d = _c.position, position = _d === void 0 ? 1 : _d, query = _c.query, imageID = _c.imageID;
381
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
382
- var isRecommended = (0, utils_2.isRecommendedProduct)(productID);
383
- /* check if categories were fetched, if not retry in 300ms */
384
- if (!query && self.data.categories.length === 0) {
385
- setTimeout(function () {
386
- reportProductFromCollection({ self: self, report: report });
387
- }, 300);
388
- return;
389
- }
390
- setTimeout(function () {
391
- if (!targetURL || targetURL.includes(window.location.pathname)) {
392
- (0, utils_2.updateRecentCollectionProducts)(productID, collectionID);
393
- (0, utils_3.setRecentSearchProducts)(self, productID);
394
- (0, utils_1.postLoadCallback)({
395
- eventName: report.eventName,
396
- promise: reporting_1.Reporting.productSeen({
397
- type: "category",
398
- categoryName: query || (0, utils_2.getCollectionName)(self, collectionID),
399
- uuid: uuid,
400
- storeID: storeID,
401
- userToken: userToken,
402
- productId: productID,
403
- categoryID: collectionID,
404
- sessionStart: sessionToken.start,
405
- position: position,
406
- cartToken: cartToken,
407
- recommended: isRecommended,
408
- imageID: imageID
409
- }),
410
- callback: callback
411
- });
412
- }
413
- }, waitTime);
414
- };
415
- var reportProductFromLookALike = function (_a) {
416
- var report = _a.report, self = _a.self;
417
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
418
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
419
- var _c = report.data, productID = _c.productID, _d = _c.position, position = _d === void 0 ? 1 : _d, originalProduct = _c.originalProduct;
420
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
421
- setTimeout(function () {
422
- if (!targetURL || targetURL.includes(window.location.pathname)) {
423
- (0, utils_1.postLoadCallback)({
424
- eventName: report.eventName,
425
- promise: reporting_1.Reporting.productSeen({
426
- type: "look a like",
427
- uuid: uuid,
428
- storeID: storeID,
429
- userToken: userToken,
430
- productId: productID, originProduct: originalProduct,
431
- sessionStart: sessionToken.start,
432
- position: position,
433
- cartToken: cartToken,
434
- reference: "isp_look_a_like"
435
- }),
436
- callback: callback
437
- });
438
- }
439
- }, waitTime);
440
- };
441
- var reportProductFromQuickView = function (_a) {
442
- var report = _a.report, self = _a.self;
443
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
444
- var time = report.time, callback = report.callback, targetURL = report.targetURL;
445
- var _c = report.data, productID = _c.productID, _d = _c.position, position = _d === void 0 ? 1 : _d, originalProduct = _c.originalProduct;
446
- var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
447
- setTimeout(function () {
448
- if (!targetURL || targetURL.includes(window.location.pathname)) {
449
- (0, utils_1.postLoadCallback)({
450
- eventName: report.eventName,
451
- promise: reporting_1.Reporting.productSeen({
452
- uuid: uuid,
453
- storeID: storeID,
454
- userToken: userToken,
455
- productId: productID,
456
- originProduct: originalProduct,
457
- sessionStart: sessionToken.start,
458
- position: position,
459
- cartToken: cartToken,
460
- type: "quick view",
461
- reference: "isp_look_a_like"
462
- }),
463
- callback: callback
464
- });
465
- }
466
- }, waitTime);
467
- };
468
- var reportAddToCart = function (_a) {
469
- var report = _a.report, self = _a.self;
470
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
471
- var callback = report.callback;
472
- var productID = report.data.productID;
473
- (0, utils_1.postLoadCallback)({
474
- eventName: report.eventName,
475
- promise: reporting_1.Reporting.addToCart({
476
- userToken: userToken,
477
- sessionStart: sessionToken.start,
478
- uuid: uuid,
479
- storeID: storeID,
480
- cartToken: cartToken,
481
- productID: productID
482
- }),
483
- callback: callback
484
- });
485
- };
486
- var reportCartVisited = function (_a) {
487
- var report = _a.report, self = _a.self;
488
- var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
489
- var callback = report.callback;
490
- (0, utils_1.postLoadCallback)({
491
- eventName: report.eventName,
492
- promise: reporting_1.Reporting.addToCart({
493
- userToken: userToken,
494
- sessionStart: sessionToken.start,
495
- uuid: uuid,
496
- storeID: storeID,
497
- cartToken: cartToken,
498
- }),
499
- callback: callback
500
- });
501
- };
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.event = exports.SPAOnlyReports = void 0;
15
+ exports.reportEvent = reportEvent;
16
+ var utils_1 = require("./utils");
17
+ var utils_2 = require("../smartCollections/utils");
18
+ var utils_3 = require("../fullTextSearch/utils");
19
+ var config_1 = require("../../config");
20
+ var reporting_1 = require("../../services/reporting");
21
+ var utils_4 = require("../recommendations/utils");
22
+ var updateRecentSearches_1 = require("../../utils/updateRecentSearches");
23
+ exports.SPAOnlyReports = new Set([
24
+ "lookALikeViewSerp",
25
+ "quickViewSerp",
26
+ "lookALikeViewCollection",
27
+ "quickViewCollection",
28
+ "search",
29
+ "collection",
30
+ "cartPerformed"
31
+ ]);
32
+ var event = function (_a) {
33
+ var report = _a.report, self = _a.self;
34
+ var type = report.reportAppType ? report.reportAppType : self.type;
35
+ var categoryName = self.temp.smartCollections.name;
36
+ if (report.eventName === "productFromCollection" && !report.data.query) {
37
+ report = __assign(__assign({}, report), { data: __assign(__assign({}, report.data), { query: categoryName !== null && categoryName !== void 0 ? categoryName : "" }) });
38
+ }
39
+ console.log("event-received", type, report);
40
+ if (type === "MPA" && !exports.SPAOnlyReports.has(report.eventName)) {
41
+ (0, utils_1.saveEvent)(report);
42
+ }
43
+ else {
44
+ reportEvent({ report: report, self: self });
45
+ }
46
+ };
47
+ exports.event = event;
48
+ function reportEvent(_a) {
49
+ var report = _a.report, self = _a.self;
50
+ switch (report.eventName) {
51
+ case "instantsearch-product": {
52
+ reportAutocompleteProductSeen({ self: self, report: report });
53
+ break;
54
+ }
55
+ case "instantsearch-category": {
56
+ reportAutocompleteCategory({ self: self, report: report });
57
+ break;
58
+ }
59
+ case "instantsearch-popular-search": {
60
+ reportAutocompletePopularSearch({ self: self, report: report });
61
+ break;
62
+ }
63
+ case "search": {
64
+ reportSearchPreformed({ self: self, report: report });
65
+ break;
66
+ }
67
+ case "productFromSearch": {
68
+ reportSerpProductSeen({ self: self, report: report });
69
+ break;
70
+ }
71
+ case "collection": {
72
+ reportSmartCollectionPreformed({ self: self, report: report });
73
+ break;
74
+ }
75
+ case "productFromCollection": {
76
+ reportProductFromCollection({ self: self, report: report });
77
+ break;
78
+ }
79
+ case "promoTileFromCollection": {
80
+ reportPromoTileFromCollection({ self: self, report: report });
81
+ break;
82
+ }
83
+ case "promoTileFromSearch": {
84
+ reportPromoTileFromSerp({ self: self, report: report });
85
+ break;
86
+ }
87
+ case "productFromRecommendation": {
88
+ reportRecommendationsProductSeen({ self: self, report: report });
89
+ break;
90
+ }
91
+ case "productFromLookALike": {
92
+ reportProductFromLookALike({ self: self, report: report });
93
+ break;
94
+ }
95
+ case "quickViewCollection": {
96
+ reportQuickViewCollection({ self: self, report: report, type: "Quick View" });
97
+ break;
98
+ }
99
+ case "quickViewSerp": {
100
+ reportQuickViewSerp({ self: self, report: report, type: "Quick View" });
101
+ break;
102
+ }
103
+ case "productFromQuickView": {
104
+ reportProductFromQuickView({ self: self, report: report });
105
+ break;
106
+ }
107
+ case "lookALikeViewCollection": {
108
+ reportQuickViewCollection({ self: self, report: report, type: "Look A Like" });
109
+ break;
110
+ }
111
+ case "lookALikeViewSerp": {
112
+ reportQuickViewSerp({ self: self, report: report, type: "Look A Like" });
113
+ break;
114
+ }
115
+ case "productDirect": {
116
+ reportDirectProductViewData({ self: self, report: report });
117
+ break;
118
+ }
119
+ case "cartPerformed": {
120
+ reportAddToCart({ self: self, report: report });
121
+ break;
122
+ }
123
+ case "cartVisited": {
124
+ reportCartVisited({ self: self, report: report });
125
+ break;
126
+ }
127
+ }
128
+ localStorage.removeItem(config_1.POST_LOAD_EVENT_KEY);
129
+ }
130
+ var reportAutocompleteProductSeen = function (_a) {
131
+ var self = _a.self, report = _a.report;
132
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
133
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
134
+ var _c = report.data, productID = _c.productID, query = _c.query, productQuery = _c.productQuery;
135
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
136
+ function reportEvent() {
137
+ (0, utils_3.setRecentSearchProducts)(self, productID);
138
+ (0, utils_1.postLoadCallback)({
139
+ eventName: report.eventName,
140
+ promise: reporting_1.Reporting.productSeen({
141
+ type: "autocomplete", query: productQuery,
142
+ term: query,
143
+ uuid: uuid,
144
+ storeID: storeID,
145
+ userToken: userToken,
146
+ productId: productID,
147
+ sessionStart: sessionToken.start,
148
+ cartToken: cartToken
149
+ }),
150
+ callback: callback
151
+ });
152
+ }
153
+ if (report.reportAppType && report.reportAppType === "SPA") {
154
+ reportEvent();
155
+ }
156
+ else {
157
+ setTimeout(function () {
158
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
159
+ reportEvent();
160
+ }
161
+ }, waitTime);
162
+ }
163
+ };
164
+ var reportAutocompleteCategory = function (_a) {
165
+ var report = _a.report, self = _a.self;
166
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
167
+ var callback = report.callback;
168
+ var _c = report.data, categoryID = _c.categoryID, query = _c.query;
169
+ (0, utils_1.postLoadCallback)({
170
+ eventName: report.eventName,
171
+ promise: reporting_1.Reporting.categorySearchSeen({
172
+ query: query,
173
+ uuid: uuid,
174
+ storeID: storeID,
175
+ userToken: userToken,
176
+ categoryID: categoryID,
177
+ sessionStart: sessionToken.start,
178
+ cartToken: cartToken
179
+ }),
180
+ callback: callback
181
+ });
182
+ };
183
+ var reportDirectProductViewData = function (_a) {
184
+ var report = _a.report, self = _a.self;
185
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
186
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
187
+ var productID = report.data.productID;
188
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
189
+ setTimeout(function () {
190
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
191
+ (0, utils_1.postLoadCallback)({
192
+ eventName: report.eventName,
193
+ promise: reporting_1.Reporting.productSeen({
194
+ type: "direct",
195
+ uuid: uuid,
196
+ storeID: storeID,
197
+ userToken: userToken,
198
+ productId: productID,
199
+ sessionStart: sessionToken.start,
200
+ cartToken: cartToken
201
+ }),
202
+ callback: callback
203
+ });
204
+ }
205
+ }, waitTime);
206
+ };
207
+ var reportAutocompletePopularSearch = function (_a) {
208
+ var report = _a.report, self = _a.self;
209
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
210
+ var callback = report.callback;
211
+ var _c = report.data, query = _c.query, term = _c.term;
212
+ (0, utils_1.postLoadCallback)({
213
+ eventName: report.eventName,
214
+ promise: reporting_1.Reporting.popularSearchSeen({
215
+ originId: query,
216
+ uuid: uuid,
217
+ storeID: storeID,
218
+ userToken: userToken,
219
+ term: term,
220
+ sessionStart: sessionToken.start,
221
+ cartToken: cartToken
222
+ }),
223
+ callback: callback
224
+ });
225
+ };
226
+ var reportSearchPreformed = function (_a, retryCount, maxRetries) {
227
+ var _b, _c, _d, _e, _f;
228
+ var self = _a.self, report = _a.report;
229
+ if (retryCount === void 0) { retryCount = 0; }
230
+ if (maxRetries === void 0) { maxRetries = 8; }
231
+ if (((_b = self === null || self === void 0 ? void 0 : self.fsGridCurrentResponse) === null || _b === void 0 ? void 0 : _b.status) === 'loading') {
232
+ if (retryCount < maxRetries) {
233
+ setTimeout(function () {
234
+ reportSearchPreformed({ self: self, report: report }, retryCount + 1, maxRetries);
235
+ }, 500);
236
+ return;
237
+ }
238
+ else {
239
+ console.error('Max retries reached; data not ready for reporting.');
240
+ }
241
+ }
242
+ var _g = self.data, userToken = _g.userToken, sessionToken = _g.sessionToken, uuid = _g.uuid, storeID = _g.storeID, cartToken = _g.cartToken;
243
+ var _h = report.data, query = _h.query, narrowBy = _h.narrowBy, sortBy = _h.sortBy, products = _h.products, pagenum = _h.pagenum, rescount = _h.rescount, promoTiles = _h.promoTiles;
244
+ var callback = report.callback;
245
+ var currentResponse = (_c = self.fsGridCurrentResponse) === null || _c === void 0 ? void 0 : _c.data;
246
+ (0, utils_1.postLoadCallback)({
247
+ eventName: report.eventName,
248
+ promise: reporting_1.Reporting.searchPerformed({
249
+ userToken: userToken,
250
+ sessionStart: sessionToken.start,
251
+ uuid: uuid,
252
+ storeID: storeID,
253
+ query: query,
254
+ narrow: narrowBy,
255
+ sortBy: sortBy,
256
+ cartToken: cartToken,
257
+ products: products || ((_d = currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.items) === null || _d === void 0 ? void 0 : _d.map(function (item) { return item === null || item === void 0 ? void 0 : item.id; })) || undefined,
258
+ pagenum: pagenum || (currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.p) || undefined,
259
+ rescount: rescount || (currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.total_results) || undefined,
260
+ promoTiles: promoTiles,
261
+ personalizedProducts: ((_e = self === null || self === void 0 ? void 0 : self.data) === null || _e === void 0 ? void 0 : _e.personalizedProducts) ? self.data.personalizedProducts : ((_f = currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.personalized_products) === null || _f === void 0 ? void 0 : _f.toString()) || undefined,
262
+ sessionProducts: (0, updateRecentSearches_1.getRecentProducts)().join(",")
263
+ }),
264
+ callback: callback
265
+ });
266
+ self.fsGridCurrentResponse = {};
267
+ };
268
+ var reportSmartCollectionPreformed = function (_a, retryCount, maxRetries) {
269
+ var _b, _c, _d, _e;
270
+ var self = _a.self, report = _a.report;
271
+ if (retryCount === void 0) { retryCount = 0; }
272
+ if (maxRetries === void 0) { maxRetries = 8; }
273
+ function isDataReady(self) {
274
+ var _a, _b;
275
+ var name = (_a = self.temp.smartCollections) === null || _a === void 0 ? void 0 : _a.name;
276
+ var categories = self.data.categories;
277
+ // Check if categories were fetched
278
+ if (!name && categories.length === 0) {
279
+ return false;
280
+ }
281
+ // Check if fsGridCurrentResponse is still loading
282
+ if (((_b = self === null || self === void 0 ? void 0 : self.fsGridCurrentResponse) === null || _b === void 0 ? void 0 : _b.status) === 'loading') {
283
+ return false;
284
+ }
285
+ return true;
286
+ }
287
+ if (!isDataReady(self)) {
288
+ if (retryCount < maxRetries) {
289
+ setTimeout(function () {
290
+ reportSmartCollectionPreformed({ self: self, report: report }, retryCount + 1, maxRetries);
291
+ }, 500);
292
+ return;
293
+ }
294
+ else {
295
+ console.error('Max retries reached; data not ready for reporting.');
296
+ }
297
+ }
298
+ var _f = self.data, userToken = _f.userToken, sessionToken = _f.sessionToken, uuid = _f.uuid, storeID = _f.storeID, cartToken = _f.cartToken;
299
+ var _g = report.data, query = _g.query, categoryID = _g.categoryID, narrowBy = _g.narrowBy, sortBy = _g.sortBy, products = _g.products, pagenum = _g.pagenum, rescount = _g.rescount, promoTiles = _g.promoTiles, fromTurboLink = _g.fromTurboLink;
300
+ var callback = report.callback;
301
+ var categoryName = self.temp.smartCollections.name;
302
+ var currentResponse = (_b = self.fsGridCurrentResponse) === null || _b === void 0 ? void 0 : _b.data;
303
+ (0, utils_1.postLoadCallback)({
304
+ eventName: report.eventName,
305
+ promise: reporting_1.Reporting.collectionPerformed({
306
+ uuid: uuid,
307
+ storeID: storeID,
308
+ userToken: userToken,
309
+ sessionStart: sessionToken.start,
310
+ query: (query !== null && query !== void 0 ? query : categoryName) || (0, utils_2.getCollectionName)(self, categoryID),
311
+ collectionID: categoryID,
312
+ narrow: narrowBy,
313
+ sortBy: sortBy,
314
+ cartToken: cartToken,
315
+ products: products || ((_c = currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.items) === null || _c === void 0 ? void 0 : _c.map(function (item) { return item === null || item === void 0 ? void 0 : item.id; })) || undefined,
316
+ pagenum: pagenum || (currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.p) || undefined,
317
+ rescount: rescount || (currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.total_results) || undefined,
318
+ promoTiles: promoTiles,
319
+ personalizedProducts: ((_d = self === null || self === void 0 ? void 0 : self.data) === null || _d === void 0 ? void 0 : _d.personalizedProducts) ? self.data.personalizedProducts : ((_e = currentResponse === null || currentResponse === void 0 ? void 0 : currentResponse.personalized_products) === null || _e === void 0 ? void 0 : _e.toString()) || undefined,
320
+ sessionProducts: (0, updateRecentSearches_1.getRecentProducts)().join(",")
321
+ }, fromTurboLink),
322
+ callback: callback
323
+ });
324
+ self.fsGridCurrentResponse = {};
325
+ };
326
+ var reportQuickViewSerp = function (_a) {
327
+ var self = _a.self, report = _a.report, type = _a.type;
328
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
329
+ var _c = report.data, position = _c.position, productID = _c.productID, term = _c.term;
330
+ var callback = report.callback;
331
+ (0, utils_1.postLoadCallback)({
332
+ eventName: report.eventName,
333
+ promise: reporting_1.Reporting.popUpUsed({
334
+ uuid: uuid,
335
+ storeID: storeID,
336
+ userToken: userToken,
337
+ cartToken: cartToken,
338
+ query: term,
339
+ productId: productID,
340
+ position: position,
341
+ sessionStart: sessionToken.start,
342
+ type: type
343
+ }),
344
+ callback: callback
345
+ });
346
+ };
347
+ var reportQuickViewCollection = function (_a) {
348
+ var self = _a.self, report = _a.report, type = _a.type;
349
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
350
+ var _c = report.data, position = _c.position, productID = _c.productID, collectionID = _c.collectionID;
351
+ var callback = report.callback;
352
+ var categoryName = self.temp.smartCollections.name;
353
+ (0, utils_1.postLoadCallback)({
354
+ eventName: report.eventName,
355
+ promise: reporting_1.Reporting.popUpUsed({
356
+ uuid: uuid,
357
+ storeID: storeID,
358
+ userToken: userToken,
359
+ cartToken: cartToken,
360
+ productId: productID,
361
+ position: position,
362
+ categoryID: collectionID,
363
+ categoryName: categoryName || (0, utils_2.getCollectionName)(self, collectionID),
364
+ sessionStart: sessionToken.start,
365
+ type: type
366
+ }),
367
+ callback: callback
368
+ });
369
+ };
370
+ var reportSerpProductSeen = function (_a) {
371
+ var self = _a.self, report = _a.report;
372
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
373
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
374
+ var _c = report.data, productID = _c.productID, query = _c.query, _d = _c.position, position = _d === void 0 ? 1 : _d, imageID = _c.imageID;
375
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
376
+ setTimeout(function () {
377
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
378
+ (0, utils_3.setRecentSearchProducts)(self, productID);
379
+ (0, utils_1.postLoadCallback)({
380
+ eventName: report.eventName,
381
+ promise: reporting_1.Reporting.productSeen({
382
+ type: "search",
383
+ term: query,
384
+ originId: query,
385
+ uuid: uuid,
386
+ storeID: storeID,
387
+ userToken: userToken,
388
+ productId: productID,
389
+ sessionStart: sessionToken.start,
390
+ position: position,
391
+ cartToken: cartToken,
392
+ recommended: (0, utils_3.isRecentSearchProduct)(productID, self),
393
+ imageID: imageID
394
+ }),
395
+ callback: callback
396
+ });
397
+ }
398
+ }, waitTime);
399
+ };
400
+ var reportRecommendationsProductSeen = function (_a) {
401
+ var self = _a.self, report = _a.report;
402
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
403
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
404
+ var _c = report.data, productID = _c.productID, _d = _c.position, position = _d === void 0 ? 1 : _d, sourceProductID = _c.sourceProductID;
405
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
406
+ var promotedByPersonalization = (0, utils_4.getPromotedByPersonalization)();
407
+ setTimeout(function () {
408
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
409
+ (0, utils_3.setRecentSearchProducts)(self, productID);
410
+ (0, utils_1.postLoadCallback)({
411
+ eventName: report.eventName,
412
+ promise: reporting_1.Reporting.productSeen({
413
+ type: "related", sourceProduct: sourceProductID,
414
+ uuid: uuid,
415
+ storeID: storeID,
416
+ userToken: userToken,
417
+ productId: productID,
418
+ cartToken: cartToken,
419
+ sessionStart: sessionToken.start,
420
+ position: position,
421
+ reference: 'isp_rel_prd',
422
+ recommended: (promotedByPersonalization === null || promotedByPersonalization === void 0 ? void 0 : promotedByPersonalization[productID]) ? true : undefined,
423
+ rec_src: promotedByPersonalization === null || promotedByPersonalization === void 0 ? void 0 : promotedByPersonalization[productID]
424
+ }),
425
+ callback: callback
426
+ });
427
+ }
428
+ }, waitTime);
429
+ };
430
+ var reportProductFromCollection = function (_a) {
431
+ var report = _a.report, self = _a.self;
432
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
433
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
434
+ var _c = report.data, productID = _c.productID, collectionID = _c.collectionID, _d = _c.position, position = _d === void 0 ? 1 : _d, query = _c.query, imageID = _c.imageID;
435
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
436
+ var isRecommended = (0, utils_2.isRecommendedProduct)(productID);
437
+ /* check if categories were fetched, if not retry in 300ms */
438
+ if (!query && self.data.categories.length === 0) {
439
+ setTimeout(function () {
440
+ reportProductFromCollection({ self: self, report: report });
441
+ }, 300);
442
+ return;
443
+ }
444
+ setTimeout(function () {
445
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
446
+ (0, utils_2.updateRecentCollectionProducts)(productID, collectionID);
447
+ (0, utils_3.setRecentSearchProducts)(self, productID);
448
+ (0, utils_1.postLoadCallback)({
449
+ eventName: report.eventName,
450
+ promise: reporting_1.Reporting.productSeen({
451
+ type: "category",
452
+ categoryName: query || (0, utils_2.getCollectionName)(self, collectionID),
453
+ uuid: uuid,
454
+ storeID: storeID,
455
+ userToken: userToken,
456
+ productId: productID,
457
+ categoryID: collectionID,
458
+ sessionStart: sessionToken.start,
459
+ position: position,
460
+ cartToken: cartToken,
461
+ recommended: isRecommended,
462
+ imageID: imageID
463
+ }),
464
+ callback: callback
465
+ });
466
+ }
467
+ }, waitTime);
468
+ };
469
+ var reportPromoTileFromCollection = function (_a) {
470
+ var report = _a.report, self = _a.self;
471
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
472
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
473
+ var _c = report.data, productID = _c.productID, collectionID = _c.collectionID, _d = _c.position, position = _d === void 0 ? 1 : _d, query = _c.query, imageID = _c.imageID, thumbnail = _c.thumbnail, link = _c.link;
474
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
475
+ var isRecommended = (0, utils_2.isRecommendedProduct)(productID);
476
+ /* check if categories were fetched, if not retry in 300ms */
477
+ if (!query && self.data.categories.length === 0) {
478
+ setTimeout(function () {
479
+ reportPromoTileFromCollection({ self: self, report: report });
480
+ }, 300);
481
+ return;
482
+ }
483
+ setTimeout(function () {
484
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
485
+ //updateRecentCollectionProducts(productID, collectionID);
486
+ //setRecentSearchProducts(self, productID);
487
+ (0, utils_1.postLoadCallback)({
488
+ eventName: report.eventName,
489
+ promise: reporting_1.Reporting.promotileClicked({
490
+ type: "category",
491
+ categoryName: query || (0, utils_2.getCollectionName)(self, collectionID),
492
+ uuid: uuid,
493
+ storeID: storeID,
494
+ userToken: userToken,
495
+ productId: productID,
496
+ categoryID: collectionID,
497
+ sessionStart: sessionToken.start,
498
+ position: position,
499
+ cartToken: cartToken,
500
+ recommended: isRecommended,
501
+ imageID: imageID,
502
+ link: link,
503
+ thumbnail: thumbnail
504
+ }),
505
+ callback: callback
506
+ });
507
+ }
508
+ }, waitTime);
509
+ };
510
+ var reportPromoTileFromSerp = function (_a) {
511
+ var report = _a.report, self = _a.self;
512
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
513
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
514
+ var _c = report.data, productID = _c.productID, query = _c.query, _d = _c.position, position = _d === void 0 ? 1 : _d, imageID = _c.imageID, thumbnail = _c.thumbnail, link = _c.link;
515
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
516
+ setTimeout(function () {
517
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
518
+ //setRecentSearchProducts(self, productID);
519
+ (0, utils_1.postLoadCallback)({
520
+ eventName: report.eventName,
521
+ promise: reporting_1.Reporting.promotileClicked({
522
+ type: "search",
523
+ term: query,
524
+ originId: query,
525
+ uuid: uuid,
526
+ storeID: storeID,
527
+ userToken: userToken,
528
+ productId: productID,
529
+ sessionStart: sessionToken.start,
530
+ position: position,
531
+ cartToken: cartToken,
532
+ recommended: (0, utils_3.isRecentSearchProduct)(productID, self),
533
+ imageID: imageID,
534
+ link: link,
535
+ thumbnail: thumbnail
536
+ }),
537
+ callback: callback
538
+ });
539
+ }
540
+ }, waitTime);
541
+ };
542
+ var reportProductFromLookALike = function (_a) {
543
+ var report = _a.report, self = _a.self;
544
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
545
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
546
+ var _c = report.data, productID = _c.productID, _d = _c.position, position = _d === void 0 ? 1 : _d, originalProduct = _c.originalProduct;
547
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
548
+ setTimeout(function () {
549
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
550
+ (0, utils_1.postLoadCallback)({
551
+ eventName: report.eventName,
552
+ promise: reporting_1.Reporting.productSeen({
553
+ type: "look a like",
554
+ uuid: uuid,
555
+ storeID: storeID,
556
+ userToken: userToken,
557
+ productId: productID, originProduct: originalProduct,
558
+ sessionStart: sessionToken.start,
559
+ position: position,
560
+ cartToken: cartToken,
561
+ reference: "isp_look_a_like"
562
+ }),
563
+ callback: callback
564
+ });
565
+ }
566
+ }, waitTime);
567
+ };
568
+ var reportProductFromQuickView = function (_a) {
569
+ var report = _a.report, self = _a.self;
570
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
571
+ var time = report.time, callback = report.callback, targetURL = report.targetURL;
572
+ var _c = report.data, productID = _c.productID, _d = _c.position, position = _d === void 0 ? 1 : _d, originalProduct = _c.originalProduct;
573
+ var waitTime = time ? time : config_1.POST_LOAD_WAIT_TIME;
574
+ setTimeout(function () {
575
+ if (!targetURL || targetURL.includes(window.location.pathname)) {
576
+ (0, utils_1.postLoadCallback)({
577
+ eventName: report.eventName,
578
+ promise: reporting_1.Reporting.productSeen({
579
+ uuid: uuid,
580
+ storeID: storeID,
581
+ userToken: userToken,
582
+ productId: productID,
583
+ originProduct: originalProduct,
584
+ sessionStart: sessionToken.start,
585
+ position: position,
586
+ cartToken: cartToken,
587
+ type: "quick view",
588
+ reference: "isp_look_a_like"
589
+ }),
590
+ callback: callback
591
+ });
592
+ }
593
+ }, waitTime);
594
+ };
595
+ var reportAddToCart = function (_a) {
596
+ var report = _a.report, self = _a.self;
597
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
598
+ var callback = report.callback;
599
+ var productID = report.data.productID;
600
+ (0, utils_1.postLoadCallback)({
601
+ eventName: report.eventName,
602
+ promise: reporting_1.Reporting.addToCart({
603
+ userToken: userToken,
604
+ sessionStart: sessionToken.start,
605
+ uuid: uuid,
606
+ storeID: storeID,
607
+ cartToken: cartToken,
608
+ productID: productID
609
+ }),
610
+ callback: callback
611
+ });
612
+ };
613
+ var reportCartVisited = function (_a) {
614
+ var report = _a.report, self = _a.self;
615
+ var _b = self.data, userToken = _b.userToken, sessionToken = _b.sessionToken, uuid = _b.uuid, storeID = _b.storeID, cartToken = _b.cartToken;
616
+ var callback = report.callback;
617
+ (0, utils_1.postLoadCallback)({
618
+ eventName: report.eventName,
619
+ promise: reporting_1.Reporting.addToCart({
620
+ userToken: userToken,
621
+ sessionStart: sessionToken.start,
622
+ uuid: uuid,
623
+ storeID: storeID,
624
+ cartToken: cartToken,
625
+ }),
626
+ callback: callback
627
+ });
628
+ };
502
629
  //# sourceMappingURL=index.js.map