@inappstory/slide-api 0.1.51 → 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 +95 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -5
- package/dist/index.d.ts +23 -5
- package/dist/index.js +95 -22
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -130,7 +130,9 @@ declare class WidgetTimer extends WidgetBase<WidgetTimerOptions> {
|
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
type WidgetBarcodeOptions = WidgetOptionsBase
|
|
133
|
+
type WidgetBarcodeOptions = WidgetOptionsBase & {
|
|
134
|
+
layers: Array<HTMLElement>;
|
|
135
|
+
};
|
|
134
136
|
|
|
135
137
|
declare class WidgetBarcode extends WidgetBase<WidgetBarcodeOptions> {
|
|
136
138
|
static DEFAULTS: WidgetBarcodeOptions;
|
|
@@ -148,6 +150,9 @@ declare class WidgetBarcode extends WidgetBase<WidgetBarcodeOptions> {
|
|
|
148
150
|
private readonly msgNoMoreCodes;
|
|
149
151
|
private readonly msgTryAgain;
|
|
150
152
|
private readonly msgBarcodeRenderError;
|
|
153
|
+
private readonly promocodeExhaustedAction;
|
|
154
|
+
private readonly promocodeExhaustedNotificationText;
|
|
155
|
+
private readonly layers;
|
|
151
156
|
constructor(element: HTMLElement, options: Partial<WidgetBarcodeOptions>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps);
|
|
152
157
|
/**
|
|
153
158
|
* Start or restart widget
|
|
@@ -170,17 +175,22 @@ declare class WidgetBarcode extends WidgetBase<WidgetBarcodeOptions> {
|
|
|
170
175
|
copyToClipboard(element: HTMLElement): void;
|
|
171
176
|
private completeWidget;
|
|
172
177
|
isDone(): boolean;
|
|
178
|
+
doPromocodeExhaustedAction(): void;
|
|
179
|
+
private showPromocodeExhaustedNotification;
|
|
180
|
+
private showPromocodeExhaustedLayer;
|
|
173
181
|
static api: {
|
|
174
182
|
widgetClassName: string;
|
|
175
183
|
onRefreshUserData: typeof WidgetBase.onRefreshUserData;
|
|
176
|
-
init: (element: HTMLElement, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
184
|
+
init: (element: HTMLElement, layers: Array<HTMLElement>, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
177
185
|
onStart: (element: HTMLElement) => void;
|
|
178
186
|
onStop: (element: HTMLElement) => void;
|
|
179
187
|
click: (element: HTMLElement) => boolean;
|
|
180
188
|
};
|
|
181
189
|
}
|
|
182
190
|
|
|
183
|
-
type WidgetCopyOptions = WidgetOptionsBase
|
|
191
|
+
type WidgetCopyOptions = WidgetOptionsBase & {
|
|
192
|
+
layers: Array<HTMLElement>;
|
|
193
|
+
};
|
|
184
194
|
|
|
185
195
|
declare class WidgetCopy extends WidgetBase<WidgetCopyOptions> {
|
|
186
196
|
static DEFAULTS: WidgetCopyOptions;
|
|
@@ -197,6 +207,9 @@ declare class WidgetCopy extends WidgetBase<WidgetCopyOptions> {
|
|
|
197
207
|
private readonly geometry;
|
|
198
208
|
private readonly resultLayer;
|
|
199
209
|
private readonly resultLayerGeometry;
|
|
210
|
+
private readonly promocodeExhaustedAction;
|
|
211
|
+
private readonly promocodeExhaustedNotificationText;
|
|
212
|
+
private readonly layers;
|
|
200
213
|
constructor(element: HTMLElement, options: Partial<WidgetCopyOptions>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps);
|
|
201
214
|
/**
|
|
202
215
|
* Start or restart widget
|
|
@@ -216,17 +229,22 @@ declare class WidgetCopy extends WidgetBase<WidgetCopyOptions> {
|
|
|
216
229
|
copyToClipboard(element: HTMLElement): void;
|
|
217
230
|
private completeWidget;
|
|
218
231
|
isDone(): boolean;
|
|
232
|
+
doPromocodeExhaustedAction(): void;
|
|
233
|
+
private showPromocodeExhaustedNotification;
|
|
234
|
+
private showPromocodeExhaustedLayer;
|
|
219
235
|
static api: {
|
|
220
236
|
widgetClassName: string;
|
|
221
237
|
onRefreshUserData: typeof WidgetBase.onRefreshUserData;
|
|
222
|
-
init: (element: HTMLElement, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
238
|
+
init: (element: HTMLElement, layers: Array<HTMLElement>, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
223
239
|
onStart: (element: HTMLElement) => void;
|
|
224
240
|
onStop: (element: HTMLElement) => void;
|
|
225
241
|
click: (element: HTMLElement) => boolean;
|
|
226
242
|
};
|
|
227
243
|
}
|
|
228
244
|
|
|
229
|
-
type WidgetDataInputOptions = WidgetOptionsBase
|
|
245
|
+
type WidgetDataInputOptions = WidgetOptionsBase & {
|
|
246
|
+
layers: Array<HTMLElement>;
|
|
247
|
+
};
|
|
230
248
|
|
|
231
249
|
declare class WidgetDataInput extends WidgetBase<WidgetDataInputOptions> {
|
|
232
250
|
static DEFAULTS: {
|
package/dist/index.d.ts
CHANGED
|
@@ -130,7 +130,9 @@ declare class WidgetTimer extends WidgetBase<WidgetTimerOptions> {
|
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
type WidgetBarcodeOptions = WidgetOptionsBase
|
|
133
|
+
type WidgetBarcodeOptions = WidgetOptionsBase & {
|
|
134
|
+
layers: Array<HTMLElement>;
|
|
135
|
+
};
|
|
134
136
|
|
|
135
137
|
declare class WidgetBarcode extends WidgetBase<WidgetBarcodeOptions> {
|
|
136
138
|
static DEFAULTS: WidgetBarcodeOptions;
|
|
@@ -148,6 +150,9 @@ declare class WidgetBarcode extends WidgetBase<WidgetBarcodeOptions> {
|
|
|
148
150
|
private readonly msgNoMoreCodes;
|
|
149
151
|
private readonly msgTryAgain;
|
|
150
152
|
private readonly msgBarcodeRenderError;
|
|
153
|
+
private readonly promocodeExhaustedAction;
|
|
154
|
+
private readonly promocodeExhaustedNotificationText;
|
|
155
|
+
private readonly layers;
|
|
151
156
|
constructor(element: HTMLElement, options: Partial<WidgetBarcodeOptions>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps);
|
|
152
157
|
/**
|
|
153
158
|
* Start or restart widget
|
|
@@ -170,17 +175,22 @@ declare class WidgetBarcode extends WidgetBase<WidgetBarcodeOptions> {
|
|
|
170
175
|
copyToClipboard(element: HTMLElement): void;
|
|
171
176
|
private completeWidget;
|
|
172
177
|
isDone(): boolean;
|
|
178
|
+
doPromocodeExhaustedAction(): void;
|
|
179
|
+
private showPromocodeExhaustedNotification;
|
|
180
|
+
private showPromocodeExhaustedLayer;
|
|
173
181
|
static api: {
|
|
174
182
|
widgetClassName: string;
|
|
175
183
|
onRefreshUserData: typeof WidgetBase.onRefreshUserData;
|
|
176
|
-
init: (element: HTMLElement, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
184
|
+
init: (element: HTMLElement, layers: Array<HTMLElement>, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
177
185
|
onStart: (element: HTMLElement) => void;
|
|
178
186
|
onStop: (element: HTMLElement) => void;
|
|
179
187
|
click: (element: HTMLElement) => boolean;
|
|
180
188
|
};
|
|
181
189
|
}
|
|
182
190
|
|
|
183
|
-
type WidgetCopyOptions = WidgetOptionsBase
|
|
191
|
+
type WidgetCopyOptions = WidgetOptionsBase & {
|
|
192
|
+
layers: Array<HTMLElement>;
|
|
193
|
+
};
|
|
184
194
|
|
|
185
195
|
declare class WidgetCopy extends WidgetBase<WidgetCopyOptions> {
|
|
186
196
|
static DEFAULTS: WidgetCopyOptions;
|
|
@@ -197,6 +207,9 @@ declare class WidgetCopy extends WidgetBase<WidgetCopyOptions> {
|
|
|
197
207
|
private readonly geometry;
|
|
198
208
|
private readonly resultLayer;
|
|
199
209
|
private readonly resultLayerGeometry;
|
|
210
|
+
private readonly promocodeExhaustedAction;
|
|
211
|
+
private readonly promocodeExhaustedNotificationText;
|
|
212
|
+
private readonly layers;
|
|
200
213
|
constructor(element: HTMLElement, options: Partial<WidgetCopyOptions>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps);
|
|
201
214
|
/**
|
|
202
215
|
* Start or restart widget
|
|
@@ -216,17 +229,22 @@ declare class WidgetCopy extends WidgetBase<WidgetCopyOptions> {
|
|
|
216
229
|
copyToClipboard(element: HTMLElement): void;
|
|
217
230
|
private completeWidget;
|
|
218
231
|
isDone(): boolean;
|
|
232
|
+
doPromocodeExhaustedAction(): void;
|
|
233
|
+
private showPromocodeExhaustedNotification;
|
|
234
|
+
private showPromocodeExhaustedLayer;
|
|
219
235
|
static api: {
|
|
220
236
|
widgetClassName: string;
|
|
221
237
|
onRefreshUserData: typeof WidgetBase.onRefreshUserData;
|
|
222
|
-
init: (element: HTMLElement, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
238
|
+
init: (element: HTMLElement, layers: Array<HTMLElement>, localData: Record<string, any>, widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps) => void;
|
|
223
239
|
onStart: (element: HTMLElement) => void;
|
|
224
240
|
onStop: (element: HTMLElement) => void;
|
|
225
241
|
click: (element: HTMLElement) => boolean;
|
|
226
242
|
};
|
|
227
243
|
}
|
|
228
244
|
|
|
229
|
-
type WidgetDataInputOptions = WidgetOptionsBase
|
|
245
|
+
type WidgetDataInputOptions = WidgetOptionsBase & {
|
|
246
|
+
layers: Array<HTMLElement>;
|
|
247
|
+
};
|
|
230
248
|
|
|
231
249
|
declare class WidgetDataInput extends WidgetBase<WidgetDataInputOptions> {
|
|
232
250
|
static DEFAULTS: {
|
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
|
|
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)
|
|
@@ -7108,16 +7114,16 @@ class CardApi {
|
|
|
7108
7114
|
if (viewportRatio > _ratio) {
|
|
7109
7115
|
// fit by height
|
|
7110
7116
|
slideHeight = viewportHeight;
|
|
7111
|
-
slideWidth =
|
|
7112
|
-
offset =
|
|
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 =
|
|
7120
|
-
offset =
|
|
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 =
|
|
7133
|
-
offset =
|
|
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 =
|
|
7142
|
-
offset =
|
|
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.
|
|
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.
|
|
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) {
|