fast-simon-sdk 1.6.8 → 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 (165) hide show
  1. package/lib/config.d.ts +25 -25
  2. package/lib/config.js +30 -30
  3. package/lib/index.d.ts +3 -3
  4. package/lib/index.js +72 -72
  5. package/lib/index.js.map +1 -1
  6. package/lib/models/autocomplete.d.ts +73 -73
  7. package/lib/models/autocomplete.js +2 -2
  8. package/lib/models/common.d.ts +267 -267
  9. package/lib/models/common.js +65 -65
  10. package/lib/models/common.js.map +1 -1
  11. package/lib/models/content.d.ts +37 -37
  12. package/lib/models/content.js +2 -2
  13. package/lib/models/events.d.ts +113 -113
  14. package/lib/models/events.js +2 -2
  15. package/lib/models/exports.d.ts +6 -6
  16. package/lib/models/exports.js +5 -5
  17. package/lib/models/fullTextSearch.d.ts +130 -130
  18. package/lib/models/fullTextSearch.js +17 -17
  19. package/lib/models/fullTextSearch.js.map +1 -1
  20. package/lib/models/lookAlikeProductRecommendation.d.ts +8 -8
  21. package/lib/models/lookAlikeProductRecommendation.js +2 -2
  22. package/lib/models/productsInventory.d.ts +10 -10
  23. package/lib/models/productsInventory.js +2 -2
  24. package/lib/models/related.d.ts +35 -35
  25. package/lib/models/related.js +2 -2
  26. package/lib/models/smartCollections.d.ts +94 -94
  27. package/lib/models/smartCollections.js +2 -2
  28. package/lib/models/visualDiscovery.d.ts +129 -129
  29. package/lib/models/visualDiscovery.js +30 -30
  30. package/lib/models/visualDiscovery.js.map +1 -1
  31. package/lib/sections/contentSearch/index.d.ts +7 -7
  32. package/lib/sections/contentSearch/index.js +44 -44
  33. package/lib/sections/contentSearch/index.js.map +1 -1
  34. package/lib/sections/enums/index.d.ts +47 -47
  35. package/lib/sections/enums/index.js +50 -50
  36. package/lib/sections/eventReporter/index.d.ts +10 -10
  37. package/lib/sections/eventReporter/index.js +628 -628
  38. package/lib/sections/eventReporter/index.js.map +1 -1
  39. package/lib/sections/eventReporter/utils.d.ts +9 -9
  40. package/lib/sections/eventReporter/utils.js +31 -31
  41. package/lib/sections/eventReporter/utils.js.map +1 -1
  42. package/lib/sections/fullTextSearch/index.d.ts +6 -6
  43. package/lib/sections/fullTextSearch/index.js +178 -178
  44. package/lib/sections/fullTextSearch/index.js.map +1 -1
  45. package/lib/sections/fullTextSearch/utils.d.ts +17 -17
  46. package/lib/sections/fullTextSearch/utils.js +185 -181
  47. package/lib/sections/fullTextSearch/utils.js.map +1 -1
  48. package/lib/sections/index.d.ts +3 -3
  49. package/lib/sections/index.js +432 -434
  50. package/lib/sections/index.js.map +1 -1
  51. package/lib/sections/initialization/index.d.ts +8 -8
  52. package/lib/sections/initialization/index.js +150 -150
  53. package/lib/sections/initialization/index.js.map +1 -1
  54. package/lib/sections/initialization/utils.d.ts +11 -11
  55. package/lib/sections/initialization/utils.js +200 -200
  56. package/lib/sections/initialization/utils.js.map +1 -1
  57. package/lib/sections/instantSearch/index.d.ts +6 -6
  58. package/lib/sections/instantSearch/index.js +66 -66
  59. package/lib/sections/instantSearch/index.js.map +1 -1
  60. package/lib/sections/instantSearch/utils.d.ts +21 -21
  61. package/lib/sections/instantSearch/utils.js +232 -232
  62. package/lib/sections/instantSearch/utils.js.map +1 -1
  63. package/lib/sections/landingPage/index.d.ts +6 -6
  64. package/lib/sections/landingPage/index.js +95 -95
  65. package/lib/sections/landingPage/index.js.map +1 -1
  66. package/lib/sections/landingPage/utils.d.ts +14 -14
  67. package/lib/sections/landingPage/utils.js +96 -96
  68. package/lib/sections/landingPage/utils.js.map +1 -1
  69. package/lib/sections/lookAlikeProductRecommendation/index.d.ts +6 -6
  70. package/lib/sections/lookAlikeProductRecommendation/index.js +23 -23
  71. package/lib/sections/recommendations/index.d.ts +10 -10
  72. package/lib/sections/recommendations/index.js +95 -95
  73. package/lib/sections/recommendations/index.js.map +1 -1
  74. package/lib/sections/recommendations/utils.d.ts +6 -6
  75. package/lib/sections/recommendations/utils.js +82 -82
  76. package/lib/sections/recommendations/utils.js.map +1 -1
  77. package/lib/sections/smartCollections/index.d.ts +6 -6
  78. package/lib/sections/smartCollections/index.js +169 -169
  79. package/lib/sections/smartCollections/index.js.map +1 -1
  80. package/lib/sections/smartCollections/utils.d.ts +41 -41
  81. package/lib/sections/smartCollections/utils.js +286 -281
  82. package/lib/sections/smartCollections/utils.js.map +1 -1
  83. package/lib/sections/visualDiscovery/index.d.ts +22 -22
  84. package/lib/sections/visualDiscovery/index.js +261 -265
  85. package/lib/sections/visualDiscovery/index.js.map +1 -1
  86. package/lib/services/autocomplete.d.ts +24 -24
  87. package/lib/services/autocomplete.js +50 -50
  88. package/lib/services/common.d.ts +35 -35
  89. package/lib/services/common.js +94 -94
  90. package/lib/services/content.d.ts +4 -4
  91. package/lib/services/content.js +25 -25
  92. package/lib/services/fullTextSearch.d.ts +4 -4
  93. package/lib/services/fullTextSearch.js +87 -87
  94. package/lib/services/fullTextSearch.js.map +1 -1
  95. package/lib/services/landingPage.d.ts +21 -21
  96. package/lib/services/landingPage.js +44 -44
  97. package/lib/services/lookAlikeProductRecommendation.d.ts +13 -13
  98. package/lib/services/lookAlikeProductRecommendation.js +23 -23
  99. package/lib/services/related.d.ts +48 -48
  100. package/lib/services/related.js +114 -114
  101. package/lib/services/related.js.map +1 -1
  102. package/lib/services/reporting.d.ts +80 -80
  103. package/lib/services/reporting.js +258 -258
  104. package/lib/services/reporting.js.map +1 -1
  105. package/lib/services/smartCollections.d.ts +5 -5
  106. package/lib/services/smartCollections.js +93 -93
  107. package/lib/services/smartCollections.js.map +1 -1
  108. package/lib/services/utils.d.ts +5 -5
  109. package/lib/services/utils.js +25 -25
  110. package/lib/services/utils.js.map +1 -1
  111. package/lib/services/visualDiscovery.d.ts +9 -9
  112. package/lib/services/visualDiscovery.js +166 -170
  113. package/lib/services/visualDiscovery.js.map +1 -1
  114. package/lib/utils/ABTesting.d.ts +2 -2
  115. package/lib/utils/ABTesting.js +27 -28
  116. package/lib/utils/ABTesting.js.map +1 -1
  117. package/lib/utils/API.d.ts +19 -19
  118. package/lib/utils/API.js +81 -81
  119. package/lib/utils/API.js.map +1 -1
  120. package/lib/utils/ArrayUtils.d.ts +2 -2
  121. package/lib/utils/ArrayUtils.js +16 -17
  122. package/lib/utils/ArrayUtils.js.map +1 -1
  123. package/lib/utils/bindingBoxes.d.ts +23 -23
  124. package/lib/utils/bindingBoxes.js +88 -89
  125. package/lib/utils/bindingBoxes.js.map +1 -1
  126. package/lib/utils/cookies.d.ts +13 -13
  127. package/lib/utils/cookies.js +50 -50
  128. package/lib/utils/debug.d.ts +4 -4
  129. package/lib/utils/debug.js +31 -31
  130. package/lib/utils/debug.js.map +1 -1
  131. package/lib/utils/duplicationsHandler.d.ts +19 -0
  132. package/lib/utils/duplicationsHandler.js +70 -0
  133. package/lib/utils/duplicationsHandler.js.map +1 -0
  134. package/lib/utils/filtersPersonalization.d.ts +3 -3
  135. package/lib/utils/filtersPersonalization.js +39 -39
  136. package/lib/utils/filtersPersonalization.js.map +1 -1
  137. package/lib/utils/image.d.ts +6 -6
  138. package/lib/utils/image.js +153 -153
  139. package/lib/utils/image.js.map +1 -1
  140. package/lib/utils/klaviyo.js +1 -1
  141. package/lib/utils/location.d.ts +1 -1
  142. package/lib/utils/location.js +11 -11
  143. package/lib/utils/location.js.map +1 -1
  144. package/lib/utils/mappingUtil.d.ts +4 -4
  145. package/lib/utils/mappingUtil.js +16 -16
  146. package/lib/utils/options.d.ts +23 -23
  147. package/lib/utils/options.js +16 -16
  148. package/lib/utils/personalization.d.ts +2 -2
  149. package/lib/utils/personalization.js +20 -20
  150. package/lib/utils/personalization.js.map +1 -1
  151. package/lib/utils/segments.d.ts +2 -2
  152. package/lib/utils/segments.js +19 -20
  153. package/lib/utils/segments.js.map +1 -1
  154. package/lib/utils/shopifyMarkets.d.ts +3 -3
  155. package/lib/utils/shopifyMarkets.js +12 -12
  156. package/lib/utils/sortUtil.d.ts +1 -1
  157. package/lib/utils/sortUtil.js +24 -24
  158. package/lib/utils/sortUtil.js.map +1 -1
  159. package/lib/utils/updateRecentSearches.d.ts +2 -2
  160. package/lib/utils/updateRecentSearches.js +56 -57
  161. package/lib/utils/updateRecentSearches.js.map +1 -1
  162. package/lib/utils/validation.d.ts +5 -5
  163. package/lib/utils/validation.js +46 -46
  164. package/lib/utils/validation.js.map +1 -1
  165. package/package.json +3 -2
@@ -1,629 +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
- var updateRecentSearches_1 = require("../../utils/updateRecentSearches");
22
- exports.SPAOnlyReports = new Set([
23
- "lookALikeViewSerp",
24
- "quickViewSerp",
25
- "lookALikeViewCollection",
26
- "quickViewCollection",
27
- "search",
28
- "collection",
29
- "cartPerformed"
30
- ]);
31
- var event = function (_a) {
32
- var report = _a.report, self = _a.self;
33
- var type = report.reportAppType ? report.reportAppType : self.type;
34
- var categoryName = self.temp.smartCollections.name;
35
- if (report.eventName === "productFromCollection" && !report.data.query) {
36
- report = __assign(__assign({}, report), { data: __assign(__assign({}, report.data), { query: categoryName !== null && categoryName !== void 0 ? categoryName : "" }) });
37
- }
38
- console.log("event-received", type, report);
39
- if (type === "MPA" && !exports.SPAOnlyReports.has(report.eventName)) {
40
- (0, utils_1.saveEvent)(report);
41
- }
42
- else {
43
- reportEvent({ report: report, self: self });
44
- }
45
- };
46
- exports.event = event;
47
- function reportEvent(_a) {
48
- var report = _a.report, self = _a.self;
49
- switch (report.eventName) {
50
- case "instantsearch-product": {
51
- reportAutocompleteProductSeen({ self: self, report: report });
52
- break;
53
- }
54
- case "instantsearch-category": {
55
- reportAutocompleteCategory({ self: self, report: report });
56
- break;
57
- }
58
- case "instantsearch-popular-search": {
59
- reportAutocompletePopularSearch({ self: self, report: report });
60
- break;
61
- }
62
- case "search": {
63
- reportSearchPreformed({ self: self, report: report });
64
- break;
65
- }
66
- case "productFromSearch": {
67
- reportSerpProductSeen({ self: self, report: report });
68
- break;
69
- }
70
- case "collection": {
71
- reportSmartCollectionPreformed({ self: self, report: report });
72
- break;
73
- }
74
- case "productFromCollection": {
75
- reportProductFromCollection({ self: self, report: report });
76
- break;
77
- }
78
- case "promoTileFromCollection": {
79
- reportPromoTileFromCollection({ self: self, report: report });
80
- break;
81
- }
82
- case "promoTileFromSearch": {
83
- reportPromoTileFromSerp({ self: self, report: report });
84
- break;
85
- }
86
- case "productFromRecommendation": {
87
- reportRecommendationsProductSeen({ self: self, report: report });
88
- break;
89
- }
90
- case "productFromLookALike": {
91
- reportProductFromLookALike({ self: self, report: report });
92
- break;
93
- }
94
- case "quickViewCollection": {
95
- reportQuickViewCollection({ self: self, report: report, type: "Quick View" });
96
- break;
97
- }
98
- case "quickViewSerp": {
99
- reportQuickViewSerp({ self: self, report: report, type: "Quick View" });
100
- break;
101
- }
102
- case "productFromQuickView": {
103
- reportProductFromQuickView({ self: self, report: report });
104
- break;
105
- }
106
- case "lookALikeViewCollection": {
107
- reportQuickViewCollection({ self: self, report: report, type: "Look A Like" });
108
- break;
109
- }
110
- case "lookALikeViewSerp": {
111
- reportQuickViewSerp({ self: self, report: report, type: "Look A Like" });
112
- break;
113
- }
114
- case "productDirect": {
115
- reportDirectProductViewData({ self: self, report: report });
116
- break;
117
- }
118
- case "cartPerformed": {
119
- reportAddToCart({ self: self, report: report });
120
- break;
121
- }
122
- case "cartVisited": {
123
- reportCartVisited({ self: self, report: report });
124
- break;
125
- }
126
- }
127
- localStorage.removeItem(config_1.POST_LOAD_EVENT_KEY);
128
- }
129
- exports.reportEvent = reportEvent;
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
- };
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
+ };
629
629
  //# sourceMappingURL=index.js.map