@everymatrix/casino-engagement-suite-challenges-list 1.35.0 → 1.36.1

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.
Files changed (26) hide show
  1. package/dist/casino-engagement-suite-challenges-list/casino-engagement-suite-challenges-list.esm.js +1 -1
  2. package/dist/casino-engagement-suite-challenges-list/p-26d7de05.entry.js +1 -0
  3. package/dist/casino-engagement-suite-challenges-list/p-fad4589e.js +1 -0
  4. package/dist/cjs/casino-engagement-suite-challenges-list.cjs.js +2 -2
  5. package/dist/cjs/casino-engagement-suite-challenges-list_2.cjs.entry.js +513 -0
  6. package/dist/cjs/{index-79c88755.js → index-0a011384.js} +38 -1
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/collection/collection-manifest.json +8 -1
  9. package/dist/collection/components/casino-engagement-suite-challenges-list/casino-engagement-suite-challenges-list.css +34 -0
  10. package/dist/collection/components/casino-engagement-suite-challenges-list/casino-engagement-suite-challenges-list.js +128 -38
  11. package/dist/collection/utils/locale.utils.js +1 -0
  12. package/dist/components/casino-engagement-suite-challenges-list.js +97 -791
  13. package/dist/components/casino-engagement-suite-progress-bar.js +6 -0
  14. package/dist/components/casino-engagement-suite-progress-bar2.js +94 -0
  15. package/dist/esm/casino-engagement-suite-challenges-list.js +2 -2
  16. package/dist/esm/casino-engagement-suite-challenges-list_2.entry.js +508 -0
  17. package/dist/esm/{index-70e47fe0.js → index-ddf7e990.js} +38 -1
  18. package/dist/esm/loader.js +2 -2
  19. package/dist/types/components/casino-engagement-suite-challenges-list/casino-engagement-suite-challenges-list.d.ts +11 -0
  20. package/dist/types/components.d.ts +16 -0
  21. package/dist/types/models/challenge.d.ts +3 -0
  22. package/package.json +1 -1
  23. package/dist/casino-engagement-suite-challenges-list/p-7e171791.js +0 -1
  24. package/dist/casino-engagement-suite-challenges-list/p-eb36cbe7.entry.js +0 -1
  25. package/dist/cjs/casino-engagement-suite-challenges-list.cjs.entry.js +0 -1147
  26. package/dist/esm/casino-engagement-suite-challenges-list.entry.js +0 -1143
@@ -257,6 +257,31 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
257
257
  classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
258
258
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
259
259
  }
260
+ else if (memberName === 'style') {
261
+ // update style attribute, css properties and values
262
+ {
263
+ for (const prop in oldValue) {
264
+ if (!newValue || newValue[prop] == null) {
265
+ if (prop.includes('-')) {
266
+ elm.style.removeProperty(prop);
267
+ }
268
+ else {
269
+ elm.style[prop] = '';
270
+ }
271
+ }
272
+ }
273
+ }
274
+ for (const prop in newValue) {
275
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
276
+ if (prop.includes('-')) {
277
+ elm.style.setProperty(prop, newValue[prop]);
278
+ }
279
+ else {
280
+ elm.style[prop] = newValue[prop];
281
+ }
282
+ }
283
+ }
284
+ }
260
285
  else if (memberName === 'key')
261
286
  ;
262
287
  else if ((!isProp ) &&
@@ -525,11 +550,14 @@ const patch = (oldVNode, newVNode) => {
525
550
  const elm = (newVNode.$elm$ = oldVNode.$elm$);
526
551
  const oldChildren = oldVNode.$children$;
527
552
  const newChildren = newVNode.$children$;
553
+ const tag = newVNode.$tag$;
528
554
  const text = newVNode.$text$;
529
555
  if (text === null) {
530
556
  // element node
531
557
  {
532
- {
558
+ if (tag === 'slot')
559
+ ;
560
+ else {
533
561
  // either this is the first render of an element OR it's an update
534
562
  // AND we already know it's possible it could have changed
535
563
  // this updates the element's css classes, attrs, props, listeners, etc.
@@ -797,6 +825,15 @@ const addHydratedFlag = (elm) => elm.classList.add('hydrated')
797
825
  const parsePropertyValue = (propValue, propType) => {
798
826
  // ensure this value is of the correct prop type
799
827
  if (propValue != null && !isComplexType(propValue)) {
828
+ if (propType & 4 /* Boolean */) {
829
+ // per the HTML spec, any string value means it is a boolean true value
830
+ // but we'll cheat here and say that the string "false" is the boolean false
831
+ return propValue === 'false' ? false : propValue === '' || !!propValue;
832
+ }
833
+ if (propType & 2 /* Number */) {
834
+ // force it to be a number
835
+ return parseFloat(propValue);
836
+ }
800
837
  if (propType & 1 /* String */) {
801
838
  // could have been passed as a number or boolean
802
839
  // but we still want it as a string
@@ -1,4 +1,4 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-70e47fe0.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-ddf7e990.js';
2
2
 
3
3
  /*
4
4
  Stencil Client Patch Esm v2.15.2 | MIT Licensed | https://stenciljs.com
@@ -10,7 +10,7 @@ const patchEsm = () => {
10
10
  const defineCustomElements = (win, options) => {
11
11
  if (typeof window === 'undefined') return Promise.resolve();
12
12
  return patchEsm().then(() => {
13
- return bootstrapLazy([["casino-engagement-suite-challenges-list",[[1,"casino-engagement-suite-challenges-list",{"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[1],"device":[1],"challenges":[1040],"tooltip":[32],"timers":[32],"limitStylingAppends":[32]},[[8,"message","handleEvent"]]]]]], options);
13
+ return bootstrapLazy([["casino-engagement-suite-challenges-list_2",[[1,"casino-engagement-suite-challenges-list",{"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"language":[1],"device":[1],"challenges":[1040],"isJoiningToChallenge":[1028,"is-joining-to-challenge"],"inProgressChallenges":[1040],"tooltip":[32],"timers":[32],"limitStylingAppends":[32],"newChallengeIds":[32],"pausedChallengeIds":[32]},[[8,"message","handleEvent"]]],[1,"casino-engagement-suite-progress-bar",{"value":[2],"disabled":[4],"hidePercent":[4,"hide-percent"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"limitStylingAppends":[32]}]]]], options);
14
14
  });
15
15
  };
16
16
 
@@ -22,10 +22,20 @@ export declare class CasinoEngagementSuiteChallengesList {
22
22
  * List of challenges
23
23
  */
24
24
  challenges: Challenge[];
25
+ /**
26
+ *Is joining to challenge
27
+ */
28
+ isJoiningToChallenge: boolean;
29
+ /**
30
+ *Active challenges
31
+ */
32
+ inProgressChallenges: Array<number>;
25
33
  close: EventEmitter<void>;
26
34
  tooltip: boolean;
27
35
  timers: Record<string, string>;
28
36
  private limitStylingAppends;
37
+ newChallengeIds: number[];
38
+ pausedChallengeIds: number[];
29
39
  host: HTMLElement;
30
40
  challengesPropHandler(value: Array<Challenge>): void;
31
41
  handleEvent(e: any): void;
@@ -52,6 +62,7 @@ export declare class CasinoEngagementSuiteChallengesList {
52
62
  isChallengeCompleted(challenge: Challenge): boolean;
53
63
  getChallengeProgress(challenge: Challenge): number;
54
64
  getChallengeHeaderTemplate(challenge: Challenge): any;
65
+ changeChallengeStatus: (e: MouseEvent) => void;
55
66
  getChallengeTemplate(challenge: Challenge): any;
56
67
  getHeaderTemplate(): any;
57
68
  getListTemplate(): any;
@@ -24,6 +24,14 @@ export namespace Components {
24
24
  * User's device type
25
25
  */
26
26
  "device": "Mobile" | "Tablet" | "Desktop";
27
+ /**
28
+ * Active challenges
29
+ */
30
+ "inProgressChallenges": Array<number>;
31
+ /**
32
+ * Is joining to challenge
33
+ */
34
+ "isJoiningToChallenge": boolean;
27
35
  /**
28
36
  * Language of the widget
29
37
  */
@@ -59,6 +67,14 @@ declare namespace LocalJSX {
59
67
  * User's device type
60
68
  */
61
69
  "device"?: "Mobile" | "Tablet" | "Desktop";
70
+ /**
71
+ * Active challenges
72
+ */
73
+ "inProgressChallenges"?: Array<number>;
74
+ /**
75
+ * Is joining to challenge
76
+ */
77
+ "isJoiningToChallenge"?: boolean;
62
78
  /**
63
79
  * Language of the widget
64
80
  */
@@ -37,6 +37,8 @@ export interface LevelProgress {
37
37
  Rewards: Array<Reward>;
38
38
  TargetBetCount: number;
39
39
  TargetTurnover: number;
40
+ DisplayCurrencyTargetTurnover: number;
41
+ CustomRewardMessage: string;
40
42
  }
41
43
  export declare enum ChallengeProgressStatus {
42
44
  Started = 0,
@@ -54,4 +56,5 @@ export interface Challenge {
54
56
  Id: number;
55
57
  LevelProgresses: Array<LevelProgress>;
56
58
  Status: ChallengeProgressStatus;
59
+ IsNew: boolean;
57
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/casino-engagement-suite-challenges-list",
3
- "version": "1.35.0",
3
+ "version": "1.36.1",
4
4
  "main": "./dist/index.cjs.js",
5
5
  "module": "./dist/index.js",
6
6
  "es2015": "./dist/esm/index.mjs",
@@ -1 +0,0 @@
1
- let e,t,n=!1;const l="undefined"!=typeof window?window:{},s=l.document||{head:{}},o={t:0,l:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,l)=>e.addEventListener(t,n,l),rel:(e,t,n,l)=>e.removeEventListener(t,n,l),ce:(e,t)=>new CustomEvent(e,t)},i=e=>Promise.resolve(e),c=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replace}catch(e){}return!1})(),r=(e,t,n)=>{n&&n.map((([n,l,s])=>{const i=a(e,n),c=u(t,s),r=f(n);o.ael(i,l,c,r),(t.o=t.o||[]).push((()=>o.rel(i,l,c,r)))}))},u=(e,t)=>n=>{try{256&e.t?e.i[t](n):(e.u=e.u||[]).push([t,n])}catch(e){J(e)}},a=(e,t)=>8&t?l:e,f=e=>0!=(2&e),d=new WeakMap,h=e=>"sc-"+e.h,$={},y=e=>"object"==(e=typeof e)||"function"===e,m=(e,t,...n)=>{let l=null,s=null,o=!1,i=!1,c=[];const r=t=>{for(let n=0;n<t.length;n++)l=t[n],Array.isArray(l)?r(l):null!=l&&"boolean"!=typeof l&&((o="function"!=typeof e&&!y(l))&&(l+=""),o&&i?c[c.length-1].$+=l:c.push(o?p(null,l):l),i=o)};if(r(n),t){t.key&&(s=t.key);{const e=t.className||t.class;e&&(t.class="object"!=typeof e?e:Object.keys(e).filter((t=>e[t])).join(" "))}}const u=p(e,null);return u.m=t,c.length>0&&(u.p=c),u.g=s,u},p=(e,t)=>({t:0,S:e,$:t,k:null,p:null,m:null,g:null}),b={},w=(e,t,n,s,i,c)=>{if(n!==s){let r=I(e,t),u=t.toLowerCase();if("class"===t){const t=e.classList,l=S(n),o=S(s);t.remove(...l.filter((e=>e&&!o.includes(e)))),t.add(...o.filter((e=>e&&!l.includes(e))))}else if("key"===t);else if(r||"o"!==t[0]||"n"!==t[1]){const l=y(s);if((r||l&&null!==s)&&!i)try{if(e.tagName.includes("-"))e[t]=s;else{let l=null==s?"":s;"list"===t?r=!1:null!=n&&e[t]==l||(e[t]=l)}}catch(e){}null==s||!1===s?!1===s&&""!==e.getAttribute(t)||e.removeAttribute(t):(!r||4&c||i)&&!l&&e.setAttribute(t,s=!0===s?"":s)}else t="-"===t[2]?t.slice(3):I(l,u)?u.slice(2):u[2]+t.slice(3),n&&o.rel(e,t,n,!1),s&&o.ael(e,t,s,!1)}},g=/\s/,S=e=>e?e.split(g):[],k=(e,t,n,l)=>{const s=11===t.k.nodeType&&t.k.host?t.k.host:t.k,o=e&&e.m||$,i=t.m||$;for(l in o)l in i||w(s,l,o[l],void 0,n,t.t);for(l in i)w(s,l,o[l],i[l],n,t.t)},j=(t,n,l)=>{let o,i,c=n.p[l],r=0;if(null!==c.$)o=c.k=s.createTextNode(c.$);else if(o=c.k=s.createElement(c.S),k(null,c,!1),null!=e&&o["s-si"]!==e&&o.classList.add(o["s-si"]=e),c.p)for(r=0;r<c.p.length;++r)i=j(t,c,r),i&&o.appendChild(i);return o},v=(e,n,l,s,o,i)=>{let c,r=e;for(r.shadowRoot&&r.tagName===t&&(r=r.shadowRoot);o<=i;++o)s[o]&&(c=j(null,l,o),c&&(s[o].k=c,r.insertBefore(c,n)))},M=(e,t,n,l)=>{for(;t<=n;++t)(l=e[t])&&l.k.remove()},C=(e,t)=>e.S===t.S&&e.g===t.g,O=(e,t)=>{const n=t.k=e.k,l=e.p,s=t.p,o=t.$;null===o?(k(e,t,!1),null!==l&&null!==s?((e,t,n,l)=>{let s,o,i=0,c=0,r=0,u=0,a=t.length-1,f=t[0],d=t[a],h=l.length-1,$=l[0],y=l[h];for(;i<=a&&c<=h;)if(null==f)f=t[++i];else if(null==d)d=t[--a];else if(null==$)$=l[++c];else if(null==y)y=l[--h];else if(C(f,$))O(f,$),f=t[++i],$=l[++c];else if(C(d,y))O(d,y),d=t[--a],y=l[--h];else if(C(f,y))O(f,y),e.insertBefore(f.k,d.k.nextSibling),f=t[++i],y=l[--h];else if(C(d,$))O(d,$),e.insertBefore(d.k,f.k),d=t[--a],$=l[++c];else{for(r=-1,u=i;u<=a;++u)if(t[u]&&null!==t[u].g&&t[u].g===$.g){r=u;break}r>=0?(o=t[r],o.S!==$.S?s=j(t&&t[c],n,r):(O(o,$),t[r]=void 0,s=o.k),$=l[++c]):(s=j(t&&t[c],n,c),$=l[++c]),s&&f.k.parentNode.insertBefore(s,f.k)}i>a?v(e,null==l[h+1]?null:l[h+1].k,n,l,c,h):c>h&&M(t,i,a)})(n,l,t,s):null!==s?(null!==e.$&&(n.textContent=""),v(n,null,t,s,0,s.length-1)):null!==l&&M(l,0,l.length-1)):e.$!==o&&(n.data=o)},P=e=>z(e).j,x=(e,t,n)=>{const l=P(e);return{emit:e=>E(l,t,{bubbles:!!(4&n),composed:!!(2&n),cancelable:!!(1&n),detail:e})}},E=(e,t,n)=>{const l=o.ce(t,n);return e.dispatchEvent(l),l},L=(e,t)=>{t&&!e.v&&t["s-p"]&&t["s-p"].push(new Promise((t=>e.v=t)))},N=(e,t)=>{if(e.t|=16,!(4&e.t))return L(e,e.M),se((()=>R(e,t)));e.t|=512},R=(e,t)=>{const n=e.i;let l;return t&&(e.t|=256,e.u&&(e.u.map((([e,t])=>q(n,e,t))),e.u=null),l=q(n,"componentWillLoad")),D(l,(()=>T(e,n,t)))},T=async(e,t,n)=>{const l=e.j,o=l["s-rc"];n&&(e=>{const t=e.C,n=e.j,l=t.t,o=((e,t)=>{let n=h(t),l=X.get(n);if(e=11===e.nodeType?e:s,l)if("string"==typeof l){let t,o=d.get(e=e.head||e);o||d.set(e,o=new Set),o.has(n)||(t=s.createElement("style"),t.innerHTML=l,e.insertBefore(t,e.querySelector("link")),o&&o.add(n))}else e.adoptedStyleSheets.includes(l)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,l]);return n})(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);10&l&&(n["s-sc"]=o,n.classList.add(o+"-h"))})(e);W(e,t),o&&(o.map((e=>e())),l["s-rc"]=void 0);{const t=l["s-p"],n=()=>A(e);0===t.length?n():(Promise.all(t).then(n),e.t|=4,t.length=0)}},W=(n,l)=>{try{l=l.render(),n.t&=-17,n.t|=2,((n,l)=>{const s=n.j,o=n.C,i=n.O||p(null,null),c=(e=>e&&e.S===b)(l)?l:m(null,null,l);t=s.tagName,o.P&&(c.m=c.m||{},o.P.map((([e,t])=>c.m[t]=s[e]))),c.S=null,c.t|=4,n.O=c,c.k=i.k=s.shadowRoot||s,e=s["s-sc"],O(i,c)})(n,l)}catch(e){J(e,n.j)}return null},A=e=>{const t=e.j,n=e.M;q(e.i,"componentDidRender"),64&e.t||(e.t|=64,F(t),e.L(t),n||U()),e.v&&(e.v(),e.v=void 0),512&e.t&&le((()=>N(e,!1))),e.t&=-517},U=()=>{F(s.documentElement),le((()=>E(l,"appload",{detail:{namespace:"casino-engagement-suite-challenges-list"}})))},q=(e,t,n)=>{if(e&&e[t])try{return e[t](n)}catch(e){J(e)}},D=(e,t)=>e&&e.then?e.then(t):t(),F=e=>e.classList.add("hydrated"),H=(e,t,n)=>{if(t.N){e.watchers&&(t.R=e.watchers);const l=Object.entries(t.N),s=e.prototype;if(l.map((([e,[l]])=>{(31&l||2&n&&32&l)&&Object.defineProperty(s,e,{get(){return((e,t)=>z(this).T.get(t))(0,e)},set(n){((e,t,n,l)=>{const s=z(e),o=s.j,i=s.T.get(t),c=s.t,r=s.i;if(n=((e,t)=>null==e||y(e)?e:1&t?e+"":e)(n,l.N[t][0]),(!(8&c)||void 0===i)&&n!==i&&(!Number.isNaN(i)||!Number.isNaN(n))&&(s.T.set(t,n),r)){if(l.R&&128&c){const e=l.R[t];e&&e.map((e=>{try{r[e](n,i,t)}catch(e){J(e,o)}}))}2==(18&c)&&N(s,!1)}})(this,e,n,t)},configurable:!0,enumerable:!0})})),1&n){const n=new Map;s.attributeChangedCallback=function(e,t,l){o.jmp((()=>{const t=n.get(e);if(this.hasOwnProperty(t))l=this[t],delete this[t];else if(s.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==l)return;this[t]=(null!==l||"boolean"!=typeof this[t])&&l}))},e.observedAttributes=l.filter((([e,t])=>15&t[0])).map((([e,l])=>{const s=l[1]||e;return n.set(s,e),512&l[0]&&t.P.push([e,s]),s}))}}return e},V=(e,t={})=>{const n=[],i=t.exclude||[],u=l.customElements,a=s.head,f=a.querySelector("meta[charset]"),d=s.createElement("style"),$=[];let y,m=!0;Object.assign(o,t),o.l=new URL(t.resourcesUrl||"./",s.baseURI).href,e.map((e=>{e[1].map((t=>{const l={t:t[0],h:t[1],N:t[2],W:t[3]};l.N=t[2],l.W=t[3],l.P=[],l.R={};const s=l.h,a=class extends HTMLElement{constructor(e){super(e),G(e=this,l),1&l.t&&e.attachShadow({mode:"open"})}connectedCallback(){y&&(clearTimeout(y),y=null),m?$.push(this):o.jmp((()=>(e=>{if(0==(1&o.t)){const t=z(e),n=t.C,l=()=>{};if(1&t.t)r(e,t,n.W);else{t.t|=1;{let n=e;for(;n=n.parentNode||n.host;)if(n["s-p"]){L(t,t.M=n);break}}n.N&&Object.entries(n.N).map((([t,[n]])=>{if(31&n&&e.hasOwnProperty(t)){const n=e[t];delete e[t],e[t]=n}})),(async(e,t,n,l,s)=>{if(0==(32&t.t)){{if(t.t|=32,(s=Q(n)).then){const e=()=>{};s=await s,e()}s.isProxied||(n.R=s.watchers,H(s,n,2),s.isProxied=!0);const e=()=>{};t.t|=8;try{new s(t)}catch(e){J(e)}t.t&=-9,t.t|=128,e()}if(s.style){let e=s.style;const t=h(n);if(!X.has(t)){const l=()=>{};((e,t,n)=>{let l=X.get(e);c&&n?(l=l||new CSSStyleSheet,l.replace(t)):l=t,X.set(e,l)})(t,e,!!(1&n.t)),l()}}}const o=t.M,i=()=>N(t,!0);o&&o["s-rc"]?o["s-rc"].push(i):i()})(0,t,n)}l()}})(this)))}disconnectedCallback(){o.jmp((()=>(()=>{if(0==(1&o.t)){const e=z(this),t=e.i;e.o&&(e.o.map((e=>e())),e.o=void 0),q(t,"disconnectedCallback")}})()))}componentOnReady(){return z(this).A}};l.U=e[0],i.includes(s)||u.get(s)||(n.push(s),u.define(s,H(a,l,1)))}))})),d.innerHTML=n+"{visibility:hidden}.hydrated{visibility:inherit}",d.setAttribute("data-styles",""),a.insertBefore(d,f?f.nextSibling:a.firstChild),m=!1,$.length?$.map((e=>e.connectedCallback())):o.jmp((()=>y=setTimeout(U,30)))},_=new WeakMap,z=e=>_.get(e),B=(e,t)=>_.set(t.i=e,t),G=(e,t)=>{const n={t:0,j:e,C:t,T:new Map};return n.A=new Promise((e=>n.L=e)),e["s-p"]=[],e["s-rc"]=[],r(e,n,t.W),_.set(e,n)},I=(e,t)=>t in e,J=(e,t)=>(0,console.error)(e,t),K=new Map,Q=e=>{const t=e.h.replace(/-/g,"_"),n=e.U,l=K.get(n);return l?l[t]:import(`./${n}.entry.js`).then((e=>(K.set(n,e),e[t])),J)},X=new Map,Y=[],Z=[],ee=(e,t)=>l=>{e.push(l),n||(n=!0,t&&4&o.t?le(ne):o.raf(ne))},te=e=>{for(let t=0;t<e.length;t++)try{e[t](performance.now())}catch(e){J(e)}e.length=0},ne=()=>{te(Y),te(Z),(n=Y.length>0)&&o.raf(ne)},le=e=>i().then(e),se=ee(Z,!0);export{V as b,x as c,P as g,m as h,i as p,B as r}
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as n,g as o}from"./p-7e171791.js";import"@everymatrix/casino-engagement-suite-progress-bar";var s,a;!function(e){e[e.Closed=0]="Closed",e[e.InProgress=1]="InProgress",e[e.Fillup=2]="Fillup",e[e.Completed=3]="Completed"}(s||(s={})),function(e){e[e.Started=0]="Started",e[e.InProgress=1]="InProgress",e[e.PendingLevelReward=2]="PendingLevelReward",e[e.Completed=3]="Completed",e[e.Expired=4]="Expired"}(a||(a={}));const i=["en"],l={en:{challenges:"Challenges",join:"Join",unjoin:"Unjoin",noChallenges:"No Challenges yet",tryOtherGames:"Try winning Challenges as rewards or launching other booster games",tooltip:"Competition where your real money bets contribute towards the level progress to achieve the level reward"}},r=(e,t)=>{const n=t;return l[void 0!==n&&i.includes(n)?n:"en"][e]};function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function g(e){p(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===h(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function u(e,t){p(2,arguments);var n=g(e),o=g(t),s=n.getTime()-o.getTime();return s<0?-1:s>0?1:s}function c(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function d(e,t){p(2,arguments);var n=g(e),o=c(t);return isNaN(o)?new Date(NaN):o?(n.setDate(n.getDate()+o),n):n}function C(e,t){p(2,arguments);var n=g(e),o=c(t);if(isNaN(o))return new Date(NaN);if(!o)return n;var s=n.getDate(),a=new Date(n.getTime());a.setMonth(n.getMonth()+o+1,0);var i=a.getDate();return s>=i?a:(n.setFullYear(a.getFullYear(),a.getMonth(),s),n)}function m(e,t){if(p(2,arguments),!t||"object"!==h(t))return new Date(NaN);var n=t.years?c(t.years):0,o=t.months?c(t.months):0,s=t.weeks?c(t.weeks):0,a=t.days?c(t.days):0,i=t.hours?c(t.hours):0,l=t.minutes?c(t.minutes):0,r=t.seconds?c(t.seconds):0,u=g(e),m=o||n?C(u,o+12*n):u,f=a||s?d(m,a+7*s):m,b=l+60*i,x=r+60*b,v=1e3*x,w=new Date(f.getTime()+v);return w}function f(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function b(e){p(1,arguments);var t=g(e);return t.setHours(0,0,0,0),t}function x(e,t){p(2,arguments);var n=b(e),o=b(t),s=n.getTime()-f(n),a=o.getTime()-f(o);return Math.round((s-a)/864e5)}function v(e,t){var n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}function w(e,t){p(2,arguments);var n=g(e),o=g(t),s=v(n,o),a=Math.abs(x(n,o));n.setDate(n.getDate()-s*a);var i=Number(v(n,o)===-s),l=s*(a-i);return 0===l?0:l}function y(e,t){return p(2,arguments),g(e).getTime()-g(t).getTime()}var L={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}};function k(e){return e?L[e]:L.trunc}function P(e,t,n){p(2,arguments);var o=y(e,t)/36e5;return k(null==n?void 0:n.roundingMethod)(o)}function F(e,t,n){p(2,arguments);var o=y(e,t)/6e4;return k(null==n?void 0:n.roundingMethod)(o)}function N(e,t){p(2,arguments);var n=g(e),o=g(t),s=n.getFullYear()-o.getFullYear(),a=n.getMonth()-o.getMonth();return 12*s+a}function B(e){p(1,arguments);var t=g(e);return t.setHours(23,59,59,999),t}function T(e){p(1,arguments);var t=g(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function D(e){p(1,arguments);var t=g(e);return B(t).getTime()===T(t).getTime()}function E(e,t){p(2,arguments);var n,o=g(e),s=g(t),a=u(o,s),i=Math.abs(N(o,s));if(i<1)n=0;else{1===o.getMonth()&&o.getDate()>27&&o.setDate(30),o.setMonth(o.getMonth()-a*i);var l=u(o,s)===-a;D(g(e))&&1===i&&1===u(e,s)&&(l=!1),n=a*(i-Number(l))}return 0===n?0:n}function M(e,t,n){p(2,arguments);var o=y(e,t)/1e3;return k(null==n?void 0:n.roundingMethod)(o)}function H(e,t){p(2,arguments);var n=g(e),o=g(t);return n.getFullYear()-o.getFullYear()}function I(e,t){p(2,arguments);var n=g(e),o=g(t),s=u(n,o),a=Math.abs(H(n,o));n.setFullYear(1584),o.setFullYear(1584);var i=u(n,o)===-s,l=s*(a-Number(i));return 0===l?0:l}const j=class{constructor(n){e(this,n),this.close=t(this,"close",7),this.clientStyling="",this.clientStylingUrl="",this.language="en",this.device="Mobile",this.challenges=[],this.tooltip=!1,this.timers={},this.limitStylingAppends=!1,this.setClientStyling=()=>{let e=document.createElement("style");e.innerHTML=this.clientStyling,this.host.prepend(e)},this.setClientStylingURL=()=>{let e=new URL(this.clientStylingUrl),t=document.createElement("style");fetch(e.href).then((e=>e.text())).then((e=>{t.innerHTML=e,setTimeout((()=>{this.host.prepend(t)}),1)})).catch((e=>{console.log("Error ",e)}))},this.handleCloseClick=()=>{this.close.emit(),this.tooltip=!1},this.handleChallengeClick=e=>{const t=+e.currentTarget.getAttribute("data-id");window.postMessage({type:"ChallengeClick",id:t})},this.showTooltip=()=>{this.tooltip=!0},this.hideTooltip=()=>{this.tooltip=!1}}challengesPropHandler(e){!this.interval&&e.length&&(this.updateTimers(),this.startCountdown()),this.interval&&!e.length&&clearInterval(this.interval)}handleEvent(e){const t=e.data.data;if("ChallengeGrant"===e.data.type){const e=this.challenges.findIndex((e=>M(new Date(e.ExpirationTime),new Date(t.ExpirationTime))>0));e>-1?this.challenges.splice(e,0,t):this.challenges.unshift(t)}}componentWillLoad(){this.challengesPropHandler(this.challenges)}componentDidRender(){!this.limitStylingAppends&&this.host&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrl&&this.setClientStylingURL(),this.limitStylingAppends=!0)}disconnectedCallback(){this.interval&&clearInterval(this.interval)}startCountdown(){this.interval=setInterval((()=>{this.updateTimers()}),1e3)}updateTimers(){const e=new Date;this.timers=this.challenges.filter((e=>e.Status!==a.Expired)).reduce(((t,n)=>{const o=new Date(n.ExpirationTime),s=M(o,e),a=function(e){p(1,arguments);var t=g(e.start),n=g(e.end);if(isNaN(t.getTime()))throw new RangeError("Start Date is invalid");if(isNaN(n.getTime()))throw new RangeError("End Date is invalid");var o={};o.years=Math.abs(I(n,t));var s=u(n,t),a=m(t,{years:s*o.years});o.months=Math.abs(E(n,a));var i=m(a,{months:s*o.months});o.days=Math.abs(w(n,i));var l=m(i,{days:s*o.days});o.hours=Math.abs(P(n,l));var r=m(l,{hours:s*o.hours});o.minutes=Math.abs(F(n,r));var h=m(r,{minutes:s*o.minutes});return o.seconds=Math.abs(M(n,h)),o}({start:e,end:o});let i="00h:00m:00s";if(s<1)this.removeChallenge(n.Id);else{const e=a.days.toString().padStart(2,"0"),t=a.hours.toString().padStart(2,"0"),n=a.minutes.toString().padStart(2,"0"),o=a.seconds.toString().padStart(2,"0");i="00"===e?`${t}h:${n}m:${o}s`:`${e}d:${t}h:${n}m`}return Object.assign(Object.assign({},t),{[n.Id]:i})}),{})}removeChallenge(e){const t=this.challenges.findIndex((t=>t.Id===e));t>-1&&(this.challenges.splice(t,1),window.postMessage({type:"ChallengeHasExpired",id:e}))}getChallengeClasses(e){return{ChallengeCard:!0,InProgress:e.Status===a.InProgress,Completed:this.isChallengeCompleted(e),Paused:this.isChallengePaused(e)}}isChallengePaused(e){return e.Status===a.Started&&e.LevelProgresses[0].ProgressPercentage>0}isChallengeCompleted(e){return e.Status===a.Completed||e.Status===a.PendingLevelReward&&e.LevelProgresses.every((e=>100===e.ProgressPercentage))}getChallengeProgress(e){if(e.Status===a.Completed)return 100;if(this.isChallengePaused(e)||e.Status===a.PendingLevelReward||e.Status===a.InProgress){const t=e.LevelProgresses.find((e=>e.ProgressStatus===s.InProgress));return t?t.ProgressPercentage:0}return-1}getChallengeHeaderTemplate(e){return n("div",{class:"ChallengeCardHeader"},n("div",{class:"ChallengeName"},e.ChallengePresentation.PresentationName),n("button",{class:e.Status===a.InProgress?"ChallengeJoinButton Joined":"ChallengeJoinButton"},r(e.Status===a.InProgress?"unjoin":"join",this.language)))}getChallengeTemplate(e){const t=this.getChallengeProgress(e),o=this.timers[e.Id],s=t>-1?n("casino-engagement-suite-progress-bar",{class:this.device,value:t,disabled:this.isChallengePaused(e)},n("span",{slot:"Title",class:"ChallengeCountdown"},o)):n("span",{class:"ChallengeCountdown"},o);return n("div",{class:this.getChallengeClasses(e),onClick:this.handleChallengeClick,key:e.Id,"data-id":e.Id},this.getChallengeHeaderTemplate(e),s)}getHeaderTemplate(){return n("header",{class:"ChallengesListPopupHeader"},n("button",{onClick:this.showTooltip,class:"ChallengesIconButton"},n("img",{src:"https://static.everymatrix.com/gic/img/engagement-suite/help.svg",alt:"Show tooltip"})),n("div",{class:"ChallengesListPopupHeaderName"},r("challenges",this.language)),n("button",{class:"ChallengesIconButton",onClick:this.handleCloseClick},n("img",{src:"https://static.everymatrix.com/gic/img/engagement-suite/close.svg",alt:"Сlose challenges list"})))}getListTemplate(){return this.challenges.length?n("div",{class:"ChallengesListWrapper"},n("div",{class:"ChallengesList"},this.challenges.map((e=>this.getChallengeTemplate(e))))):n("div",{class:"ChallengesListEmpty"},n("h2",null,r("noChallenges",this.language)),n("p",null,r("tryOtherGames",this.language)))}getTooltipTemplate(){return this.tooltip?n("div",{class:"ChallengesTooltipBackdrop"},n("div",{class:"ChallengesTooltip"},n("button",{class:"ChallengesIconButton",onClick:this.hideTooltip},n("img",{src:"https://static.everymatrix.com/gic/img/engagement-suite/close.svg",alt:"Сlose tooltip"})),r("tooltip",this.language))):""}render(){return n("div",{class:`ChallengesListPopup ${this.device}`},this.getHeaderTemplate(),this.getListTemplate(),this.getTooltipTemplate())}get host(){return o(this)}static get watchers(){return{challenges:["challengesPropHandler"]}}};j.style='@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@600&display=swap");:host{display:block;font-family:inherit}*{box-sizing:border-box;margin:0;padding:0}button{border:none;background:none;cursor:pointer}button:focus{outline:none}.ChallengesListPopup{display:flex;height:100%;background-color:var(--emw--color-background, #1E1638);border-radius:8px;overflow:hidden;flex-direction:column;position:relative}.ChallengesListPopupHeader{display:flex;justify-content:space-between;align-items:center;padding:12px 8px 8px}.ChallengesIconButton{width:16px;height:16px;cursor:pointer}.ChallengesListPopupHeaderName{color:var(--emw--color-gray-100, #BBB9C3);font-size:14px;font-weight:500;line-height:14px}.ChallengesListWrapper{overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none}.ChallengesListWrapper::-webkit-scrollbar{display:none}.ChallengesList{display:flex;flex-direction:column;row-gap:12px;padding:8px 19px 0}.ChallengeCard{padding:15px 15px 19px;border:1px solid var(--emw--button-border-color, #403956);border-radius:6px;position:relative}.ChallengeJoinButton.Joined::before,.ChallengeCard.InProgress::before{content:"";position:absolute;inset:0;border-radius:var(--emw--button-border-radius, 4px);padding:1px;background:linear-gradient(98.25deg, #FF9400 22.48%, #FEF746 131.02%, #FFE24A 131.9%);-webkit-mask:linear-gradient(#FFF 0 0) content-box, linear-gradient(#FFF 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.ChallengeCardHeader{display:flex;justify-content:space-between;gap:24px;margin-bottom:12px}.ChallengeName{color:var(--emw--color-typography, #FFFFFF);font-family:"Montserrat", sans-serif;line-height:22px;font-weight:700;font-size:18px;word-break:break-word}.ChallengeJoinButton{transition:all 0.5s ease-out;background:linear-gradient(98.25deg, #FF9400 22.48%, #FEF746 131.02%, #FFE24A 131.9%);color:var(--emw--color-typography, #1E1638);border-radius:99px;min-width:88px;height:32px;font-size:14px;font-weight:700;position:relative;font-family:"Montserrat", sans-serif}.ChallengeJoinButton.Joined{background:linear-gradient(98.25deg, #FF9400 22.48%, #FEF746 131.02%, #FFE24A 131.9%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.ChallengeJoinButton.Joined::before{border-radius:99px}.ChallengesListEmpty{padding:20px 32px}.ChallengesListEmpty h2{margin:0 0 16px 0;text-align:center;font-weight:600;font-size:20px;line-height:24px;font-family:"Montserrat", sans-serif;color:var(--emw--color-typography, #FFFFFF)}.ChallengesListEmpty p{font-size:14px;line-height:17px;color:var(--emw--color-gray-100, #BBB9C3)}.ChallengeCountdown{color:var(--emw--color-gray-100, #BBB9C3);font-size:12px;line-height:12px}.ChallengesTooltipBackdrop{padding:48px 30px 0;position:absolute;width:100%;height:100%;inset:0;background-color:rgba(0, 0, 0, 0.5)}.ChallengesTooltipBackdrop .ChallengesTooltip{border:1px solid var(--emw--button-border-color, #403956);background-color:var(--emw--color-background, #1E1638);border-radius:8px;padding:32px;font-size:14px;line-height:17px;color:var(--emw--color-gray-100, #BBB9C3);position:relative}.ChallengesTooltipBackdrop .ChallengesTooltip .ChallengesIconButton{top:12px;right:6px;position:absolute}.ChallengesListPopup.Tablet .ChallengesListPopupHeader,.ChallengesListPopup.Desktop .ChallengesListPopupHeader{padding-top:16px}.ChallengesListPopup.Tablet .ChallengesListPopupHeaderName,.ChallengesListPopup.Desktop .ChallengesListPopupHeaderName{font-size:16px;line-height:16px}.ChallengesListPopup.Tablet .ChallengesIconButton,.ChallengesListPopup.Desktop .ChallengesIconButton{width:24px;height:24px}.ChallengesListPopup.Tablet .ChallengesList,.ChallengesListPopup.Desktop .ChallengesList{padding:20px 24px 0;row-gap:20px}.ChallengesListPopup.Tablet .ChallengeCardHeader,.ChallengesListPopup.Desktop .ChallengeCardHeader{margin-bottom:16px}.ChallengesListPopup.Tablet .ChallengeName,.ChallengesListPopup.Desktop .ChallengeName{line-height:27px;font-size:22px}.ChallengesListPopup.Tablet .ChallengeJoinButton,.ChallengesListPopup.Desktop .ChallengeJoinButton{min-width:100px;height:36px;font-size:16px}.ChallengesListPopup.Tablet .ChallengeCountdown,.ChallengesListPopup.Desktop .ChallengeCountdown{font-size:14px;line-height:14px}.ChallengesListPopup.Tablet .ChallengesTooltip,.ChallengesListPopup.Desktop .ChallengesTooltip{padding:60px 65px;font-size:16px;line-height:20px}.ChallengesListPopup.Tablet .ChallengesTooltip .ChallengesIconButton,.ChallengesListPopup.Desktop .ChallengesTooltip .ChallengesIconButton{top:24px;right:24px}';export{j as casino_engagement_suite_challenges_list}