@inappstory/slide-api 0.1.51 → 0.1.53
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 +109 -44
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +25 -5
- package/dist/index.d.ts +25 -5
- package/dist/index.js +109 -44
- 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: {
|
|
@@ -1621,6 +1639,7 @@ declare class WidgetBase<WidgetOptions extends WidgetOptionsBase> {
|
|
|
1621
1639
|
protected localData: Record<string, any>;
|
|
1622
1640
|
protected firstOpenTime: number;
|
|
1623
1641
|
protected id: string;
|
|
1642
|
+
protected linkedLayers: Array<string>;
|
|
1624
1643
|
startReadyPromise: Promise<void>;
|
|
1625
1644
|
private startReadyResolve;
|
|
1626
1645
|
constructor(element: HTMLElement, options: Partial<WidgetOptions>, _widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps, elementIdGetter?: (element: HTMLElement) => string, slideGetter?: (element: HTMLElement) => HTMLElement);
|
|
@@ -1659,6 +1678,7 @@ declare class WidgetBase<WidgetOptions extends WidgetOptionsBase> {
|
|
|
1659
1678
|
onWidgetComplete(): void;
|
|
1660
1679
|
onWidgetRequirePauseUI(): void;
|
|
1661
1680
|
onWidgetRequireResumeUI(): void;
|
|
1681
|
+
protected _showWidgetLinkedLayer(layers: Array<HTMLElement>, widgetLayerIndex?: number, withStatEvent?: boolean): void;
|
|
1662
1682
|
protected _showLayer(layers: Array<HTMLElement>, selectIndex: number, withStatEvent?: boolean): void;
|
|
1663
1683
|
protected _statEventLayoutShow(layoutIndex: number): void;
|
|
1664
1684
|
static onRefreshUserData<Widget extends WidgetBase<WidgetOptions>, WidgetOptions extends WidgetOptionsBase>(element: HTMLElement, localData: Record<string, any>): void;
|
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: {
|
|
@@ -1621,6 +1639,7 @@ declare class WidgetBase<WidgetOptions extends WidgetOptionsBase> {
|
|
|
1621
1639
|
protected localData: Record<string, any>;
|
|
1622
1640
|
protected firstOpenTime: number;
|
|
1623
1641
|
protected id: string;
|
|
1642
|
+
protected linkedLayers: Array<string>;
|
|
1624
1643
|
startReadyPromise: Promise<void>;
|
|
1625
1644
|
private startReadyResolve;
|
|
1626
1645
|
constructor(element: HTMLElement, options: Partial<WidgetOptions>, _widgetCallbacks: WidgetCallbacks, widgetDeps: WidgetDeps, elementIdGetter?: (element: HTMLElement) => string, slideGetter?: (element: HTMLElement) => HTMLElement);
|
|
@@ -1659,6 +1678,7 @@ declare class WidgetBase<WidgetOptions extends WidgetOptionsBase> {
|
|
|
1659
1678
|
onWidgetComplete(): void;
|
|
1660
1679
|
onWidgetRequirePauseUI(): void;
|
|
1661
1680
|
onWidgetRequireResumeUI(): void;
|
|
1681
|
+
protected _showWidgetLinkedLayer(layers: Array<HTMLElement>, widgetLayerIndex?: number, withStatEvent?: boolean): void;
|
|
1662
1682
|
protected _showLayer(layers: Array<HTMLElement>, selectIndex: number, withStatEvent?: boolean): void;
|
|
1663
1683
|
protected _statEventLayoutShow(layoutIndex: number): void;
|
|
1664
1684
|
static onRefreshUserData<Widget extends WidgetBase<WidgetOptions>, WidgetOptions extends WidgetOptionsBase>(element: HTMLElement, localData: Record<string, any>): void;
|
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
|
}
|
|
@@ -7667,6 +7673,7 @@ class WidgetBase {
|
|
|
7667
7673
|
localData = null;
|
|
7668
7674
|
firstOpenTime = 0;
|
|
7669
7675
|
id;
|
|
7676
|
+
linkedLayers;
|
|
7670
7677
|
startReadyPromise = null;
|
|
7671
7678
|
startReadyResolve = null;
|
|
7672
7679
|
constructor(element, options, _widgetCallbacks, widgetDeps, elementIdGetter, slideGetter) {
|
|
@@ -7690,6 +7697,7 @@ class WidgetBase {
|
|
|
7690
7697
|
this.disableTimer = getTagData(this.slide, "disableTimer") === "1";
|
|
7691
7698
|
this.cardId = getValueOrException(getTagDataAsNumber(this.slide, "id"), "Empty cardId");
|
|
7692
7699
|
this.cardType = getValueOrException(getTagDataAsNumber(this.slide, "cardType"), "Empty card type");
|
|
7700
|
+
this.linkedLayers = getValueOrDefault(getTagDataAsJson(this.element, "linkedLayers"), []);
|
|
7693
7701
|
this.widgetDeps.getLayoutDirection();
|
|
7694
7702
|
this.element.dir = this.layoutDirection;
|
|
7695
7703
|
if (this.element.parentElement != null) {
|
|
@@ -7862,6 +7870,14 @@ class WidgetBase {
|
|
|
7862
7870
|
onWidgetRequireResumeUI() {
|
|
7863
7871
|
this._widgetCallbacks.onWidgetRequireResumeUI(this.cardId, this.slideIndex);
|
|
7864
7872
|
}
|
|
7873
|
+
_showWidgetLinkedLayer(layers, widgetLayerIndex = 0, withStatEvent = false) {
|
|
7874
|
+
if (Array.isArray(this.linkedLayers) && this.linkedLayers[widgetLayerIndex] != null) {
|
|
7875
|
+
const selectedIndex = layers.findIndex(layer => getTagData(layer, "layerId") === this.linkedLayers[widgetLayerIndex]);
|
|
7876
|
+
if (selectedIndex !== -1) {
|
|
7877
|
+
this._showLayer(layers, selectedIndex, withStatEvent);
|
|
7878
|
+
}
|
|
7879
|
+
}
|
|
7880
|
+
}
|
|
7865
7881
|
_showLayer(layers, selectIndex, withStatEvent = false) {
|
|
7866
7882
|
if (this.widgetDeps.slideApiDeps.isExistsShowLayer()) {
|
|
7867
7883
|
this.widgetDeps.slideApiDeps.showLayer(selectIndex);
|
|
@@ -8385,9 +8401,7 @@ class WidgetTimer extends WidgetBase {
|
|
|
8385
8401
|
this.widgetDeps.slideApiDeps.showNextSlide(0);
|
|
8386
8402
|
break;
|
|
8387
8403
|
case TimerCompletionAction.ShowLayer: {
|
|
8388
|
-
|
|
8389
|
-
this._showLayer(this.layers, 1);
|
|
8390
|
-
}
|
|
8404
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
8391
8405
|
}
|
|
8392
8406
|
}
|
|
8393
8407
|
}
|
|
@@ -17780,12 +17794,19 @@ FontLib.loadFont("OCR-A", 100, 100, "AAEAAAAPAIAAAwBwRkZUTXxHoksAADPIAAAAHEdERUY
|
|
|
17780
17794
|
FontLib.loadFont("OCR-B", 96, 100, "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");
|
|
17781
17795
|
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
17796
|
|
|
17797
|
+
var WidgetBarcodePromocodeExhaustedAction;
|
|
17798
|
+
(function (WidgetBarcodePromocodeExhaustedAction) {
|
|
17799
|
+
WidgetBarcodePromocodeExhaustedAction["ShowNotification"] = "showNotification";
|
|
17800
|
+
WidgetBarcodePromocodeExhaustedAction["ShowLayer"] = "showLayer";
|
|
17801
|
+
})(WidgetBarcodePromocodeExhaustedAction || (WidgetBarcodePromocodeExhaustedAction = {}));
|
|
17802
|
+
|
|
17783
17803
|
class WidgetBarcode extends WidgetBase {
|
|
17784
17804
|
static DEFAULTS = {
|
|
17785
17805
|
slide: null,
|
|
17786
17806
|
activateAfterCreate: false,
|
|
17787
17807
|
create: false,
|
|
17788
17808
|
localData: {},
|
|
17809
|
+
layers: [],
|
|
17789
17810
|
};
|
|
17790
17811
|
static widgetClassName = "narrative-element-barcode";
|
|
17791
17812
|
captionView;
|
|
@@ -17801,8 +17822,12 @@ class WidgetBarcode extends WidgetBase {
|
|
|
17801
17822
|
msgNoMoreCodes;
|
|
17802
17823
|
msgTryAgain;
|
|
17803
17824
|
msgBarcodeRenderError;
|
|
17825
|
+
promocodeExhaustedAction;
|
|
17826
|
+
promocodeExhaustedNotificationText;
|
|
17827
|
+
layers;
|
|
17804
17828
|
constructor(element, options, widgetCallbacks, widgetDeps) {
|
|
17805
17829
|
super(element, options, widgetCallbacks, widgetDeps);
|
|
17830
|
+
this.layers = this.options.layers;
|
|
17806
17831
|
this.captionView = this.element.querySelector(".narrative-element-text-lines");
|
|
17807
17832
|
this.clipboardTarget = getTagData(element, "clipboardTarget");
|
|
17808
17833
|
this.isPromotionalCode = getTagData(element, "clipboardType") === "promocode";
|
|
@@ -17815,6 +17840,10 @@ class WidgetBarcode extends WidgetBase {
|
|
|
17815
17840
|
this.msgNoMoreCodes = getTagData(this.element, "msgNoMoreCodes");
|
|
17816
17841
|
this.msgTryAgain = getTagData(this.element, "msgTryAgain");
|
|
17817
17842
|
this.msgBarcodeRenderError = getTagData(this.element, "msgBarcodeRenderError");
|
|
17843
|
+
this.promocodeExhaustedAction =
|
|
17844
|
+
getTagData(element, "promocodeExhaustedAction") ??
|
|
17845
|
+
WidgetBarcodePromocodeExhaustedAction.ShowNotification;
|
|
17846
|
+
this.promocodeExhaustedNotificationText = getTagData(element, "promocodeExhaustedNotificationText") ?? this.msgNoMoreCodes;
|
|
17818
17847
|
}
|
|
17819
17848
|
/**
|
|
17820
17849
|
* Start or restart widget
|
|
@@ -17976,7 +18005,7 @@ class WidgetBarcode extends WidgetBase {
|
|
|
17976
18005
|
this.setLocalData(this.localData, true);
|
|
17977
18006
|
}
|
|
17978
18007
|
else {
|
|
17979
|
-
this.
|
|
18008
|
+
this.doPromocodeExhaustedAction();
|
|
17980
18009
|
}
|
|
17981
18010
|
}
|
|
17982
18011
|
else if (status === 12163 || status === 12002) {
|
|
@@ -18048,11 +18077,28 @@ class WidgetBarcode extends WidgetBase {
|
|
|
18048
18077
|
isDone() {
|
|
18049
18078
|
return this.localData["_bc_g_" + this.elementId + "_done_at"] !== undefined;
|
|
18050
18079
|
}
|
|
18080
|
+
doPromocodeExhaustedAction() {
|
|
18081
|
+
switch (this.promocodeExhaustedAction) {
|
|
18082
|
+
case WidgetBarcodePromocodeExhaustedAction.ShowNotification:
|
|
18083
|
+
this.showPromocodeExhaustedNotification();
|
|
18084
|
+
break;
|
|
18085
|
+
case WidgetBarcodePromocodeExhaustedAction.ShowLayer:
|
|
18086
|
+
this.showPromocodeExhaustedLayer();
|
|
18087
|
+
break;
|
|
18088
|
+
}
|
|
18089
|
+
}
|
|
18090
|
+
showPromocodeExhaustedNotification() {
|
|
18091
|
+
if (this.promocodeExhaustedNotificationText)
|
|
18092
|
+
this.widgetDeps.slideApiDeps.showToast(this.promocodeExhaustedNotificationText);
|
|
18093
|
+
}
|
|
18094
|
+
showPromocodeExhaustedLayer() {
|
|
18095
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
18096
|
+
}
|
|
18051
18097
|
static api = {
|
|
18052
18098
|
widgetClassName: WidgetBarcode.widgetClassName,
|
|
18053
18099
|
onRefreshUserData: WidgetBarcode.onRefreshUserData,
|
|
18054
|
-
init: function (element, localData, widgetCallbacks, widgetDeps) {
|
|
18055
|
-
WidgetBarcode.initWidget(element, localData, (element, options) => new WidgetBarcode(element, options, widgetCallbacks, widgetDeps));
|
|
18100
|
+
init: function (element, layers, localData, widgetCallbacks, widgetDeps) {
|
|
18101
|
+
WidgetBarcode.initWidget(element, localData, (element, options) => new WidgetBarcode(element, { ...options, layers }, widgetCallbacks, widgetDeps));
|
|
18056
18102
|
},
|
|
18057
18103
|
onStart: function (element) {
|
|
18058
18104
|
WidgetBarcode.getInstance(element)?.onStart();
|
|
@@ -18082,12 +18128,19 @@ class WidgetBarcode extends WidgetBase {
|
|
|
18082
18128
|
static get [Symbol.for("___CTOR_ARGS___")]() { return [`HTMLElement`, `Partial`, `WidgetCallbacks`, `WidgetDeps`]; }
|
|
18083
18129
|
}
|
|
18084
18130
|
|
|
18131
|
+
var WidgetCopyPromocodeExhaustedAction;
|
|
18132
|
+
(function (WidgetCopyPromocodeExhaustedAction) {
|
|
18133
|
+
WidgetCopyPromocodeExhaustedAction["ShowNotification"] = "showNotification";
|
|
18134
|
+
WidgetCopyPromocodeExhaustedAction["ShowLayer"] = "showLayer";
|
|
18135
|
+
})(WidgetCopyPromocodeExhaustedAction || (WidgetCopyPromocodeExhaustedAction = {}));
|
|
18136
|
+
|
|
18085
18137
|
class WidgetCopy extends WidgetBase {
|
|
18086
18138
|
static DEFAULTS = {
|
|
18087
18139
|
slide: null,
|
|
18088
18140
|
activateAfterCreate: false,
|
|
18089
18141
|
create: false,
|
|
18090
18142
|
localData: {},
|
|
18143
|
+
layers: [],
|
|
18091
18144
|
};
|
|
18092
18145
|
static widgetClassName = "narrative-element-copy";
|
|
18093
18146
|
button;
|
|
@@ -18102,8 +18155,12 @@ class WidgetCopy extends WidgetBase {
|
|
|
18102
18155
|
geometry;
|
|
18103
18156
|
resultLayer;
|
|
18104
18157
|
resultLayerGeometry;
|
|
18158
|
+
promocodeExhaustedAction;
|
|
18159
|
+
promocodeExhaustedNotificationText;
|
|
18160
|
+
layers;
|
|
18105
18161
|
constructor(element, options, widgetCallbacks, widgetDeps) {
|
|
18106
18162
|
super(element, options, widgetCallbacks, widgetDeps);
|
|
18163
|
+
this.layers = this.options.layers;
|
|
18107
18164
|
this.button = this.element.querySelector(".narrative-element-text-lines");
|
|
18108
18165
|
this.clipboardTarget = getTagData(element, "clipboardTarget");
|
|
18109
18166
|
this.isPromotionalCode = getTagData(element, "clipboardType") === "promocode";
|
|
@@ -18112,6 +18169,9 @@ class WidgetCopy extends WidgetBase {
|
|
|
18112
18169
|
this.msgServiceError = getTagData(this.element, "msgServiceError");
|
|
18113
18170
|
this.msgNoMoreCodes = getTagData(this.element, "msgNoMoreCodes");
|
|
18114
18171
|
this.msgTryAgain = getTagData(this.element, "msgTryAgain");
|
|
18172
|
+
this.promocodeExhaustedAction =
|
|
18173
|
+
getTagData(element, "promocodeExhaustedAction") ?? WidgetCopyPromocodeExhaustedAction.ShowNotification;
|
|
18174
|
+
this.promocodeExhaustedNotificationText = getTagData(element, "promocodeExhaustedNotificationText") ?? this.msgNoMoreCodes;
|
|
18115
18175
|
this.geometry = this.element.closest(".narrative-element-geometry");
|
|
18116
18176
|
// this is result layer - skip init
|
|
18117
18177
|
// todo prevent call Widget.init on result-layer
|
|
@@ -18247,7 +18307,7 @@ class WidgetCopy extends WidgetBase {
|
|
|
18247
18307
|
this.setLocalData(this.localData, true);
|
|
18248
18308
|
}
|
|
18249
18309
|
else {
|
|
18250
|
-
this.
|
|
18310
|
+
this.doPromocodeExhaustedAction();
|
|
18251
18311
|
}
|
|
18252
18312
|
}
|
|
18253
18313
|
else if (status === 12163 || status === 12002) {
|
|
@@ -18322,13 +18382,30 @@ class WidgetCopy extends WidgetBase {
|
|
|
18322
18382
|
isDone() {
|
|
18323
18383
|
return this.localData["_cp_g_" + this.elementId + "_done_at"] !== undefined;
|
|
18324
18384
|
}
|
|
18385
|
+
doPromocodeExhaustedAction() {
|
|
18386
|
+
switch (this.promocodeExhaustedAction) {
|
|
18387
|
+
case WidgetCopyPromocodeExhaustedAction.ShowNotification:
|
|
18388
|
+
this.showPromocodeExhaustedNotification();
|
|
18389
|
+
break;
|
|
18390
|
+
case WidgetCopyPromocodeExhaustedAction.ShowLayer:
|
|
18391
|
+
this.showPromocodeExhaustedLayer();
|
|
18392
|
+
break;
|
|
18393
|
+
}
|
|
18394
|
+
}
|
|
18395
|
+
showPromocodeExhaustedNotification() {
|
|
18396
|
+
if (this.promocodeExhaustedNotificationText)
|
|
18397
|
+
this.widgetDeps.slideApiDeps.showToast(this.promocodeExhaustedNotificationText);
|
|
18398
|
+
}
|
|
18399
|
+
showPromocodeExhaustedLayer() {
|
|
18400
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
18401
|
+
}
|
|
18325
18402
|
static api = {
|
|
18326
18403
|
widgetClassName: WidgetCopy.widgetClassName,
|
|
18327
18404
|
onRefreshUserData: WidgetCopy.onRefreshUserData,
|
|
18328
|
-
init: function (element, localData, widgetCallbacks, widgetDeps) {
|
|
18405
|
+
init: function (element, layers, localData, widgetCallbacks, widgetDeps) {
|
|
18329
18406
|
// prevent initWidget for result layer
|
|
18330
18407
|
if (!element.classList.contains("narrative-element-copy-result-variant")) {
|
|
18331
|
-
WidgetCopy.initWidget(element, localData, (element, options) => new WidgetCopy(element, options, widgetCallbacks, widgetDeps));
|
|
18408
|
+
WidgetCopy.initWidget(element, localData, (element, options) => new WidgetCopy(element, { ...options, layers }, widgetCallbacks, widgetDeps));
|
|
18332
18409
|
}
|
|
18333
18410
|
},
|
|
18334
18411
|
onStart: function (element) {
|
|
@@ -18561,9 +18638,7 @@ class WidgetDataInput extends WidgetBase {
|
|
|
18561
18638
|
}
|
|
18562
18639
|
}
|
|
18563
18640
|
showLayer() {
|
|
18564
|
-
|
|
18565
|
-
this._showLayer(this.layers, 1);
|
|
18566
|
-
}
|
|
18641
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
18567
18642
|
}
|
|
18568
18643
|
static api = {
|
|
18569
18644
|
widgetClassName: WidgetDataInput.widgetClassName,
|
|
@@ -18645,9 +18720,7 @@ class WidgetDateCountdown extends WidgetBase {
|
|
|
18645
18720
|
this._showLayer(this.layers, 0);
|
|
18646
18721
|
}
|
|
18647
18722
|
else {
|
|
18648
|
-
|
|
18649
|
-
this._showLayer(this.layers, 1);
|
|
18650
|
-
}
|
|
18723
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
18651
18724
|
}
|
|
18652
18725
|
}
|
|
18653
18726
|
onPause() {
|
|
@@ -18730,9 +18803,7 @@ class WidgetDateCountdown extends WidgetBase {
|
|
|
18730
18803
|
}
|
|
18731
18804
|
else {
|
|
18732
18805
|
this.pendingUpdate = false;
|
|
18733
|
-
|
|
18734
|
-
this._showLayer(this.layers, 1);
|
|
18735
|
-
}
|
|
18806
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
18736
18807
|
}
|
|
18737
18808
|
if (this.pendingUpdate) {
|
|
18738
18809
|
this.env.requestAnimationFrame(() => this.updateTimer());
|
|
@@ -19549,15 +19620,9 @@ class WidgetPollLayers extends WidgetBase {
|
|
|
19549
19620
|
this.selectedVariant = index;
|
|
19550
19621
|
this.localData["_pl_g_" + this.elementId + "_sa"] = index;
|
|
19551
19622
|
this.element.classList.add("done");
|
|
19552
|
-
|
|
19553
|
-
|
|
19554
|
-
if (index === 0) {
|
|
19555
|
-
layerIndex = 1;
|
|
19556
|
-
}
|
|
19557
|
-
else if (index === 1) {
|
|
19558
|
-
layerIndex = 2;
|
|
19623
|
+
if (index === 0 || index === 1) {
|
|
19624
|
+
this._showWidgetLinkedLayer(this.layers, index, userAction);
|
|
19559
19625
|
}
|
|
19560
|
-
this._showLayer(this.layers, layerIndex, userAction);
|
|
19561
19626
|
this.startReadyPromise.then(() => {
|
|
19562
19627
|
if (this.disableTimer) {
|
|
19563
19628
|
this.onWidgetComplete();
|
|
@@ -24201,7 +24266,7 @@ class WidgetShare extends WidgetBase {
|
|
|
24201
24266
|
super.onRefreshUserData(localData);
|
|
24202
24267
|
if (this.withLayer) {
|
|
24203
24268
|
if (this.isDone()) {
|
|
24204
|
-
this.
|
|
24269
|
+
this._showWidgetLinkedLayer(this.layers);
|
|
24205
24270
|
}
|
|
24206
24271
|
else {
|
|
24207
24272
|
this._showLayer(this.layers, 0);
|
|
@@ -24266,7 +24331,7 @@ class WidgetShare extends WidgetBase {
|
|
|
24266
24331
|
}
|
|
24267
24332
|
this._statEventShare(isSuccess, null);
|
|
24268
24333
|
if (isSuccess && this.withLayer) {
|
|
24269
|
-
this.
|
|
24334
|
+
this._showWidgetLinkedLayer(this.layers, 0, true);
|
|
24270
24335
|
}
|
|
24271
24336
|
if (this.disableTimer) {
|
|
24272
24337
|
this.onWidgetComplete();
|