@everymatrix/casino-challenge-details 0.9.27 → 0.9.28

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 (22) hide show
  1. package/dist/casino-challenge-details/casino-challenge-details-8f737e06.js +7 -0
  2. package/dist/casino-challenge-details/casino-challenge-details_4.entry.js +1 -1
  3. package/dist/casino-challenge-details/index.esm.js +1 -1
  4. package/dist/cjs/{casino-challenge-details-df1d40f7.js → casino-challenge-details-8c125023.js} +601 -302
  5. package/dist/cjs/casino-challenge-details_4.cjs.entry.js +5 -10
  6. package/dist/cjs/index.cjs.js +1 -1
  7. package/dist/collection/assets/slot-machine.svg +39 -0
  8. package/dist/collection/assets/sportsbook.svg +46 -0
  9. package/dist/collection/components/casino-challenge-details/casino-challenge-details.css +66 -5
  10. package/dist/collection/components/casino-challenge-details/casino-challenge-details.js +411 -260
  11. package/dist/collection/components/components/casino-challenge-progress-bar.css +17 -11
  12. package/dist/collection/components/components/casino-challenge-progress-bar.js +3 -7
  13. package/dist/collection/utils/locale.utils.js +152 -42
  14. package/dist/collection/utils/types.js +36 -0
  15. package/dist/esm/{casino-challenge-details-252d9b9c.js → casino-challenge-details-8f737e06.js} +601 -302
  16. package/dist/esm/casino-challenge-details_4.entry.js +6 -11
  17. package/dist/esm/index.js +1 -1
  18. package/dist/types/components/casino-challenge-details/casino-challenge-details.d.ts +49 -31
  19. package/dist/types/utils/types.d.ts +77 -2
  20. package/package.json +1 -1
  21. package/dist/casino-challenge-details/casino-challenge-details-252d9b9c.js +0 -7
  22. package/dist/collection/assets/trophy.svg +0 -14
@@ -86,8 +86,8 @@ const TRANSLATIONS = {
86
86
  congrats: 'Congratulations!',
87
87
  forfeitNotification: 'Unfortunately, your progress has been forfeited, and you are no longer eligible to continue this challenge. Check out other available challenges!',
88
88
  completedNofitication: "You've successfully completed this challenge! Explore the next one and keep playing to earn more rewards!",
89
- expiredNotification: "Unfortunately, this challenge has expired and is no longer available to complete. Try another one that’s still active!",
90
- terms: "Terms & Conditions",
89
+ expiredNotification: 'Unfortunately, this challenge has expired and is no longer available to complete. Try another one that’s still active!',
90
+ terms: 'Terms & Conditions',
91
91
  contribution: 'contribution',
92
92
  endDate: 'End Date',
93
93
  back: 'Back',
@@ -98,7 +98,29 @@ const TRANSLATIONS = {
98
98
  isNotContributeToOne: 'Bets contribute to all started challenges',
99
99
  bonusMoney: 'Bonus Money',
100
100
  realMoney: 'Real Money',
101
- mixedMoney: 'Real and Bonus Money contribution'
101
+ mixedMoney: 'Real and Bonus Money contribution',
102
+ defaultRule: 'All events - ',
103
+ fundsUsed: 'Funds Used',
104
+ sportsbookRealMoney: 'Only Real Money bets can contribute',
105
+ sportsbookBonusMoney: 'Only Bonus bets can contribute',
106
+ sportsbookMixMoney: 'Both Real Money and Bonus bets can contribute',
107
+ eligibleMatchTypes: 'Eligible Match Types',
108
+ preLiveMatchType: 'Only Pre-Match bets can contribute',
109
+ liveMatchType: 'Only Live bets can contribute',
110
+ mixMatchType: 'Both Pre-Match and Live bets can contribute',
111
+ eligibleBetTypes: 'Eligible Bet Types',
112
+ single: 'Single',
113
+ multi: 'Multi/Combi',
114
+ betBuilder: 'Only Bet Builder Bets',
115
+ nonBetBuilder: 'Only Non-Bet Builder Bets',
116
+ mixBetBuilder: 'Bet Builder & Non-Bet Builder Bets',
117
+ system: 'System',
118
+ banker: 'Only Banker Bets',
119
+ nonBanker: 'Only Non-Banker Bets',
120
+ mixBanker: 'Banker & Non-Banker Bets',
121
+ oddsPerSection: 'Odds per Selection',
122
+ totalOdds: 'Total Odds',
123
+ selections: 'Selections'
102
124
  },
103
125
  ro: {
104
126
  title: 'Provocări',
@@ -118,22 +140,44 @@ const TRANSLATIONS = {
118
140
  resume: 'Reia',
119
141
  pause: 'Pauză',
120
142
  join: 'Alătură-te pentru a începe',
121
- congrats: "Felicitări!",
122
- forfeitNotification: "Din păcate, progresul tău a fost abandonat și nu mai poți continua această provocare. Consultă celelalte provocări disponibile!",
123
- completedNofitication: "Ai finalizat cu succes această provocare! Explorează următoarea și continuă să joci pentru a câștiga mai multe recompense!",
124
- expiredNotification: "Din păcate, această provocare a expirat și nu mai este disponibilă pentru finalizare. Încearcă una care este încă activă!",
125
- terms: "Termeni și condiții",
126
- contribution: "contribuție",
127
- endDate: "Data de încheiere",
128
- back: "Înapoi",
129
- all: "Toate Provocările",
143
+ congrats: 'Felicitări!',
144
+ forfeitNotification: 'Din păcate, progresul tău a fost abandonat și nu mai poți continua această provocare. Consultă celelalte provocări disponibile!',
145
+ completedNofitication: 'Ai finalizat cu succes această provocare! Explorează următoarea și continuă să joci pentru a câștiga mai multe recompense!',
146
+ expiredNotification: 'Din păcate, această provocare a expirat și nu mai este disponibilă pentru finalizare. Încearcă una care este încă activă!',
147
+ terms: 'Termeni și condiții',
148
+ contribution: 'contribuție',
149
+ endDate: 'Data de încheiere',
150
+ back: 'Înapoi',
151
+ all: 'Toate Provocările',
130
152
  contributionType: 'Tip de contribuție',
131
153
  contributionRule: 'Regulă de contribuție',
132
154
  isContributeToOne: 'Pariurile contribuie doar la provocarea începută cel mai devreme (dacă există mai multe provocări începute)',
133
155
  isNotContributeToOne: 'Pariurile contribuie la toate provocările începute',
134
156
  bonusMoney: 'Bani bonus',
135
157
  realMoney: 'Bani reali',
136
- mixedMoney: 'Contribuție în bani reali și bonus'
158
+ mixedMoney: 'Contribuție în bani reali și bonus',
159
+ defaultRule: 'Toate evenimentele - ',
160
+ fundsUsed: 'Funds Used',
161
+ sportsbookRealMoney: 'Only Real Money bets can contribute',
162
+ sportsbookBonusMoney: 'Only Bonus bets can contribute',
163
+ sportsbookMixMoney: 'Both Real Money and Bonus bets can contribute',
164
+ eligibleMatchTypes: 'Eligible Match Types',
165
+ preLiveMatchType: 'Only Pre-Match bets can contribute',
166
+ liveMatchType: 'Only Live bets can contribute',
167
+ mixMatchType: 'Both Pre-Match and Live bets can contribute',
168
+ eligibleBetTypes: 'Eligible Bet Types',
169
+ single: 'Single',
170
+ multi: 'Multi/Combi',
171
+ betBuilder: 'Only Bet Builder Bets',
172
+ nonBetBuilder: 'Only Non-Bet Builder Bets',
173
+ mixBetBuilder: 'Bet Builder & Non-Bet Builder Bets',
174
+ system: 'System',
175
+ banker: 'Only Banker Bets',
176
+ nonBanker: 'Only Non-Banker Bets',
177
+ mixBanker: 'Banker & Non-Banker Bets',
178
+ oddsPerSection: 'Odds per Selection',
179
+ totalOdds: 'Total Odds',
180
+ selections: 'Selections'
137
181
  },
138
182
  fr: {
139
183
  title: 'Défis',
@@ -153,22 +197,44 @@ const TRANSLATIONS = {
153
197
  resume: 'Reprendre',
154
198
  pause: 'Pause',
155
199
  join: 'Rejoindre pour commencer',
156
- congrats: "Félicitations !",
200
+ congrats: 'Félicitations !',
157
201
  forfeitNotification: "Malheureusement, votre progression a été abandonnée et vous n'êtes plus éligible pour continuer ce défi. Découvrez les autres défis disponibles !",
158
- completedNofitication: "Vous avez réussi ce défi ! Découvrez le suivant et continuez à jouer pour gagner plus de récompenses !",
159
- expiredNotification: "Malheureusement, ce défi a expiré et n’est plus disponible à compléter. Essayez-en un autre qui est encore actif !",
160
- terms: "Termes et conditions",
161
- contribution: "contribution",
162
- endDate: "Date de fin",
163
- back: "Retour",
164
- all: "Tous les Défis",
202
+ completedNofitication: 'Vous avez réussi ce défi ! Découvrez le suivant et continuez à jouer pour gagner plus de récompenses !',
203
+ expiredNotification: 'Malheureusement, ce défi a expiré et n’est plus disponible à compléter. Essayez-en un autre qui est encore actif !',
204
+ terms: 'Termes et conditions',
205
+ contribution: 'contribution',
206
+ endDate: 'Date de fin',
207
+ back: 'Retour',
208
+ all: 'Tous les Défis',
165
209
  contributionType: 'Type de contribution',
166
210
  contributionRule: 'Règle de contribution',
167
211
  isContributeToOne: "Les paris contribuent uniquement au premier défi commencé (s'il y a plusieurs défis commencés)",
168
212
  isNotContributeToOne: 'Les paris contribuent à tous les défis commencés',
169
213
  bonusMoney: 'Argent bonus',
170
214
  realMoney: 'Argent réel',
171
- mixedMoney: 'Contribution en argent réel et bonus'
215
+ mixedMoney: 'Contribution en argent réel et bonus',
216
+ defaultRule: 'Tous les événements - ',
217
+ fundsUsed: 'Funds Used',
218
+ sportsbookRealMoney: 'Only Real Money bets can contribute',
219
+ sportsbookBonusMoney: 'Only Bonus bets can contribute',
220
+ sportsbookMixMoney: 'Both Real Money and Bonus bets can contribute',
221
+ eligibleMatchTypes: 'Eligible Match Types',
222
+ preLiveMatchType: 'Only Pre-Match bets can contribute',
223
+ liveMatchType: 'Only Live bets can contribute',
224
+ mixMatchType: 'Both Pre-Match and Live bets can contribute',
225
+ eligibleBetTypes: 'Eligible Bet Types',
226
+ single: 'Single',
227
+ multi: 'Multi/Combi',
228
+ betBuilder: 'Only Bet Builder Bets',
229
+ nonBetBuilder: 'Only Non-Bet Builder Bets',
230
+ mixBetBuilder: 'Bet Builder & Non-Bet Builder Bets',
231
+ system: 'System',
232
+ banker: 'Only Banker Bets',
233
+ nonBanker: 'Only Non-Banker Bets',
234
+ mixBanker: 'Banker & Non-Banker Bets',
235
+ oddsPerSection: 'Odds per Selection',
236
+ totalOdds: 'Total Odds',
237
+ selections: 'Selections'
172
238
  },
173
239
  ar: {
174
240
  title: 'تحديات',
@@ -188,22 +254,44 @@ const TRANSLATIONS = {
188
254
  resume: 'استئناف',
189
255
  pause: 'إيقاف مؤقت',
190
256
  join: 'انضم للبدء',
191
- congrats: "تهانينا!",
192
- forfeitNotification: "للأسف، تم التخلي عن تقدمك ولم تعد مؤهلاً لمتابعة هذا التحدي. تحقق من التحديات الأخرى المتاحة!",
193
- completedNofitication: "لقد أكملت هذا التحدي بنجاح! استكشف التحدي التالي واستمر في اللعب للحصول على مزيد من الجوائز!",
194
- expiredNotification: "للأسف، هذا التحدي انتهت صلاحيته ولم يعد متاحًا لإكماله. جرّب تحديًا آخر لا يزال نشطًا!",
195
- terms: "الشروط والأحكام",
196
- contribution: "مساهمة",
197
- endDate: "تاريخ الانتهاء",
198
- back: "عودة",
199
- all: "جميع التحديات",
257
+ congrats: 'تهانينا!',
258
+ forfeitNotification: 'للأسف، تم التخلي عن تقدمك ولم تعد مؤهلاً لمتابعة هذا التحدي. تحقق من التحديات الأخرى المتاحة!',
259
+ completedNofitication: 'لقد أكملت هذا التحدي بنجاح! استكشف التحدي التالي واستمر في اللعب للحصول على مزيد من الجوائز!',
260
+ expiredNotification: 'للأسف، هذا التحدي انتهت صلاحيته ولم يعد متاحًا لإكماله. جرّب تحديًا آخر لا يزال نشطًا!',
261
+ terms: 'الشروط والأحكام',
262
+ contribution: 'مساهمة',
263
+ endDate: 'تاريخ الانتهاء',
264
+ back: 'عودة',
265
+ all: 'جميع التحديات',
200
266
  contributionType: 'نوع المساهمة',
201
267
  contributionRule: 'قاعدة المساهمة',
202
268
  isContributeToOne: 'تُحتسب الرهانات فقط للتحدي الذي بدأ أولاً (إذا كان هناك عدة تحديات بدأت)',
203
269
  isNotContributeToOne: 'تُحتسب الرهانات لجميع التحديات التي بدأت',
204
270
  bonusMoney: 'أموال المكافأة',
205
271
  realMoney: 'أموال حقيقية',
206
- mixedMoney: 'مساهمة من الأموال الحقيقية وأموال المكافأة'
272
+ mixedMoney: 'مساهمة من الأموال الحقيقية وأموال المكافأة',
273
+ defaultRule: 'كل الأحداث - ',
274
+ fundsUsed: 'Funds Used',
275
+ sportsbookRealMoney: 'Only Real Money bets can contribute',
276
+ sportsbookBonusMoney: 'Only Bonus bets can contribute',
277
+ sportsbookMixMoney: 'Both Real Money and Bonus bets can contribute',
278
+ eligibleMatchTypes: 'Eligible Match Types',
279
+ preLiveMatchType: 'Only Pre-Match bets can contribute',
280
+ liveMatchType: 'Only Live bets can contribute',
281
+ mixMatchType: 'Both Pre-Match and Live bets can contribute',
282
+ eligibleBetTypes: 'Eligible Bet Types',
283
+ single: 'Single',
284
+ multi: 'Multi/Combi',
285
+ betBuilder: 'Only Bet Builder Bets',
286
+ nonBetBuilder: 'Only Non-Bet Builder Bets',
287
+ mixBetBuilder: 'Bet Builder & Non-Bet Builder Bets',
288
+ system: 'System',
289
+ banker: 'Only Banker Bets',
290
+ nonBanker: 'Only Non-Banker Bets',
291
+ mixBanker: 'Banker & Non-Banker Bets',
292
+ oddsPerSection: 'Odds per Selection',
293
+ totalOdds: 'Total Odds',
294
+ selections: 'Selections'
207
295
  },
208
296
  hr: {
209
297
  title: 'Izazovi',
@@ -223,22 +311,44 @@ const TRANSLATIONS = {
223
311
  resume: 'Nastavi',
224
312
  pause: 'Pauza',
225
313
  join: 'Pridruži se za početak',
226
- congrats: "Čestitamo!",
227
- forfeitNotification: "Nažalost, tvoj napredak je izgubljen i više nisi podoban nastaviti ovaj izazov. Pogledaj ostale dostupne izazove!",
228
- completedNofitication: "Uspješno si završio ovaj izazov! Istraži sljedeći i nastavi igrati kako bi zaradio/la više nagrada!",
229
- expiredNotification: "Nažalost, ovaj izazov je istekao i više nije dostupan za dovršavanje. Probaj neki drugi koji je još aktivan!",
230
- terms: "Uvjeti i odredbe",
231
- contribution: "doprinos",
232
- endDate: "Datum završetka",
233
- back: "Nazad",
234
- all: "Svi Izazovi",
314
+ congrats: 'Čestitamo!',
315
+ forfeitNotification: 'Nažalost, tvoj napredak je izgubljen i više nisi podoban nastaviti ovaj izazov. Pogledaj ostale dostupne izazove!',
316
+ completedNofitication: 'Uspješno si završio ovaj izazov! Istraži sljedeći i nastavi igrati kako bi zaradio/la više nagrada!',
317
+ expiredNotification: 'Nažalost, ovaj izazov je istekao i više nije dostupan za dovršavanje. Probaj neki drugi koji je još aktivan!',
318
+ terms: 'Uvjeti i odredbe',
319
+ contribution: 'doprinos',
320
+ endDate: 'Datum završetka',
321
+ back: 'Nazad',
322
+ all: 'Svi Izazovi',
235
323
  contributionType: 'Vrsta doprinosa',
236
324
  contributionRule: 'Pravilo doprinosa',
237
325
  isContributeToOne: 'Oklade se pridonose samo najranije započetom izazovu (ako postoji više započetih izazova)',
238
326
  isNotContributeToOne: 'Oklade se pridonose svim započetim izazovima',
239
327
  bonusMoney: 'Bonus novac',
240
328
  realMoney: 'Stvarni novac',
241
- mixedMoney: 'Doprinos stvarnog i bonus novca'
329
+ mixedMoney: 'Doprinos stvarnog i bonus novca',
330
+ defaultRule: 'Svi događaji - ',
331
+ fundsUsed: 'Funds Used',
332
+ sportsbookRealMoney: 'Only Real Money bets can contribute',
333
+ sportsbookBonusMoney: 'Only Bonus bets can contribute',
334
+ sportsbookMixMoney: 'Both Real Money and Bonus bets can contribute',
335
+ eligibleMatchTypes: 'Eligible Match Types',
336
+ preLiveMatchType: 'Only Pre-Match bets can contribute',
337
+ liveMatchType: 'Only Live bets can contribute',
338
+ mixMatchType: 'Both Pre-Match and Live bets can contribute',
339
+ eligibleBetTypes: 'Eligible Bet Types',
340
+ single: 'Single',
341
+ multi: 'Multi/Combi',
342
+ betBuilder: 'Only Bet Builder Bets',
343
+ nonBetBuilder: 'Only Non-Bet Builder Bets',
344
+ mixBetBuilder: 'Bet Builder & Non-Bet Builder Bets',
345
+ system: 'System',
346
+ banker: 'Only Banker Bets',
347
+ nonBanker: 'Only Non-Banker Bets',
348
+ mixBanker: 'Banker & Non-Banker Bets',
349
+ oddsPerSection: 'Odds per Selection',
350
+ totalOdds: 'Total Odds',
351
+ selections: 'Selections'
242
352
  }
243
353
  };
244
354
  const translate = (key, customLang) => {
@@ -3552,6 +3662,10 @@ var eventsource = {exports: {}};
3552
3662
  }(typeof globalThis === 'undefined' ? (typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : commonjsGlobal) : globalThis));
3553
3663
  }(eventsource, eventsource.exports));
3554
3664
 
3665
+ const sportsbookSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExLjgxNTkgMS40OTc5OUMxNC45MzA0IDEuNDk3OTkgMTcuNzE4NSAyLjg5MDQyIDE5LjU5NzIgNS4wODU4OEMyMS4xMjg1IDYuODc1NjggMjIuMDU0MiA5LjE5NjU3IDIyLjA1NDIgMTEuNzM2M0MyMi4wNTQyIDE3LjM5MDkgMTcuNDcwNiAyMS45NzQ1IDExLjgxNTkgMjEuOTc0NUM5LjM2NjA3IDIxLjk3NDUgNy4xMTkzNCAyMS4xMTM3IDUuMzU2OTMgMTkuNjc4NkMzLjA1MDM0IDE3LjgwMDMgMS41Nzc2NCAxNC45NDA5IDEuNTc3NjQgMTEuNzM2M0MxLjU3NzY5IDYuMDgxODggNi4xNjE3OCAxLjQ5ODAzIDExLjgxNTkgMS40OTc5OVoiIGZpbGw9IiNFMEUwRTAiIHN0cm9rZT0id2hpdGUiLz4KPHBhdGggZD0iTTExLjgxNTkgMS40OTc5OUMxNC44OTQzIDEuNDk3OTkgMTcuNjUyMiAyLjg1ODkzIDE5LjUyOTggNS4wMTA2OEMyMC42ODQzIDguNzMxMzIgMTkuNjMyNCAxMy4xOTUgMTYuNDEyNiAxNi40MTVDMTMuMjcwNSAxOS41NTcyIDguOTQyMjYgMjAuNjM1OSA1LjI3Njg2IDE5LjYxMjJDMy4wMTY0IDE3LjczMzIgMS41Nzc2NCAxNC45MDM2IDEuNTc3NjQgMTEuNzM2M0MxLjU3NzY4IDYuMDgxODggNi4xNjE3OCAxLjQ5ODAzIDExLjgxNTkgMS40OTc5OVoiIGZpbGw9IndoaXRlIiBzdHJva2U9IndoaXRlIi8+CjxwYXRoIGQ9Ik01Ljk1ODUgNi4zMzgxOEM1Ljk1ODUgNi4zMzgxOCA3LjM5Njk0IDQuMTAyOTcgOS4zNjUzMSAzLjU3MTk5QzkuMzY1MzEgMy41NzE5OSAxMS4xMDYzIDMuNDU4MTQgMTMuMDM3IDUuMDEyNDFDMTMuMDM3IDUuMDEyNDEgMTIuMzE3OCA4LjYxMTE1IDEyLjA5MDggOC45MTQyM0MxMi4wOTA4IDguOTE0MjMgNy44ODg5MSA5Ljg5OTMgNy42NjE3NCAxMC4wMTMxQzcuNjYyIDEwLjAxMyA2LjMzNjk1IDguMTU2NTMgNS45NTg1IDYuMzM4MThaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xNy4wODg0IDIuMzk3MzRWNC40ODEyN0MxNy4wODg0IDQuNDgxMjcgMTkuNDczMiA2LjI2MTkzIDIwLjAwMjkgNy44NTMzNkwyMS44OTU0IDguMDA0OUMyMS44OTUyIDguMDA0OSAyMC43OTgxIDQuNDA1OSAxNy4wODg0IDIuMzk3MzRaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xNS4yNzA2IDEyLjMyNDFMMTkuMTMyIDExLjgzMTZDMTkuMTMyIDExLjgzMTYgMjAuMDQwNSAxMy40MjI4IDIwLjA0MDUgMTUuNzMzOUMyMC4wNDA1IDE1LjczMzkgMTguMzM3MiAxOC4wNDU1IDE2Ljg2MDYgMTguNjEzOUwxMy43NTY4IDE2Ljc1NjlMMTUuMjcwNiAxMi4zMjQxWiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNNi4xNDc4MSAxNC4yNTYzQzYuMTQ3ODEgMTQuMjU2MyA3Ljg1MTEyIDE2LjY0MjggOS4xMzgyMiAxNy42NjU4TDguMDQwODEgMjAuMjhDOC4wNDA4MSAyMC4yOCA1LjczMTQxIDIwLjAxNDkgNC41OTYzMSAxOS4wNjc1QzQuNTk2MzEgMTkuMDY3NSAzLjI3MSAxNy40NzY0IDMuMjcxIDE1LjE2NTVMNi4xNDc4MSAxNC4yNTYzWiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNMSAxMS40NTI3SDEuNjQzODVDMS42NDM4NSAxMS40NTI3IDEuODMyODEgOC44MzgwNCAzLjAwNjEyIDcuMjA4OTNWNS41MDM5MUMzLjAwNjA2IDUuNTA0MSAxLjMwMjc1IDcuNTEyNjYgMSAxMS40NTI3WiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNMTEuMTg5OSAyMi40NjA4TDExLjIyIDIyLjIxMjRDMTEuMjIgMjIuMjEyNCAxNC42NjQ3IDIxLjc1NzYgMTUuODM4NSAyMS4wNzU2TDE2LjMxMjYgMjEuNDkwOEMxNi4zMTI2IDIxLjQ5MDggMTQuMTg3NSAyMi42NDA3IDExLjE4OTkgMjIuNDYwOFoiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTguMjMwMjIgMS41NjQwNUw5LjI5MDIxIDEuNjAxNzRMMTAuMjU2MyAxLjEwMjA1QzEwLjI1NiAxLjEwMjA1IDkuMTc2NjIgMS4yMjMwMiA4LjIzMDIyIDEuNTY0MDVaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xMi45Mzg5IDUuMTA2MzZMMTIuOTE2MyA0Ljk5NTAxQzEzLjA0MzIgNC45NjkzOCAxNi4wMzU4IDQuMzc3MzIgMTcuMjAyMiA0LjQxMTMyTDE3LjE5ODggNC41MjUxN0MxNi4wNDM5IDQuNDg3NDkgMTIuOTY5NSA1LjA5OTk3IDEyLjkzODkgNS4xMDYzNloiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTE5LjE1OTQgMTEuOTIxNUwxOS4wNzM3IDExLjg0NzFDMTkuODA5IDExIDE5Ljk2NjkgNy44NDk5NCAxOS45NjgzIDcuODE4MTJMMjAuMDgxOSA3LjgyMzc4QzIwLjA3NTUgNy45NTQ5IDE5LjkyMDggMTEuMDQ1NiAxOS4xNTk0IDExLjkyMTVaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0yMS43MDgxIDE1LjkzMTZMMTkuOTc5IDE1Ljc5MTZMMTkuOTg2NiAxNS42NzhMMjEuNzU5NCAxNS44MDM0TDIxLjcwODEgMTUuOTMxNloiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTEyLjAwNzEgOC44ODI3NEwxNS4zMDA1IDEyLjQ2MzJMMTUuMzg0MSAxMi4zODYzTDEyLjA5MDcgOC44MDU4NEwxMi4wMDcxIDguODgyNzRaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xNS44NTE2IDIxLjIxNDFMMTUuNzY3MSAyMS4xMzgyQzE2LjA5NTggMjAuNzcyNSAxNi44NDA4IDE4LjUzNzggMTYuODQ4MiAxOC41MTUxTDE2Ljk1NTkgMTguNTUxM0MxNi45MjU2IDE4LjY0NDUgMTYuMTk2MyAyMC44MzEyIDE1Ljg1MTYgMjEuMjE0MVoiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTguOTg5NDMgMTcuNzY1OUw4Ljk3Mzg4IDE3LjY1MzdDOS4wMTM4IDE3LjY0NzggMTMuMDA0MyAxNy4xMDA2IDEzLjc4MTQgMTYuNjkzM0wxMy44MzQ3IDE2Ljc5MzhDMTMuMDM5OCAxNy4yMTAyIDkuMTU0MjggMTcuNzQzNyA4Ljk4OTQzIDE3Ljc2NTlaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik02LjE4MzEgMTQuMzg1OUw2LjA3MzczIDE0LjM1NTZDNi4xMTcwOCAxNC4xOTk3IDcuMTM3NjEgMTAuNTI1MyA3LjYzMTQzIDkuOTE2NDRMNy43MTk5MSA5Ljk4Nzg2QzcuMjQwODUgMTAuNTc4NSA2LjE5MzQ1IDE0LjM0ODMgNi4xODMxIDE0LjM4NTlaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xMS4yOTUgMjIuMzExNUM5LjQwODA5IDIxLjgyIDcuOTYwNTYgMjAuMjY0NSA3Ljk0NTggMjAuMjQ4N0w4LjAyOTM1IDIwLjE3MTZDOC4wNDM5MSAyMC4xODczIDkuNDY5NSAyMS43MTg3IDExLjMyMzYgMjIuMjAxM0wxMS4yOTUgMjIuMzExNVoiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTMuMjc3ODcgMTUuMjM1OEMxLjQ2NDIxIDEzLjQ1NzYgMS41MTM5NSAxMS4zOTE0IDEuNTE0OTQgMTEuMzcxMkwxLjYyODUzIDExLjM3NDlDMS42Mjc1NCAxMS4zOTU2IDEuNTgwNzYgMTMuNDEzIDMuMzU3NDcgMTUuMTU0NUwzLjI3Nzg3IDE1LjIzNThaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0yLjkzOTg0IDcuMzEyNDJMMi44NzE1OCA3LjIyMTc2QzIuODg1MTUgNy4yMTE4OCA0LjIyOTcxIDYuMjEzMyA2LjE1ODg3IDYuMjg2NjlMNi4xNTQyIDYuNDAwMjhDNC4yNjYxNCA2LjMyMjE0IDIuOTUzMTUgNy4zMDI1NCAyLjkzOTg0IDcuMzEyNDJaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik05LjIzNjYyIDEuNTEzOTdMOS4zMjE3OCAzLjYzMDc0TDkuNDM1MDEgMy42MjYxOEw5LjM0OTg1IDEuNTA5NDJMOS4yMzY2MiAxLjUxMzk3WiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNNC4yMTk3OSAxOS4zMjg5TDQuMjk1NjUgMTkuNDEzNUw0LjcwNjIxIDE5LjA0NUw0LjYzMDM0IDE4Ljk2MDVMNC4yMTk3OSAxOS4zMjg5WiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNMTEuMTkwNyAyMi40NTQ0TDExLjE4OTkgMjIuNDYwOEMxNC4xODc1IDIyLjY0MDQgMTYuMzEyNiAyMS40OTA2IDE2LjMxMjYgMjEuNDkwNkwxNi4zMTAxIDIxLjQ4ODNDMTQuOTQyNyAyMi4xMTk5IDEzLjQyMSAyMi40NzQ0IDExLjgxNiAyMi40NzQ0QzExLjYwNjEgMjIuNDc0NyAxMS4zOTc5IDIyLjQ2NjUgMTEuMTkwNyAyMi40NTQ0WiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNOS4zNTAzOSAxLjUxMDU1TDkuMzUyODIgMS41NjkxOUwxMC4yNTYxIDEuMTAyMDVDMTAuMjU2MSAxLjEwMjA1IDkuMTc2NjQgMS4yMjMwMiA4LjIyOTk4IDEuNTY0MDVMOS4yNDA0MiAxLjYwMDAyTDkuMjM2OTkgMS41MTUyOUw5LjM1MDM5IDEuNTEwNTVaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xMi45Mzg5IDUuMTA2NDNDMTIuOTQxNiA1LjEwNTcxIDEyLjk3MDkgNS4xMDAwNCAxMy4wMjE3IDUuMDkwMTZDMTMuMDMxOCA1LjA0MDg3IDEzLjAzNzIgNS4wMTI1NCAxMy4wMzcyIDUuMDEyNTRDMTMuMDIyNyA1LjAwMDc1IDEzLjAwODYgNC45OTEzMyAxMi45OTQxIDQuOTc5OEMxMi45NTM3IDQuOTg3NyAxMi45MjU5IDQuOTkzMzcgMTIuOTE2MyA0Ljk5NTM1TDEyLjkzODkgNS4xMDY0M1oiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTE3LjE0NDEgNC41MjQwNEMxNy4xNjIzIDQuNTI0NSAxNy4xODEzIDQuNTI0MzEgMTcuMTk5IDQuNTI1MDNMMTcuMjAyNCA0LjQxMTE4QzE3LjE2NjIgNC40MTAxOSAxNy4xMjggNC40MDk3MyAxNy4wODg0IDQuNDA5NzNWNC40ODE0MUMxNy4wODg0IDQuNDgxNDEgMTcuMTExMiA0LjQ5OTE0IDE3LjE0NDEgNC41MjQwNFoiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTIwLjA3OTYgNy44NTkzQzIwLjA4MDQgNy44NDI5MSAyMC4wODExIDcuODI5NzkgMjAuMDgxMyA3LjgyMzkxTDE5Ljk4OTMgNy44MTkyN0MxOS45OTMyIDcuODMwNTEgMTkuOTk5MSA3Ljg0MTc0IDIwLjAwMjcgNy44NTI5N0wyMC4wNzk2IDcuODU5M1oiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTE5LjE1ODcgMTEuOTIwN0MxOS4xNjI5IDExLjkxNTggMTkuMTY2NiAxMS45MSAxOS4xNzA5IDExLjkwNTNDMTkuMTQ1OCAxMS44NTcgMTkuMTMxNiAxMS44MzE2IDE5LjEzMTYgMTEuODMxNkwxOS4wODA4IDExLjgzNzlDMTkuMDc4NCAxMS44NDA5IDE5LjA3NjIgMTEuODQ0MyAxOS4wNzQgMTEuODQ2OUwxOS4xNTg3IDExLjkyMDdaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0yMS43MDQxIDE1LjkzMTNMMjEuNzA4MSAxNS45MzE2TDIxLjc1OTMgMTUuODAzMkwyMS43NTU2IDE1LjgwM0MyMS43MzgxIDE1Ljg0NTggMjEuNzIxOCAxNS44ODkgMjEuNzA0MSAxNS45MzEzWiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNMTIuMTI2OSA4Ljg0NzI0TDEyLjA4ODkgOC44MDU2TDEyLjAwNTQgOC44ODI2OUwxMi4wNDQzIDguOTI1MzJDMTIuMDc0NiA4LjkxODIgMTIuMDkwOSA4LjkxNDI1IDEyLjA5MDkgOC45MTQyNUMxMi4xMDE4IDguODk5NjkgMTIuMTE0MSA4Ljg3NTU4IDEyLjEyNjkgOC44NDcyNFoiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTE1LjM4MTkgMTIuMzg1OUwxNS4zMTkzIDEyLjMxNzZMMTUuMjcwNSAxMi4zMjRMMTUuMjQzNCAxMi40MDI5TDE1LjI5ODYgMTIuNDYyOEwxNS4zODE5IDEyLjM4NTlaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xMy43ODEzIDE2LjY5MzNDMTMuNzgwMyAxNi42OTM4IDEzLjc3OSAxNi42OTQzIDEzLjc3ODEgMTYuNjk0N0wxMy43NTY4IDE2Ljc1NjhMMTMuODI1NiAxNi43OThDMTMuODI4MyAxNi43OTY3IDEzLjgzMTUgMTYuNzk1MyAxMy44MzQyIDE2Ljc5MzhMMTMuNzgxMyAxNi42OTMzWiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNOS4xMDI0OSAxNy42MzU0QzkuMDI0NDEgMTcuNjQ2NSA4Ljk3NzgzIDE3LjY1MyA4Ljk3Mzg4IDE3LjY1MzdMOC45ODk0MyAxNy43NjU4QzkuMDAzIDE3Ljc2MzkgOS4wNDM2NSAxNy43NTg0IDkuMTAzNDggMTcuNzUwMUw5LjEzODkyIDE3LjY2NThDOS4xMjY2NyAxNy42NTY0IDkuMTE0MDggMTcuNjQ1MSA5LjEwMjQ5IDE3LjYzNTRaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik03LjcxNjA2IDkuOTkyODdDNy43MTczMiA5Ljk5MTQyIDcuNzE4NSA5Ljk4OTQ0IDcuNzE5NzUgOS45ODc5M0w3LjYzMTI3IDkuOTE2NUM3LjYyNTYgOS45MjM2MiA3LjYxOTIxIDkuOTMzNSA3LjYxMzI4IDkuOTQxODdDNy42NDM1OSA5Ljk4NjQ4IDcuNjYyNTYgMTAuMDEzMSA3LjY2MjU2IDEwLjAxMzFDNy42NzIxOCAxMC4wMDc5IDcuNjkxODggMTAuMDAxIDcuNzE2MDYgOS45OTI4N1oiIGZpbGw9IiMzQTNBMzkiLz4KPHBhdGggZD0iTTYuMDk2NDMgMTQuMjcyOEM2LjA4NDM4IDE0LjMxNTQgNi4wNzYyMSAxNC4zNDQ4IDYuMDczMjQgMTQuMzU1Nkw2LjE4MjYxIDE0LjM4NTlDNi4xODMzNCAxNC4zODM0IDYuMTg5MjcgMTQuMzYxOSA2LjE5ODg5IDE0LjMyNzJDNi4xNjgzMiAxNC4yODUxIDYuMTQ3ODkgMTQuMjU2NSA2LjE0Nzg5IDE0LjI1NjVMNi4wOTY0MyAxNC4yNzI4WiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNOC4wNjkyNyAyMC4yMTI4QzguMDQ2NjEgMjAuMTg5NiA4LjAzMDYgMjAuMTcyOSA4LjAyOTM1IDIwLjE3MTRMNy45NDU4IDIwLjI0ODZDNy45NDY3OSAyMC4yNDk2IDcuOTUzOTEgMjAuMjU3MiA3Ljk2NjQ5IDIwLjI3MDVDOC4wMTE1NiAyMC4yNzY1IDguMDQxMTQgMjAuMjgwMiA4LjA0MTE0IDIwLjI4MDJMOC4wNjkyNyAyMC4yMTI4WiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNMy4zNTYyMSAxNS4xNTQyQzMuMzUyMDMgMTUuMTUwMSAzLjM0ODkgMTUuMTQ2MiAzLjM0NDcyIDE1LjE0MkwzLjI3MSAxNS4xNjU1QzMuMjcxIDE1LjE4NzUgMy4yNzMyMiAxNS4yMDg0IDMuMjczNDEgMTUuMjMwNEMzLjI3NDg1IDE1LjIzMTkgMy4yNzYwOSAxNS4yMzM2IDMuMjc3NTkgMTUuMjM1MUwzLjM1NjIxIDE1LjE1NDJaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0xLjYyODQ0IDExLjM3NDlMMS41MTQ4NSAxMS4zNzEyQzEuNTE0NTkgMTEuMzczNSAxLjUxNDM5IDExLjQwNDIgMS41MTU1NyAxMS40NTI4SDEuNjI5MTZDMS42Mjc5OCAxMS40MDY5IDEuNjI4MTcgMTEuMzc3MyAxLjYyODQ0IDExLjM3NDlaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik01Ljk3MzMyIDYuMzk4NzVDNi4wMzM0MSA2LjM5OTIyIDYuMDkyNTggNi4zOTc3NyA2LjE1MzkyIDYuNDAwMkw2LjE1ODU5IDYuMjg2NjFDNi4xMDIzOSA2LjI4NDM3IDYuMDQ4NyA2LjI4NjM1IDUuOTkzNzUgNi4yODU4OUM1Ljk3MzA2IDYuMzE2NDYgNS45NTg1IDYuMzM4MTQgNS45NTg1IDYuMzM4MTRDNS45NjI5OCA2LjM1ODM3IDUuOTY4ODQgNi4zNzg1OSA1Ljk3MzMyIDYuMzk4NzVaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0yLjkzNzE2IDcuMzA4ODhDMi45NjAwOSA3LjI3NTM0IDIuOTgyNDkgNy4yNDE4NyAzLjAwNTg4IDcuMjA5MDZWNy4xMzA5OEMyLjkyMDg4IDcuMTg1MjEgMi44NzM4NCA3LjIxOTY2IDIuODcxMzQgNy4yMjE2NEwyLjkzNzE2IDcuMzA4ODhaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik05LjQzNTQyIDMuNjI3NDJMOS40MzMxOCAzLjU3MDVDOS4zOTA1NSAzLjU3MDk2IDkuMzY1NjQgMy41NzIyMSA5LjM2NTY0IDMuNTcyMjFDOS4zNTAwOSAzLjU3NjQzIDkuMzM1NiAzLjU4MjgyIDkuMzIwMzEgMy41ODcyM0w5LjMyMjAzIDMuNjMyNTZMOS40MzU0MiAzLjYyNzQyWiIgZmlsbD0iIzNBM0EzOSIvPgo8cGF0aCBkPSJNOS4zNTI0IDEuNTY5MzJMOS4zNDk5IDEuNTEwNjhMOS4yMzY1NyAxLjUxNTM2TDkuMjQwMDYgMS42MDAxNkw5LjI4OTU1IDEuNjAxODdMOS4zNTI0IDEuNTY5MzJaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik00LjYyNzU3IDE4Ljk2MDFMNC41NTk1NyAxOS4wMjEyQzQuNTgwOTggMTkuMDQ5MSA0LjU5NjAxIDE5LjA2NzUgNC41OTYwMSAxOS4wNjc1QzQuNjEwMDQgMTkuMDc5MyA0LjYyNjA1IDE5LjA4OTcgNC42NDA2MSAxOS4xMDExTDQuNzAzNDcgMTkuMDQ0N0w0LjYyNzU3IDE4Ljk2MDFaIiBmaWxsPSIjM0EzQTM5Ii8+CjxwYXRoIGQ9Ik0yMS44ODYzIDguMDA0MzFDMjEuNDQyMSA2LjgwODM0IDIwLjc5MTYgNS43MTIxOCAxOS45NzczIDQuNzYwMzhDMjAuMzAwNSA1Ljc2NTE1IDIwLjQ2NjYgNi44MjA2NiAyMC40ODIxIDcuODkxNzFMMjEuODg2MyA4LjAwNDMxWiIgZmlsbD0iIzJBMkIyQSIvPgo8cGF0aCBkPSJNMTkuNTE0NCAxMi43MDkyQzE4Ljg5MzMgMTQuMTY5MSAxNy45Nzg5IDE1LjU1NiAxNi43NjYyIDE2Ljc2ODdDMTYuMzgwNCAxNy4xNTQ1IDE1Ljk3NTYgMTcuNTA4MSAxNS41NTc5IDE3LjgzNDRMMTYuODIyOSAxOC41OTEzQzE2LjY5NjUgMTguOTY1MyAxNi4xMDIgMjAuNjkzIDE1Ljc5NjcgMjEuMDk4OEMxNC43MDY5IDIxLjcwMSAxMS44NzM1IDIyLjEyMTMgMTEuMzE3MSAyMi4xOTk0QzkuOTc2MjYgMjEuODQ4MyA4Ljg2MzM3IDIwLjk1MjIgOC4zNDQ3MSAyMC40Nzc5QzguMjkxMDEgMjAuNDc5MiA4LjIzNzA1IDIwLjQ4MjYgOC4xODMzNSAyMC40ODMyQzguNjU4MzkgMjAuOTI5OSA5LjgwNjU0IDIxLjg5NDcgMTEuMjExNyAyMi4yODY1TDExLjE5MTMgMjIuNDU0NUMxMS4zOTg1IDIyLjQ2NjUgMTEuNjA2NyAyMi40NzQ3IDExLjgxNjYgMjIuNDc0N0MxMy40MjE4IDIyLjQ3NDcgMTQuOTQzMyAyMi4xMjAyIDE2LjMxMDggMjEuNDg4N0wxNS45MDk0IDIxLjEzNzNDMTYuMjU4IDIwLjYyNTMgMTYuODc4MiAxOC43ODYyIDE2Ljk0ODcgMTguNTc0M0MxOC4yNzAzIDE4LjAwODYgMTkuNzM2OCAxNi4xMzQ4IDE5Ljk5NjMgMTUuNzkzMUwyMS43MDQ1IDE1LjkzMTZDMjEuNzIyMiAxNS44ODkzIDIxLjczODQgMTUuODQ1OSAyMS43NTYgMTUuODAzM0wyMC4wMzk2IDE1LjY4MkMyMC4wMzE4IDE0LjQyNzYgMTkuNzU5NiAxMy4zOSAxOS41MTQ0IDEyLjcwOTJaIiBmaWxsPSIjMkEyQjJBIi8+Cjwvc3ZnPgo=';
3666
+
3667
+ const slotMachineSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzMyNDdfNzg5MCkiPgo8cGF0aCBkPSJNMTkuODMyIDE3LjA0MzhMMjEuMzU2NCAxNy4wMzQ1TDIxLjM4NjQgMTMuNzMwN0wyMi4zNTAyIDEzLjc0NTdDMjIuMzUwMiAxMy43NDU3IDIyLjMyMDIgMTcuMjgwMSAyMi4zMjAyIDE3LjUyMzhDMjIuMzIwMiAxNy43Njk1IDIyLjE2NjQgMTguMDEzMiAyMS45NTI3IDE4LjA0MzJDMjEuNzM4OSAxOC4wNzMyIDIwLjA1NTIgMTguMDczMiAyMC4wNTUyIDE4LjA3MzJMMTkuODMyIDE3LjA0MzhaIiBmaWxsPSIjOUE5QTlBIi8+CjxwYXRoIGQ9Ik0yMC40OTIgMTIuNjgwNkMyMC40Njk1IDEzLjQyMzEgMjAuOTEzOSAxNC4xNDY4IDIxLjkwOTUgMTQuMTM3NEMyMi45MDUxIDE0LjEyODEgMjMuMjUwMSAxMy41MjYyIDIzLjI3MDggMTIuNzg1NkMyMy4yODk1IDEyLjExODEgMjIuODY3NiAxMS4yOTEyIDIxLjg2MjYgMTEuMzE5M0MyMC45NTMzIDExLjM0NTYgMjAuNTEwOCAxMi4wNjE4IDIwLjQ5MiAxMi42ODA2WiIgZmlsbD0iI0RCMEQyQiIvPgo8cGF0aCBkPSJNMjAuOTc4NyAxMi44NzkzQzIxLjMyNTYgMTMuMDI5MyAyMS4zNDA2IDEyLjYyOTkgMjEuNTI5OSAxMi4zNjU2QzIxLjcyMTIgMTIuMDk5MyAyMi4wMzk5IDExLjk5NjIgMjEuODYxOCAxMS43ODA2QzIxLjc1MTIgMTEuNjQ3NCAyMS4zODc0IDExLjUyMTggMjEuMDMxMiAxMS45ODMxQzIwLjc4NzQgMTIuMjk2MiAyMC42ODYyIDEyLjc1MTggMjAuOTc4NyAxMi44NzkzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEuMTk2NDUgMTguODA4QzEuMTk2NDUgMTguODA4IDEuMTk2NDUgMTEuMDA5OSAxLjI3MzMyIDkuNjgwNTJDMS4zNTAyIDguMzUxMTUgMi41MjU4MiA0Ljc0NTUyIDYuOTQ4OTUgMy4yODg2NUMxMS4zNzIxIDEuODMxNzcgMTUuNTMwOCAzLjQ1NTUyIDE3LjE3MzMgNC44NzQ5QzIwLjE5MDIgNy40ODMwMiAyMC4xMzk2IDkuOTExMTUgMjAuMTM5NiA5LjkxMTE1TDIwLjE2NTggMTguNjAzNkMyMC4xNjU4IDE4LjYwMzYgMjAuNzU2NCAxOS4zNjY4IDIwLjc1NjQgMTkuNTcxMUMyMC43NTY0IDE5Ljc3NTUgMjAuNzUyNyAyMC4yMzg2IDIwLjc1MjcgMjAuMjM4NkwwLjU4MTQ0OCAyMC4yOTExQzAuNTgxNDQ4IDIwLjI5MTEgMC41NjI2OTggMTkuNzQ3NCAwLjY2Mzk0OCAxOS41MTY4QzAuNzY1MTk4IDE5LjI4NjEgMS4xOTY0NSAxOC44MDggMS4xOTY0NSAxOC44MDhaIiBmaWxsPSIjQ0FDQUNBIi8+CjxwYXRoIGQ9Ik0xMC40Nzc3IDAuODc1NDg4QzkuNTY0NTMgMC44NzU0ODggOC45ODE0MSAxLjQ4MTExIDguNzk5NTMgMS45MzY3NEM4LjY0MjAzIDIuMzM0MjQgOC42Mjg5MSAyLjg2MTExIDguNjI4OTEgMi44NjExMUM4LjYyODkxIDIuODYxMTEgOS4xMTA3OCAyLjk2MjM2IDEwLjUxMTQgMi45NjIzNkMxMS45MTIgMi45NjIzNiAxMi4yODE0IDIuODI5MjQgMTIuMjgxNCAyLjgyOTI0QzEyLjI4MTQgMi44MjkyNCAxMi4zNDcgMi4yNjI5OSAxMi4xMzMzIDEuODcyOTlDMTEuODg5NSAxLjQyNjc0IDExLjQzMzkgMC44NzU0ODggMTAuNDc3NyAwLjg3NTQ4OFoiIGZpbGw9IiNEQjBBMjciLz4KPHBhdGggZD0iTTguOTcyMDQgMi40MDE4NUM5LjIxMjA0IDIuNjkwNiA5LjcwODkyIDIuNTI3NDcgMTAuMTU1MiAyLjE3MTIyQzEwLjUyNDUgMS44NzQ5NyAxMC45MzcgMS4zMTYyMiAxMC43MTk1IDEuMTI4NzJDMTAuNDA2NCAwLjg2MDU5NiA5Ljg3MjA0IDEuMDQwNiA5LjQwMTQyIDEuNDA2MjJDOS4xMDg5MiAxLjYzNDk3IDguNzU4MjkgMi4xNDY4NSA4Ljk3MjA0IDIuNDAxODVaIiBmaWxsPSIjRkY0RTIzIi8+CjxwYXRoIGQ9Ik05LjIyMzQ5IDIuMTc4NzZDOS4zNzE2MSAyLjI5Njg4IDkuNTc3ODYgMi4wODMxMyA5Ljg1NzI0IDEuODQ4NzZDMTAuMDkzNSAxLjY1MTg4IDEwLjQ0NiAxLjQ0NzUxIDEwLjMwOTEgMS4yODA2M0MxMC4xNzA0IDEuMTExODggOS44MDA5OSAxLjI2NTYzIDkuNTM0NzQgMS40NzkzOEM5LjI5ODQ5IDEuNjY1MDEgOC45OTI4NiAxLjk5NTAxIDkuMjIzNDkgMi4xNzg3NloiIGZpbGw9IiNGRkZERkQiLz4KPHBhdGggZD0iTTAuNjI4MzE1IDE5LjY4OTJDMC41MzY0NCAxOS44NTA1IDAuNDg5NTY1IDIyLjUyMDUgMC43MTA4MTUgMjIuNjg3NEMwLjkzMjA2NSAyMi44NTQyIDUuMTUyNjkgMjIuNzE1NSAxMC43MzA4IDIyLjcxNTVDMTYuMzA4OSAyMi43MTU1IDIwLjM4ODkgMjIuNjg3NCAyMC41ODM5IDIyLjQzOEMyMC44NjMzIDIyLjA3OCAyMC44NTAyIDE5LjY3MDUgMjAuNzY1OCAxOS41MzE3QzIwLjYwNDYgMTkuMjYxNyAxNS41NTg5IDE5LjQ5NjEgMTAuNzAyNyAxOS41MjQyQzUuNzA1ODIgMTkuNTUwNSAwLjc3MjY5IDE5LjQzNDIgMC42MjgzMTUgMTkuNjg5MloiIGZpbGw9IiM5QTlBOUEiLz4KPHBhdGggZD0iTTEuNjgxNjQgMjAuMzAwNkMxLjQ4NjY0IDIwLjM4MzEgMS40NjAzOSAyMS45MTEyIDEuNjgxNjQgMjEuOTY1NkMxLjk1MTY0IDIyLjAzMzEgOC4wNDE2NCAyMS45ODI0IDEwLjU5NTQgMjEuOTgyNEMxMy4xNDkxIDIxLjk4MjQgMTkuNDczNSAyMi4wNzYyIDE5LjcyMjkgMjEuODU0OUMxOS45NzIzIDIxLjYzMzcgMTkuOTQ5OCAyMC40MjQzIDE5Ljc4MjkgMjAuMjI5M0MxOS42MTYgMjAuMDM0MyAxMy4wODkxIDIwLjE4OTkgMTAuNjQ2IDIwLjE4OTlDOC4yMDI4OSAyMC4xODk5IDIuMDgxMDEgMjAuMTI4MSAxLjY4MTY0IDIwLjMwMDZaIiBmaWxsPSIjODU4NTg1Ii8+CjxwYXRoIGQ9Ik0yLjE4MjM3IDkuNjQxM0MyLjEyNjEyIDkuODM2MyAyLjA5OTg3IDE4LjE4OTQgMi4xODIzNyAxOC4yNDU3QzIuMjY0ODcgMTguMzAxOSAxOS4wNTc0IDE4LjM1NjMgMTkuMjI0MiAxOC4xODk0QzE5LjM5MTEgMTguMDIyNSAxOS4yODA1IDkuNzgwMDUgMTkuMjUyNCA5LjYxMzE3QzE5LjIyNDIgOS40NDYzIDEwLjYxOTkgOS4yNTMxNyAxMC42MTk5IDkuMjUzMTdMMi4xODIzNyA5LjY0MTNaIiBmaWxsPSIjNkY3MTc4Ii8+CjxwYXRoIGQ9Ik0yLjc2MDg2IDEwLjI2MzhDMi43Mjg5OSAxMC4zNSAyLjc3Nzc0IDE3LjY2NjMgMi44NTY0OSAxNy43NDY5QzIuOTM3MTEgMTcuODI3NSAxOC42MTAyIDE3LjcxNSAxOC42OTA5IDE3LjY1MTNDMTguNzcxNSAxNy41ODc1IDE4Ljc1NDYgMTAuMjczMiAxOC42OTA5IDEwLjIxNjlDMTguNjI3MSAxMC4xNTg4IDIuNzkyNzQgMTAuMTczOCAyLjc2MDg2IDEwLjI2MzhaIiBmaWxsPSIjM0EzODM5Ii8+CjxwYXRoIGQ9Ik0xMC43NTA4IDMuNDUzODZDNi45ODk1OCAzLjQyMDExIDQuNjg4OTYgNS4xMzk0OCAzLjY0MDgzIDYuNTMwNzNDMi41OTI3MSA3LjkyMTk4IDIuMDE4OTYgOS4yMDYzNiAyLjE4MDIxIDkuNjQxMzZDMi4yMjMzMyA5Ljc1OTQ4IDQuOTQwMjEgOS42NTI2MSAxMC40MzIxIDkuNjc1MTFDMTUuOTI0IDkuNjk3NjEgMTkuMTYwMiA5Ljc4MDExIDE5LjI1MDIgOS42MTMyM0MxOS4zNDIxIDkuNDQ2MzYgMTguOTY3MSA3LjU1ODIzIDE2LjkyNTIgNS44MDEzNkMxNS4yODY1IDQuMzg3NjEgMTMuMzQ5NiAzLjQ3NjM2IDEwLjc1MDggMy40NTM4NloiIGZpbGw9IiNGRkRCOEIiLz4KPHBhdGggZD0iTTIuNzkwMDQgOS4xMDE0N0MyLjc5MDA0IDkuMTAxNDcgNC42NTE5MSAzLjg3NzcyIDEwLjU3NjkgMy45MjgzNEMxNy4wNjYzIDMuOTg0NTkgMTguMzgyNSA5LjA2Mzk3IDE4LjM4MjUgOS4wNjM5N0wyLjc5MDA0IDkuMTAxNDdaIiBmaWxsPSIjRkZBRjI5Ii8+CjxwYXRoIGQ9Ik01LjYwMzg3IDYuNTI4ODFDNC40ODQ0OSA3LjU0NTA2IDMuOTk1MTIgOC41OTUwNiAzLjk5NTEyIDguNTk1MDZDMy45OTUxMiA4LjU5NTA2IDguMTY4ODcgOC42ODEzMSA4LjE4MDEyIDguNjE3NTZDOC4xOTMyNCA4LjUzNjkzIDUuNjAzODcgNi41Mjg4MSA1LjYwMzg3IDYuNTI4ODFaIiBmaWxsPSIjRkZENjFDIi8+CjxwYXRoIGQ9Ik04LjE5MTg0IDQuOTg5NUM3LjQzODA5IDUuMjMzMjUgNi43OTQ5NiA1LjU4MDEzIDYuMjU2ODQgNS45NjQ1QzYuOTY1NTkgNi42MDk1IDguOTI0OTYgOC4xMDU3NSA5LjE5MTIxIDguMjk1MTNDOS41MDgwOSA4LjUyMDEzIDkuNjEzMDkgOC42NDIgOS42ODQzNCA4LjU5ODg4QzkuNzQyNDYgOC41NjUxMyA5LjU4NDk2IDguMjY4ODggOS41MzQzNCA4LjE0N0M5LjQ0NjIxIDcuOTMxMzggOC40NzEyMSA1Ljc1ODI1IDguMTkxODQgNC45ODk1WiIgZmlsbD0iI0ZGRDYxQyIvPgo8cGF0aCBkPSJNMTEuNzE1IDQuNzMyMzFDMTEuMzI4OCA0LjY3MjMxIDEwLjg0NjkgNC42MTYwNiAxMC40MTk0IDQuNjE5ODFDOS44OTgxMiA0LjYyMzU2IDkuNTQzNzUgNC42NzYwNiA5LjA5Mzc1IDQuNzY2MDZDOS4wOTM3NSA0Ljc2NjA2IDEwLjU3MTIgOC40MjA0MyAxMC42MDMxIDguNTA4NTZDMTAuNjM2OSA4LjU5NjY4IDEwLjcxMTkgOC42ODY2OCAxMC43NTMxIDguNTA4NTZDMTAuNzkyNSA4LjMzMjMxIDExLjcxNSA0LjczMjMxIDExLjcxNSA0LjczMjMxWiIgZmlsbD0iI0ZGRDYxQyIvPgo8cGF0aCBkPSJNMTMuMjQ5OCA4LjY0OTE4QzEzLjI3NiA4LjcwNzMxIDE3LjI5MjMgOC42NzM1NiAxNy4yOTIzIDguNjczNTZDMTcuMjkyMyA4LjY3MzU2IDE2LjcxODUgNy41ODA0MyAxNS41MTQ4IDYuNTM0MThDMTUuNTE0OCA2LjUzMjMxIDEzLjIwMSA4LjUzODU2IDEzLjI0OTggOC42NDkxOFoiIGZpbGw9IiNGRkQ2MUMiLz4KPHBhdGggZD0iTTE0LjgwMzggNS45NDczOUMxNC4xOTI2IDUuNTE5ODkgMTMuNDY2OSA1LjEzNzM5IDEyLjYxNTcgNC44ODk4OUMxMi4zNzc2IDUuNzg5ODkgMTEuODU2MyA3Ljk3MDUyIDExLjgwMzggOC4yNDYxNEMxMS43ODMyIDguMzQ5MjcgMTEuNzEwMSA4LjU2ODY0IDExLjc2MDcgOC42MDk4OUMxMS44MTMyIDguNjUzMDIgMTIuMDAyNiA4LjUzMTE0IDEyLjE2NTcgOC4zNzM2NEMxMi4zNTEzIDguMTkzNjQgMTQuODAzOCA1Ljk0NzM5IDE0LjgwMzggNS45NDczOVoiIGZpbGw9IiNGRkQ2MUMiLz4KPHBhdGggZD0iTTcuNzk0NDQgMTMuOTcyNEM3Ljc2MDY5IDEyLjIwNDMgOC4yMTQ0NCAxMS4xODI0IDguNDQ2OTQgMTAuNzc5M0w0LjM4OTQ0IDEwLjc4NDlDNC4zODk0NCAxMC43ODQ5IDMuMzg4MTkgMTIuMDMxOCAzLjM3MTMxIDEzLjg0MTJDMy4zNTQ0NCAxNS42NTA1IDQuMzIwMDYgMTcuMjE0MyA0LjMyMDA2IDE3LjIxNDNMOC40MjgxOSAxNy4xOTc0QzguMjMxMzEgMTYuNzg0OSA3LjgyODE5IDE1LjcyNzQgNy43OTQ0NCAxMy45NzI0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEzLjE1NzcgMTMuOTcyNEMxMy4yMTQgMTIuMzM5MyAxMi44MTQ2IDExLjIzNDkgMTIuNjA0NiAxMC43NzM3TDguODc1MjUgMTAuNzc5M0M4LjY0NjUgMTEuMzI0OSA4LjIzNzc1IDEyLjUwNjIgOC4yNzE1IDEzLjk0MjRDOC4zMDcxMiAxNS41MDgxIDguNzE3NzUgMTYuNzQ1NiA4Ljg4ODM3IDE3LjE5NzRMMTIuNzM0IDE3LjE4MjRDMTIuODYzNCAxNi42Nzk5IDEzLjEwMTUgMTUuNTYwNiAxMy4xNTc3IDEzLjk3MjRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTcuMTk2MyAxMC43NjgzTDEzLjExODIgMTAuNzczOUMxMy4zNiAxMS4zNzU4IDEzLjc1NTcgMTIuNjA3NyAxMy42ODA3IDE0LjA4MTRDMTMuNjAzOCAxNS41NjQ2IDEzLjMzNzUgMTYuNzA4MyAxMy4yMSAxNy4xNzg5TDE3LjA3NDQgMTcuMTYyMUMxNy4wNzQ0IDE3LjE2MjEgMTguMDU4OCAxNS45Njc3IDE4LjE0NjkgMTQuMTA1OEMxOC4yMzMyIDEyLjI0MzkgMTcuMTk2MyAxMC43NjgzIDE3LjE5NjMgMTAuNzY4M1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01LjE4NDU3IDE3LjIxNDNMNy4wMzg5NSAxNy4yMDQ5QzcuMDM4OTUgMTcuMjA0OSA2Ljg5NjQ1IDE2LjY4MzYgNi4xOTE0NSAxNi43MDI0QzUuNDcxNDUgMTYuNzI0OSA1LjE4NDU3IDE3LjIxNDMgNS4xODQ1NyAxNy4yMTQzWiIgZmlsbD0iI0ZBQjAzNyIvPgo8cGF0aCBkPSJNMTAuMTM5NiAxNy4xOTM1TDExLjU2MDkgMTcuMTg2QzExLjU2MDkgMTcuMTg2IDExLjU0NzggMTYuNzU2NiAxMC44NTIxIDE2Ljc2NkMxMC4yNTIxIDE2Ljc3MzUgMTAuMTY0IDE3LjE0NDggMTAuMTM5NiAxNy4xOTM1WiIgZmlsbD0iI0ZGRDQyOSIvPgo8cGF0aCBkPSJNMTQuNzI0NCAxNy4xNzVMMTYuMzY4NyAxNy4xNjU2QzE2LjM2ODcgMTcuMTY1NiAxNi40NTMxIDE2LjY5NjkgMTYuMDI5NCAxNi42NTk0QzE1LjY2OTQgMTYuNjI3NSAxNS41ODEyIDE2Ljk2MzEgMTUuNTgxMiAxNi45NjMxQzE1LjU4MTIgMTYuOTYzMSAxNS41MDI1IDE2LjcyMTIgMTUuMTg5NCAxNi43MTU2QzE0LjgxMjUgMTYuNzA4MSAxNC43MDc1IDE3LjExODcgMTQuNzI0NCAxNy4xNzVaIiBmaWxsPSIjQTc1RkI3Ii8+CjxwYXRoIGQ9Ik0xNC4zODY3IDEwLjc3MThMMTYuNTQ0OCAxMC43NjgxQzE2LjU0NDggMTAuNzY4MSAxNi41NTggMTEuNDM5MyAxNS43MTYxIDExLjQ1NjJDMTQuNTE2MSAxMS40ODA2IDE0LjM4NjcgMTAuNzcxOCAxNC4zODY3IDEwLjc3MThaIiBmaWxsPSIjRkVCRjIxIi8+CjxwYXRoIGQ9Ik05Ljk5NjA4IDEwLjc3NTZDOS45OTYwOCAxMC43NzU2IDkuODU5MiAxMS4yMzg3IDkuOTU0ODMgMTEuMzI4N0MxMC4wNjczIDExLjQzMTggMTEuNTc4NiAxMS40NTI0IDExLjY4MzYgMTEuMzI0OUMxMS43ODg2IDExLjE5NTYgMTEuNjU3MyAxMC43NzM3IDExLjY1NzMgMTAuNzczN0w5Ljk5NjA4IDEwLjc3NTZaIiBmaWxsPSIjNUI2NDY3Ii8+CjxwYXRoIGQ9Ik01LjExNzE5IDEwLjc4MTNMNy4yNzM0NCAxMC43Nzc2QzcuMjczNDQgMTAuNzc3NiA3LjI5NDA2IDExLjMyNyA2LjMyNDY5IDExLjMzODJDNS4yMjU5NCAxMS4zNTMyIDUuMTE3MTkgMTAuNzgxMyA1LjExNzE5IDEwLjc4MTNaIiBmaWxsPSIjNEU5MjI2Ii8+CjxwYXRoIGQ9Ik05LjY4MjU1IDEyLjQ4OTRDOS42MDE5MiAxMi40OTUgOS40ODE5MiAxMi4xNTM4IDkuMzM3NTUgMTIuMTg1NkM5LjE5MzE3IDEyLjIxNzUgOC45OTI1NSAxMi4yNTY5IDkuMDMzOCAxMy4xODY5QzkuMDc1MDUgMTQuMTE2OSA5LjE0NjMgMTQuMTk1NiA5LjMzMDA1IDE0LjE4ODFDOS41MTM4IDE0LjE4MDYgOS43OTUwNSAxMy42NDQ0IDkuNzk1MDUgMTMuNjQ0NEM5Ljc5NTA1IDEzLjY0NDQgOS45OTE5MiAxMy41NiAxMC4xMjg4IDEzLjU1MDZDMTAuMjY1NyAxMy41NDMxIDEwLjM2MzIgMTMuNjY2OSAxMC41MzE5IDEzLjcyMzFDMTAuNzAwNyAxMy43Nzk0IDEwLjk0MDcgMTMuNzg2OSAxMC45NDA3IDEzLjc4NjlDMTAuOTQwNyAxMy43ODY5IDEwLjM3MjUgMTQuMjY2OSAxMC4xNzk0IDE0Ljg4MzhDOS45ODYzIDE1LjUwMDYgOS45Nzg4IDE2LjEwODEgMTAuMDI3NSAxNi4xNDc1QzEwLjA3NjMgMTYuMTg2OSAxMS41NDA3IDE2LjIwMzggMTEuNTk2OSAxNi4xNjQ0QzExLjY1MzIgMTYuMTI1IDExLjU3MjUgMTQuNDY3NSAxMS44Njg4IDEzLjk0ODFDMTIuMTY1IDEzLjQyODggMTIuNTY0NCAxMi44MDQ0IDEyLjU2NDQgMTIuODA0NEMxMi41NjQ0IDEyLjgwNDQgMTIuNDEyNSAxMi4zOTU2IDEyLjI4NSAxMi4zNDg4QzEyLjE1NzUgMTIuMyAxMS44ODU3IDEyLjUwMDYgMTEuNTQ4MiAxMi40ODU2QzExLjIxMjUgMTIuNDY4OCAxMC44MTg4IDEyLjEzNSAxMC42MiAxMi4wNzY5QzEwLjI4MjUgMTEuOTc3NSA5LjkyMjU1IDEyLjQ3MjUgOS42ODI1NSAxMi40ODk0WiIgZmlsbD0iI0ZGMkIyNiIvPgo8cGF0aCBkPSJNNC42MjM4NSAxMi40NUM0LjU0MzIzIDEyLjQ1NTcgNC40MzA3MyAxMi4xODM4IDQuMjgyNiAxMi4xNzQ0QzQuMTExOTggMTIuMTYzMiAzLjk4NjM1IDEyLjE4OTQgMy45NzUxIDEzLjExNzVDMy45NjU3MyAxNC4wMjg4IDQuMDkxMzUgMTQuMjE2MyA0LjI3NTEgMTQuMjA4OEM0LjQ1ODg1IDE0LjIwMTMgNC43MzgyMyAxMy42MzEzIDQuNzM4MjMgMTMuNjMxM0M0LjczODIzIDEzLjYzMTMgNC44ODgyMyAxMy41Mzc1IDUuMDI4ODUgMTMuNTg0NEM1LjE1ODIzIDEzLjYyNzUgNS4yNTk0OCAxMy43MTE5IDUuNDU2MzUgMTMuNzRDNS42MzI2IDEzLjc2NDQgNS44MzEzNSAxMy43OTQ0IDUuODMxMzUgMTMuNzk0NEM1LjgzMTM1IDEzLjc5NDQgNS4zMTU3MyAxNC4yNTc1IDUuMTIyNiAxNC44NzI1QzQuOTMxMzUgMTUuNDg5NCA0LjkyMTk4IDE2LjA5NjkgNC45NzA3MyAxNi4xMzYzQzUuMDE5NDggMTYuMTc1NyA2LjQ4Mzg1IDE2LjE5MjUgNi41NDAxIDE2LjE1MzJDNi41OTYzNSAxNi4xMTM4IDYuNTUxMzUgMTQuNTEyNSA2Ljg0NzYgMTMuOTkxM0M3LjE0Mzg1IDEzLjQ3IDcuNTA5NDggMTIuNzkxMyA3LjUwOTQ4IDEyLjc5MTNDNy41MDk0OCAxMi43OTEzIDcuMzU3NiAxMi4zODI1IDcuMjMwMSAxMi4zMzU3QzcuMTAyNiAxMi4yODY5IDYuNzY4ODUgMTIuNDQ2MyA2LjQzMzIzIDEyLjQyOTRDNi4wOTc2IDEyLjQxMjUgNS43MzE5OCAxMi4xMDUgNS41MjU3MyAxMi4wNzVDNS4xNDMyMyAxMi4wMTg4IDQuODYzODUgMTIuNDM1IDQuNjIzODUgMTIuNDVaIiBmaWxsPSIjRkYyQjI2Ii8+CjxwYXRoIGQ9Ik0xNC43ODY2IDEyLjM1NjJDMTQuNzA2IDEyLjM2MTkgMTQuNTYzNSAxMi4wNzUgMTQuNDIxIDEyLjEwNjlDMTQuMjc2NiAxMi4xMzg3IDE0LjExOTEgMTIuMTc4MSAxNC4xMTcyIDEzLjEwODFDMTQuMTE1MyAxMy44ODYyIDE0LjIyOTcgMTQuMSAxNC40MTM1IDE0LjEwOTRDMTQuNzA2IDE0LjEyMjUgMTQuODYxNiAxMy42MDY5IDE0Ljg2MTYgMTMuNjA2OUMxNC44NjE2IDEzLjYwNjkgMTUuMDY2IDEzLjUzMzcgMTUuMjAxIDEzLjUyNjJDMTUuMzM3OCAxMy41MTg3IDE1LjQ0NDcgMTMuNTkgMTUuNjEzNSAxMy42NDYyQzE1Ljc4MjIgMTMuNzAyNSAxNS45OTAzIDEzLjcyNSAxNS45OTAzIDEzLjcyNUMxNS45OTAzIDEzLjcyNSAxNS40NTIyIDE0LjE5IDE1LjI2MSAxNC44MDY5QzE1LjA2OTcgMTUuNDIzNyAxNS4wNjAzIDE2LjAzMTIgMTUuMTA5MSAxNi4wNzA2QzE1LjE1NzggMTYuMTEgMTYuNjIyMiAxNi4xMjY5IDE2LjY3ODUgMTYuMDg3NUMxNi43MzQ3IDE2LjA0ODEgMTYuNjYzNSAxNC40Njk0IDE2Ljk1OTcgMTMuOTVDMTcuMjU2IDEzLjQzMDYgMTcuNjUzNSAxMi45MjA2IDE3LjY1MzUgMTIuODA4MUMxNy42NTM1IDEyLjY5NTYgMTcuNDY2IDEyLjI3NTYgMTcuMzM2NiAxMi4yMjY5QzE3LjIwOTEgMTIuMTc4MSAxNi45NjkxIDEyLjM3NSAxNi42MzM1IDEyLjM2QzE2LjI5NzggMTIuMzQzMSAxNS44OTQ3IDEyLjAzIDE1LjY5NiAxMS45NzE5QzE1LjM1ODUgMTEuODcyNSAxNS4wMjg1IDEyLjMzOTQgMTQuNzg2NiAxMi4zNTYyWiIgZmlsbD0iI0ZGMkIyNiIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzMyNDdfNzg5MCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K';
3668
+
3555
3669
  var EChallengeLevelTargetType;
3556
3670
  (function (EChallengeLevelTargetType) {
3557
3671
  EChallengeLevelTargetType[EChallengeLevelTargetType["Accumulative"] = 0] = "Accumulative";
@@ -3620,14 +3734,50 @@ var EChallengeValidityType;
3620
3734
  EChallengeValidityType[EChallengeValidityType["Period"] = 0] = "Period";
3621
3735
  EChallengeValidityType[EChallengeValidityType["Date"] = 1] = "Date";
3622
3736
  })(EChallengeValidityType || (EChallengeValidityType = {}));
3737
+ var EContributedFrom;
3738
+ (function (EContributedFrom) {
3739
+ EContributedFrom[EContributedFrom["Casino"] = 0] = "Casino";
3740
+ EContributedFrom[EContributedFrom["Any"] = 1] = "Any";
3741
+ EContributedFrom[EContributedFrom["Sportsbook"] = 2] = "Sportsbook";
3742
+ })(EContributedFrom || (EContributedFrom = {}));
3743
+ var EMatchType;
3744
+ (function (EMatchType) {
3745
+ EMatchType[EMatchType["Any"] = 0] = "Any";
3746
+ EMatchType[EMatchType["Live"] = 1] = "Live";
3747
+ EMatchType[EMatchType["PreLive"] = 2] = "PreLive";
3748
+ })(EMatchType || (EMatchType = {}));
3749
+ var EBetType;
3750
+ (function (EBetType) {
3751
+ EBetType[EBetType["Single"] = 0] = "Single";
3752
+ EBetType[EBetType["Multiple"] = 1] = "Multiple";
3753
+ EBetType[EBetType["System"] = 2] = "System";
3754
+ })(EBetType || (EBetType = {}));
3755
+ var EBanker;
3756
+ (function (EBanker) {
3757
+ EBanker[EBanker["Any"] = 0] = "Any";
3758
+ EBanker[EBanker["BankerOnly"] = 1] = "BankerOnly";
3759
+ EBanker[EBanker["NotBankerOnly"] = 2] = "NotBankerOnly";
3760
+ })(EBanker || (EBanker = {}));
3761
+ var EBetBuilder;
3762
+ (function (EBetBuilder) {
3763
+ EBetBuilder[EBetBuilder["Any"] = 0] = "Any";
3764
+ EBetBuilder[EBetBuilder["BetBuilderOnly"] = 1] = "BetBuilderOnly";
3765
+ EBetBuilder[EBetBuilder["NotBetBuilderOnly"] = 2] = "NotBetBuilderOnly";
3766
+ })(EBetBuilder || (EBetBuilder = {}));
3623
3767
  var EWalletTypes;
3624
3768
  (function (EWalletTypes) {
3625
3769
  EWalletTypes[EWalletTypes["RealCash"] = 0] = "RealCash";
3626
3770
  EWalletTypes[EWalletTypes["BonusMoney"] = 1] = "BonusMoney";
3627
3771
  EWalletTypes[EWalletTypes["Mixed"] = 2] = "Mixed";
3628
3772
  })(EWalletTypes || (EWalletTypes = {}));
3773
+ var EDetailsTabs;
3774
+ (function (EDetailsTabs) {
3775
+ EDetailsTabs[EDetailsTabs["Levels"] = 0] = "Levels";
3776
+ EDetailsTabs[EDetailsTabs["GamesOrEvents"] = 1] = "GamesOrEvents";
3777
+ EDetailsTabs[EDetailsTabs["Rules"] = 2] = "Rules";
3778
+ })(EDetailsTabs || (EDetailsTabs = {}));
3629
3779
 
3630
- const casinoChallengeDetailsCss = ".container {\n font-family: var(--emw--font-family-secondary, \"Montserrat\", sans-serif);\n background: var(--emw--color-background, #000);\n min-height: 100vh;\n padding-top: 16px;\n container-type: inline-size;\n container-name: challenges-details;\n min-width: 375px;\n width: 100%;\n margin: 0 auto;\n position: relative;\n}\n\n.challenges-header {\n display: none;\n}\n\n.back-button {\n display: flex;\n align-items: center;\n padding: 14px 0 14px 10px;\n outline: none;\n background: var(--emw--color-background-secondary, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n background-clip: text;\n border: none;\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n cursor: pointer;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.back-button__icon {\n margin: 0 4px;\n}\n.back-button__text {\n margin-left: 4px;\n}\n\n.details {\n min-width: 308px;\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: 16px;\n min-width: 375px;\n width: 100%;\n}\n.details.grayed {\n opacity: 0.5;\n}\n.details__general-info {\n min-width: 344px;\n padding-bottom: 16px;\n width: 100%;\n}\n.details__general-info-image-container {\n position: relative;\n margin-bottom: 22px;\n}\n.details__general-info-image {\n display: block;\n min-width: 344px;\n height: 226px;\n border-radius: var(--emw--border-radius-medium, 16px);\n width: 100%;\n}\n.details__general-info-image.grayed {\n opacity: 0.5;\n}\n.details__general-info-timer-badge {\n position: absolute;\n background: var(--emw--color-white, #fff);\n top: 6px;\n right: 6px;\n border-radius: var(--emw--border-radius-large, 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.details__general-info-timer-badge span {\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.expired {\n background: var(--emw--background-gray-color, rgba(250, 250, 250, 0.5019607843));\n border: 1px solid var(--emw--border-gray-color, #292c29);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.completed {\n background: var(--emw--background-success-color, #c9f0d7);\n border: 1px solid var(--emw--border-success-color, #00b74f);\n color: var(--emw--color-gray-300, #083b17);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.forfeited {\n background: var(--emw--background-errored-color, #ffe1df);\n border: 1px solid var(--emw--border-errored-color, #d6421e);\n color: var(--emw--errored-color, #850606);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.paused {\n background: var(--emw--background-warning-color, #f8e4ad);\n border: 1px solid var(--emw--border-warning-color, #ea9018);\n color: var(--emw--warning-color, #6d460a);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-title {\n margin: 0 0 4px;\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-large, 20px);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-end-date_label {\n color: var(--emw--color-gray-150, #727672);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n margin: 0;\n}\n.details__general-info-end-date_value {\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-action-button,\n.details .footer-action-button {\n width: 100%;\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-medium, 16px);\n border-radius: var(--emw--button-border-radius, 99px);\n border: 2px solid var(--emw--button-border-color, #083b17);\n background: var(--emw--button-background-color, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n text-align: center;\n text-transform: uppercase;\n font-weight: var(--emw--font-weight-bold, 700);\n height: 51px;\n padding: 16px 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n gap: 10px;\n}\n.details__general-info-action-button:hover,\n.details .footer-action-button:hover {\n border-color: var(--emw--color-secondary, #083b17);\n cursor: pointer;\n}\n.details__general-info-action-button.filled,\n.details .footer-action-button.filled {\n background-color: var(--emw--button-background-primary-color, #18ce51);\n color: var(--emw--color-white, #fff);\n border-color: var(--emw--color-gray-300, #083b17);\n}\n.details__general-info-action-button.filled:hover,\n.details .footer-action-button.filled:hover {\n border-color: transparent;\n box-shadow: 0 0 4px 0 rgba(188, 252, 177, 0.2), 0 0 20px 0 rgba(0, 183, 79, 0.5);\n}\n.details__general-info-action-button.grayed,\n.details .footer-action-button.grayed {\n color: var(--emw--color-gray-50, #e2e2e2);\n background: var(--emw--color-black-150, #000000);\n border-color: var(--emw--button-disabled-border-color, #727672);\n box-shadow: 0 0 20px 0 rgba(188, 252, 177, 0.2);\n}\n.details__general-info-action-button.grayed:hover,\n.details .footer-action-button.grayed:hover {\n color: var(--emw--color-white, #fff);\n}\n.details__general-info-action-button:disabled, .details__general-info-action-button:disabled:hover,\n.details .footer-action-button:disabled,\n.details .footer-action-button:disabled:hover {\n color: var(--emw--color-gray-50, #e2e2e2);\n cursor: not-allowed;\n border: 2px solid var(--emw--button-disabled-border-color, #727672);\n opacity: 0.7;\n}\n.details .footer-action-button {\n height: 44px;\n padding: 14px 20px;\n font-size: var(--emw--font-size-sm, 14px);\n}\n.details__general-info-action-button {\n display: none;\n margin-top: 32px;\n}\n.details__tabs-container {\n flex-grow: 1;\n max-width: 100%;\n}\n.details__tabs {\n position: relative;\n display: flex;\n justify-content: flex-start;\n border-bottom: 1px solid var(--emw--border-warning-color, #ea9018);\n}\n.details__tab {\n padding: 10px 20px;\n cursor: pointer;\n position: relative;\n font-weight: var(--emw--font-weight-medium, 500);\n color: var(--emw--color-gray-300, #555);\n display: flex;\n width: 33.3333333333%;\n padding: 12px 10px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n}\n.details__tab.active {\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n text-transform: uppercase;\n background: var(--emw--active-tab, linear-gradient(180deg, #ea9018 0%, #e0a84e 100%));\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.details__tab {\n color: var(--emw--color-gray-100, #727672);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n text-transform: uppercase;\n}\n.details__tab:nth-of-type(1).active ~ .active-tab-indicator {\n left: 0;\n width: 33.3333333333%;\n}\n.details__tab:nth-of-type(2).active ~ .active-tab-indicator {\n left: 33.3333333333%;\n width: 33.3333333333%;\n}\n.details__tab:nth-of-type(3).active ~ .active-tab-indicator {\n left: 66.6666666667%;\n width: 33.3333333333%;\n}\n.details .active-tab-indicator {\n position: absolute;\n bottom: -3px;\n height: 2px;\n background: var(--emw--active-tab-indicator, linear-gradient(180deg, rgba(234, 144, 24, 0.7) 0%, rgba(224, 168, 78, 0.7) 100%), #727672);\n transition: left 0.3s ease, width 0.3s ease;\n}\n.details .levels__tab {\n margin-top: 22px;\n display: flex;\n gap: 12px;\n flex-direction: column;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n}\n.details .level {\n display: flex;\n padding: 20px;\n flex-direction: column;\n align-items: flex-start;\n border-radius: var(--emw--border-radius-small, 12px);\n background-color: var(--emw--color-background, rgba(114, 118, 114, 0.2));\n}\n.details .level.grayed {\n background: rgba(114, 118, 114, 0.15);\n}\n.details .level.active {\n background: linear-gradient(90deg, rgba(30, 101, 79, 0.2) 0%, rgba(28, 141, 86, 0.2) 100%);\n border: 2px solid var(--Gradient-Blue, #003e5c);\n box-shadow: 0 0 20px 0 rgba(188, 252, 177, 0.2);\n}\n.details .level.completed {\n background: linear-gradient(90deg, rgba(0, 62, 92, 0.3) 0.05%, rgba(17, 59, 33, 0.3) 87.69%);\n}\n.details .level__status {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n}\n.details .level__title {\n width: 100%;\n display: flex;\n justify-content: space-between;\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n margin-bottom: 10px;\n}\n.details .level__title .completed, .details .level__title .in-progress {\n color: var(--emw--color-valid, #00b74f);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n text-align: right;\n line-height: 22px;\n}\n.details .level__title.grayed {\n color: var(--emw--disabled-color, #727672);\n}\n.details .level__progress {\n width: 100%;\n margin-bottom: 10px;\n}\n.details .level__icon {\n display: flex;\n margin: 5px 6px 5px 0;\n opacity: 1;\n}\n.details .level__icon img {\n display: block;\n width: 12px;\n height: 12px;\n}\n.details .level__icon img.grayed {\n opacity: 0.5;\n}\n.details .level__bonus, .details .level__target {\n display: flex;\n align-items: flex-start;\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n margin-bottom: 4px;\n}\n.details .level__value {\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n width: 100%;\n}\n.details .level__value.grayed {\n opacity: 0.5;\n}\n.details .games__tab {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n padding: 22px 0;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n}\n.details .games__tab .game {\n position: relative;\n width: 105px;\n height: 85px;\n cursor: pointer;\n}\n.details .games__tab .game img {\n width: 100%;\n height: 100%;\n border-radius: var(--emw--border-radius-medium, 16px);\n}\n.details .games__tab .game .contribution {\n position: absolute;\n top: 4px;\n right: 4px;\n color: var(--emw--color-white, #fff);\n border-radius: var(--emw--border-radius-small, 12px);\n border: 1px solid var(--Gradient-Blue, #003e5c);\n background: rgba(0, 0, 0, 0.5);\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n backdrop-filter: blur(5px);\n padding: 0 8px;\n font-size: var(--emw--font-size-2x-small, 8px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 22px;\n text-align: center;\n}\n.details .rules__tab {\n display: flex;\n flex-direction: column;\n padding: 22px 0;\n gap: 8px;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n}\n.details .rules__tab .rule {\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-small, 14px);\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n}\n.details .rules__tab .link {\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n background: var(--emw--button-background-color, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n background-clip: text;\n padding: 14px 0;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.details .rules__tab .contributionType {\n margin: 24px 0;\n}\n.details .rules__tab .contributionRule {\n margin: 0;\n}\n.details .rules__tab .contribution__label {\n font-size: var(--emw--font-size-small, 14px);\n color: var(--emw--color-white, #fff);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n}\n.details .rules__tab .contribution__type__label {\n margin-right: 4px;\n}\n.details .rules__tab .contribution__value {\n font-size: var(--emw--font-size-small, 14px);\n color: var(--emw--color-gray-200, #c8d6ce);\n font-weight: var(--emw--font-weight-medium, 500);\n}\n.details .rules__tab .contribution__rule__value {\n margin-bottom: 8px;\n}\n.details__button {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n flex: 1 0 0;\n height: 42px;\n padding: 14px 20px;\n border-radius: var(--emw--button-border-radius, 99px);\n border: 2px solid var(--emw--button-border-color, #083b17);\n background-color: var(--emw--button-background-color, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n text-transform: uppercase;\n}\n\n.button__container {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n width: calc(100% - 32px);\n padding: 16px 16px 22px 16px;\n justify-content: center;\n align-items: center;\n gap: 4px;\n border-top: 1px solid var(--emw--color-blue, #003e5c);\n background: var(--emw--color-background, #000);\n box-shadow: 0 0 20px 0 rgba(188, 252, 177, 0.2);\n}\n\n.lds-dual-ring {\n display: block;\n width: 80px;\n height: 80px;\n margin: 80px auto 0 auto;\n}\n\n.lds-dual-ring:after {\n content: \" \";\n display: block;\n width: 64px;\n height: 64px;\n margin: 8px;\n border-radius: 50%;\n border: 6px solid var(--emw--casino-color-primary, var(--emw--color-primary, #22b04e));\n border-color: var(--emw--casino-color-primary, var(--emw--color-primary, #22b04e)) transparent var(--emw--casino-color-primary, var(--emw--color-primary, #22b04e));\n animation: lds-dual-ring 1.2s linear infinite;\n}\n\n@keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.notification {\n display: flex;\n align-items: flex-start;\n border-radius: var(--emw--border-radius-small, 12px);\n background: rgba(188, 252, 177, 0.1);\n display: flex;\n padding: 16px;\n align-items: flex-start;\n gap: 10px;\n margin: 16px 16px 22px 16px;\n}\n.notification__icon {\n margin-top: 2px;\n}\n.notification__message, .notification__title {\n color: var(--emw--color-gray-50, #e2e2e2);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n}\n.notification__title {\n background: var(--emw--color-background-secondary, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.notification__column {\n display: flex;\n flex-direction: column;\n}\n\n@container challenges-details (min-width: 768px) {\n .button__container {\n display: none;\n }\n .details {\n gap: 36px;\n flex-wrap: nowrap;\n }\n .details__general-info-action-button {\n display: flex;\n }\n .details__general-info-image {\n width: 380px;\n height: 248px;\n object-fit: cover;\n }\n .details__general-info {\n max-width: 380px;\n }\n .details__tabs__container {\n max-width: calc(100% - 380px);\n }\n .details .levels__tab {\n gap: 20px;\n height: 60vh;\n }\n .details .levels__tab .level__icon {\n width: 14px;\n height: 14px;\n margin: 4px 6px 4px 0px;\n }\n .details .levels__tab .level__icon img {\n width: 100%;\n height: 100%;\n }\n .details .levels__tab .level__title {\n font-size: var(--emw--font-size-medium, 16px);\n }\n .details .levels__tab .level__title .completed, .details .levels__tab .level__title .in-progress {\n font-size: var(--emw--font-size-sm, 14px);\n }\n .details .levels__tab .level__bonus, .details .levels__tab .level__target, .details .levels__tab .level__value {\n font-size: var(--emw--font-size-sm, 14px);\n }\n .details .games__tab, .details .rules__tab {\n height: 60vh;\n }\n .details .games__tab {\n gap: 20px;\n min-width: 340px;\n }\n .details .games__tab .game {\n width: 160px;\n height: 110px;\n }\n .details .games__tab .game .contribution {\n top: 8px;\n right: 8px;\n padding: 4px 10px;\n font-size: var(--emw--font-size-2x-small, 10px);\n line-height: 18px;\n }\n .challenges-header {\n margin: 0 0 32px;\n display: flex;\n justify-content: space-between;\n }\n .challenges-title {\n margin: 0;\n display: flex;\n gap: 10px;\n align-items: center;\n font-size: var(--emw--font-size-x-large, 24px);\n font-weight: var(--emw--font-weight-bold, 700);\n color: var(--emw--color-white, #ffffff);\n }\n .challenges-tabs {\n display: flex;\n gap: 12px;\n border-radius: 48px;\n padding: 6px;\n color: var(--emw--color-gray-200, #c8d6ce);\n background-color: var(--emw--color-background-secondary, #272727);\n }\n .challenges-tab {\n padding: 10px 16px;\n border-radius: 40px;\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n cursor: pointer;\n text-align: center;\n width: 95px;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 4px;\n }\n .challenges-tab.active {\n color: var(--emw--color-white, #ffffff);\n background: linear-gradient(90deg, rgb(0, 62, 92) 0%, rgb(17, 59, 33) 100%);\n }\n .challenges-tab:last-child {\n width: inherit;\n padding: 10px 16px;\n }\n}";
3780
+ const casinoChallengeDetailsCss = ".container {\n font-family: var(--emw--font-family-secondary, \"Montserrat\", sans-serif);\n background: var(--emw--color-background, #000);\n min-height: 100vh;\n padding: 16px 12px;\n box-sizing: border-box;\n container-type: inline-size;\n container-name: challenges-details;\n min-width: 375px;\n width: 100%;\n margin: 0 auto;\n position: relative;\n}\n\n.challenges-header {\n display: none;\n}\n\n.back-button {\n display: flex;\n align-items: center;\n padding: 14px 0 14px 10px;\n outline: none;\n background: var(--emw--color-background-secondary, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n background-clip: text;\n border: none;\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n cursor: pointer;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.back-button__icon {\n margin: 0 4px;\n}\n.back-button__text {\n margin-left: 4px;\n}\n\n.details {\n min-width: 308px;\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: 16px;\n min-width: 375px;\n width: 100%;\n}\n.details.grayed {\n opacity: 0.5;\n}\n.details__general-info {\n min-width: 344px;\n padding-bottom: 16px;\n width: 100%;\n}\n.details__general-info-image-container {\n position: relative;\n margin-bottom: 22px;\n}\n.details__general-info-image {\n display: block;\n min-width: 344px;\n height: 226px;\n border-radius: var(--emw--border-radius-medium, 16px);\n width: 100%;\n}\n.details__general-info-image.grayed {\n opacity: 0.5;\n}\n.details__general-info-timer-badge {\n position: absolute;\n background: var(--emw--color-white, #fff);\n top: 6px;\n right: 6px;\n border-radius: var(--emw--border-radius-large, 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.details__general-info-timer-badge span {\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.expired {\n background: var(--emw--background-gray-color, rgba(250, 250, 250, 0.5019607843));\n border: 1px solid var(--emw--border-gray-color, #292c29);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.completed {\n background: var(--emw--background-success-color, #c9f0d7);\n border: 1px solid var(--emw--border-success-color, #00b74f);\n color: var(--emw--color-gray-300, #083b17);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.forfeited {\n background: var(--emw--background-errored-color, #ffe1df);\n border: 1px solid var(--emw--border-errored-color, #d6421e);\n color: var(--emw--errored-color, #850606);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-timer-badge.paused {\n background: var(--emw--background-warning-color, #f8e4ad);\n border: 1px solid var(--emw--border-warning-color, #ea9018);\n color: var(--emw--warning-color, #6d460a);\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-title {\n margin: 0 0 4px;\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-large, 20px);\n font-weight: var(--emw--font-weight-bold, 700);\n display: flex;\n justify-content: space-between;\n}\n.details__general-info-title__icon--casino {\n width: 24px;\n height: 24px;\n}\n.details__general-info-title__icon--sportsbook {\n width: 22px;\n height: 22px;\n}\n.details__general-info-end-date_label {\n color: var(--emw--color-gray-150, #727672);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n margin: 0;\n}\n.details__general-info-end-date_value {\n font-weight: var(--emw--font-weight-bold, 700);\n}\n.details__general-info-action-button,\n.details .footer-action-button {\n width: 100%;\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-medium, 16px);\n border-radius: var(--emw--button-border-radius, 99px);\n border: 2px solid var(--emw--button-border-color, #083b17);\n background: var(--emw--button-background-color, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n text-align: center;\n text-transform: uppercase;\n font-weight: var(--emw--font-weight-bold, 700);\n height: 51px;\n padding: 16px 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n gap: 10px;\n}\n.details__general-info-action-button:hover,\n.details .footer-action-button:hover {\n border-color: var(--emw--color-secondary, #083b17);\n cursor: pointer;\n}\n.details__general-info-action-button.filled,\n.details .footer-action-button.filled {\n background-color: var(--emw--button-background-primary-color, #18ce51);\n color: var(--emw--color-white, #fff);\n border-color: var(--emw--color-gray-300, #083b17);\n}\n.details__general-info-action-button.filled:hover,\n.details .footer-action-button.filled:hover {\n border-color: transparent;\n box-shadow: 0 0 4px 0 rgba(188, 252, 177, 0.2), 0 0 20px 0 rgba(0, 183, 79, 0.5);\n}\n.details__general-info-action-button.grayed,\n.details .footer-action-button.grayed {\n color: var(--emw--color-gray-50, #e2e2e2);\n background: var(--emw--color-black-150, #000000);\n border-color: var(--emw--button-disabled-border-color, #727672);\n box-shadow: 0 0 20px 0 rgba(188, 252, 177, 0.2);\n}\n.details__general-info-action-button.grayed:hover,\n.details .footer-action-button.grayed:hover {\n color: var(--emw--color-white, #fff);\n}\n.details__general-info-action-button:disabled, .details__general-info-action-button:disabled:hover,\n.details .footer-action-button:disabled,\n.details .footer-action-button:disabled:hover {\n color: var(--emw--color-gray-50, #e2e2e2);\n cursor: not-allowed;\n border: 2px solid var(--emw--button-disabled-border-color, #727672);\n opacity: 0.7;\n}\n.details .footer-action-button {\n height: 44px;\n padding: 14px 20px;\n font-size: var(--emw--font-size-sm, 14px);\n}\n.details__general-info-action-button {\n display: none;\n margin-top: 32px;\n}\n.details__tabs-container {\n flex-grow: 1;\n max-width: 100%;\n}\n.details__tabs {\n position: relative;\n display: flex;\n justify-content: flex-start;\n border-bottom: 1px solid var(--emw--border-warning-color, #ea9018);\n}\n.details__tab {\n padding: 10px 20px;\n cursor: pointer;\n position: relative;\n font-weight: var(--emw--font-weight-medium, 500);\n color: var(--emw--color-gray-300, #555);\n display: flex;\n width: 33.3333333333%;\n padding: 12px 10px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n}\n.details__tab.active {\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n text-transform: uppercase;\n background: var(--emw--active-tab, linear-gradient(180deg, #ea9018 0%, #e0a84e 100%));\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.details__tab {\n color: var(--emw--color-gray-100, #727672);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n text-transform: uppercase;\n}\n.details__tab:nth-of-type(1).active ~ .active-tab-indicator {\n left: 0;\n width: 33.3333333333%;\n}\n.details__tab:nth-of-type(2).active ~ .active-tab-indicator {\n left: 33.3333333333%;\n width: 33.3333333333%;\n}\n.details__tab:nth-of-type(3).active ~ .active-tab-indicator {\n left: 66.6666666667%;\n width: 33.3333333333%;\n}\n.details .active-tab-indicator {\n position: absolute;\n bottom: -3px;\n height: 2px;\n background: var(--emw--active-tab-indicator, linear-gradient(180deg, rgba(234, 144, 24, 0.7) 0%, rgba(224, 168, 78, 0.7) 100%), #727672);\n transition: left 0.3s ease, width 0.3s ease;\n}\n.details .levels__tab {\n margin-top: 22px;\n display: flex;\n gap: 12px;\n flex-direction: column;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n}\n.details .level {\n display: flex;\n padding: 20px;\n flex-direction: column;\n align-items: flex-start;\n border-radius: var(--emw--border-radius-small, 12px);\n background-color: var(--emw--color-background, rgba(114, 118, 114, 0.2));\n}\n.details .level.grayed {\n background: rgba(114, 118, 114, 0.15);\n}\n.details .level.active {\n background: linear-gradient(90deg, rgba(30, 101, 79, 0.2) 0%, rgba(28, 141, 86, 0.2) 100%);\n border: 2px solid var(--Gradient-Blue, #003e5c);\n box-shadow: 0 0 20px 0 rgba(188, 252, 177, 0.2);\n}\n.details .level.completed {\n background: linear-gradient(90deg, rgba(0, 62, 92, 0.3) 0.05%, rgba(17, 59, 33, 0.3) 87.69%);\n}\n.details .level__status {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n}\n.details .level__title {\n width: 100%;\n display: flex;\n justify-content: space-between;\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n margin-bottom: 10px;\n}\n.details .level__title .completed, .details .level__title .in-progress {\n color: var(--emw--color-valid, #00b74f);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n text-align: right;\n line-height: 22px;\n}\n.details .level__title.grayed {\n color: var(--emw--disabled-color, #727672);\n}\n.details .level__progress {\n width: 100%;\n margin-bottom: 10px;\n}\n.details .level__icon {\n display: flex;\n margin: 5px 6px 5px 0;\n opacity: 1;\n}\n.details .level__icon img {\n display: block;\n width: 12px;\n height: 12px;\n}\n.details .level__icon img.grayed {\n opacity: 0.5;\n}\n.details .level__bonus, .details .level__target {\n display: flex;\n align-items: flex-start;\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n margin-bottom: 4px;\n}\n.details .level__value {\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n width: 100%;\n}\n.details .level__value.grayed {\n opacity: 0.5;\n}\n.details .games__tab {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n padding: 22px 0;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n justify-content: center;\n}\n.details .games__tab .game {\n position: relative;\n width: 105px;\n height: 85px;\n cursor: pointer;\n}\n.details .games__tab .game img {\n width: 100%;\n height: 100%;\n border-radius: var(--emw--border-radius-medium, 16px);\n}\n.details .games__tab .game .contribution {\n position: absolute;\n top: 4px;\n right: 4px;\n color: var(--emw--color-white, #fff);\n border-radius: var(--emw--border-radius-small, 12px);\n border: 1px solid var(--Gradient-Blue, #003e5c);\n background: rgba(0, 0, 0, 0.5);\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\n backdrop-filter: blur(5px);\n padding: 0 8px;\n font-size: var(--emw--font-size-2x-small, 8px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 22px;\n text-align: center;\n}\n.details .events__tab {\n display: flex;\n flex-direction: column;\n padding: 22px 0;\n gap: 24px;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n}\n.details .events__tab .event {\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-small, 14px);\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n margin: 0;\n}\n.details .events__tab .event span {\n text-transform: capitalize;\n}\n.details .rules__tab {\n display: flex;\n flex-direction: column;\n padding: 22px 0;\n gap: 22px;\n overflow-y: auto;\n height: 300px;\n padding-bottom: 80px;\n line-height: 24px;\n}\n.details .rules__tab .sportsbook-rules,\n.details .rules__tab .rule {\n color: var(--emw--color-gray-200, #c8d6ce);\n font-size: var(--emw--font-size-small, 14px);\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n}\n.details .rules__tab .sportsbook-rules .rule {\n margin: 0 0 22px;\n}\n.details .rules__tab .sportsbook-rules .rule__title {\n margin: 0;\n font-size: var(--emw--font-size-small, 14px);\n color: var(--emw--color-white, #fff);\n font-weight: 700;\n}\n.details .rules__tab .sportsbook-rules .rule__title__value {\n display: inline-flex;\n align-items: center;\n height: 16px;\n}\n.details .rules__tab .sportsbook-rules .rule__title__value .infinity {\n font-size: 20px;\n font-weight: 500;\n margin-left: 4px;\n}\n.details .rules__tab .sportsbook-rules .rule__inners {\n gap: 22px;\n display: flex;\n flex-direction: column;\n}\n.details .rules__tab .link {\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n background: var(--emw--button-background-color, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n background-clip: text;\n padding: 0;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.details .rules__tab .contributionType {\n margin: 0 0 22px;\n}\n.details .rules__tab .contributionRule {\n margin: 0;\n}\n.details .rules__tab .contribution__label {\n font-size: var(--emw--font-size-small, 14px);\n color: var(--emw--color-white, #fff);\n font-weight: var(--emw--font-weight-bold, 700);\n line-height: 18px;\n}\n.details .rules__tab .contribution__type__label {\n margin-right: 4px;\n}\n.details .rules__tab .contribution__value {\n font-size: var(--emw--font-size-small, 14px);\n color: var(--emw--color-gray-200, #c8d6ce);\n font-weight: var(--emw--font-weight-medium, 500);\n}\n.details .rules__tab .contribution__rule__value {\n margin-bottom: 8px;\n}\n.details__button {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n flex: 1 0 0;\n height: 42px;\n padding: 14px 20px;\n border-radius: var(--emw--button-border-radius, 99px);\n border: 2px solid var(--emw--button-border-color, #083b17);\n background-color: var(--emw--button-background-color, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n color: var(--emw--color-white, #fff);\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n text-transform: uppercase;\n}\n\n.button__container {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n width: calc(100% - 32px);\n padding: 16px 16px 22px 16px;\n justify-content: center;\n align-items: center;\n gap: 4px;\n border-top: 1px solid var(--emw--color-blue, #003e5c);\n background: var(--emw--color-background, #000);\n box-shadow: 0 0 20px 0 rgba(188, 252, 177, 0.2);\n}\n\n.lds-dual-ring {\n display: block;\n width: 80px;\n height: 80px;\n margin: 80px auto 0 auto;\n}\n\n.lds-dual-ring:after {\n content: \" \";\n display: block;\n width: 64px;\n height: 64px;\n margin: 8px;\n border-radius: 50%;\n border: 6px solid var(--emw--casino-color-primary, var(--emw--color-primary, #22b04e));\n border-color: var(--emw--casino-color-primary, var(--emw--color-primary, #22b04e)) transparent var(--emw--casino-color-primary, var(--emw--color-primary, #22b04e));\n animation: lds-dual-ring 1.2s linear infinite;\n}\n\n@keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.notification {\n display: flex;\n align-items: flex-start;\n border-radius: var(--emw--border-radius-small, 12px);\n background: rgba(188, 252, 177, 0.1);\n display: flex;\n padding: 16px;\n align-items: flex-start;\n gap: 10px;\n margin: 16px 16px 22px 16px;\n}\n.notification__icon {\n margin-top: 2px;\n}\n.notification__message, .notification__title {\n color: var(--emw--color-gray-50, #e2e2e2);\n font-size: var(--emw--font-size-x-small, 12px);\n font-weight: var(--emw--font-weight-medium, 500);\n line-height: 22px;\n}\n.notification__title {\n background: var(--emw--color-background-secondary, linear-gradient(180deg, #24b24e 0%, #18ce51 100%));\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n.notification__column {\n display: flex;\n flex-direction: column;\n}\n\n@container challenges-details (min-width: 768px) {\n .button__container {\n display: none;\n }\n .details {\n gap: 36px;\n flex-wrap: nowrap;\n }\n .details__general-info-action-button {\n display: flex;\n }\n .details__general-info-image {\n width: 380px;\n height: 248px;\n object-fit: cover;\n }\n .details__general-info {\n min-width: 380px;\n max-width: 380px;\n }\n .details__tabs__container {\n max-width: calc(100% - 380px);\n }\n .details .levels__tab {\n gap: 20px;\n height: 60vh;\n }\n .details .levels__tab .level__icon {\n width: 14px;\n height: 14px;\n margin: 4px 6px 4px 0px;\n }\n .details .levels__tab .level__icon img {\n width: 100%;\n height: 100%;\n }\n .details .levels__tab .level__title {\n font-size: var(--emw--font-size-medium, 16px);\n }\n .details .levels__tab .level__title .completed, .details .levels__tab .level__title .in-progress {\n font-size: var(--emw--font-size-sm, 14px);\n }\n .details .levels__tab .level__bonus, .details .levels__tab .level__target, .details .levels__tab .level__value {\n font-size: var(--emw--font-size-sm, 14px);\n }\n .details .games__tab, .details .events__tab, .details .rules__tab {\n height: 60vh;\n padding: 32px 0;\n }\n .details .games__tab {\n gap: 20px;\n min-width: 340px;\n justify-content: normal;\n }\n .details .games__tab .game {\n width: 160px;\n height: 110px;\n }\n .details .games__tab .game .contribution {\n top: 8px;\n right: 8px;\n padding: 4px 10px;\n font-size: var(--emw--font-size-2x-small, 10px);\n line-height: 18px;\n }\n .challenges-header {\n margin: 0 0 32px;\n display: flex;\n justify-content: space-between;\n }\n .challenges-title {\n margin: 0;\n display: flex;\n gap: 10px;\n align-items: center;\n font-size: var(--emw--font-size-x-large, 24px);\n font-weight: var(--emw--font-weight-bold, 700);\n color: var(--emw--color-white, #ffffff);\n }\n .challenges-tabs {\n display: flex;\n gap: 12px;\n border-radius: 48px;\n padding: 6px;\n color: var(--emw--color-gray-200, #c8d6ce);\n background-color: var(--emw--color-background-secondary, #272727);\n }\n .challenges-tab {\n padding: 10px 16px;\n border-radius: 40px;\n font-size: var(--emw--font-size-small, 14px);\n font-weight: var(--emw--font-weight-bold, 700);\n cursor: pointer;\n text-align: center;\n width: 95px;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 4px;\n }\n .challenges-tab.active {\n color: var(--emw--color-white, #ffffff);\n background: linear-gradient(90deg, rgb(0, 62, 92) 0%, rgb(17, 59, 33) 100%);\n }\n .challenges-tab:last-child {\n width: inherit;\n padding: 10px 16px;\n }\n}";
3631
3781
  const CasinoChallengeDetailsStyle0 = casinoChallengeDetailsCss;
3632
3782
 
3633
3783
  const CasinoChallengeDetails = class {
@@ -3637,13 +3787,106 @@ const CasinoChallengeDetails = class {
3637
3787
  this.activeEntityRef = null;
3638
3788
  this.scrollContainerRef = null;
3639
3789
  this.challengesTabs = ['Active', 'Pending', 'Finished', 'Code'];
3640
- this.tabs = ['LEVELS', 'GAMES', 'RULES'];
3790
+ this.tabOptions = {
3791
+ casino: ['LEVELS', 'GAMES', 'RULES'],
3792
+ sportsbook: ['LEVELS', 'EVENTS', 'RULES']
3793
+ };
3641
3794
  this.showNotification = 10;
3642
3795
  this.abortController = new AbortController();
3796
+ this.currentFetchGamesId = 0;
3797
+ this.currentFetchChallengeId = 0;
3798
+ this.infinity = '∞';
3799
+ this.maxSelections = 999;
3800
+ this.nonValue = 'undefined';
3801
+ this.scrollToActiveLevel = () => {
3802
+ if (this.activeEntityRef) {
3803
+ const container = this.scrollContainerRef;
3804
+ const target = this.activeEntityRef;
3805
+ const containerTop = container.getBoundingClientRect().top;
3806
+ const targetTop = target.getBoundingClientRect().top;
3807
+ const scrollOffset = targetTop - containerTop;
3808
+ container.scrollTo({
3809
+ top: container.scrollTop + scrollOffset - container.clientHeight / 2 + target.clientHeight / 2,
3810
+ behavior: 'smooth'
3811
+ });
3812
+ }
3813
+ };
3643
3814
  this.checkIsMobile = () => {
3644
3815
  this.isMobile = window.innerWidth <= 768;
3645
3816
  };
3646
- this.currentFetchChallengeId = 0;
3817
+ this.updateChallengeViewedStatus = () => {
3818
+ if (!this.checkAttrs()) {
3819
+ const url = `${this.endpoint}/challenge/ChangeProgressIsNewStatus`;
3820
+ const body = {
3821
+ DomainId: this.domain,
3822
+ ChallengeProgressId: this.challenge.Id
3823
+ };
3824
+ return fetch(url, {
3825
+ method: 'POST',
3826
+ headers: {
3827
+ 'Content-Type': 'application/json'
3828
+ },
3829
+ body: JSON.stringify(body)
3830
+ })
3831
+ .then((res) => res.json())
3832
+ .then((res) => {
3833
+ if (res.Success) {
3834
+ this.challenge.IsNew = false;
3835
+ }
3836
+ });
3837
+ }
3838
+ };
3839
+ this.getChallenge = () => {
3840
+ if (!this.checkAttrs()) {
3841
+ this.currentFetchChallengeId++;
3842
+ const fetchId = this.currentFetchChallengeId;
3843
+ if (this.abortController) {
3844
+ this.abortController.abort();
3845
+ }
3846
+ this.abortController = new AbortController();
3847
+ const signal = this.abortController.signal;
3848
+ const url = `${this.endpoint}/challenge/GetChallengesInfo`;
3849
+ const body = Object.assign({ DomainId: this.domain, PlayerLanguage: this.language, PageNumber: 0, PageSize: 20 }, (this.session && { PlayerSession: this.session }));
3850
+ this.loading = true;
3851
+ return fetch(url, {
3852
+ method: 'POST',
3853
+ headers: {
3854
+ 'Content-Type': 'application/json'
3855
+ },
3856
+ signal,
3857
+ body: JSON.stringify(body)
3858
+ })
3859
+ .then((res) => res.json())
3860
+ .then((res) => {
3861
+ var _a;
3862
+ if (res.Success) {
3863
+ const challenge = (_a = res === null || res === void 0 ? void 0 : res.Data) === null || _a === void 0 ? void 0 : _a.find((challenge) => (challenge === null || challenge === void 0 ? void 0 : challenge.ChallengeId) === this.challengeId);
3864
+ if (challenge) {
3865
+ this.challenge = challenge;
3866
+ this.isChallengePaused = this.challenge.ChallengeStatus === exports.EChallengeStatus.Paused;
3867
+ if (this.challenge.IsNew) {
3868
+ this.updateChallengeViewedStatus();
3869
+ }
3870
+ }
3871
+ else if (this.redirectIfNotFound) {
3872
+ this.goBack();
3873
+ }
3874
+ }
3875
+ })
3876
+ .finally(() => {
3877
+ if (fetchId === this.currentFetchChallengeId) {
3878
+ this.loading = false;
3879
+ }
3880
+ });
3881
+ }
3882
+ };
3883
+ this.getReward = (level) => {
3884
+ return level.CustomRewardMessage || '-';
3885
+ };
3886
+ this.getTarget = (level) => {
3887
+ var _a;
3888
+ return this.calculateTargetValue(level, (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.CurrencySymbol) || '-';
3889
+ };
3647
3890
  this.calculateTargetValue = (level, currencySymbol) => {
3648
3891
  var _a;
3649
3892
  if (!level)
@@ -3665,6 +3908,17 @@ const CasinoChallengeDetails = class {
3665
3908
  }
3666
3909
  }
3667
3910
  };
3911
+ this.updateTime = () => {
3912
+ var _a, _b;
3913
+ if (this.challenge) {
3914
+ this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ExpirationTime);
3915
+ if (!this.timeLeft && this.timerExpired) {
3916
+ clearInterval(this.timerId);
3917
+ this.challenge = Object.assign(Object.assign({}, this.challenge), { Status: exports.EChallengeProgressStatus.Expired });
3918
+ this.timerExpired.emit((_b = this.challenge) === null || _b === void 0 ? void 0 : _b.Id);
3919
+ }
3920
+ }
3921
+ };
3668
3922
  this.getBadgeContent = () => {
3669
3923
  var _a;
3670
3924
  if (this.challenge) {
@@ -3707,6 +3961,12 @@ const CasinoChallengeDetails = class {
3707
3961
  }
3708
3962
  return this.hasError;
3709
3963
  };
3964
+ this.openLoginRegisterModal = () => {
3965
+ window.postMessage({
3966
+ type: 'OpenLoginRegisterModal',
3967
+ transition: 'Login'
3968
+ });
3969
+ };
3710
3970
  this.joinUnjoinProgress = async () => {
3711
3971
  var _a, _b;
3712
3972
  if (!this.isUserAuthorized) {
@@ -3739,15 +3999,17 @@ const CasinoChallengeDetails = class {
3739
3999
  .finally(() => (this.actionLoading = false));
3740
4000
  }
3741
4001
  };
3742
- this.currentFetchGamesId = 0;
3743
4002
  this.handleTabClick = (index) => () => {
3744
- if (index === 0) {
4003
+ var _a;
4004
+ if (index === EDetailsTabs.Levels) {
3745
4005
  setTimeout(() => {
3746
4006
  this.scrollToActiveLevel();
3747
4007
  }, 0);
3748
4008
  }
3749
- if (index === 1) {
3750
- this.fetchGames();
4009
+ if (index === EDetailsTabs.GamesOrEvents) {
4010
+ if (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ContributedFrom) === EContributedFrom.Casino) {
4011
+ this.fetchGames();
4012
+ }
3751
4013
  }
3752
4014
  this.activeTabIndex = index;
3753
4015
  };
@@ -3757,6 +4019,141 @@ const CasinoChallengeDetails = class {
3757
4019
  this.getBackButtonText = () => {
3758
4020
  return (index.h("span", { class: "back-button__text" }, this.isMobile ? translate('all', this.language) : translate('back', this.language)));
3759
4021
  };
4022
+ this.getLevelStatus = (level, active) => {
4023
+ if (this.isUserAuthorized) {
4024
+ if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress && !active)
4025
+ return (index.h("div", { class: "level__status" }, index.h("span", null, Math.floor(level.ProgressPercentage), "%"), index.h("img", { src: lockSvg, alt: "lock-icon", title: "lock-icon" })));
4026
+ else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Closed || !active)
4027
+ return (index.h("div", { class: "level__status" }, index.h("img", { src: lockSvg, alt: "lock-icon", title: "lock-icon" })));
4028
+ else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Fillup)
4029
+ return (index.h("div", { class: "level__status" }, index.h("img", { src: lockSvg, alt: "lock-icon", title: "lock-icon" })));
4030
+ else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Completed)
4031
+ return index.h("span", { class: "completed" }, translate('completed', this.language));
4032
+ else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress)
4033
+ return index.h("span", { class: "level__status in-progress" }, Math.floor(level.ProgressPercentage), "%");
4034
+ }
4035
+ return null;
4036
+ };
4037
+ this.pageHeader = () => {
4038
+ return (index.h("div", { class: "challenges-header" }, index.h("h1", { class: "challenges-title" }, index.h("img", { src: titleIconSvg, alt: "icon" }), translate('title', this.language)), this.isUserAuthorized && (index.h("div", { class: "challenges-tabs" }, this.challengesTabs.map((label, index$1) => (index.h("div", { class: `challenges-tab ${index$1 === +this.activeChallengeTabIndex ? 'active' : ''}`, onClick: this.handleChallengesTabClick(index$1) }, label, this.showNotification === index$1 && index.h("img", { src: notificationSvg }))))))));
4039
+ };
4040
+ this.cardGeneralInfo = () => {
4041
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
4042
+ const showButton = !(((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengeStatus) === exports.EChallengeStatus.Paused ||
4043
+ ((_b = this.challenge) === null || _b === void 0 ? void 0 : _b.Status) === exports.EChallengeProgressStatus.Forfeited ||
4044
+ ((_c = this.challenge) === null || _c === void 0 ? void 0 : _c.Status) === exports.EChallengeProgressStatus.Completed ||
4045
+ ((_d = this.challenge) === null || _d === void 0 ? void 0 : _d.Status) === exports.EChallengeProgressStatus.Expired);
4046
+ return (index.h("div", { class: "details__general-info" }, index.h("div", { class: "details__general-info-image-container" }, index.h("img", { class: {
4047
+ 'details__general-info-image': true,
4048
+ grayed: [
4049
+ exports.EChallengeProgressStatus.Expired,
4050
+ exports.EChallengeProgressStatus.Forfeited,
4051
+ exports.EChallengeProgressStatus.Completed
4052
+ ].includes((_e = this.challenge) === null || _e === void 0 ? void 0 : _e.Status) || this.isChallengePaused
4053
+ }, src: (_g = (_f = this.challenge) === null || _f === void 0 ? void 0 : _f.ChallengePresentation) === null || _g === void 0 ? void 0 : _g.BannerUrl, alt: "banner-image", title: "banner-image" }), this.getCardBadge()), index.h("div", { class: "details__general-info-content" }, index.h("h1", { class: "details__general-info-title" }, (_j = (_h = this.challenge) === null || _h === void 0 ? void 0 : _h.ChallengePresentation) === null || _j === void 0 ? void 0 :
4054
+ _j.PresentationName, this.renderCardIcon()), index.h("h3", { class: "details__general-info-end-date_label" }, translate('endDate', this.language), " -", ' ', index.h("span", { class: "details__general-info-end-date_value" }, this.challenge ? formatDate((_k = this.challenge) === null || _k === void 0 ? void 0 : _k.ExpirationTime) : '-')), index.h("casino-challenge-progress-bar", { challenge: this.challenge, isUserAuthorized: this.isUserAuthorized, language: this.language }), showButton && (index.h("button", { class: {
4055
+ 'details__general-info-action-button': true,
4056
+ filled: ((_l = this.challenge) === null || _l === void 0 ? void 0 : _l.Status) === exports.EChallengeProgressStatus.Started,
4057
+ grayed: ((_m = this.challenge) === null || _m === void 0 ? void 0 : _m.Status) === exports.EChallengeProgressStatus.Paused ||
4058
+ ((_o = this.challenge) === null || _o === void 0 ? void 0 : _o.Status) === exports.EChallengeProgressStatus.InProgress ||
4059
+ ((_p = this.challenge) === null || _p === void 0 ? void 0 : _p.Status) === exports.EChallengeProgressStatus.PendingLevelReward
4060
+ }, disabled: this.actionLoading, onClick: this.joinUnjoinProgress }, translate(this.actionButtonText, this.language))))));
4061
+ };
4062
+ this.challengeTabs = () => {
4063
+ var _a;
4064
+ const isSportsbook = ((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ContributedFrom) === EContributedFrom.Sportsbook;
4065
+ const tabs = isSportsbook ? this.tabOptions.sportsbook : this.tabOptions.casino;
4066
+ return (index.h("div", { class: "details__tabs" }, tabs.map((label, index$1) => (index.h("div", { class: {
4067
+ details__tab: true,
4068
+ active: index$1 === this.activeTabIndex
4069
+ }, onClick: this.handleTabClick(index$1) }, label))), index.h("div", { class: "active-tab-indicator" })));
4070
+ };
4071
+ this.challengeTabContent = () => {
4072
+ var _a;
4073
+ switch (this.activeTabIndex) {
4074
+ case EDetailsTabs.Levels:
4075
+ return this.levelsTab();
4076
+ case EDetailsTabs.GamesOrEvents:
4077
+ if (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ContributedFrom) === EContributedFrom.Sportsbook) {
4078
+ return this.eventsTab();
4079
+ }
4080
+ return this.gamesTab();
4081
+ case EDetailsTabs.Rules:
4082
+ return this.rulesTab();
4083
+ }
4084
+ };
4085
+ this.levelsTab = () => {
4086
+ var _a, _b;
4087
+ return (index.h("div", { class: "levels__tab", ref: (el) => (this.scrollContainerRef = el) }, (_b = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses) === null || _b === void 0 ? void 0 : _b.map((level, index$1) => {
4088
+ var _a;
4089
+ const activeChallenge = [0, 1, 2, 3].includes((_a = this === null || this === void 0 ? void 0 : this.challenge) === null || _a === void 0 ? void 0 : _a.Status) && !this.isChallengePaused;
4090
+ const isGrayed = (this.isUserAuthorized && level.ProgressStatus !== exports.EChallengeProgressLevelStatus.InProgress) ||
4091
+ !activeChallenge;
4092
+ const isActiveMatch = level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress;
4093
+ return (index.h("div", { class: {
4094
+ level: true,
4095
+ active: this.isUserAuthorized &&
4096
+ activeChallenge &&
4097
+ level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress,
4098
+ completed: this.isUserAuthorized &&
4099
+ activeChallenge &&
4100
+ level.ProgressStatus === exports.EChallengeProgressLevelStatus.Completed,
4101
+ grayed: this.isUserAuthorized &&
4102
+ (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Closed ||
4103
+ level.ProgressStatus === exports.EChallengeProgressLevelStatus.Fillup)
4104
+ }, ref: isActiveMatch ? (el) => (this.activeEntityRef = el) : undefined, key: level.LevelId }, index.h("div", { class: {
4105
+ level__title: true,
4106
+ grayed: isGrayed
4107
+ } }, index.h("span", null, "Level ", index$1 + 1), this.isUserAuthorized && this.getLevelStatus(level, activeChallenge)), this.isUserAuthorized && level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress && (index.h("div", { class: "level__progress" }, index.h("casino-challenge-level-progress-bar", { height: "8px", value: level.ProgressPercentage, active: activeChallenge }))), index.h("casino-challenge-expandable-paragraph", { "max-height": "56", active: level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress && activeChallenge }, index.h("div", { class: {
4108
+ level__bonus: true,
4109
+ grayed: isGrayed
4110
+ } }, index.h("span", { class: "level__icon" }, index.h("img", { class: {
4111
+ grayed: isGrayed
4112
+ }, src: giftSvg, alt: "gift-icon", title: "gift-icon" })), index.h("span", { class: {
4113
+ level__value: true,
4114
+ grayed: isGrayed
4115
+ } }, this.getReward(level))), index.h("div", { class: {
4116
+ level__target: true,
4117
+ grayed: isGrayed
4118
+ } }, index.h("span", { class: "level__icon" }, index.h("img", { class: {
4119
+ grayed: isGrayed
4120
+ }, src: targetSvg, alt: "target-icon", title: "target-icon" })), index.h("span", { class: {
4121
+ level__value: true,
4122
+ grayed: isGrayed
4123
+ } }, this.getTarget(level))))));
4124
+ })));
4125
+ };
4126
+ this.gamesTab = () => {
4127
+ var _a;
4128
+ return (index.h("div", { class: "games__tab" }, this.gamesAreLoading ? (index.h("div", { class: "lds-dual-ring" })) : ((_a = this.games) === null || _a === void 0 ? void 0 : _a.map((game) => {
4129
+ return (index.h("div", { class: "game", onClick: () => this.handleGameClick(game) }, index.h("img", { src: game.Thumbnail, alt: "game-icon", title: "game-icon" }), index.h("span", { class: "contribution" }, translate('contribution', this.language), " ", game.Contribution, "%")));
4130
+ }))));
4131
+ };
4132
+ this.renderEventRule = (rule) => {
4133
+ var _a, _b, _c, _d, _e;
4134
+ const value = [
4135
+ (_a = rule === null || rule === void 0 ? void 0 : rule.Discipline) === null || _a === void 0 ? void 0 : _a.Name,
4136
+ (_b = rule === null || rule === void 0 ? void 0 : rule.Location) === null || _b === void 0 ? void 0 : _b.Name,
4137
+ (_c = rule === null || rule === void 0 ? void 0 : rule.Template) === null || _c === void 0 ? void 0 : _c.Name,
4138
+ (_d = rule === null || rule === void 0 ? void 0 : rule.Tournament) === null || _d === void 0 ? void 0 : _d.Name,
4139
+ (_e = rule === null || rule === void 0 ? void 0 : rule.Event) === null || _e === void 0 ? void 0 : _e.Name
4140
+ ]
4141
+ .filter((x) => !!x)
4142
+ .join(', ');
4143
+ return (index.h("p", { class: "event" }, `${value} - ${rule.ContributionPercent}% `, index.h("span", null, translate('contribution', this.language))));
4144
+ };
4145
+ this.eventsTab = () => {
4146
+ var _a, _b, _c;
4147
+ const sortedRules = (_c = (_b = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.SportSettings) === null || _b === void 0 ? void 0 : _b.EventRules) === null || _c === void 0 ? void 0 : _c.sort((a, b) => a.OrderNumber - b.OrderNumber);
4148
+ return (index.h("div", { class: "events__tab" }, sortedRules === null || sortedRules === void 0 ? void 0 : sortedRules.map((rule) => {
4149
+ if (rule.OrderNumber === 0) {
4150
+ return (index.h("p", { class: "event" }, translate('defaultRule', this.language) + `${rule.ContributionPercent}% `, index.h("span", null, translate('contribution', this.language))));
4151
+ }
4152
+ else {
4153
+ return this.renderEventRule(rule);
4154
+ }
4155
+ })));
4156
+ };
3760
4157
  this.getContributionRule = (isContributeToOne) => {
3761
4158
  if (isContributeToOne) {
3762
4159
  return translate('isContributeToOne', this.language);
@@ -3775,6 +4172,92 @@ const CasinoChallengeDetails = class {
3775
4172
  }
3776
4173
  return '';
3777
4174
  };
4175
+ this.getSportsbookContributionType = (contributedBy) => {
4176
+ switch (contributedBy) {
4177
+ case EWalletTypes.BonusMoney:
4178
+ return translate('sportsbookBonusMoney', this.language);
4179
+ case EWalletTypes.RealCash:
4180
+ return translate('sportsbookRealMoney', this.language);
4181
+ case EWalletTypes.Mixed:
4182
+ return translate('sportsbookMixMoney', this.language);
4183
+ default:
4184
+ return '';
4185
+ }
4186
+ };
4187
+ this.getSportsbookMatchType = (matchType) => {
4188
+ switch (matchType) {
4189
+ case EMatchType.Live:
4190
+ return translate('liveMatchType', this.language);
4191
+ case EMatchType.Any:
4192
+ return translate('mixMatchType', this.language);
4193
+ case EMatchType.PreLive:
4194
+ return translate('preLiveMatchType', this.language);
4195
+ default:
4196
+ return '';
4197
+ }
4198
+ };
4199
+ this.getSportsbookBetBuilder = (betBuilder) => {
4200
+ switch (betBuilder) {
4201
+ case EBetBuilder.BetBuilderOnly:
4202
+ return translate('betBuilder', this.language);
4203
+ case EBetBuilder.Any:
4204
+ return translate('mixBetBuilder', this.language);
4205
+ case EBetBuilder.NotBetBuilderOnly:
4206
+ return translate('nonBetBuilder', this.language);
4207
+ default:
4208
+ return '';
4209
+ }
4210
+ };
4211
+ this.getSportsbookBanker = (banker) => {
4212
+ switch (banker) {
4213
+ case EBanker.BankerOnly:
4214
+ return translate('banker', this.language);
4215
+ case EBanker.Any:
4216
+ return translate('mixBanker', this.language);
4217
+ case EBanker.NotBankerOnly:
4218
+ return translate('nonBanker', this.language);
4219
+ default:
4220
+ return '';
4221
+ }
4222
+ };
4223
+ this.renderOddsLabel = (labelKey, total) => (index.h("span", null, translate(labelKey, this.language), ": ", this.renderOddsValue(total)));
4224
+ this.renderOddsValue = (total) => {
4225
+ var _a, _b, _c, _d;
4226
+ if (!total)
4227
+ return this.nonValue;
4228
+ return (index.h("span", { class: "rule__title__value" }, `${(_b = (_a = total.MinOdds) === null || _a === void 0 ? void 0 : _a.toFixed(2)) !== null && _b !== void 0 ? _b : '0'} - `, (_d = (_c = total.MaxOdds) === null || _c === void 0 ? void 0 : _c.toFixed(2)) !== null && _d !== void 0 ? _d : index.h("strong", { class: "infinity" }, this.infinity)));
4229
+ };
4230
+ this.renderSingleBetType = () => {
4231
+ return (index.h("div", null, index.h("h3", { class: "rule__title" }, translate('single', this.language)), this.renderOddsLabel('totalOdds', this.challenge.SportSettings.TotalOddsRangeSingle)));
4232
+ };
4233
+ this.renderMultipleBetType = () => {
4234
+ const betBuilder = this.getSportsbookBetBuilder(this.challenge.SportSettings.BetBuilder);
4235
+ const formatedSelectionAmount = this.formatSelectionRange(this.challenge.SportSettings.SelectionsAmountRangeMultiple, this.challenge.SportSettings.BetBuilder === EBetBuilder.NotBetBuilderOnly ? '2' : '1');
4236
+ return (index.h("div", null, index.h("h3", { class: "rule__title" }, translate('multi', this.language)), index.h("span", null, betBuilder), index.h("br", null), index.h("span", null, this.renderOddsLabel('totalOdds', this.challenge.SportSettings.TotalOddsRangeMultiple), index.h("br", null)), index.h("span", null, translate('selections', this.language), ": ", formatedSelectionAmount), index.h("br", null), index.h("span", null, this.renderOddsLabel('oddsPerSection', this.challenge.SportSettings.OddsPerSelectionRangeMultiple), index.h("br", null))));
4237
+ };
4238
+ this.renderSystemBetType = () => {
4239
+ const banker = this.getSportsbookBanker(this.challenge.SportSettings.Banker);
4240
+ const formatedSelectionAmount = this.formatSelectionRange(this.challenge.SportSettings.SelectionsAmountRangeSystem, '3');
4241
+ return (index.h("div", null, index.h("h3", { class: "rule__title" }, translate('system', this.language)), index.h("span", null, banker), index.h("br", null), this.renderOddsLabel('totalOdds', this.challenge.SportSettings.TotalOddsRangeSystem), index.h("br", null), index.h("span", null, translate('selections', this.language), ": ", formatedSelectionAmount), index.h("br", null), this.renderOddsLabel('oddsPerSection', this.challenge.SportSettings.OddsPerSelectionRangeSystem), " ", index.h("br", null)));
4242
+ };
4243
+ this.renderSportsbookRules = () => {
4244
+ var _a;
4245
+ if (!((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.SportSettings)) {
4246
+ return;
4247
+ }
4248
+ const { SportSettings, ContributedBy } = this.challenge;
4249
+ const { MatchType, BetTypes } = SportSettings;
4250
+ const contributionType = this.getSportsbookContributionType(ContributedBy);
4251
+ const matchType = this.getSportsbookMatchType(MatchType);
4252
+ return (index.h("div", { class: "sportsbook-rules" }, index.h("p", { class: "rule" }, index.h("h3", { class: "rule__title" }, translate('fundsUsed', this.language)), index.h("span", null, contributionType)), index.h("p", { class: "rule" }, index.h("h3", { class: "rule__title" }, translate('eligibleMatchTypes', this.language)), index.h("span", null, matchType)), index.h("p", { class: "rule" }, index.h("h3", { class: "rule__title" }, translate('eligibleBetTypes', this.language)), index.h("div", { class: "rule__inners" }, BetTypes.includes(EBetType.Single) && this.renderSingleBetType(), BetTypes.includes(EBetType.Multiple) && this.renderMultipleBetType(), BetTypes.includes(EBetType.System) && this.renderSystemBetType()))));
4253
+ };
4254
+ this.rulesTab = () => {
4255
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
4256
+ const contributionType = this.getContributionType((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ContributedBy);
4257
+ const contributionRule = this.getContributionRule((_b = this.challenge) === null || _b === void 0 ? void 0 : _b.IsContributeToOne);
4258
+ const isSportsbook = ((_c = this.challenge) === null || _c === void 0 ? void 0 : _c.ContributedFrom) === EContributedFrom.Sportsbook;
4259
+ return (index.h("div", { class: "rules__tab" }, ((_e = (_d = this.challenge) === null || _d === void 0 ? void 0 : _d.ChallengePresentation) === null || _e === void 0 ? void 0 : _e.Description) && (index.h("div", { class: "rule" }, (_g = (_f = this.challenge) === null || _f === void 0 ? void 0 : _f.ChallengePresentation) === null || _g === void 0 ? void 0 : _g.Description)), !isSportsbook && (index.h("div", null, contributionType && (index.h("div", { class: "contributionType" }, index.h("span", { class: "contribution__label contribution__type__label" }, '\u{1F4B0}', " ", translate('contributionType', this.language), ":"), index.h("span", { class: "contribution__value" }, contributionType))), contributionRule && (index.h("div", { class: "contributionRule" }, index.h("span", { class: "contribution__label" }, '\u{1F4C4}', " ", translate('contributionRule', this.language), ":"))), contributionRule && index.h("span", { class: "contribution__value contribution__rule__value" }, contributionRule))), ((_j = (_h = this.challenge) === null || _h === void 0 ? void 0 : _h.ChallengePresentation) === null || _j === void 0 ? void 0 : _j.Url) && (index.h("a", { class: "link", href: (_l = (_k = this.challenge) === null || _k === void 0 ? void 0 : _k.ChallengePresentation) === null || _l === void 0 ? void 0 : _l.Url, target: "_blank" }, translate('terms', this.language))), isSportsbook && this.renderSportsbookRules()));
4260
+ };
3778
4261
  this.footer = () => {
3779
4262
  var _a, _b, _c, _d, _e, _f, _g, _h;
3780
4263
  const showButton = !(((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengeStatus) === exports.EChallengeStatus.Paused ||
@@ -3793,6 +4276,18 @@ const CasinoChallengeDetails = class {
3793
4276
  ((_h = this.challenge) === null || _h === void 0 ? void 0 : _h.Status) === exports.EChallengeProgressStatus.PendingLevelReward)
3794
4277
  }, onClick: this.joinUnjoinProgress, disabled: this.actionLoading }, translate(this.actionButtonText, this.language))));
3795
4278
  };
4279
+ this.forfeitedNofitication = () => {
4280
+ var _a;
4281
+ return (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.Status) === 5 && (index.h("div", { class: "notification" }, index.h("img", { class: "notification__icon", src: alertSvg }), index.h("span", { class: "notification__message" }, translate('forfeitNotification', this.language)))));
4282
+ };
4283
+ this.completedNotification = () => {
4284
+ var _a;
4285
+ return (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.Status) === 3 && (index.h("div", { class: "notification" }, index.h("img", { class: "notification__icon", src: checkSvg }), index.h("div", { class: "notification__column" }, index.h("span", { class: "notification__title" }, translate('congrats', this.language)), index.h("span", { class: "notification__message" }, translate('completedNofitication', this.language))))));
4286
+ };
4287
+ this.expiredNotification = () => {
4288
+ var _a;
4289
+ return (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.Status) === 4 && (index.h("div", { class: "notification" }, index.h("img", { class: "notification__icon", src: infoCircleSvg }), index.h("span", { class: "notification__message" }, translate('expiredNotification', this.language)))));
4290
+ };
3796
4291
  this.goBack = () => {
3797
4292
  window.history.back();
3798
4293
  };
@@ -3810,7 +4305,7 @@ const CasinoChallengeDetails = class {
3810
4305
  this.userId = '';
3811
4306
  this.redirectIfNotFound = true;
3812
4307
  this.timeLeft = undefined;
3813
- this.activeTabIndex = 0;
4308
+ this.activeTabIndex = EDetailsTabs.Levels;
3814
4309
  this.actionLoading = false;
3815
4310
  this.isMobile = false;
3816
4311
  this.error = '';
@@ -3822,51 +4317,6 @@ const CasinoChallengeDetails = class {
3822
4317
  this.isChallengePaused = false;
3823
4318
  this.sseConnection = undefined;
3824
4319
  }
3825
- connectGameToLiveLobby() {
3826
- if (EventSource && !this.sseConnection) {
3827
- const updateUrl = `${this.endpoint}/v1/encoder/challenges/*/update`;
3828
- this.sseConnection = new eventsource.exports.EventSourcePolyfill(updateUrl);
3829
- this.sseConnection.addEventListener('message', this.handleEvent.bind(this));
3830
- }
3831
- }
3832
- disconnectGameFromLiveLobby() {
3833
- if (this.sseConnection) {
3834
- this.sseConnection.removeEventListener('message');
3835
- this.sseConnection.close();
3836
- this.sseConnection = undefined;
3837
- }
3838
- }
3839
- handleEvent(e) {
3840
- try {
3841
- const parsedData = JSON.parse(e === null || e === void 0 ? void 0 : e.data);
3842
- const { data } = parsedData;
3843
- switch (data === null || data === void 0 ? void 0 : data.messageType) {
3844
- case 'disabledChallengeNotification': {
3845
- if (this.challenge.ChallengeId === (data === null || data === void 0 ? void 0 : data.challengeId)) {
3846
- this.challenge = Object.assign(Object.assign({}, this.challenge), { StatusName: 'Paused', ChallengeStatus: exports.EChallengeStatus.Paused });
3847
- }
3848
- break;
3849
- }
3850
- case 'enabledChallengeNotification': {
3851
- if (this.challenge.ChallengeId === (data === null || data === void 0 ? void 0 : data.challengeId)) {
3852
- this.challenge = Object.assign(Object.assign({}, this.challenge), { StatusName: 'Enabled', ChallengeStatus: exports.EChallengeStatus.Enabled });
3853
- }
3854
- break;
3855
- }
3856
- case 'forfeitedChallengeProgressNotification': {
3857
- if (this.session) {
3858
- if (this.challenge.Id === (data === null || data === void 0 ? void 0 : data.challengeProgressId)) {
3859
- this.challenge = Object.assign(Object.assign({}, this.challenge), { Status: exports.EChallengeProgressStatus.Forfeited });
3860
- }
3861
- }
3862
- break;
3863
- }
3864
- }
3865
- }
3866
- catch (e) {
3867
- console.error('Exception when parse challenges NWA live updates', e);
3868
- }
3869
- }
3870
4320
  handleClientStylingChange(newValue, oldValue) {
3871
4321
  if (newValue != oldValue) {
3872
4322
  setClientStyling(this.stylingContainer, this.clientStyling);
@@ -3887,7 +4337,7 @@ const CasinoChallengeDetails = class {
3887
4337
  this.debounceTimer = setTimeout(() => {
3888
4338
  if (this.isUserAuthorized && this.session && this.challengeId) {
3889
4339
  this.getChallenge();
3890
- if (this.activeTabIndex === 1)
4340
+ if (this.activeTabIndex === EDetailsTabs.GamesOrEvents)
3891
4341
  this.fetchGames();
3892
4342
  }
3893
4343
  }, 50);
@@ -3903,17 +4353,18 @@ const CasinoChallengeDetails = class {
3903
4353
  }, 0);
3904
4354
  }
3905
4355
  }
3906
- scrollToActiveLevel() {
3907
- if (this.activeEntityRef) {
3908
- const container = this.scrollContainerRef;
3909
- const target = this.activeEntityRef;
3910
- const containerTop = container.getBoundingClientRect().top;
3911
- const targetTop = target.getBoundingClientRect().top;
3912
- const scrollOffset = targetTop - containerTop;
3913
- container.scrollTo({
3914
- top: container.scrollTop + scrollOffset - container.clientHeight / 2 + target.clientHeight / 2,
3915
- behavior: 'smooth'
3916
- });
4356
+ connectGameToLiveLobby() {
4357
+ if (EventSource && !this.sseConnection) {
4358
+ const updateUrl = `${this.endpoint}/v1/encoder/challenges/*/update`;
4359
+ this.sseConnection = new eventsource.exports.EventSourcePolyfill(updateUrl);
4360
+ this.sseConnection.addEventListener('message', this.handleEvent.bind(this));
4361
+ }
4362
+ }
4363
+ disconnectGameFromLiveLobby() {
4364
+ if (this.sseConnection) {
4365
+ this.sseConnection.removeEventListener('message');
4366
+ this.sseConnection.close();
4367
+ this.sseConnection = undefined;
3917
4368
  }
3918
4369
  }
3919
4370
  connectedCallback() {
@@ -3921,72 +4372,6 @@ const CasinoChallengeDetails = class {
3921
4372
  this.updateTime();
3922
4373
  }, 1000);
3923
4374
  }
3924
- async updateChallengeViewedStatus() {
3925
- if (!this.checkAttrs()) {
3926
- const url = `${this.endpoint}/challenge/ChangeProgressIsNewStatus`;
3927
- const body = {
3928
- DomainId: this.domain,
3929
- ChallengeProgressId: this.challenge.Id
3930
- };
3931
- return fetch(url, {
3932
- method: 'POST',
3933
- headers: {
3934
- 'Content-Type': 'application/json'
3935
- },
3936
- body: JSON.stringify(body)
3937
- })
3938
- .then((res) => res.json())
3939
- .then((res) => {
3940
- if (res.Success) {
3941
- this.challenge.IsNew = false;
3942
- }
3943
- });
3944
- }
3945
- }
3946
- async getChallenge() {
3947
- if (!this.checkAttrs()) {
3948
- this.currentFetchChallengeId++;
3949
- const fetchId = this.currentFetchChallengeId;
3950
- if (this.abortController) {
3951
- this.abortController.abort();
3952
- }
3953
- this.abortController = new AbortController();
3954
- const signal = this.abortController.signal;
3955
- const url = `${this.endpoint}/challenge/GetChallengesInfo`;
3956
- const body = Object.assign({ DomainId: this.domain, PlayerLanguage: this.language, PageNumber: 0, PageSize: 20 }, (this.session && { PlayerSession: this.session }));
3957
- this.loading = true;
3958
- return fetch(url, {
3959
- method: 'POST',
3960
- headers: {
3961
- 'Content-Type': 'application/json'
3962
- },
3963
- signal,
3964
- body: JSON.stringify(body)
3965
- })
3966
- .then((res) => res.json())
3967
- .then((res) => {
3968
- var _a;
3969
- if (res.Success) {
3970
- const challenge = (_a = res === null || res === void 0 ? void 0 : res.Data) === null || _a === void 0 ? void 0 : _a.find((challenge) => (challenge === null || challenge === void 0 ? void 0 : challenge.ChallengeId) === this.challengeId);
3971
- if (challenge) {
3972
- this.challenge = challenge;
3973
- this.isChallengePaused = this.challenge.ChallengeStatus === exports.EChallengeStatus.Paused;
3974
- if (this.challenge.IsNew) {
3975
- this.updateChallengeViewedStatus();
3976
- }
3977
- }
3978
- else if (this.redirectIfNotFound) {
3979
- this.goBack();
3980
- }
3981
- }
3982
- })
3983
- .finally(() => {
3984
- if (fetchId === this.currentFetchChallengeId) {
3985
- this.loading = false;
3986
- }
3987
- });
3988
- }
3989
- }
3990
4375
  componentWillLoad() {
3991
4376
  if (this.translationUrl) {
3992
4377
  resolveTranslationUrl(this.translationUrl);
@@ -4018,23 +4403,36 @@ const CasinoChallengeDetails = class {
4018
4403
  this.disconnectGameFromLiveLobby();
4019
4404
  window.removeEventListener('resize', this.checkIsMobile);
4020
4405
  }
4021
- getReward(level) {
4022
- return level.CustomRewardMessage || '-';
4023
- }
4024
- getTarget(level) {
4025
- var _a;
4026
- return this.calculateTargetValue(level, (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.CurrencySymbol) || '-';
4027
- }
4028
- updateTime() {
4029
- var _a, _b;
4030
- if (this.challenge) {
4031
- this.timeLeft = getTimeLeft((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ExpirationTime);
4032
- if (!this.timeLeft && this.timerExpired) {
4033
- clearInterval(this.timerId);
4034
- this.challenge = Object.assign(Object.assign({}, this.challenge), { Status: exports.EChallengeProgressStatus.Expired });
4035
- this.timerExpired.emit((_b = this.challenge) === null || _b === void 0 ? void 0 : _b.Id);
4406
+ handleEvent(e) {
4407
+ try {
4408
+ const parsedData = JSON.parse(e === null || e === void 0 ? void 0 : e.data);
4409
+ const { data } = parsedData;
4410
+ switch (data === null || data === void 0 ? void 0 : data.messageType) {
4411
+ case 'disabledChallengeNotification': {
4412
+ if (this.challenge.ChallengeId === (data === null || data === void 0 ? void 0 : data.challengeId)) {
4413
+ this.challenge = Object.assign(Object.assign({}, this.challenge), { StatusName: 'Paused', ChallengeStatus: exports.EChallengeStatus.Paused });
4414
+ }
4415
+ break;
4416
+ }
4417
+ case 'enabledChallengeNotification': {
4418
+ if (this.challenge.ChallengeId === (data === null || data === void 0 ? void 0 : data.challengeId)) {
4419
+ this.challenge = Object.assign(Object.assign({}, this.challenge), { StatusName: 'Enabled', ChallengeStatus: exports.EChallengeStatus.Enabled });
4420
+ }
4421
+ break;
4422
+ }
4423
+ case 'forfeitedChallengeProgressNotification': {
4424
+ if (this.session) {
4425
+ if (this.challenge.Id === (data === null || data === void 0 ? void 0 : data.challengeProgressId)) {
4426
+ this.challenge = Object.assign(Object.assign({}, this.challenge), { Status: exports.EChallengeProgressStatus.Forfeited });
4427
+ }
4428
+ }
4429
+ break;
4430
+ }
4036
4431
  }
4037
4432
  }
4433
+ catch (e) {
4434
+ console.error('Exception when parse challenges NWA live updates', e);
4435
+ }
4038
4436
  }
4039
4437
  get actionButtonText() {
4040
4438
  var _a;
@@ -4059,12 +4457,6 @@ const CasinoChallengeDetails = class {
4059
4457
  }
4060
4458
  return 'join';
4061
4459
  }
4062
- openLoginRegisterModal() {
4063
- window.postMessage({
4064
- type: 'OpenLoginRegisterModal',
4065
- transition: 'Login'
4066
- });
4067
- }
4068
4460
  async fetchGames() {
4069
4461
  if (!this.checkAttrs()) {
4070
4462
  this.currentFetchGamesId++;
@@ -4103,92 +4495,6 @@ const CasinoChallengeDetails = class {
4103
4495
  });
4104
4496
  }
4105
4497
  }
4106
- getLevelStatus(level, active) {
4107
- if (this.isUserAuthorized) {
4108
- if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress && !active)
4109
- return (index.h("div", { class: "level__status" }, index.h("span", null, Math.floor(level.ProgressPercentage), "%"), index.h("img", { src: lockSvg, alt: "lock-icon", title: "lock-icon" })));
4110
- else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Closed || !active)
4111
- return (index.h("div", { class: "level__status" }, index.h("img", { src: lockSvg, alt: "lock-icon", title: "lock-icon" })));
4112
- else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Fillup)
4113
- return (index.h("div", { class: "level__status" }, index.h("img", { src: lockSvg, alt: "lock-icon", title: "lock-icon" })));
4114
- else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Completed)
4115
- return index.h("span", { class: "completed" }, translate('completed', this.language));
4116
- else if (level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress)
4117
- return index.h("span", { class: "level__status in-progress" }, Math.floor(level.ProgressPercentage), "%");
4118
- }
4119
- return null;
4120
- }
4121
- get pageHeader() {
4122
- return (index.h("div", { class: "challenges-header" }, index.h("h1", { class: "challenges-title" }, index.h("img", { src: titleIconSvg, alt: "icon" }), translate('title', this.language)), this.isUserAuthorized && (index.h("div", { class: "challenges-tabs" }, this.challengesTabs.map((label, index$1) => (index.h("div", { class: `challenges-tab ${index$1 === +this.activeChallengeTabIndex ? 'active' : ''}`, onClick: this.handleChallengesTabClick(index$1) }, label, this.showNotification === index$1 && index.h("img", { src: notificationSvg }))))))));
4123
- }
4124
- get cardGeneralInfo() {
4125
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
4126
- const showButton = !(((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ChallengeStatus) === exports.EChallengeStatus.Paused ||
4127
- ((_b = this.challenge) === null || _b === void 0 ? void 0 : _b.Status) === exports.EChallengeProgressStatus.Forfeited ||
4128
- ((_c = this.challenge) === null || _c === void 0 ? void 0 : _c.Status) === exports.EChallengeProgressStatus.Completed ||
4129
- ((_d = this.challenge) === null || _d === void 0 ? void 0 : _d.Status) === exports.EChallengeProgressStatus.Expired);
4130
- return (index.h("div", { class: "details__general-info" }, index.h("div", { class: "details__general-info-image-container" }, index.h("img", { class: {
4131
- 'details__general-info-image': true,
4132
- grayed: [
4133
- exports.EChallengeProgressStatus.Expired,
4134
- exports.EChallengeProgressStatus.Forfeited,
4135
- exports.EChallengeProgressStatus.Completed
4136
- ].includes((_e = this.challenge) === null || _e === void 0 ? void 0 : _e.Status) || this.isChallengePaused
4137
- }, src: (_g = (_f = this.challenge) === null || _f === void 0 ? void 0 : _f.ChallengePresentation) === null || _g === void 0 ? void 0 : _g.BannerUrl, alt: "banner-image", title: "banner-image" }), this.getCardBadge()), index.h("div", { class: "details__general-info-content" }, index.h("h1", { class: "details__general-info-title" }, (_j = (_h = this.challenge) === null || _h === void 0 ? void 0 : _h.ChallengePresentation) === null || _j === void 0 ? void 0 : _j.PresentationName), index.h("h3", { class: "details__general-info-end-date_label" }, translate('endDate', this.language), " -", ' ', index.h("span", { class: "details__general-info-end-date_value" }, this.challenge ? formatDate((_k = this.challenge) === null || _k === void 0 ? void 0 : _k.ExpirationTime) : '-')), index.h("casino-challenge-progress-bar", { challenge: this.challenge, isUserAuthorized: this.isUserAuthorized, language: this.language }), showButton && (index.h("button", { class: {
4138
- 'details__general-info-action-button': true,
4139
- filled: ((_l = this.challenge) === null || _l === void 0 ? void 0 : _l.Status) === exports.EChallengeProgressStatus.Started,
4140
- grayed: ((_m = this.challenge) === null || _m === void 0 ? void 0 : _m.Status) === exports.EChallengeProgressStatus.Paused ||
4141
- ((_o = this.challenge) === null || _o === void 0 ? void 0 : _o.Status) === exports.EChallengeProgressStatus.InProgress ||
4142
- ((_p = this.challenge) === null || _p === void 0 ? void 0 : _p.Status) === exports.EChallengeProgressStatus.PendingLevelReward
4143
- }, disabled: this.actionLoading, onClick: this.joinUnjoinProgress }, translate(this.actionButtonText, this.language))))));
4144
- }
4145
- get challengeTabs() {
4146
- return (index.h("div", { class: "details__tabs" }, this.tabs.map((label, index$1) => (index.h("div", { class: {
4147
- details__tab: true,
4148
- active: index$1 === this.activeTabIndex
4149
- }, onClick: this.handleTabClick(index$1) }, label))), index.h("div", { class: "active-tab-indicator" })));
4150
- }
4151
- get levelsTab() {
4152
- var _a, _b;
4153
- return (index.h("div", { class: "levels__tab", ref: (el) => (this.scrollContainerRef = el) }, (_b = (_a = this.challenge) === null || _a === void 0 ? void 0 : _a.LevelProgresses) === null || _b === void 0 ? void 0 : _b.map((level, index$1) => {
4154
- var _a;
4155
- const activeChallenge = [0, 1, 2, 3].includes((_a = this === null || this === void 0 ? void 0 : this.challenge) === null || _a === void 0 ? void 0 : _a.Status) && !this.isChallengePaused;
4156
- const isGrayed = (this.isUserAuthorized && level.ProgressStatus !== exports.EChallengeProgressLevelStatus.InProgress) ||
4157
- !activeChallenge;
4158
- const isActiveMatch = level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress;
4159
- return (index.h("div", { class: {
4160
- level: true,
4161
- active: this.isUserAuthorized &&
4162
- activeChallenge &&
4163
- level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress,
4164
- completed: this.isUserAuthorized &&
4165
- activeChallenge &&
4166
- level.ProgressStatus === exports.EChallengeProgressLevelStatus.Completed,
4167
- grayed: this.isUserAuthorized &&
4168
- (level.ProgressStatus === exports.EChallengeProgressLevelStatus.Closed ||
4169
- level.ProgressStatus === exports.EChallengeProgressLevelStatus.Fillup)
4170
- }, ref: isActiveMatch ? (el) => (this.activeEntityRef = el) : undefined, key: level.LevelId }, index.h("div", { class: {
4171
- level__title: true,
4172
- grayed: isGrayed
4173
- } }, index.h("span", null, "Level ", index$1 + 1), this.isUserAuthorized && this.getLevelStatus(level, activeChallenge)), this.isUserAuthorized && level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress && (index.h("div", { class: "level__progress" }, index.h("casino-challenge-level-progress-bar", { height: "8px", value: level.ProgressPercentage, active: activeChallenge }))), index.h("casino-challenge-expandable-paragraph", { "max-height": "56", active: level.ProgressStatus === exports.EChallengeProgressLevelStatus.InProgress && activeChallenge }, index.h("div", { class: {
4174
- level__bonus: true,
4175
- grayed: isGrayed
4176
- } }, index.h("span", { class: "level__icon" }, index.h("img", { class: {
4177
- grayed: isGrayed
4178
- }, src: giftSvg, alt: "gift-icon", title: "gift-icon" })), index.h("span", { class: {
4179
- level__value: true,
4180
- grayed: isGrayed
4181
- } }, this.getReward(level))), index.h("div", { class: {
4182
- level__target: true,
4183
- grayed: isGrayed
4184
- } }, index.h("span", { class: "level__icon" }, index.h("img", { class: {
4185
- grayed: isGrayed
4186
- }, src: targetSvg, alt: "target-icon", title: "target-icon" })), index.h("span", { class: {
4187
- level__value: true,
4188
- grayed: isGrayed
4189
- } }, this.getTarget(level))))));
4190
- })));
4191
- }
4192
4498
  handleGameClick(game) {
4193
4499
  if (!this.isUserAuthorized) {
4194
4500
  this.openLoginRegisterModal();
@@ -4206,32 +4512,25 @@ const CasinoChallengeDetails = class {
4206
4512
  }
4207
4513
  });
4208
4514
  }
4209
- get gamesTab() {
4210
- var _a;
4211
- return (index.h("div", { class: "games__tab" }, this.gamesAreLoading ? (index.h("div", { class: "lds-dual-ring" })) : ((_a = this.games) === null || _a === void 0 ? void 0 : _a.map((game) => {
4212
- return (index.h("div", { class: "game", onClick: () => this.handleGameClick(game) }, index.h("img", { src: game.Thumbnail, alt: "game-icon", title: "game-icon" }), index.h("span", { class: "contribution" }, translate('contribution', this.language), " ", game.Contribution, "%")));
4213
- }))));
4214
- }
4215
- get rulesTab() {
4216
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
4217
- const contributionType = this.getContributionType((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ContributedBy);
4218
- const contributionRule = this.getContributionRule((_b = this.challenge) === null || _b === void 0 ? void 0 : _b.IsContributeToOne);
4219
- return (index.h("div", { class: "rules__tab" }, ((_d = (_c = this.challenge) === null || _c === void 0 ? void 0 : _c.ChallengePresentation) === null || _d === void 0 ? void 0 : _d.Description) && (index.h("div", { class: "rule" }, (_f = (_e = this.challenge) === null || _e === void 0 ? void 0 : _e.ChallengePresentation) === null || _f === void 0 ? void 0 : _f.Description)), contributionType && (index.h("div", { class: "contributionType" }, index.h("span", { class: "contribution__label contribution__type__label" }, '\u{1F4B0}', " ", translate('contributionType', this.language), ":"), index.h("span", { class: "contribution__value" }, contributionType))), contributionRule && (index.h("div", { class: "contributionRule" }, index.h("span", { class: "contribution__label" }, '\u{1F4C4}', " ", translate('contributionRule', this.language), ":"))), contributionRule && index.h("span", { class: "contribution__value contribution__rule__value" }, contributionRule), ((_h = (_g = this.challenge) === null || _g === void 0 ? void 0 : _g.ChallengePresentation) === null || _h === void 0 ? void 0 : _h.Url) && (index.h("a", { class: "link", href: (_k = (_j = this.challenge) === null || _j === void 0 ? void 0 : _j.ChallengePresentation) === null || _k === void 0 ? void 0 : _k.Url, target: "_blank" }, translate('terms', this.language)))));
4220
- }
4221
- get forfeitedNofitication() {
4222
- var _a;
4223
- return (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.Status) === 5 && (index.h("div", { class: "notification" }, index.h("img", { class: "notification__icon", src: alertSvg }), index.h("span", { class: "notification__message" }, translate('forfeitNotification', this.language)))));
4224
- }
4225
- get completedNotification() {
4226
- var _a;
4227
- return (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.Status) === 3 && (index.h("div", { class: "notification" }, index.h("img", { class: "notification__icon", src: checkSvg }), index.h("div", { class: "notification__column" }, index.h("span", { class: "notification__title" }, translate('congrats', this.language)), index.h("span", { class: "notification__message" }, translate('completedNofitication', this.language))))));
4515
+ formatSelectionRange(range, fallbackMin) {
4516
+ var _a, _b;
4517
+ if (!range)
4518
+ return this.nonValue;
4519
+ return `${(_a = range.Min) !== null && _a !== void 0 ? _a : fallbackMin} - ${(_b = range.Max) !== null && _b !== void 0 ? _b : this.maxSelections}`;
4228
4520
  }
4229
- get expiredNotification() {
4521
+ renderCardIcon() {
4230
4522
  var _a;
4231
- return (((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.Status) === 4 && (index.h("div", { class: "notification" }, index.h("img", { class: "notification__icon", src: infoCircleSvg }), index.h("span", { class: "notification__message" }, translate('expiredNotification', this.language)))));
4523
+ switch ((_a = this.challenge) === null || _a === void 0 ? void 0 : _a.ContributedFrom) {
4524
+ case EContributedFrom.Casino:
4525
+ return index.h("img", { class: "details__general-info-title__icon--casino", src: slotMachineSvg });
4526
+ case EContributedFrom.Sportsbook:
4527
+ return index.h("img", { class: "details__general-info-title__icon--sportsbook", src: sportsbookSvg });
4528
+ default:
4529
+ return;
4530
+ }
4232
4531
  }
4233
4532
  render() {
4234
- return (index.h("div", { key: 'a5deb370d19234d211f2b0c8bfbdabd15bae600a', ref: (el) => (this.stylingContainer = el), class: "container" }, this.pageHeader, this.loading ? (index.h("div", { class: "lds-dual-ring" })) : (index.h("div", null, index.h("button", { class: "back-button", onClick: this.goBack }, index.h("img", { class: "back-button__icon", src: backArrowSvg }), this.getBackButtonText()), this.forfeitedNofitication, this.completedNotification, this.expiredNotification, index.h("div", { class: "details" }, this.cardGeneralInfo, index.h("div", { class: "details__tabs-container" }, this.challengeTabs, this.activeTabIndex === 0 && this.levelsTab, this.activeTabIndex === 1 && this.gamesTab, this.activeTabIndex === 2 && this.rulesTab), this.footer())))));
4533
+ return (index.h("div", { key: 'c7cab4f0694412840a4d7b9fa1fdae1f7fc8e65f', ref: (el) => (this.stylingContainer = el), class: "container" }, this.pageHeader(), this.loading ? (index.h("div", { class: "lds-dual-ring" })) : (index.h("div", null, index.h("button", { class: "back-button", onClick: this.goBack }, index.h("img", { class: "back-button__icon", src: backArrowSvg }), this.getBackButtonText()), this.forfeitedNofitication(), this.completedNotification(), this.expiredNotification(), index.h("div", { class: "details" }, this.cardGeneralInfo(), index.h("div", { class: "details__tabs-container" }, this.challengeTabs(), this.challengeTabContent()), this.footer())))));
4235
4534
  }
4236
4535
  static get watchers() { return {
4237
4536
  "clientStyling": ["handleClientStylingChange"],