@everymatrix/lottery-oddsbom-bomb 0.7.8 → 0.7.15
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.
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{lottery-oddsbom-bomb-1f8981ad.js → lottery-oddsbom-bomb-3ef3e529.js} +88 -12
- package/dist/cjs/lottery-oddsbom-bomb.cjs.entry.js +1 -1
- package/dist/cjs/lottery-oddsbom-bomb.cjs.js +1 -1
- package/dist/collection/components/lottery-oddsbom-bomb/lottery-oddsbom-bomb.css +2 -1
- package/dist/collection/components/lottery-oddsbom-bomb/lottery-oddsbom-bomb.js +77 -14
- package/dist/collection/models/index.js +11 -0
- package/dist/collection/utils/api.js +20 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{lottery-oddsbom-bomb-37ea28d6.js → lottery-oddsbom-bomb-c5cc49c2.js} +88 -12
- package/dist/esm/lottery-oddsbom-bomb.entry.js +1 -1
- package/dist/esm/lottery-oddsbom-bomb.js +1 -1
- package/dist/lottery-oddsbom-bomb/index.esm.js +1 -1
- package/dist/lottery-oddsbom-bomb/lottery-oddsbom-bomb-c5cc49c2.js +1 -0
- package/dist/lottery-oddsbom-bomb/lottery-oddsbom-bomb.entry.js +1 -1
- package/dist/lottery-oddsbom-bomb/lottery-oddsbom-bomb.esm.js +1 -1
- package/dist/types/components/lottery-oddsbom-bomb/lottery-oddsbom-bomb.d.ts +8 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/types/models/index.d.ts +33 -0
- package/dist/types/utils/api.d.ts +7 -1
- package/package.json +1 -1
- package/dist/lottery-oddsbom-bomb/lottery-oddsbom-bomb-37ea28d6.js +0 -1
package/dist/cjs/index.cjs.js
CHANGED
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -8,7 +8,7 @@ const appGlobals = require('./app-globals-3a1e7e63.js');
|
|
|
8
8
|
const defineCustomElements = async (win, options) => {
|
|
9
9
|
if (typeof window === 'undefined') return undefined;
|
|
10
10
|
await appGlobals.globalScripts();
|
|
11
|
-
return index.bootstrapLazy([["lottery-oddsbom-bomb.cjs",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
11
|
+
return index.bootstrapLazy([["lottery-oddsbom-bomb.cjs",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"gameId":[513,"game-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32],"isGameAvailable":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
exports.setNonce = index.setNonce;
|
|
@@ -126,6 +126,17 @@ var Bomb;
|
|
|
126
126
|
Bomb["IceHockey"] = "IceHockey";
|
|
127
127
|
Bomb["Mixed"] = "Mixed";
|
|
128
128
|
})(Bomb || (Bomb = {}));
|
|
129
|
+
var GameTypeEnum;
|
|
130
|
+
(function (GameTypeEnum) {
|
|
131
|
+
GameTypeEnum["Lottery"] = "Lottery";
|
|
132
|
+
GameTypeEnum["PoolGame"] = "PoolGame";
|
|
133
|
+
})(GameTypeEnum || (GameTypeEnum = {}));
|
|
134
|
+
var BettingOjectEnum;
|
|
135
|
+
(function (BettingOjectEnum) {
|
|
136
|
+
BettingOjectEnum["CorrectScore"] = "CorrectScore";
|
|
137
|
+
BettingOjectEnum["HomeDrawAway"] = "HomeDrawAway";
|
|
138
|
+
BettingOjectEnum["Mix"] = "Mix";
|
|
139
|
+
})(BettingOjectEnum || (BettingOjectEnum = {}));
|
|
129
140
|
|
|
130
141
|
function _typeof(o) {
|
|
131
142
|
"@babel/helpers - typeof";
|
|
@@ -2921,6 +2932,26 @@ async function getTurnoverForAll({ endpoint, configs }) {
|
|
|
2921
2932
|
const results = await Promise.allSettled(promises);
|
|
2922
2933
|
return results.map((r) => (r.status === 'fulfilled' ? r.value : fallback));
|
|
2923
2934
|
}
|
|
2935
|
+
async function fetchGameInfo(endpoint, gameId) {
|
|
2936
|
+
try {
|
|
2937
|
+
const response = await fetchRequest(`${endpoint}/games/${gameId}`, 'GET', {});
|
|
2938
|
+
return response;
|
|
2939
|
+
}
|
|
2940
|
+
catch (error) {
|
|
2941
|
+
console.error('Failed to fetch game info:', error);
|
|
2942
|
+
throw new Error('The game is currently not available. Please try again later.');
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
async function fetchTicketMatch({ endpoint, gameId, drawId }) {
|
|
2946
|
+
try {
|
|
2947
|
+
const res = await fetchRequest(`${endpoint}/poolgames/${gameId}/draws/${drawId}/matchConfig`);
|
|
2948
|
+
return res || [];
|
|
2949
|
+
}
|
|
2950
|
+
catch (e) {
|
|
2951
|
+
console.error('Failed to fetch ticket match:', e);
|
|
2952
|
+
return [];
|
|
2953
|
+
}
|
|
2954
|
+
}
|
|
2924
2955
|
function formattedTurnover(turnover, unit = '€') {
|
|
2925
2956
|
if (turnover === null)
|
|
2926
2957
|
return '';
|
|
@@ -2987,7 +3018,7 @@ const translate = (key, customLang) => {
|
|
|
2987
3018
|
return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
|
|
2988
3019
|
};
|
|
2989
3020
|
|
|
2990
|
-
const lotteryOddsbomBombCss = "/* --- Component: Bomb Card Grid --- */\n.lottery-oddsbom-bomb-wrapper {\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n height: 100%;\n}\n\n.bomb-grid-container {\n width: 100%;\n display: flex;\n justify-content: center;\n container-type: inline-size;\n container-name: bomb-grid;\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n /* --- Component: Bomb Card --- */\n}\n.bomb-grid-container .bomb-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.75rem;\n place-items: center;\n}\n.bomb-grid-container .bomb-card-wrapper {\n width: 100%;\n max-width: 30rem;\n height: 100%;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 1rem;\n border: 1px solid var(--emw--color-gray-100, #e6e6e6);\n}\n.bomb-grid-container .bomb-card {\n height: 100%;\n min-width: 24rem;\n transition: transform 0.3s;\n}\n.bomb-grid-container .bomb-card:hover {\n transform: scale(1.02);\n cursor: pointer;\n}\n.bomb-grid-container .card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 0.8rem;\n}\n.bomb-grid-container .card-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.bomb-grid-container .card-icon svg {\n width: 28px;\n height: 28px;\n}\n.bomb-grid-container .card-title {\n flex-grow: 1;\n word-break: break-all;\n}\n.bomb-grid-container .card-title h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-title p {\n margin: 0;\n color: var(--emw--color-typography-secondary, #333);\n font-size: 0.9rem;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-info {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 0.8rem;\n flex-wrap: wrap;\n}\n.bomb-grid-container .card-tag {\n background-color: var(--emw--color-tertiary, #e3f2fd);\n padding: 0.3rem 0.75rem;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n max-width: 120px;\n}\n.bomb-grid-container .card-matches {\n max-height: 6.8rem;\n overflow-y: auto;\n}\n.bomb-grid-container .card-matches ol {\n margin: 0;\n padding-left: 1.25rem;\n font-size: 0.85rem;\n line-height: 1.6;\n}\n.bomb-grid-container .card-matches li {\n padding-left: 0.2rem;\n word-wrap: break-word;\n}\n\n/* --- CONTAINER QUERIES FOR RESPONSIVENESS --- */\n@container bomb-grid (max-width: 768px) {\n .bomb-grid-container .bomb-grid {\n /* On smaller containers, switch to a single column */\n grid-template-columns: 1fr;\n }\n .bomb-card-wrapper .bomb-card {\n min-width: 200px;\n }\n}\n/* --- Component: Filter Controls --- */\n.OddsbomEntranceController__section {\n margin: 1.5rem
|
|
3021
|
+
const lotteryOddsbomBombCss = "/* --- Component: Bomb Card Grid --- */\n.lottery-oddsbom-bomb-wrapper {\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n height: 100%;\n}\n\n.bomb-grid-container {\n margin-top: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n container-type: inline-size;\n container-name: bomb-grid;\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n /* --- Component: Bomb Card --- */\n}\n.bomb-grid-container .bomb-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.75rem;\n place-items: center;\n}\n.bomb-grid-container .bomb-card-wrapper {\n width: 100%;\n max-width: 30rem;\n height: 100%;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 1rem;\n border: 1px solid var(--emw--color-gray-100, #e6e6e6);\n}\n.bomb-grid-container .bomb-card {\n height: 100%;\n min-width: 24rem;\n transition: transform 0.3s;\n}\n.bomb-grid-container .bomb-card:hover {\n transform: scale(1.02);\n cursor: pointer;\n}\n.bomb-grid-container .card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 0.8rem;\n}\n.bomb-grid-container .card-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.bomb-grid-container .card-icon svg {\n width: 28px;\n height: 28px;\n}\n.bomb-grid-container .card-title {\n flex-grow: 1;\n word-break: break-all;\n}\n.bomb-grid-container .card-title h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-title p {\n margin: 0;\n color: var(--emw--color-typography-secondary, #333);\n font-size: 0.9rem;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-info {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 0.8rem;\n flex-wrap: wrap;\n}\n.bomb-grid-container .card-tag {\n background-color: var(--emw--color-tertiary, #e3f2fd);\n padding: 0.3rem 0.75rem;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n max-width: 120px;\n}\n.bomb-grid-container .card-matches {\n max-height: 6.8rem;\n overflow-y: auto;\n}\n.bomb-grid-container .card-matches ol {\n margin: 0;\n padding-left: 1.25rem;\n font-size: 0.85rem;\n line-height: 1.6;\n}\n.bomb-grid-container .card-matches li {\n padding-left: 0.2rem;\n word-wrap: break-word;\n}\n\n/* --- CONTAINER QUERIES FOR RESPONSIVENESS --- */\n@container bomb-grid (max-width: 768px) {\n .bomb-grid-container .bomb-grid {\n /* On smaller containers, switch to a single column */\n grid-template-columns: 1fr;\n }\n .bomb-card-wrapper .bomb-card {\n min-width: 200px;\n }\n}\n/* --- Component: Filter Controls --- */\n.OddsbomEntranceController__section {\n margin-top: 1.5rem;\n display: flex;\n gap: 12px;\n color: var(--emw--color-typography, #000);\n container-type: inline-size;\n container-name: controller;\n justify-content: center;\n}\n.OddsbomEntranceController__label {\n font-weight: 500;\n white-space: nowrap;\n width: 6rem;\n line-height: 2.2rem;\n}\n.OddsbomEntranceController__segmented-control {\n display: inline-flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.OddsbomEntranceController__segment {\n height: 2.2rem;\n border: none;\n padding: 0.3rem 0.8rem;\n cursor: pointer;\n font-weight: 500;\n border-radius: 2rem;\n outline: none;\n white-space: nowrap;\n background-color: var(--emw--color-background, #ffffff);\n color: var(--emw--color-typography, #000);\n}\n.OddsbomEntranceController__segment--active {\n background-color: var(--emw--color-primary-variant, #1367e7);\n color: var(--emw--color-typography-reverse, #fff);\n font-weight: 600;\n}\n.OddsbomEntranceController__segment--disabled:hover {\n cursor: not-allowed !important;\n}\n.OddsbomEntranceController__segment:not(.OddsbomEntranceController__segment--active):hover {\n background-color: var(--emw--color-background-tertiary, #ccc);\n}\n\n.skeleton-content {\n display: flex;\n flex-direction: column;\n gap: 29px;\n align-items: center;\n}\n\n.skeleton-item {\n background: var(--emw--color-background-secondary, #f5f5f5);\n border-radius: 4px;\n height: 40px;\n width: 200px;\n}\n\n.skeleton-animated {\n animation: skeleton-shimmer 1.5s infinite linear;\n background: linear-gradient(90deg, var(--emw--color-background-secondary, #f5f5f5) 25%, var(--emw--color-background-tertiary, #ccc) 37%, var(--emw--color-background-secondary, #f5f5f5) 63%);\n background-size: 200% 100%;\n}\n\n@keyframes skeleton-shimmer {\n to {\n background-position: 100% 0;\n }\n}\n.loading-icon.scale {\n animation: scale 1s infinite ease-in-out;\n}\n\n@keyframes scale {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.2);\n }\n}\n@container controller (max-width: 500px) {\n .OddsbomEntranceController__segmented-control {\n gap: 0rem;\n }\n .OddsbomEntranceController__segment {\n padding: 0.2rem 0.6rem;\n }\n .OddsbomEntranceController__label,\n .OddsbomEntranceController____segment {\n line-height: 1.8rem;\n }\n}\n.loading-wrap {\n margin: 20px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n}\n.loading-wrap .dots-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n.loading-wrap .dot {\n height: 14px;\n width: 14px;\n margin-right: 14px;\n border-radius: 14px;\n background-color: var(--emw--color-gray-300, #333);\n animation: pulse 1.5s infinite ease-in-out;\n}\n.loading-wrap .dot:last-child {\n margin-right: 0;\n}\n.loading-wrap .dot:nth-child(1) {\n animation-delay: -0.3s;\n}\n.loading-wrap .dot:nth-child(2) {\n animation-delay: -0.1s;\n}\n.loading-wrap .dot:nth-child(3) {\n animation-delay: 0.1s;\n}\n@keyframes pulse {\n 0% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-300, #333);\n }\n 50% {\n transform: scale(1.2);\n background-color: var(--emw--color-gray-100, #e6e6e6);\n }\n 100% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-150, #6f6f6f);\n }\n}\n\n.empty-draw-wrap {\n padding-top: 100px;\n}\n.empty-draw-wrap .empty-draw {\n width: 240px;\n height: 160px;\n padding: 18px 12px 12px 12px;\n background: var(--emw--color-secondary-variant, #e3f2fd);\n position: relative;\n margin: 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 12px;\n}\n.empty-draw-wrap .empty-draw img {\n position: absolute;\n top: -64%;\n left: 50%;\n transform: translateX(-50%);\n width: 200px;\n}\n.empty-draw-wrap .empty-draw-content {\n display: flex;\n gap: 4px;\n}\n.empty-draw-wrap .empty-draw-text {\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n}";
|
|
2991
3022
|
const LotteryOddsbomBombStyle0 = lotteryOddsbomBombCss;
|
|
2992
3023
|
|
|
2993
3024
|
const BombIcons = {
|
|
@@ -3004,11 +3035,16 @@ const LotteryOddsbomBomb = class {
|
|
|
3004
3035
|
this.language = 'en';
|
|
3005
3036
|
this.endpoint = undefined;
|
|
3006
3037
|
this.groupId = undefined;
|
|
3038
|
+
this.gameId = undefined;
|
|
3007
3039
|
this.activeBomb = 'All';
|
|
3008
3040
|
this.bombList = [];
|
|
3009
3041
|
this.gameList = [];
|
|
3010
3042
|
this.liveDrawsInfoByGroupId = {};
|
|
3011
3043
|
this.isLoading = false;
|
|
3044
|
+
this.isGameAvailable = true;
|
|
3045
|
+
}
|
|
3046
|
+
get isSingleGameMode() {
|
|
3047
|
+
return !!this.gameId;
|
|
3012
3048
|
}
|
|
3013
3049
|
handleClientStylingChange(newValue, oldValue) {
|
|
3014
3050
|
if (newValue != oldValue) {
|
|
@@ -3044,20 +3080,57 @@ const LotteryOddsbomBomb = class {
|
|
|
3044
3080
|
async doFetchData(params = {}) {
|
|
3045
3081
|
try {
|
|
3046
3082
|
this.isLoading = true;
|
|
3047
|
-
this.
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
this.
|
|
3054
|
-
|
|
3055
|
-
|
|
3083
|
+
if (this.isSingleGameMode) {
|
|
3084
|
+
await this.fetchSingleGameData();
|
|
3085
|
+
}
|
|
3086
|
+
else {
|
|
3087
|
+
await this.fetchGroupData(params);
|
|
3088
|
+
}
|
|
3089
|
+
if (this.gameList.length > 0) {
|
|
3090
|
+
this.updateTurnoverForAll();
|
|
3091
|
+
}
|
|
3056
3092
|
}
|
|
3057
3093
|
finally {
|
|
3058
3094
|
this.isLoading = false;
|
|
3059
3095
|
}
|
|
3060
3096
|
}
|
|
3097
|
+
async fetchSingleGameData() {
|
|
3098
|
+
var _a, _b, _c;
|
|
3099
|
+
const { endpoint, gameId } = this;
|
|
3100
|
+
const gameInfo = await fetchGameInfo(endpoint, gameId);
|
|
3101
|
+
const wagerCloseTime = (_a = gameInfo === null || gameInfo === void 0 ? void 0 : gameInfo.currentDraw) === null || _a === void 0 ? void 0 : _a.wagerCloseTime;
|
|
3102
|
+
const drawId = (_b = gameInfo === null || gameInfo === void 0 ? void 0 : gameInfo.currentDraw) === null || _b === void 0 ? void 0 : _b.id;
|
|
3103
|
+
if (!wagerCloseTime || new Date() >= new Date(wagerCloseTime)) {
|
|
3104
|
+
this.isGameAvailable = false;
|
|
3105
|
+
this.gameList = [];
|
|
3106
|
+
}
|
|
3107
|
+
else {
|
|
3108
|
+
this.isGameAvailable = true;
|
|
3109
|
+
const matchInfo = await fetchTicketMatch({ endpoint, gameId: gameInfo.type, drawId });
|
|
3110
|
+
this.gameList = [
|
|
3111
|
+
{
|
|
3112
|
+
drawId,
|
|
3113
|
+
title: gameInfo.name,
|
|
3114
|
+
subTitle: ((_c = matchInfo === null || matchInfo === void 0 ? void 0 : matchInfo[0]) === null || _c === void 0 ? void 0 : _c.sportName) || '',
|
|
3115
|
+
icon: Bomb.Football,
|
|
3116
|
+
date: formattedTime(gameInfo.currentDraw.date),
|
|
3117
|
+
turnover: '0',
|
|
3118
|
+
matchList: (matchInfo || []).map((i) => i.eventName).slice(0, 3),
|
|
3119
|
+
gameId: gameInfo.type
|
|
3120
|
+
}
|
|
3121
|
+
];
|
|
3122
|
+
}
|
|
3123
|
+
this.bombList = [];
|
|
3124
|
+
}
|
|
3125
|
+
async fetchGroupData(params) {
|
|
3126
|
+
this.liveDrawsInfoByGroupId = await fetchData({
|
|
3127
|
+
endpoint: this.endpoint,
|
|
3128
|
+
groupId: this.groupId,
|
|
3129
|
+
params
|
|
3130
|
+
});
|
|
3131
|
+
this.gameList = this.liveDrawsInfoByGroupId.liveDraws;
|
|
3132
|
+
this.bombList = [DEFAULT_ALL_BOMB, ...this.liveDrawsInfoByGroupId.sportTags];
|
|
3133
|
+
}
|
|
3061
3134
|
async updateTurnoverForAll() {
|
|
3062
3135
|
const turnovers = getTurnoverForAll({
|
|
3063
3136
|
endpoint: this.endpoint,
|
|
@@ -3082,9 +3155,12 @@ const LotteryOddsbomBomb = class {
|
|
|
3082
3155
|
}
|
|
3083
3156
|
renderEmpty() {
|
|
3084
3157
|
const infoImagePath = index.getAssetPath('../static/empty-info.svg');
|
|
3085
|
-
|
|
3158
|
+
const message = translate('gameNotAvailable', this.language);
|
|
3159
|
+
return (index.h("div", { class: "empty-draw-wrap" }, index.h("div", { class: "empty-draw" }, index.h("img", { src: infoImagePath, class: "empty-draw-logo" }), index.h("div", { class: "empty-draw-content" }, index.h("div", { class: "empty-draw-text" }, "\u24D8 ", message)))));
|
|
3086
3160
|
}
|
|
3087
3161
|
renderFilter() {
|
|
3162
|
+
if (this.isSingleGameMode || !this.gameList.length)
|
|
3163
|
+
return null;
|
|
3088
3164
|
return (index.h("div", { class: "OddsbomEntranceController__section" }, index.h("span", { class: "OddsbomEntranceController__label" }, "Select Bomb:"), !!this.bombList.length ? (index.h("div", { class: "OddsbomEntranceController__segmented-control" }, this.bombList.map(({ name, code }) => (index.h("button", { class: {
|
|
3089
3165
|
OddsbomEntranceController__segment: true,
|
|
3090
3166
|
'OddsbomEntranceController__segment--active': this.activeBomb === code
|
|
@@ -3098,7 +3174,7 @@ const LotteryOddsbomBomb = class {
|
|
|
3098
3174
|
} }, index.h("div", { class: "card-header" }, BombIcons[icon] && index.h("div", { class: "card-icon football" }, BombIcons[icon]), index.h("div", { class: "card-title" }, index.h("h2", null, title), index.h("p", null, subTitle)), index.h("div", { class: "card-jackpot" })), index.h("div", { class: "card-info" }, index.h("span", { class: "card-tag" }, date), index.h("span", { class: "card-tag" }, translate('turnover', this.language) + turnover)), index.h("div", { class: "card-matches" }, index.h("ol", null, matchList.map((item) => (index.h("li", null, item)))))))))));
|
|
3099
3175
|
}
|
|
3100
3176
|
render() {
|
|
3101
|
-
return (index.h("div", { key: '
|
|
3177
|
+
return (index.h("div", { key: '4a2641a511f0837649cfedeb4807069ce4051731', ref: (el) => (this.stylingContainer = el), class: "lottery-oddsbom-bomb-wrapper" }, this.renderFilter(), index.h("div", { key: '15f8dbeace39a87f87e4639b8082719023d6bed5', class: "bomb-grid-container" }, this.isLoading ? this.renderLoading() : this.renderMain())));
|
|
3102
3178
|
}
|
|
3103
3179
|
static get assetsDirs() { return ["../static"]; }
|
|
3104
3180
|
static get watchers() { return {
|
|
@@ -19,7 +19,7 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["lottery-oddsbom-bomb.cjs",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
22
|
+
return index.bootstrapLazy([["lottery-oddsbom-bomb.cjs",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"gameId":[513,"game-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32],"isGameAvailable":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.bomb-grid-container {
|
|
9
|
+
margin-top: 20px;
|
|
9
10
|
width: 100%;
|
|
10
11
|
display: flex;
|
|
11
12
|
justify-content: center;
|
|
@@ -114,7 +115,7 @@
|
|
|
114
115
|
}
|
|
115
116
|
/* --- Component: Filter Controls --- */
|
|
116
117
|
.OddsbomEntranceController__section {
|
|
117
|
-
margin: 1.5rem
|
|
118
|
+
margin-top: 1.5rem;
|
|
118
119
|
display: flex;
|
|
119
120
|
gap: 12px;
|
|
120
121
|
color: var(--emw--color-typography, #000);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getAssetPath, h } from "@stencil/core";
|
|
2
2
|
import { setClientStyling, setClientStylingURL, setStreamStyling } from "../../../../../../../../libs/common/src/styling/index";
|
|
3
3
|
import { Bomb } from "../../models";
|
|
4
|
-
import { fetchData, getTurnoverForAll } from "../../utils/api";
|
|
5
|
-
import { DEFAULT_ALL_BOMB } from "../../utils/utils";
|
|
4
|
+
import { fetchGameInfo, fetchData, getTurnoverForAll, fetchTicketMatch } from "../../utils/api";
|
|
5
|
+
import { DEFAULT_ALL_BOMB, formattedTime } from "../../utils/utils";
|
|
6
6
|
import { translate } from "../../utils/locale.utils";
|
|
7
7
|
const BombIcons = {
|
|
8
8
|
[Bomb.Football]: (h("svg", { height: "18px", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", class: "text-sm" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M19.063 19.072l-.81-.97-.117.083.385-2.43.136-.211 2.23-3.464.037-.057h1.075a9.964 9.964 0 01-2.936 7.049zM4.769 5.112l2.8.877-.072 3.246-2.427 2.95-1.561-.153L2.39 9.26a9.977 9.977 0 012.378-4.148zm7.745-3.086l-.72 1.645-3.798 1.404-2.395-.75A9.953 9.953 0 0112 2c.174 0 .343.017.514.026zm7.346 3.812l-1.128 1.29-3.402-.755-.033-.008-2.446-2.241.057.016.862-1.973a9.996 9.996 0 016.09 3.67zm-1.87 8.894l-3.385-.493-1.358-4.067 2.173-2.755 3.144.698 1.347 3.634-1.921 2.983zm-4.64 5.787l4.304-1.486.62.742a9.945 9.945 0 01-5.878 2.205l.954-1.461zm-6.314-2.84l3.91.873-.001.003 1.509 1.507-1.24 1.898a9.946 9.946 0 01-5.908-2.553l1.73-1.728zm1.16-7.72l4.168.725 1.302 3.9-2.552 2.98-3.97-.885-1.412-3.724L8.196 9.96zM2 12c0-.31.019-.615.047-.92l.485 1.203-.454.907A9.934 9.934 0 012 11.999zM12 1C5.934 1 1 5.935 1 12c0 6.067 4.935 11 11 11 6.066 0 11-4.933 11-11 0-6.065-4.934-11-11-11z", fill: "currentColor" })))
|
|
@@ -16,11 +16,16 @@ export class LotteryOddsbomBomb {
|
|
|
16
16
|
this.language = 'en';
|
|
17
17
|
this.endpoint = undefined;
|
|
18
18
|
this.groupId = undefined;
|
|
19
|
+
this.gameId = undefined;
|
|
19
20
|
this.activeBomb = 'All';
|
|
20
21
|
this.bombList = [];
|
|
21
22
|
this.gameList = [];
|
|
22
23
|
this.liveDrawsInfoByGroupId = {};
|
|
23
24
|
this.isLoading = false;
|
|
25
|
+
this.isGameAvailable = true;
|
|
26
|
+
}
|
|
27
|
+
get isSingleGameMode() {
|
|
28
|
+
return !!this.gameId;
|
|
24
29
|
}
|
|
25
30
|
handleClientStylingChange(newValue, oldValue) {
|
|
26
31
|
if (newValue != oldValue) {
|
|
@@ -56,20 +61,57 @@ export class LotteryOddsbomBomb {
|
|
|
56
61
|
async doFetchData(params = {}) {
|
|
57
62
|
try {
|
|
58
63
|
this.isLoading = true;
|
|
59
|
-
this.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
if (this.isSingleGameMode) {
|
|
65
|
+
await this.fetchSingleGameData();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
await this.fetchGroupData(params);
|
|
69
|
+
}
|
|
70
|
+
if (this.gameList.length > 0) {
|
|
71
|
+
this.updateTurnoverForAll();
|
|
72
|
+
}
|
|
68
73
|
}
|
|
69
74
|
finally {
|
|
70
75
|
this.isLoading = false;
|
|
71
76
|
}
|
|
72
77
|
}
|
|
78
|
+
async fetchSingleGameData() {
|
|
79
|
+
var _a, _b, _c;
|
|
80
|
+
const { endpoint, gameId } = this;
|
|
81
|
+
const gameInfo = await fetchGameInfo(endpoint, gameId);
|
|
82
|
+
const wagerCloseTime = (_a = gameInfo === null || gameInfo === void 0 ? void 0 : gameInfo.currentDraw) === null || _a === void 0 ? void 0 : _a.wagerCloseTime;
|
|
83
|
+
const drawId = (_b = gameInfo === null || gameInfo === void 0 ? void 0 : gameInfo.currentDraw) === null || _b === void 0 ? void 0 : _b.id;
|
|
84
|
+
if (!wagerCloseTime || new Date() >= new Date(wagerCloseTime)) {
|
|
85
|
+
this.isGameAvailable = false;
|
|
86
|
+
this.gameList = [];
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.isGameAvailable = true;
|
|
90
|
+
const matchInfo = await fetchTicketMatch({ endpoint, gameId: gameInfo.type, drawId });
|
|
91
|
+
this.gameList = [
|
|
92
|
+
{
|
|
93
|
+
drawId,
|
|
94
|
+
title: gameInfo.name,
|
|
95
|
+
subTitle: ((_c = matchInfo === null || matchInfo === void 0 ? void 0 : matchInfo[0]) === null || _c === void 0 ? void 0 : _c.sportName) || '',
|
|
96
|
+
icon: Bomb.Football,
|
|
97
|
+
date: formattedTime(gameInfo.currentDraw.date),
|
|
98
|
+
turnover: '0',
|
|
99
|
+
matchList: (matchInfo || []).map((i) => i.eventName).slice(0, 3),
|
|
100
|
+
gameId: gameInfo.type
|
|
101
|
+
}
|
|
102
|
+
];
|
|
103
|
+
}
|
|
104
|
+
this.bombList = [];
|
|
105
|
+
}
|
|
106
|
+
async fetchGroupData(params) {
|
|
107
|
+
this.liveDrawsInfoByGroupId = await fetchData({
|
|
108
|
+
endpoint: this.endpoint,
|
|
109
|
+
groupId: this.groupId,
|
|
110
|
+
params
|
|
111
|
+
});
|
|
112
|
+
this.gameList = this.liveDrawsInfoByGroupId.liveDraws;
|
|
113
|
+
this.bombList = [DEFAULT_ALL_BOMB, ...this.liveDrawsInfoByGroupId.sportTags];
|
|
114
|
+
}
|
|
73
115
|
async updateTurnoverForAll() {
|
|
74
116
|
const turnovers = getTurnoverForAll({
|
|
75
117
|
endpoint: this.endpoint,
|
|
@@ -94,9 +136,12 @@ export class LotteryOddsbomBomb {
|
|
|
94
136
|
}
|
|
95
137
|
renderEmpty() {
|
|
96
138
|
const infoImagePath = getAssetPath('../static/empty-info.svg');
|
|
97
|
-
|
|
139
|
+
const message = translate('gameNotAvailable', this.language);
|
|
140
|
+
return (h("div", { class: "empty-draw-wrap" }, h("div", { class: "empty-draw" }, h("img", { src: infoImagePath, class: "empty-draw-logo" }), h("div", { class: "empty-draw-content" }, h("div", { class: "empty-draw-text" }, "\u24D8 ", message)))));
|
|
98
141
|
}
|
|
99
142
|
renderFilter() {
|
|
143
|
+
if (this.isSingleGameMode || !this.gameList.length)
|
|
144
|
+
return null;
|
|
100
145
|
return (h("div", { class: "OddsbomEntranceController__section" }, h("span", { class: "OddsbomEntranceController__label" }, "Select Bomb:"), !!this.bombList.length ? (h("div", { class: "OddsbomEntranceController__segmented-control" }, this.bombList.map(({ name, code }) => (h("button", { class: {
|
|
101
146
|
OddsbomEntranceController__segment: true,
|
|
102
147
|
'OddsbomEntranceController__segment--active': this.activeBomb === code
|
|
@@ -110,7 +155,7 @@ export class LotteryOddsbomBomb {
|
|
|
110
155
|
} }, h("div", { class: "card-header" }, BombIcons[icon] && h("div", { class: "card-icon football" }, BombIcons[icon]), h("div", { class: "card-title" }, h("h2", null, title), h("p", null, subTitle)), h("div", { class: "card-jackpot" })), h("div", { class: "card-info" }, h("span", { class: "card-tag" }, date), h("span", { class: "card-tag" }, translate('turnover', this.language) + turnover)), h("div", { class: "card-matches" }, h("ol", null, matchList.map((item) => (h("li", null, item)))))))))));
|
|
111
156
|
}
|
|
112
157
|
render() {
|
|
113
|
-
return (h("div", { key: '
|
|
158
|
+
return (h("div", { key: '4a2641a511f0837649cfedeb4807069ce4051731', ref: (el) => (this.stylingContainer = el), class: "lottery-oddsbom-bomb-wrapper" }, this.renderFilter(), h("div", { key: '15f8dbeace39a87f87e4639b8082719023d6bed5', class: "bomb-grid-container" }, this.isLoading ? this.renderLoading() : this.renderMain())));
|
|
114
159
|
}
|
|
115
160
|
static get is() { return "lottery-oddsbom-bomb"; }
|
|
116
161
|
static get encapsulation() { return "shadow"; }
|
|
@@ -247,6 +292,23 @@ export class LotteryOddsbomBomb {
|
|
|
247
292
|
},
|
|
248
293
|
"attribute": "group-id",
|
|
249
294
|
"reflect": true
|
|
295
|
+
},
|
|
296
|
+
"gameId": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"mutable": false,
|
|
299
|
+
"complexType": {
|
|
300
|
+
"original": "string",
|
|
301
|
+
"resolved": "string",
|
|
302
|
+
"references": {}
|
|
303
|
+
},
|
|
304
|
+
"required": false,
|
|
305
|
+
"optional": false,
|
|
306
|
+
"docs": {
|
|
307
|
+
"tags": [],
|
|
308
|
+
"text": "GameID of the lottery game, for single game mode"
|
|
309
|
+
},
|
|
310
|
+
"attribute": "game-id",
|
|
311
|
+
"reflect": true
|
|
250
312
|
}
|
|
251
313
|
};
|
|
252
314
|
}
|
|
@@ -256,7 +318,8 @@ export class LotteryOddsbomBomb {
|
|
|
256
318
|
"bombList": {},
|
|
257
319
|
"gameList": {},
|
|
258
320
|
"liveDrawsInfoByGroupId": {},
|
|
259
|
-
"isLoading": {}
|
|
321
|
+
"isLoading": {},
|
|
322
|
+
"isGameAvailable": {}
|
|
260
323
|
};
|
|
261
324
|
}
|
|
262
325
|
static get events() {
|
|
@@ -4,3 +4,14 @@ export var Bomb;
|
|
|
4
4
|
Bomb["IceHockey"] = "IceHockey";
|
|
5
5
|
Bomb["Mixed"] = "Mixed";
|
|
6
6
|
})(Bomb || (Bomb = {}));
|
|
7
|
+
export var GameTypeEnum;
|
|
8
|
+
(function (GameTypeEnum) {
|
|
9
|
+
GameTypeEnum["Lottery"] = "Lottery";
|
|
10
|
+
GameTypeEnum["PoolGame"] = "PoolGame";
|
|
11
|
+
})(GameTypeEnum || (GameTypeEnum = {}));
|
|
12
|
+
export var BettingOjectEnum;
|
|
13
|
+
(function (BettingOjectEnum) {
|
|
14
|
+
BettingOjectEnum["CorrectScore"] = "CorrectScore";
|
|
15
|
+
BettingOjectEnum["HomeDrawAway"] = "HomeDrawAway";
|
|
16
|
+
BettingOjectEnum["Mix"] = "Mix";
|
|
17
|
+
})(BettingOjectEnum || (BettingOjectEnum = {}));
|
|
@@ -60,6 +60,26 @@ export async function getTurnoverForAll({ endpoint, configs }) {
|
|
|
60
60
|
const results = await Promise.allSettled(promises);
|
|
61
61
|
return results.map((r) => (r.status === 'fulfilled' ? r.value : fallback));
|
|
62
62
|
}
|
|
63
|
+
export async function fetchGameInfo(endpoint, gameId) {
|
|
64
|
+
try {
|
|
65
|
+
const response = await fetchRequest(`${endpoint}/games/${gameId}`, 'GET', {});
|
|
66
|
+
return response;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error('Failed to fetch game info:', error);
|
|
70
|
+
throw new Error('The game is currently not available. Please try again later.');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export async function fetchTicketMatch({ endpoint, gameId, drawId }) {
|
|
74
|
+
try {
|
|
75
|
+
const res = await fetchRequest(`${endpoint}/poolgames/${gameId}/draws/${drawId}/matchConfig`);
|
|
76
|
+
return res || [];
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
console.error('Failed to fetch ticket match:', e);
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
63
83
|
function formattedTurnover(turnover, unit = '€') {
|
|
64
84
|
if (turnover === null)
|
|
65
85
|
return '';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { L as LotteryOddsbomBomb } from './lottery-oddsbom-bomb-
|
|
1
|
+
export { L as LotteryOddsbomBomb } from './lottery-oddsbom-bomb-c5cc49c2.js';
|
|
2
2
|
import './index-f361862f.js';
|
package/dist/esm/loader.js
CHANGED
|
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-0f993ce5.js';
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy([["lottery-oddsbom-bomb",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
8
|
+
return bootstrapLazy([["lottery-oddsbom-bomb",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"gameId":[513,"game-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32],"isGameAvailable":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { defineCustomElements };
|
|
@@ -124,6 +124,17 @@ var Bomb;
|
|
|
124
124
|
Bomb["IceHockey"] = "IceHockey";
|
|
125
125
|
Bomb["Mixed"] = "Mixed";
|
|
126
126
|
})(Bomb || (Bomb = {}));
|
|
127
|
+
var GameTypeEnum;
|
|
128
|
+
(function (GameTypeEnum) {
|
|
129
|
+
GameTypeEnum["Lottery"] = "Lottery";
|
|
130
|
+
GameTypeEnum["PoolGame"] = "PoolGame";
|
|
131
|
+
})(GameTypeEnum || (GameTypeEnum = {}));
|
|
132
|
+
var BettingOjectEnum;
|
|
133
|
+
(function (BettingOjectEnum) {
|
|
134
|
+
BettingOjectEnum["CorrectScore"] = "CorrectScore";
|
|
135
|
+
BettingOjectEnum["HomeDrawAway"] = "HomeDrawAway";
|
|
136
|
+
BettingOjectEnum["Mix"] = "Mix";
|
|
137
|
+
})(BettingOjectEnum || (BettingOjectEnum = {}));
|
|
127
138
|
|
|
128
139
|
function _typeof(o) {
|
|
129
140
|
"@babel/helpers - typeof";
|
|
@@ -2919,6 +2930,26 @@ async function getTurnoverForAll({ endpoint, configs }) {
|
|
|
2919
2930
|
const results = await Promise.allSettled(promises);
|
|
2920
2931
|
return results.map((r) => (r.status === 'fulfilled' ? r.value : fallback));
|
|
2921
2932
|
}
|
|
2933
|
+
async function fetchGameInfo(endpoint, gameId) {
|
|
2934
|
+
try {
|
|
2935
|
+
const response = await fetchRequest(`${endpoint}/games/${gameId}`, 'GET', {});
|
|
2936
|
+
return response;
|
|
2937
|
+
}
|
|
2938
|
+
catch (error) {
|
|
2939
|
+
console.error('Failed to fetch game info:', error);
|
|
2940
|
+
throw new Error('The game is currently not available. Please try again later.');
|
|
2941
|
+
}
|
|
2942
|
+
}
|
|
2943
|
+
async function fetchTicketMatch({ endpoint, gameId, drawId }) {
|
|
2944
|
+
try {
|
|
2945
|
+
const res = await fetchRequest(`${endpoint}/poolgames/${gameId}/draws/${drawId}/matchConfig`);
|
|
2946
|
+
return res || [];
|
|
2947
|
+
}
|
|
2948
|
+
catch (e) {
|
|
2949
|
+
console.error('Failed to fetch ticket match:', e);
|
|
2950
|
+
return [];
|
|
2951
|
+
}
|
|
2952
|
+
}
|
|
2922
2953
|
function formattedTurnover(turnover, unit = '€') {
|
|
2923
2954
|
if (turnover === null)
|
|
2924
2955
|
return '';
|
|
@@ -2985,7 +3016,7 @@ const translate = (key, customLang) => {
|
|
|
2985
3016
|
return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
|
|
2986
3017
|
};
|
|
2987
3018
|
|
|
2988
|
-
const lotteryOddsbomBombCss = "/* --- Component: Bomb Card Grid --- */\n.lottery-oddsbom-bomb-wrapper {\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n height: 100%;\n}\n\n.bomb-grid-container {\n width: 100%;\n display: flex;\n justify-content: center;\n container-type: inline-size;\n container-name: bomb-grid;\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n /* --- Component: Bomb Card --- */\n}\n.bomb-grid-container .bomb-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.75rem;\n place-items: center;\n}\n.bomb-grid-container .bomb-card-wrapper {\n width: 100%;\n max-width: 30rem;\n height: 100%;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 1rem;\n border: 1px solid var(--emw--color-gray-100, #e6e6e6);\n}\n.bomb-grid-container .bomb-card {\n height: 100%;\n min-width: 24rem;\n transition: transform 0.3s;\n}\n.bomb-grid-container .bomb-card:hover {\n transform: scale(1.02);\n cursor: pointer;\n}\n.bomb-grid-container .card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 0.8rem;\n}\n.bomb-grid-container .card-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.bomb-grid-container .card-icon svg {\n width: 28px;\n height: 28px;\n}\n.bomb-grid-container .card-title {\n flex-grow: 1;\n word-break: break-all;\n}\n.bomb-grid-container .card-title h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-title p {\n margin: 0;\n color: var(--emw--color-typography-secondary, #333);\n font-size: 0.9rem;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-info {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 0.8rem;\n flex-wrap: wrap;\n}\n.bomb-grid-container .card-tag {\n background-color: var(--emw--color-tertiary, #e3f2fd);\n padding: 0.3rem 0.75rem;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n max-width: 120px;\n}\n.bomb-grid-container .card-matches {\n max-height: 6.8rem;\n overflow-y: auto;\n}\n.bomb-grid-container .card-matches ol {\n margin: 0;\n padding-left: 1.25rem;\n font-size: 0.85rem;\n line-height: 1.6;\n}\n.bomb-grid-container .card-matches li {\n padding-left: 0.2rem;\n word-wrap: break-word;\n}\n\n/* --- CONTAINER QUERIES FOR RESPONSIVENESS --- */\n@container bomb-grid (max-width: 768px) {\n .bomb-grid-container .bomb-grid {\n /* On smaller containers, switch to a single column */\n grid-template-columns: 1fr;\n }\n .bomb-card-wrapper .bomb-card {\n min-width: 200px;\n }\n}\n/* --- Component: Filter Controls --- */\n.OddsbomEntranceController__section {\n margin: 1.5rem
|
|
3019
|
+
const lotteryOddsbomBombCss = "/* --- Component: Bomb Card Grid --- */\n.lottery-oddsbom-bomb-wrapper {\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n height: 100%;\n}\n\n.bomb-grid-container {\n margin-top: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n container-type: inline-size;\n container-name: bomb-grid;\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n /* --- Component: Bomb Card --- */\n}\n.bomb-grid-container .bomb-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.75rem;\n place-items: center;\n}\n.bomb-grid-container .bomb-card-wrapper {\n width: 100%;\n max-width: 30rem;\n height: 100%;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 1rem;\n border: 1px solid var(--emw--color-gray-100, #e6e6e6);\n}\n.bomb-grid-container .bomb-card {\n height: 100%;\n min-width: 24rem;\n transition: transform 0.3s;\n}\n.bomb-grid-container .bomb-card:hover {\n transform: scale(1.02);\n cursor: pointer;\n}\n.bomb-grid-container .card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 0.8rem;\n}\n.bomb-grid-container .card-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.bomb-grid-container .card-icon svg {\n width: 28px;\n height: 28px;\n}\n.bomb-grid-container .card-title {\n flex-grow: 1;\n word-break: break-all;\n}\n.bomb-grid-container .card-title h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-title p {\n margin: 0;\n color: var(--emw--color-typography-secondary, #333);\n font-size: 0.9rem;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-info {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 0.8rem;\n flex-wrap: wrap;\n}\n.bomb-grid-container .card-tag {\n background-color: var(--emw--color-tertiary, #e3f2fd);\n padding: 0.3rem 0.75rem;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n max-width: 120px;\n}\n.bomb-grid-container .card-matches {\n max-height: 6.8rem;\n overflow-y: auto;\n}\n.bomb-grid-container .card-matches ol {\n margin: 0;\n padding-left: 1.25rem;\n font-size: 0.85rem;\n line-height: 1.6;\n}\n.bomb-grid-container .card-matches li {\n padding-left: 0.2rem;\n word-wrap: break-word;\n}\n\n/* --- CONTAINER QUERIES FOR RESPONSIVENESS --- */\n@container bomb-grid (max-width: 768px) {\n .bomb-grid-container .bomb-grid {\n /* On smaller containers, switch to a single column */\n grid-template-columns: 1fr;\n }\n .bomb-card-wrapper .bomb-card {\n min-width: 200px;\n }\n}\n/* --- Component: Filter Controls --- */\n.OddsbomEntranceController__section {\n margin-top: 1.5rem;\n display: flex;\n gap: 12px;\n color: var(--emw--color-typography, #000);\n container-type: inline-size;\n container-name: controller;\n justify-content: center;\n}\n.OddsbomEntranceController__label {\n font-weight: 500;\n white-space: nowrap;\n width: 6rem;\n line-height: 2.2rem;\n}\n.OddsbomEntranceController__segmented-control {\n display: inline-flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.OddsbomEntranceController__segment {\n height: 2.2rem;\n border: none;\n padding: 0.3rem 0.8rem;\n cursor: pointer;\n font-weight: 500;\n border-radius: 2rem;\n outline: none;\n white-space: nowrap;\n background-color: var(--emw--color-background, #ffffff);\n color: var(--emw--color-typography, #000);\n}\n.OddsbomEntranceController__segment--active {\n background-color: var(--emw--color-primary-variant, #1367e7);\n color: var(--emw--color-typography-reverse, #fff);\n font-weight: 600;\n}\n.OddsbomEntranceController__segment--disabled:hover {\n cursor: not-allowed !important;\n}\n.OddsbomEntranceController__segment:not(.OddsbomEntranceController__segment--active):hover {\n background-color: var(--emw--color-background-tertiary, #ccc);\n}\n\n.skeleton-content {\n display: flex;\n flex-direction: column;\n gap: 29px;\n align-items: center;\n}\n\n.skeleton-item {\n background: var(--emw--color-background-secondary, #f5f5f5);\n border-radius: 4px;\n height: 40px;\n width: 200px;\n}\n\n.skeleton-animated {\n animation: skeleton-shimmer 1.5s infinite linear;\n background: linear-gradient(90deg, var(--emw--color-background-secondary, #f5f5f5) 25%, var(--emw--color-background-tertiary, #ccc) 37%, var(--emw--color-background-secondary, #f5f5f5) 63%);\n background-size: 200% 100%;\n}\n\n@keyframes skeleton-shimmer {\n to {\n background-position: 100% 0;\n }\n}\n.loading-icon.scale {\n animation: scale 1s infinite ease-in-out;\n}\n\n@keyframes scale {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.2);\n }\n}\n@container controller (max-width: 500px) {\n .OddsbomEntranceController__segmented-control {\n gap: 0rem;\n }\n .OddsbomEntranceController__segment {\n padding: 0.2rem 0.6rem;\n }\n .OddsbomEntranceController__label,\n .OddsbomEntranceController____segment {\n line-height: 1.8rem;\n }\n}\n.loading-wrap {\n margin: 20px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n}\n.loading-wrap .dots-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n.loading-wrap .dot {\n height: 14px;\n width: 14px;\n margin-right: 14px;\n border-radius: 14px;\n background-color: var(--emw--color-gray-300, #333);\n animation: pulse 1.5s infinite ease-in-out;\n}\n.loading-wrap .dot:last-child {\n margin-right: 0;\n}\n.loading-wrap .dot:nth-child(1) {\n animation-delay: -0.3s;\n}\n.loading-wrap .dot:nth-child(2) {\n animation-delay: -0.1s;\n}\n.loading-wrap .dot:nth-child(3) {\n animation-delay: 0.1s;\n}\n@keyframes pulse {\n 0% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-300, #333);\n }\n 50% {\n transform: scale(1.2);\n background-color: var(--emw--color-gray-100, #e6e6e6);\n }\n 100% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-150, #6f6f6f);\n }\n}\n\n.empty-draw-wrap {\n padding-top: 100px;\n}\n.empty-draw-wrap .empty-draw {\n width: 240px;\n height: 160px;\n padding: 18px 12px 12px 12px;\n background: var(--emw--color-secondary-variant, #e3f2fd);\n position: relative;\n margin: 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 12px;\n}\n.empty-draw-wrap .empty-draw img {\n position: absolute;\n top: -64%;\n left: 50%;\n transform: translateX(-50%);\n width: 200px;\n}\n.empty-draw-wrap .empty-draw-content {\n display: flex;\n gap: 4px;\n}\n.empty-draw-wrap .empty-draw-text {\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n}";
|
|
2989
3020
|
const LotteryOddsbomBombStyle0 = lotteryOddsbomBombCss;
|
|
2990
3021
|
|
|
2991
3022
|
const BombIcons = {
|
|
@@ -3002,11 +3033,16 @@ const LotteryOddsbomBomb = class {
|
|
|
3002
3033
|
this.language = 'en';
|
|
3003
3034
|
this.endpoint = undefined;
|
|
3004
3035
|
this.groupId = undefined;
|
|
3036
|
+
this.gameId = undefined;
|
|
3005
3037
|
this.activeBomb = 'All';
|
|
3006
3038
|
this.bombList = [];
|
|
3007
3039
|
this.gameList = [];
|
|
3008
3040
|
this.liveDrawsInfoByGroupId = {};
|
|
3009
3041
|
this.isLoading = false;
|
|
3042
|
+
this.isGameAvailable = true;
|
|
3043
|
+
}
|
|
3044
|
+
get isSingleGameMode() {
|
|
3045
|
+
return !!this.gameId;
|
|
3010
3046
|
}
|
|
3011
3047
|
handleClientStylingChange(newValue, oldValue) {
|
|
3012
3048
|
if (newValue != oldValue) {
|
|
@@ -3042,20 +3078,57 @@ const LotteryOddsbomBomb = class {
|
|
|
3042
3078
|
async doFetchData(params = {}) {
|
|
3043
3079
|
try {
|
|
3044
3080
|
this.isLoading = true;
|
|
3045
|
-
this.
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
this.
|
|
3052
|
-
|
|
3053
|
-
|
|
3081
|
+
if (this.isSingleGameMode) {
|
|
3082
|
+
await this.fetchSingleGameData();
|
|
3083
|
+
}
|
|
3084
|
+
else {
|
|
3085
|
+
await this.fetchGroupData(params);
|
|
3086
|
+
}
|
|
3087
|
+
if (this.gameList.length > 0) {
|
|
3088
|
+
this.updateTurnoverForAll();
|
|
3089
|
+
}
|
|
3054
3090
|
}
|
|
3055
3091
|
finally {
|
|
3056
3092
|
this.isLoading = false;
|
|
3057
3093
|
}
|
|
3058
3094
|
}
|
|
3095
|
+
async fetchSingleGameData() {
|
|
3096
|
+
var _a, _b, _c;
|
|
3097
|
+
const { endpoint, gameId } = this;
|
|
3098
|
+
const gameInfo = await fetchGameInfo(endpoint, gameId);
|
|
3099
|
+
const wagerCloseTime = (_a = gameInfo === null || gameInfo === void 0 ? void 0 : gameInfo.currentDraw) === null || _a === void 0 ? void 0 : _a.wagerCloseTime;
|
|
3100
|
+
const drawId = (_b = gameInfo === null || gameInfo === void 0 ? void 0 : gameInfo.currentDraw) === null || _b === void 0 ? void 0 : _b.id;
|
|
3101
|
+
if (!wagerCloseTime || new Date() >= new Date(wagerCloseTime)) {
|
|
3102
|
+
this.isGameAvailable = false;
|
|
3103
|
+
this.gameList = [];
|
|
3104
|
+
}
|
|
3105
|
+
else {
|
|
3106
|
+
this.isGameAvailable = true;
|
|
3107
|
+
const matchInfo = await fetchTicketMatch({ endpoint, gameId: gameInfo.type, drawId });
|
|
3108
|
+
this.gameList = [
|
|
3109
|
+
{
|
|
3110
|
+
drawId,
|
|
3111
|
+
title: gameInfo.name,
|
|
3112
|
+
subTitle: ((_c = matchInfo === null || matchInfo === void 0 ? void 0 : matchInfo[0]) === null || _c === void 0 ? void 0 : _c.sportName) || '',
|
|
3113
|
+
icon: Bomb.Football,
|
|
3114
|
+
date: formattedTime(gameInfo.currentDraw.date),
|
|
3115
|
+
turnover: '0',
|
|
3116
|
+
matchList: (matchInfo || []).map((i) => i.eventName).slice(0, 3),
|
|
3117
|
+
gameId: gameInfo.type
|
|
3118
|
+
}
|
|
3119
|
+
];
|
|
3120
|
+
}
|
|
3121
|
+
this.bombList = [];
|
|
3122
|
+
}
|
|
3123
|
+
async fetchGroupData(params) {
|
|
3124
|
+
this.liveDrawsInfoByGroupId = await fetchData({
|
|
3125
|
+
endpoint: this.endpoint,
|
|
3126
|
+
groupId: this.groupId,
|
|
3127
|
+
params
|
|
3128
|
+
});
|
|
3129
|
+
this.gameList = this.liveDrawsInfoByGroupId.liveDraws;
|
|
3130
|
+
this.bombList = [DEFAULT_ALL_BOMB, ...this.liveDrawsInfoByGroupId.sportTags];
|
|
3131
|
+
}
|
|
3059
3132
|
async updateTurnoverForAll() {
|
|
3060
3133
|
const turnovers = getTurnoverForAll({
|
|
3061
3134
|
endpoint: this.endpoint,
|
|
@@ -3080,9 +3153,12 @@ const LotteryOddsbomBomb = class {
|
|
|
3080
3153
|
}
|
|
3081
3154
|
renderEmpty() {
|
|
3082
3155
|
const infoImagePath = getAssetPath('../static/empty-info.svg');
|
|
3083
|
-
|
|
3156
|
+
const message = translate('gameNotAvailable', this.language);
|
|
3157
|
+
return (h("div", { class: "empty-draw-wrap" }, h("div", { class: "empty-draw" }, h("img", { src: infoImagePath, class: "empty-draw-logo" }), h("div", { class: "empty-draw-content" }, h("div", { class: "empty-draw-text" }, "\u24D8 ", message)))));
|
|
3084
3158
|
}
|
|
3085
3159
|
renderFilter() {
|
|
3160
|
+
if (this.isSingleGameMode || !this.gameList.length)
|
|
3161
|
+
return null;
|
|
3086
3162
|
return (h("div", { class: "OddsbomEntranceController__section" }, h("span", { class: "OddsbomEntranceController__label" }, "Select Bomb:"), !!this.bombList.length ? (h("div", { class: "OddsbomEntranceController__segmented-control" }, this.bombList.map(({ name, code }) => (h("button", { class: {
|
|
3087
3163
|
OddsbomEntranceController__segment: true,
|
|
3088
3164
|
'OddsbomEntranceController__segment--active': this.activeBomb === code
|
|
@@ -3096,7 +3172,7 @@ const LotteryOddsbomBomb = class {
|
|
|
3096
3172
|
} }, h("div", { class: "card-header" }, BombIcons[icon] && h("div", { class: "card-icon football" }, BombIcons[icon]), h("div", { class: "card-title" }, h("h2", null, title), h("p", null, subTitle)), h("div", { class: "card-jackpot" })), h("div", { class: "card-info" }, h("span", { class: "card-tag" }, date), h("span", { class: "card-tag" }, translate('turnover', this.language) + turnover)), h("div", { class: "card-matches" }, h("ol", null, matchList.map((item) => (h("li", null, item)))))))))));
|
|
3097
3173
|
}
|
|
3098
3174
|
render() {
|
|
3099
|
-
return (h("div", { key: '
|
|
3175
|
+
return (h("div", { key: '4a2641a511f0837649cfedeb4807069ce4051731', ref: (el) => (this.stylingContainer = el), class: "lottery-oddsbom-bomb-wrapper" }, this.renderFilter(), h("div", { key: '15f8dbeace39a87f87e4639b8082719023d6bed5', class: "bomb-grid-container" }, this.isLoading ? this.renderLoading() : this.renderMain())));
|
|
3100
3176
|
}
|
|
3101
3177
|
static get assetsDirs() { return ["../static"]; }
|
|
3102
3178
|
static get watchers() { return {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { L as lottery_oddsbom_bomb } from './lottery-oddsbom-bomb-
|
|
1
|
+
export { L as lottery_oddsbom_bomb } from './lottery-oddsbom-bomb-c5cc49c2.js';
|
|
2
2
|
import './index-f361862f.js';
|
|
@@ -16,5 +16,5 @@ var patchBrowser = () => {
|
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(async (options) => {
|
|
18
18
|
await globalScripts();
|
|
19
|
-
return bootstrapLazy([["lottery-oddsbom-bomb",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
19
|
+
return bootstrapLazy([["lottery-oddsbom-bomb",[[1,"lottery-oddsbom-bomb",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"endpoint":[513],"groupId":[513,"group-id"],"gameId":[513,"game-id"],"activeBomb":[32],"bombList":[32],"gameList":[32],"liveDrawsInfoByGroupId":[32],"isLoading":[32],"isGameAvailable":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
|
|
20
20
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{L as LotteryOddsbomBomb}from"./lottery-oddsbom-bomb-
|
|
1
|
+
export{L as LotteryOddsbomBomb}from"./lottery-oddsbom-bomb-c5cc49c2.js";import"./index-f361862f.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as n,r as t,c as e,g as r}from"./index-f361862f.js";const a="__WIDGET_GLOBAL_STYLE_CACHE__";function i(n,t){if(n){const e=document.createElement("style");e.innerHTML=t,n.appendChild(e)}}function o(n,t){if(!n||!t)return;const e=new URL(t);fetch(e.href).then((n=>n.text())).then((t=>{const e=document.createElement("style");e.innerHTML=t,n&&n.appendChild(e)})).catch((n=>{console.error("There was an error while trying to load client styling from URL",n)}))}function s(n,t,e,r=!1){if(!window.emMessageBus)return;if(!("adoptedStyleSheets"in Document.prototype)||!r)return e=function(n,t){const e=document.createElement("style");return window.emMessageBus.subscribe(t,(t=>{n&&(e.innerHTML=t,n.appendChild(e))}))}(n,t),e;window[a]||(window[a]={}),e=function(n,t){return window.emMessageBus.subscribe(t,(e=>{if(!n)return;const r=n.getRootNode(),i=window[a];let o=i[t]&&i[t].sheet;o?i[t].refCount=i[t].refCount+1:(o=new CSSStyleSheet,o.replaceSync(e),i[t]={sheet:o,refCount:1});const s=r.adoptedStyleSheets||[];s.includes(o)||(r.adoptedStyleSheets=[...s,o])}))}(n,t);const i=e.unsubscribe.bind(e);return e.unsubscribe=()=>{if(window[a][t]){const n=window[a][t];n.refCount>1?n.refCount=n.refCount-1:delete window[a][t]}i()},e}var d,u,c;function l(n){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},l(n)}function m(n){if(null===n||!0===n||!1===n)return NaN;var t=Number(n);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function h(n,t){if(t.length<n)throw new TypeError(n+" argument"+(n>1?"s":"")+" required, but only "+t.length+" present")}function f(n){h(1,arguments);var t=Object.prototype.toString.call(n);return n instanceof Date||"object"===l(n)&&"[object Date]"===t?new Date(n.getTime()):"number"==typeof n||"[object Number]"===t?new Date(n):("string"!=typeof n&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}!function(n){n.Football="Football",n.IceHockey="IceHockey",n.Mixed="Mixed"}(d||(d={})),function(n){n.Lottery="Lottery",n.PoolGame="PoolGame"}(u||(u={})),function(n){n.CorrectScore="CorrectScore",n.HomeDrawAway="HomeDrawAway",n.Mix="Mix"}(c||(c={}));var g={};function w(){return g}function v(n){h(1,arguments);var t=f(n);return t.setHours(0,0,0,0),t}var b=6e4,p=36e5;function y(n,t){h(2,arguments);var e=v(n),r=v(t);return e.getTime()===r.getTime()}function x(n){h(1,arguments);var t=f(n),e=t.getUTCDay(),r=(e<1?7:0)+e-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function S(n){h(1,arguments);var t=f(n),e=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(e+1,0,4),r.setUTCHours(0,0,0,0);var a=x(r),i=new Date(0);i.setUTCFullYear(e,0,4),i.setUTCHours(0,0,0,0);var o=x(i);return t.getTime()>=a.getTime()?e+1:t.getTime()>=o.getTime()?e:e-1}function E(n,t){var e,r,a,i,o,s,d,u;h(1,arguments);var c=w(),l=m(null!==(e=null!==(r=null!==(a=null!==(i=null==t?void 0:t.weekStartsOn)&&void 0!==i?i:null==t||null===(o=t.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==a?a:c.weekStartsOn)&&void 0!==r?r:null===(d=c.locale)||void 0===d||null===(u=d.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==e?e:0);if(!(l>=0&&l<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=f(n),v=g.getUTCDay(),b=(v<l?7:0)+v-l;return g.setUTCDate(g.getUTCDate()-b),g.setUTCHours(0,0,0,0),g}function D(n,t){var e,r,a,i,o,s,d,u;h(1,arguments);var c=f(n),l=c.getUTCFullYear(),g=w(),v=m(null!==(e=null!==(r=null!==(a=null!==(i=null==t?void 0:t.firstWeekContainsDate)&&void 0!==i?i:null==t||null===(o=t.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==a?a:g.firstWeekContainsDate)&&void 0!==r?r:null===(d=g.locale)||void 0===d||null===(u=d.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==e?e:1);if(!(v>=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var b=new Date(0);b.setUTCFullYear(l+1,0,v),b.setUTCHours(0,0,0,0);var p=E(b,t),y=new Date(0);y.setUTCFullYear(l,0,v),y.setUTCHours(0,0,0,0);var x=E(y,t);return c.getTime()>=p.getTime()?l+1:c.getTime()>=x.getTime()?l:l-1}function M(n,t){for(var e=n<0?"-":"",r=Math.abs(n).toString();r.length<t;)r="0"+r;return e+r}const k=function(n,t){var e=n.getUTCFullYear(),r=e>0?e:1-e;return M("yy"===t?r%100:r,t.length)},N=function(n,t){var e=n.getUTCMonth();return"M"===t?String(e+1):M(e+1,2)},T=function(n,t){return M(n.getUTCDate(),t.length)},C=function(n,t){return M(n.getUTCHours()%12||12,t.length)},I=function(n,t){return M(n.getUTCHours(),t.length)},O=function(n,t){return M(n.getUTCMinutes(),t.length)},R=function(n,t){return M(n.getUTCSeconds(),t.length)},j=function(n,t){var e=t.length,r=n.getUTCMilliseconds();return M(Math.floor(r*Math.pow(10,e-3)),t.length)};var P={G:function(n,t,e){var r=n.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return e.era(r,{width:"abbreviated"});case"GGGGG":return e.era(r,{width:"narrow"});default:return e.era(r,{width:"wide"})}},y:function(n,t,e){if("yo"===t){var r=n.getUTCFullYear();return e.ordinalNumber(r>0?r:1-r,{unit:"year"})}return k(n,t)},Y:function(n,t,e,r){var a=D(n,r),i=a>0?a:1-a;return"YY"===t?M(i%100,2):"Yo"===t?e.ordinalNumber(i,{unit:"year"}):M(i,t.length)},R:function(n,t){return M(S(n),t.length)},u:function(n,t){return M(n.getUTCFullYear(),t.length)},Q:function(n,t,e){var r=Math.ceil((n.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return M(r,2);case"Qo":return e.ordinalNumber(r,{unit:"quarter"});case"QQQ":return e.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return e.quarter(r,{width:"narrow",context:"formatting"});default:return e.quarter(r,{width:"wide",context:"formatting"})}},q:function(n,t,e){var r=Math.ceil((n.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return M(r,2);case"qo":return e.ordinalNumber(r,{unit:"quarter"});case"qqq":return e.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return e.quarter(r,{width:"narrow",context:"standalone"});default:return e.quarter(r,{width:"wide",context:"standalone"})}},M:function(n,t,e){var r=n.getUTCMonth();switch(t){case"M":case"MM":return N(n,t);case"Mo":return e.ordinalNumber(r+1,{unit:"month"});case"MMM":return e.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(r,{width:"narrow",context:"formatting"});default:return e.month(r,{width:"wide",context:"formatting"})}},L:function(n,t,e){var r=n.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return M(r+1,2);case"Lo":return e.ordinalNumber(r+1,{unit:"month"});case"LLL":return e.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return e.month(r,{width:"narrow",context:"standalone"});default:return e.month(r,{width:"wide",context:"standalone"})}},w:function(n,t,e,r){var a=function(n,t){h(1,arguments);var e=f(n),r=E(e,t).getTime()-function(n,t){var e,r,a,i,o,s,d,u;h(1,arguments);var c=w(),l=m(null!==(e=null!==(r=null!==(a=null!==(i=null==t?void 0:t.firstWeekContainsDate)&&void 0!==i?i:null==t||null===(o=t.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==a?a:c.firstWeekContainsDate)&&void 0!==r?r:null===(d=c.locale)||void 0===d||null===(u=d.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==e?e:1),f=D(n,t),g=new Date(0);return g.setUTCFullYear(f,0,l),g.setUTCHours(0,0,0,0),E(g,t)}(e,t).getTime();return Math.round(r/6048e5)+1}(n,r);return"wo"===t?e.ordinalNumber(a,{unit:"week"}):M(a,t.length)},I:function(n,t,e){var r=function(n){h(1,arguments);var t=f(n),e=x(t).getTime()-function(n){h(1,arguments);var t=S(n),e=new Date(0);return e.setUTCFullYear(t,0,4),e.setUTCHours(0,0,0,0),x(e)}(t).getTime();return Math.round(e/6048e5)+1}(n);return"Io"===t?e.ordinalNumber(r,{unit:"week"}):M(r,t.length)},d:function(n,t,e){return"do"===t?e.ordinalNumber(n.getUTCDate(),{unit:"date"}):T(n,t)},D:function(n,t,e){var r=function(n){h(1,arguments);var t=f(n),e=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=t.getTime();return Math.floor((e-r)/864e5)+1}(n);return"Do"===t?e.ordinalNumber(r,{unit:"dayOfYear"}):M(r,t.length)},E:function(n,t,e){var r=n.getUTCDay();switch(t){case"E":case"EE":case"EEE":return e.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return e.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(r,{width:"short",context:"formatting"});default:return e.day(r,{width:"wide",context:"formatting"})}},e:function(n,t,e,r){var a=n.getUTCDay(),i=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return M(i,2);case"eo":return e.ordinalNumber(i,{unit:"day"});case"eee":return e.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return e.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return e.day(a,{width:"short",context:"formatting"});default:return e.day(a,{width:"wide",context:"formatting"})}},c:function(n,t,e,r){var a=n.getUTCDay(),i=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return M(i,t.length);case"co":return e.ordinalNumber(i,{unit:"day"});case"ccc":return e.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return e.day(a,{width:"narrow",context:"standalone"});case"cccccc":return e.day(a,{width:"short",context:"standalone"});default:return e.day(a,{width:"wide",context:"standalone"})}},i:function(n,t,e){var r=n.getUTCDay(),a=0===r?7:r;switch(t){case"i":return String(a);case"ii":return M(a,t.length);case"io":return e.ordinalNumber(a,{unit:"day"});case"iii":return e.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return e.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return e.day(r,{width:"short",context:"formatting"});default:return e.day(r,{width:"wide",context:"formatting"})}},a:function(n,t,e){var r=n.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return e.dayPeriod(r,{width:"narrow",context:"formatting"});default:return e.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(n,t,e){var r,a=n.getUTCHours();switch(r=12===a?"noon":0===a?"midnight":a/12>=1?"pm":"am",t){case"b":case"bb":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return e.dayPeriod(r,{width:"narrow",context:"formatting"});default:return e.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(n,t,e){var r,a=n.getUTCHours();switch(r=a>=17?"evening":a>=12?"afternoon":a>=4?"morning":"night",t){case"B":case"BB":case"BBB":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return e.dayPeriod(r,{width:"narrow",context:"formatting"});default:return e.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(n,t,e){if("ho"===t){var r=n.getUTCHours()%12;return 0===r&&(r=12),e.ordinalNumber(r,{unit:"hour"})}return C(n,t)},H:function(n,t,e){return"Ho"===t?e.ordinalNumber(n.getUTCHours(),{unit:"hour"}):I(n,t)},K:function(n,t,e){var r=n.getUTCHours()%12;return"Ko"===t?e.ordinalNumber(r,{unit:"hour"}):M(r,t.length)},k:function(n,t,e){var r=n.getUTCHours();return 0===r&&(r=24),"ko"===t?e.ordinalNumber(r,{unit:"hour"}):M(r,t.length)},m:function(n,t,e){return"mo"===t?e.ordinalNumber(n.getUTCMinutes(),{unit:"minute"}):O(n,t)},s:function(n,t,e){return"so"===t?e.ordinalNumber(n.getUTCSeconds(),{unit:"second"}):R(n,t)},S:function(n,t){return j(n,t)},X:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return _(a);case"XXXX":case"XX":return W(a);default:return W(a,":")}},x:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();switch(t){case"x":return _(a);case"xxxx":case"xx":return W(a);default:return W(a,":")}},O:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+A(a,":");default:return"GMT"+W(a,":")}},z:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+A(a,":");default:return"GMT"+W(a,":")}},t:function(n,t,e,r){return M(Math.floor((r._originalDate||n).getTime()/1e3),t.length)},T:function(n,t,e,r){return M((r._originalDate||n).getTime(),t.length)}};function A(n,t){var e=n>0?"-":"+",r=Math.abs(n),a=Math.floor(r/60),i=r%60;if(0===i)return e+String(a);var o=t||"";return e+String(a)+o+M(i,2)}function _(n,t){return n%60==0?(n>0?"-":"+")+M(Math.abs(n)/60,2):W(n,t)}function W(n,t){var e=t||"",r=n>0?"-":"+",a=Math.abs(n);return r+M(Math.floor(a/60),2)+e+M(a%60,2)}const L=P;var z=function(n,t){switch(n){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},G=function(n,t){switch(n){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},$={p:G,P:function(n,t){var e,r=n.match(/(P+)(p+)?/)||[],a=r[1],i=r[2];if(!i)return z(n,t);switch(a){case"P":e=t.dateTime({width:"short"});break;case"PP":e=t.dateTime({width:"medium"});break;case"PPP":e=t.dateTime({width:"long"});break;default:e=t.dateTime({width:"full"})}return e.replace("{{date}}",z(a,t)).replace("{{time}}",G(i,t))}};const Y=$;var U=["D","DD"],q=["YY","YYYY"];function B(n,t,e){if("YYYY"===n)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===n)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===n)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===n)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var F={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Q(n){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.width?String(t.width):n.defaultWidth;return n.formats[e]||n.formats[n.defaultWidth]}}var X,J={date:Q({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Q({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Q({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},H={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Z(n){return function(t,e){var r;if("formatting"===(null!=e&&e.context?String(e.context):"standalone")&&n.formattingValues){var a=n.defaultFormattingWidth||n.defaultWidth,i=null!=e&&e.width?String(e.width):a;r=n.formattingValues[i]||n.formattingValues[a]}else{var o=n.defaultWidth,s=null!=e&&e.width?String(e.width):n.defaultWidth;r=n.values[s]||n.values[o]}return r[n.argumentCallback?n.argumentCallback(t):t]}}function K(n){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.width,a=t.match(r&&n.matchPatterns[r]||n.matchPatterns[n.defaultMatchWidth]);if(!a)return null;var i,o=a[0],s=r&&n.parsePatterns[r]||n.parsePatterns[n.defaultParseWidth],d=Array.isArray(s)?function(n){for(var t=0;t<n.length;t++)if(n[t].test(o))return t}(s):function(n){for(var t in n)if(n.hasOwnProperty(t)&&n[t].test(o))return t}(s);return i=n.valueCallback?n.valueCallback(d):d,{value:i=e.valueCallback?e.valueCallback(i):i,rest:t.slice(o.length)}}}const V={code:"en-US",formatDistance:function(n,t,e){var r,a=F[n];return r="string"==typeof a?a:1===t?a.one:a.other.replace("{{count}}",t.toString()),null!=e&&e.addSuffix?e.comparison&&e.comparison>0?"in "+r:r+" ago":r},formatLong:J,formatRelative:function(n){return H[n]},localize:{ordinalNumber:function(n){var t=Number(n),e=t%100;if(e>20||e<10)switch(e%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:Z({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Z({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(n){return n-1}}),month:Z({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Z({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Z({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(X={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(n){return parseInt(n,10)}},function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.match(X.matchPattern);if(!e)return null;var r=e[0],a=n.match(X.parsePattern);if(!a)return null;var i=X.valueCallback?X.valueCallback(a[0]):a[0];return{value:i=t.valueCallback?t.valueCallback(i):i,rest:n.slice(r.length)}}),era:K({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:K({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(n){return n+1}}),month:K({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:K({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:K({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var nn=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,tn=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,en=/^'([^]*?)'?$/,rn=/''/g,an=/[a-zA-Z]/;function on(n,t,e){var r,a,i,o,s,d,u,c,g,v,b,p,y,x,S,E,D,M;h(2,arguments);var k=String(t),N=w(),T=null!==(r=null!==(a=null==e?void 0:e.locale)&&void 0!==a?a:N.locale)&&void 0!==r?r:V,C=m(null!==(i=null!==(o=null!==(s=null!==(d=null==e?void 0:e.firstWeekContainsDate)&&void 0!==d?d:null==e||null===(u=e.locale)||void 0===u||null===(c=u.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==s?s:N.firstWeekContainsDate)&&void 0!==o?o:null===(g=N.locale)||void 0===g||null===(v=g.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==i?i:1);if(!(C>=1&&C<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var I=m(null!==(b=null!==(p=null!==(y=null!==(x=null==e?void 0:e.weekStartsOn)&&void 0!==x?x:null==e||null===(S=e.locale)||void 0===S||null===(E=S.options)||void 0===E?void 0:E.weekStartsOn)&&void 0!==y?y:N.weekStartsOn)&&void 0!==p?p:null===(D=N.locale)||void 0===D||null===(M=D.options)||void 0===M?void 0:M.weekStartsOn)&&void 0!==b?b:0);if(!(I>=0&&I<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!T.localize)throw new RangeError("locale must contain localize property");if(!T.formatLong)throw new RangeError("locale must contain formatLong property");var O=f(n);if(!function(n){if(h(1,arguments),!function(n){return h(1,arguments),n instanceof Date||"object"===l(n)&&"[object Date]"===Object.prototype.toString.call(n)}(n)&&"number"!=typeof n)return!1;var t=f(n);return!isNaN(Number(t))}(O))throw new RangeError("Invalid time value");var R=function(n){var t=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return t.setUTCFullYear(n.getFullYear()),n.getTime()-t.getTime()}(O),j=function(n,t){return h(2,arguments),function(n,t){h(2,arguments);var e=f(n).getTime(),r=m(t);return new Date(e+r)}(n,-m(t))}(O,R),P={firstWeekContainsDate:C,weekStartsOn:I,locale:T,_originalDate:O};return k.match(tn).map((function(n){var t=n[0];return"p"===t||"P"===t?(0,Y[t])(n,T.formatLong):n})).join("").match(nn).map((function(r){if("''"===r)return"'";var a,i,o=r[0];if("'"===o)return(i=(a=r).match(en))?i[1].replace(rn,"'"):a;var s=L[o];if(s)return null!=e&&e.useAdditionalWeekYearTokens||-1===q.indexOf(r)||B(r,t,String(n)),null!=e&&e.useAdditionalDayOfYearTokens||!(-1!==U.indexOf(r))||B(r,t,String(n)),s(j,r,T.localize,P);if(o.match(an))throw new RangeError("Format string contains an unescaped latin alphabet character `"+o+"`");return r})).join("")}var sn={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},dn=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,un=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,cn=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ln(n){return n?parseInt(n):1}function mn(n){return n&&parseFloat(n.replace(",","."))||0}var hn=[31,null,31,30,31,30,31,31,30,31,30,31];function fn(n){return n%400==0||n%4==0&&n%100!=0}function gn(n,t="GET",e=null,r={}){return new Promise(((a,i)=>{const o=Object.assign({"Content-Type":"application/json"},r),s={method:t,headers:o,body:null};e&&"GET"!==t&&"HEAD"!==t?s.body=JSON.stringify(e):delete s.body,fetch(n,s).then((n=>n.ok?n.json():n.json().then((t=>{i({status:n.status,statusText:n.statusText,code:t.code||"UNKNOWN_ERROR",message:t.message||"An unknown error occurred",data:t.data||null})}),(()=>i({status:n.status,statusText:n.statusText,code:"PARSE_ERROR",message:"Failed to parse error response"}))))).then((n=>a(n)),(n=>i(n)))}))}function wn(n){if(!n)return"";const t=function(n,t){var e;h(1,arguments);var r=m(null!==(e=null==t?void 0:t.additionalDigits)&&void 0!==e?e:2);if(2!==r&&1!==r&&0!==r)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!=typeof n&&"[object String]"!==Object.prototype.toString.call(n))return new Date(NaN);var a,i=function(n){var t,e={},r=n.split(sn.dateTimeDelimiter);if(r.length>2)return e;if(/:/.test(r[0])?t=r[0]:(e.date=r[0],t=r[1],sn.timeZoneDelimiter.test(e.date)&&(e.date=n.split(sn.timeZoneDelimiter)[0],t=n.substr(e.date.length,n.length))),t){var a=sn.timezone.exec(t);a?(e.time=t.replace(a[1],""),e.timezone=a[1]):e.time=t}return e}(n);if(i.date){var o=function(n,t){var e=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=n.match(e);if(!r)return{year:NaN,restDateString:""};var a=r[1]?parseInt(r[1]):null,i=r[2]?parseInt(r[2]):null;return{year:null===i?a:100*i,restDateString:n.slice((r[1]||r[2]).length)}}(i.date,r);a=function(n,t){if(null===t)return new Date(NaN);var e=n.match(dn);if(!e)return new Date(NaN);var r=!!e[4],a=ln(e[1]),i=ln(e[2])-1,o=ln(e[3]),s=ln(e[4]),d=ln(e[5])-1;if(r)return function(n,t,e){return t>=1&&t<=53&&e>=0&&e<=6}(0,s,d)?function(n,t,e){var r=new Date(0);r.setUTCFullYear(n,0,4);var a=7*(t-1)+e+1-(r.getUTCDay()||7);return r.setUTCDate(r.getUTCDate()+a),r}(t,s,d):new Date(NaN);var u=new Date(0);return function(n,t,e){return t>=0&&t<=11&&e>=1&&e<=(hn[t]||(fn(n)?29:28))}(t,i,o)&&function(n,t){return t>=1&&t<=(fn(n)?366:365)}(t,a)?(u.setUTCFullYear(t,i,Math.max(a,o)),u):new Date(NaN)}(o.restDateString,o.year)}if(!a||isNaN(a.getTime()))return new Date(NaN);var s,d=a.getTime(),u=0;if(i.time&&(u=function(n){var t=n.match(un);if(!t)return NaN;var e=mn(t[1]),r=mn(t[2]),a=mn(t[3]);return function(n,t,e){return 24===n?0===t&&0===e:e>=0&&e<60&&t>=0&&t<60&&n>=0&&n<25}(e,r,a)?e*p+r*b+1e3*a:NaN}(i.time),isNaN(u)))return new Date(NaN);if(!i.timezone){var c=new Date(d+u),l=new Date(0);return l.setFullYear(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()),l.setHours(c.getUTCHours(),c.getUTCMinutes(),c.getUTCSeconds(),c.getUTCMilliseconds()),l}return s=function(n){if("Z"===n)return 0;var t=n.match(cn);if(!t)return 0;var e="+"===t[1]?-1:1,r=parseInt(t[2]),a=t[3]&&parseInt(t[3])||0;return function(n,t){return t>=0&&t<=59}(0,a)?e*(r*p+a*b):NaN}(i.timezone),isNaN(s)?new Date(NaN):new Date(d+u+s)}(n);if(isNaN(t.getTime()))return"";const e=on(t,"HH:mm");return function(n){return h(1,arguments),y(n,Date.now())}(t)?`Today at ${e}`:function(n){return h(1,arguments),y(n,function(n,t){h(2,arguments);var e=f(n),r=m(t);return isNaN(r)?new Date(NaN):r?(e.setDate(e.getDate()+r),e):e}(Date.now(),1))}(t)?`Tomorrow at ${e}`:`${on(t,"EEEE")} at ${e}`}function vn(n,t){return null==n||""===n||(0!==n||!t)&&(Array.isArray(n)?function(n){if(0===n.length)return!0;const t=n.length;let e=0;for(let r=0;r<t;r++){if(!vn(n[r]))return!1;e++}return e===t}(n):"[object Object]"===Object.prototype.toString.call(n)?function(n){if(0===Object.keys(n).length)return!0;const t=Object.keys(n).length;let e=0;for(const t of Object.values(n)){if(!vn(t))return!1;e++}return e===t}(n):!n)}const bn={name:"All",code:"All"};async function pn({endpoint:n,groupId:t,params:e={}}){try{const r=await gn(`${n}/groups/${t}/liveDraws${function(n){const t={};Object.entries(n).forEach((([n,e])=>{vn(e,!0)||(t[n]=e)}));const e=Object.entries(t).map((([n,t])=>`${encodeURIComponent(n)}=${encodeURIComponent(t)}`)).join("&");return e?`?${e}`:""}(e)}`);return r}catch(n){return console.error("Failed to fetch game info:",n),{}}}function yn(n,t="€"){return null===n?"":`${t}${n?function(n){if(0===n)return"0";if(!n)return"";const t=(n=n.toString()).split(".");return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),t.join(".")}(n):0}`}const xn=["ro","en","fr","ar","hr"],Sn={en:{logout:"Log out",draws:"DRAWS",latestResults:"LATEST RESULTS",instruction:"INSTRUCTION",howToWin:"HOW TO WIN",selectDraws:"Select Draws from the following bars:",gameNotAvailable:"Sorry. The Game is not available now.",instructionContent:"Instruction content goes here.",turnover:"Turnover: "},ro:{logout:"Deconectare",draws:"EXTRAGERI",latestResults:"ULTIMELE REZULTATE",instruction:"INSTRUCȚIUNI",howToWin:"CUM SĂ CÂȘTIGI",selectDraws:"Selectați extrageri din barele următoare:",gameNotAvailable:"Ne pare rău. Jocul nu este disponibil acum.",instructionContent:"Conținutul instrucțiunilor se afișează aici."},fr:{logout:"Se déconnecter",draws:"TIRAGES",latestResults:"DERNIERS RÉSULTATS",instruction:"INSTRUCTION",howToWin:"COMMENT GAGNER",selectDraws:"Sélectionnez les tirages dans les barres suivantes:",gameNotAvailable:"Désolé. Le jeu nest pas disponible pour le moment.",instructionContent:"Le contenu des instructions va ici."},ar:{logout:"تسجيل الخروج",draws:"السحوبات",latestResults:"أحدث النتائج",instruction:"التعليمات",howToWin:"كيفية الفوز",selectDraws:"حدد السحوبات من الأشرطة التالية:",gameNotAvailable:"آسف. اللعبة غير متوفرة الآن.",instructionContent:"محتوى التعليمات يذهب هنا."},hr:{logout:"Odjava",draws:"IZVLAČENJA",latestResults:"NAJNOVIJI REZULTATI",instruction:"UPUTE",howToWin:"KAKO POBIJEDITI",selectDraws:"Odaberite izvlačenja sa sljedećih traka:",gameNotAvailable:"Žao nam je. Igra trenutno nije dostupna.",instructionContent:"Sadržaj uputa ide ovdje."}},En=(n,t)=>{const e=t;return Sn[void 0!==e&&xn.includes(e)?e:"en"][n]},Dn={[d.Football]:n("svg",{height:"18px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",class:"text-sm"},n("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M19.063 19.072l-.81-.97-.117.083.385-2.43.136-.211 2.23-3.464.037-.057h1.075a9.964 9.964 0 01-2.936 7.049zM4.769 5.112l2.8.877-.072 3.246-2.427 2.95-1.561-.153L2.39 9.26a9.977 9.977 0 012.378-4.148zm7.745-3.086l-.72 1.645-3.798 1.404-2.395-.75A9.953 9.953 0 0112 2c.174 0 .343.017.514.026zm7.346 3.812l-1.128 1.29-3.402-.755-.033-.008-2.446-2.241.057.016.862-1.973a9.996 9.996 0 016.09 3.67zm-1.87 8.894l-3.385-.493-1.358-4.067 2.173-2.755 3.144.698 1.347 3.634-1.921 2.983zm-4.64 5.787l4.304-1.486.62.742a9.945 9.945 0 01-5.878 2.205l.954-1.461zm-6.314-2.84l3.91.873-.001.003 1.509 1.507-1.24 1.898a9.946 9.946 0 01-5.908-2.553l1.73-1.728zm1.16-7.72l4.168.725 1.302 3.9-2.552 2.98-3.97-.885-1.412-3.724L8.196 9.96zM2 12c0-.31.019-.615.047-.92l.485 1.203-.454.907A9.934 9.934 0 012 11.999zM12 1C5.934 1 1 5.935 1 12c0 6.067 4.935 11 11 11 6.066 0 11-4.933 11-11 0-6.065-4.934-11-11-11z",fill:"currentColor"}))},Mn=class{constructor(n){t(this,n),this.handleBombItemClick=e(this,"handleBombItemClick",7),this.mbSource=void 0,this.clientStyling=void 0,this.clientStylingUrl=void 0,this.translationUrl="",this.language="en",this.endpoint=void 0,this.groupId=void 0,this.gameId=void 0,this.activeBomb="All",this.bombList=[],this.gameList=[],this.liveDrawsInfoByGroupId={},this.isLoading=!1,this.isGameAvailable=!0}get isSingleGameMode(){return!!this.gameId}handleClientStylingChange(n,t){n!=t&&i(this.stylingContainer,this.clientStyling)}handleClientStylingUrlChange(n,t){n!=t&&o(this.stylingContainer,this.clientStylingUrl)}handleMbSourceChange(n,t){n!=t&&s(this.stylingContainer,`${this.mbSource}.Style`,this.stylingSubscription)}componentDidLoad(){this.stylingContainer&&(this.mbSource&&s(this.stylingContainer,`${this.mbSource}.Style`,this.stylingSubscription),this.clientStyling&&i(this.stylingContainer,this.clientStyling),this.clientStylingUrl&&o(this.stylingContainer,this.clientStylingUrl))}disconnectedCallback(){this.stylingSubscription&&this.stylingSubscription.unsubscribe()}connectedCallback(){this.doFetchData()}async doFetchData(n={}){try{this.isLoading=!0,this.isSingleGameMode?await this.fetchSingleGameData():await this.fetchGroupData(n),this.gameList.length>0&&this.updateTurnoverForAll()}finally{this.isLoading=!1}}async fetchSingleGameData(){var n,t,e;const{endpoint:r,gameId:a}=this,i=await async function(n,t){try{return await gn(`${n}/games/${t}`,"GET",{})}catch(n){throw console.error("Failed to fetch game info:",n),new Error("The game is currently not available. Please try again later.")}}(r,a),o=null===(n=null==i?void 0:i.currentDraw)||void 0===n?void 0:n.wagerCloseTime,s=null===(t=null==i?void 0:i.currentDraw)||void 0===t?void 0:t.id;if(!o||new Date>=new Date(o))this.isGameAvailable=!1,this.gameList=[];else{this.isGameAvailable=!0;const n=await async function({endpoint:n,gameId:t,drawId:e}){try{return await gn(`${n}/poolgames/${t}/draws/${e}/matchConfig`)||[]}catch(n){return console.error("Failed to fetch ticket match:",n),[]}}({endpoint:r,gameId:i.type,drawId:s});this.gameList=[{drawId:s,title:i.name,subTitle:(null===(e=null==n?void 0:n[0])||void 0===e?void 0:e.sportName)||"",icon:d.Football,date:wn(i.currentDraw.date),turnover:"0",matchList:(n||[]).map((n=>n.eventName)).slice(0,3),gameId:i.type}]}this.bombList=[]}async fetchGroupData(n){this.liveDrawsInfoByGroupId=await async function({endpoint:n,groupId:t,params:e}){try{const{sportTags:r=[],liveDraws:a=[]}=await pn({endpoint:n,groupId:t,params:e});return{sportTags:r.map((n=>({name:n,code:n}))),liveDraws:a.map((n=>({title:n.gameName,subTitle:n.sportTag,icon:n.sportTag,date:wn(n.drawCloseTime),turnover:yn(null),matchList:n.matchs.map((n=>n.eventName)),drawId:n.drawId,gameId:n.gameId})))}}catch(n){return{sportTags:[],liveDraws:[]}}}({endpoint:this.endpoint,groupId:this.groupId,params:n}),this.gameList=this.liveDrawsInfoByGroupId.liveDraws,this.bombList=[bn,...this.liveDrawsInfoByGroupId.sportTags]}async updateTurnoverForAll(){const n=async function({endpoint:n,configs:t}){const e={turnover:yn(null)},r=t.map((async({gameId:t,drawId:e})=>{var r;const a=await async function({endpoint:n,gameId:t,drawId:e}){try{return await gn(`${n}/games/${t}/draws/${e}/saleStatistics`)}catch(n){return Promise.reject(n)}}({endpoint:n,gameId:t,drawId:e});return{turnover:yn(null===(r=null==a?void 0:a.wagerSegment)||void 0===r?void 0:r.totalSalesCrossDraw)}}));return(await Promise.allSettled(r)).map((n=>"fulfilled"===n.status?n.value:e))}({endpoint:this.endpoint,configs:this.gameList.map((n=>({gameId:n.gameId,drawId:n.drawId})))});for(let t=0;t<this.gameList.length;t++)this.gameList[t].turnover=(await n)[t].turnover;this.gameList=[...this.gameList]}handleBombChange(n){this.activeBomb=n,n===bn.code?this.doFetchData():this.doFetchData({sportTag:n})}renderLoading(){return n("div",{class:"loading-wrap"},n("section",{class:"dots-container"},n("div",{class:"dot"}),n("div",{class:"dot"}),n("div",{class:"dot"}),n("div",{class:"dot"}),n("div",{class:"dot"})))}renderEmpty(){const t=r("../static/empty-info.svg"),e=En("gameNotAvailable",this.language);return n("div",{class:"empty-draw-wrap"},n("div",{class:"empty-draw"},n("img",{src:t,class:"empty-draw-logo"}),n("div",{class:"empty-draw-content"},n("div",{class:"empty-draw-text"},"ⓘ ",e))))}renderFilter(){return this.isSingleGameMode||!this.gameList.length?null:n("div",{class:"OddsbomEntranceController__section"},n("span",{class:"OddsbomEntranceController__label"},"Select Bomb:"),this.bombList.length?n("div",{class:"OddsbomEntranceController__segmented-control"},this.bombList.map((({name:t,code:e})=>n("button",{class:{OddsbomEntranceController__segment:!0,"OddsbomEntranceController__segment--active":this.activeBomb===e},onClick:this.handleBombChange.bind(this,e)},t)))):n("div",{class:"skeleton-content"},n("div",{class:"skeleton-item skeleton-animated"})))}renderMain(){return this.gameList.length?n("div",{class:"bomb-grid"},this.gameList.map((({title:t,subTitle:e,icon:r,date:a,turnover:i,matchList:o,drawId:s,gameId:d})=>n("div",{class:"bomb-card-wrapper"},n("div",{class:"bomb-card",onClick:()=>{this.handleBombItemClick.emit({drawId:s,gameId:d})}},n("div",{class:"card-header"},Dn[r]&&n("div",{class:"card-icon football"},Dn[r]),n("div",{class:"card-title"},n("h2",null,t),n("p",null,e)),n("div",{class:"card-jackpot"})),n("div",{class:"card-info"},n("span",{class:"card-tag"},a),n("span",{class:"card-tag"},En("turnover",this.language)+i)),n("div",{class:"card-matches"},n("ol",null,o.map((t=>n("li",null,t)))))))))):this.renderEmpty()}render(){return n("div",{key:"4a2641a511f0837649cfedeb4807069ce4051731",ref:n=>this.stylingContainer=n,class:"lottery-oddsbom-bomb-wrapper"},this.renderFilter(),n("div",{key:"15f8dbeace39a87f87e4639b8082719023d6bed5",class:"bomb-grid-container"},this.isLoading?this.renderLoading():this.renderMain()))}static get assetsDirs(){return["../static"]}static get watchers(){return{clientStyling:["handleClientStylingChange"],clientStylingUrl:["handleClientStylingUrlChange"],mbSource:["handleMbSourceChange"]}}};Mn.style="/* --- Component: Bomb Card Grid --- */\n.lottery-oddsbom-bomb-wrapper {\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n height: 100%;\n}\n\n.bomb-grid-container {\n margin-top: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n container-type: inline-size;\n container-name: bomb-grid;\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n /* --- Component: Bomb Card --- */\n}\n.bomb-grid-container .bomb-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.75rem;\n place-items: center;\n}\n.bomb-grid-container .bomb-card-wrapper {\n width: 100%;\n max-width: 30rem;\n height: 100%;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 1rem;\n border: 1px solid var(--emw--color-gray-100, #e6e6e6);\n}\n.bomb-grid-container .bomb-card {\n height: 100%;\n min-width: 24rem;\n transition: transform 0.3s;\n}\n.bomb-grid-container .bomb-card:hover {\n transform: scale(1.02);\n cursor: pointer;\n}\n.bomb-grid-container .card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 0.8rem;\n}\n.bomb-grid-container .card-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.bomb-grid-container .card-icon svg {\n width: 28px;\n height: 28px;\n}\n.bomb-grid-container .card-title {\n flex-grow: 1;\n word-break: break-all;\n}\n.bomb-grid-container .card-title h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-title p {\n margin: 0;\n color: var(--emw--color-typography-secondary, #333);\n font-size: 0.9rem;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-info {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 0.8rem;\n flex-wrap: wrap;\n}\n.bomb-grid-container .card-tag {\n background-color: var(--emw--color-tertiary, #e3f2fd);\n padding: 0.3rem 0.75rem;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n max-width: 120px;\n}\n.bomb-grid-container .card-matches {\n max-height: 6.8rem;\n overflow-y: auto;\n}\n.bomb-grid-container .card-matches ol {\n margin: 0;\n padding-left: 1.25rem;\n font-size: 0.85rem;\n line-height: 1.6;\n}\n.bomb-grid-container .card-matches li {\n padding-left: 0.2rem;\n word-wrap: break-word;\n}\n\n/* --- CONTAINER QUERIES FOR RESPONSIVENESS --- */\n@container bomb-grid (max-width: 768px) {\n .bomb-grid-container .bomb-grid {\n /* On smaller containers, switch to a single column */\n grid-template-columns: 1fr;\n }\n .bomb-card-wrapper .bomb-card {\n min-width: 200px;\n }\n}\n/* --- Component: Filter Controls --- */\n.OddsbomEntranceController__section {\n margin-top: 1.5rem;\n display: flex;\n gap: 12px;\n color: var(--emw--color-typography, #000);\n container-type: inline-size;\n container-name: controller;\n justify-content: center;\n}\n.OddsbomEntranceController__label {\n font-weight: 500;\n white-space: nowrap;\n width: 6rem;\n line-height: 2.2rem;\n}\n.OddsbomEntranceController__segmented-control {\n display: inline-flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.OddsbomEntranceController__segment {\n height: 2.2rem;\n border: none;\n padding: 0.3rem 0.8rem;\n cursor: pointer;\n font-weight: 500;\n border-radius: 2rem;\n outline: none;\n white-space: nowrap;\n background-color: var(--emw--color-background, #ffffff);\n color: var(--emw--color-typography, #000);\n}\n.OddsbomEntranceController__segment--active {\n background-color: var(--emw--color-primary-variant, #1367e7);\n color: var(--emw--color-typography-reverse, #fff);\n font-weight: 600;\n}\n.OddsbomEntranceController__segment--disabled:hover {\n cursor: not-allowed !important;\n}\n.OddsbomEntranceController__segment:not(.OddsbomEntranceController__segment--active):hover {\n background-color: var(--emw--color-background-tertiary, #ccc);\n}\n\n.skeleton-content {\n display: flex;\n flex-direction: column;\n gap: 29px;\n align-items: center;\n}\n\n.skeleton-item {\n background: var(--emw--color-background-secondary, #f5f5f5);\n border-radius: 4px;\n height: 40px;\n width: 200px;\n}\n\n.skeleton-animated {\n animation: skeleton-shimmer 1.5s infinite linear;\n background: linear-gradient(90deg, var(--emw--color-background-secondary, #f5f5f5) 25%, var(--emw--color-background-tertiary, #ccc) 37%, var(--emw--color-background-secondary, #f5f5f5) 63%);\n background-size: 200% 100%;\n}\n\n@keyframes skeleton-shimmer {\n to {\n background-position: 100% 0;\n }\n}\n.loading-icon.scale {\n animation: scale 1s infinite ease-in-out;\n}\n\n@keyframes scale {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.2);\n }\n}\n@container controller (max-width: 500px) {\n .OddsbomEntranceController__segmented-control {\n gap: 0rem;\n }\n .OddsbomEntranceController__segment {\n padding: 0.2rem 0.6rem;\n }\n .OddsbomEntranceController__label,\n .OddsbomEntranceController____segment {\n line-height: 1.8rem;\n }\n}\n.loading-wrap {\n margin: 20px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n}\n.loading-wrap .dots-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n.loading-wrap .dot {\n height: 14px;\n width: 14px;\n margin-right: 14px;\n border-radius: 14px;\n background-color: var(--emw--color-gray-300, #333);\n animation: pulse 1.5s infinite ease-in-out;\n}\n.loading-wrap .dot:last-child {\n margin-right: 0;\n}\n.loading-wrap .dot:nth-child(1) {\n animation-delay: -0.3s;\n}\n.loading-wrap .dot:nth-child(2) {\n animation-delay: -0.1s;\n}\n.loading-wrap .dot:nth-child(3) {\n animation-delay: 0.1s;\n}\n@keyframes pulse {\n 0% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-300, #333);\n }\n 50% {\n transform: scale(1.2);\n background-color: var(--emw--color-gray-100, #e6e6e6);\n }\n 100% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-150, #6f6f6f);\n }\n}\n\n.empty-draw-wrap {\n padding-top: 100px;\n}\n.empty-draw-wrap .empty-draw {\n width: 240px;\n height: 160px;\n padding: 18px 12px 12px 12px;\n background: var(--emw--color-secondary-variant, #e3f2fd);\n position: relative;\n margin: 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 12px;\n}\n.empty-draw-wrap .empty-draw img {\n position: absolute;\n top: -64%;\n left: 50%;\n transform: translateX(-50%);\n width: 200px;\n}\n.empty-draw-wrap .empty-draw-content {\n display: flex;\n gap: 4px;\n}\n.empty-draw-wrap .empty-draw-text {\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n}";export{Mn as L}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{L as lottery_oddsbom_bomb}from"./lottery-oddsbom-bomb-
|
|
1
|
+
export{L as lottery_oddsbom_bomb}from"./lottery-oddsbom-bomb-c5cc49c2.js";import"./index-f361862f.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as n,b as
|
|
1
|
+
import{p as n,b as e}from"./index-f361862f.js";export{s as setNonce}from"./index-f361862f.js";import{g as l}from"./app-globals-0f993ce5.js";(()=>{const e=import.meta.url,l={};return""!==e&&(l.resourcesUrl=new URL(".",e).href),n(l)})().then((async n=>(await l(),e([["lottery-oddsbom-bomb",[[1,"lottery-oddsbom-bomb",{mbSource:[513,"mb-source"],clientStyling:[513,"client-styling"],clientStylingUrl:[513,"client-styling-url"],translationUrl:[513,"translation-url"],language:[513],endpoint:[513],groupId:[513,"group-id"],gameId:[513,"game-id"],activeBomb:[32],bombList:[32],gameList:[32],liveDrawsInfoByGroupId:[32],isLoading:[32],isGameAvailable:[32]},null,{clientStyling:["handleClientStylingChange"],clientStylingUrl:["handleClientStylingUrlChange"],mbSource:["handleMbSourceChange"]}]]]],n))));
|
|
@@ -26,6 +26,11 @@ export declare class LotteryOddsbomBomb {
|
|
|
26
26
|
* GameID of the lottery game
|
|
27
27
|
*/
|
|
28
28
|
groupId: string;
|
|
29
|
+
/**
|
|
30
|
+
* GameID of the lottery game, for single game mode
|
|
31
|
+
*/
|
|
32
|
+
gameId: string;
|
|
33
|
+
private get isSingleGameMode();
|
|
29
34
|
private stylingContainer;
|
|
30
35
|
private stylingSubscription;
|
|
31
36
|
activeBomb: string;
|
|
@@ -33,6 +38,7 @@ export declare class LotteryOddsbomBomb {
|
|
|
33
38
|
gameList: GameListItem[];
|
|
34
39
|
liveDrawsInfoByGroupId: LiveDrawsInfoByGroupId;
|
|
35
40
|
isLoading: boolean;
|
|
41
|
+
isGameAvailable: boolean;
|
|
36
42
|
handleBombItemClick: EventEmitter<{
|
|
37
43
|
drawId: string;
|
|
38
44
|
gameId: string;
|
|
@@ -44,6 +50,8 @@ export declare class LotteryOddsbomBomb {
|
|
|
44
50
|
disconnectedCallback(): void;
|
|
45
51
|
connectedCallback(): void;
|
|
46
52
|
private doFetchData;
|
|
53
|
+
private fetchSingleGameData;
|
|
54
|
+
private fetchGroupData;
|
|
47
55
|
private updateTurnoverForAll;
|
|
48
56
|
handleBombChange(code: string): void;
|
|
49
57
|
private renderLoading;
|
|
@@ -16,6 +16,10 @@ export namespace Components {
|
|
|
16
16
|
*/
|
|
17
17
|
"clientStylingUrl": string;
|
|
18
18
|
"endpoint": string;
|
|
19
|
+
/**
|
|
20
|
+
* GameID of the lottery game, for single game mode
|
|
21
|
+
*/
|
|
22
|
+
"gameId": string;
|
|
19
23
|
/**
|
|
20
24
|
* GameID of the lottery game
|
|
21
25
|
*/
|
|
@@ -71,6 +75,10 @@ declare namespace LocalJSX {
|
|
|
71
75
|
*/
|
|
72
76
|
"clientStylingUrl"?: string;
|
|
73
77
|
"endpoint"?: string;
|
|
78
|
+
/**
|
|
79
|
+
* GameID of the lottery game, for single game mode
|
|
80
|
+
*/
|
|
81
|
+
"gameId"?: string;
|
|
74
82
|
/**
|
|
75
83
|
* GameID of the lottery game
|
|
76
84
|
*/
|
|
@@ -73,3 +73,36 @@ export interface SaleStatisticsRes {
|
|
|
73
73
|
gameId?: string;
|
|
74
74
|
wagerSegment?: WagerSegment;
|
|
75
75
|
}
|
|
76
|
+
export interface DrawInfo {
|
|
77
|
+
date: string;
|
|
78
|
+
id: string;
|
|
79
|
+
status: string;
|
|
80
|
+
wagerAvailable: boolean;
|
|
81
|
+
wagerCloseTime: string;
|
|
82
|
+
breakEndTime: string;
|
|
83
|
+
openTime: string;
|
|
84
|
+
closeTime: string;
|
|
85
|
+
}
|
|
86
|
+
export interface GameInfo {
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
type: string;
|
|
90
|
+
vendorGameType: GameTypeEnum;
|
|
91
|
+
vendorGameBettingObject: BettingOjectEnum;
|
|
92
|
+
href: string;
|
|
93
|
+
launchId: string;
|
|
94
|
+
launchSlug: string;
|
|
95
|
+
vendorId: string;
|
|
96
|
+
wasiId: string;
|
|
97
|
+
currentDraw: DrawInfo | null;
|
|
98
|
+
nextDraw: DrawInfo | null;
|
|
99
|
+
}
|
|
100
|
+
export declare enum GameTypeEnum {
|
|
101
|
+
Lottery = "Lottery",
|
|
102
|
+
PoolGame = "PoolGame"
|
|
103
|
+
}
|
|
104
|
+
export declare enum BettingOjectEnum {
|
|
105
|
+
CorrectScore = "CorrectScore",
|
|
106
|
+
HomeDrawAway = "HomeDrawAway",
|
|
107
|
+
Mix = "Mix"
|
|
108
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bomb } from '../models';
|
|
1
|
+
import { Bomb, GameInfo } from '../models';
|
|
2
2
|
export declare function fetchData({ endpoint, groupId, params }: {
|
|
3
3
|
endpoint: any;
|
|
4
4
|
groupId: any;
|
|
@@ -28,3 +28,9 @@ export declare function getTurnoverForAll({ endpoint, configs }: {
|
|
|
28
28
|
}): Promise<{
|
|
29
29
|
turnover: string;
|
|
30
30
|
}[]>;
|
|
31
|
+
export declare function fetchGameInfo(endpoint: string, gameId: string): Promise<GameInfo>;
|
|
32
|
+
export declare function fetchTicketMatch({ endpoint, gameId, drawId }: {
|
|
33
|
+
endpoint: any;
|
|
34
|
+
gameId: any;
|
|
35
|
+
drawId: any;
|
|
36
|
+
}): Promise<any>;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as n,r as t,c as e,g as r}from"./index-f361862f.js";const a="__WIDGET_GLOBAL_STYLE_CACHE__";function o(n,t){if(n){const e=document.createElement("style");e.innerHTML=t,n.appendChild(e)}}function i(n,t){if(!n||!t)return;const e=new URL(t);fetch(e.href).then((n=>n.text())).then((t=>{const e=document.createElement("style");e.innerHTML=t,n&&n.appendChild(e)})).catch((n=>{console.error("There was an error while trying to load client styling from URL",n)}))}function s(n,t,e,r=!1){if(!window.emMessageBus)return;if(!("adoptedStyleSheets"in Document.prototype)||!r)return e=function(n,t){const e=document.createElement("style");return window.emMessageBus.subscribe(t,(t=>{n&&(e.innerHTML=t,n.appendChild(e))}))}(n,t),e;window[a]||(window[a]={}),e=function(n,t){return window.emMessageBus.subscribe(t,(e=>{if(!n)return;const r=n.getRootNode(),o=window[a];let i=o[t]&&o[t].sheet;i?o[t].refCount=o[t].refCount+1:(i=new CSSStyleSheet,i.replaceSync(e),o[t]={sheet:i,refCount:1});const s=r.adoptedStyleSheets||[];s.includes(i)||(r.adoptedStyleSheets=[...s,i])}))}(n,t);const o=e.unsubscribe.bind(e);return e.unsubscribe=()=>{if(window[a][t]){const n=window[a][t];n.refCount>1?n.refCount=n.refCount-1:delete window[a][t]}o()},e}var d;function u(n){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},u(n)}function c(n){if(null===n||!0===n||!1===n)return NaN;var t=Number(n);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function l(n,t){if(t.length<n)throw new TypeError(n+" argument"+(n>1?"s":"")+" required, but only "+t.length+" present")}function m(n){l(1,arguments);var t=Object.prototype.toString.call(n);return n instanceof Date||"object"===u(n)&&"[object Date]"===t?new Date(n.getTime()):"number"==typeof n||"[object Number]"===t?new Date(n):("string"!=typeof n&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}!function(n){n.Football="Football",n.IceHockey="IceHockey",n.Mixed="Mixed"}(d||(d={}));var h={};function f(){return h}function g(n){l(1,arguments);var t=m(n);return t.setHours(0,0,0,0),t}var w=6e4,v=36e5;function b(n,t){l(2,arguments);var e=g(n),r=g(t);return e.getTime()===r.getTime()}function p(n){l(1,arguments);var t=m(n),e=t.getUTCDay(),r=(e<1?7:0)+e-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function y(n){l(1,arguments);var t=m(n),e=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(e+1,0,4),r.setUTCHours(0,0,0,0);var a=p(r),o=new Date(0);o.setUTCFullYear(e,0,4),o.setUTCHours(0,0,0,0);var i=p(o);return t.getTime()>=a.getTime()?e+1:t.getTime()>=i.getTime()?e:e-1}function x(n,t){var e,r,a,o,i,s,d,u;l(1,arguments);var h=f(),g=c(null!==(e=null!==(r=null!==(a=null!==(o=null==t?void 0:t.weekStartsOn)&&void 0!==o?o:null==t||null===(i=t.locale)||void 0===i||null===(s=i.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==a?a:h.weekStartsOn)&&void 0!==r?r:null===(d=h.locale)||void 0===d||null===(u=d.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==e?e:0);if(!(g>=0&&g<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var w=m(n),v=w.getUTCDay(),b=(v<g?7:0)+v-g;return w.setUTCDate(w.getUTCDate()-b),w.setUTCHours(0,0,0,0),w}function S(n,t){var e,r,a,o,i,s,d,u;l(1,arguments);var h=m(n),g=h.getUTCFullYear(),w=f(),v=c(null!==(e=null!==(r=null!==(a=null!==(o=null==t?void 0:t.firstWeekContainsDate)&&void 0!==o?o:null==t||null===(i=t.locale)||void 0===i||null===(s=i.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==a?a:w.firstWeekContainsDate)&&void 0!==r?r:null===(d=w.locale)||void 0===d||null===(u=d.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==e?e:1);if(!(v>=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var b=new Date(0);b.setUTCFullYear(g+1,0,v),b.setUTCHours(0,0,0,0);var p=x(b,t),y=new Date(0);y.setUTCFullYear(g,0,v),y.setUTCHours(0,0,0,0);var S=x(y,t);return h.getTime()>=p.getTime()?g+1:h.getTime()>=S.getTime()?g:g-1}function E(n,t){for(var e=n<0?"-":"",r=Math.abs(n).toString();r.length<t;)r="0"+r;return e+r}const M=function(n,t){var e=n.getUTCFullYear(),r=e>0?e:1-e;return E("yy"===t?r%100:r,t.length)},D=function(n,t){var e=n.getUTCMonth();return"M"===t?String(e+1):E(e+1,2)},k=function(n,t){return E(n.getUTCDate(),t.length)},N=function(n,t){return E(n.getUTCHours()%12||12,t.length)},T=function(n,t){return E(n.getUTCHours(),t.length)},C=function(n,t){return E(n.getUTCMinutes(),t.length)},O=function(n,t){return E(n.getUTCSeconds(),t.length)},I=function(n,t){var e=t.length,r=n.getUTCMilliseconds();return E(Math.floor(r*Math.pow(10,e-3)),t.length)};var R={G:function(n,t,e){var r=n.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return e.era(r,{width:"abbreviated"});case"GGGGG":return e.era(r,{width:"narrow"});default:return e.era(r,{width:"wide"})}},y:function(n,t,e){if("yo"===t){var r=n.getUTCFullYear();return e.ordinalNumber(r>0?r:1-r,{unit:"year"})}return M(n,t)},Y:function(n,t,e,r){var a=S(n,r),o=a>0?a:1-a;return"YY"===t?E(o%100,2):"Yo"===t?e.ordinalNumber(o,{unit:"year"}):E(o,t.length)},R:function(n,t){return E(y(n),t.length)},u:function(n,t){return E(n.getUTCFullYear(),t.length)},Q:function(n,t,e){var r=Math.ceil((n.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return E(r,2);case"Qo":return e.ordinalNumber(r,{unit:"quarter"});case"QQQ":return e.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return e.quarter(r,{width:"narrow",context:"formatting"});default:return e.quarter(r,{width:"wide",context:"formatting"})}},q:function(n,t,e){var r=Math.ceil((n.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return E(r,2);case"qo":return e.ordinalNumber(r,{unit:"quarter"});case"qqq":return e.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return e.quarter(r,{width:"narrow",context:"standalone"});default:return e.quarter(r,{width:"wide",context:"standalone"})}},M:function(n,t,e){var r=n.getUTCMonth();switch(t){case"M":case"MM":return D(n,t);case"Mo":return e.ordinalNumber(r+1,{unit:"month"});case"MMM":return e.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(r,{width:"narrow",context:"formatting"});default:return e.month(r,{width:"wide",context:"formatting"})}},L:function(n,t,e){var r=n.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return E(r+1,2);case"Lo":return e.ordinalNumber(r+1,{unit:"month"});case"LLL":return e.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return e.month(r,{width:"narrow",context:"standalone"});default:return e.month(r,{width:"wide",context:"standalone"})}},w:function(n,t,e,r){var a=function(n,t){l(1,arguments);var e=m(n),r=x(e,t).getTime()-function(n,t){var e,r,a,o,i,s,d,u;l(1,arguments);var m=f(),h=c(null!==(e=null!==(r=null!==(a=null!==(o=null==t?void 0:t.firstWeekContainsDate)&&void 0!==o?o:null==t||null===(i=t.locale)||void 0===i||null===(s=i.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==a?a:m.firstWeekContainsDate)&&void 0!==r?r:null===(d=m.locale)||void 0===d||null===(u=d.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==e?e:1),g=S(n,t),w=new Date(0);return w.setUTCFullYear(g,0,h),w.setUTCHours(0,0,0,0),x(w,t)}(e,t).getTime();return Math.round(r/6048e5)+1}(n,r);return"wo"===t?e.ordinalNumber(a,{unit:"week"}):E(a,t.length)},I:function(n,t,e){var r=function(n){l(1,arguments);var t=m(n),e=p(t).getTime()-function(n){l(1,arguments);var t=y(n),e=new Date(0);return e.setUTCFullYear(t,0,4),e.setUTCHours(0,0,0,0),p(e)}(t).getTime();return Math.round(e/6048e5)+1}(n);return"Io"===t?e.ordinalNumber(r,{unit:"week"}):E(r,t.length)},d:function(n,t,e){return"do"===t?e.ordinalNumber(n.getUTCDate(),{unit:"date"}):k(n,t)},D:function(n,t,e){var r=function(n){l(1,arguments);var t=m(n),e=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=t.getTime();return Math.floor((e-r)/864e5)+1}(n);return"Do"===t?e.ordinalNumber(r,{unit:"dayOfYear"}):E(r,t.length)},E:function(n,t,e){var r=n.getUTCDay();switch(t){case"E":case"EE":case"EEE":return e.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return e.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(r,{width:"short",context:"formatting"});default:return e.day(r,{width:"wide",context:"formatting"})}},e:function(n,t,e,r){var a=n.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return E(o,2);case"eo":return e.ordinalNumber(o,{unit:"day"});case"eee":return e.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return e.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return e.day(a,{width:"short",context:"formatting"});default:return e.day(a,{width:"wide",context:"formatting"})}},c:function(n,t,e,r){var a=n.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return E(o,t.length);case"co":return e.ordinalNumber(o,{unit:"day"});case"ccc":return e.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return e.day(a,{width:"narrow",context:"standalone"});case"cccccc":return e.day(a,{width:"short",context:"standalone"});default:return e.day(a,{width:"wide",context:"standalone"})}},i:function(n,t,e){var r=n.getUTCDay(),a=0===r?7:r;switch(t){case"i":return String(a);case"ii":return E(a,t.length);case"io":return e.ordinalNumber(a,{unit:"day"});case"iii":return e.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return e.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return e.day(r,{width:"short",context:"formatting"});default:return e.day(r,{width:"wide",context:"formatting"})}},a:function(n,t,e){var r=n.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return e.dayPeriod(r,{width:"narrow",context:"formatting"});default:return e.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(n,t,e){var r,a=n.getUTCHours();switch(r=12===a?"noon":0===a?"midnight":a/12>=1?"pm":"am",t){case"b":case"bb":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return e.dayPeriod(r,{width:"narrow",context:"formatting"});default:return e.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(n,t,e){var r,a=n.getUTCHours();switch(r=a>=17?"evening":a>=12?"afternoon":a>=4?"morning":"night",t){case"B":case"BB":case"BBB":return e.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return e.dayPeriod(r,{width:"narrow",context:"formatting"});default:return e.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(n,t,e){if("ho"===t){var r=n.getUTCHours()%12;return 0===r&&(r=12),e.ordinalNumber(r,{unit:"hour"})}return N(n,t)},H:function(n,t,e){return"Ho"===t?e.ordinalNumber(n.getUTCHours(),{unit:"hour"}):T(n,t)},K:function(n,t,e){var r=n.getUTCHours()%12;return"Ko"===t?e.ordinalNumber(r,{unit:"hour"}):E(r,t.length)},k:function(n,t,e){var r=n.getUTCHours();return 0===r&&(r=24),"ko"===t?e.ordinalNumber(r,{unit:"hour"}):E(r,t.length)},m:function(n,t,e){return"mo"===t?e.ordinalNumber(n.getUTCMinutes(),{unit:"minute"}):C(n,t)},s:function(n,t,e){return"so"===t?e.ordinalNumber(n.getUTCSeconds(),{unit:"second"}):O(n,t)},S:function(n,t){return I(n,t)},X:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return P(a);case"XXXX":case"XX":return _(a);default:return _(a,":")}},x:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();switch(t){case"x":return P(a);case"xxxx":case"xx":return _(a);default:return _(a,":")}},O:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+j(a,":");default:return"GMT"+_(a,":")}},z:function(n,t,e,r){var a=(r._originalDate||n).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+j(a,":");default:return"GMT"+_(a,":")}},t:function(n,t,e,r){return E(Math.floor((r._originalDate||n).getTime()/1e3),t.length)},T:function(n,t,e,r){return E((r._originalDate||n).getTime(),t.length)}};function j(n,t){var e=n>0?"-":"+",r=Math.abs(n),a=Math.floor(r/60),o=r%60;if(0===o)return e+String(a);var i=t||"";return e+String(a)+i+E(o,2)}function P(n,t){return n%60==0?(n>0?"-":"+")+E(Math.abs(n)/60,2):_(n,t)}function _(n,t){var e=t||"",r=n>0?"-":"+",a=Math.abs(n);return r+E(Math.floor(a/60),2)+e+E(a%60,2)}const A=R;var W=function(n,t){switch(n){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},L=function(n,t){switch(n){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},z={p:L,P:function(n,t){var e,r=n.match(/(P+)(p+)?/)||[],a=r[1],o=r[2];if(!o)return W(n,t);switch(a){case"P":e=t.dateTime({width:"short"});break;case"PP":e=t.dateTime({width:"medium"});break;case"PPP":e=t.dateTime({width:"long"});break;default:e=t.dateTime({width:"full"})}return e.replace("{{date}}",W(a,t)).replace("{{time}}",L(o,t))}};const Y=z;var G=["D","DD"],U=["YY","YYYY"];function q(n,t,e){if("YYYY"===n)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===n)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===n)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===n)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var $={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function B(n){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.width?String(t.width):n.defaultWidth;return n.formats[e]||n.formats[n.defaultWidth]}}var Q,F={date:B({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:B({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:B({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},X={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function J(n){return function(t,e){var r;if("formatting"===(null!=e&&e.context?String(e.context):"standalone")&&n.formattingValues){var a=n.defaultFormattingWidth||n.defaultWidth,o=null!=e&&e.width?String(e.width):a;r=n.formattingValues[o]||n.formattingValues[a]}else{var i=n.defaultWidth,s=null!=e&&e.width?String(e.width):n.defaultWidth;r=n.values[s]||n.values[i]}return r[n.argumentCallback?n.argumentCallback(t):t]}}function H(n){return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.width,a=t.match(r&&n.matchPatterns[r]||n.matchPatterns[n.defaultMatchWidth]);if(!a)return null;var o,i=a[0],s=r&&n.parsePatterns[r]||n.parsePatterns[n.defaultParseWidth],d=Array.isArray(s)?function(n){for(var t=0;t<n.length;t++)if(n[t].test(i))return t}(s):function(n){for(var t in n)if(n.hasOwnProperty(t)&&n[t].test(i))return t}(s);return o=n.valueCallback?n.valueCallback(d):d,{value:o=e.valueCallback?e.valueCallback(o):o,rest:t.slice(i.length)}}}const Z={code:"en-US",formatDistance:function(n,t,e){var r,a=$[n];return r="string"==typeof a?a:1===t?a.one:a.other.replace("{{count}}",t.toString()),null!=e&&e.addSuffix?e.comparison&&e.comparison>0?"in "+r:r+" ago":r},formatLong:F,formatRelative:function(n){return X[n]},localize:{ordinalNumber:function(n){var t=Number(n),e=t%100;if(e>20||e<10)switch(e%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:J({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:J({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(n){return n-1}}),month:J({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:J({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:J({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Q={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(n){return parseInt(n,10)}},function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.match(Q.matchPattern);if(!e)return null;var r=e[0],a=n.match(Q.parsePattern);if(!a)return null;var o=Q.valueCallback?Q.valueCallback(a[0]):a[0];return{value:o=t.valueCallback?t.valueCallback(o):o,rest:n.slice(r.length)}}),era:H({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:H({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(n){return n+1}}),month:H({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:H({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:H({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var K=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,V=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,nn=/^'([^]*?)'?$/,tn=/''/g,en=/[a-zA-Z]/;function rn(n,t,e){var r,a,o,i,s,d,h,g,w,v,b,p,y,x,S,E,M,D;l(2,arguments);var k=String(t),N=f(),T=null!==(r=null!==(a=null==e?void 0:e.locale)&&void 0!==a?a:N.locale)&&void 0!==r?r:Z,C=c(null!==(o=null!==(i=null!==(s=null!==(d=null==e?void 0:e.firstWeekContainsDate)&&void 0!==d?d:null==e||null===(h=e.locale)||void 0===h||null===(g=h.options)||void 0===g?void 0:g.firstWeekContainsDate)&&void 0!==s?s:N.firstWeekContainsDate)&&void 0!==i?i:null===(w=N.locale)||void 0===w||null===(v=w.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==o?o:1);if(!(C>=1&&C<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var O=c(null!==(b=null!==(p=null!==(y=null!==(x=null==e?void 0:e.weekStartsOn)&&void 0!==x?x:null==e||null===(S=e.locale)||void 0===S||null===(E=S.options)||void 0===E?void 0:E.weekStartsOn)&&void 0!==y?y:N.weekStartsOn)&&void 0!==p?p:null===(M=N.locale)||void 0===M||null===(D=M.options)||void 0===D?void 0:D.weekStartsOn)&&void 0!==b?b:0);if(!(O>=0&&O<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!T.localize)throw new RangeError("locale must contain localize property");if(!T.formatLong)throw new RangeError("locale must contain formatLong property");var I=m(n);if(!function(n){if(l(1,arguments),!function(n){return l(1,arguments),n instanceof Date||"object"===u(n)&&"[object Date]"===Object.prototype.toString.call(n)}(n)&&"number"!=typeof n)return!1;var t=m(n);return!isNaN(Number(t))}(I))throw new RangeError("Invalid time value");var R=function(n){var t=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return t.setUTCFullYear(n.getFullYear()),n.getTime()-t.getTime()}(I),j=function(n,t){return l(2,arguments),function(n,t){l(2,arguments);var e=m(n).getTime(),r=c(t);return new Date(e+r)}(n,-c(t))}(I,R),P={firstWeekContainsDate:C,weekStartsOn:O,locale:T,_originalDate:I};return k.match(V).map((function(n){var t=n[0];return"p"===t||"P"===t?(0,Y[t])(n,T.formatLong):n})).join("").match(K).map((function(r){if("''"===r)return"'";var a,o,i=r[0];if("'"===i)return(o=(a=r).match(nn))?o[1].replace(tn,"'"):a;var s=A[i];if(s)return null!=e&&e.useAdditionalWeekYearTokens||-1===U.indexOf(r)||q(r,t,String(n)),null!=e&&e.useAdditionalDayOfYearTokens||!(-1!==G.indexOf(r))||q(r,t,String(n)),s(j,r,T.localize,P);if(i.match(en))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");return r})).join("")}var an={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},on=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,sn=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,dn=/^([+-])(\d{2})(?::?(\d{2}))?$/;function un(n){return n?parseInt(n):1}function cn(n){return n&&parseFloat(n.replace(",","."))||0}var ln=[31,null,31,30,31,30,31,31,30,31,30,31];function mn(n){return n%400==0||n%4==0&&n%100!=0}function hn(n,t="GET",e=null,r={}){return new Promise(((a,o)=>{const i=Object.assign({"Content-Type":"application/json"},r),s={method:t,headers:i,body:null};e&&"GET"!==t&&"HEAD"!==t?s.body=JSON.stringify(e):delete s.body,fetch(n,s).then((n=>n.ok?n.json():n.json().then((t=>{o({status:n.status,statusText:n.statusText,code:t.code||"UNKNOWN_ERROR",message:t.message||"An unknown error occurred",data:t.data||null})}),(()=>o({status:n.status,statusText:n.statusText,code:"PARSE_ERROR",message:"Failed to parse error response"}))))).then((n=>a(n)),(n=>o(n)))}))}function fn(n){if(!n)return"";const t=function(n,t){var e;l(1,arguments);var r=c(null!==(e=null==t?void 0:t.additionalDigits)&&void 0!==e?e:2);if(2!==r&&1!==r&&0!==r)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!=typeof n&&"[object String]"!==Object.prototype.toString.call(n))return new Date(NaN);var a,o=function(n){var t,e={},r=n.split(an.dateTimeDelimiter);if(r.length>2)return e;if(/:/.test(r[0])?t=r[0]:(e.date=r[0],t=r[1],an.timeZoneDelimiter.test(e.date)&&(e.date=n.split(an.timeZoneDelimiter)[0],t=n.substr(e.date.length,n.length))),t){var a=an.timezone.exec(t);a?(e.time=t.replace(a[1],""),e.timezone=a[1]):e.time=t}return e}(n);if(o.date){var i=function(n,t){var e=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=n.match(e);if(!r)return{year:NaN,restDateString:""};var a=r[1]?parseInt(r[1]):null,o=r[2]?parseInt(r[2]):null;return{year:null===o?a:100*o,restDateString:n.slice((r[1]||r[2]).length)}}(o.date,r);a=function(n,t){if(null===t)return new Date(NaN);var e=n.match(on);if(!e)return new Date(NaN);var r=!!e[4],a=un(e[1]),o=un(e[2])-1,i=un(e[3]),s=un(e[4]),d=un(e[5])-1;if(r)return function(n,t,e){return t>=1&&t<=53&&e>=0&&e<=6}(0,s,d)?function(n,t,e){var r=new Date(0);r.setUTCFullYear(n,0,4);var a=7*(t-1)+e+1-(r.getUTCDay()||7);return r.setUTCDate(r.getUTCDate()+a),r}(t,s,d):new Date(NaN);var u=new Date(0);return function(n,t,e){return t>=0&&t<=11&&e>=1&&e<=(ln[t]||(mn(n)?29:28))}(t,o,i)&&function(n,t){return t>=1&&t<=(mn(n)?366:365)}(t,a)?(u.setUTCFullYear(t,o,Math.max(a,i)),u):new Date(NaN)}(i.restDateString,i.year)}if(!a||isNaN(a.getTime()))return new Date(NaN);var s,d=a.getTime(),u=0;if(o.time&&(u=function(n){var t=n.match(sn);if(!t)return NaN;var e=cn(t[1]),r=cn(t[2]),a=cn(t[3]);return function(n,t,e){return 24===n?0===t&&0===e:e>=0&&e<60&&t>=0&&t<60&&n>=0&&n<25}(e,r,a)?e*v+r*w+1e3*a:NaN}(o.time),isNaN(u)))return new Date(NaN);if(!o.timezone){var m=new Date(d+u),h=new Date(0);return h.setFullYear(m.getUTCFullYear(),m.getUTCMonth(),m.getUTCDate()),h.setHours(m.getUTCHours(),m.getUTCMinutes(),m.getUTCSeconds(),m.getUTCMilliseconds()),h}return s=function(n){if("Z"===n)return 0;var t=n.match(dn);if(!t)return 0;var e="+"===t[1]?-1:1,r=parseInt(t[2]),a=t[3]&&parseInt(t[3])||0;return function(n,t){return t>=0&&t<=59}(0,a)?e*(r*v+a*w):NaN}(o.timezone),isNaN(s)?new Date(NaN):new Date(d+u+s)}(n);if(isNaN(t.getTime()))return"";const e=rn(t,"HH:mm");return function(n){return l(1,arguments),b(n,Date.now())}(t)?`Today at ${e}`:function(n){return l(1,arguments),b(n,function(n,t){l(2,arguments);var e=m(n),r=c(t);return isNaN(r)?new Date(NaN):r?(e.setDate(e.getDate()+r),e):e}(Date.now(),1))}(t)?`Tomorrow at ${e}`:`${rn(t,"EEEE")} at ${e}`}function gn(n,t){return null==n||""===n||(0!==n||!t)&&(Array.isArray(n)?function(n){if(0===n.length)return!0;const t=n.length;let e=0;for(let r=0;r<t;r++){if(!gn(n[r]))return!1;e++}return e===t}(n):"[object Object]"===Object.prototype.toString.call(n)?function(n){if(0===Object.keys(n).length)return!0;const t=Object.keys(n).length;let e=0;for(const t of Object.values(n)){if(!gn(t))return!1;e++}return e===t}(n):!n)}const wn={name:"All",code:"All"};async function vn({endpoint:n,groupId:t,params:e={}}){try{const r=await hn(`${n}/groups/${t}/liveDraws${function(n){const t={};Object.entries(n).forEach((([n,e])=>{gn(e,!0)||(t[n]=e)}));const e=Object.entries(t).map((([n,t])=>`${encodeURIComponent(n)}=${encodeURIComponent(t)}`)).join("&");return e?`?${e}`:""}(e)}`);return r}catch(n){return console.error("Failed to fetch game info:",n),{}}}function bn(n,t="€"){return null===n?"":`${t}${n?function(n){if(0===n)return"0";if(!n)return"";const t=(n=n.toString()).split(".");return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),t.join(".")}(n):0}`}const pn=["ro","en","fr","ar","hr"],yn={en:{logout:"Log out",draws:"DRAWS",latestResults:"LATEST RESULTS",instruction:"INSTRUCTION",howToWin:"HOW TO WIN",selectDraws:"Select Draws from the following bars:",gameNotAvailable:"Sorry. The Game is not available now.",instructionContent:"Instruction content goes here.",turnover:"Turnover: "},ro:{logout:"Deconectare",draws:"EXTRAGERI",latestResults:"ULTIMELE REZULTATE",instruction:"INSTRUCȚIUNI",howToWin:"CUM SĂ CÂȘTIGI",selectDraws:"Selectați extrageri din barele următoare:",gameNotAvailable:"Ne pare rău. Jocul nu este disponibil acum.",instructionContent:"Conținutul instrucțiunilor se afișează aici."},fr:{logout:"Se déconnecter",draws:"TIRAGES",latestResults:"DERNIERS RÉSULTATS",instruction:"INSTRUCTION",howToWin:"COMMENT GAGNER",selectDraws:"Sélectionnez les tirages dans les barres suivantes:",gameNotAvailable:"Désolé. Le jeu nest pas disponible pour le moment.",instructionContent:"Le contenu des instructions va ici."},ar:{logout:"تسجيل الخروج",draws:"السحوبات",latestResults:"أحدث النتائج",instruction:"التعليمات",howToWin:"كيفية الفوز",selectDraws:"حدد السحوبات من الأشرطة التالية:",gameNotAvailable:"آسف. اللعبة غير متوفرة الآن.",instructionContent:"محتوى التعليمات يذهب هنا."},hr:{logout:"Odjava",draws:"IZVLAČENJA",latestResults:"NAJNOVIJI REZULTATI",instruction:"UPUTE",howToWin:"KAKO POBIJEDITI",selectDraws:"Odaberite izvlačenja sa sljedećih traka:",gameNotAvailable:"Žao nam je. Igra trenutno nije dostupna.",instructionContent:"Sadržaj uputa ide ovdje."}},xn={[d.Football]:n("svg",{height:"18px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",class:"text-sm"},n("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M19.063 19.072l-.81-.97-.117.083.385-2.43.136-.211 2.23-3.464.037-.057h1.075a9.964 9.964 0 01-2.936 7.049zM4.769 5.112l2.8.877-.072 3.246-2.427 2.95-1.561-.153L2.39 9.26a9.977 9.977 0 012.378-4.148zm7.745-3.086l-.72 1.645-3.798 1.404-2.395-.75A9.953 9.953 0 0112 2c.174 0 .343.017.514.026zm7.346 3.812l-1.128 1.29-3.402-.755-.033-.008-2.446-2.241.057.016.862-1.973a9.996 9.996 0 016.09 3.67zm-1.87 8.894l-3.385-.493-1.358-4.067 2.173-2.755 3.144.698 1.347 3.634-1.921 2.983zm-4.64 5.787l4.304-1.486.62.742a9.945 9.945 0 01-5.878 2.205l.954-1.461zm-6.314-2.84l3.91.873-.001.003 1.509 1.507-1.24 1.898a9.946 9.946 0 01-5.908-2.553l1.73-1.728zm1.16-7.72l4.168.725 1.302 3.9-2.552 2.98-3.97-.885-1.412-3.724L8.196 9.96zM2 12c0-.31.019-.615.047-.92l.485 1.203-.454.907A9.934 9.934 0 012 11.999zM12 1C5.934 1 1 5.935 1 12c0 6.067 4.935 11 11 11 6.066 0 11-4.933 11-11 0-6.065-4.934-11-11-11z",fill:"currentColor"}))},Sn=class{constructor(n){t(this,n),this.handleBombItemClick=e(this,"handleBombItemClick",7),this.mbSource=void 0,this.clientStyling=void 0,this.clientStylingUrl=void 0,this.translationUrl="",this.language="en",this.endpoint=void 0,this.groupId=void 0,this.activeBomb="All",this.bombList=[],this.gameList=[],this.liveDrawsInfoByGroupId={},this.isLoading=!1}handleClientStylingChange(n,t){n!=t&&o(this.stylingContainer,this.clientStyling)}handleClientStylingUrlChange(n,t){n!=t&&i(this.stylingContainer,this.clientStylingUrl)}handleMbSourceChange(n,t){n!=t&&s(this.stylingContainer,`${this.mbSource}.Style`,this.stylingSubscription)}componentDidLoad(){this.stylingContainer&&(this.mbSource&&s(this.stylingContainer,`${this.mbSource}.Style`,this.stylingSubscription),this.clientStyling&&o(this.stylingContainer,this.clientStyling),this.clientStylingUrl&&i(this.stylingContainer,this.clientStylingUrl))}disconnectedCallback(){this.stylingSubscription&&this.stylingSubscription.unsubscribe()}connectedCallback(){this.doFetchData()}async doFetchData(n={}){try{this.isLoading=!0,this.liveDrawsInfoByGroupId=await async function({endpoint:n,groupId:t,params:e}){try{const{sportTags:r=[],liveDraws:a=[]}=await vn({endpoint:n,groupId:t,params:e});return{sportTags:r.map((n=>({name:n,code:n}))),liveDraws:a.map((n=>({title:n.gameName,subTitle:n.sportTag,icon:n.sportTag,date:fn(n.drawCloseTime),turnover:bn(null),matchList:n.matchs.map((n=>n.eventName)),drawId:n.drawId,gameId:n.gameId})))}}catch(n){return{sportTags:[],liveDraws:[]}}}({endpoint:this.endpoint,groupId:this.groupId,params:n}),this.gameList=this.liveDrawsInfoByGroupId.liveDraws,this.bombList=[wn,...this.liveDrawsInfoByGroupId.sportTags],this.isLoading=!1,this.updateTurnoverForAll()}finally{this.isLoading=!1}}async updateTurnoverForAll(){const n=async function({endpoint:n,configs:t}){const e={turnover:bn(null)},r=t.map((async({gameId:t,drawId:e})=>{var r;const a=await async function({endpoint:n,gameId:t,drawId:e}){try{return await hn(`${n}/games/${t}/draws/${e}/saleStatistics`)}catch(n){return Promise.reject(n)}}({endpoint:n,gameId:t,drawId:e});return{turnover:bn(null===(r=null==a?void 0:a.wagerSegment)||void 0===r?void 0:r.totalSalesCrossDraw)}}));return(await Promise.allSettled(r)).map((n=>"fulfilled"===n.status?n.value:e))}({endpoint:this.endpoint,configs:this.gameList.map((n=>({gameId:n.gameId,drawId:n.drawId})))});for(let t=0;t<this.gameList.length;t++)this.gameList[t].turnover=(await n)[t].turnover;this.gameList=[...this.gameList]}handleBombChange(n){this.activeBomb=n,n===wn.code?this.doFetchData():this.doFetchData({sportTag:n})}renderLoading(){return n("div",{class:"loading-wrap"},n("section",{class:"dots-container"},n("div",{class:"dot"}),n("div",{class:"dot"}),n("div",{class:"dot"}),n("div",{class:"dot"}),n("div",{class:"dot"})))}renderEmpty(){const t=r("../static/empty-info.svg");return n("div",{class:"empty-draw-wrap"},n("div",{class:"empty-draw"},n("img",{src:t,class:"empty-draw-logo"}),n("div",{class:"empty-draw-content"},n("div",{class:"empty-draw-text"},"ⓘ Sorry. The game is not available now."))))}renderFilter(){return n("div",{class:"OddsbomEntranceController__section"},n("span",{class:"OddsbomEntranceController__label"},"Select Bomb:"),this.bombList.length?n("div",{class:"OddsbomEntranceController__segmented-control"},this.bombList.map((({name:t,code:e})=>n("button",{class:{OddsbomEntranceController__segment:!0,"OddsbomEntranceController__segment--active":this.activeBomb===e},onClick:this.handleBombChange.bind(this,e)},t)))):n("div",{class:"skeleton-content"},n("div",{class:"skeleton-item skeleton-animated"})))}renderMain(){return this.gameList.length?n("div",{class:"bomb-grid"},this.gameList.map((({title:t,subTitle:e,icon:r,date:a,turnover:o,matchList:i,drawId:s,gameId:d})=>n("div",{class:"bomb-card-wrapper"},n("div",{class:"bomb-card",onClick:()=>{this.handleBombItemClick.emit({drawId:s,gameId:d})}},n("div",{class:"card-header"},xn[r]&&n("div",{class:"card-icon football"},xn[r]),n("div",{class:"card-title"},n("h2",null,t),n("p",null,e)),n("div",{class:"card-jackpot"})),n("div",{class:"card-info"},n("span",{class:"card-tag"},a),n("span",{class:"card-tag"},(()=>{const n=this.language;return yn[void 0!==n&&pn.includes(n)?n:"en"].turnover})()+o)),n("div",{class:"card-matches"},n("ol",null,i.map((t=>n("li",null,t)))))))))):this.renderEmpty()}render(){return n("div",{key:"ae8252d8cb1374af9bb8189bcd9edac313c7bc6a",ref:n=>this.stylingContainer=n,class:"lottery-oddsbom-bomb-wrapper"},this.renderFilter(),n("div",{key:"3f673f335248057370e7e57076cc387a86dc4099",class:"bomb-grid-container"},this.isLoading?this.renderLoading():this.renderMain()))}static get assetsDirs(){return["../static"]}static get watchers(){return{clientStyling:["handleClientStylingChange"],clientStylingUrl:["handleClientStylingUrlChange"],mbSource:["handleMbSourceChange"]}}};Sn.style="/* --- Component: Bomb Card Grid --- */\n.lottery-oddsbom-bomb-wrapper {\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n height: 100%;\n}\n\n.bomb-grid-container {\n width: 100%;\n display: flex;\n justify-content: center;\n container-type: inline-size;\n container-name: bomb-grid;\n background: var(--emw--color-background, #fff);\n color: var(--emw--color-typography, #000);\n /* --- Component: Bomb Card --- */\n}\n.bomb-grid-container .bomb-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 0.75rem;\n place-items: center;\n}\n.bomb-grid-container .bomb-card-wrapper {\n width: 100%;\n max-width: 30rem;\n height: 100%;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 1rem;\n border: 1px solid var(--emw--color-gray-100, #e6e6e6);\n}\n.bomb-grid-container .bomb-card {\n height: 100%;\n min-width: 24rem;\n transition: transform 0.3s;\n}\n.bomb-grid-container .bomb-card:hover {\n transform: scale(1.02);\n cursor: pointer;\n}\n.bomb-grid-container .card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n margin-bottom: 0.8rem;\n}\n.bomb-grid-container .card-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.bomb-grid-container .card-icon svg {\n width: 28px;\n height: 28px;\n}\n.bomb-grid-container .card-title {\n flex-grow: 1;\n word-break: break-all;\n}\n.bomb-grid-container .card-title h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 700;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-title p {\n margin: 0;\n color: var(--emw--color-typography-secondary, #333);\n font-size: 0.9rem;\n word-wrap: break-word;\n}\n.bomb-grid-container .card-info {\n display: flex;\n gap: 0.75rem;\n margin-bottom: 0.8rem;\n flex-wrap: wrap;\n}\n.bomb-grid-container .card-tag {\n background-color: var(--emw--color-tertiary, #e3f2fd);\n padding: 0.3rem 0.75rem;\n border-radius: 4px;\n font-size: 0.85rem;\n font-weight: 500;\n max-width: 120px;\n}\n.bomb-grid-container .card-matches {\n max-height: 6.8rem;\n overflow-y: auto;\n}\n.bomb-grid-container .card-matches ol {\n margin: 0;\n padding-left: 1.25rem;\n font-size: 0.85rem;\n line-height: 1.6;\n}\n.bomb-grid-container .card-matches li {\n padding-left: 0.2rem;\n word-wrap: break-word;\n}\n\n/* --- CONTAINER QUERIES FOR RESPONSIVENESS --- */\n@container bomb-grid (max-width: 768px) {\n .bomb-grid-container .bomb-grid {\n /* On smaller containers, switch to a single column */\n grid-template-columns: 1fr;\n }\n .bomb-card-wrapper .bomb-card {\n min-width: 200px;\n }\n}\n/* --- Component: Filter Controls --- */\n.OddsbomEntranceController__section {\n margin: 1.5rem 0;\n display: flex;\n gap: 12px;\n color: var(--emw--color-typography, #000);\n container-type: inline-size;\n container-name: controller;\n justify-content: center;\n}\n.OddsbomEntranceController__label {\n font-weight: 500;\n white-space: nowrap;\n width: 6rem;\n line-height: 2.2rem;\n}\n.OddsbomEntranceController__segmented-control {\n display: inline-flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.OddsbomEntranceController__segment {\n height: 2.2rem;\n border: none;\n padding: 0.3rem 0.8rem;\n cursor: pointer;\n font-weight: 500;\n border-radius: 2rem;\n outline: none;\n white-space: nowrap;\n background-color: var(--emw--color-background, #ffffff);\n color: var(--emw--color-typography, #000);\n}\n.OddsbomEntranceController__segment--active {\n background-color: var(--emw--color-primary-variant, #1367e7);\n color: var(--emw--color-typography-reverse, #fff);\n font-weight: 600;\n}\n.OddsbomEntranceController__segment--disabled:hover {\n cursor: not-allowed !important;\n}\n.OddsbomEntranceController__segment:not(.OddsbomEntranceController__segment--active):hover {\n background-color: var(--emw--color-background-tertiary, #ccc);\n}\n\n.skeleton-content {\n display: flex;\n flex-direction: column;\n gap: 29px;\n align-items: center;\n}\n\n.skeleton-item {\n background: var(--emw--color-background-secondary, #f5f5f5);\n border-radius: 4px;\n height: 40px;\n width: 200px;\n}\n\n.skeleton-animated {\n animation: skeleton-shimmer 1.5s infinite linear;\n background: linear-gradient(90deg, var(--emw--color-background-secondary, #f5f5f5) 25%, var(--emw--color-background-tertiary, #ccc) 37%, var(--emw--color-background-secondary, #f5f5f5) 63%);\n background-size: 200% 100%;\n}\n\n@keyframes skeleton-shimmer {\n to {\n background-position: 100% 0;\n }\n}\n.loading-icon.scale {\n animation: scale 1s infinite ease-in-out;\n}\n\n@keyframes scale {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.2);\n }\n}\n@container controller (max-width: 500px) {\n .OddsbomEntranceController__segmented-control {\n gap: 0rem;\n }\n .OddsbomEntranceController__segment {\n padding: 0.2rem 0.6rem;\n }\n .OddsbomEntranceController__label,\n .OddsbomEntranceController____segment {\n line-height: 1.8rem;\n }\n}\n.loading-wrap {\n margin: 20px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n}\n.loading-wrap .dots-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n.loading-wrap .dot {\n height: 14px;\n width: 14px;\n margin-right: 14px;\n border-radius: 14px;\n background-color: var(--emw--color-gray-300, #333);\n animation: pulse 1.5s infinite ease-in-out;\n}\n.loading-wrap .dot:last-child {\n margin-right: 0;\n}\n.loading-wrap .dot:nth-child(1) {\n animation-delay: -0.3s;\n}\n.loading-wrap .dot:nth-child(2) {\n animation-delay: -0.1s;\n}\n.loading-wrap .dot:nth-child(3) {\n animation-delay: 0.1s;\n}\n@keyframes pulse {\n 0% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-300, #333);\n }\n 50% {\n transform: scale(1.2);\n background-color: var(--emw--color-gray-100, #e6e6e6);\n }\n 100% {\n transform: scale(0.8);\n background-color: var(--emw--color-gray-150, #6f6f6f);\n }\n}\n\n.empty-draw-wrap {\n padding-top: 100px;\n}\n.empty-draw-wrap .empty-draw {\n width: 240px;\n height: 160px;\n padding: 18px 12px 12px 12px;\n background: var(--emw--color-secondary-variant, #e3f2fd);\n position: relative;\n margin: 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n border-radius: 12px;\n}\n.empty-draw-wrap .empty-draw img {\n position: absolute;\n top: -64%;\n left: 50%;\n transform: translateX(-50%);\n width: 200px;\n}\n.empty-draw-wrap .empty-draw-content {\n display: flex;\n gap: 4px;\n}\n.empty-draw-wrap .empty-draw-text {\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n}";export{Sn as L}
|