@everymatrix/casino-challenge-card 0.1.1 → 1.77.3

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.
@@ -0,0 +1 @@
1
+ import{r as e,h as t}from"./index-fae081c3.js";const n=["ro","en","fr","ar","hr"],i={en:{totalLevels:"Total levels:",level1:"Level 1:",get:"Get:",endsIn:"Ends In",expired:"Expired",viewDetails:"View details",placeBetsOf:"Place bets of",place:"Place",bet:"bet",bets:"bets",minBet:"min bet"},ro:{totalLevels:"Niveluri totale:",level1:"Nivel 1:",get:"Obține:",endsIn:"Se termină în",expired:"Expirat",viewDetails:"Vezi detalii",placeBetsOf:"Plasează pariuri de",place:"Plasare",bet:"pariu",bets:"pariuri",minBet:"pariu minim"},fr:{totalLevels:"Niveaux totaux :",level1:"Niveau 1 :",get:"Obtenir :",endsIn:"Se termine dans",expired:"Expiré",viewDetails:"Voir les détails",placeBetsOf:"Placez des paris de",place:"Placer",bet:"pari",bets:"paris",minBet:"mise minimale"},ar:{totalLevels:"إجمالي المستويات:",level1:"المستوى 1:",get:"احصل على:",endsIn:"ينتهي في",expired:"منتهي الصلاحية",viewDetails:"عرض التفاصيل",placeBetsOf:"قم بوضع رهانات بقيمة",place:"ضع",bet:"رهان",bets:"رهانات",minBet:"الحد الأدنى للرهان"},hr:{totalLevels:"Ukupno razina:",level1:"Razina 1:",get:"Dobiti:",endsIn:"Završava za",expired:"Isteklo",viewDetails:"Pogledaj detalje",placeBetsOf:"Postavite oklade od",place:"Postavi",bet:"kladnja",bets:"kladnje",minBet:"minimalna oklada"}},a=(e,t)=>{const a=t;return i[void 0!==a&&n.includes(a)?a:"en"][e]};var o,r,l,s,d,c;function h(e,t){if(e){const n=document.createElement("style");n.innerHTML=t,e.appendChild(n)}}function p(e,t){const n=new URL(t);fetch(n.href).then((e=>e.text())).then((t=>{const n=document.createElement("style");n.innerHTML=t,e&&e.appendChild(n)})).catch((e=>{console.error("There was an error while trying to load client styling from URL",e)}))}function v(e,t){if(window.emMessageBus){const n=document.createElement("style");window.emMessageBus.subscribe(t,(t=>{n.innerHTML=t,e&&e.appendChild(n)}))}}!function(e){e[e.Accumulative=0]="Accumulative",e[e.SingleBet=1]="SingleBet",e[e.MultipleOneBetSize=2]="MultipleOneBetSize"}(o||(o={})),function(e){e[e.Single=0]="Single",e[e.Daily=1]="Daily",e[e.Weekly=2]="Weekly",e[e.Monthly=3]="Monthly"}(r||(r={})),function(e){e[e.FreeSpins=0]="FreeSpins",e[e.LuckyWheel=1]="LuckyWheel",e[e.Leaderboard=2]="Leaderboard",e[e.Challenge=3]="Challenge",e[e.Custom=4]="Custom"}(l||(l={})),function(e){e[e.Setup=0]="Setup",e[e.Active=1]="Active",e[e.Paused=2]="Paused",e[e.Closed=3]="Closed",e[e.Deleted=4]="Deleted"}(s||(s={})),function(e){e[e.GameLaunch=0]="GameLaunch",e[e.Reward=1]="Reward",e[e.Manual=2]="Manual"}(d||(d={})),function(e){e[e.Period=0]="Period",e[e.Date=1]="Date"}(c||(c={}));const u=class{constructor(t){e(this,t),this.calculateTargetValue=(e,t)=>{var n;if(!e)return"";const i=(null===(n=e.BetRange)||void 0===n?void 0:n.MinBet)?`, ${a("minBet",this.language)} ${t+e.BetRange.MinBet}`:"";switch(e.LevelTargetType){case o.Accumulative:return`${a("placeBetsOf",this.language)} ${t+e.DisplayCurrencyTargetTurnover+i}`;case o.SingleBet:return`${a("place",this.language)} ${t+e.TargetTurnover} ${a("bet",this.language)}`;case o.MultipleOneBetSize:return`${a("place",this.language)} ${e.TargetBetCount} ${a("bets",this.language)+i}`}},this.onMouseEnterHandler=(e,t)=>{t.scrollWidth>t.clientWidth&&(this.tooltipIndex=e)},this.onMouseLeaveHandler=()=>{this.tooltipIndex=null},this.mbSource=void 0,this.clientStyling=void 0,this.clientStylingUrl=void 0,this.translationUrl="",this.language="en",this.challenge=void 0,this.tooltipIndex=null,this.timeLeft=void 0}get infoItems(){var e,t,n,i;const o=null===(e=this.challenge)||void 0===e?void 0:e.LevelProgresses.find((e=>0===e.OrderNumber));if(o){const e=null===(t=o.Rewards)||void 0===t?void 0:t.slice(0,2).map((e=>e.RewardDescription)).join(" + ");return[{lable:a("totalLevels",this.language),value:null===(n=this.challenge.LevelProgresses)||void 0===n?void 0:n.length},{lable:a("level1",this.language),value:this.calculateTargetValue(o,null===(i=this.challenge)||void 0===i?void 0:i.CurrencySymbol)},{lable:a("get",this.language),value:e}]}return[]}handleClientStylingChange(e,t){e!=t&&h(this.stylingContainer,this.clientStyling)}handleClientStylingUrlChange(e,t){e!=t&&p(this.stylingContainer,this.clientStylingUrl)}handleMbSourceChange(e,t){e!=t&&v(this.stylingContainer,`${this.mbSource}.Style`)}connectedCallback(){this.timerId=setInterval((()=>{this.updateTime()}),1e3)}componentWillLoad(){this.translationUrl&&(async e=>{if(e)try{const n=await fetch(e);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const a=await n.json();t=a,Object.keys(t).forEach((e=>{for(let n in t[e])i[e][n]=t[e][n]}))}catch(e){console.error("Failed to fetch or parse translations from URL:",e)}var t})(this.translationUrl),this.updateTime()}componentDidLoad(){this.stylingContainer&&(this.mbSource&&v(this.stylingContainer,`${this.mbSource}.Style`),this.clientStyling&&h(this.stylingContainer,this.clientStyling),this.clientStylingUrl&&p(this.stylingContainer,this.clientStylingUrl))}disconnectedCallback(){this.stylingSubscription&&this.stylingSubscription.unsubscribe(),clearInterval(this.timerId)}updateTime(){var e;this.timeLeft=function(e){const t=new Date;let n=new Date(e).getTime()-t.getTime();if(n<=0)return;const i=Math.floor(n/864e5);n-=864e5*i;const a=Math.floor(n/36e5);n-=36e5*a;const o=Math.floor(n/6e4);n-=6e4*o;const r=Math.floor(n/1e3),l=e=>e.toString().padStart(2,"0");return`${l(i)} : ${l(a)} : ${l(o)} : ${l(r)}`}(null===(e=this.challenge)||void 0===e?void 0:e.ExpirationTime)}renderInfoItem(e,n){return t("div",{class:"info-item",onMouseEnter:e=>this.onMouseEnterHandler(n,e.currentTarget),onMouseLeave:this.onMouseLeaveHandler},t("span",{class:"info-item__label"},e.lable),e.value,this.tooltipIndex===n&&t("div",{class:"info-item__tooltip"},e.value))}renderCardBadge(){return t("div",{class:"card__badge"},this.timeLeft?[a("endsIn",this.language)," - ",t("span",null,this.timeLeft)]:a("expired",this.language))}render(){var e,n,i,o;return t("div",{key:"7850e9e8d1e03657399dcf310fa45dc8ce22e331",ref:e=>this.stylingContainer=e},t("div",{key:"19ffacd7740531cc92296f13763f4b918d682501",class:"card"},t("img",{key:"2f62d4103601c176182a2959943bf2508ba0fa94",class:"card__image",src:null===(n=null===(e=this.challenge)||void 0===e?void 0:e.ChallengePresentation)||void 0===n?void 0:n.Url}),this.renderCardBadge(),t("div",{key:"8b250b1329890bcc600cdcbf5064bca28988393f",class:"card__content"},t("h1",{key:"de11a9bda74d8e6a0c445fbb0dd54fc5442230a5",class:"card__title"},null===(o=null===(i=this.challenge)||void 0===i?void 0:i.ChallengePresentation)||void 0===o?void 0:o.PresentationName),this.infoItems.map(((e,t)=>this.renderInfoItem(e,t))),t("button",{key:"f9d554499a8810224817ce0dcf51c2326e74ad8c",class:"card__button"},a("viewDetails",this.language)))))}static get watchers(){return{clientStyling:["handleClientStylingChange"],clientStylingUrl:["handleClientStylingUrlChange"],mbSource:["handleMbSourceChange"]}}};u.style='.card {\n width: 308px;\n border-radius: 16px;\n border: 2px solid var(--emw--button-border-color, rgba(221, 255, 207, 0.1019607843));\n background-color: var(--emw--color-background, #141515);\n box-sizing: border-box;\n position: relative;\n}\n@container challenge-list (max-width: 576px) {\n .card {\n width: 100%;\n }\n}\n.card:hover {\n background: linear-gradient(90deg, rgb(0, 62, 92) 0%, rgb(17, 59, 33) 100%);\n cursor: pointer;\n}\n.card__image {\n width: 100%;\n height: 200px;\n border-radius: 16px 16px 0 0;\n}\n@container challenge-list (max-width: 576px) {\n .card__image {\n height: 224px;\n }\n}\n.card__title {\n color: var(--emw--color-white, #FFFFFF);\n font-size: var(--emw--font-size-medium, 16px);\n margin: 0 0 10px;\n}\n.card__content {\n padding: 20px;\n}\n.card__button {\n margin-top: 20px;\n width: 100%;\n height: 34px;\n background: transparent;\n text-transform: uppercase;\n border-radius: var(--emw--button-border-radius, 99px);\n border: 2px solid var(--emw--button-border-color, #727672);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n color: var(--emw--color-secondary, #e9931e);\n}\n.card__button:hover {\n border-color: var(--emw--color-secondary, #e9931e);\n cursor: pointer;\n}\n.card__badge {\n position: absolute;\n background: white;\n top: 6px;\n right: 6px;\n border-radius: 30px;\n padding: 2px 12px;\n line-height: 22px;\n font-weight: var(--emw--font-weight-medium, 500);\n font-size: var(--emw--font-size-x-small, 12px);\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n backdrop-filter: blur(20px);\n}\n.card__badge span {\n font-weight: var(--emw--font-weight-bold, 700);\n}\n\n.info-item {\n line-height: 24px;\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n color: var(--emw--color-primary, #1dbf51);\n}\n@container challenge-list (min-width: 576px) {\n .info-item {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: bottom;\n }\n}\n.info-item__label {\n font-weight: var(--emw--font-weight-medium, 500);\n margin-right: 3px;\n color: var(--emw--color-gray-150, #C8D6CE);\n}\n.info-item__tooltip {\n position: absolute;\n line-height: 22px;\n padding: 8px 12px;\n border-radius: 8px;\n opacity: 1;\n z-index: 200;\n white-space: nowrap;\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n color: var(--emw--color-white, #FFFFFF);\n background-color: var(--emw--color-background-secondary, #1B1C2B);\n}\n.info-item__tooltip::before {\n content: "";\n position: absolute;\n top: -5px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid var(--emw--color-background-secondary, #1B1C2B);\n width: 0;\n height: 0;\n z-index: 201;\n}';export{u as C}
@@ -1 +1 @@
1
- export{C as casino_challenge_card}from"./casino-challenge-card-cf383ea4.js";import"./index-fae081c3.js";
1
+ export{C as casino_challenge_card}from"./casino-challenge-card-3bea297c.js";import"./index-fae081c3.js";
@@ -1 +1 @@
1
- export{C as CasinoChallengeCard}from"./casino-challenge-card-cf383ea4.js";import"./index-fae081c3.js";
1
+ export{C as CasinoChallengeCard}from"./casino-challenge-card-3bea297c.js";import"./index-fae081c3.js";
@@ -15,7 +15,8 @@ const TRANSLATIONS = {
15
15
  placeBetsOf: 'Place bets of',
16
16
  place: 'Place',
17
17
  bet: 'bet',
18
- bets: 'bets'
18
+ bets: 'bets',
19
+ minBet: 'min bet'
19
20
  },
20
21
  ro: {
21
22
  totalLevels: 'Niveluri totale:',
@@ -27,7 +28,8 @@ const TRANSLATIONS = {
27
28
  placeBetsOf: 'Plasează pariuri de',
28
29
  place: 'Plasare',
29
30
  bet: 'pariu',
30
- bets: 'pariuri'
31
+ bets: 'pariuri',
32
+ minBet: 'pariu minim'
31
33
  },
32
34
  fr: {
33
35
  totalLevels: 'Niveaux totaux :',
@@ -39,7 +41,8 @@ const TRANSLATIONS = {
39
41
  placeBetsOf: 'Placez des paris de',
40
42
  place: 'Placer',
41
43
  bet: 'pari',
42
- bets: 'paris'
44
+ bets: 'paris',
45
+ minBet: 'mise minimale'
43
46
  },
44
47
  ar: {
45
48
  totalLevels: 'إجمالي المستويات:',
@@ -51,7 +54,8 @@ const TRANSLATIONS = {
51
54
  placeBetsOf: 'قم بوضع رهانات بقيمة',
52
55
  place: 'ضع',
53
56
  bet: 'رهان',
54
- bets: 'رهانات'
57
+ bets: 'رهانات',
58
+ minBet: 'الحد الأدنى للرهان'
55
59
  },
56
60
  hr: {
57
61
  totalLevels: 'Ukupno razina:',
@@ -63,7 +67,8 @@ const TRANSLATIONS = {
63
67
  placeBetsOf: 'Postavite oklade od',
64
68
  place: 'Postavi',
65
69
  bet: 'kladnja',
66
- bets: 'kladnje'
70
+ bets: 'kladnje',
71
+ minBet: 'minimalna oklada'
67
72
  }
68
73
  };
69
74
  const translate = (key, customLang) => {
@@ -93,6 +98,47 @@ const resolveTranslationUrl = async (translationUrl) => {
93
98
  }
94
99
  };
95
100
 
101
+ var EChallengeLevelTargetType;
102
+ (function (EChallengeLevelTargetType) {
103
+ EChallengeLevelTargetType[EChallengeLevelTargetType["Accumulative"] = 0] = "Accumulative";
104
+ EChallengeLevelTargetType[EChallengeLevelTargetType["SingleBet"] = 1] = "SingleBet";
105
+ EChallengeLevelTargetType[EChallengeLevelTargetType["MultipleOneBetSize"] = 2] = "MultipleOneBetSize";
106
+ })(EChallengeLevelTargetType || (EChallengeLevelTargetType = {}));
107
+ var EChallengeRecurrenceType;
108
+ (function (EChallengeRecurrenceType) {
109
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Single"] = 0] = "Single";
110
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Daily"] = 1] = "Daily";
111
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Weekly"] = 2] = "Weekly";
112
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Monthly"] = 3] = "Monthly";
113
+ })(EChallengeRecurrenceType || (EChallengeRecurrenceType = {}));
114
+ var EChallengeRewardType;
115
+ (function (EChallengeRewardType) {
116
+ EChallengeRewardType[EChallengeRewardType["FreeSpins"] = 0] = "FreeSpins";
117
+ EChallengeRewardType[EChallengeRewardType["LuckyWheel"] = 1] = "LuckyWheel";
118
+ EChallengeRewardType[EChallengeRewardType["Leaderboard"] = 2] = "Leaderboard";
119
+ EChallengeRewardType[EChallengeRewardType["Challenge"] = 3] = "Challenge";
120
+ EChallengeRewardType[EChallengeRewardType["Custom"] = 4] = "Custom";
121
+ })(EChallengeRewardType || (EChallengeRewardType = {}));
122
+ var EChallengeStatus;
123
+ (function (EChallengeStatus) {
124
+ EChallengeStatus[EChallengeStatus["Setup"] = 0] = "Setup";
125
+ EChallengeStatus[EChallengeStatus["Active"] = 1] = "Active";
126
+ EChallengeStatus[EChallengeStatus["Paused"] = 2] = "Paused";
127
+ EChallengeStatus[EChallengeStatus["Closed"] = 3] = "Closed";
128
+ EChallengeStatus[EChallengeStatus["Deleted"] = 4] = "Deleted";
129
+ })(EChallengeStatus || (EChallengeStatus = {}));
130
+ var EChallengeTriggerType;
131
+ (function (EChallengeTriggerType) {
132
+ EChallengeTriggerType[EChallengeTriggerType["GameLaunch"] = 0] = "GameLaunch";
133
+ EChallengeTriggerType[EChallengeTriggerType["Reward"] = 1] = "Reward";
134
+ EChallengeTriggerType[EChallengeTriggerType["Manual"] = 2] = "Manual";
135
+ })(EChallengeTriggerType || (EChallengeTriggerType = {}));
136
+ var EChallengeValidityType;
137
+ (function (EChallengeValidityType) {
138
+ EChallengeValidityType[EChallengeValidityType["Period"] = 0] = "Period";
139
+ EChallengeValidityType[EChallengeValidityType["Date"] = 1] = "Date";
140
+ })(EChallengeValidityType || (EChallengeValidityType = {}));
141
+
96
142
  function getTimeLeft(endTime) {
97
143
  const now = new Date();
98
144
  const end = new Date(endTime);
@@ -174,7 +220,22 @@ const CasinoChallengeCardStyle0 = casinoChallengeCardCss;
174
220
  const CasinoChallengeCard = class {
175
221
  constructor(hostRef) {
176
222
  index.registerInstance(this, hostRef);
177
- this.defaultLanguage = 'en';
223
+ this.calculateTargetValue = (level, currencySymbol) => {
224
+ var _a;
225
+ if (!level)
226
+ return '';
227
+ const minbet = ((_a = level.BetRange) === null || _a === void 0 ? void 0 : _a.MinBet)
228
+ ? `, ${translate('minBet', this.language)} ${currencySymbol + level.BetRange.MinBet}`
229
+ : '';
230
+ switch (level.LevelTargetType) {
231
+ case EChallengeLevelTargetType.Accumulative:
232
+ return `${translate('placeBetsOf', this.language)} ${currencySymbol + level.DisplayCurrencyTargetTurnover + minbet}`;
233
+ case EChallengeLevelTargetType.SingleBet:
234
+ return `${translate('place', this.language)} ${currencySymbol + level.TargetTurnover} ${translate('bet', this.language)}`;
235
+ case EChallengeLevelTargetType.MultipleOneBetSize:
236
+ return `${translate('place', this.language)} ${level.TargetBetCount} ${translate('bets', this.language) + minbet}`;
237
+ }
238
+ };
178
239
  this.onMouseEnterHandler = (index, el) => {
179
240
  if (el.scrollWidth > el.clientWidth) {
180
241
  this.tooltipIndex = index;
@@ -193,28 +254,26 @@ const CasinoChallengeCard = class {
193
254
  this.timeLeft = undefined;
194
255
  }
195
256
  get infoItems() {
196
- const level1 = this.challenge.ChallengeLevels[0];
197
- const target = level1.Target;
198
- const targetValue = target.TargetType === 0
199
- ? `${translate('placeBetsOf', this.language)} ${target.Turnover}`
200
- : target.TargetType === 1
201
- ? `${translate('place', this.language)} ${target.Turnover} ${translate('bet', this.language)}`
202
- : `${translate('place', this.language)} ${target.BetCount} ${translate('bets', this.language)}`;
203
- const rewardValue = level1.Rewards.map((r) => r.RewardDescription).join(' + ');
204
- return [
205
- {
206
- lable: translate('totalLevels', this.language),
207
- value: this.challenge.ChallengeLevels.length
208
- },
209
- {
210
- lable: translate('level1', this.language),
211
- value: targetValue
212
- },
213
- {
214
- lable: translate('get', this.language),
215
- value: rewardValue
216
- }
217
- ];
257
+ var _a, _b, _c, _d;
258
+ const level1 = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses.find((x) => x.OrderNumber === 0);
259
+ if (level1) {
260
+ const rewardValue = (_b = level1.Rewards) === null || _b === void 0 ? void 0 : _b.slice(0, 2).map((r) => r.RewardDescription).join(' + ');
261
+ return [
262
+ {
263
+ lable: translate('totalLevels', this.language),
264
+ value: (_c = this.challenge.LevelProgresses) === null || _c === void 0 ? void 0 : _c.length
265
+ },
266
+ {
267
+ lable: translate('level1', this.language),
268
+ value: this.calculateTargetValue(level1, (_d = this.challenge) === null || _d === void 0 ? void 0 : _d.CurrencySymbol)
269
+ },
270
+ {
271
+ lable: translate('get', this.language),
272
+ value: rewardValue
273
+ }
274
+ ];
275
+ }
276
+ return [];
218
277
  }
219
278
  handleClientStylingChange(newValue, oldValue) {
220
279
  if (newValue != oldValue) {
@@ -260,7 +319,7 @@ const CasinoChallengeCard = class {
260
319
  }
261
320
  updateTime() {
262
321
  var _a;
263
- this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengeEndTime);
322
+ this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ExpirationTime);
264
323
  }
265
324
  renderInfoItem(item, index$1) {
266
325
  return (index.h("div", { class: "info-item", onMouseEnter: (e) => this.onMouseEnterHandler(index$1, e.currentTarget), onMouseLeave: this.onMouseLeaveHandler }, index.h("span", { class: "info-item__label" }, item.lable), item.value, this.tooltipIndex === index$1 && index.h("div", { class: "info-item__tooltip" }, item.value)));
@@ -271,9 +330,8 @@ const CasinoChallengeCard = class {
271
330
  : translate('expired', this.language)));
272
331
  }
273
332
  render() {
274
- return (index.h("div", { key: 'ddbd3e0d20b4d75ed70120798c45d7c03715b7df', ref: (el) => (this.stylingContainer = el) }, index.h("div", { key: '3ca0c4b6ad25b4f60077b894bf73c9686f67a677', class: "card" }, index.h("img", { key: '1712546c27e75e04bde5832c521038bfd418e57f', class: "card__image", src: this.challenge.ChallengePresentations[this.language].Url ||
275
- this.challenge.ChallengePresentations[this.defaultLanguage].Url }), this.renderCardBadge(), index.h("div", { key: '238041db616391c2594bef46778649b8b6282097', class: "card__content" }, index.h("h1", { key: 'd377b99c7758460df8b1a6e8e39059959347430f', class: "card__title" }, this.challenge.ChallengePresentations[this.language].PresentationName ||
276
- this.challenge.ChallengePresentations[this.defaultLanguage].PresentationName), this.infoItems.map((x, index) => this.renderInfoItem(x, index)), index.h("button", { key: 'b53707ce7881cbf16321e3d3728a0e769af6589a', class: "card__button" }, translate('viewDetails', this.language))))));
333
+ var _a, _b, _c, _d;
334
+ return (index.h("div", { key: '7850e9e8d1e03657399dcf310fa45dc8ce22e331', ref: (el) => (this.stylingContainer = el) }, index.h("div", { key: '19ffacd7740531cc92296f13763f4b918d682501', class: "card" }, index.h("img", { key: '2f62d4103601c176182a2959943bf2508ba0fa94', 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(), index.h("div", { key: '8b250b1329890bcc600cdcbf5064bca28988393f', class: "card__content" }, index.h("h1", { key: 'de11a9bda74d8e6a0c445fbb0dd54fc5442230a5', 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)), index.h("button", { key: 'f9d554499a8810224817ce0dcf51c2326e74ad8c', class: "card__button" }, translate('viewDetails', this.language))))));
277
335
  }
278
336
  static get watchers() { return {
279
337
  "clientStyling": ["handleClientStylingChange"],
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const casinoChallengeCard = require('./casino-challenge-card-c10f3b5d.js');
5
+ const casinoChallengeCard = require('./casino-challenge-card-db07db21.js');
6
6
  require('./index-062e337e.js');
7
7
 
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const casinoChallengeCard = require('./casino-challenge-card-c10f3b5d.js');
5
+ const casinoChallengeCard = require('./casino-challenge-card-db07db21.js');
6
6
  require('./index-062e337e.js');
7
7
 
8
8
 
@@ -1,10 +1,26 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { resolveTranslationUrl, translate } from "../../utils/locale.utils";
3
+ import { EChallengeLevelTargetType } from "../../utils/types";
3
4
  import { getTimeLeft } from "../../utils/utils";
4
5
  import { setClientStyling, setClientStylingURL, setStreamStyling } from "../../../../../../../../libs/common/src/styling/index";
5
6
  export class CasinoChallengeCard {
6
7
  constructor() {
7
- this.defaultLanguage = 'en';
8
+ this.calculateTargetValue = (level, currencySymbol) => {
9
+ var _a;
10
+ if (!level)
11
+ return '';
12
+ const minbet = ((_a = level.BetRange) === null || _a === void 0 ? void 0 : _a.MinBet)
13
+ ? `, ${translate('minBet', this.language)} ${currencySymbol + level.BetRange.MinBet}`
14
+ : '';
15
+ switch (level.LevelTargetType) {
16
+ case EChallengeLevelTargetType.Accumulative:
17
+ return `${translate('placeBetsOf', this.language)} ${currencySymbol + level.DisplayCurrencyTargetTurnover + minbet}`;
18
+ case EChallengeLevelTargetType.SingleBet:
19
+ return `${translate('place', this.language)} ${currencySymbol + level.TargetTurnover} ${translate('bet', this.language)}`;
20
+ case EChallengeLevelTargetType.MultipleOneBetSize:
21
+ return `${translate('place', this.language)} ${level.TargetBetCount} ${translate('bets', this.language) + minbet}`;
22
+ }
23
+ };
8
24
  this.onMouseEnterHandler = (index, el) => {
9
25
  if (el.scrollWidth > el.clientWidth) {
10
26
  this.tooltipIndex = index;
@@ -23,28 +39,26 @@ export class CasinoChallengeCard {
23
39
  this.timeLeft = undefined;
24
40
  }
25
41
  get infoItems() {
26
- const level1 = this.challenge.ChallengeLevels[0];
27
- const target = level1.Target;
28
- const targetValue = target.TargetType === 0
29
- ? `${translate('placeBetsOf', this.language)} ${target.Turnover}`
30
- : target.TargetType === 1
31
- ? `${translate('place', this.language)} ${target.Turnover} ${translate('bet', this.language)}`
32
- : `${translate('place', this.language)} ${target.BetCount} ${translate('bets', this.language)}`;
33
- const rewardValue = level1.Rewards.map((r) => r.RewardDescription).join(' + ');
34
- return [
35
- {
36
- lable: translate('totalLevels', this.language),
37
- value: this.challenge.ChallengeLevels.length
38
- },
39
- {
40
- lable: translate('level1', this.language),
41
- value: targetValue
42
- },
43
- {
44
- lable: translate('get', this.language),
45
- value: rewardValue
46
- }
47
- ];
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(' + ');
46
+ return [
47
+ {
48
+ lable: translate('totalLevels', this.language),
49
+ value: (_c = this.challenge.LevelProgresses) === null || _c === void 0 ? void 0 : _c.length
50
+ },
51
+ {
52
+ lable: translate('level1', this.language),
53
+ value: this.calculateTargetValue(level1, (_d = this.challenge) === null || _d === void 0 ? void 0 : _d.CurrencySymbol)
54
+ },
55
+ {
56
+ lable: translate('get', this.language),
57
+ value: rewardValue
58
+ }
59
+ ];
60
+ }
61
+ return [];
48
62
  }
49
63
  handleClientStylingChange(newValue, oldValue) {
50
64
  if (newValue != oldValue) {
@@ -90,7 +104,7 @@ export class CasinoChallengeCard {
90
104
  }
91
105
  updateTime() {
92
106
  var _a;
93
- this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengeEndTime);
107
+ this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ExpirationTime);
94
108
  }
95
109
  renderInfoItem(item, index) {
96
110
  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)));
@@ -101,9 +115,8 @@ export class CasinoChallengeCard {
101
115
  : translate('expired', this.language)));
102
116
  }
103
117
  render() {
104
- return (h("div", { key: 'ddbd3e0d20b4d75ed70120798c45d7c03715b7df', ref: (el) => (this.stylingContainer = el) }, h("div", { key: '3ca0c4b6ad25b4f60077b894bf73c9686f67a677', class: "card" }, h("img", { key: '1712546c27e75e04bde5832c521038bfd418e57f', class: "card__image", src: this.challenge.ChallengePresentations[this.language].Url ||
105
- this.challenge.ChallengePresentations[this.defaultLanguage].Url }), this.renderCardBadge(), h("div", { key: '238041db616391c2594bef46778649b8b6282097', class: "card__content" }, h("h1", { key: 'd377b99c7758460df8b1a6e8e39059959347430f', class: "card__title" }, this.challenge.ChallengePresentations[this.language].PresentationName ||
106
- this.challenge.ChallengePresentations[this.defaultLanguage].PresentationName), this.infoItems.map((x, index) => this.renderInfoItem(x, index)), h("button", { key: 'b53707ce7881cbf16321e3d3728a0e769af6589a', class: "card__button" }, translate('viewDetails', this.language))))));
118
+ var _a, _b, _c, _d;
119
+ return (h("div", { key: '7850e9e8d1e03657399dcf310fa45dc8ce22e331', ref: (el) => (this.stylingContainer = el) }, h("div", { key: '19ffacd7740531cc92296f13763f4b918d682501', class: "card" }, h("img", { key: '2f62d4103601c176182a2959943bf2508ba0fa94', 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: '8b250b1329890bcc600cdcbf5064bca28988393f', class: "card__content" }, h("h1", { key: 'de11a9bda74d8e6a0c445fbb0dd54fc5442230a5', 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: 'f9d554499a8810224817ce0dcf51c2326e74ad8c', class: "card__button" }, translate('viewDetails', this.language))))));
107
120
  }
108
121
  static get is() { return "casino-challenge-card"; }
109
122
  static get encapsulation() { return "shadow"; }
@@ -11,7 +11,8 @@ const TRANSLATIONS = {
11
11
  placeBetsOf: 'Place bets of',
12
12
  place: 'Place',
13
13
  bet: 'bet',
14
- bets: 'bets'
14
+ bets: 'bets',
15
+ minBet: 'min bet'
15
16
  },
16
17
  ro: {
17
18
  totalLevels: 'Niveluri totale:',
@@ -23,7 +24,8 @@ const TRANSLATIONS = {
23
24
  placeBetsOf: 'Plasează pariuri de',
24
25
  place: 'Plasare',
25
26
  bet: 'pariu',
26
- bets: 'pariuri'
27
+ bets: 'pariuri',
28
+ minBet: 'pariu minim'
27
29
  },
28
30
  fr: {
29
31
  totalLevels: 'Niveaux totaux :',
@@ -35,7 +37,8 @@ const TRANSLATIONS = {
35
37
  placeBetsOf: 'Placez des paris de',
36
38
  place: 'Placer',
37
39
  bet: 'pari',
38
- bets: 'paris'
40
+ bets: 'paris',
41
+ minBet: 'mise minimale'
39
42
  },
40
43
  ar: {
41
44
  totalLevels: 'إجمالي المستويات:',
@@ -47,7 +50,8 @@ const TRANSLATIONS = {
47
50
  placeBetsOf: 'قم بوضع رهانات بقيمة',
48
51
  place: 'ضع',
49
52
  bet: 'رهان',
50
- bets: 'رهانات'
53
+ bets: 'رهانات',
54
+ minBet: 'الحد الأدنى للرهان'
51
55
  },
52
56
  hr: {
53
57
  totalLevels: 'Ukupno razina:',
@@ -59,7 +63,8 @@ const TRANSLATIONS = {
59
63
  placeBetsOf: 'Postavite oklade od',
60
64
  place: 'Postavi',
61
65
  bet: 'kladnja',
62
- bets: 'kladnje'
66
+ bets: 'kladnje',
67
+ minBet: 'minimalna oklada'
63
68
  }
64
69
  };
65
70
  export const translate = (key, customLang) => {
@@ -13,7 +13,8 @@ const TRANSLATIONS = {
13
13
  placeBetsOf: 'Place bets of',
14
14
  place: 'Place',
15
15
  bet: 'bet',
16
- bets: 'bets'
16
+ bets: 'bets',
17
+ minBet: 'min bet'
17
18
  },
18
19
  ro: {
19
20
  totalLevels: 'Niveluri totale:',
@@ -25,7 +26,8 @@ const TRANSLATIONS = {
25
26
  placeBetsOf: 'Plasează pariuri de',
26
27
  place: 'Plasare',
27
28
  bet: 'pariu',
28
- bets: 'pariuri'
29
+ bets: 'pariuri',
30
+ minBet: 'pariu minim'
29
31
  },
30
32
  fr: {
31
33
  totalLevels: 'Niveaux totaux :',
@@ -37,7 +39,8 @@ const TRANSLATIONS = {
37
39
  placeBetsOf: 'Placez des paris de',
38
40
  place: 'Placer',
39
41
  bet: 'pari',
40
- bets: 'paris'
42
+ bets: 'paris',
43
+ minBet: 'mise minimale'
41
44
  },
42
45
  ar: {
43
46
  totalLevels: 'إجمالي المستويات:',
@@ -49,7 +52,8 @@ const TRANSLATIONS = {
49
52
  placeBetsOf: 'قم بوضع رهانات بقيمة',
50
53
  place: 'ضع',
51
54
  bet: 'رهان',
52
- bets: 'رهانات'
55
+ bets: 'رهانات',
56
+ minBet: 'الحد الأدنى للرهان'
53
57
  },
54
58
  hr: {
55
59
  totalLevels: 'Ukupno razina:',
@@ -61,7 +65,8 @@ const TRANSLATIONS = {
61
65
  placeBetsOf: 'Postavite oklade od',
62
66
  place: 'Postavi',
63
67
  bet: 'kladnja',
64
- bets: 'kladnje'
68
+ bets: 'kladnje',
69
+ minBet: 'minimalna oklada'
65
70
  }
66
71
  };
67
72
  const translate = (key, customLang) => {
@@ -91,6 +96,47 @@ const resolveTranslationUrl = async (translationUrl) => {
91
96
  }
92
97
  };
93
98
 
99
+ var EChallengeLevelTargetType;
100
+ (function (EChallengeLevelTargetType) {
101
+ EChallengeLevelTargetType[EChallengeLevelTargetType["Accumulative"] = 0] = "Accumulative";
102
+ EChallengeLevelTargetType[EChallengeLevelTargetType["SingleBet"] = 1] = "SingleBet";
103
+ EChallengeLevelTargetType[EChallengeLevelTargetType["MultipleOneBetSize"] = 2] = "MultipleOneBetSize";
104
+ })(EChallengeLevelTargetType || (EChallengeLevelTargetType = {}));
105
+ var EChallengeRecurrenceType;
106
+ (function (EChallengeRecurrenceType) {
107
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Single"] = 0] = "Single";
108
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Daily"] = 1] = "Daily";
109
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Weekly"] = 2] = "Weekly";
110
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Monthly"] = 3] = "Monthly";
111
+ })(EChallengeRecurrenceType || (EChallengeRecurrenceType = {}));
112
+ var EChallengeRewardType;
113
+ (function (EChallengeRewardType) {
114
+ EChallengeRewardType[EChallengeRewardType["FreeSpins"] = 0] = "FreeSpins";
115
+ EChallengeRewardType[EChallengeRewardType["LuckyWheel"] = 1] = "LuckyWheel";
116
+ EChallengeRewardType[EChallengeRewardType["Leaderboard"] = 2] = "Leaderboard";
117
+ EChallengeRewardType[EChallengeRewardType["Challenge"] = 3] = "Challenge";
118
+ EChallengeRewardType[EChallengeRewardType["Custom"] = 4] = "Custom";
119
+ })(EChallengeRewardType || (EChallengeRewardType = {}));
120
+ var EChallengeStatus;
121
+ (function (EChallengeStatus) {
122
+ EChallengeStatus[EChallengeStatus["Setup"] = 0] = "Setup";
123
+ EChallengeStatus[EChallengeStatus["Active"] = 1] = "Active";
124
+ EChallengeStatus[EChallengeStatus["Paused"] = 2] = "Paused";
125
+ EChallengeStatus[EChallengeStatus["Closed"] = 3] = "Closed";
126
+ EChallengeStatus[EChallengeStatus["Deleted"] = 4] = "Deleted";
127
+ })(EChallengeStatus || (EChallengeStatus = {}));
128
+ var EChallengeTriggerType;
129
+ (function (EChallengeTriggerType) {
130
+ EChallengeTriggerType[EChallengeTriggerType["GameLaunch"] = 0] = "GameLaunch";
131
+ EChallengeTriggerType[EChallengeTriggerType["Reward"] = 1] = "Reward";
132
+ EChallengeTriggerType[EChallengeTriggerType["Manual"] = 2] = "Manual";
133
+ })(EChallengeTriggerType || (EChallengeTriggerType = {}));
134
+ var EChallengeValidityType;
135
+ (function (EChallengeValidityType) {
136
+ EChallengeValidityType[EChallengeValidityType["Period"] = 0] = "Period";
137
+ EChallengeValidityType[EChallengeValidityType["Date"] = 1] = "Date";
138
+ })(EChallengeValidityType || (EChallengeValidityType = {}));
139
+
94
140
  function getTimeLeft(endTime) {
95
141
  const now = new Date();
96
142
  const end = new Date(endTime);
@@ -172,7 +218,22 @@ const CasinoChallengeCardStyle0 = casinoChallengeCardCss;
172
218
  const CasinoChallengeCard = class {
173
219
  constructor(hostRef) {
174
220
  registerInstance(this, hostRef);
175
- this.defaultLanguage = 'en';
221
+ this.calculateTargetValue = (level, currencySymbol) => {
222
+ var _a;
223
+ if (!level)
224
+ return '';
225
+ const minbet = ((_a = level.BetRange) === null || _a === void 0 ? void 0 : _a.MinBet)
226
+ ? `, ${translate('minBet', this.language)} ${currencySymbol + level.BetRange.MinBet}`
227
+ : '';
228
+ switch (level.LevelTargetType) {
229
+ case EChallengeLevelTargetType.Accumulative:
230
+ return `${translate('placeBetsOf', this.language)} ${currencySymbol + level.DisplayCurrencyTargetTurnover + minbet}`;
231
+ case EChallengeLevelTargetType.SingleBet:
232
+ return `${translate('place', this.language)} ${currencySymbol + level.TargetTurnover} ${translate('bet', this.language)}`;
233
+ case EChallengeLevelTargetType.MultipleOneBetSize:
234
+ return `${translate('place', this.language)} ${level.TargetBetCount} ${translate('bets', this.language) + minbet}`;
235
+ }
236
+ };
176
237
  this.onMouseEnterHandler = (index, el) => {
177
238
  if (el.scrollWidth > el.clientWidth) {
178
239
  this.tooltipIndex = index;
@@ -191,28 +252,26 @@ const CasinoChallengeCard = class {
191
252
  this.timeLeft = undefined;
192
253
  }
193
254
  get infoItems() {
194
- const level1 = this.challenge.ChallengeLevels[0];
195
- const target = level1.Target;
196
- const targetValue = target.TargetType === 0
197
- ? `${translate('placeBetsOf', this.language)} ${target.Turnover}`
198
- : target.TargetType === 1
199
- ? `${translate('place', this.language)} ${target.Turnover} ${translate('bet', this.language)}`
200
- : `${translate('place', this.language)} ${target.BetCount} ${translate('bets', this.language)}`;
201
- const rewardValue = level1.Rewards.map((r) => r.RewardDescription).join(' + ');
202
- return [
203
- {
204
- lable: translate('totalLevels', this.language),
205
- value: this.challenge.ChallengeLevels.length
206
- },
207
- {
208
- lable: translate('level1', this.language),
209
- value: targetValue
210
- },
211
- {
212
- lable: translate('get', this.language),
213
- value: rewardValue
214
- }
215
- ];
255
+ var _a, _b, _c, _d;
256
+ const level1 = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses.find((x) => x.OrderNumber === 0);
257
+ if (level1) {
258
+ const rewardValue = (_b = level1.Rewards) === null || _b === void 0 ? void 0 : _b.slice(0, 2).map((r) => r.RewardDescription).join(' + ');
259
+ return [
260
+ {
261
+ lable: translate('totalLevels', this.language),
262
+ value: (_c = this.challenge.LevelProgresses) === null || _c === void 0 ? void 0 : _c.length
263
+ },
264
+ {
265
+ lable: translate('level1', this.language),
266
+ value: this.calculateTargetValue(level1, (_d = this.challenge) === null || _d === void 0 ? void 0 : _d.CurrencySymbol)
267
+ },
268
+ {
269
+ lable: translate('get', this.language),
270
+ value: rewardValue
271
+ }
272
+ ];
273
+ }
274
+ return [];
216
275
  }
217
276
  handleClientStylingChange(newValue, oldValue) {
218
277
  if (newValue != oldValue) {
@@ -258,7 +317,7 @@ const CasinoChallengeCard = class {
258
317
  }
259
318
  updateTime() {
260
319
  var _a;
261
- this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengeEndTime);
320
+ this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ExpirationTime);
262
321
  }
263
322
  renderInfoItem(item, index) {
264
323
  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)));
@@ -269,9 +328,8 @@ const CasinoChallengeCard = class {
269
328
  : translate('expired', this.language)));
270
329
  }
271
330
  render() {
272
- return (h("div", { key: 'ddbd3e0d20b4d75ed70120798c45d7c03715b7df', ref: (el) => (this.stylingContainer = el) }, h("div", { key: '3ca0c4b6ad25b4f60077b894bf73c9686f67a677', class: "card" }, h("img", { key: '1712546c27e75e04bde5832c521038bfd418e57f', class: "card__image", src: this.challenge.ChallengePresentations[this.language].Url ||
273
- this.challenge.ChallengePresentations[this.defaultLanguage].Url }), this.renderCardBadge(), h("div", { key: '238041db616391c2594bef46778649b8b6282097', class: "card__content" }, h("h1", { key: 'd377b99c7758460df8b1a6e8e39059959347430f', class: "card__title" }, this.challenge.ChallengePresentations[this.language].PresentationName ||
274
- this.challenge.ChallengePresentations[this.defaultLanguage].PresentationName), this.infoItems.map((x, index) => this.renderInfoItem(x, index)), h("button", { key: 'b53707ce7881cbf16321e3d3728a0e769af6589a', class: "card__button" }, translate('viewDetails', this.language))))));
331
+ var _a, _b, _c, _d;
332
+ return (h("div", { key: '7850e9e8d1e03657399dcf310fa45dc8ce22e331', ref: (el) => (this.stylingContainer = el) }, h("div", { key: '19ffacd7740531cc92296f13763f4b918d682501', class: "card" }, h("img", { key: '2f62d4103601c176182a2959943bf2508ba0fa94', 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: '8b250b1329890bcc600cdcbf5064bca28988393f', class: "card__content" }, h("h1", { key: 'de11a9bda74d8e6a0c445fbb0dd54fc5442230a5', 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: 'f9d554499a8810224817ce0dcf51c2326e74ad8c', class: "card__button" }, translate('viewDetails', this.language))))));
275
333
  }
276
334
  static get watchers() { return {
277
335
  "clientStyling": ["handleClientStylingChange"],
@@ -1,2 +1,2 @@
1
- export { C as casino_challenge_card } from './casino-challenge-card-cf383ea4.js';
1
+ export { C as casino_challenge_card } from './casino-challenge-card-3bea297c.js';
2
2
  import './index-fae081c3.js';
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { C as CasinoChallengeCard } from './casino-challenge-card-cf383ea4.js';
1
+ export { C as CasinoChallengeCard } from './casino-challenge-card-3bea297c.js';
2
2
  import './index-fae081c3.js';
@@ -26,7 +26,6 @@ export declare class CasinoChallengeCard {
26
26
  challenge: IChallenge;
27
27
  tooltipIndex: number;
28
28
  timeLeft: string;
29
- private readonly defaultLanguage;
30
29
  private stylingContainer;
31
30
  private stylingSubscription;
32
31
  private timerId;
@@ -38,6 +37,7 @@ export declare class CasinoChallengeCard {
38
37
  componentWillLoad(): void;
39
38
  componentDidLoad(): void;
40
39
  disconnectedCallback(): void;
40
+ private calculateTargetValue;
41
41
  private updateTime;
42
42
  private onMouseEnterHandler;
43
43
  private onMouseLeaveHandler;
@@ -39,86 +39,68 @@ export declare enum EChallengeValidityType {
39
39
  export type ChallengeRecurrenceTypeName = 'Single' | 'Daily' | 'Weekly' | 'Monthly';
40
40
  export type ChallengeStatusName = 'Draft' | 'Enabled' | 'Paused' | 'Closed' | 'Deleted';
41
41
  export type ChallengeTriggerName = 'GameLaunch' | 'Reward';
42
- export interface IChallengeLevel {
43
- Name: string;
44
- Id?: number;
45
- OrderNumber: number;
46
- Target: IChallengeLevelTarget;
47
- CustomRewardMessage: Record<string, string>;
48
- Rewards: Array<IChallengeLevelReward>;
49
- Targets?: string | null;
50
- }
51
42
  export interface IChallengeLevelReward {
52
43
  Type: EChallengeRewardType;
53
44
  RewardId: number;
54
45
  RewardDescription?: string;
55
46
  BonusCode?: string | null;
56
- }
57
- export interface IChallengeLevelTarget {
58
- TargetType: number;
59
- Turnover: number;
60
- BetCount: number;
61
- LevelContributionPercent: number;
62
- BetRange?: Record<string, IChallengeBetRange>;
47
+ LoyaltyEngineRewardType: number;
48
+ RewardAmount: number;
63
49
  }
64
50
  export interface IChallengePresentation {
51
+ TriggerPopupMessage: string;
52
+ TooltipMessage: string;
53
+ BannerUrl: string;
65
54
  PresentationName: string;
66
- Description?: string;
67
- Url?: string;
68
- TriggerPopupMessage?: string;
69
- TooltipMessage?: string;
55
+ Description: string;
56
+ Url: string;
70
57
  }
71
58
  export interface ITriggerPeriods {
72
59
  DayOfWeek: number;
73
60
  StartTime: string;
74
61
  EndTime: string;
75
62
  }
76
- export interface IChallengeRecurrence {
77
- Type: EChallengeRecurrenceType;
78
- RecurrenceTypeName: ChallengeRecurrenceTypeName;
79
- MaxParticipationPerPlayer: number;
80
- TriggerPeriods: ITriggerPeriods[] | null;
81
- }
82
- export interface IChallengeValidity {
83
- Type: number;
84
- Days: number | null;
85
- Hours: number;
86
- Minutes: number;
87
- ExpirationTime: string;
88
- }
89
63
  export interface IChallengeBetRange {
90
64
  MinBet: number;
91
65
  MaxBet: number;
92
66
  MaxContributionAmount: number;
93
67
  }
68
+ export interface IGame {
69
+ GameId: string;
70
+ GameName: string;
71
+ GameIcon: string;
72
+ GameSlug: string;
73
+ CasinoGameId: number;
74
+ }
75
+ export interface ILevelProgress {
76
+ DisplayCurrencyCurrentTurnover: number;
77
+ DisplayCurrencyTargetTurnover: number;
78
+ CustomRewardMessage: string;
79
+ LevelId: string;
80
+ OrderNumber: number;
81
+ LevelTargetType: EChallengeLevelTargetType;
82
+ CurrentTurnover: number;
83
+ TargetTurnover: number;
84
+ LevelContributionPercent: number;
85
+ CurrentBetCount: number;
86
+ TargetBetCount: number;
87
+ Rewards: IChallengeLevelReward[];
88
+ ProgressPercentage: number;
89
+ ProgressStatus: number;
90
+ CompleteTime: string;
91
+ BetRange: IChallengeBetRange;
92
+ }
94
93
  export interface IChallenge {
95
- Status: EChallengeStatus;
96
- StatusName: ChallengeStatusName;
97
- Name: string;
98
- ChallengePresentations?: Record<string, IChallengePresentation>;
99
- Ins: string;
100
- Upd: string;
101
- StartTime: string;
102
- ChallengeEndTime: string;
103
- Validity: IChallengeValidity;
104
- Recurrence: IChallengeRecurrence;
105
- SystemCurrency: string;
106
- AllowedCurrencies: string[] | null;
107
- Trigger: EChallengeTriggerType;
108
- TriggerName: ChallengeTriggerName;
109
- ChallengeLevels: Array<IChallengeLevel>;
110
- GameCodes: Array<string>;
111
- IncludedUserIds?: Array<string>;
112
- ExcludedUserIds?: Array<string>;
113
- AllowedCountries?: Array<string>;
114
- DeniedCountries?: Array<string>;
115
- IncludedUserIdRange?: Array<Record<string, number>>;
116
- ExcludedUserIdRange?: Array<Record<string, number>>;
117
- IsPendingTrigger: boolean;
118
- Id: number;
94
+ Status: number;
95
+ ChallengePresentation: IChallengePresentation;
119
96
  DomainId: number;
120
- Removed: boolean;
121
- TotalGrantLimit: number;
122
- IncludedUserRoles?: string[] | null;
123
- ExcludedUserRoles?: string[] | null;
97
+ Id: string;
98
+ ChallengeId: string;
99
+ CurrencySymbol: string;
100
+ ExpirationTime: string;
101
+ IsNew: boolean;
102
+ TotalGamesCount: number;
103
+ IncludeAllGames: boolean;
104
+ Games: IGame[];
105
+ LevelProgresses: ILevelProgress[];
124
106
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/casino-challenge-card",
3
- "version": "0.1.1",
3
+ "version": "1.77.3",
4
4
  "main": "./dist/index.cjs.js",
5
5
  "module": "./dist/index.js",
6
6
  "es2015": "./dist/esm/index.mjs",
@@ -1 +0,0 @@
1
- import{r as e,h as t}from"./index-fae081c3.js";const n=["ro","en","fr","ar","hr"],i={en:{totalLevels:"Total levels:",level1:"Level 1:",get:"Get:",endsIn:"Ends In",expired:"Expired",viewDetails:"View details",placeBetsOf:"Place bets of",place:"Place",bet:"bet",bets:"bets"},ro:{totalLevels:"Niveluri totale:",level1:"Nivel 1:",get:"Obține:",endsIn:"Se termină în",expired:"Expirat",viewDetails:"Vezi detalii",placeBetsOf:"Plasează pariuri de",place:"Plasare",bet:"pariu",bets:"pariuri"},fr:{totalLevels:"Niveaux totaux :",level1:"Niveau 1 :",get:"Obtenir :",endsIn:"Se termine dans",expired:"Expiré",viewDetails:"Voir les détails",placeBetsOf:"Placez des paris de",place:"Placer",bet:"pari",bets:"paris"},ar:{totalLevels:"إجمالي المستويات:",level1:"المستوى 1:",get:"احصل على:",endsIn:"ينتهي في",expired:"منتهي الصلاحية",viewDetails:"عرض التفاصيل",placeBetsOf:"قم بوضع رهانات بقيمة",place:"ضع",bet:"رهان",bets:"رهانات"},hr:{totalLevels:"Ukupno razina:",level1:"Razina 1:",get:"Dobiti:",endsIn:"Završava za",expired:"Isteklo",viewDetails:"Pogledaj detalje",placeBetsOf:"Postavite oklade od",place:"Postavi",bet:"kladnja",bets:"kladnje"}},a=(e,t)=>{const a=t;return i[void 0!==a&&n.includes(a)?a:"en"][e]};function o(e,t){if(e){const n=document.createElement("style");n.innerHTML=t,e.appendChild(n)}}function r(e,t){const n=new URL(t);fetch(n.href).then((e=>e.text())).then((t=>{const n=document.createElement("style");n.innerHTML=t,e&&e.appendChild(n)})).catch((e=>{console.error("There was an error while trying to load client styling from URL",e)}))}function s(e,t){if(window.emMessageBus){const n=document.createElement("style");window.emMessageBus.subscribe(t,(t=>{n.innerHTML=t,e&&e.appendChild(n)}))}}const l=class{constructor(t){e(this,t),this.defaultLanguage="en",this.onMouseEnterHandler=(e,t)=>{t.scrollWidth>t.clientWidth&&(this.tooltipIndex=e)},this.onMouseLeaveHandler=()=>{this.tooltipIndex=null},this.mbSource=void 0,this.clientStyling=void 0,this.clientStylingUrl=void 0,this.translationUrl="",this.language="en",this.challenge=void 0,this.tooltipIndex=null,this.timeLeft=void 0}get infoItems(){const e=this.challenge.ChallengeLevels[0],t=e.Target,n=0===t.TargetType?`${a("placeBetsOf",this.language)} ${t.Turnover}`:1===t.TargetType?`${a("place",this.language)} ${t.Turnover} ${a("bet",this.language)}`:`${a("place",this.language)} ${t.BetCount} ${a("bets",this.language)}`,i=e.Rewards.map((e=>e.RewardDescription)).join(" + ");return[{lable:a("totalLevels",this.language),value:this.challenge.ChallengeLevels.length},{lable:a("level1",this.language),value:n},{lable:a("get",this.language),value:i}]}handleClientStylingChange(e,t){e!=t&&o(this.stylingContainer,this.clientStyling)}handleClientStylingUrlChange(e,t){e!=t&&r(this.stylingContainer,this.clientStylingUrl)}handleMbSourceChange(e,t){e!=t&&s(this.stylingContainer,`${this.mbSource}.Style`)}connectedCallback(){this.timerId=setInterval((()=>{this.updateTime()}),1e3)}componentWillLoad(){this.translationUrl&&(async e=>{if(e)try{const n=await fetch(e);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const a=await n.json();t=a,Object.keys(t).forEach((e=>{for(let n in t[e])i[e][n]=t[e][n]}))}catch(e){console.error("Failed to fetch or parse translations from URL:",e)}var t})(this.translationUrl),this.updateTime()}componentDidLoad(){this.stylingContainer&&(this.mbSource&&s(this.stylingContainer,`${this.mbSource}.Style`),this.clientStyling&&o(this.stylingContainer,this.clientStyling),this.clientStylingUrl&&r(this.stylingContainer,this.clientStylingUrl))}disconnectedCallback(){this.stylingSubscription&&this.stylingSubscription.unsubscribe(),clearInterval(this.timerId)}updateTime(){var e;this.timeLeft=function(e){const t=new Date;let n=new Date(e).getTime()-t.getTime();if(n<=0)return;const i=Math.floor(n/864e5);n-=864e5*i;const a=Math.floor(n/36e5);n-=36e5*a;const o=Math.floor(n/6e4);n-=6e4*o;const r=Math.floor(n/1e3),s=e=>e.toString().padStart(2,"0");return`${s(i)} : ${s(a)} : ${s(o)} : ${s(r)}`}(null===(e=this.challenge)||void 0===e?void 0:e.ChallengeEndTime)}renderInfoItem(e,n){return t("div",{class:"info-item",onMouseEnter:e=>this.onMouseEnterHandler(n,e.currentTarget),onMouseLeave:this.onMouseLeaveHandler},t("span",{class:"info-item__label"},e.lable),e.value,this.tooltipIndex===n&&t("div",{class:"info-item__tooltip"},e.value))}renderCardBadge(){return t("div",{class:"card__badge"},this.timeLeft?[a("endsIn",this.language)," - ",t("span",null,this.timeLeft)]:a("expired",this.language))}render(){return t("div",{key:"ddbd3e0d20b4d75ed70120798c45d7c03715b7df",ref:e=>this.stylingContainer=e},t("div",{key:"3ca0c4b6ad25b4f60077b894bf73c9686f67a677",class:"card"},t("img",{key:"1712546c27e75e04bde5832c521038bfd418e57f",class:"card__image",src:this.challenge.ChallengePresentations[this.language].Url||this.challenge.ChallengePresentations[this.defaultLanguage].Url}),this.renderCardBadge(),t("div",{key:"238041db616391c2594bef46778649b8b6282097",class:"card__content"},t("h1",{key:"d377b99c7758460df8b1a6e8e39059959347430f",class:"card__title"},this.challenge.ChallengePresentations[this.language].PresentationName||this.challenge.ChallengePresentations[this.defaultLanguage].PresentationName),this.infoItems.map(((e,t)=>this.renderInfoItem(e,t))),t("button",{key:"b53707ce7881cbf16321e3d3728a0e769af6589a",class:"card__button"},a("viewDetails",this.language)))))}static get watchers(){return{clientStyling:["handleClientStylingChange"],clientStylingUrl:["handleClientStylingUrlChange"],mbSource:["handleMbSourceChange"]}}};l.style='.card {\n width: 308px;\n border-radius: 16px;\n border: 2px solid var(--emw--button-border-color, rgba(221, 255, 207, 0.1019607843));\n background-color: var(--emw--color-background, #141515);\n box-sizing: border-box;\n position: relative;\n}\n@container challenge-list (max-width: 576px) {\n .card {\n width: 100%;\n }\n}\n.card:hover {\n background: linear-gradient(90deg, rgb(0, 62, 92) 0%, rgb(17, 59, 33) 100%);\n cursor: pointer;\n}\n.card__image {\n width: 100%;\n height: 200px;\n border-radius: 16px 16px 0 0;\n}\n@container challenge-list (max-width: 576px) {\n .card__image {\n height: 224px;\n }\n}\n.card__title {\n color: var(--emw--color-white, #FFFFFF);\n font-size: var(--emw--font-size-medium, 16px);\n margin: 0 0 10px;\n}\n.card__content {\n padding: 20px;\n}\n.card__button {\n margin-top: 20px;\n width: 100%;\n height: 34px;\n background: transparent;\n text-transform: uppercase;\n border-radius: var(--emw--button-border-radius, 99px);\n border: 2px solid var(--emw--button-border-color, #727672);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n color: var(--emw--color-secondary, #e9931e);\n}\n.card__button:hover {\n border-color: var(--emw--color-secondary, #e9931e);\n cursor: pointer;\n}\n.card__badge {\n position: absolute;\n background: white;\n top: 6px;\n right: 6px;\n border-radius: 30px;\n padding: 2px 12px;\n line-height: 22px;\n font-weight: var(--emw--font-weight-medium, 500);\n font-size: var(--emw--font-size-x-small, 12px);\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n backdrop-filter: blur(20px);\n}\n.card__badge span {\n font-weight: var(--emw--font-weight-bold, 700);\n}\n\n.info-item {\n line-height: 24px;\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n color: var(--emw--color-primary, #1dbf51);\n}\n@container challenge-list (min-width: 576px) {\n .info-item {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: bottom;\n }\n}\n.info-item__label {\n font-weight: var(--emw--font-weight-medium, 500);\n margin-right: 3px;\n color: var(--emw--color-gray-150, #C8D6CE);\n}\n.info-item__tooltip {\n position: absolute;\n line-height: 22px;\n padding: 8px 12px;\n border-radius: 8px;\n opacity: 1;\n z-index: 200;\n white-space: nowrap;\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n color: var(--emw--color-white, #FFFFFF);\n background-color: var(--emw--color-background-secondary, #1B1C2B);\n}\n.info-item__tooltip::before {\n content: "";\n position: absolute;\n top: -5px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid var(--emw--color-background-secondary, #1B1C2B);\n width: 0;\n height: 0;\n z-index: 201;\n}';export{l as C}