@inappstory/slide-api 0.1.50 → 0.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1359,6 +1359,7 @@ class DataInput {
1359
1359
  class Barcode {
1360
1360
  _elementNodeRef;
1361
1361
  _layer;
1362
+ _layersNodesRefs;
1362
1363
  _widgetApi;
1363
1364
  _widgetCallbacks;
1364
1365
  _widgetDeps;
@@ -1366,9 +1367,10 @@ class Barcode {
1366
1367
  static className() {
1367
1368
  return Barcode._className;
1368
1369
  }
1369
- constructor(_elementNodeRef, _layer, _widgetApi, _widgetCallbacks, _widgetDeps) {
1370
+ constructor(_elementNodeRef, _layer, _layersNodesRefs, _widgetApi, _widgetCallbacks, _widgetDeps) {
1370
1371
  this._elementNodeRef = _elementNodeRef;
1371
1372
  this._layer = _layer;
1373
+ this._layersNodesRefs = _layersNodesRefs;
1372
1374
  this._widgetApi = _widgetApi;
1373
1375
  this._widgetCallbacks = _widgetCallbacks;
1374
1376
  this._widgetDeps = _widgetDeps;
@@ -1379,7 +1381,7 @@ class Barcode {
1379
1381
  }
1380
1382
  init(localData) {
1381
1383
  try {
1382
- this._widgetApi.init(this._elementNodeRef, localData, this._widgetCallbacks, this._widgetDeps);
1384
+ this._widgetApi.init(this._elementNodeRef, this._layersNodesRefs, localData, this._widgetCallbacks, this._widgetDeps);
1383
1385
  }
1384
1386
  catch (e) {
1385
1387
  console.error(e);
@@ -1406,7 +1408,7 @@ class Barcode {
1406
1408
  get isLayerForcePaused() {
1407
1409
  return false;
1408
1410
  }
1409
- static get [Symbol.for("___CTOR_ARGS___")]() { return [`HTMLElement`, `Layer`, `typeof WidgetBarcode.api`, `WidgetCallbacks`, `WidgetDeps`]; }
1411
+ static get [Symbol.for("___CTOR_ARGS___")]() { return [`HTMLElement`, `Layer`, `Array`, `typeof WidgetBarcode.api`, `WidgetCallbacks`, `WidgetDeps`]; }
1410
1412
  }
1411
1413
 
1412
1414
  class ClickableBase {
@@ -1729,6 +1731,7 @@ class Button extends ClickableBase {
1729
1731
  class Copy {
1730
1732
  _elementNodeRef;
1731
1733
  _layer;
1734
+ _layersNodesRefs;
1732
1735
  _widgetApi;
1733
1736
  _widgetCallbacks;
1734
1737
  _widgetDeps;
@@ -1736,9 +1739,10 @@ class Copy {
1736
1739
  static className() {
1737
1740
  return Copy._className;
1738
1741
  }
1739
- constructor(_elementNodeRef, _layer, _widgetApi, _widgetCallbacks, _widgetDeps) {
1742
+ constructor(_elementNodeRef, _layer, _layersNodesRefs, _widgetApi, _widgetCallbacks, _widgetDeps) {
1740
1743
  this._elementNodeRef = _elementNodeRef;
1741
1744
  this._layer = _layer;
1745
+ this._layersNodesRefs = _layersNodesRefs;
1742
1746
  this._widgetApi = _widgetApi;
1743
1747
  this._widgetCallbacks = _widgetCallbacks;
1744
1748
  this._widgetDeps = _widgetDeps;
@@ -1749,7 +1753,7 @@ class Copy {
1749
1753
  }
1750
1754
  init(localData) {
1751
1755
  try {
1752
- this._widgetApi.init(this._elementNodeRef, localData, this._widgetCallbacks, this._widgetDeps);
1756
+ this._widgetApi.init(this._elementNodeRef, this._layersNodesRefs, localData, this._widgetCallbacks, this._widgetDeps);
1753
1757
  }
1754
1758
  catch (e) {
1755
1759
  console.error(e);
@@ -1776,7 +1780,7 @@ class Copy {
1776
1780
  get isLayerForcePaused() {
1777
1781
  return false;
1778
1782
  }
1779
- static get [Symbol.for("___CTOR_ARGS___")]() { return [`HTMLElement`, `Layer`, `typeof WidgetCopy.api`, `WidgetCallbacks`, `WidgetDeps`]; }
1783
+ static get [Symbol.for("___CTOR_ARGS___")]() { return [`HTMLElement`, `Layer`, `Array`, `typeof WidgetCopy.api`, `WidgetCallbacks`, `WidgetDeps`]; }
1780
1784
  }
1781
1785
 
1782
1786
  class DateCountdown {
@@ -3633,9 +3637,11 @@ const tryCreateFromHtmlElement = (nodeRef, layer, widgetCallbacks, widgetDeps) =
3633
3637
  return new Video(nodeRef, layer, layoutApi.VideoPlayer, layer.slideApiDeps);
3634
3638
  //////// widgets ///////
3635
3639
  case Copy.className():
3636
- return layoutApi.widgetCopyApi ? new Copy(nodeRef, layer, layoutApi.widgetCopyApi, widgetCallbacks, widgetDeps) : null;
3640
+ return layoutApi.widgetCopyApi ? new Copy(nodeRef, layer, layersNodesRefs, layoutApi.widgetCopyApi, widgetCallbacks, widgetDeps) : null;
3637
3641
  case Barcode.className():
3638
- return layoutApi.widgetBarcodeApi ? new Barcode(nodeRef, layer, layoutApi.widgetBarcodeApi, widgetCallbacks, widgetDeps) : null;
3642
+ return layoutApi.widgetBarcodeApi
3643
+ ? new Barcode(nodeRef, layer, layersNodesRefs, layoutApi.widgetBarcodeApi, widgetCallbacks, widgetDeps)
3644
+ : null;
3639
3645
  case DataInput.className():
3640
3646
  return layoutApi.widgetDataInputApi
3641
3647
  ? new DataInput(nodeRef, layer, layersNodesRefs, layoutApi.widgetDataInputApi, widgetCallbacks, widgetDeps)
@@ -5894,7 +5900,7 @@ let SlideApi$1 = class SlideApi {
5894
5900
  handled = true;
5895
5901
  }
5896
5902
  }
5897
- if (handled) {
5903
+ if (handled && linkType !== "products") {
5898
5904
  try {
5899
5905
  const cardId = this.slide.cardId;
5900
5906
  const cardType = this.slide.cardType;
@@ -7108,16 +7114,16 @@ class CardApi {
7108
7114
  if (viewportRatio > _ratio) {
7109
7115
  // fit by height
7110
7116
  slideHeight = viewportHeight;
7111
- slideWidth = Math.ceil(slideHeight * _ratio);
7112
- offset = Math.ceil(slideWidth - viewportWidth) / 2;
7117
+ slideWidth = slideHeight * _ratio;
7118
+ offset = (slideWidth - viewportWidth) / 2;
7113
7119
  slideOffsetMargin = "0 " + -offset + "px"; // -8.5
7114
7120
  xOffset = offset + "px";
7115
7121
  }
7116
7122
  else {
7117
7123
  // fit by width, top and bottom - to offscreen or fill with bg image
7118
7124
  slideWidth = viewportWidth;
7119
- slideHeight = Math.ceil(viewportWidth / _ratio);
7120
- offset = Math.ceil(slideHeight - viewportHeight) / 2;
7125
+ slideHeight = viewportWidth / _ratio;
7126
+ offset = (slideHeight - viewportHeight) / 2;
7121
7127
  slideOffsetMargin = -1 * offset + "px" + " 0 ";
7122
7128
  // offset from viewport bottom to StoryBottom plus safe area offset bottom
7123
7129
  yOffset = `calc(${offset + this._overlappingActionBarHeight}px + env(safe-area-inset-bottom))`;
@@ -7129,8 +7135,8 @@ class CardApi {
7129
7135
  if (viewportRatio > _ratio) {
7130
7136
  // fit by width, top and bottom - to offscreen
7131
7137
  slideWidth = viewportWidth;
7132
- slideHeight = Math.ceil(viewportWidth / _ratio);
7133
- offset = Math.ceil(slideHeight - viewportHeight) / 2;
7138
+ slideHeight = viewportWidth / _ratio;
7139
+ offset = (slideHeight - viewportHeight) / 2;
7134
7140
  slideOffsetMargin = -offset + "px" + " 0 ";
7135
7141
  yOffset = offset + this._overlappingActionBarHeight + "px";
7136
7142
  }
@@ -7138,8 +7144,8 @@ class CardApi {
7138
7144
  // вьюпорт более вытянутый чем надо
7139
7145
  // fit by height, sides - to offscreen
7140
7146
  slideHeight = viewportHeight;
7141
- slideWidth = Math.ceil(slideHeight * _ratio);
7142
- offset = Math.ceil(slideWidth - viewportWidth) / 2;
7147
+ slideWidth = slideHeight * _ratio;
7148
+ offset = (slideWidth - viewportWidth) / 2;
7143
7149
  slideOffsetMargin = "0 " + -offset + "px"; // -8.5
7144
7150
  xOffset = offset + "px";
7145
7151
  }
@@ -17780,12 +17786,19 @@ FontLib.loadFont("OCR-A", 100, 100, "AAEAAAAPAIAAAwBwRkZUTXxHoksAADPIAAAAHEdERUY
17780
17786
  FontLib.loadFont("OCR-B", 96, 100, "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");
17781
17787
  function ean13(opts,dwg) { return _ToAny(bwipp_ean13,opts,dwg); }function pdf417(opts,dwg) { return _ToAny(bwipp_pdf417,opts,dwg); }function qrcode(opts,dwg) { return _ToAny(bwipp_qrcode,opts,dwg); }
17782
17788
 
17789
+ var WidgetBarcodePromocodeExhaustedAction;
17790
+ (function (WidgetBarcodePromocodeExhaustedAction) {
17791
+ WidgetBarcodePromocodeExhaustedAction["ShowNotification"] = "showNotification";
17792
+ WidgetBarcodePromocodeExhaustedAction["ShowLayer"] = "showLayer";
17793
+ })(WidgetBarcodePromocodeExhaustedAction || (WidgetBarcodePromocodeExhaustedAction = {}));
17794
+
17783
17795
  class WidgetBarcode extends WidgetBase {
17784
17796
  static DEFAULTS = {
17785
17797
  slide: null,
17786
17798
  activateAfterCreate: false,
17787
17799
  create: false,
17788
17800
  localData: {},
17801
+ layers: [],
17789
17802
  };
17790
17803
  static widgetClassName = "narrative-element-barcode";
17791
17804
  captionView;
@@ -17801,8 +17814,12 @@ class WidgetBarcode extends WidgetBase {
17801
17814
  msgNoMoreCodes;
17802
17815
  msgTryAgain;
17803
17816
  msgBarcodeRenderError;
17817
+ promocodeExhaustedAction;
17818
+ promocodeExhaustedNotificationText;
17819
+ layers;
17804
17820
  constructor(element, options, widgetCallbacks, widgetDeps) {
17805
17821
  super(element, options, widgetCallbacks, widgetDeps);
17822
+ this.layers = this.options.layers;
17806
17823
  this.captionView = this.element.querySelector(".narrative-element-text-lines");
17807
17824
  this.clipboardTarget = getTagData(element, "clipboardTarget");
17808
17825
  this.isPromotionalCode = getTagData(element, "clipboardType") === "promocode";
@@ -17815,6 +17832,10 @@ class WidgetBarcode extends WidgetBase {
17815
17832
  this.msgNoMoreCodes = getTagData(this.element, "msgNoMoreCodes");
17816
17833
  this.msgTryAgain = getTagData(this.element, "msgTryAgain");
17817
17834
  this.msgBarcodeRenderError = getTagData(this.element, "msgBarcodeRenderError");
17835
+ this.promocodeExhaustedAction =
17836
+ getTagData(element, "promocodeExhaustedAction") ??
17837
+ WidgetBarcodePromocodeExhaustedAction.ShowNotification;
17838
+ this.promocodeExhaustedNotificationText = getTagData(element, "promocodeExhaustedNotificationText") ?? this.msgNoMoreCodes;
17818
17839
  }
17819
17840
  /**
17820
17841
  * Start or restart widget
@@ -17976,7 +17997,7 @@ class WidgetBarcode extends WidgetBase {
17976
17997
  this.setLocalData(this.localData, true);
17977
17998
  }
17978
17999
  else {
17979
- this.msgNoMoreCodes && this.widgetDeps.slideApiDeps.showToast(this.msgNoMoreCodes);
18000
+ this.doPromocodeExhaustedAction();
17980
18001
  }
17981
18002
  }
17982
18003
  else if (status === 12163 || status === 12002) {
@@ -18048,11 +18069,30 @@ class WidgetBarcode extends WidgetBase {
18048
18069
  isDone() {
18049
18070
  return this.localData["_bc_g_" + this.elementId + "_done_at"] !== undefined;
18050
18071
  }
18072
+ doPromocodeExhaustedAction() {
18073
+ switch (this.promocodeExhaustedAction) {
18074
+ case WidgetBarcodePromocodeExhaustedAction.ShowNotification:
18075
+ this.showPromocodeExhaustedNotification();
18076
+ break;
18077
+ case WidgetBarcodePromocodeExhaustedAction.ShowLayer:
18078
+ this.showPromocodeExhaustedLayer();
18079
+ break;
18080
+ }
18081
+ }
18082
+ showPromocodeExhaustedNotification() {
18083
+ if (this.promocodeExhaustedNotificationText)
18084
+ this.widgetDeps.slideApiDeps.showToast(this.promocodeExhaustedNotificationText);
18085
+ }
18086
+ showPromocodeExhaustedLayer() {
18087
+ if (this.layers[1] != null) {
18088
+ this._showLayer(this.layers, 1);
18089
+ }
18090
+ }
18051
18091
  static api = {
18052
18092
  widgetClassName: WidgetBarcode.widgetClassName,
18053
18093
  onRefreshUserData: WidgetBarcode.onRefreshUserData,
18054
- init: function (element, localData, widgetCallbacks, widgetDeps) {
18055
- WidgetBarcode.initWidget(element, localData, (element, options) => new WidgetBarcode(element, options, widgetCallbacks, widgetDeps));
18094
+ init: function (element, layers, localData, widgetCallbacks, widgetDeps) {
18095
+ WidgetBarcode.initWidget(element, localData, (element, options) => new WidgetBarcode(element, { ...options, layers }, widgetCallbacks, widgetDeps));
18056
18096
  },
18057
18097
  onStart: function (element) {
18058
18098
  WidgetBarcode.getInstance(element)?.onStart();
@@ -18082,12 +18122,19 @@ class WidgetBarcode extends WidgetBase {
18082
18122
  static get [Symbol.for("___CTOR_ARGS___")]() { return [`HTMLElement`, `Partial`, `WidgetCallbacks`, `WidgetDeps`]; }
18083
18123
  }
18084
18124
 
18125
+ var WidgetCopyPromocodeExhaustedAction;
18126
+ (function (WidgetCopyPromocodeExhaustedAction) {
18127
+ WidgetCopyPromocodeExhaustedAction["ShowNotification"] = "showNotification";
18128
+ WidgetCopyPromocodeExhaustedAction["ShowLayer"] = "showLayer";
18129
+ })(WidgetCopyPromocodeExhaustedAction || (WidgetCopyPromocodeExhaustedAction = {}));
18130
+
18085
18131
  class WidgetCopy extends WidgetBase {
18086
18132
  static DEFAULTS = {
18087
18133
  slide: null,
18088
18134
  activateAfterCreate: false,
18089
18135
  create: false,
18090
18136
  localData: {},
18137
+ layers: [],
18091
18138
  };
18092
18139
  static widgetClassName = "narrative-element-copy";
18093
18140
  button;
@@ -18102,8 +18149,12 @@ class WidgetCopy extends WidgetBase {
18102
18149
  geometry;
18103
18150
  resultLayer;
18104
18151
  resultLayerGeometry;
18152
+ promocodeExhaustedAction;
18153
+ promocodeExhaustedNotificationText;
18154
+ layers;
18105
18155
  constructor(element, options, widgetCallbacks, widgetDeps) {
18106
18156
  super(element, options, widgetCallbacks, widgetDeps);
18157
+ this.layers = this.options.layers;
18107
18158
  this.button = this.element.querySelector(".narrative-element-text-lines");
18108
18159
  this.clipboardTarget = getTagData(element, "clipboardTarget");
18109
18160
  this.isPromotionalCode = getTagData(element, "clipboardType") === "promocode";
@@ -18112,6 +18163,9 @@ class WidgetCopy extends WidgetBase {
18112
18163
  this.msgServiceError = getTagData(this.element, "msgServiceError");
18113
18164
  this.msgNoMoreCodes = getTagData(this.element, "msgNoMoreCodes");
18114
18165
  this.msgTryAgain = getTagData(this.element, "msgTryAgain");
18166
+ this.promocodeExhaustedAction =
18167
+ getTagData(element, "promocodeExhaustedAction") ?? WidgetCopyPromocodeExhaustedAction.ShowNotification;
18168
+ this.promocodeExhaustedNotificationText = getTagData(element, "promocodeExhaustedNotificationText") ?? this.msgNoMoreCodes;
18115
18169
  this.geometry = this.element.closest(".narrative-element-geometry");
18116
18170
  // this is result layer - skip init
18117
18171
  // todo prevent call Widget.init on result-layer
@@ -18247,7 +18301,7 @@ class WidgetCopy extends WidgetBase {
18247
18301
  this.setLocalData(this.localData, true);
18248
18302
  }
18249
18303
  else {
18250
- this.msgNoMoreCodes && this.widgetDeps.slideApiDeps.showToast(this.msgNoMoreCodes);
18304
+ this.doPromocodeExhaustedAction();
18251
18305
  }
18252
18306
  }
18253
18307
  else if (status === 12163 || status === 12002) {
@@ -18322,13 +18376,32 @@ class WidgetCopy extends WidgetBase {
18322
18376
  isDone() {
18323
18377
  return this.localData["_cp_g_" + this.elementId + "_done_at"] !== undefined;
18324
18378
  }
18379
+ doPromocodeExhaustedAction() {
18380
+ switch (this.promocodeExhaustedAction) {
18381
+ case WidgetCopyPromocodeExhaustedAction.ShowNotification:
18382
+ this.showPromocodeExhaustedNotification();
18383
+ break;
18384
+ case WidgetCopyPromocodeExhaustedAction.ShowLayer:
18385
+ this.showPromocodeExhaustedLayer();
18386
+ break;
18387
+ }
18388
+ }
18389
+ showPromocodeExhaustedNotification() {
18390
+ if (this.promocodeExhaustedNotificationText)
18391
+ this.widgetDeps.slideApiDeps.showToast(this.promocodeExhaustedNotificationText);
18392
+ }
18393
+ showPromocodeExhaustedLayer() {
18394
+ if (this.layers[1] != null) {
18395
+ this._showLayer(this.layers, 1);
18396
+ }
18397
+ }
18325
18398
  static api = {
18326
18399
  widgetClassName: WidgetCopy.widgetClassName,
18327
18400
  onRefreshUserData: WidgetCopy.onRefreshUserData,
18328
- init: function (element, localData, widgetCallbacks, widgetDeps) {
18401
+ init: function (element, layers, localData, widgetCallbacks, widgetDeps) {
18329
18402
  // prevent initWidget for result layer
18330
18403
  if (!element.classList.contains("narrative-element-copy-result-variant")) {
18331
- WidgetCopy.initWidget(element, localData, (element, options) => new WidgetCopy(element, options, widgetCallbacks, widgetDeps));
18404
+ WidgetCopy.initWidget(element, localData, (element, options) => new WidgetCopy(element, { ...options, layers }, widgetCallbacks, widgetDeps));
18332
18405
  }
18333
18406
  },
18334
18407
  onStart: function (element) {
@@ -20939,11 +21012,12 @@ class ProductComponentsFactory {
20939
21012
  },
20940
21013
  });
20941
21014
  }
20942
- createProductCheckout(bottomSheet) {
21015
+ createProductCheckout(bottomSheet, params) {
20943
21016
  return new ProductCheckout({
20944
21017
  onClose: () => bottomSheet.close(),
20945
21018
  onCheckout: () => {
20946
21019
  this.widgetDeps.slideApiDeps.productCartClicked();
21020
+ params.onCheckout();
20947
21021
  },
20948
21022
  translations: this.props.translations,
20949
21023
  });
@@ -20986,9 +21060,9 @@ class ProductOfferMapper {
20986
21060
  oldPrice: offerDto.oldPrice,
20987
21061
  currency: offerDto.currency,
20988
21062
  description: offerDto.description,
20989
- imageUrls: offerDto.images?.map(image => image.url) ?? [],
21063
+ imageUrls: offerDto.blobImages?.map(image => image.url) ?? [],
20990
21064
  adult: offerDto.adult,
20991
- coverUrl: offerDto.coverUrl,
21065
+ coverUrl: offerDto.blobCoverUrl,
20992
21066
  groupId: offerDto.groupId,
20993
21067
  url: offerDto.url,
20994
21068
  };
@@ -21054,6 +21128,7 @@ class ProductDetailsBottomSheet extends RenderableComponent {
21054
21128
  quantity: payload.quantity,
21055
21129
  });
21056
21130
  this.showProductCheckout();
21131
+ this.props.onAddToCart({ offer, quantity: payload.quantity });
21057
21132
  },
21058
21133
  isCartSupported,
21059
21134
  isCartQuantityEnabled,
@@ -21061,7 +21136,9 @@ class ProductDetailsBottomSheet extends RenderableComponent {
21061
21136
  this.updateBottomSheetContent(productDetails);
21062
21137
  }
21063
21138
  showProductCheckout() {
21064
- const productCheckout = this.factory.createProductCheckout(this.bottomSheet);
21139
+ const productCheckout = this.factory.createProductCheckout(this.bottomSheet, {
21140
+ onCheckout: this.props.onCheckout,
21141
+ });
21065
21142
  this.updateBottomSheetContent(productCheckout);
21066
21143
  }
21067
21144
  updateBottomSheetContent(content) {
@@ -21113,7 +21190,9 @@ class ProductCheckoutBottomSheet extends RenderableComponent {
21113
21190
  return this.bottomSheet.render();
21114
21191
  }
21115
21192
  open() {
21116
- const productCheckout = this.factory.createProductCheckout(this.bottomSheet);
21193
+ const productCheckout = this.factory.createProductCheckout(this.bottomSheet, {
21194
+ onCheckout: this.props.onCheckout,
21195
+ });
21117
21196
  this.updateBottomSheetContent(productCheckout);
21118
21197
  this.bottomSheet.open();
21119
21198
  }
@@ -21284,33 +21363,34 @@ class ProductOfferRepository {
21284
21363
  }
21285
21364
  }
21286
21365
  static collectDistinctImageUrls(offers, into) {
21287
- for (const o of offers) {
21288
- if (o.coverUrl) {
21289
- into.add(o.coverUrl);
21366
+ for (const offer of offers) {
21367
+ if (offer.coverUrl) {
21368
+ into.add(offer.coverUrl);
21290
21369
  }
21291
- if (o.images?.length) {
21292
- for (const img of o.images) {
21370
+ if (offer.images?.length) {
21371
+ for (const img of offer.images) {
21293
21372
  if (img.url) {
21294
21373
  into.add(img.url);
21295
21374
  }
21296
21375
  }
21297
21376
  }
21298
- if (o.subOffersApi?.length) {
21299
- this.collectDistinctImageUrls(o.subOffersApi, into);
21377
+ if (offer.subOffersApi?.length) {
21378
+ this.collectDistinctImageUrls(offer.subOffersApi, into);
21300
21379
  }
21301
21380
  }
21302
21381
  }
21303
21382
  static applyImageBlobMap(offers, originalToBlob) {
21304
- for (const o of offers) {
21305
- const coverOrig = o.coverUrl;
21383
+ for (const offer of offers) {
21384
+ const coverOrig = offer.coverUrl;
21306
21385
  if (coverOrig) {
21307
21386
  const blobUrl = originalToBlob.get(coverOrig);
21308
21387
  if (blobUrl) {
21309
- o.coverUrl = blobUrl;
21388
+ offer.blobCoverUrl = blobUrl;
21310
21389
  }
21311
21390
  }
21312
- if (o.images?.length) {
21313
- for (const img of o.images) {
21391
+ if (offer.images?.length) {
21392
+ offer.blobImages = offer.images.map(image => ({ ...image }));
21393
+ for (const img of offer.blobImages) {
21314
21394
  const urlOrig = img.url;
21315
21395
  const blobUrl = originalToBlob.get(urlOrig);
21316
21396
  if (blobUrl) {
@@ -21318,8 +21398,8 @@ class ProductOfferRepository {
21318
21398
  }
21319
21399
  }
21320
21400
  }
21321
- if (o.subOffersApi?.length) {
21322
- this.applyImageBlobMap(o.subOffersApi, originalToBlob);
21401
+ if (offer.subOffersApi?.length) {
21402
+ this.applyImageBlobMap(offer.subOffersApi, originalToBlob);
21323
21403
  }
21324
21404
  }
21325
21405
  }
@@ -21673,6 +21753,12 @@ class WidgetProducts extends WidgetBase {
21673
21753
  openUrl: getTagData(this.element, "msgOpenUrl") ?? "",
21674
21754
  },
21675
21755
  height: backgroundViewHeight + scrollViewGroupHeight,
21756
+ onCheckout: () => {
21757
+ this.statEventGoToCart();
21758
+ },
21759
+ onAddToCart: (event) => {
21760
+ this.statEventAddToCart(event);
21761
+ },
21676
21762
  });
21677
21763
  const isCartEnabled = getTagData(this.element, "isCartEnabled") === "true";
21678
21764
  const isCartQuantityEnabled = !getTagData(this.element, "isCartQuantityEnabled") || getTagData(this.element, "isCartQuantityEnabled") === "true";
@@ -21680,6 +21766,49 @@ class WidgetProducts extends WidgetBase {
21680
21766
  this.productsView.appendChild(bs.render());
21681
21767
  bs.open({ offer, isCartSupported, isCartQuantityEnabled });
21682
21768
  };
21769
+ statEventGoToCart() {
21770
+ try {
21771
+ const captionViewText = this.captionView?.textContent ?? "";
21772
+ this.sendStatisticEventToApp("w-products-go-to-cart", {
21773
+ ...this.statisticEventBaseFieldsShortForm,
21774
+ wi: this.elementId,
21775
+ wl: captionViewText,
21776
+ }, {
21777
+ ...this.statisticEventBaseFieldsFullForm,
21778
+ widget_id: this.elementId,
21779
+ widget_label: captionViewText,
21780
+ }, {
21781
+ forceEnableStatisticV2: false,
21782
+ });
21783
+ }
21784
+ catch (error) {
21785
+ console.error(error);
21786
+ }
21787
+ }
21788
+ statEventAddToCart({ offer, quantity }) {
21789
+ try {
21790
+ const captionViewText = this.captionView?.textContent ?? "";
21791
+ this.sendStatisticEventToApp("w-products-add-to-cart", {
21792
+ ...this.statisticEventBaseFieldsShortForm,
21793
+ wi: this.elementId,
21794
+ wl: captionViewText,
21795
+ wv: offer.offerId,
21796
+ wvi: offer.id,
21797
+ }, {
21798
+ ...this.statisticEventBaseFieldsFullForm,
21799
+ widget_id: this.elementId,
21800
+ widget_label: captionViewText,
21801
+ widget_value: offer.offerId,
21802
+ quantity,
21803
+ widget_value_id: offer.id,
21804
+ }, {
21805
+ forceEnableStatisticV2: false,
21806
+ });
21807
+ }
21808
+ catch (error) {
21809
+ console.error(error);
21810
+ }
21811
+ }
21683
21812
  createScrollView(offers) {
21684
21813
  const scrollViewGroup = document.createElement("div");
21685
21814
  scrollViewGroup.classList.add("ias-products-scroll-view-group");
@@ -22167,7 +22296,7 @@ class WidgetProductCarousel extends WidgetBase {
22167
22296
  this.onWidgetRequirePauseUI();
22168
22297
  }
22169
22298
  e.stopPropagation();
22170
- this.statEventWidgetCardClick(offer);
22299
+ this.statEventClickPurchaseButton(offer);
22171
22300
  if (isCartSupported) {
22172
22301
  this.addToCart(offer, button);
22173
22302
  }
@@ -22213,6 +22342,7 @@ class WidgetProductCarousel extends WidgetBase {
22213
22342
  bs.open();
22214
22343
  this.isBottomSheetOpened = true;
22215
22344
  this.disableHostUIInteraction();
22345
+ this.statEventAddToCart({ offer: offerDto, quantity: 1 });
22216
22346
  }
22217
22347
  catch (error) {
22218
22348
  if (error instanceof Error) {
@@ -22252,6 +22382,12 @@ class WidgetProductCarousel extends WidgetBase {
22252
22382
  this.productsView = null;
22253
22383
  }
22254
22384
  },
22385
+ onCheckout: () => {
22386
+ this.statEventGoToCart();
22387
+ },
22388
+ onAddToCart: (event) => {
22389
+ this.statEventAddToCart(event);
22390
+ },
22255
22391
  };
22256
22392
  }
22257
22393
  statEventWidgetCardClick(offer) {
@@ -22260,8 +22396,8 @@ class WidgetProductCarousel extends WidgetBase {
22260
22396
  this.sendStatisticEventToApp("w-product-carousel-card-click", {
22261
22397
  ...this.statisticEventBaseFieldsShortForm,
22262
22398
  wi: this.elementId,
22263
- wl: captionViewText,
22264
22399
  wv: offer.offerId,
22400
+ wl: captionViewText,
22265
22401
  wvi: offer.id,
22266
22402
  }, {
22267
22403
  ...this.statisticEventBaseFieldsFullForm,
@@ -22277,6 +22413,63 @@ class WidgetProductCarousel extends WidgetBase {
22277
22413
  console.error(error);
22278
22414
  }
22279
22415
  }
22416
+ statEventClickPurchaseButton(offer) {
22417
+ try {
22418
+ this.sendStatisticEventToApp("w-product-carousel-buy-click", {
22419
+ ...this.statisticEventBaseFieldsShortForm,
22420
+ wi: this.elementId,
22421
+ wv: offer.offerId,
22422
+ wvi: offer.id,
22423
+ }, {
22424
+ ...this.statisticEventBaseFieldsFullForm,
22425
+ widget_id: this.elementId,
22426
+ widget_value: offer.offerId,
22427
+ widget_value_id: offer.id,
22428
+ }, {
22429
+ forceEnableStatisticV2: false,
22430
+ });
22431
+ }
22432
+ catch (error) {
22433
+ console.error(error);
22434
+ }
22435
+ }
22436
+ statEventAddToCart({ offer, quantity }) {
22437
+ try {
22438
+ this.sendStatisticEventToApp("w-product-carousel-add-to-cart", {
22439
+ ...this.statisticEventBaseFieldsShortForm,
22440
+ wi: this.elementId,
22441
+ wv: offer.offerId,
22442
+ wvi: offer.id,
22443
+ }, {
22444
+ ...this.statisticEventBaseFieldsFullForm,
22445
+ widget_id: this.elementId,
22446
+ widget_value: offer.offerId,
22447
+ quantity,
22448
+ widget_value_id: offer.id,
22449
+ }, {
22450
+ forceEnableStatisticV2: false,
22451
+ });
22452
+ }
22453
+ catch (error) {
22454
+ console.error(error);
22455
+ }
22456
+ }
22457
+ statEventGoToCart() {
22458
+ try {
22459
+ this.sendStatisticEventToApp("w-product-carousel-go-to-cart", {
22460
+ ...this.statisticEventBaseFieldsShortForm,
22461
+ wi: this.elementId,
22462
+ }, {
22463
+ ...this.statisticEventBaseFieldsFullForm,
22464
+ widget_id: this.elementId,
22465
+ }, {
22466
+ forceEnableStatisticV2: false,
22467
+ });
22468
+ }
22469
+ catch (error) {
22470
+ console.error(error);
22471
+ }
22472
+ }
22280
22473
  isCartSupported() {
22281
22474
  const isCartEnabled = getTagData(this.element, "isCartEnabled") === "true";
22282
22475
  return this.widgetDeps.slideApiDeps.isSdkSupportProductCart && isCartEnabled;
@@ -26896,6 +27089,10 @@ class WidgetScratchCard extends WidgetBase {
26896
27089
  ...this.statisticEventBaseFieldsShortForm,
26897
27090
  wi: this.elementId,
26898
27091
  d: duration,
27092
+ }, {
27093
+ ...this.statisticEventBaseFieldsFullForm,
27094
+ widget_id: this.elementId,
27095
+ duration_ms: duration,
26899
27096
  });
26900
27097
  }
26901
27098
  saveToLocalData() {