@everymatrix/casino-challenges-overlay-drawer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/casino-challenges-overlay-drawer/app-globals-0f993ce5.js +1 -0
  2. package/dist/casino-challenges-overlay-drawer/casino-challenge-details-events_21.entry.js +1 -0
  3. package/dist/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer-b6d3a238.js +1 -0
  4. package/dist/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.esm.js +1 -0
  5. package/dist/casino-challenges-overlay-drawer/index-25fd45d2.js +2 -0
  6. package/dist/casino-challenges-overlay-drawer/index.esm.js +1 -0
  7. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  8. package/dist/cjs/casino-challenge-details-events_21.cjs.entry.js +4459 -0
  9. package/dist/cjs/casino-challenges-overlay-drawer-ee68086b.js +1002 -0
  10. package/dist/cjs/casino-challenges-overlay-drawer.cjs.js +25 -0
  11. package/dist/cjs/index-d2288c94.js +1592 -0
  12. package/dist/cjs/index.cjs.js +10 -0
  13. package/dist/cjs/loader.cjs.js +15 -0
  14. package/dist/collection/assets/arrow-down.svg +3 -0
  15. package/dist/collection/assets/arrow-up.svg +3 -0
  16. package/dist/collection/assets/check.svg +3 -0
  17. package/dist/collection/assets/chevron-up.svg +3 -0
  18. package/dist/collection/assets/chevron.svg +4 -0
  19. package/dist/collection/assets/cross.svg +4 -0
  20. package/dist/collection/assets/crown.svg +12 -0
  21. package/dist/collection/assets/error.svg +3 -0
  22. package/dist/collection/assets/gift.svg +24 -0
  23. package/dist/collection/assets/link.svg +3 -0
  24. package/dist/collection/assets/lock.svg +3 -0
  25. package/dist/collection/assets/notification.svg +20 -0
  26. package/dist/collection/assets/opt-out.svg +3 -0
  27. package/dist/collection/assets/revert-icon.svg +4 -0
  28. package/dist/collection/assets/reward-gift.svg +123 -0
  29. package/dist/collection/assets/slot.svg +59 -0
  30. package/dist/collection/assets/sport.svg +34 -0
  31. package/dist/collection/assets/swipe.svg +3 -0
  32. package/dist/collection/assets/target.svg +16 -0
  33. package/dist/collection/assets/term-and-condition.svg +3 -0
  34. package/dist/collection/collection-manifest.json +48 -0
  35. package/dist/collection/components/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.css +260 -0
  36. package/dist/collection/components/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.js +793 -0
  37. package/dist/collection/components/casino-challenges-overlay-drawer/index.js +1 -0
  38. package/dist/collection/components/components/casino-challenge-opt-out-modal/casino-challenge-opt-out-modal.css +141 -0
  39. package/dist/collection/components/components/casino-challenge-opt-out-modal/casino-challenge-opt-out-modal.js +124 -0
  40. package/dist/collection/components/components/casino-challenge-overlay-background/casino-challenge-overlay-background.css +89 -0
  41. package/dist/collection/components/components/casino-challenge-overlay-background/casino-challenge-overlay-background.js +44 -0
  42. package/dist/collection/components/components/casino-challenges-claim-code/casino-challenges-claim-code.css +143 -0
  43. package/dist/collection/components/components/casino-challenges-claim-code/casino-challenges-claim-code.js +260 -0
  44. package/dist/collection/components/components/casino-challenges-empty-state/casino-challenges-empty-state.css +35 -0
  45. package/dist/collection/components/components/casino-challenges-empty-state/casino-challenges-empty-state.js +80 -0
  46. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/casino-challenges-overlay-drawer-history.css +37 -0
  47. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/casino-challenges-overlay-drawer-history.js +335 -0
  48. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/components/casino-challenge-drawer-history-item/casino-challenge-drawer-history-item.css +170 -0
  49. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/components/casino-challenge-drawer-history-item/casino-challenge-drawer-history-item.js +173 -0
  50. package/dist/collection/components/components/casino-challenges-overlay-loader/casino-challenges-overlay-loader.css +83 -0
  51. package/dist/collection/components/components/casino-challenges-overlay-loader/casino-challenges-overlay-loader.js +63 -0
  52. package/dist/collection/components/components/casino-challenges-overlay-tabs/casino-challenges-overlay-tabs.css +116 -0
  53. package/dist/collection/components/components/casino-challenges-overlay-tabs/casino-challenges-overlay-tabs.js +171 -0
  54. package/dist/collection/components/components/swipe-up/swipe-up.css +61 -0
  55. package/dist/collection/components/components/swipe-up/swipe-up.js +155 -0
  56. package/dist/collection/consts.js +3829 -0
  57. package/dist/collection/index.js +1 -0
  58. package/dist/collection/utils/general-info-utils.js +105 -0
  59. package/dist/collection/utils/levels-utils.js +55 -0
  60. package/dist/collection/utils/locale.utils.js +146 -0
  61. package/dist/collection/utils/types.js +160 -0
  62. package/dist/collection/utils/utils.js +54 -0
  63. package/dist/esm/app-globals-0f993ce5.js +3 -0
  64. package/dist/esm/casino-challenge-details-events_21.entry.js +4436 -0
  65. package/dist/esm/casino-challenges-overlay-drawer-b6d3a238.js +994 -0
  66. package/dist/esm/casino-challenges-overlay-drawer.js +20 -0
  67. package/dist/esm/index-25fd45d2.js +1563 -0
  68. package/dist/esm/index.js +2 -0
  69. package/dist/esm/loader.js +11 -0
  70. package/dist/index.cjs.js +1 -0
  71. package/dist/index.js +1 -0
  72. package/dist/stencil.config.dev.js +19 -0
  73. package/dist/stencil.config.js +19 -0
  74. package/dist/storybook/main.js +43 -0
  75. package/dist/storybook/preview.js +9 -0
  76. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/libs/common/src/storybook/storybook-utils.d.ts +39 -0
  77. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/stencil.config.d.ts +2 -0
  78. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/stencil.config.dev.d.ts +2 -0
  79. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/storybook/main.d.ts +3 -0
  80. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/storybook/preview.d.ts +70 -0
  81. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/index.d.ts +4 -0
  82. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/lazy-load-chunk-plugin.d.ts +12 -0
  83. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/stencil-clean-deps-plugin.d.ts +5 -0
  84. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/vite-chunk-plugin.d.ts +6 -0
  85. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/vite-clean-deps-plugin.d.ts +4 -0
  86. package/dist/types/components/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.d.ts +77 -0
  87. package/dist/types/components/casino-challenges-overlay-drawer/index.d.ts +1 -0
  88. package/dist/types/components/components/casino-challenge-opt-out-modal/casino-challenge-opt-out-modal.d.ts +12 -0
  89. package/dist/types/components/components/casino-challenge-overlay-background/casino-challenge-overlay-background.d.ts +6 -0
  90. package/dist/types/components/components/casino-challenges-claim-code/casino-challenges-claim-code.d.ts +49 -0
  91. package/dist/types/components/components/casino-challenges-empty-state/casino-challenges-empty-state.d.ts +6 -0
  92. package/dist/types/components/components/casino-challenges-overlay-drawer-history/casino-challenges-overlay-drawer-history.d.ts +33 -0
  93. package/dist/types/components/components/casino-challenges-overlay-drawer-history/components/casino-challenge-drawer-history-item/casino-challenge-drawer-history-item.d.ts +12 -0
  94. package/dist/types/components/components/casino-challenges-overlay-loader/casino-challenges-overlay-loader.d.ts +5 -0
  95. package/dist/types/components/components/casino-challenges-overlay-tabs/casino-challenges-overlay-tabs.d.ts +16 -0
  96. package/dist/types/components/components/swipe-up/swipe-up.d.ts +20 -0
  97. package/dist/types/components.d.ts +362 -0
  98. package/dist/types/consts.d.ts +585 -0
  99. package/dist/types/index.d.ts +1 -0
  100. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  101. package/dist/types/utils/general-info-utils.d.ts +10 -0
  102. package/dist/types/utils/levels-utils.d.ts +5 -0
  103. package/dist/types/utils/locale.utils.d.ts +12 -0
  104. package/dist/types/utils/types.d.ts +327 -0
  105. package/dist/types/utils/utils.d.ts +7 -0
  106. package/loader/cdn.js +1 -0
  107. package/loader/index.cjs.js +1 -0
  108. package/loader/index.d.ts +24 -0
  109. package/loader/index.es2017.js +1 -0
  110. package/loader/index.js +2 -0
  111. package/loader/package.json +11 -0
  112. package/package.json +27 -0
@@ -0,0 +1 @@
1
+ export * from './components/casino-challenges-overlay-drawer';
@@ -0,0 +1,105 @@
1
+ import { h } from "@stencil/core";
2
+ import { MIN_DEPOSIT_AMOUNT } from "../consts";
3
+ import { translate } from "./locale.utils";
4
+ import { formatNumber } from "./utils";
5
+ import { EChallengeProgressStatus, EChallengesTabs, EChallengeStatus, EChallengeTriggerType } from "./types";
6
+ export const getDepositDescription = (challenge, language) => {
7
+ const amountToTriggerDeposit = formatNumber(challenge === null || challenge === void 0 ? void 0 : challenge.AmountToTriggerDeposit);
8
+ const hasNoDepositAmount = amountToTriggerDeposit === MIN_DEPOSIT_AMOUNT;
9
+ return hasNoDepositAmount
10
+ ? translate('noDepositAmountDescription', language)
11
+ : `${translate('deposit', language)} ${challenge === null || challenge === void 0 ? void 0 : challenge.CurrencySymbol}${amountToTriggerDeposit} ${translate('depositAmountDescription', language)}`;
12
+ };
13
+ export const actionButtonIsVisible = (challenge, isPromo, isOptedOut) => {
14
+ return ((isPromo && (challenge === null || challenge === void 0 ? void 0 : challenge.Status) !== EChallengeProgressStatus.Expired) ||
15
+ !(isOptedOut ||
16
+ (challenge === null || challenge === void 0 ? void 0 : challenge.ChallengeStatus) === EChallengeStatus.Paused ||
17
+ (challenge === null || challenge === void 0 ? void 0 : challenge.Status) === EChallengeProgressStatus.Forfeited ||
18
+ (challenge === null || challenge === void 0 ? void 0 : challenge.Status) === EChallengeProgressStatus.Completed ||
19
+ (challenge === null || challenge === void 0 ? void 0 : challenge.Status) === EChallengeProgressStatus.Expired));
20
+ };
21
+ export const isDepositTriggerType = (challenge) => {
22
+ var _a, _b, _c;
23
+ return (((_a = challenge === null || challenge === void 0 ? void 0 : challenge.Triggers) === null || _a === void 0 ? void 0 : _a.includes(EChallengeTriggerType.Deposit)) &&
24
+ ((_b = challenge === null || challenge === void 0 ? void 0 : challenge.Triggers) === null || _b === void 0 ? void 0 : _b.includes(EChallengeTriggerType.GameLaunch))) ||
25
+ ((_c = challenge === null || challenge === void 0 ? void 0 : challenge.Triggers) === null || _c === void 0 ? void 0 : _c.includes(EChallengeTriggerType.Deposit));
26
+ };
27
+ export const isGameLaunchTriggerType = (challenge) => { var _a; return (_a = challenge === null || challenge === void 0 ? void 0 : challenge.Triggers) === null || _a === void 0 ? void 0 : _a.includes(EChallengeTriggerType.GameLaunch); };
28
+ export const isClaimByButtonTriggerType = (challenge) => { var _a; return !isDepositTriggerType(challenge) && ((_a = challenge === null || challenge === void 0 ? void 0 : challenge.Triggers) === null || _a === void 0 ? void 0 : _a.includes(EChallengeTriggerType.ClaimByButton)); };
29
+ export const getActionButtonText = (challenge) => {
30
+ let buttonText;
31
+ const depositTriggerType = isDepositTriggerType(challenge);
32
+ const gamelaunchTriggerType = isGameLaunchTriggerType(challenge);
33
+ const claimByButton = isClaimByButtonTriggerType(challenge);
34
+ if (depositTriggerType) {
35
+ buttonText = 'deposit';
36
+ return buttonText;
37
+ }
38
+ else if (claimByButton) {
39
+ buttonText = 'claimByButton';
40
+ return buttonText;
41
+ }
42
+ else if (gamelaunchTriggerType) {
43
+ buttonText = 'launchGame';
44
+ return buttonText;
45
+ }
46
+ switch (challenge === null || challenge === void 0 ? void 0 : challenge.Status) {
47
+ case EChallengeProgressStatus.Started:
48
+ buttonText = 'optIn';
49
+ break;
50
+ case EChallengeProgressStatus.Paused:
51
+ buttonText = 'resume';
52
+ break;
53
+ case EChallengeProgressStatus.InProgress:
54
+ case EChallengeProgressStatus.PendingLevelReward:
55
+ buttonText = 'pause';
56
+ break;
57
+ default:
58
+ buttonText = 'optIn';
59
+ break;
60
+ }
61
+ return buttonText;
62
+ };
63
+ export const getActionButtonDescription = (challenge, pendingChallenge) => {
64
+ let description;
65
+ if (pendingChallenge) {
66
+ description = 'pendingDescription';
67
+ return description;
68
+ }
69
+ switch (challenge === null || challenge === void 0 ? void 0 : challenge.Status) {
70
+ case EChallengeProgressStatus.Started:
71
+ description = 'optInDescription';
72
+ break;
73
+ case EChallengeProgressStatus.Paused:
74
+ description = 'resumeDescription';
75
+ break;
76
+ case EChallengeProgressStatus.InProgress:
77
+ case EChallengeProgressStatus.PendingLevelReward:
78
+ description = 'pausedDescription';
79
+ break;
80
+ default:
81
+ description = 'optInDescription';
82
+ break;
83
+ }
84
+ return description;
85
+ };
86
+ export const isPromoChallenge = (activeChallengesTabIndex) => {
87
+ return String(activeChallengesTabIndex) === String(EChallengesTabs.Promo);
88
+ };
89
+ export const getBadgeContent = (challenge, language, timeLeft) => {
90
+ if ((challenge === null || challenge === void 0 ? void 0 : challenge.ChallengeStatus) === EChallengeStatus.Paused) {
91
+ return h("span", { class: "status" }, translate('unavailable', language));
92
+ }
93
+ switch (challenge === null || challenge === void 0 ? void 0 : challenge.Status) {
94
+ case EChallengeProgressStatus.Expired:
95
+ return h("span", { class: "status" }, translate('expired', language));
96
+ case EChallengeProgressStatus.Forfeited:
97
+ return h("span", { class: "status" }, translate('forfeited', language));
98
+ case EChallengeProgressStatus.Completed:
99
+ return h("span", { class: "status" }, translate('finished', language));
100
+ case EChallengeProgressStatus.Paused:
101
+ return h("span", { class: "status" }, translate('suspended', language));
102
+ default:
103
+ return timeLeft ? ([translate('endsIn', language), ' - ', h("span", { class: "timer" }, timeLeft)]) : (h("span", { class: "status" }, translate('expired', language)));
104
+ }
105
+ };
@@ -0,0 +1,55 @@
1
+ import { EChallengeLevelTargetType, EChallengeProgressLevelStatus, EChallengeProgressStatus } from "./types";
2
+ import { translate } from "./locale.utils";
3
+ import { h } from "@stencil/core";
4
+ import lockIcon from "../assets/lock.svg";
5
+ export const calculateTargetValue = (level, currencySymbol, language) => {
6
+ var _a, _b;
7
+ if (!level)
8
+ return '';
9
+ switch (level.LevelTargetType) {
10
+ case EChallengeLevelTargetType.Accumulative: {
11
+ const minbet = ((_a = level.BetRange) === null || _a === void 0 ? void 0 : _a.MinBet)
12
+ ? `, ${translate('minBet', language)} ${currencySymbol + level.BetRange.MinBet}`
13
+ : '';
14
+ return `${translate('placeBetsOf', language)} ${currencySymbol + level.DisplayCurrencyTargetTurnover + minbet}`;
15
+ }
16
+ case EChallengeLevelTargetType.SingleBet:
17
+ return `${translate('place', language)} ${currencySymbol + level.DisplayCurrencyTargetTurnover} ${translate('bet', language)}`;
18
+ case EChallengeLevelTargetType.MultipleOneBetSize: {
19
+ const minbet = level.DisplayCurrencyTargetTurnover
20
+ ? `, ${translate('minBet', language)} ${currencySymbol + level.DisplayCurrencyTargetTurnover}`
21
+ : '';
22
+ return `${translate('place', language)} ${level.TargetBetCount} ${translate('bets', language) + minbet}`;
23
+ }
24
+ case EChallengeLevelTargetType.BetMultiplier: {
25
+ const betCount = `${level.TargetBetCount} ${translate(`time${level.TargetBetCount === 1 ? '' : 's'}`, language)}`;
26
+ const minBet = ((_b = level.BetRange) === null || _b === void 0 ? void 0 : _b.MinBet)
27
+ ? `, ${translate('minBet', language)} ${currencySymbol + level.BetRange.MinBet}`
28
+ : '';
29
+ return `${translate('winStakeRatio', language)} x${level.Multiplier} ${betCount + minBet}`;
30
+ }
31
+ }
32
+ };
33
+ export const getLevelStatus = (status, level, activeChallenge, language) => {
34
+ if (status === EChallengeProgressStatus.Paused) {
35
+ return (h("div", { class: "level__status" }, h("span", { class: "suspended" }, translate('suspended', language))));
36
+ }
37
+ else if (level.ProgressStatus === EChallengeProgressLevelStatus.InProgress && !activeChallenge)
38
+ return (h("div", { class: "level__status" }, h("span", null, Math.floor(level.ProgressPercentage), "%"), h("img", { src: lockIcon, alt: "lock-icon", title: "lock-icon" })));
39
+ else if (level.ProgressStatus === EChallengeProgressLevelStatus.Closed || !activeChallenge)
40
+ return (h("div", { class: "level__status" }, h("img", { src: lockIcon, alt: "lock-icon", title: "lock-icon" })));
41
+ else if (level.ProgressStatus === EChallengeProgressLevelStatus.Fillup)
42
+ return (h("div", { class: "level__status" }, h("img", { src: lockIcon, alt: "lock-icon", title: "lock-icon" })));
43
+ else if (level.ProgressStatus === EChallengeProgressLevelStatus.Completed)
44
+ return h("span", { class: "completed" }, translate('completed', language));
45
+ else if (level.ProgressStatus === EChallengeProgressLevelStatus.InProgress)
46
+ return h("span", { class: "level__status in-progress" }, Math.floor(level.ProgressPercentage), "%");
47
+ else
48
+ return null;
49
+ };
50
+ export const getReward = (level) => {
51
+ return level.CustomRewardMessage || '-';
52
+ };
53
+ export const getTarget = (level, currencySymbol, language) => {
54
+ return calculateTargetValue(level, currencySymbol, language) || '-';
55
+ };
@@ -0,0 +1,146 @@
1
+ const DEFAULT_LANGUAGE = 'en';
2
+ export const TRANSLATIONS = {
3
+ en: {
4
+ title: 'Challenges',
5
+ promo: 'Promo',
6
+ active: 'Active',
7
+ pendingTab: 'Pending',
8
+ finishedTab: 'Finished',
9
+ levels: 'Levels',
10
+ level: 'Level',
11
+ seeAll: 'See All',
12
+ games: 'Games',
13
+ rules: 'Rules',
14
+ events: 'Events',
15
+ codeTab: 'Code',
16
+ endsIn: 'Ends In',
17
+ expired: 'Expired',
18
+ placeBetsOf: 'Place bets of',
19
+ place: 'Place',
20
+ bet: 'bet',
21
+ bets: 'bets',
22
+ minBet: 'min bet',
23
+ forfeited: 'Forfeited',
24
+ finished: 'Finished',
25
+ suspended: 'Suspended',
26
+ completed: 'Completed',
27
+ unavailable: 'Unavailable',
28
+ optIn: 'Opt In',
29
+ optOutLeavingText: 'Leaving the challenge will cancel your progress and disqualify from future participation',
30
+ optOutLeavingActionText: 'Opt out of Challenge',
31
+ optOutModalTitle: 'Opt out of challenge?',
32
+ optOudModalDescription: 'Current progress will be lost, but you will keep earned rewards. You will not be able to opt in for this challenge again.',
33
+ optOutModalConfirm: 'Opt Out',
34
+ optOutModalCancel: 'Cancel',
35
+ optOutSuccessMessage: 'You’ve opted out of the challenge.',
36
+ resume: 'Resume',
37
+ pause: 'Pause',
38
+ join: 'Join to Start',
39
+ deposit: 'Deposit',
40
+ launchGame: 'Launch Game',
41
+ launchDescription: 'Launch any game from the Games tab to unlock the Challenge',
42
+ depositAmountDescription: 'to unlock the Challenge',
43
+ noDepositAmountDescription: 'Deposit any amount to unlock the Challenge',
44
+ claimByButton: 'Claim',
45
+ claimDescription: 'Click Claim button to unlock the Challenge',
46
+ resumeDescription: 'Your progress is saved while Challenge is suspended',
47
+ optInDescription: 'You are ready to opt-in!',
48
+ pausedDescription: 'Your progress is saved while Challenge is paused',
49
+ congrats: 'Congratulations!',
50
+ forfeitNotification: 'Unfortunately, your progress has been forfeited, and you are no longer eligible to continue this challenge. Check out other available challenges!',
51
+ optedOutNotification: 'You’ve left this challenge. Your progress has been lost, and rejoining is no longer possible. Discover other available challenges.',
52
+ completedNofitication: "You've successfully completed this challenge! Explore the next one and keep playing to earn more rewards!",
53
+ expiredNotification: 'Unfortunately, this challenge has expired and is no longer available to complete. Try another one that’s still active!',
54
+ pendingDescription: "You can join this challenge once you've finished the previous progress in the Active tab",
55
+ terms: 'Terms & Conditions',
56
+ readFullTerms: 'Read full Terms & Conditions',
57
+ contribution: 'contribution',
58
+ endDate: 'End Date',
59
+ back: 'Back',
60
+ all: 'All Challenges',
61
+ sports: 'Sports',
62
+ casino: 'Casino',
63
+ contributionType: 'Contribution Type',
64
+ contributionRule: 'Contribution Rule',
65
+ isContributeToOne: 'Bets contribute only to the earliest started challenge (if there are multiple started challenges)',
66
+ isNotContributeToOne: 'Bets contribute to all started challenges',
67
+ bonusMoney: 'Bonus Money',
68
+ realMoney: 'Real Money',
69
+ mixedMoney: 'Real and Bonus Money contribution',
70
+ defaultRule: 'All events - ',
71
+ fundsUsed: 'Funds Used',
72
+ sportsbookRealMoney: 'Only Real Money bets can contribute',
73
+ sportsbookBonusMoney: 'Only Bonus bets can contribute',
74
+ sportsbookMixMoney: 'Both Real Money and Bonus bets can contribute',
75
+ eligibleMatchTypes: 'Eligible Match Types',
76
+ preLiveMatchType: 'Only Pre-Match bets can contribute',
77
+ liveMatchType: 'Only Live bets can contribute',
78
+ mixMatchType: 'Both Pre-Match and Live bets can contribute',
79
+ eligibleBetTypes: 'Eligible Bet Types',
80
+ single: 'Single',
81
+ multi: 'Multi/Combi',
82
+ betBuilder: 'Only Bet Builder Bets',
83
+ nonBetBuilder: 'Only Non-Bet Builder Bets',
84
+ mixBetBuilder: 'Bet Builder & Non-Bet Builder Bets',
85
+ system: 'System',
86
+ banker: 'Only Banker Bets',
87
+ nonBanker: 'Only Non-Banker Bets',
88
+ mixBanker: 'Banker & Non-Banker Bets',
89
+ oddsPerSection: 'Odds per Selection',
90
+ totalOdds: 'Total Odds',
91
+ totalLevels: 'Total Levels',
92
+ selections: 'Selections',
93
+ time: 'time',
94
+ times: 'times',
95
+ winStakeRatio: 'Win/Stake Ratio',
96
+ promoTabEmptyHeader: 'Nothing here - yet!',
97
+ promoTabEmptyDescription: 'No challenges at the moment. Try exploring events or keep playing to unlock new ones.',
98
+ activeTabEmptyHeader: 'No active challenges yet',
99
+ activeTabEmptyDescription: 'Check Promo tab to find available offers',
100
+ pendingTabEmptyHeader: 'No pending challenges yet',
101
+ pendingTabEmptyDescription: 'Check Promo tab to find available offers',
102
+ finishedTabEmptyHeader: 'No finished challenges yet',
103
+ finishedTabEmptyDescription: 'Check Promo tab to find available offers',
104
+ yourProgress: 'Your Progress',
105
+ claimCodeTitle: 'Enter the secret code to unlock hidden quests and rewards.',
106
+ claimCodeSuccessMessage: 'The code was successfully applied.',
107
+ claimCodeInputLabel: '3–30 characters, no spaces',
108
+ claimCodeBtnText: 'Apply Code',
109
+ claimCodeError: 'Invalid format. Use Latin letters, numbers, or symbols.',
110
+ claimCodeDescription: 'Enter code to unlock the challenge',
111
+ status: 'Status',
112
+ grantClaimByButtonSuccessMessage: 'Challenge has been triggered successfully and is now available on the Active tab'
113
+ },
114
+ da: {
115
+ title: ''
116
+ }
117
+ };
118
+ export const translate = (key, customLang) => {
119
+ const lang = customLang;
120
+ return TRANSLATIONS[lang !== undefined && lang in TRANSLATIONS ? lang : DEFAULT_LANGUAGE][key];
121
+ };
122
+ export const getTranslations = (data) => {
123
+ Object.keys(data).forEach((item) => {
124
+ if (!TRANSLATIONS[item]) {
125
+ TRANSLATIONS[item] = {};
126
+ }
127
+ for (let key in data[item]) {
128
+ TRANSLATIONS[item][key] = data[item][key];
129
+ }
130
+ });
131
+ };
132
+ export const resolveTranslationUrl = async (translationUrl) => {
133
+ if (translationUrl) {
134
+ try {
135
+ const response = await fetch(translationUrl);
136
+ if (!response.ok) {
137
+ throw new Error(`HTTP error! status: ${response.status}`);
138
+ }
139
+ const translations = await response.json();
140
+ getTranslations(translations);
141
+ }
142
+ catch (error) {
143
+ console.error('Failed to fetch or parse translations from URL:', error);
144
+ }
145
+ }
146
+ };
@@ -0,0 +1,160 @@
1
+ export var EChallengeLevelTargetType;
2
+ (function (EChallengeLevelTargetType) {
3
+ EChallengeLevelTargetType[EChallengeLevelTargetType["Accumulative"] = 0] = "Accumulative";
4
+ EChallengeLevelTargetType[EChallengeLevelTargetType["SingleBet"] = 1] = "SingleBet";
5
+ EChallengeLevelTargetType[EChallengeLevelTargetType["MultipleOneBetSize"] = 2] = "MultipleOneBetSize";
6
+ EChallengeLevelTargetType[EChallengeLevelTargetType["BetMultiplier"] = 3] = "BetMultiplier";
7
+ })(EChallengeLevelTargetType || (EChallengeLevelTargetType = {}));
8
+ export var EChallengeRecurrenceType;
9
+ (function (EChallengeRecurrenceType) {
10
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Single"] = 0] = "Single";
11
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Daily"] = 1] = "Daily";
12
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Weekly"] = 2] = "Weekly";
13
+ EChallengeRecurrenceType[EChallengeRecurrenceType["Monthly"] = 3] = "Monthly";
14
+ })(EChallengeRecurrenceType || (EChallengeRecurrenceType = {}));
15
+ export var EChallengeRewardType;
16
+ (function (EChallengeRewardType) {
17
+ EChallengeRewardType[EChallengeRewardType["FreeSpins"] = 0] = "FreeSpins";
18
+ EChallengeRewardType[EChallengeRewardType["LuckyWheel"] = 1] = "LuckyWheel";
19
+ EChallengeRewardType[EChallengeRewardType["Leaderboard"] = 2] = "Leaderboard";
20
+ EChallengeRewardType[EChallengeRewardType["Challenge"] = 3] = "Challenge";
21
+ EChallengeRewardType[EChallengeRewardType["Custom"] = 4] = "Custom";
22
+ })(EChallengeRewardType || (EChallengeRewardType = {}));
23
+ export var EChallengeProgressLevelStatus;
24
+ (function (EChallengeProgressLevelStatus) {
25
+ EChallengeProgressLevelStatus[EChallengeProgressLevelStatus["Closed"] = 0] = "Closed";
26
+ EChallengeProgressLevelStatus[EChallengeProgressLevelStatus["InProgress"] = 1] = "InProgress";
27
+ EChallengeProgressLevelStatus[EChallengeProgressLevelStatus["Fillup"] = 2] = "Fillup";
28
+ EChallengeProgressLevelStatus[EChallengeProgressLevelStatus["Completed"] = 3] = "Completed";
29
+ })(EChallengeProgressLevelStatus || (EChallengeProgressLevelStatus = {}));
30
+ export var EChallengeProgressStatus;
31
+ (function (EChallengeProgressStatus) {
32
+ EChallengeProgressStatus[EChallengeProgressStatus["Started"] = 0] = "Started";
33
+ EChallengeProgressStatus[EChallengeProgressStatus["InProgress"] = 1] = "InProgress";
34
+ EChallengeProgressStatus[EChallengeProgressStatus["PendingLevelReward"] = 2] = "PendingLevelReward";
35
+ EChallengeProgressStatus[EChallengeProgressStatus["Completed"] = 3] = "Completed";
36
+ EChallengeProgressStatus[EChallengeProgressStatus["Expired"] = 4] = "Expired";
37
+ EChallengeProgressStatus[EChallengeProgressStatus["Forfeited"] = 5] = "Forfeited";
38
+ EChallengeProgressStatus[EChallengeProgressStatus["Awaiting"] = 6] = "Awaiting";
39
+ EChallengeProgressStatus[EChallengeProgressStatus["Paused"] = 7] = "Paused";
40
+ })(EChallengeProgressStatus || (EChallengeProgressStatus = {}));
41
+ export var EChallengeStatus;
42
+ (function (EChallengeStatus) {
43
+ EChallengeStatus[EChallengeStatus["Draft"] = 0] = "Draft";
44
+ EChallengeStatus[EChallengeStatus["Enabled"] = 1] = "Enabled";
45
+ EChallengeStatus[EChallengeStatus["Paused"] = 2] = "Paused";
46
+ EChallengeStatus[EChallengeStatus["Closed"] = 3] = "Closed";
47
+ EChallengeStatus[EChallengeStatus["Deleted"] = 4] = "Deleted";
48
+ })(EChallengeStatus || (EChallengeStatus = {}));
49
+ export const ChallengeStatusDictionary = [
50
+ 'started',
51
+ 'inProgress',
52
+ 'pendingLevelReward',
53
+ 'completed',
54
+ 'expired',
55
+ 'forfeited',
56
+ 'awaiting',
57
+ 'paused'
58
+ ];
59
+ export var EChallengeTriggerType;
60
+ (function (EChallengeTriggerType) {
61
+ EChallengeTriggerType[EChallengeTriggerType["GameLaunch"] = 0] = "GameLaunch";
62
+ EChallengeTriggerType[EChallengeTriggerType["Reward"] = 1] = "Reward";
63
+ EChallengeTriggerType[EChallengeTriggerType["Manual"] = 2] = "Manual";
64
+ EChallengeTriggerType[EChallengeTriggerType["Claim"] = 3] = "Claim";
65
+ EChallengeTriggerType[EChallengeTriggerType["Event"] = 4] = "Event";
66
+ EChallengeTriggerType[EChallengeTriggerType["Deposit"] = 5] = "Deposit";
67
+ EChallengeTriggerType[EChallengeTriggerType["ClaimByButton"] = 6] = "ClaimByButton";
68
+ })(EChallengeTriggerType || (EChallengeTriggerType = {}));
69
+ export var EChallengeValidityType;
70
+ (function (EChallengeValidityType) {
71
+ EChallengeValidityType[EChallengeValidityType["Period"] = 0] = "Period";
72
+ EChallengeValidityType[EChallengeValidityType["Date"] = 1] = "Date";
73
+ })(EChallengeValidityType || (EChallengeValidityType = {}));
74
+ export var EContributedFrom;
75
+ (function (EContributedFrom) {
76
+ EContributedFrom[EContributedFrom["Casino"] = 0] = "Casino";
77
+ EContributedFrom[EContributedFrom["Any"] = 1] = "Any";
78
+ EContributedFrom[EContributedFrom["Sportsbook"] = 2] = "Sportsbook";
79
+ })(EContributedFrom || (EContributedFrom = {}));
80
+ export var EMatchType;
81
+ (function (EMatchType) {
82
+ EMatchType[EMatchType["Any"] = 0] = "Any";
83
+ EMatchType[EMatchType["Live"] = 1] = "Live";
84
+ EMatchType[EMatchType["PreLive"] = 2] = "PreLive";
85
+ })(EMatchType || (EMatchType = {}));
86
+ export var EBetType;
87
+ (function (EBetType) {
88
+ EBetType[EBetType["Single"] = 0] = "Single";
89
+ EBetType[EBetType["Multiple"] = 1] = "Multiple";
90
+ EBetType[EBetType["System"] = 2] = "System";
91
+ })(EBetType || (EBetType = {}));
92
+ export var EBanker;
93
+ (function (EBanker) {
94
+ EBanker[EBanker["Any"] = 0] = "Any";
95
+ EBanker[EBanker["BankerOnly"] = 1] = "BankerOnly";
96
+ EBanker[EBanker["NotBankerOnly"] = 2] = "NotBankerOnly";
97
+ })(EBanker || (EBanker = {}));
98
+ export var EBetBuilder;
99
+ (function (EBetBuilder) {
100
+ EBetBuilder[EBetBuilder["Any"] = 0] = "Any";
101
+ EBetBuilder[EBetBuilder["BetBuilderOnly"] = 1] = "BetBuilderOnly";
102
+ EBetBuilder[EBetBuilder["NotBetBuilderOnly"] = 2] = "NotBetBuilderOnly";
103
+ })(EBetBuilder || (EBetBuilder = {}));
104
+ export var EWalletTypes;
105
+ (function (EWalletTypes) {
106
+ EWalletTypes[EWalletTypes["RealCash"] = 0] = "RealCash";
107
+ EWalletTypes[EWalletTypes["BonusMoney"] = 1] = "BonusMoney";
108
+ EWalletTypes[EWalletTypes["Mixed"] = 2] = "Mixed";
109
+ })(EWalletTypes || (EWalletTypes = {}));
110
+ export var EChallengesTabs;
111
+ (function (EChallengesTabs) {
112
+ EChallengesTabs[EChallengesTabs["Promo"] = 0] = "Promo";
113
+ EChallengesTabs[EChallengesTabs["Active"] = 1] = "Active";
114
+ EChallengesTabs[EChallengesTabs["Pending"] = 2] = "Pending";
115
+ EChallengesTabs[EChallengesTabs["Finished"] = 3] = "Finished";
116
+ EChallengesTabs[EChallengesTabs["Code"] = 4] = "Code";
117
+ })(EChallengesTabs || (EChallengesTabs = {}));
118
+ export var EChallengeDetailsTabs;
119
+ (function (EChallengeDetailsTabs) {
120
+ EChallengeDetailsTabs[EChallengeDetailsTabs["Levels"] = 0] = "Levels";
121
+ EChallengeDetailsTabs[EChallengeDetailsTabs["Games"] = 1] = "Games";
122
+ EChallengeDetailsTabs[EChallengeDetailsTabs["Events"] = 2] = "Events";
123
+ EChallengeDetailsTabs[EChallengeDetailsTabs["Rules"] = 3] = "Rules";
124
+ })(EChallengeDetailsTabs || (EChallengeDetailsTabs = {}));
125
+ export const HistoryItemLevelStatusDictionary = ['Completed', 'Expired', 'Forfeited'];
126
+ export var EHistoryItemLevelStatus;
127
+ (function (EHistoryItemLevelStatus) {
128
+ EHistoryItemLevelStatus[EHistoryItemLevelStatus["Completed"] = 0] = "Completed";
129
+ EHistoryItemLevelStatus[EHistoryItemLevelStatus["Expired"] = 1] = "Expired";
130
+ EHistoryItemLevelStatus[EHistoryItemLevelStatus["Forfeited"] = 2] = "Forfeited";
131
+ })(EHistoryItemLevelStatus || (EHistoryItemLevelStatus = {}));
132
+ export var EPostMessageRequestType;
133
+ (function (EPostMessageRequestType) {
134
+ EPostMessageRequestType["ChallengesHistory"] = "ChallengesHistoryRequest";
135
+ EPostMessageRequestType["ChallengePromoTab"] = "ChallengePromoTabRequest";
136
+ EPostMessageRequestType["ClaimChallengeByCode"] = "ClaimChallengeByCodeRequest";
137
+ EPostMessageRequestType["ChallengeJoin"] = "ChallengeJoinRequest";
138
+ EPostMessageRequestType["RedirectToDepositPage"] = "RedirectToDepositPage";
139
+ EPostMessageRequestType["ClaimChallengeByButton"] = "ClaimChallengeByButtonRequest";
140
+ EPostMessageRequestType["GetChallengeGames"] = "GetChallengeGamesRequest";
141
+ EPostMessageRequestType["ChallengeIsNew"] = "ChallengeIsNewRequest";
142
+ EPostMessageRequestType["ChallengeInGameRedirect"] = "ChallengeInGameRedirect";
143
+ EPostMessageRequestType["ForfeitChallenge"] = "ForfeitChallengeRequest";
144
+ })(EPostMessageRequestType || (EPostMessageRequestType = {}));
145
+ export var EPostMessageResponseType;
146
+ (function (EPostMessageResponseType) {
147
+ EPostMessageResponseType["ChallengesHistory"] = "ChallengesHistoryResponse";
148
+ EPostMessageResponseType["ChallengePromoTab"] = "ChallengePromoTabResponse";
149
+ EPostMessageResponseType["ClaimChallengeByCode"] = "ClaimChallengeByCodeResponse";
150
+ EPostMessageResponseType["ChallengeJoin"] = "ChallengeJoinResponse";
151
+ EPostMessageResponseType["ClaimChallengeByButton"] = "ClaimChallengeByButtonResponse";
152
+ EPostMessageResponseType["GetChallengeGames"] = "GetChallengeGamesResponse";
153
+ EPostMessageResponseType["ChallengeIsNew"] = "ChallengeIsNewResponse";
154
+ EPostMessageResponseType["ForfeitChallenge"] = "ForfeitChallengeResponse";
155
+ EPostMessageResponseType["ChangeChallengeProgressStatus"] = "ChangeChallengeProgressStatus";
156
+ EPostMessageResponseType["ChallengeChangeStatusNotification"] = "ChallengeChangeStatusNotification";
157
+ EPostMessageResponseType["ChallengeForfeitNotification"] = "ChallengeForfeitNotification";
158
+ EPostMessageResponseType["UpdateChallengeProgress"] = "UpdateChallengeProgress";
159
+ EPostMessageResponseType["NewChallengeProgressGranted"] = "NewChallengeProgressGranted";
160
+ })(EPostMessageResponseType || (EPostMessageResponseType = {}));
@@ -0,0 +1,54 @@
1
+ import { format as dateFnsFormat } from "date-fns";
2
+ export function format(first, middle, last) {
3
+ return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
4
+ }
5
+ export function getTimeLeft(endTime) {
6
+ const now = new Date();
7
+ const end = new Date(endTime);
8
+ let diff = end.getTime() - now.getTime();
9
+ if (diff <= 0) {
10
+ return;
11
+ }
12
+ const days = Math.floor(diff / (1000 * 60 * 60 * 24));
13
+ diff -= days * (1000 * 60 * 60 * 24);
14
+ const hours = Math.floor(diff / (1000 * 60 * 60));
15
+ diff -= hours * (1000 * 60 * 60);
16
+ const minutes = Math.floor(diff / (1000 * 60));
17
+ diff -= minutes * (1000 * 60);
18
+ const seconds = Math.floor(diff / 1000);
19
+ const pad = (n) => n.toString().padStart(2, '0');
20
+ return `${pad(days)} : ${pad(hours)} : ${pad(minutes)} : ${pad(seconds)}`;
21
+ }
22
+ export function formatDate(dateToFormat) {
23
+ const date = new Date(dateToFormat);
24
+ return dateFnsFormat(date, 'dd/MM/yyyy');
25
+ }
26
+ export function formatNumber(num) {
27
+ const rounded = Number(num).toFixed(2);
28
+ return rounded.endsWith('.00') ? String(Math.round(num)) : rounded;
29
+ }
30
+ export const isMobile = () => {
31
+ let userAgent = window.navigator.userAgent;
32
+ return !!(userAgent.toLowerCase().match(/android/i) ||
33
+ userAgent.toLowerCase().match(/blackberry|bb/i) ||
34
+ userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
35
+ userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
36
+ };
37
+ export const hasUpdateDataChanged = (prev, next) => {
38
+ if (!prev)
39
+ return true;
40
+ if (prev.ProgressId !== next.ProgressId)
41
+ return true;
42
+ if (prev.Levels.length !== next.Levels.length)
43
+ return true;
44
+ for (let i = 0; i < next.Levels.length; i++) {
45
+ const a = prev.Levels[i];
46
+ const b = next.Levels[i];
47
+ if (a.LevelId !== b.LevelId ||
48
+ a.ProgressStatus !== b.ProgressStatus ||
49
+ a.ProgressPercentage !== b.ProgressPercentage) {
50
+ return true;
51
+ }
52
+ }
53
+ return false;
54
+ };
@@ -0,0 +1,3 @@
1
+ const globalScripts = () => {};
2
+
3
+ export { globalScripts as g };