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