fast-simon-sdk 1.6.28 → 1.6.80

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 (98) hide show
  1. package/README.md +68 -58
  2. package/lib/config.d.ts +2 -0
  3. package/lib/config.js +3 -1
  4. package/lib/config.js.map +1 -1
  5. package/lib/index.js +19 -9
  6. package/lib/index.js.map +1 -1
  7. package/lib/models/autocomplete.d.ts +3 -0
  8. package/lib/models/common.d.ts +22 -0
  9. package/lib/models/common.js +3 -0
  10. package/lib/models/common.js.map +1 -1
  11. package/lib/models/events.d.ts +10 -1
  12. package/lib/models/fullTextSearch.d.ts +2 -1
  13. package/lib/models/fullTextSearch.js.map +1 -1
  14. package/lib/models/related.d.ts +3 -0
  15. package/lib/models/smartCollections.d.ts +3 -1
  16. package/lib/sections/enums/index.d.ts +2 -0
  17. package/lib/sections/enums/index.js +2 -0
  18. package/lib/sections/enums/index.js.map +1 -1
  19. package/lib/sections/eventReporter/index.js +88 -23
  20. package/lib/sections/eventReporter/index.js.map +1 -1
  21. package/lib/sections/eventReporter/utils.d.ts +1 -1
  22. package/lib/sections/eventReporter/utils.js +6 -2
  23. package/lib/sections/eventReporter/utils.js.map +1 -1
  24. package/lib/sections/fullTextSearch/index.js +41 -8
  25. package/lib/sections/fullTextSearch/index.js.map +1 -1
  26. package/lib/sections/fullTextSearch/utils.d.ts +0 -1
  27. package/lib/sections/fullTextSearch/utils.js +11 -5
  28. package/lib/sections/fullTextSearch/utils.js.map +1 -1
  29. package/lib/sections/index.js +34 -2
  30. package/lib/sections/index.js.map +1 -1
  31. package/lib/sections/initialization/index.d.ts +2 -1
  32. package/lib/sections/initialization/index.js +63 -17
  33. package/lib/sections/initialization/index.js.map +1 -1
  34. package/lib/sections/initialization/utils.js +27 -10
  35. package/lib/sections/initialization/utils.js.map +1 -1
  36. package/lib/sections/instantSearch/index.d.ts +1 -1
  37. package/lib/sections/instantSearch/index.js +3 -3
  38. package/lib/sections/instantSearch/index.js.map +1 -1
  39. package/lib/sections/instantSearch/utils.d.ts +2 -1
  40. package/lib/sections/instantSearch/utils.js +4 -4
  41. package/lib/sections/instantSearch/utils.js.map +1 -1
  42. package/lib/sections/landingPage/index.js +9 -0
  43. package/lib/sections/landingPage/index.js.map +1 -1
  44. package/lib/sections/recommendations/index.d.ts +14 -0
  45. package/lib/sections/recommendations/index.js +71 -3
  46. package/lib/sections/recommendations/index.js.map +1 -1
  47. package/lib/sections/recommendations/utils.js +12 -7
  48. package/lib/sections/recommendations/utils.js.map +1 -1
  49. package/lib/sections/smartCollections/index.js +40 -7
  50. package/lib/sections/smartCollections/index.js.map +1 -1
  51. package/lib/sections/smartCollections/utils.d.ts +4 -4
  52. package/lib/sections/smartCollections/utils.js +47 -93
  53. package/lib/sections/smartCollections/utils.js.map +1 -1
  54. package/lib/services/ViewportImpressionTracker.d.ts +37 -0
  55. package/lib/services/ViewportImpressionTracker.js +218 -0
  56. package/lib/services/ViewportImpressionTracker.js.map +1 -0
  57. package/lib/services/common.d.ts +14 -6
  58. package/lib/services/common.js +35 -10
  59. package/lib/services/common.js.map +1 -1
  60. package/lib/services/fullTextSearch.d.ts +1 -1
  61. package/lib/services/fullTextSearch.js +39 -5
  62. package/lib/services/fullTextSearch.js.map +1 -1
  63. package/lib/services/related.d.ts +23 -3
  64. package/lib/services/related.js +36 -2
  65. package/lib/services/related.js.map +1 -1
  66. package/lib/services/reporting.d.ts +11 -13
  67. package/lib/services/reporting.js +24 -33
  68. package/lib/services/reporting.js.map +1 -1
  69. package/lib/services/smartCollections.d.ts +1 -1
  70. package/lib/services/smartCollections.js +44 -12
  71. package/lib/services/smartCollections.js.map +1 -1
  72. package/lib/services/viewportImpressions.d.ts +12 -0
  73. package/lib/services/viewportImpressions.js +211 -0
  74. package/lib/services/viewportImpressions.js.map +1 -0
  75. package/lib/utils/API.js +19 -4
  76. package/lib/utils/API.js.map +1 -1
  77. package/lib/utils/attentive.d.ts +1 -0
  78. package/lib/utils/attentive.js +36 -0
  79. package/lib/utils/attentive.js.map +1 -0
  80. package/lib/utils/debug.d.ts +1 -0
  81. package/lib/utils/debug.js +13 -1
  82. package/lib/utils/debug.js.map +1 -1
  83. package/lib/utils/logger.d.ts +2 -0
  84. package/lib/utils/logger.js +26 -0
  85. package/lib/utils/logger.js.map +1 -0
  86. package/lib/utils/personalization.d.ts +5 -0
  87. package/lib/utils/personalization.js +18 -3
  88. package/lib/utils/personalization.js.map +1 -1
  89. package/lib/utils/personalizationSegment.d.ts +2 -0
  90. package/lib/utils/personalizationSegment.js +17 -0
  91. package/lib/utils/personalizationSegment.js.map +1 -0
  92. package/lib/utils/siteStateValidator.d.ts +25 -0
  93. package/lib/utils/siteStateValidator.js +45 -0
  94. package/lib/utils/siteStateValidator.js.map +1 -0
  95. package/lib/utils/validation.d.ts +1 -0
  96. package/lib/utils/validation.js +13 -1
  97. package/lib/utils/validation.js.map +1 -1
  98. package/package.json +44 -41
@@ -11,9 +11,8 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.hasProductFacetsCallbacks = exports.handleProductFacetsCallbacks = exports.isRecommendedProduct = exports.facetNeeded = exports.savePersonalizedProductsFromCollectionResponse = exports.updateRecentCollectionProducts = exports.getRecentCollectionProducts = exports.getCollectionName = exports.getPersonalizedProducts = exports.handleSmartCollection = exports.getData = exports.setInfiniteScroll = exports.emptyResults = void 0;
14
+ exports.hasProductFacetsCallbacks = exports.handleProductFacetsCallbacks = exports.isRecommendedProduct = exports.facetNeeded = exports.updateRecentCollectionProducts = exports.getRecentCollectionProducts = exports.getCollectionName = exports.handleSmartCollection = exports.getData = exports.setInfiniteScroll = exports.emptyResults = void 0;
15
15
  var ArrayUtils_1 = require("../../utils/ArrayUtils");
16
- var related_1 = require("../../services/related");
17
16
  var config_1 = require("../../config");
18
17
  var utils_1 = require("../fullTextSearch/utils");
19
18
  var utilities_1 = require("@fast-simon/utilities");
@@ -65,7 +64,10 @@ var getData = function (self, response) {
65
64
  result.bannerHTML = response.banner_html;
66
65
  }
67
66
  if (response.personalized_products) {
68
- self.data.personalizedProducts = (0, exports.savePersonalizedProductsFromCollectionResponse)(response.personalized_products);
67
+ self.data.personalizedProducts = savePersonalizedProductsFromServingResponse(response.personalized_products);
68
+ }
69
+ else {
70
+ self.data.personalizedProducts = savePersonalizedProductsFromServingResponse(undefined);
69
71
  }
70
72
  if (response.related_categories) {
71
73
  result.relatedCategories = (_b = (_a = response.related_categories) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, function (category) {
@@ -105,101 +107,44 @@ exports.getData = getData;
105
107
  var handleSmartCollection = function (_a) {
106
108
  var _b, _c;
107
109
  var event = _a.event, callback = _a.callback, self = _a.self, personalized = _a.personalized, time = _a.time, isNoResults = _a.isNoResults, page = _a.page, sortBy = _a.sortBy, narrow = _a.narrow, result = _a.result, inventoryCallback = _a.inventoryCallback, access_token = _a.access_token, shop_url = _a.shop_url, onProductsLoaded = _a.onProductsLoaded, onFacetsLoaded = _a.onFacetsLoaded, callbackType = _a.callbackType;
108
- if (personalized && !isNoResults && page === 1 && (!narrow || narrow.length === 0) && (!sortBy || sortBy === "relevency")) {
109
- handlePersonalisedProducts(self, result, callback, event, time !== null && time !== void 0 ? time : 356, onProductsLoaded, onFacetsLoaded, callbackType);
110
- }
111
- else {
112
- if ((result === null || result === void 0 ? void 0 : result.products) && ((_b = result === null || result === void 0 ? void 0 : result.products) === null || _b === void 0 ? void 0 : _b.length) && ((_c = self.data) === null || _c === void 0 ? void 0 : _c.uuid) === 'a93cd17e-84be-4302-b068-8b2f37c1c415') {
113
- result.products = duplicationsHandler_1.duplicationsHandler.getFilteredProducts(result);
110
+ // Save product IDs in a dictionary for future reference
111
+ if ((result === null || result === void 0 ? void 0 : result.products) && result.products.length > 0) {
112
+ // Initialize the dictionary if it doesn't exist
113
+ if (!self.data.collectionProductIds) {
114
+ self.data.collectionProductIds = {};
114
115
  }
115
- if ((0, exports.hasProductFacetsCallbacks)(onProductsLoaded, onFacetsLoaded)) {
116
- if (callbackType === "products" || callbackType === "facets and products") {
117
- (0, exports.handleProductFacetsCallbacks)(result, "products", onProductsLoaded, onFacetsLoaded);
118
- }
119
- if (callbackType === "facets" || callbackType === "facets and products") {
120
- (0, exports.handleProductFacetsCallbacks)(result, "facets", onProductsLoaded, onFacetsLoaded);
121
- }
116
+ // Add all product IDs to the dictionary in a single operation
117
+ var productIds = result.products
118
+ .filter(function (product) { return product.id; })
119
+ .reduce(function (acc, product) {
120
+ acc[product.id] = true;
121
+ return acc;
122
+ }, {});
123
+ // Merge with existing dictionary
124
+ Object.assign(self.data.collectionProductIds, productIds);
125
+ }
126
+ if ((result === null || result === void 0 ? void 0 : result.products) && ((_b = result === null || result === void 0 ? void 0 : result.products) === null || _b === void 0 ? void 0 : _b.length) && ((_c = self.data) === null || _c === void 0 ? void 0 : _c.uuid) === 'a93cd17e-84be-4302-b068-8b2f37c1c415') {
127
+ result.products = duplicationsHandler_1.duplicationsHandler.getFilteredProducts(result);
128
+ }
129
+ if ((0, exports.hasProductFacetsCallbacks)(onProductsLoaded, onFacetsLoaded)) {
130
+ if (callbackType === "products" || callbackType === "facets and products") {
131
+ (0, exports.handleProductFacetsCallbacks)(result, "products", onProductsLoaded, onFacetsLoaded);
122
132
  }
123
- else {
124
- callback({
125
- action: event,
126
- payload: result
127
- });
133
+ if (callbackType === "facets" || callbackType === "facets and products") {
134
+ (0, exports.handleProductFacetsCallbacks)(result, "facets", onProductsLoaded, onFacetsLoaded);
128
135
  }
129
136
  }
137
+ else {
138
+ callback({
139
+ action: event,
140
+ payload: result
141
+ });
142
+ }
130
143
  if (access_token && inventoryCallback) {
131
144
  (0, utilities_1.getProductsInventory)(result === null || result === void 0 ? void 0 : result.products, access_token, inventoryCallback, shop_url);
132
145
  }
133
146
  };
134
147
  exports.handleSmartCollection = handleSmartCollection;
135
- var handlePersonalisedProducts = function (self, payload, callback, event, time, onProductsLoaded, onFacetsLoaded, callbackType) {
136
- var _a;
137
- var _b = self.data, storeID = _b.storeID, uuid = _b.uuid, userToken = _b.userToken, channel = _b.channel;
138
- var now = Math.round(Date.now() / 1000);
139
- var categoryID = payload.categoryID;
140
- var recent = (0, exports.getRecentCollectionProducts)().filter(function (r) { return r.time + time * 360 > now; });
141
- localStorage.setItem("".concat(config_1.RECENT_COLLECTION_PRODUCTS_KEY), JSON.stringify(recent));
142
- var isPersonalizedFiltersActive = ((_a = self.data.dashboard) === null || _a === void 0 ? void 0 : _a.is_personalized_filter) || false;
143
- var recentProducts = recent.map(function (r) { return r.id; });
144
- if (recent.length > 0) {
145
- related_1.Related.getRecentlyViewed({
146
- uuid: uuid,
147
- storeID: storeID,
148
- recent: recentProducts,
149
- categoryID: categoryID,
150
- cartToken: self.data.cartToken,
151
- isPersonalizedFiltersActive: isPersonalizedFiltersActive,
152
- userToken: userToken,
153
- channel: channel
154
- }).then(function (response) {
155
- var result = __assign(__assign({}, payload), { products: (0, exports.getPersonalizedProducts)(self, response.widget_responses[0].products, payload.products) });
156
- if ((0, exports.hasProductFacetsCallbacks)(onProductsLoaded, onFacetsLoaded)) {
157
- if (callbackType === "products" || callbackType === "facets and products") {
158
- (0, exports.handleProductFacetsCallbacks)(result, "products", onProductsLoaded, onFacetsLoaded);
159
- }
160
- if (callbackType === "facets" || callbackType === "facets and products") {
161
- (0, exports.handleProductFacetsCallbacks)(result, "facets", onProductsLoaded, onFacetsLoaded);
162
- }
163
- }
164
- else {
165
- callback({
166
- action: event,
167
- payload: result
168
- });
169
- }
170
- });
171
- }
172
- else {
173
- if ((0, exports.hasProductFacetsCallbacks)(onProductsLoaded, onFacetsLoaded)) {
174
- if (callbackType === "products" || callbackType === "facets and products") {
175
- (0, exports.handleProductFacetsCallbacks)(payload, "products", onProductsLoaded, onFacetsLoaded);
176
- }
177
- if (callbackType === "facets" || callbackType === "facets and products") {
178
- (0, exports.handleProductFacetsCallbacks)(payload, "facets", onProductsLoaded, onFacetsLoaded);
179
- }
180
- }
181
- else {
182
- callback({
183
- action: event,
184
- payload: payload
185
- });
186
- }
187
- }
188
- };
189
- var getPersonalizedProducts = function (self, recent, products) {
190
- var recentProducts = recent.filter(function (r, i) {
191
- var newPosition = i * 2;
192
- var oldPosition = products.findIndex(function (p) { return p.id === r.id; });
193
- return oldPosition === -1 || (newPosition < oldPosition);
194
- });
195
- var ids = new Set(recentProducts.map(function (p) { return p.id; }));
196
- var newProducts = products.filter(function (p) { return !ids.has(p.id); });
197
- for (var i = 0, pos = 1; i < recentProducts.length; i++, pos += 2) {
198
- (0, ArrayUtils_1.insert)(newProducts, pos, __assign({ rec: true }, recentProducts[i]));
199
- }
200
- return newProducts;
201
- };
202
- exports.getPersonalizedProducts = getPersonalizedProducts;
203
148
  var getCollectionName = function (self, id) {
204
149
  id = String(id);
205
150
  var category = self.data.categories.find(function (category) { return category.id === id; });
@@ -236,11 +181,14 @@ var updateRecentCollectionProducts = function (productID, categoryID) {
236
181
  localStorage.setItem(config_1.RECENT_COLLECTION_PRODUCTS_KEY, JSON.stringify(sortedCategoriesProducts.splice(0, config_1.MAX_RECENT_COLLECTION_PRODUCTS)));
237
182
  };
238
183
  exports.updateRecentCollectionProducts = updateRecentCollectionProducts;
239
- var savePersonalizedProductsFromCollectionResponse = function (data) {
184
+ var savePersonalizedProductsFromServingResponse = function (data) {
185
+ if (!data) {
186
+ localStorage.removeItem(config_1.PERSONALIZED_PRODUCT_IDS);
187
+ return undefined;
188
+ }
240
189
  localStorage.setItem(config_1.PERSONALIZED_PRODUCT_IDS, JSON.stringify(data.map(function (id) { return String(id); })));
241
190
  return data === null || data === void 0 ? void 0 : data.join(',');
242
191
  };
243
- exports.savePersonalizedProductsFromCollectionResponse = savePersonalizedProductsFromCollectionResponse;
244
192
  var moveAndUpdate = function (categories, index) {
245
193
  (0, ArrayUtils_1.arrayMove)(categories, index, categories.length - 1);
246
194
  categories[categories.length - 1].time = Date.now();
@@ -251,10 +199,16 @@ var facetNeeded = function (_a) {
251
199
  return !(JSON.stringify(narrow) === JSON.stringify(newNarrow) && newPage === page && categoryID === newCategoryID);
252
200
  };
253
201
  exports.facetNeeded = facetNeeded;
254
- var isRecommendedProduct = function (productId) {
202
+ var isRecommendedProduct = function (productId, ids) {
203
+ var _a;
255
204
  if (config_1.PERSONALIZED_PRODUCT_IDS in localStorage) {
256
205
  var recent = JSON.parse(localStorage.getItem(config_1.PERSONALIZED_PRODUCT_IDS));
257
- return Boolean(recent.find(function (r) { return r === productId; }));
206
+ var inPersonalized = Boolean(recent.find(function (r) { return r === productId; }));
207
+ var inProducts = true;
208
+ if (ids && ((_a = Object.keys(ids)) === null || _a === void 0 ? void 0 : _a.length) > 0) {
209
+ inProducts = ids === null || ids === void 0 ? void 0 : ids[productId];
210
+ }
211
+ return inPersonalized && inProducts;
258
212
  }
259
213
  return false;
260
214
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/sections/smartCollections/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/sections/smartCollections/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface ImpressionMetadata {
2
+ elementID: string;
3
+ elementType: "product" | "promotile";
4
+ elementPosition: number;
5
+ query?: string;
6
+ categoryID?: string;
7
+ pagenum?: number;
8
+ sort_by?: string;
9
+ narrow_by?: string;
10
+ }
11
+ export interface ImpressionRecord extends ImpressionMetadata {
12
+ timestamp: number;
13
+ isReported: boolean;
14
+ }
15
+ export interface ViewportImpressionTrackerConfig {
16
+ threshold?: number;
17
+ backupInterval?: number;
18
+ onImpression?: (record: ImpressionRecord) => void;
19
+ onReport?: (impressions: ImpressionRecord[]) => Promise<void>;
20
+ }
21
+ export declare class ViewportImpressionTracker {
22
+ private impressions;
23
+ private observers;
24
+ private observerMetadata;
25
+ private reportingTimer;
26
+ private hasReportedOnPageLeave;
27
+ private config;
28
+ private pageLeaveCleanup;
29
+ constructor(config?: ViewportImpressionTrackerConfig);
30
+ track(element: Element, metadata: ImpressionMetadata): void;
31
+ untrack(element: Element): void;
32
+ reportNow(): Promise<void>;
33
+ destroy(): void;
34
+ private handleIntersection;
35
+ private setupBackupTimer;
36
+ private setupPageLeaveHandlers;
37
+ }
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ // ViewportImpressionTracker - SDK implementation
3
+ // Based on the reporting module but using SDK's own infrastructure
4
+ var __assign = (this && this.__assign) || function () {
5
+ __assign = Object.assign || function(t) {
6
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7
+ s = arguments[i];
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
+ t[p] = s[p];
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ var __generator = (this && this.__generator) || function (thisArg, body) {
25
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
26
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
+ function verb(n) { return function (v) { return step([n, v]); }; }
28
+ function step(op) {
29
+ if (f) throw new TypeError("Generator is already executing.");
30
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
+ if (y = 0, t) op = [op[0] & 2, t.value];
33
+ switch (op[0]) {
34
+ case 0: case 1: t = op; break;
35
+ case 4: _.label++; return { value: op[1], done: false };
36
+ case 5: _.label++; y = op[1]; op = [0]; continue;
37
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
+ default:
39
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
+ if (t[2]) _.ops.pop();
44
+ _.trys.pop(); continue;
45
+ }
46
+ op = body.call(thisArg, _);
47
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
+ }
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.ViewportImpressionTracker = void 0;
53
+ var ViewportImpressionTracker = /** @class */ (function () {
54
+ function ViewportImpressionTracker(config) {
55
+ if (config === void 0) { config = {}; }
56
+ var _a, _b, _c, _d;
57
+ this.impressions = new Map();
58
+ this.observers = new Map();
59
+ this.observerMetadata = new Map();
60
+ this.reportingTimer = null;
61
+ this.hasReportedOnPageLeave = false;
62
+ this.pageLeaveCleanup = null;
63
+ this.config = {
64
+ threshold: (_a = config.threshold) !== null && _a !== void 0 ? _a : 0.7,
65
+ backupInterval: (_b = config.backupInterval) !== null && _b !== void 0 ? _b : 120000, // 120 seconds
66
+ onImpression: (_c = config.onImpression) !== null && _c !== void 0 ? _c : (function () { }),
67
+ onReport: (_d = config.onReport) !== null && _d !== void 0 ? _d : (function () { return Promise.resolve(); })
68
+ };
69
+ this.setupBackupTimer();
70
+ this.setupPageLeaveHandlers();
71
+ }
72
+ ViewportImpressionTracker.prototype.track = function (element, metadata) {
73
+ var _this = this;
74
+ // Don't track the same element twice
75
+ if (this.observers.has(element)) {
76
+ return;
77
+ }
78
+ // If we already tracked this ID, skip
79
+ if (this.impressions.has(metadata.elementID)) {
80
+ return;
81
+ }
82
+ var observer = new IntersectionObserver(function (entries) { return _this.handleIntersection(entries); }, { threshold: this.config.threshold });
83
+ observer.observe(element);
84
+ this.observers.set(element, observer);
85
+ this.observerMetadata.set(element, metadata);
86
+ };
87
+ ViewportImpressionTracker.prototype.untrack = function (element) {
88
+ var observer = this.observers.get(element);
89
+ if (observer) {
90
+ observer.disconnect();
91
+ this.observers.delete(element);
92
+ this.observerMetadata.delete(element);
93
+ }
94
+ };
95
+ ViewportImpressionTracker.prototype.reportNow = function () {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ var impressionsToReport, error_1;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ impressionsToReport = Array.from(this.impressions.values())
102
+ .filter(function (record) { return !record.isReported; });
103
+ if (impressionsToReport.length === 0) {
104
+ return [2 /*return*/];
105
+ }
106
+ // Mark as reported before sending to prevent duplicates
107
+ impressionsToReport.forEach(function (record) {
108
+ record.isReported = true;
109
+ });
110
+ _a.label = 1;
111
+ case 1:
112
+ _a.trys.push([1, 3, , 4]);
113
+ return [4 /*yield*/, this.config.onReport(impressionsToReport)];
114
+ case 2:
115
+ _a.sent();
116
+ // Clear reported impressions
117
+ this.impressions.clear();
118
+ return [3 /*break*/, 4];
119
+ case 3:
120
+ error_1 = _a.sent();
121
+ // Revert isReported flag on error
122
+ impressionsToReport.forEach(function (record) {
123
+ record.isReported = false;
124
+ });
125
+ return [3 /*break*/, 4];
126
+ case 4: return [2 /*return*/];
127
+ }
128
+ });
129
+ });
130
+ };
131
+ ViewportImpressionTracker.prototype.destroy = function () {
132
+ // Clear all observers
133
+ this.observers.forEach(function (observer) { return observer.disconnect(); });
134
+ this.observers.clear();
135
+ // Clear timer
136
+ if (this.reportingTimer !== null) {
137
+ clearInterval(this.reportingTimer);
138
+ this.reportingTimer = null;
139
+ }
140
+ // Remove page leave handlers
141
+ if (this.pageLeaveCleanup) {
142
+ this.pageLeaveCleanup();
143
+ this.pageLeaveCleanup = null;
144
+ }
145
+ // Clear impressions
146
+ this.impressions.clear();
147
+ };
148
+ ViewportImpressionTracker.prototype.handleIntersection = function (entries) {
149
+ var _this = this;
150
+ entries.forEach(function (entry) {
151
+ if (entry.isIntersecting) {
152
+ var metadata = _this.observerMetadata.get(entry.target);
153
+ if (!metadata || _this.impressions.has(metadata.elementID)) {
154
+ return;
155
+ }
156
+ var record = __assign(__assign({}, metadata), { timestamp: Date.now(), isReported: false });
157
+ _this.impressions.set(metadata.elementID, record);
158
+ _this.config.onImpression(record);
159
+ // Disconnect and clean up observer after first impression
160
+ var observer = _this.observers.get(entry.target);
161
+ if (observer) {
162
+ observer.disconnect();
163
+ _this.observers.delete(entry.target);
164
+ _this.observerMetadata.delete(entry.target);
165
+ }
166
+ }
167
+ });
168
+ };
169
+ ViewportImpressionTracker.prototype.setupBackupTimer = function () {
170
+ var _this = this;
171
+ this.reportingTimer = window.setInterval(function () {
172
+ _this.reportNow().catch(function (error) {
173
+ console.error('Backup timer reporting failed:', error);
174
+ });
175
+ }, this.config.backupInterval);
176
+ };
177
+ ViewportImpressionTracker.prototype.setupPageLeaveHandlers = function () {
178
+ var _this = this;
179
+ var handlePageLeave = function () {
180
+ if (_this.hasReportedOnPageLeave)
181
+ return;
182
+ _this.hasReportedOnPageLeave = true;
183
+ // Synchronous reporting for page leave
184
+ var impressionsToReport = Array.from(_this.impressions.values())
185
+ .filter(function (record) { return !record.isReported; });
186
+ if (impressionsToReport.length > 0) {
187
+ // Fire and forget - we can't wait for the promise
188
+ _this.config.onReport(impressionsToReport).catch(function () {
189
+ // Ignore errors during page leave
190
+ });
191
+ // Clear impressions
192
+ _this.impressions.clear();
193
+ }
194
+ };
195
+ var handleVisibilityChange = function () {
196
+ if (document.visibilityState === 'hidden') {
197
+ handlePageLeave();
198
+ }
199
+ else if (document.visibilityState === 'visible') {
200
+ // Reset the flag when page becomes visible again
201
+ _this.hasReportedOnPageLeave = false;
202
+ }
203
+ };
204
+ // Register events
205
+ window.addEventListener('beforeunload', handlePageLeave);
206
+ document.addEventListener('visibilitychange', handleVisibilityChange);
207
+ window.addEventListener('pagehide', handlePageLeave);
208
+ // Store cleanup function
209
+ this.pageLeaveCleanup = function () {
210
+ window.removeEventListener('beforeunload', handlePageLeave);
211
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
212
+ window.removeEventListener('pagehide', handlePageLeave);
213
+ };
214
+ };
215
+ return ViewportImpressionTracker;
216
+ }());
217
+ exports.ViewportImpressionTracker = ViewportImpressionTracker;
218
+ //# sourceMappingURL=ViewportImpressionTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewportImpressionTracker.js","sourceRoot":"","sources":["../../src/services/ViewportImpressionTracker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DashboardResponse, FastCategory, FastTurbolinks, PopResponse } from "../models/autocomplete";
2
2
  import { PostLoadResponse } from "../models/events";
3
- import { BCTokenResponse, Channel, ShopifyTokenResponse } from "../models/common";
3
+ import { BCTokenResponse, Channel, ShopifyTokenResponse, SDKUtils } from "../models/common";
4
4
  import { ArticleResponse } from "./content";
5
5
  export declare const debugVersion: string;
6
6
  export declare const Common: {
@@ -8,7 +8,7 @@ export declare const Common: {
8
8
  uuid: string;
9
9
  storeID: number;
10
10
  }) => Promise<DashboardResponse>;
11
- getPopularProducts: ({ uuid, storeID, cdn, withAttributes, hasShopifyMarkets, withProductVariants, companyLocationContext, channel }: {
11
+ getPopularProducts: ({ uuid, storeID, cdn, withAttributes, hasShopifyMarkets, withProductVariants, companyLocationContext, channel, sdkUtils }: {
12
12
  uuid: string;
13
13
  storeID: number;
14
14
  cdn: number;
@@ -17,29 +17,37 @@ export declare const Common: {
17
17
  withProductVariants?: boolean;
18
18
  companyLocationContext?: number;
19
19
  channel?: Channel;
20
+ sdkUtils?: SDKUtils;
20
21
  }) => Promise<PopResponse>;
21
- getCategories: ({ uuid, storeID, cdn, channel }: {
22
+ getCategories: ({ uuid, storeID, cdn, channel, sdkUtils }: {
22
23
  uuid: string;
23
24
  storeID: number;
24
25
  cdn: number;
25
26
  channel?: Channel;
27
+ sdkUtils?: SDKUtils;
26
28
  }) => Promise<FastCategory[]>;
27
- getArticles: ({ uuid, storeID, cdn, channel }: {
29
+ getArticles: ({ uuid, storeID, cdn, channel, sdkUtils }: {
28
30
  uuid: string;
29
31
  storeID: number;
30
32
  cdn: number;
31
33
  channel?: Channel;
34
+ sdkUtils?: SDKUtils;
32
35
  }) => Promise<ArticleResponse[]>;
33
- getTurbolinks: ({ uuid, storeID, cdn, channel }: {
36
+ getTurbolinks: ({ uuid, storeID, cdn, channel, sdkUtils }: {
34
37
  uuid: string;
35
38
  storeID: number;
36
39
  cdn: number;
37
40
  channel?: Channel;
41
+ sdkUtils?: SDKUtils;
38
42
  }) => Promise<FastTurbolinks[]>;
39
- getPostLoad: ({ uuid, storeID, channel }: {
43
+ getPostLoad: ({ uuid, storeID, channel, cartToken, userSession, sessionStart, variationId }: {
40
44
  uuid: string;
41
45
  storeID: number;
42
46
  channel?: Channel;
47
+ cartToken?: string;
48
+ userSession?: string;
49
+ sessionStart?: number;
50
+ variationId?: string;
43
51
  }) => Promise<PostLoadResponse>;
44
52
  getBigcommerceCartToken: () => Promise<BCTokenResponse[]>;
45
53
  getShopifyCartToken: () => Promise<ShopifyTokenResponse>;