@everymatrix/casino-challenge-card 1.77.5 → 1.77.7

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 (31) hide show
  1. package/dist/casino-challenge-card/casino-challenge-card-f02ce133.js +1 -0
  2. package/dist/casino-challenge-card/casino-challenge-card.entry.js +1 -1
  3. package/dist/casino-challenge-card/casino-challenge-card.esm.js +1 -1
  4. package/dist/casino-challenge-card/index-98abeec4.js +2 -0
  5. package/dist/casino-challenge-card/index.esm.js +1 -1
  6. package/dist/cjs/casino-challenge-card-1f059b3e.js +505 -0
  7. package/dist/cjs/casino-challenge-card.cjs.entry.js +2 -2
  8. package/dist/cjs/casino-challenge-card.cjs.js +2 -2
  9. package/dist/cjs/{index-4b50b479.js → index-c337b778.js} +25 -1
  10. package/dist/cjs/index.cjs.js +2 -2
  11. package/dist/cjs/loader.cjs.js +2 -2
  12. package/dist/collection/assets/finish.svg +7 -0
  13. package/dist/collection/assets/trophy.svg +14 -0
  14. package/dist/collection/components/casino-challenge-card/casino-challenge-card.css +129 -5
  15. package/dist/collection/components/casino-challenge-card/casino-challenge-card.js +193 -14
  16. package/dist/collection/utils/locale.utils.js +35 -5
  17. package/dist/collection/utils/types.js +25 -5
  18. package/dist/esm/casino-challenge-card-f02ce133.js +503 -0
  19. package/dist/esm/casino-challenge-card.entry.js +2 -2
  20. package/dist/esm/casino-challenge-card.js +3 -3
  21. package/dist/esm/{index-d72835d2.js → index-98abeec4.js} +25 -1
  22. package/dist/esm/index.js +2 -2
  23. package/dist/esm/loader.js +3 -3
  24. package/dist/types/components/casino-challenge-card/casino-challenge-card.d.ts +26 -1
  25. package/dist/types/components.d.ts +32 -0
  26. package/dist/types/utils/types.d.ts +17 -7
  27. package/package.json +1 -1
  28. package/dist/casino-challenge-card/casino-challenge-card-1c0b899b.js +0 -1
  29. package/dist/casino-challenge-card/index-d72835d2.js +0 -2
  30. package/dist/cjs/casino-challenge-card-e1c638cc.js +0 -349
  31. package/dist/esm/casino-challenge-card-1c0b899b.js +0 -347
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const casinoChallengeCard = require('./casino-challenge-card-e1c638cc.js');
6
- require('./index-4b50b479.js');
5
+ const casinoChallengeCard = require('./casino-challenge-card-1f059b3e.js');
6
+ require('./index-c337b778.js');
7
7
 
8
8
 
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-4b50b479.js');
5
+ const index = require('./index-c337b778.js');
6
6
  const appGlobals = require('./app-globals-3a1e7e63.js');
7
7
 
8
8
  /*
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["casino-challenge-card.cjs",[[1,"casino-challenge-card",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"challenge":[16],"tooltipIndex":[32],"timeLeft":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
22
+ return index.bootstrapLazy([["casino-challenge-card.cjs",[[1,"casino-challenge-card",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"domain":[513],"session":[513],"challenge":[16],"isUserAuthorized":[516,"is-user-authorized"],"tooltipIndex":[32],"timeLeft":[32],"error":[32],"hasError":[32],"actionLoading":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'casino-challenge-card';
24
- const BUILD = /* casino-challenge-card */ { 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: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, 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: false, 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: false, vdomText: true, vdomXlink: false, watchCallback: true };
24
+ const BUILD = /* casino-challenge-card */ { 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: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, 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
@@ -295,6 +295,9 @@ var Host = {};
295
295
  var isHost = (node) => node && node.$tag$ === Host;
296
296
  var parsePropertyValue = (propValue, propType) => {
297
297
  if (propValue != null && !isComplexType(propValue)) {
298
+ if (propType & 4 /* Boolean */) {
299
+ return propValue === "false" ? false : propValue === "" || !!propValue;
300
+ }
298
301
  if (propType & 1 /* String */) {
299
302
  return String(propValue);
300
303
  }
@@ -399,6 +402,27 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
399
402
  const newClasses = parseClassList(newValue);
400
403
  classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
401
404
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
405
+ } else if (memberName === "style") {
406
+ {
407
+ for (const prop in oldValue) {
408
+ if (!newValue || newValue[prop] == null) {
409
+ if (prop.includes("-")) {
410
+ elm.style.removeProperty(prop);
411
+ } else {
412
+ elm.style[prop] = "";
413
+ }
414
+ }
415
+ }
416
+ }
417
+ for (const prop in newValue) {
418
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
419
+ if (prop.includes("-")) {
420
+ elm.style.setProperty(prop, newValue[prop]);
421
+ } else {
422
+ elm.style[prop] = newValue[prop];
423
+ }
424
+ }
425
+ }
402
426
  } else if (memberName === "key") ; else if (memberName === "ref") {
403
427
  if (newValue) {
404
428
  newValue(elm);
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const casinoChallengeCard = require('./casino-challenge-card-e1c638cc.js');
6
- require('./index-4b50b479.js');
5
+ const casinoChallengeCard = require('./casino-challenge-card-1f059b3e.js');
6
+ require('./index-c337b778.js');
7
7
 
8
8
 
9
9
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-4b50b479.js');
5
+ const index = require('./index-c337b778.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-challenge-card.cjs",[[1,"casino-challenge-card",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"challenge":[16],"tooltipIndex":[32],"timeLeft":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
11
+ return index.bootstrapLazy([["casino-challenge-card.cjs",[[1,"casino-challenge-card",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"domain":[513],"session":[513],"challenge":[16],"isUserAuthorized":[516,"is-user-authorized"],"tooltipIndex":[32],"timeLeft":[32],"error":[32],"hasError":[32],"actionLoading":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
12
12
  };
13
13
 
14
14
  exports.setNonce = index.setNonce;
@@ -0,0 +1,7 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1.64454 12.1262C1.59842 12.1279 1.55129 12.1227 1.50432 12.1099C1.25757 12.0421 1.11249 11.7872 1.18022 11.5403L3.53016 2.9587C3.59791 2.7121 3.85222 2.56674 4.09973 2.6346C4.34647 2.70234 4.49155 2.95727 4.42382 3.20416L2.07388 11.7858C2.01902 11.9855 1.84123 12.1188 1.64454 12.1262Z" fill="#36BA3B"/>
3
+ <path d="M1.56304 11.2634C1.54768 11.2639 1.53198 11.2622 1.51633 11.2579C1.43414 11.2354 1.38582 11.1505 1.40838 11.0682L3.65813 2.91503C3.68069 2.83289 3.76541 2.78447 3.84785 2.80707C3.93004 2.82963 3.97837 2.91455 3.9558 2.99679L1.70605 11.15C1.68778 11.2165 1.62856 11.2609 1.56304 11.2634Z" fill="#BCFCB1" fill-opacity="0.1"/>
4
+ <path d="M12.5193 12.7932L10.7261 13.0234C9.36173 13.1986 7.97361 12.7222 7.09339 11.6652L7.04779 11.6104C6.32843 10.7466 5.30931 10.1654 4.18656 10.1091L2.36239 10.0176L2.30469 9.95988L4.22969 3.18457L6.09312 3.28367C7.22169 3.34368 8.27297 3.87562 8.98981 4.74935C9.86892 5.82087 11.2377 6.36445 12.6124 6.18798L14.3382 5.89767L14.3866 5.96023L12.5193 12.7932Z" fill="#BCFCB1" fill-opacity="0.1"/>
5
+ <path d="M12.4616 12.7356L10.6684 12.9658C9.30403 13.1409 7.94476 12.6069 7.06454 11.5499L7.01894 11.4951C6.29958 10.6312 5.25161 10.1078 4.12886 10.0514L2.30469 9.95996L4.17199 3.12695L6.03542 3.22605C7.16399 3.28607 8.21528 3.818 8.93211 4.69174C9.81122 5.76326 11.18 6.30683 12.5547 6.13036L14.3289 5.90261L12.4616 12.7356Z" fill="#BEFFBA"/>
6
+ <path d="M10.4846 10.7164C10.0913 10.6853 9.70239 10.6038 9.33368 10.4595C8.81235 10.2552 8.34237 9.93721 7.94891 9.54046L8.58169 7.22503C8.97607 7.62191 9.44687 7.93989 9.96914 8.14388C10.3368 8.28753 10.7242 8.37375 11.1163 8.40495L10.4846 10.7164ZM5.64507 7.93902C5.36858 7.86283 5.08321 7.81464 4.79278 7.79918L2.93018 7.70004L3.56313 5.38386L5.42739 5.48301C5.7173 5.4984 6.00215 5.54649 6.27815 5.62252L5.64507 7.93902ZM8.94137 4.68682C9.02168 4.78473 9.10835 4.87553 9.19648 4.96447L9.19225 4.96335L8.57806 7.21077C8.50279 7.13454 8.42536 7.06039 8.35634 6.97819L8.32704 6.94284C7.79735 6.29722 7.08036 5.838 6.28696 5.61781L6.90329 3.36255C7.69621 3.58192 8.41068 4.03999 8.94137 4.68682ZM7.07378 11.5449L7.02819 11.4902C6.50536 10.8623 5.80786 10.4173 5.0353 10.1978L5.65007 7.94823C6.44204 8.16795 7.15774 8.62634 7.68651 9.27083L7.71144 9.30098C7.78284 9.38629 7.86277 9.46347 7.94086 9.54239L7.32104 11.8104C7.2359 11.7251 7.15173 11.6385 7.07378 11.5449ZM12.4709 12.7307L10.6776 12.9609C10.5064 12.9829 10.3351 12.9937 10.165 12.9937C10.0674 12.9937 9.97087 12.9847 9.87413 12.9777L10.4888 10.7288C10.5929 10.7369 10.6973 10.7433 10.8018 10.7433C10.9723 10.7433 11.1429 10.7325 11.3123 10.7107L13.0851 10.4831L12.4709 12.7307ZM13.7221 8.15218L11.9464 8.38012C11.6741 8.41488 11.3997 8.4143 11.127 8.39329L11.7425 6.14108C11.8452 6.149 11.9476 6.15825 12.0512 6.15825C12.2215 6.15825 12.3926 6.14744 12.5639 6.12544L14.3382 5.89769L13.7221 8.15218Z" fill="#36BA3B"/>
7
+ </svg>
@@ -0,0 +1,14 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.62874 10.125V11.2633C8.62874 11.2633 8.14417 11.7632 5.99992 11.7632C3.85566 11.7632 3.37109 11.2633 3.37109 11.2633V10.125H8.62874Z" fill="#E6A45E"/>
3
+ <path d="M8.6288 10.125V11.2633C8.6288 11.2633 8.14423 11.7632 5.99998 11.7632C5.28331 11.7632 4.75205 11.7073 4.3623 11.633C6.31612 11.7594 8.6288 10.125 8.6288 10.125Z" fill="#D8924E"/>
4
+ <path d="M4.8869 9.57471C3.99141 9.67153 3.37109 9.88156 3.37109 10.1251C3.37109 10.4605 4.54806 10.7324 5.99992 10.7324C7.45178 10.7324 8.62874 10.4605 8.62874 10.1251C8.62874 9.88158 8.00854 9.67157 7.1132 9.57474L4.8869 9.57471Z" fill="#FFEDCC"/>
5
+ <path d="M5.43106 7.11426V8.27946C5.43106 9.03276 4.96633 9.70796 4.2627 9.97695C4.2627 9.97695 4.64567 10.2819 6.00023 10.2819C7.35479 10.2819 7.73776 9.97695 7.73776 9.97695C7.03413 9.70796 6.56939 9.03276 6.56939 8.27946V7.11426H5.43106Z" fill="#F7D17F"/>
6
+ <path d="M2.91406 0.783691C2.91406 4.31267 3.6012 7.34873 5.99994 7.34873C8.39867 7.34873 9.08581 4.31267 9.08581 0.783691H2.91406Z" fill="#EAB166"/>
7
+ <path d="M2.94436 2.00277H1.15709C1.05906 2.00277 0.986632 2.09167 1.00707 2.18755C1.14083 2.8152 1.71065 4.85364 3.54097 5.34559L3.85578 6.01533C1.21086 5.36629 0.532426 3.12561 0.358406 2.02205C0.306761 1.69454 0.553763 1.39795 0.885321 1.39795H2.92152L2.94436 2.00277Z" fill="#F7D17F"/>
8
+ <path d="M9.05594 2.00277H10.8432C10.9412 2.00277 11.0137 2.09167 10.9932 2.18755C10.8595 2.8152 10.2897 4.85364 8.45934 5.34559L8.14453 6.01533C10.7894 5.36629 11.4679 3.12561 11.6419 2.02205C11.6935 1.69454 11.4465 1.39795 11.115 1.39795H9.07879L9.05594 2.00277Z" fill="#F7D17F"/>
9
+ <path d="M5.99994 1.32617C7.70422 1.32617 9.08581 1.08231 9.08581 0.781495C9.08581 0.480677 7.70422 0.236816 5.99994 0.236816C4.29565 0.236816 2.91406 0.480677 2.91406 0.781495C2.91406 1.08231 4.29565 1.32617 5.99994 1.32617Z" fill="#E6A45E"/>
10
+ <path d="M8.82366 0.783691C7.89819 7.01684 4.61577 6.57617 4.19092 6.49858C4.6415 7.0368 5.23301 7.34872 6.00043 7.34872C8.39916 7.34872 9.0863 4.31267 9.0863 0.783691H8.82366Z" fill="#E6A45E"/>
11
+ <path d="M4.6424 0.293457C3.62008 0.382063 2.91406 0.566744 2.91406 0.781365C2.91406 1.00194 3.65879 1.19121 4.72717 1.27675C4.6758 0.950781 4.64651 0.622219 4.6424 0.293457Z" fill="#D8924E"/>
12
+ <path d="M6.22548 2.60369L6.3949 3.12511C6.42662 3.22275 6.51761 3.28886 6.62027 3.28886H7.16853C7.39809 3.28886 7.49354 3.58261 7.30782 3.71755L6.86427 4.03981C6.78121 4.10015 6.74646 4.20711 6.77818 4.30475L6.94761 4.82618C7.01854 5.0445 6.76866 5.22606 6.58294 5.09112L6.13939 4.76886C6.05633 4.70852 5.94387 4.70852 5.86081 4.76886L5.41726 5.09112C5.23154 5.22606 4.98165 5.0445 5.05259 4.82618L5.22201 4.30475C5.25374 4.20711 5.21898 4.10015 5.13593 4.03981L4.69238 3.71755C4.50666 3.58261 4.6021 3.28886 4.83167 3.28886H5.37993C5.48259 3.28886 5.57358 3.22275 5.6053 3.12511L5.77472 2.60369C5.84566 2.38536 6.15454 2.38536 6.22548 2.60369Z" fill="#D8924E"/>
13
+ <path d="M6.22548 2.50994L6.3949 3.03136C6.42662 3.129 6.51761 3.19511 6.62027 3.19511H7.16853C7.39809 3.19511 7.49354 3.48886 7.30782 3.6238L6.86427 3.94606C6.78121 4.0064 6.74646 4.11336 6.77818 4.211L6.94761 4.73243C7.01854 4.95075 6.76866 5.13231 6.58294 4.99737L6.13939 4.67511C6.05633 4.61477 5.94387 4.61477 5.86081 4.67511L5.41726 4.99737C5.23154 5.13231 4.98165 4.95075 5.05259 4.73243L5.22201 4.211C5.25374 4.11336 5.21898 4.0064 5.13593 3.94606L4.69238 3.6238C4.50666 3.48886 4.6021 3.19511 4.83167 3.19511H5.37993C5.48259 3.19511 5.57358 3.129 5.6053 3.03136L5.77472 2.50994C5.84566 2.29161 6.15454 2.29161 6.22548 2.50994Z" fill="#FFEDCC"/>
14
+ </svg>
@@ -6,7 +6,7 @@
6
6
  box-sizing: border-box;
7
7
  position: relative;
8
8
  }
9
- @container challenge-list (max-width: 576px) {
9
+ @container challenges-container (max-width: 576px) {
10
10
  .card {
11
11
  width: 100%;
12
12
  }
@@ -20,11 +20,14 @@
20
20
  height: 200px;
21
21
  border-radius: 16px 16px 0 0;
22
22
  }
23
- @container challenge-list (max-width: 576px) {
23
+ @container challenges-container (max-width: 576px) {
24
24
  .card__image {
25
25
  height: 224px;
26
26
  }
27
27
  }
28
+ .card__image.grayed {
29
+ opacity: 0.6;
30
+ }
28
31
  .card__title {
29
32
  color: var(--emw--color-white, #FFFFFF);
30
33
  font-size: var(--emw--font-size-medium, 16px);
@@ -49,9 +52,36 @@
49
52
  border-color: var(--emw--color-secondary, #e9931e);
50
53
  cursor: pointer;
51
54
  }
55
+ .card__button.filled {
56
+ background-color: var(--emw--button-background-primary-color, #18CE51);
57
+ color: var(--emw--color-white, #FFFFFF);
58
+ border-color: var(--emw--color-gray-300, #083B17);
59
+ }
60
+ .card__button.filled:hover {
61
+ color: var(--emw--color-gray-300, #083B17);
62
+ border-color: transparent;
63
+ box-shadow: 0 0 4px 0 rgba(188, 252, 177, 0.2), 0 0 20px 0 rgba(0, 183, 79, 0.5);
64
+ }
65
+ .card__button.grayed {
66
+ color: var(--emw--color-gray-50, #E2E2E2);
67
+ }
68
+ .card__button.grayed:hover {
69
+ color: var(--emw--color-white, #FFFFFF);
70
+ border-color: var(--emw--button-primary-border, #24B24E);
71
+ }
72
+ .card__button:hover {
73
+ border-color: var(--emw--color-secondary, #e9931e);
74
+ cursor: pointer;
75
+ }
76
+ .card__button:disabled, .card__button:disabled:hover {
77
+ color: var(--emw--color-gray-50, #E2E2E2);
78
+ cursor: not-allowed;
79
+ border: 2px solid var(--emw--button-border-color, #727672);
80
+ opacity: 0.7;
81
+ }
52
82
  .card__badge {
53
83
  position: absolute;
54
- background: white;
84
+ background: var(--emw--color-white, #FFFFFF);
55
85
  top: 6px;
56
86
  right: 6px;
57
87
  border-radius: 30px;
@@ -59,12 +89,36 @@
59
89
  line-height: 22px;
60
90
  font-weight: var(--emw--font-weight-medium, 500);
61
91
  font-size: var(--emw--font-size-x-small, 12px);
62
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
92
+ box-shadow: 0 4px 4px 0 var(--emw--button-box-shadow-color, rgba(0, 0, 0, 0.25));
63
93
  backdrop-filter: blur(20px);
94
+ box-sizing: border-box;
64
95
  }
65
96
  .card__badge span {
66
97
  font-weight: var(--emw--font-weight-bold, 700);
67
98
  }
99
+ .card__badge.expired {
100
+ background: var(--emw--background-gray-color, rgba(250, 250, 250, 0.5019607843));
101
+ border: 1px solid var(--emw--border-gray-color, #292C29);
102
+ font-weight: 700;
103
+ }
104
+ .card__badge.completed {
105
+ background: var(--emw--background-success-color, #C9F0D7);
106
+ border: 1px solid var(--emw--border-success-color, #00B74F);
107
+ color: var(--emw--color-gray-300, #083B17);
108
+ font-weight: 700;
109
+ }
110
+ .card__badge.forfeited {
111
+ background: var(--emw--background-errored-color, #FFE1DF);
112
+ border: 1px solid var(--emw--border-errored-color, #D6421E);
113
+ color: var(--emw--errored-color, #850606);
114
+ font-weight: 700;
115
+ }
116
+ .card__badge.paused {
117
+ background: var(--emw--background-warning-color, #F8E4AD);
118
+ border: 1px solid var(--emw--border-warning-color, #EA9018);
119
+ color: var(--emw--warning-color, #6D460A);
120
+ font-weight: 700;
121
+ }
68
122
 
69
123
  .info-item {
70
124
  line-height: 24px;
@@ -72,7 +126,7 @@
72
126
  font-weight: var(--emw--font-weight-bold, 700);
73
127
  color: var(--emw--color-primary, #1dbf51);
74
128
  }
75
- @container challenge-list (min-width: 576px) {
129
+ @container challenges-container (min-width: 576px) {
76
130
  .info-item {
77
131
  white-space: nowrap;
78
132
  overflow: hidden;
@@ -80,6 +134,9 @@
80
134
  vertical-align: bottom;
81
135
  }
82
136
  }
137
+ .info-item.grayed {
138
+ color: var(--emw--disabled-color, #727672);
139
+ }
83
140
  .info-item__label {
84
141
  font-weight: var(--emw--font-weight-medium, 500);
85
142
  margin-right: 3px;
@@ -110,4 +167,71 @@
110
167
  width: 0;
111
168
  height: 0;
112
169
  z-index: 201;
170
+ }
171
+
172
+ .progress {
173
+ background-color: var(--emw--progress-background, rgba(188, 252, 177, 0.1019607843));
174
+ border-radius: 100px;
175
+ height: 20px;
176
+ margin-bottom: 10px;
177
+ position: relative;
178
+ align-content: center;
179
+ padding: 0 2px;
180
+ box-sizing: border-box;
181
+ }
182
+ .progress.paused {
183
+ opacity: 0.5;
184
+ }
185
+ .progress.grayed {
186
+ mix-blend-mode: luminosity;
187
+ }
188
+ .progress__placeholder {
189
+ height: 20px;
190
+ }
191
+ .progress__icon {
192
+ padding-top: 4px;
193
+ }
194
+ .progress__point {
195
+ position: absolute;
196
+ text-align: center;
197
+ font-size: 12px;
198
+ color: var(--emw--color-gray-150, #C8D6CE);
199
+ font-weight: 700;
200
+ line-height: 19px;
201
+ top: 0;
202
+ height: 19px;
203
+ width: 19px;
204
+ border-radius: 50%;
205
+ }
206
+ .progress__point.start {
207
+ left: 0;
208
+ border: 2px solid var(--emw--button-background-primary-color, #18CE51);
209
+ background: linear-gradient(90deg, var(--emw--progress-active-level, #24AA4D) 0%, var(--emw--progress-active-level-secondary, #113F21) 100%);
210
+ }
211
+ .progress__point.end {
212
+ right: 0;
213
+ border: 2px solid var(--emw--dark-green, #1C8D56);
214
+ background: var(--emw--color-gray-300, #083B17);
215
+ opacity: 0.7;
216
+ }
217
+ .progress__point.finished {
218
+ opacity: 1;
219
+ }
220
+ .progress__point.hidden {
221
+ opacity: 0;
222
+ }
223
+ .progress__bar {
224
+ border-radius: 73px;
225
+ height: 16px;
226
+ background: linear-gradient(90deg, var(--emw--secondary-green, #1E654F) 0%, var(--emw--dark-green, #1C8D56) 100%);
227
+ text-align: end;
228
+ color: var(--emw--color-gray-50, #E2E2E2);
229
+ font-size: 11px;
230
+ font-weight: 700;
231
+ line-height: 16px;
232
+ padding-right: 6px;
233
+ box-sizing: border-box;
234
+ }
235
+ .progress__bar.finished {
236
+ text-align: center;
113
237
  }
@@ -1,8 +1,10 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { resolveTranslationUrl, translate } from "../../utils/locale.utils";
3
- import { EChallengeLevelTargetType } from "../../utils/types";
3
+ import { ChallengeStatusDictionary, EChallengeLevelTargetType, EChallengeProgressStatus, EChallengeStatus } from "../../utils/types";
4
4
  import { getTimeLeft } from "../../utils/utils";
5
5
  import { setClientStyling, setClientStylingURL, setStreamStyling } from "../../../../../../../../libs/common/src/styling/index";
6
+ import finishIcon from "../../assets/finish.svg";
7
+ import trophyIcon from "../../assets/trophy.svg";
6
8
  export class CasinoChallengeCard {
7
9
  constructor() {
8
10
  this.calculateTargetValue = (level, currencySymbol) => {
@@ -29,28 +31,61 @@ export class CasinoChallengeCard {
29
31
  this.onMouseLeaveHandler = () => {
30
32
  this.tooltipIndex = null;
31
33
  };
34
+ this.getBadgeContent = () => {
35
+ switch (this.challenge.Status) {
36
+ case EChallengeStatus.Expired:
37
+ return translate('expired', this.language);
38
+ case EChallengeStatus.Forfeited:
39
+ return translate('forfeited', this.language);
40
+ case EChallengeStatus.Completed:
41
+ return translate('finished', this.language);
42
+ case EChallengeStatus.Paused:
43
+ return translate('suspended', this.language);
44
+ default:
45
+ return this.timeLeft
46
+ ? [translate('endsIn', this.language), ' - ', h("span", null, this.timeLeft)]
47
+ : translate('expired', this.language);
48
+ }
49
+ };
50
+ this.checkAttrs = () => {
51
+ if (!this.endpoint) {
52
+ this.error = 'Endpoint is missing! Please provide a valid endpointURL.';
53
+ this.hasError = true;
54
+ console.error(this.error);
55
+ }
56
+ return this.hasError;
57
+ };
32
58
  this.mbSource = undefined;
33
59
  this.clientStyling = undefined;
34
60
  this.clientStylingUrl = undefined;
35
61
  this.translationUrl = '';
36
62
  this.language = 'en';
63
+ this.endpoint = '';
64
+ this.domain = '';
65
+ this.session = '';
37
66
  this.challenge = undefined;
67
+ this.isUserAuthorized = true;
38
68
  this.tooltipIndex = null;
39
69
  this.timeLeft = undefined;
70
+ this.error = '';
71
+ this.hasError = false;
72
+ this.actionLoading = false;
40
73
  }
41
74
  get infoItems() {
42
- var _a, _b, _c, _d;
43
- const level1 = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses.find((x) => x.OrderNumber === 0);
44
- if (level1) {
45
- const rewardValue = (_b = level1.Rewards) === null || _b === void 0 ? void 0 : _b.slice(0, 2).map((r) => r.RewardDescription).join(' + ');
75
+ var _a, _b, _c, _d, _e;
76
+ const level = this.isUserAuthorized
77
+ ? (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses.find((x) => x.ProgressStatus === EChallengeProgressStatus.InProgress)
78
+ : (_b = this.challenge) === null || _b === void 0 ? void 0 : _b.LevelProgresses.find((x) => x.OrderNumber === 0);
79
+ if (level) {
80
+ const rewardValue = (_c = level.Rewards) === null || _c === void 0 ? void 0 : _c.slice(0, 2).map((r) => r.RewardDescription).join(' + ');
46
81
  return [
47
82
  {
48
83
  lable: translate('totalLevels', this.language),
49
- value: (_c = this.challenge.LevelProgresses) === null || _c === void 0 ? void 0 : _c.length
84
+ value: (_d = this.challenge.LevelProgresses) === null || _d === void 0 ? void 0 : _d.length
50
85
  },
51
86
  {
52
87
  lable: translate('level1', this.language),
53
- value: this.calculateTargetValue(level1, (_d = this.challenge) === null || _d === void 0 ? void 0 : _d.CurrencySymbol)
88
+ value: this.calculateTargetValue(level, (_e = this.challenge) === null || _e === void 0 ? void 0 : _e.CurrencySymbol)
54
89
  },
55
90
  {
56
91
  lable: translate('get', this.language),
@@ -111,16 +146,85 @@ export class CasinoChallengeCard {
111
146
  }
112
147
  }
113
148
  renderInfoItem(item, index) {
114
- return (h("div", { class: "info-item", onMouseEnter: (e) => this.onMouseEnterHandler(index, e.currentTarget), onMouseLeave: this.onMouseLeaveHandler }, h("span", { class: "info-item__label" }, item.lable), item.value, this.tooltipIndex === index && h("div", { class: "info-item__tooltip" }, item.value)));
149
+ return (h("div", { class: `info-item ${this.isChallengeGrayed}`, onMouseEnter: (e) => this.onMouseEnterHandler(index, e.currentTarget), onMouseLeave: this.onMouseLeaveHandler }, h("span", { class: "info-item__label" }, item.lable), item.value, this.tooltipIndex === index && h("div", { class: "info-item__tooltip" }, item.value)));
115
150
  }
116
- renderCardBadge() {
117
- return (h("div", { class: "card__badge" }, this.timeLeft
118
- ? [translate('endsIn', this.language), ' - ', h("span", null, this.timeLeft)]
119
- : translate('expired', this.language)));
151
+ get getCardBadge() {
152
+ return (h("div", { class: `card__badge ${ChallengeStatusDictionary[this.challenge.Status]}` }, this.getBadgeContent()));
153
+ }
154
+ get isChallengeGrayed() {
155
+ return [EChallengeStatus.Expired, EChallengeStatus.Forfeited, EChallengeStatus.Completed].includes(this.challenge.Status)
156
+ ? 'grayed'
157
+ : '';
158
+ }
159
+ get getChallengeProgress() {
160
+ var _a;
161
+ const currLevel = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses.find((x) => x.ProgressStatus === EChallengeProgressStatus.InProgress);
162
+ if (!this.isUserAuthorized || !currLevel)
163
+ return null;
164
+ const { Status, LevelProgresses } = this.challenge;
165
+ if (Status === EChallengeStatus.Expired || Status === EChallengeStatus.Started) {
166
+ return h("div", { class: "progress__placeholder" });
167
+ }
168
+ const barValue = Status === EChallengeStatus.Paused
169
+ ? translate('suspended', this.language)
170
+ : Status === EChallengeStatus.Completed
171
+ ? translate('finished', this.language)
172
+ : `${currLevel.ProgressPercentage}%`;
173
+ const isLastLevel = !LevelProgresses.some((x) => x.OrderNumber > currLevel.OrderNumber);
174
+ const secondImgSrc = Status === EChallengeStatus.Completed ? trophyIcon : isLastLevel ? finishIcon : '';
175
+ return (h("div", { class: {
176
+ progress: true,
177
+ paused: Status === EChallengeStatus.Paused,
178
+ grayed: Status === EChallengeStatus.Forfeited
179
+ } }, h("div", { class: {
180
+ progress__point: true,
181
+ start: true,
182
+ hidden: Status === EChallengeStatus.Completed
183
+ } }, currLevel.OrderNumber + 1), h("div", { class: {
184
+ progress__bar: true,
185
+ finished: Status === EChallengeStatus.Completed
186
+ }, style: { width: `${currLevel.ProgressPercentage}%` } }, barValue), h("div", { class: {
187
+ progress__point: true,
188
+ end: true,
189
+ finished: Status === EChallengeStatus.Completed
190
+ } }, secondImgSrc ? h("img", { class: "progress__icon", src: secondImgSrc }) : currLevel.OrderNumber + 2)));
191
+ }
192
+ get getCardButton() {
193
+ if (this.isUserAuthorized) {
194
+ if (this.challenge.Status === EChallengeStatus.Started) {
195
+ return (h("button", { class: "card__button filled", disabled: this.actionLoading, onClick: () => this.joinUnjoinProgress(true) }, translate('start', this.language)));
196
+ }
197
+ if (this.challenge.Status === EChallengeStatus.Paused) {
198
+ return (h("button", { class: "card__button grayed", disabled: this.actionLoading, onClick: () => this.joinUnjoinProgress(true) }, translate('resume', this.language)));
199
+ }
200
+ if (this.challenge.Status === EChallengeStatus.InProgress ||
201
+ this.challenge.Status === EChallengeStatus.PendingLevelReward) {
202
+ return (h("button", { class: "card__button grayed", disabled: this.actionLoading, onClick: () => this.joinUnjoinProgress(false) }, translate('pause', this.language)));
203
+ }
204
+ }
205
+ return h("button", { class: "card__button" }, translate('viewDetails', this.language));
206
+ }
207
+ async joinUnjoinProgress(join) {
208
+ var _a;
209
+ const progress = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses.find((x) => x.ProgressStatus === EChallengeProgressStatus.InProgress);
210
+ if (!this.checkAttrs()) {
211
+ const url = `${this.endpoint}/challenge/ChangeProgressStatus`;
212
+ const body = Object.assign(Object.assign({ DomainId: this.domain }, (this.session && { PlayerSessionId: this.session })), (join ? { ProgressToActivate: progress.LevelId } : { ProgressToDeactivate: progress.LevelId }));
213
+ this.actionLoading = true;
214
+ return fetch(url, {
215
+ method: 'POST',
216
+ headers: {
217
+ 'Content-Type': 'application/json'
218
+ },
219
+ body: JSON.stringify(body)
220
+ })
221
+ .then((res) => res.json())
222
+ .finally(() => (this.actionLoading = false));
223
+ }
120
224
  }
121
225
  render() {
122
226
  var _a, _b, _c, _d;
123
- return (h("div", { key: '5df3a2d368e6057d1b47cf5d4766126406c4afc8', ref: (el) => (this.stylingContainer = el) }, h("div", { key: 'de708f82c0fbe5324419fafcb395f115c020d021', class: "card" }, h("img", { key: '209c1f05bb70c3182b4ff6211e7c9398999b30fc', class: "card__image", src: (_b = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengePresentation) === null || _b === void 0 ? void 0 : _b.Url }), this.renderCardBadge(), h("div", { key: 'aa3a5f3eee8bdb7c2606bc8a232c441ff4a22006', class: "card__content" }, h("h1", { key: '524933e67d8eac476d678aee9f2643b6ac1449ff', class: "card__title" }, (_d = (_c = this.challenge) === null || _c === void 0 ? void 0 : _c.ChallengePresentation) === null || _d === void 0 ? void 0 : _d.PresentationName), this.infoItems.map((x, index) => this.renderInfoItem(x, index)), h("button", { key: '52fec7d22602a2757c1a36238fb0b797f6bb4306', class: "card__button" }, translate('viewDetails', this.language))))));
227
+ return (h("div", { key: '3405a652d64b5a9d1bc2f43ff226abfefb359158', ref: (el) => (this.stylingContainer = el) }, h("div", { key: 'a84228899e4845a36fa94b11b4e8d5b1fcbc0ae7', class: "card" }, h("img", { key: 'a4b6b6f8161f1184442b1e12c510254323b91e1a', class: `card__image ${this.isChallengeGrayed}`, src: (_b = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengePresentation) === null || _b === void 0 ? void 0 : _b.Url }), this.getCardBadge, h("div", { key: '7d24cf5cdec35ab541989308811c12d1d665c891', class: "card__content" }, h("h1", { key: 'b9e045fd05580d001be012903938102dbbc64128', class: "card__title" }, (_d = (_c = this.challenge) === null || _c === void 0 ? void 0 : _c.ChallengePresentation) === null || _d === void 0 ? void 0 : _d.PresentationName), this.getChallengeProgress, this.infoItems.map((x, index) => this.renderInfoItem(x, index)), this.getCardButton))));
124
228
  }
125
229
  static get is() { return "casino-challenge-card"; }
126
230
  static get encapsulation() { return "shadow"; }
@@ -223,6 +327,60 @@ export class CasinoChallengeCard {
223
327
  "reflect": true,
224
328
  "defaultValue": "'en'"
225
329
  },
330
+ "endpoint": {
331
+ "type": "string",
332
+ "mutable": false,
333
+ "complexType": {
334
+ "original": "string",
335
+ "resolved": "string",
336
+ "references": {}
337
+ },
338
+ "required": false,
339
+ "optional": false,
340
+ "docs": {
341
+ "tags": [],
342
+ "text": "Client endpoint to fetch data"
343
+ },
344
+ "attribute": "endpoint",
345
+ "reflect": true,
346
+ "defaultValue": "''"
347
+ },
348
+ "domain": {
349
+ "type": "string",
350
+ "mutable": false,
351
+ "complexType": {
352
+ "original": "string",
353
+ "resolved": "string",
354
+ "references": {}
355
+ },
356
+ "required": false,
357
+ "optional": false,
358
+ "docs": {
359
+ "tags": [],
360
+ "text": "Domain Id"
361
+ },
362
+ "attribute": "domain",
363
+ "reflect": true,
364
+ "defaultValue": "''"
365
+ },
366
+ "session": {
367
+ "type": "string",
368
+ "mutable": false,
369
+ "complexType": {
370
+ "original": "string",
371
+ "resolved": "string",
372
+ "references": {}
373
+ },
374
+ "required": false,
375
+ "optional": false,
376
+ "docs": {
377
+ "tags": [],
378
+ "text": "User session Id"
379
+ },
380
+ "attribute": "session",
381
+ "reflect": true,
382
+ "defaultValue": "''"
383
+ },
226
384
  "challenge": {
227
385
  "type": "unknown",
228
386
  "mutable": false,
@@ -243,13 +401,34 @@ export class CasinoChallengeCard {
243
401
  "tags": [],
244
402
  "text": "Challenge entity"
245
403
  }
404
+ },
405
+ "isUserAuthorized": {
406
+ "type": "boolean",
407
+ "mutable": false,
408
+ "complexType": {
409
+ "original": "boolean",
410
+ "resolved": "boolean",
411
+ "references": {}
412
+ },
413
+ "required": false,
414
+ "optional": false,
415
+ "docs": {
416
+ "tags": [],
417
+ "text": "Is User authorized"
418
+ },
419
+ "attribute": "is-user-authorized",
420
+ "reflect": true,
421
+ "defaultValue": "true"
246
422
  }
247
423
  };
248
424
  }
249
425
  static get states() {
250
426
  return {
251
427
  "tooltipIndex": {},
252
- "timeLeft": {}
428
+ "timeLeft": {},
429
+ "error": {},
430
+ "hasError": {},
431
+ "actionLoading": {}
253
432
  };
254
433
  }
255
434
  static get events() {