@everymatrix/casino-challenges-overlay 0.3.3 → 0.3.5
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/casino-challenges-overlay/casino-challenges-overlay-e43b403e.js +1 -0
- package/dist/casino-challenges-overlay/casino-challenges-overlay.esm.js +1 -1
- package/dist/casino-challenges-overlay/casino-challenges-overlay_2.entry.js +1 -0
- package/dist/casino-challenges-overlay/index-7fdd1cbf.js +2 -0
- package/dist/casino-challenges-overlay/index.esm.js +1 -1
- package/dist/cjs/{casino-challenges-overlay-e96b8732.js → casino-challenges-overlay-a75f839f.js} +206 -9
- package/dist/cjs/casino-challenges-overlay.cjs.js +2 -2
- package/dist/cjs/casino-challenges-overlay_2.cjs.entry.js +121 -0
- package/dist/cjs/{index-87f5caf5.js → index-11e96899.js} +107 -6
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +8 -1
- package/dist/collection/components/casino-challenges-overlay/casino-challenges-overlay.css +3 -0
- package/dist/collection/components/casino-challenges-overlay/casino-challenges-overlay.js +204 -6
- package/dist/collection/utils/locale.utils.js +9 -1
- package/dist/collection/utils/types.js +32 -0
- package/dist/esm/{casino-challenges-overlay-127cb2bd.js → casino-challenges-overlay-e43b403e.js} +204 -10
- package/dist/esm/casino-challenges-overlay.js +3 -3
- package/dist/esm/casino-challenges-overlay_2.entry.js +117 -0
- package/dist/esm/{index-23ccb586.js → index-7fdd1cbf.js} +107 -6
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/casino-challenges-overlay/casino-challenges-overlay.d.ts +21 -0
- package/dist/types/components.d.ts +10 -0
- package/dist/types/utils/types.d.ts +97 -0
- package/package.json +1 -1
- package/dist/casino-challenges-overlay/casino-challenges-overlay-127cb2bd.js +0 -1
- package/dist/casino-challenges-overlay/casino-challenges-overlay.entry.js +0 -1
- package/dist/casino-challenges-overlay/index-23ccb586.js +0 -2
- package/dist/cjs/casino-challenges-overlay.cjs.entry.js +0 -10
- package/dist/esm/casino-challenges-overlay.entry.js +0 -2
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
|
|
21
21
|
}
|
22
22
|
|
23
23
|
const NAMESPACE = 'casino-challenges-overlay';
|
24
|
-
const BUILD = /* casino-challenges-overlay */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener:
|
24
|
+
const BUILD = /* casino-challenges-overlay */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: false, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
|
25
25
|
|
26
26
|
/*
|
27
27
|
Stencil Client Platform v4.19.2 | MIT Licensed | https://stenciljs.com
|
@@ -71,10 +71,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
|
|
71
71
|
}
|
72
72
|
switch(bundleId) {
|
73
73
|
|
74
|
-
case 'casino-challenges-
|
74
|
+
case 'casino-challenges-overlay_2.cjs':
|
75
75
|
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
76
76
|
/* webpackMode: "lazy" */
|
77
|
-
'./casino-challenges-
|
77
|
+
'./casino-challenges-overlay_2.cjs.entry.js')); }).then(processMod, consoleError);
|
78
78
|
}
|
79
79
|
}
|
80
80
|
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
@@ -106,6 +106,22 @@ var plt = {
|
|
106
106
|
rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
|
107
107
|
ce: (eventName, opts) => new CustomEvent(eventName, opts)
|
108
108
|
};
|
109
|
+
var supportsListenerOptions = /* @__PURE__ */ (() => {
|
110
|
+
let supportsListenerOptions2 = false;
|
111
|
+
try {
|
112
|
+
doc.addEventListener(
|
113
|
+
"e",
|
114
|
+
null,
|
115
|
+
Object.defineProperty({}, "passive", {
|
116
|
+
get() {
|
117
|
+
supportsListenerOptions2 = true;
|
118
|
+
}
|
119
|
+
})
|
120
|
+
);
|
121
|
+
} catch (e) {
|
122
|
+
}
|
123
|
+
return supportsListenerOptions2;
|
124
|
+
})();
|
109
125
|
var promiseResolve = (v) => Promise.resolve(v);
|
110
126
|
var supportsConstructableStylesheets = /* @__PURE__ */ (() => {
|
111
127
|
try {
|
@@ -295,6 +311,9 @@ var Host = {};
|
|
295
311
|
var isHost = (node) => node && node.$tag$ === Host;
|
296
312
|
var parsePropertyValue = (propValue, propType) => {
|
297
313
|
if (propValue != null && !isComplexType(propValue)) {
|
314
|
+
if (propType & 4 /* Boolean */) {
|
315
|
+
return propValue === "false" ? false : propValue === "" || !!propValue;
|
316
|
+
}
|
298
317
|
if (propType & 1 /* String */) {
|
299
318
|
return String(propValue);
|
300
319
|
}
|
@@ -376,7 +395,7 @@ var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
|
|
376
395
|
var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
377
396
|
if (oldValue !== newValue) {
|
378
397
|
let isProp = isMemberInElement(elm, memberName);
|
379
|
-
memberName.toLowerCase();
|
398
|
+
let ln = memberName.toLowerCase();
|
380
399
|
if (memberName === "class") {
|
381
400
|
const classList = elm.classList;
|
382
401
|
const oldClasses = parseClassList(oldValue);
|
@@ -404,7 +423,29 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
|
404
423
|
}
|
405
424
|
}
|
406
425
|
}
|
407
|
-
} else if (memberName === "key") ; else {
|
426
|
+
} else if (memberName === "key") ; else if (memberName === "ref") {
|
427
|
+
if (newValue) {
|
428
|
+
newValue(elm);
|
429
|
+
}
|
430
|
+
} else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
|
431
|
+
if (memberName[2] === "-") {
|
432
|
+
memberName = memberName.slice(3);
|
433
|
+
} else if (isMemberInElement(win, ln)) {
|
434
|
+
memberName = ln.slice(2);
|
435
|
+
} else {
|
436
|
+
memberName = ln[2] + memberName.slice(3);
|
437
|
+
}
|
438
|
+
if (oldValue || newValue) {
|
439
|
+
const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
|
440
|
+
memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
|
441
|
+
if (oldValue) {
|
442
|
+
plt.rel(elm, memberName, oldValue, capture);
|
443
|
+
}
|
444
|
+
if (newValue) {
|
445
|
+
plt.ael(elm, memberName, newValue, capture);
|
446
|
+
}
|
447
|
+
}
|
448
|
+
} else {
|
408
449
|
const isComplex = isComplexType(newValue);
|
409
450
|
if ((isProp || isComplex && newValue !== null) && !isSvg) {
|
410
451
|
try {
|
@@ -438,6 +479,8 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
|
438
479
|
};
|
439
480
|
var parseClassListRegex = /\s/;
|
440
481
|
var parseClassList = (value) => !value ? [] : value.split(parseClassListRegex);
|
482
|
+
var CAPTURE_EVENT_SUFFIX = "Capture";
|
483
|
+
var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
|
441
484
|
|
442
485
|
// src/runtime/vdom/update-element.ts
|
443
486
|
var updateElement = (oldVnode, newVnode, isSvgMode2) => {
|
@@ -520,6 +563,7 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
|
|
520
563
|
const vnode = vnodes[index];
|
521
564
|
if (vnode) {
|
522
565
|
const elm = vnode.$elm$;
|
566
|
+
nullifyVNodeRefs(vnode);
|
523
567
|
if (elm) {
|
524
568
|
elm.remove();
|
525
569
|
}
|
@@ -644,6 +688,12 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
|
|
644
688
|
elm.data = text;
|
645
689
|
}
|
646
690
|
};
|
691
|
+
var nullifyVNodeRefs = (vNode) => {
|
692
|
+
{
|
693
|
+
vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
|
694
|
+
vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
|
695
|
+
}
|
696
|
+
};
|
647
697
|
var insertBefore = (parent, newNode, reference) => {
|
648
698
|
const inserted = parent == null ? void 0 : parent.insertBefore(newNode, reference);
|
649
699
|
return inserted;
|
@@ -707,6 +757,13 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
|
|
707
757
|
}
|
708
758
|
let maybePromise;
|
709
759
|
if (isInitialLoad) {
|
760
|
+
{
|
761
|
+
hostRef.$flags$ |= 256 /* isListenReady */;
|
762
|
+
if (hostRef.$queuedListeners$) {
|
763
|
+
hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));
|
764
|
+
hostRef.$queuedListeners$ = void 0;
|
765
|
+
}
|
766
|
+
}
|
710
767
|
{
|
711
768
|
maybePromise = safeCall(instance, "componentWillLoad");
|
712
769
|
}
|
@@ -1034,6 +1091,7 @@ var connectedCallback = (elm) => {
|
|
1034
1091
|
initializeComponent(elm, hostRef, cmpMeta);
|
1035
1092
|
}
|
1036
1093
|
} else {
|
1094
|
+
addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
|
1037
1095
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
1038
1096
|
hostRef.$onReadyPromise$.then(() => fireConnectedCallback());
|
1039
1097
|
}
|
@@ -1049,6 +1107,12 @@ var disconnectInstance = (instance) => {
|
|
1049
1107
|
var disconnectedCallback = async (elm) => {
|
1050
1108
|
if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
|
1051
1109
|
const hostRef = getHostRef(elm);
|
1110
|
+
{
|
1111
|
+
if (hostRef.$rmListeners$) {
|
1112
|
+
hostRef.$rmListeners$.map((rmListener) => rmListener());
|
1113
|
+
hostRef.$rmListeners$ = void 0;
|
1114
|
+
}
|
1115
|
+
}
|
1052
1116
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
|
1053
1117
|
disconnectInstance(hostRef.$lazyInstance$);
|
1054
1118
|
} else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
@@ -1088,6 +1152,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
1088
1152
|
{
|
1089
1153
|
cmpMeta.$members$ = compactMeta[2];
|
1090
1154
|
}
|
1155
|
+
{
|
1156
|
+
cmpMeta.$listeners$ = compactMeta[3];
|
1157
|
+
}
|
1091
1158
|
{
|
1092
1159
|
cmpMeta.$attrsToReflect$ = [];
|
1093
1160
|
}
|
@@ -1119,9 +1186,10 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
1119
1186
|
}
|
1120
1187
|
}
|
1121
1188
|
connectedCallback() {
|
1122
|
-
getHostRef(this);
|
1189
|
+
const hostRef = getHostRef(this);
|
1123
1190
|
if (!this.hasRegisteredEventListeners) {
|
1124
1191
|
this.hasRegisteredEventListeners = true;
|
1192
|
+
addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
|
1125
1193
|
}
|
1126
1194
|
if (appLoadFallback) {
|
1127
1195
|
clearTimeout(appLoadFallback);
|
@@ -1176,6 +1244,39 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
1176
1244
|
}
|
1177
1245
|
endBootstrap();
|
1178
1246
|
};
|
1247
|
+
var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
|
1248
|
+
if (listeners) {
|
1249
|
+
listeners.map(([flags, name, method]) => {
|
1250
|
+
const target = getHostListenerTarget(elm, flags) ;
|
1251
|
+
const handler = hostListenerProxy(hostRef, method);
|
1252
|
+
const opts = hostListenerOpts(flags);
|
1253
|
+
plt.ael(target, name, handler, opts);
|
1254
|
+
(hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
|
1255
|
+
});
|
1256
|
+
}
|
1257
|
+
};
|
1258
|
+
var hostListenerProxy = (hostRef, methodName) => (ev) => {
|
1259
|
+
var _a;
|
1260
|
+
try {
|
1261
|
+
{
|
1262
|
+
if (hostRef.$flags$ & 256 /* isListenReady */) {
|
1263
|
+
(_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
|
1264
|
+
} else {
|
1265
|
+
(hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
|
1266
|
+
}
|
1267
|
+
}
|
1268
|
+
} catch (e) {
|
1269
|
+
consoleError(e);
|
1270
|
+
}
|
1271
|
+
};
|
1272
|
+
var getHostListenerTarget = (elm, flags) => {
|
1273
|
+
if (flags & 8 /* TargetWindow */) return win;
|
1274
|
+
return elm;
|
1275
|
+
};
|
1276
|
+
var hostListenerOpts = (flags) => supportsListenerOptions ? {
|
1277
|
+
passive: (flags & 1 /* Passive */) !== 0,
|
1278
|
+
capture: (flags & 2 /* Capture */) !== 0
|
1279
|
+
} : (flags & 2 /* Capture */) !== 0;
|
1179
1280
|
|
1180
1281
|
// src/runtime/nonce.ts
|
1181
1282
|
var setNonce = (nonce) => plt.$nonce$ = nonce;
|
package/dist/cjs/index.cjs.js
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
const casinoChallengesOverlay = require('./casino-challenges-overlay-
|
6
|
-
require('./index-
|
5
|
+
const casinoChallengesOverlay = require('./casino-challenges-overlay-a75f839f.js');
|
6
|
+
require('./index-11e96899.js');
|
7
7
|
|
8
8
|
|
9
9
|
|
package/dist/cjs/loader.cjs.js
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
const index = require('./index-
|
5
|
+
const index = require('./index-11e96899.js');
|
6
6
|
const appGlobals = require('./app-globals-3a1e7e63.js');
|
7
7
|
|
8
8
|
const defineCustomElements = async (win, options) => {
|
9
9
|
if (typeof window === 'undefined') return undefined;
|
10
10
|
await appGlobals.globalScripts();
|
11
|
-
return index.bootstrapLazy([["casino-challenges-
|
11
|
+
return index.bootstrapLazy([["casino-challenges-overlay_2.cjs",[[1,"casino-challenges-overlay",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"challenges":[16],"progress":[32],"isGrayed":[32],"isNew":[32],"isGift":[32],"isNotification":[32],"inProgressCount":[32],"activeChallenge":[32],"showModal":[32],"modalTitle":[32],"modalSubTitle":[32],"modalBtnText":[32],"modalShowIcon":[32],"modalReward":[32],"modalAddition":[32],"modalAdditionLink":[32],"modalAdditionText":[32]},[[8,"message","handleEvent"]],{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"],"challenges":["handleChallengesChange"]}],[1,"casino-challenges-overlay-modal",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[1],"isOpen":[4,"is-open"],"showIcon":[4,"show-icon"],"showButton":[4,"show-button"],"header":[1],"subtitle":[1],"reward":[1],"addition":[1],"additionLinkUrl":[1,"addition-link-url"],"additionLinkText":[1,"addition-link-text"],"actionText":[1,"action-text"],"translationUrl":[513,"translation-url"],"handleClick":[16]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
12
12
|
};
|
13
13
|
|
14
14
|
exports.setNonce = index.setNonce;
|
@@ -4,6 +4,8 @@ import bgIcon from "../../assets/bg-icon.svg";
|
|
4
4
|
import bellIcon from "../../assets/bell.svg";
|
5
5
|
import giftIcon from "../../assets/gift.svg";
|
6
6
|
import { resolveTranslationUrl, translate } from "../../utils/locale.utils";
|
7
|
+
import { EChallengeProgressStatus, EChallengeRewardType, EChallengeStatus } from "../../utils/types";
|
8
|
+
import "../../../../../casino-challenges-overlay-modal/dist/types/index";
|
7
9
|
export class CasinoChallengesOverlay {
|
8
10
|
constructor() {
|
9
11
|
this.mbSource = undefined;
|
@@ -11,11 +13,23 @@ export class CasinoChallengesOverlay {
|
|
11
13
|
this.clientStylingUrl = undefined;
|
12
14
|
this.translationUrl = '';
|
13
15
|
this.language = 'en';
|
14
|
-
this.
|
16
|
+
this.challenges = undefined;
|
17
|
+
this.progress = 0;
|
15
18
|
this.isGrayed = false;
|
16
19
|
this.isNew = false;
|
17
20
|
this.isGift = false;
|
18
21
|
this.isNotification = false;
|
22
|
+
this.inProgressCount = 0;
|
23
|
+
this.activeChallenge = '';
|
24
|
+
this.showModal = false;
|
25
|
+
this.modalTitle = '';
|
26
|
+
this.modalSubTitle = '';
|
27
|
+
this.modalBtnText = '';
|
28
|
+
this.modalShowIcon = true;
|
29
|
+
this.modalReward = '';
|
30
|
+
this.modalAddition = '';
|
31
|
+
this.modalAdditionLink = '';
|
32
|
+
this.modalAdditionText = '';
|
19
33
|
}
|
20
34
|
handleClientStylingChange(newValue, oldValue) {
|
21
35
|
if (newValue != oldValue) {
|
@@ -32,7 +46,134 @@ export class CasinoChallengesOverlay {
|
|
32
46
|
setStreamStyling(this.stylingContainer, `${this.mbSource}.Style`, this.stylingSubscription);
|
33
47
|
}
|
34
48
|
}
|
49
|
+
handleChallengesChange(newValue) {
|
50
|
+
let maxPercentage = 0;
|
51
|
+
let count = 0;
|
52
|
+
for (const challenge of newValue.filter((x) => x.Status === EChallengeStatus.InProgress)) {
|
53
|
+
if (challenge.Status === EChallengeStatus.InProgress) {
|
54
|
+
count++;
|
55
|
+
for (const level of challenge.LevelProgresses) {
|
56
|
+
if (level.ProgressStatus === EChallengeProgressStatus.InProgress) {
|
57
|
+
if (level.ProgressPercentage > maxPercentage) {
|
58
|
+
maxPercentage = level.ProgressPercentage;
|
59
|
+
this.activeChallenge = challenge.ChallengeId;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
this.progress = maxPercentage;
|
66
|
+
this.inProgressCount = count;
|
67
|
+
}
|
68
|
+
handleEvent(e) {
|
69
|
+
const { type, data } = e === null || e === void 0 ? void 0 : e.data;
|
70
|
+
switch (type) {
|
71
|
+
case 'UpdateChallengeProgress': {
|
72
|
+
const newChallenge = data;
|
73
|
+
let completedLevel = '';
|
74
|
+
this.isNew = this.isNotification = this.isGift = false;
|
75
|
+
const newChallenges = this.challenges.map((challenge) => {
|
76
|
+
if (challenge.ChallengeId !== (newChallenge === null || newChallenge === void 0 ? void 0 : newChallenge.ChallengeId))
|
77
|
+
return challenge;
|
78
|
+
const updatedLevels = challenge.LevelProgresses.map((level) => {
|
79
|
+
const newLevelData = newChallenge === null || newChallenge === void 0 ? void 0 : newChallenge.Levels.find((l) => l.LevelId === level.LevelId);
|
80
|
+
if (!newLevelData)
|
81
|
+
return level;
|
82
|
+
if (newLevelData.ProgressPercentage === 100) {
|
83
|
+
completedLevel = level.LevelId;
|
84
|
+
if (level.Rewards.every((r) => r.Type === EChallengeRewardType.Challenge)) {
|
85
|
+
this.isNew = true;
|
86
|
+
}
|
87
|
+
else {
|
88
|
+
this.isGift = true;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
return Object.assign(Object.assign({}, level), newLevelData);
|
92
|
+
});
|
93
|
+
return Object.assign(Object.assign({}, challenge), { Status: newChallenge.Status, LevelProgresses: updatedLevels });
|
94
|
+
});
|
95
|
+
this.challenges = newChallenges;
|
96
|
+
if (completedLevel) {
|
97
|
+
for (const challenge of this.challenges) {
|
98
|
+
for (const level of challenge.LevelProgresses) {
|
99
|
+
if (level.LevelId === completedLevel) {
|
100
|
+
level.ProgressStatus = EChallengeProgressStatus.Completed;
|
101
|
+
const nextLevel = challenge.LevelProgresses.find((z) => z.OrderNumber === level.OrderNumber + 1);
|
102
|
+
if (nextLevel) {
|
103
|
+
nextLevel.ProgressStatus = EChallengeProgressStatus.InProgress;
|
104
|
+
}
|
105
|
+
break;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
break;
|
111
|
+
}
|
112
|
+
case 'ChallengeForfeitNotification': {
|
113
|
+
this.handleStatusEvent(data);
|
114
|
+
break;
|
115
|
+
}
|
116
|
+
case 'ShowChallengeRewardModal': {
|
117
|
+
this.showModal = true;
|
118
|
+
if (data === null || data === void 0 ? void 0 : data.HasError) {
|
119
|
+
this.modalTitle = translate('errorTitle', this.language);
|
120
|
+
this.modalSubTitle = translate('errorSubTitle', this.language);
|
121
|
+
this.modalBtnText = translate('errorBtnText', this.language);
|
122
|
+
this.modalShowIcon = false;
|
123
|
+
}
|
124
|
+
else {
|
125
|
+
const completedLevel = this.challenges
|
126
|
+
.flatMap((x) => x.LevelProgresses || [])
|
127
|
+
.find((level) => level.LevelId === (data === null || data === void 0 ? void 0 : data.LevelId));
|
128
|
+
this.modalSubTitle = translate('level', this.language) + ' 3 ' + translate('completed', this.language);
|
129
|
+
this.modalReward = completedLevel.Rewards.map((reward) => reward.RewardDescription).join(' + ');
|
130
|
+
if (completedLevel.Rewards.some((x) => x.Type === EChallengeRewardType.Custom)) {
|
131
|
+
this.modalAddition = translate('physicalReward', this.language);
|
132
|
+
this.modalAdditionText = translate('linkText', this.language);
|
133
|
+
}
|
134
|
+
}
|
135
|
+
break;
|
136
|
+
}
|
137
|
+
case 'ChallengeChangeStatusNotification': {
|
138
|
+
this.handleStatusEvent(data);
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
handleStatusEvent(data) {
|
143
|
+
const newChallenges = [...this.challenges];
|
144
|
+
newChallenges.forEach(({ ChallengeId }, i) => {
|
145
|
+
if ((data === null || data === void 0 ? void 0 : data.ChallengeId) === ChallengeId) {
|
146
|
+
if ((data === null || data === void 0 ? void 0 : data.IsEnabled) === true) {
|
147
|
+
newChallenges[i] = Object.assign(Object.assign({}, newChallenges[i]), { Status: EChallengeStatus.InProgress });
|
148
|
+
this.challenges = newChallenges;
|
149
|
+
return;
|
150
|
+
}
|
151
|
+
else {
|
152
|
+
newChallenges[i] = Object.assign(Object.assign({}, newChallenges[i]), { Status: EChallengeStatus.Forfeited });
|
153
|
+
}
|
154
|
+
}
|
155
|
+
});
|
156
|
+
if ((data === null || data === void 0 ? void 0 : data.ChallengeId) === this.activeChallenge) {
|
157
|
+
this.isNotification = true;
|
158
|
+
if (this.inProgressCount === 1) {
|
159
|
+
setTimeout(() => {
|
160
|
+
this.isGrayed = true;
|
161
|
+
this.isNotification = false;
|
162
|
+
}, 10000);
|
163
|
+
}
|
164
|
+
else if (this.inProgressCount > 1) {
|
165
|
+
setTimeout(() => {
|
166
|
+
this.challenges = newChallenges;
|
167
|
+
this.isNotification = false;
|
168
|
+
}, 10000);
|
169
|
+
}
|
170
|
+
}
|
171
|
+
else {
|
172
|
+
this.challenges = newChallenges;
|
173
|
+
}
|
174
|
+
}
|
35
175
|
componentWillLoad() {
|
176
|
+
this.handleChallengesChange(this.challenges);
|
36
177
|
if (this.translationUrl) {
|
37
178
|
resolveTranslationUrl(this.translationUrl);
|
38
179
|
}
|
@@ -127,16 +268,29 @@ export class CasinoChallengesOverlay {
|
|
127
268
|
const icon = this.isGift ? giftIcon : this.isNotification ? bellIcon : null;
|
128
269
|
if (icon)
|
129
270
|
return h("img", { class: "icon", src: icon });
|
130
|
-
return h("div", { class: "gradient-text" },
|
271
|
+
return h("div", { class: "gradient-text" }, this.inProgressCount);
|
272
|
+
}
|
273
|
+
closeModal() {
|
274
|
+
this.showModal = false;
|
275
|
+
this.modalTitle = '';
|
276
|
+
this.modalSubTitle = '';
|
277
|
+
this.modalBtnText = '';
|
278
|
+
this.modalShowIcon = true;
|
279
|
+
this.modalReward = '';
|
280
|
+
this.modalAddition = '';
|
281
|
+
this.modalAdditionText = '';
|
131
282
|
}
|
132
283
|
render() {
|
284
|
+
if (this.inProgressCount < 1) {
|
285
|
+
return;
|
286
|
+
}
|
133
287
|
const dot = this.getCapsuleDotPosition(this.progress);
|
134
|
-
return (h("div", {
|
288
|
+
return (h("div", { class: "container" }, h("div", { class: `circle ${this.isGrayed ? 'grayed' : ''}`, style: {
|
135
289
|
'--progress': `${this.progress}%`
|
136
|
-
} }, h("img", {
|
290
|
+
} }, h("img", { class: "circle__img", src: bgIcon }), h("div", { class: "circle__content" }, h("span", null, this.progress, "%")), dot && (h("div", { class: "dot", style: {
|
137
291
|
left: `${dot.x}px`,
|
138
292
|
top: `${dot.y}px`
|
139
|
-
} }))), !this.isGrayed && h("div", {
|
293
|
+
} }))), !this.isGrayed && h("div", { class: `badge ${this.isNew ? 'new' : ''}` }, this.renderBadgeContent()), h("casino-challenges-overlay-modal", { isOpen: this.showModal, handleClick: () => this.closeModal(), header: this.modalTitle, subtitle: this.modalSubTitle, actionText: this.modalBtnText, showIcon: this.modalShowIcon, reward: this.modalReward, addition: this.modalAddition, additionLinkText: this.modalAdditionText, additionLinkUrl: this.modalAdditionText })));
|
140
294
|
}
|
141
295
|
static get is() { return "casino-challenges-overlay"; }
|
142
296
|
static get encapsulation() { return "shadow"; }
|
@@ -238,6 +392,27 @@ export class CasinoChallengesOverlay {
|
|
238
392
|
"attribute": "language",
|
239
393
|
"reflect": true,
|
240
394
|
"defaultValue": "'en'"
|
395
|
+
},
|
396
|
+
"challenges": {
|
397
|
+
"type": "unknown",
|
398
|
+
"mutable": false,
|
399
|
+
"complexType": {
|
400
|
+
"original": "IChallenge[]",
|
401
|
+
"resolved": "IChallenge[]",
|
402
|
+
"references": {
|
403
|
+
"IChallenge": {
|
404
|
+
"location": "import",
|
405
|
+
"path": "../../utils/types",
|
406
|
+
"id": "../../../../packages/stencil/casino-challenges-overlay/src/utils/types.ts::IChallenge"
|
407
|
+
}
|
408
|
+
}
|
409
|
+
},
|
410
|
+
"required": false,
|
411
|
+
"optional": false,
|
412
|
+
"docs": {
|
413
|
+
"tags": [],
|
414
|
+
"text": "User challenges list"
|
415
|
+
}
|
241
416
|
}
|
242
417
|
};
|
243
418
|
}
|
@@ -247,7 +422,18 @@ export class CasinoChallengesOverlay {
|
|
247
422
|
"isGrayed": {},
|
248
423
|
"isNew": {},
|
249
424
|
"isGift": {},
|
250
|
-
"isNotification": {}
|
425
|
+
"isNotification": {},
|
426
|
+
"inProgressCount": {},
|
427
|
+
"activeChallenge": {},
|
428
|
+
"showModal": {},
|
429
|
+
"modalTitle": {},
|
430
|
+
"modalSubTitle": {},
|
431
|
+
"modalBtnText": {},
|
432
|
+
"modalShowIcon": {},
|
433
|
+
"modalReward": {},
|
434
|
+
"modalAddition": {},
|
435
|
+
"modalAdditionLink": {},
|
436
|
+
"modalAdditionText": {}
|
251
437
|
};
|
252
438
|
}
|
253
439
|
static get watchers() {
|
@@ -260,6 +446,18 @@ export class CasinoChallengesOverlay {
|
|
260
446
|
}, {
|
261
447
|
"propName": "mbSource",
|
262
448
|
"methodName": "handleMbSourceChange"
|
449
|
+
}, {
|
450
|
+
"propName": "challenges",
|
451
|
+
"methodName": "handleChallengesChange"
|
452
|
+
}];
|
453
|
+
}
|
454
|
+
static get listeners() {
|
455
|
+
return [{
|
456
|
+
"name": "message",
|
457
|
+
"method": "handleEvent",
|
458
|
+
"target": "window",
|
459
|
+
"capture": false,
|
460
|
+
"passive": false
|
263
461
|
}];
|
264
462
|
}
|
265
463
|
}
|
@@ -1,7 +1,15 @@
|
|
1
1
|
const DEFAULT_LANGUAGE = 'en';
|
2
2
|
const TRANSLATIONS = {
|
3
3
|
en: {
|
4
|
-
new: 'new'
|
4
|
+
new: 'new',
|
5
|
+
errorBtnText: 'Ok',
|
6
|
+
errorTitle: 'Reward failed',
|
7
|
+
errorSubTitle: 'Sorry — we couldn’t grant the reward. Please try again.',
|
8
|
+
level: 'Level',
|
9
|
+
completed: 'has been completed!',
|
10
|
+
youWon: 'You have won',
|
11
|
+
physicalReward: 'for physical rewards please contact ',
|
12
|
+
linkText: 'Customer Support'
|
5
13
|
},
|
6
14
|
ro: {},
|
7
15
|
fr: {},
|
@@ -0,0 +1,32 @@
|
|
1
|
+
export var EChallengeRewardType;
|
2
|
+
(function (EChallengeRewardType) {
|
3
|
+
EChallengeRewardType[EChallengeRewardType["FreeSpins"] = 0] = "FreeSpins";
|
4
|
+
EChallengeRewardType[EChallengeRewardType["LuckyWheel"] = 1] = "LuckyWheel";
|
5
|
+
EChallengeRewardType[EChallengeRewardType["Leaderboard"] = 2] = "Leaderboard";
|
6
|
+
EChallengeRewardType[EChallengeRewardType["Challenge"] = 3] = "Challenge";
|
7
|
+
EChallengeRewardType[EChallengeRewardType["Custom"] = 4] = "Custom";
|
8
|
+
})(EChallengeRewardType || (EChallengeRewardType = {}));
|
9
|
+
export var EChallengeProgressStatus;
|
10
|
+
(function (EChallengeProgressStatus) {
|
11
|
+
EChallengeProgressStatus[EChallengeProgressStatus["Closed"] = 0] = "Closed";
|
12
|
+
EChallengeProgressStatus[EChallengeProgressStatus["InProgress"] = 1] = "InProgress";
|
13
|
+
EChallengeProgressStatus[EChallengeProgressStatus["Fillup"] = 2] = "Fillup";
|
14
|
+
EChallengeProgressStatus[EChallengeProgressStatus["Completed"] = 3] = "Completed";
|
15
|
+
})(EChallengeProgressStatus || (EChallengeProgressStatus = {}));
|
16
|
+
export var EChallengeStatus;
|
17
|
+
(function (EChallengeStatus) {
|
18
|
+
EChallengeStatus[EChallengeStatus["Started"] = 0] = "Started";
|
19
|
+
EChallengeStatus[EChallengeStatus["InProgress"] = 1] = "InProgress";
|
20
|
+
EChallengeStatus[EChallengeStatus["PendingLevelReward"] = 2] = "PendingLevelReward";
|
21
|
+
EChallengeStatus[EChallengeStatus["Completed"] = 3] = "Completed";
|
22
|
+
EChallengeStatus[EChallengeStatus["Expired"] = 4] = "Expired";
|
23
|
+
EChallengeStatus[EChallengeStatus["Forfeited"] = 5] = "Forfeited";
|
24
|
+
EChallengeStatus[EChallengeStatus["Awaiting"] = 6] = "Awaiting";
|
25
|
+
EChallengeStatus[EChallengeStatus["Paused"] = 7] = "Paused";
|
26
|
+
})(EChallengeStatus || (EChallengeStatus = {}));
|
27
|
+
export var EChallengeLevelTargetType;
|
28
|
+
(function (EChallengeLevelTargetType) {
|
29
|
+
EChallengeLevelTargetType[EChallengeLevelTargetType["Accumulative"] = 0] = "Accumulative";
|
30
|
+
EChallengeLevelTargetType[EChallengeLevelTargetType["SingleBet"] = 1] = "SingleBet";
|
31
|
+
EChallengeLevelTargetType[EChallengeLevelTargetType["MultipleOneBetSize"] = 2] = "MultipleOneBetSize";
|
32
|
+
})(EChallengeLevelTargetType || (EChallengeLevelTargetType = {}));
|