@everymatrix/lottery-game-page 0.0.9 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/helper-accordion.cjs.entry.js +88 -0
  2. package/dist/cjs/{helper-accordion_13.cjs.entry.js → helper-filters_2.cjs.entry.js} +21 -1023
  3. package/dist/cjs/helper-modal.cjs.entry.js +44 -0
  4. package/dist/cjs/helper-tab.cjs.entry.js +33 -0
  5. package/dist/cjs/helper-tabs.cjs.entry.js +38 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/lottery-bullet_2.cjs.entry.js +202 -0
  8. package/dist/cjs/lottery-draw-results-history.cjs.entry.js +124 -0
  9. package/dist/cjs/lottery-game-details.cjs.entry.js +19 -0
  10. package/dist/cjs/lottery-game-page.cjs.entry.js +299 -0
  11. package/dist/cjs/lottery-game-page.cjs.js +1 -1
  12. package/dist/cjs/lottery-ticket-controller.cjs.entry.js +69 -0
  13. package/dist/cjs/lottery-ticket.cjs.entry.js +146 -0
  14. package/dist/collection/collection-manifest.json +7 -1
  15. package/dist/components/helper-accordion2.js +1 -0
  16. package/dist/components/helper-filters2.js +1 -0
  17. package/dist/components/helper-modal2.js +1 -0
  18. package/dist/components/helper-pagination.js +1 -0
  19. package/dist/components/helper-tab2.js +1 -0
  20. package/dist/components/helper-tabs2.js +1 -0
  21. package/dist/components/lottery-bullet2.js +1 -0
  22. package/dist/components/lottery-draw-results-history2.js +1 -0
  23. package/dist/components/lottery-draw-results2.js +1 -0
  24. package/dist/components/lottery-game-details2.js +1 -0
  25. package/dist/components/lottery-game-page.js +1 -0
  26. package/dist/components/lottery-grid2.js +1 -0
  27. package/dist/components/lottery-ticket-controller2.js +1 -0
  28. package/dist/components/lottery-ticket2.js +1 -0
  29. package/dist/esm/helper-accordion.entry.js +84 -0
  30. package/dist/esm/{helper-accordion_13.entry.js → helper-filters_2.entry.js} +23 -1014
  31. package/dist/esm/helper-modal.entry.js +40 -0
  32. package/dist/esm/helper-tab.entry.js +29 -0
  33. package/dist/esm/helper-tabs.entry.js +34 -0
  34. package/dist/esm/loader.js +1 -1
  35. package/dist/esm/lottery-bullet_2.entry.js +197 -0
  36. package/dist/esm/lottery-draw-results-history.entry.js +120 -0
  37. package/dist/esm/lottery-game-details.entry.js +15 -0
  38. package/dist/esm/lottery-game-page.entry.js +295 -0
  39. package/dist/esm/lottery-game-page.js +1 -1
  40. package/dist/esm/lottery-ticket-controller.entry.js +65 -0
  41. package/dist/esm/lottery-ticket.entry.js +142 -0
  42. package/dist/lottery-game-page/lottery-game-page.esm.js +1 -1
  43. package/dist/lottery-game-page/p-010895a3.entry.js +1 -0
  44. package/dist/lottery-game-page/p-09f983c6.entry.js +1 -0
  45. package/dist/lottery-game-page/p-0c7ada78.entry.js +1 -0
  46. package/dist/lottery-game-page/p-2932d2a7.entry.js +1 -0
  47. package/dist/lottery-game-page/p-48831184.entry.js +1 -0
  48. package/dist/lottery-game-page/p-50298d2c.entry.js +1 -0
  49. package/dist/lottery-game-page/p-6736fa79.entry.js +1 -0
  50. package/dist/lottery-game-page/p-88f81126.entry.js +1 -0
  51. package/dist/lottery-game-page/{p-49bd2864.entry.js → p-95b37270.entry.js} +105 -105
  52. package/dist/lottery-game-page/p-a1dd3eb2.entry.js +1 -0
  53. package/dist/lottery-game-page/p-caf09eaf.entry.js +1 -0
  54. package/dist/stencil.config.js +9 -5
  55. package/package.json +1 -1
@@ -0,0 +1,299 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-81cb3b3b.js');
6
+
7
+ const DEFAULT_LANGUAGE = 'en';
8
+ const SUPPORTED_LANGUAGES = ['ro', 'en'];
9
+ const TRANSLATIONS = {
10
+ en: {
11
+ error: 'Error',
12
+ title: 'Chrono',
13
+ backButton: 'Back',
14
+ lobbyButton: 'Lobby',
15
+ prize: 'Prize',
16
+ winUpTo: 'Win up to',
17
+ nextDraw: 'Next draw in: ',
18
+ buy: 'Buy tickets',
19
+ viewLatest: 'View latest results',
20
+ createTicket: 'Create Ticket',
21
+ modalSuccess: 'Purchase will be successfull soon!',
22
+ deleteTicketModalTitle: 'Delete Ticket',
23
+ deleteTicketModalText: 'Are you sure you want to delete this ticket?',
24
+ deleteTicketModalCancel: 'Cancel',
25
+ deleteTicketModalConfirm: 'Delete',
26
+ orderSummaryTitle: 'Order Summary',
27
+ orderSummaryTickets: 'Ticket',
28
+ orderSummaryTotal: 'Total',
29
+ orderSummarySubmit: 'Submit'
30
+ },
31
+ ro: {
32
+ error: 'Eroare',
33
+ title: 'Loto 6/49',
34
+ backButton: 'Inapoi',
35
+ lobbyButton: 'Lobby',
36
+ prize: 'MARELE JACKPOT OMG',
37
+ winUpTo: 'Castiga pana la',
38
+ nextDraw: 'In cat timp devii milionar daca cumperi acum!!!',
39
+ buy: 'Cumpara bilet',
40
+ viewLatest: 'Ultimile extrageri',
41
+ createTicket: 'Creeaza bilet',
42
+ modalSuccess: 'Achiziția va avea succes în curând!',
43
+ deleteTicketModalTitle: 'Sterge biletul',
44
+ deleteTicketModalText: 'Esti sigur ca vrei sa stergi acest bilet?',
45
+ deleteTicketModalCancel: 'Anuleaza',
46
+ deleteTicketModalConfirm: 'Sterge',
47
+ orderSummaryTitle: 'Rezumat comanda',
48
+ orderSummaryTickets: 'Bilet',
49
+ orderSummaryTotal: 'Total',
50
+ orderSummarySubmit: 'Trimite'
51
+ },
52
+ };
53
+ const translate = (key, customLang) => {
54
+ const lang = customLang;
55
+ return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
56
+ };
57
+
58
+ const lotteryGamePageCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.GamePage .GridBanner{background-color:#009993;background-repeat:no-repeat;background-position:center;color:#111;padding:0 20px 10px;height:220px;display:flex;flex-direction:column;justify-content:space-between}.GamePage .GridBanner .BannerButtonsWrapper{display:flex;justify-content:space-between;padding-top:16px}.GamePage .GridBanner .BannerButtonsWrapper .BannerBackButton,.GamePage .GridBanner .BannerButtonsWrapper .BannerLobbyButton{background:#fff;border:1px solid #D4D4D4;border-radius:4px;padding:7px 15px;font-size:12px;text-transform:uppercase;width:80px}.GamePage .GridBanner .GridBannerArea{padding-top:30px;display:flex;flex-direction:column;align-items:center}.GamePage .TotalWinnings{color:#00958f;font-size:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}.GamePage .TotalWinnings span{font-size:22px;font-weight:700}.GamePage .NextDraw{color:#00958f;font-size:24px;font-weight:600;margin:0 auto;text-align:center;text-transform:capitalize;display:flex;justify-content:center;align-items:center;flex-direction:column}.GamePage .NextDraw .BannerText{font-weight:400;font-size:18px}.GamePage .NextDraw .BannerCountdown{font-size:22px;color:#00958f;display:flex;gap:20px}.GamePage .Tabs{display:flex;justify-content:center;gap:10px}.GamePage .Tabs .TabButton{border-radius:4px;cursor:pointer;padding:8px 0;width:50%;max-width:200px;border:1px solid #00958f;background:#F1F1F1;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.GamePage .Tabs .TabButton.Active{background:#00958f;color:#FFF}.NextDrawWrapper{padding:10px 15px;background:#fff}.NextDrawWrapper .BannerText{font-size:16px;font-weight:700;text-align:center}.NextDrawWrapper .BannerCountdown{font-size:22px;display:flex;gap:8px;color:#009993;font-weight:bolder;justify-content:center}.GamePageContent{padding:10px 15px;max-width:1200px;margin:0 auto}.GameDetails{padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid #e9e9e9}.CreateNewTicket{background:#004D4A;height:100px;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.CreateNewTicket button{cursor:pointer;display:inline-block;border-radius:50%;width:40px;height:40px;margin:5px;border:1px solid #FFF;background:#FFF;color:#004D4A;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.CreateNewTicket button:hover{background:#F1F1F1}.CreateNewTicket span{display:inline-block;font-size:12px;text-align:center;margin:0 auto;color:#FFF}.OrderSummary{min-width:200px;border-radius:4px;display:flex;flex-direction:column;justify-content:center;margin-top:20px;background:#fff}.OrderSummary .OrderSummaryTitle{font-size:16px;color:#009993;text-transform:uppercase;text-align:center}.OrderSummary .Ticket{display:inline-block;color:#000;font-size:14px;height:50px;border-bottom:solid 1px #D4D4D4;line-height:50px}.OrderSummary .Ticket span{text-align:right}.OrderSummary .Total{display:inline-block;color:#000;font-size:14px;height:50px;line-height:50px}.OrderSummary .Total span{text-align:right}.ButtonWrapper{display:flex;align-items:center;justify-content:center}.ButtonWrapper .Button{cursor:pointer;border-radius:4px;padding:8px 60px;width:max-content;margin:5px;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0;background:#009993;border:1px solid #009993;color:#FFF}.ButtonWrapper .Button:hover{background:#00ABA4}.SubmitModalSuccess{text-align:center;font-size:18px;padding:20px}.DeleteTicketModalWrapper{padding:20px;text-align:center}.DeleteTicketModalWrapper .DeleteTicketModalTitle{font-size:16px;color:#00958f;font-weight:400;text-transform:uppercase;margin:20px 0 40px}.DeleteTicketModalWrapper .DeleteTicketModalText{font-size:14px;color:#000;line-height:22px;margin-bottom:40px}.DeleteTicketModalWrapper .DeleteTicketModalButtons{display:flex;gap:10px;justify-content:center}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalConfirm{cursor:pointer;border-radius:4px;padding:8px 25px;width:max-content;margin:5px;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0;background:#FF3D00;border:1px solid #FF3D00;color:#FFF}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalConfirm:hover{background:#FF6536;border:1px solid #FF3D00}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalCancel{cursor:pointer;width:max-content;border-radius:4px;padding:10px 25px;margin:5px;border:1px solid #00958f;background:#FFF;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalCancel:hover{background:#F1F1F1}@media (min-width: 1200px){.GamePageContent .TicketsWrapper{float:left;width:49%}.GamePageContent .GameDetails{float:right;width:49%}.GamePageContent .OrderSummary{float:right;width:49%}}";
59
+
60
+ const LotteryGamePage = class {
61
+ constructor(hostRef) {
62
+ index.registerInstance(this, hostRef);
63
+ /**
64
+ * Language of the widget
65
+ */
66
+ this.language = 'en';
67
+ /**
68
+ * Shows the auto-pick button
69
+ */
70
+ this.autoPick = false;
71
+ /**
72
+ * Shows the reset button
73
+ */
74
+ this.resetButton = false;
75
+ this.tickets = [];
76
+ this.tabIndex = 0;
77
+ this.hasErrors = false;
78
+ this.totalAmount = 0;
79
+ this.successVisible = false;
80
+ this.deleteVisible = false;
81
+ this.latestDraw = {};
82
+ this.totalWinningsAmount = 0;
83
+ this.multiplier = false;
84
+ this.quickPick = false;
85
+ }
86
+ // @TODO fix `any` type later, I'm lazy now
87
+ connectedCallback() {
88
+ this.getGameDetails();
89
+ this.getDraws();
90
+ }
91
+ countdownLogic(date) {
92
+ this.interval = setInterval(() => {
93
+ this.daysRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60 * 24));
94
+ this.hoursRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60) - this.daysRemaining * 24);
95
+ this.minutesRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60) - this.daysRemaining * 24 * 60 - this.hoursRemaining * 60);
96
+ this.secondsRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / 1000 - this.daysRemaining * 24 * 60 * 60 - this.hoursRemaining * 60 * 60 - this.minutesRemaining * 60);
97
+ }, 1000);
98
+ }
99
+ disconnectedCallback() {
100
+ clearInterval(this.interval);
101
+ }
102
+ getGameDetails() {
103
+ let url = new URL(`${this.endpoint}/games/${this.gameId}`);
104
+ fetch(url.href)
105
+ .then((res) => {
106
+ if (res.status >= 300) {
107
+ this.hasErrors = true;
108
+ throw new Error('There was an error while fetching the data');
109
+ }
110
+ return res.json();
111
+ })
112
+ .then((data) => {
113
+ this.gameData = data;
114
+ this.basicStake = this.gameData.rules.stakes[0].amount;
115
+ let draws = this.gameData.draws.filter((item) => !item.winningNumbers);
116
+ console.log('draws', draws);
117
+ this.nextDraw = draws[0].id;
118
+ this.createNewTicket();
119
+ })
120
+ .catch((err) => {
121
+ this.hasErrors = true;
122
+ console.log('Error', err);
123
+ });
124
+ }
125
+ calculateTotalAmount() {
126
+ const { currency } = this.gameData.rules.stakes[0];
127
+ this.totalAmount = 0;
128
+ this.tickets.forEach((item) => {
129
+ if (item.completed) {
130
+ this.totalAmount += item.amount * item.stake;
131
+ }
132
+ });
133
+ this.currency = currency;
134
+ }
135
+ // @TODO CustomEvent type
136
+ gridFilledHandler(event) {
137
+ // @TODO item ts
138
+ this.tickets = this.tickets.map((item) => {
139
+ if (item.ticketId == event.detail.id) {
140
+ let arr = item.selectedNumbers || [];
141
+ arr[event.detail.index] = event.detail.selectedNumbers.map((item) => parseInt(item, 10));
142
+ return {
143
+ gameId: item.gameId,
144
+ ticketId: item.ticketId,
145
+ completed: true,
146
+ amount: event.detail.draws,
147
+ stake: item.stake,
148
+ selectedNumbers: arr
149
+ };
150
+ }
151
+ return item;
152
+ });
153
+ this.calculateTotalAmount();
154
+ }
155
+ // @TODO fix any type
156
+ gridDirtyHandler(event) {
157
+ // @TODO item ts
158
+ this.tickets = this.tickets.map((item) => {
159
+ if (item.gameId == event.detail.id) {
160
+ return {
161
+ gameId: item.gameId,
162
+ ticketId: item.ticketId,
163
+ completed: false,
164
+ amount: item.amount,
165
+ stake: item.stake,
166
+ grids: []
167
+ };
168
+ }
169
+ return item;
170
+ });
171
+ }
172
+ // @TODO CustomEvent type
173
+ deleteTicketHandler(event) {
174
+ this.deleteVisible = true;
175
+ this.deleteEventData = event;
176
+ }
177
+ modalCloseEvent() {
178
+ this.deleteVisible = false;
179
+ }
180
+ stakeChangeHandler(event) {
181
+ const { ticketId, stake } = event.detail;
182
+ this.tickets[ticketId - 1].stake = stake;
183
+ this.calculateTotalAmount();
184
+ }
185
+ multiplierChangeHandler(event) {
186
+ this.multiplier = event.detail;
187
+ }
188
+ getDraws() {
189
+ // append from query param with the current date value in order to get the next draw
190
+ let url = new URL(`${this.endpoint}/games/${this.gameId}/draws`);
191
+ let drawOptions = {
192
+ method: "GET",
193
+ headers: {
194
+ 'Content-Type': "application/json",
195
+ 'Accept': 'application/json',
196
+ },
197
+ };
198
+ fetch(url.href, drawOptions)
199
+ .then((response) => {
200
+ return response.json();
201
+ })
202
+ .then((data) => {
203
+ var _a;
204
+ let upcoming = data.items.filter((item) => {
205
+ if (Date.parse(item.date) > new Date().getTime()) {
206
+ return !item.winningNumbers;
207
+ }
208
+ });
209
+ let past = data.items.filter((item) => item.winningNumbers);
210
+ this.latestDraw = upcoming[0];
211
+ this.nextDate = this.latestDraw.date;
212
+ this.countdownLogic(this.nextDate);
213
+ this.lastDrawId = past[past.length - 1].id;
214
+ // calculate total winnings
215
+ // @TODO fix any type
216
+ (_a = this.latestDraw) === null || _a === void 0 ? void 0 : _a.prizes.forEach((element) => {
217
+ this.totalWinningsAmount += JSON.parse(element.amount);
218
+ });
219
+ });
220
+ }
221
+ ;
222
+ // @TODO fix any type
223
+ confirmDeleteTicketHandler(event) {
224
+ // @TODO fix any type
225
+ this.tickets = this.tickets.filter((item) => {
226
+ if (item.ticketId == event.detail.ticketId) {
227
+ return false;
228
+ }
229
+ return true;
230
+ });
231
+ this.calculateTotalAmount();
232
+ this.deleteVisible = false;
233
+ }
234
+ createNewTicket() {
235
+ this.tickets = [
236
+ ...this.tickets,
237
+ { gameId: this.gameId, ticketId: this.tickets.length + 1, completed: false, amount: 1, stake: this.basicStake, grids: [] }
238
+ ];
239
+ }
240
+ submitTickets() {
241
+ let url = new URL(`${this.endpoint}/tickets`);
242
+ // @TODO Body TS type
243
+ let body = {
244
+ gameId: this.gameId,
245
+ tickets: []
246
+ };
247
+ console.log('body', body);
248
+ this.tickets.forEach((item) => {
249
+ body.tickets.push({
250
+ startingDrawId: this.nextDraw,
251
+ amount: item.stake,
252
+ gameId: this.gameId,
253
+ currency: this.currency,
254
+ selection: item.selectedNumbers,
255
+ multiplier: this.multiplier,
256
+ drawCount: item.amount,
257
+ quickPick: this.quickPick,
258
+ });
259
+ });
260
+ // @TODO Options TS type
261
+ let options = {
262
+ method: 'POST',
263
+ headers: {
264
+ 'Content-Type': 'application/json',
265
+ 'Accept': 'application/json',
266
+ 'Authorization': `Bearer ${this.sessionId}`
267
+ },
268
+ body: JSON.stringify(body)
269
+ };
270
+ fetch(url.href, options)
271
+ .then((res) => {
272
+ if (res.status > 300) {
273
+ throw new Error('err');
274
+ }
275
+ return res.json();
276
+ })
277
+ .then((data) => {
278
+ console.log('data', data);
279
+ });
280
+ this.successVisible = true;
281
+ }
282
+ render() {
283
+ // const backgroundSrc = getAssetPath('./static/chrono_lottery_mobile.png');
284
+ // const backgroundDesktopSrc = getAssetPath('./static/chrono_desktop.png');
285
+ if (this.hasErrors) {
286
+ return (index.h("div", { class: "GamePage" }, index.h("div", { class: "Title" }, translate('error', this.language))));
287
+ }
288
+ return (
289
+ /* Game details */
290
+ index.h("div", { class: "GamePage" }, index.h("div", { class: "GridBanner" }, index.h("div", { class: "BannerButtonsWrapper" }, index.h("button", { class: "BannerBackButton" }, index.h("span", { class: "BannerBackButtonArrow" }, "\u1438 "), translate('backButton', this.language)), index.h("button", { class: "BannerLobbyButton" }, translate('lobbyButton', this.language))), index.h("div", { class: "Tabs" }, index.h("div", { class: 'TabButton' + (this.tabIndex == 0 ? ' Active' : ''), onClick: () => this.tabIndex = 0 }, translate('buy', this.language)), index.h("div", { class: 'TabButton' + (this.tabIndex == 1 ? ' Active' : ''), onClick: () => this.tabIndex = 1 }, translate('viewLatest', this.language)))), index.h("div", { class: "NextDrawWrapper" }, index.h("div", { class: "TotalWinnings" }, translate('winUpTo', this.language), ": ", index.h("span", null, "$", this.totalWinningsAmount.toLocaleString('en-US', { maximumFractionDigits: 2 }))), index.h("div", { class: "NextDraw" }, index.h("p", { class: "BannerText" }, translate('nextDraw', this.language)), index.h("div", { class: "BannerCountdown" }, index.h("span", { class: "CountdownDays" }, this.daysRemaining, "D"), index.h("span", { class: "CountdownHours" }, this.hoursRemaining, "H"), index.h("span", { class: "CountdownMinutes" }, this.minutesRemaining, "M"), index.h("span", { class: "CountdownSeconds" }, this.secondsRemaining, "S")))), this.tabIndex == 0 &&
291
+ index.h("div", { class: "GamePageContent" }, index.h("div", { class: "GameDetails" }, index.h("lottery-game-details", null)), index.h("div", { class: "TicketsWrapper" }, this.tickets.map((item) => index.h("lottery-ticket-controller", { endpoint: this.endpoint, "ticket-id": item.ticketId, "game-id": item.gameId, collapsed: false, last: true, language: this.language, "auto-pick": this.autoPick, "reset-button": this.resetButton })), index.h("div", { class: "CreateNewTicket" }, index.h("button", { onClick: () => this.createNewTicket() }, "+"), index.h("span", null, translate('createTicket', this.language)))), index.h("div", { class: "OrderSummary" }, index.h("h3", { class: "OrderSummaryTitle" }, translate('orderSummaryTitle', this.language)), index.h("div", { class: "Ticket" }, translate('orderSummaryTickets', this.language), ": ", index.h("span", null, this.tickets.length)), index.h("div", { class: "Total" }, translate('orderSummaryTotal', this.language), ": ", index.h("span", null, this.totalAmount, " ", this.currency)), index.h("div", { class: "ButtonWrapper" }, index.h("span", { class: "Button", onClick: () => this.submitTickets() }, translate('orderSummarySubmit', this.language))))), this.tabIndex == 1 &&
292
+ index.h("div", null, index.h("lottery-draw-results", { endpoint: this.endpoint, "game-id": this.gameId, language: this.language, "draw-id": this.lastDrawId, "draw-mode": true }), index.h("lottery-draw-results-history", { endpoint: this.endpoint, "game-id": this.gameId, language: this.language })), index.h("helper-modal", { "title-modal": "Success", visible: this.successVisible }, index.h("p", { class: "SubmitModalSuccess" }, translate('modalSuccess', this.language))), index.h("helper-modal", { "title-modal": "Delete Ticket", visible: this.deleteVisible }, index.h("div", { class: "DeleteTicketModalWrapper" }, index.h("h3", { class: "DeleteTicketModalTitle" }, translate('deleteTicketModalTitle', this.language)), index.h("p", { class: "DeleteTicketModalText" }, translate('deleteTicketModalText', this.language)), index.h("div", { class: "DeleteTicketModalButtons" }, index.h("button", { class: "DeleteTicketModalCancel", onClick: () => this.modalCloseEvent() }, translate('deleteTicketModalCancel', this.language)), index.h("button", { class: "DeleteTicketModalConfirm", onClick: () => this.confirmDeleteTicketHandler(this.deleteEventData) }, translate('deleteTicketModalConfirm', this.language)))))));
293
+ }
294
+ static get assetsDirs() { return ["static"]; }
295
+ get element() { return index.getElement(this); }
296
+ };
297
+ LotteryGamePage.style = lotteryGamePageCss;
298
+
299
+ exports.lottery_game_page = LotteryGamePage;
@@ -15,5 +15,5 @@ const patchBrowser = () => {
15
15
  };
16
16
 
17
17
  patchBrowser().then(options => {
18
- return index.bootstrapLazy([["helper-pagination.cjs",[[1,"helper-pagination",{"firstPage":[1540,"first-page"],"previousPage":[1540,"previous-page"],"offset":[1538],"limit":[1538],"total":[1538],"language":[1],"offsetInt":[32],"lastPage":[32],"limitInt":[32],"totalInt":[32],"pagesArray":[32],"endInt":[32]}]]],["helper-accordion_13.cjs",[[1,"lottery-game-page",{"endpoint":[1],"gameId":[1,"game-id"],"playerId":[2,"player-id"],"sessionId":[1,"session-id"],"language":[1],"autoPick":[4,"auto-pick"],"resetButton":[4,"reset-button"],"tickets":[32],"tabIndex":[32],"hasErrors":[32],"totalAmount":[32],"successVisible":[32],"deleteVisible":[32],"deleteEventData":[32],"daysRemaining":[32],"hoursRemaining":[32],"minutesRemaining":[32],"secondsRemaining":[32],"latestDraw":[32],"totalWinningsAmount":[32],"nextDate":[32]},[[0,"ticketCompleted","gridFilledHandler"],[0,"gridDirty","gridDirtyHandler"],[0,"deleteTicket","deleteTicketHandler"],[0,"modalCloseEvent","modalCloseEvent"],[0,"stakeChange","stakeChangeHandler"],[0,"multiplierChange","multiplierChangeHandler"]]],[1,"lottery-draw-results-history",{"endpoint":[1],"gameId":[1,"game-id"],"numberOfResults":[2,"number-of-results"],"language":[1],"drawData":[32],"displayAllDrawsResults":[32],"showQuickFilters":[32],"winningDataSetsData":[32]},[[0,"filterSelection","filtersHandler"],[0,"filterSelectionReset","clearFiltersHandler"]]],[1,"lottery-ticket-controller",{"endpoint":[1],"ticketId":[2,"ticket-id"],"ticketDescription":[1,"ticket-description"],"gameId":[1,"game-id"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"numberOfGrids":[2,"number-of-grids"],"last":[4],"language":[1],"autoPick":[4,"auto-pick"],"resetButton":[4,"reset-button"]},[[0,"helperAccordionAction","helperAccordionActionHandler"]]],[1,"lottery-game-details"],[1,"lottery-draw-results",{"endpoint":[1],"gameId":[1,"game-id"],"language":[1],"playerId":[1,"player-id"],"drawMode":[4,"draw-mode"],"drawId":[1,"draw-id"],"gameName":[1,"game-name"],"multiplier":[32],"ticketData":[32],"isLoading":[32],"drawResults":[32],"rules":[32],"toggleDrawer":[32],"hasErrors":[32],"errorText":[32]}],[1,"lottery-ticket",{"endpoint":[1],"gameId":[1,"game-id"],"numberOfGrids":[2,"number-of-grids"],"multipleDraws":[4,"multiple-draws"],"ticketId":[2,"ticket-id"],"resetButton":[4,"reset-button"],"autoPick":[4,"auto-pick"],"language":[1],"multiplier":[32],"numberOfDraws":[32],"isLoading":[32],"hasErrors":[32],"ticketDone":[32]},[[0,"gridFilled","gridFilledHandler"]]],[1,"helper-filters",{"showFilterId":[4,"show-filter-id"],"activateTicketSearch":[4,"activate-ticket-search"],"gameId":[1,"game-id"],"playerId":[1,"player-id"],"session":[1],"postMessage":[4,"post-message"],"language":[1],"showFilterModal":[32],"showClearButton":[32],"filterData":[32],"filterDataReset":[32]},[[0,"modalCloseEvent","modalCloseEvent"]]],[1,"helper-tabs",{"disabled":[4],"label":[1],"selected":[4],"cmsEndpoint":[1,"cms-endpoint"],"selectedIndex":[1538,"selected-index"],"tabs":[16]}],[1,"helper-accordion",{"headerTitle":[1,"header-title"],"headerSubtitle":[1,"header-subtitle"],"description":[1],"footer":[4],"deleteTab":[4,"delete-tab"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"language":[1],"showContent":[32]}],[1,"helper-modal",{"titleModal":[1,"title-modal"],"visible":[1540]}],[1,"helper-tab",{"selectedIndex":[2,"selected-index"],"cmsEndpoint":[1,"cms-endpoint"]}],[1,"lottery-grid",{"ticketId":[2,"ticket-id"],"totalNumbers":[2,"total-numbers"],"gameId":[1,"game-id"],"maximumAllowed":[2,"maximum-allowed"],"minimumAllowed":[2,"minimum-allowed"],"selectable":[4],"selectedNumbers":[1,"selected-numbers"],"displaySelected":[4,"display-selected"],"language":[1],"gridIndex":[2,"grid-index"],"numbers":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[1],"selectable":[4],"isSelected":[4,"is-selected"]}]]]], options);
18
+ return index.bootstrapLazy([["lottery-game-page.cjs",[[1,"lottery-game-page",{"endpoint":[1],"gameId":[1,"game-id"],"playerId":[2,"player-id"],"sessionId":[1,"session-id"],"language":[1],"autoPick":[4,"auto-pick"],"resetButton":[4,"reset-button"],"tickets":[32],"tabIndex":[32],"hasErrors":[32],"totalAmount":[32],"successVisible":[32],"deleteVisible":[32],"deleteEventData":[32],"daysRemaining":[32],"hoursRemaining":[32],"minutesRemaining":[32],"secondsRemaining":[32],"latestDraw":[32],"totalWinningsAmount":[32],"nextDate":[32]},[[0,"ticketCompleted","gridFilledHandler"],[0,"gridDirty","gridDirtyHandler"],[0,"deleteTicket","deleteTicketHandler"],[0,"modalCloseEvent","modalCloseEvent"],[0,"stakeChange","stakeChangeHandler"],[0,"multiplierChange","multiplierChangeHandler"]]]]],["helper-pagination.cjs",[[1,"helper-pagination",{"firstPage":[1540,"first-page"],"previousPage":[1540,"previous-page"],"offset":[1538],"limit":[1538],"total":[1538],"language":[1],"offsetInt":[32],"lastPage":[32],"limitInt":[32],"totalInt":[32],"pagesArray":[32],"endInt":[32]}]]],["lottery-bullet_2.cjs",[[1,"lottery-grid",{"ticketId":[2,"ticket-id"],"totalNumbers":[2,"total-numbers"],"gameId":[1,"game-id"],"maximumAllowed":[2,"maximum-allowed"],"minimumAllowed":[2,"minimum-allowed"],"selectable":[4],"selectedNumbers":[1,"selected-numbers"],"displaySelected":[4,"display-selected"],"language":[1],"gridIndex":[2,"grid-index"],"numbers":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[1],"selectable":[4],"isSelected":[4,"is-selected"]}]]],["helper-filters_2.cjs",[[1,"lottery-draw-results",{"endpoint":[1],"gameId":[1,"game-id"],"language":[1],"playerId":[1,"player-id"],"drawMode":[4,"draw-mode"],"drawId":[1,"draw-id"],"gameName":[1,"game-name"],"multiplier":[32],"ticketData":[32],"isLoading":[32],"drawResults":[32],"rules":[32],"toggleDrawer":[32],"hasErrors":[32],"errorText":[32]}],[1,"helper-filters",{"showFilterId":[4,"show-filter-id"],"activateTicketSearch":[4,"activate-ticket-search"],"gameId":[1,"game-id"],"playerId":[1,"player-id"],"session":[1],"postMessage":[4,"post-message"],"language":[1],"showFilterModal":[32],"showClearButton":[32],"filterData":[32],"filterDataReset":[32]},[[0,"modalCloseEvent","modalCloseEvent"]]]]],["lottery-draw-results-history.cjs",[[1,"lottery-draw-results-history",{"endpoint":[1],"gameId":[1,"game-id"],"numberOfResults":[2,"number-of-results"],"language":[1],"drawData":[32],"displayAllDrawsResults":[32],"showQuickFilters":[32],"winningDataSetsData":[32]},[[0,"filterSelection","filtersHandler"],[0,"filterSelectionReset","clearFiltersHandler"]]]]],["lottery-ticket.cjs",[[1,"lottery-ticket",{"endpoint":[1],"gameId":[1,"game-id"],"numberOfGrids":[2,"number-of-grids"],"multipleDraws":[4,"multiple-draws"],"ticketId":[2,"ticket-id"],"resetButton":[4,"reset-button"],"autoPick":[4,"auto-pick"],"language":[1],"multiplier":[32],"numberOfDraws":[32],"isLoading":[32],"hasErrors":[32],"ticketDone":[32]},[[0,"gridFilled","gridFilledHandler"]]]]],["lottery-ticket-controller.cjs",[[1,"lottery-ticket-controller",{"endpoint":[1],"ticketId":[2,"ticket-id"],"ticketDescription":[1,"ticket-description"],"gameId":[1,"game-id"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"numberOfGrids":[2,"number-of-grids"],"last":[4],"language":[1],"autoPick":[4,"auto-pick"],"resetButton":[4,"reset-button"]},[[0,"helperAccordionAction","helperAccordionActionHandler"]]]]],["helper-tabs.cjs",[[1,"helper-tabs",{"disabled":[4],"label":[1],"selected":[4],"cmsEndpoint":[1,"cms-endpoint"],"selectedIndex":[1538,"selected-index"],"tabs":[16]}]]],["helper-accordion.cjs",[[1,"helper-accordion",{"headerTitle":[1,"header-title"],"headerSubtitle":[1,"header-subtitle"],"description":[1],"footer":[4],"deleteTab":[4,"delete-tab"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"language":[1],"showContent":[32]}]]],["helper-tab.cjs",[[1,"helper-tab",{"selectedIndex":[2,"selected-index"],"cmsEndpoint":[1,"cms-endpoint"]}]]],["lottery-game-details.cjs",[[1,"lottery-game-details"]]],["helper-modal.cjs",[[1,"helper-modal",{"titleModal":[1,"title-modal"],"visible":[1540]}]]]], options);
19
19
  });
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-81cb3b3b.js');
6
+
7
+ const lotteryTicketControllerCss = ":host{display:block}";
8
+
9
+ const LotteryTicketController = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.deleteTicketEvent = index.createEvent(this, "deleteTicket", 7);
13
+ /**
14
+ * Endpoint URL for the source of data (NorWAy standard)
15
+ */
16
+ this.endpoint = '';
17
+ /**
18
+ * Ticket number
19
+ */
20
+ this.ticketId = 1;
21
+ /**
22
+ * Activates postMessages as events for actions from the widget
23
+ */
24
+ this.postMessage = false;
25
+ /**
26
+ * Name of the event emitter by the action button
27
+ */
28
+ this.eventName = 'deleteTicketAction';
29
+ /**
30
+ * Collapsed
31
+ */
32
+ this.collapsed = true;
33
+ /**
34
+ * Number of grids?
35
+ */
36
+ this.numberOfGrids = 1;
37
+ /**
38
+ * This toggles if the last ticket added should be expanded or not
39
+ */
40
+ this.last = false;
41
+ /**
42
+ * Language
43
+ */
44
+ this.language = 'en';
45
+ /**
46
+ * Shows the auto-pick button
47
+ */
48
+ this.autoPick = false;
49
+ /**
50
+ * Shows the reset button
51
+ */
52
+ this.resetButton = false;
53
+ }
54
+ // @TODO fix the `any` type
55
+ helperAccordionActionHandler() {
56
+ if (this.postMessage) {
57
+ window.postMessage({ type: this.eventName }, window.location.href);
58
+ }
59
+ this.deleteTicketEvent.emit({
60
+ ticketId: this.ticketId
61
+ });
62
+ }
63
+ render() {
64
+ return (index.h("div", null, index.h("helper-accordion", { "header-title": 'Ticket ' + this.ticketId, "header-subtitle": this.ticketDescription, footer: true, "delete-tab": true, collapsed: !this.last || this.collapsed, language: this.language }, index.h("div", { slot: "accordionContent" }, index.h("lottery-ticket", { endpoint: this.endpoint, "game-id": this.gameId, "ticket-id": this.ticketId, "number-of-grids": this.numberOfGrids, language: this.language, "reset-button": this.resetButton, "auto-pick": this.autoPick })))));
65
+ }
66
+ };
67
+ LotteryTicketController.style = lotteryTicketControllerCss;
68
+
69
+ exports.lottery_ticket_controller = LotteryTicketController;
@@ -0,0 +1,146 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-81cb3b3b.js');
6
+
7
+ const DEFAULT_LANGUAGE = 'en';
8
+ const SUPPORTED_LANGUAGES = ['ro', 'en'];
9
+ const TRANSLATIONS = {
10
+ en: {
11
+ loading: 'Loading, please wait ...',
12
+ error: 'It was an error while trying to fetch the data',
13
+ grid: 'Grid',
14
+ multiplier: 'Multiplier',
15
+ numberOfDraws: 'Number of draws',
16
+ wagerPerDraw: 'Wager per draw',
17
+ resetButton: 'Reset',
18
+ autoButton: 'I feel lucky'
19
+ },
20
+ ro: {
21
+ loading: 'Se incarca, va rugam asteptati ...',
22
+ error: 'A fost o eroare in timp ce asteptam datele',
23
+ grid: 'Grid',
24
+ multiplier: 'Multiplicator',
25
+ numberOfDraws: 'Numarul de extrageri',
26
+ wagerPerDraw: 'Pariul per extragere',
27
+ resetButton: 'Reseteaza',
28
+ autoButton: 'Ma simt norocos'
29
+ },
30
+ };
31
+ const translate = (key, customLang) => {
32
+ const lang = customLang;
33
+ return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
34
+ };
35
+
36
+ const lotteryTicketCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.Toggle{cursor:pointer;margin-top:20px;display:inline-block}.ToggleSwitch{display:inline-block;background:#707070;border-radius:16px;width:58px;height:24px;position:relative;vertical-align:middle;transition:background 0.25s}.ToggleSwitch:before,.ToggleSwitch:after{content:\"\"}.ToggleSwitch:before{display:block;background:linear-gradient(to bottom, #fff 0%, #F1F1F1 100%);border-radius:50%;box-shadow:0 0 0 1px rgba(0, 0, 0, 0.25);width:16px;height:16px;position:absolute;top:4px;left:4px;transition:left 0.25s}.Toggle:hover .ToggleSwitch:before{background:linear-gradient(to bottom, #fff 0%, #fff 100%);box-shadow:0 0 0 1px rgba(0, 0, 0, 0.5)}.ToggleCheckbox:checked+.ToggleSwitch{background:#00ABA4}.ToggleCheckbox:checked+.ToggleSwitch:before{left:38px}.ToggleCheckbox{position:absolute;visibility:hidden}.Label{margin-right:5px;position:relative;top:2px;font-size:14px;font-weight:lighter;color:#000}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}.NumberInput,.WagerInput{margin-top:10px;display:inline-flex;align-items:center}.NumberInput,.NumberInput *{box-sizing:border-box}.NumberInput button{cursor:pointer;outline:none;-webkit-appearance:none;background-color:transparent;border:none;align-items:center;justify-content:center;height:20px;margin:0;position:relative}.NumberInput button:after{display:inline-block;position:absolute;transform:translate(-50%, -50%) rotate(180deg);width:30px;align-items:center;text-align:center}.NumberInput button.Plus:after{transform:translate(-50%, -50%) rotate(0deg);width:30px;display:inline-flex;align-items:center;text-align:center}.NumberInput input[type=number],.WagerInput input[type=number]{max-width:50px;display:inline-flex;align-items:center;padding:4px 10px;text-align:center}.NumberInput input[type=number] .WagerInputTitle,.WagerInput input[type=number] .WagerInputTitle{font-size:14px;color:#000;padding:10px}.InputDefault{background-color:#F1F1F1;border-radius:4px;padding:5px;border:solid 1px #D4D4D4;color:#707070}.AutoButton{cursor:pointer;display:block;border-radius:4px;padding:8px 25px;width:max-content;margin:5px 0;border:1px solid #00958f;background:#FFF;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.AutoButton:active{background:#00958f;color:#FFF}.ResetButton{cursor:pointer;display:block;border-radius:4px;padding:8px 25px;width:max-content;margin:5px 0;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0;background:#FF3D00;border:1px solid #FF3D00;color:#FFF}.ResetButton:hover{background:#FF6536;border:1px solid #FF3D00}.TicketGridBullets{background:#f1f1f1;border-radius:4px;padding:20px;margin-top:5px}.TicketGridBullets .TicketGridTitle{margin-top:0px}";
37
+
38
+ const LotteryTicket = class {
39
+ constructor(hostRef) {
40
+ index.registerInstance(this, hostRef);
41
+ this.ticketCompleted = index.createEvent(this, "ticketCompleted", 7);
42
+ this.autoSelection = index.createEvent(this, "autoSelection", 7);
43
+ this.resetSelection = index.createEvent(this, "resetSelection", 7);
44
+ this.stakeChange = index.createEvent(this, "stakeChange", 7);
45
+ this.multiplierChange = index.createEvent(this, "multiplierChange", 7);
46
+ /**
47
+ * Number of grids of a ticket
48
+ */
49
+ this.numberOfGrids = 1;
50
+ /**
51
+ * Option to have the ticket registered for multiple draws
52
+ */
53
+ this.multipleDraws = true;
54
+ /**
55
+ * Shows the reset button
56
+ */
57
+ this.resetButton = false;
58
+ /**
59
+ * Shows the auto-pick button
60
+ */
61
+ this.autoPick = false;
62
+ /**
63
+ * Language
64
+ */
65
+ this.language = 'en';
66
+ this.multiplier = false;
67
+ this.numberOfDraws = 1;
68
+ this.isLoading = true;
69
+ this.hasErrors = false;
70
+ this.ticketDone = false;
71
+ }
72
+ connectedCallback() {
73
+ let url = new URL(`${this.endpoint}/games/${this.gameId}`);
74
+ fetch(url.href)
75
+ .then((response) => {
76
+ if (response.ok) {
77
+ return response.json();
78
+ }
79
+ else {
80
+ // Throw error
81
+ this.hasErrors = true;
82
+ }
83
+ })
84
+ .then((data) => {
85
+ this.isLoading = false;
86
+ this.gameData = data;
87
+ this.grids = [...Array(data.rules.boards.length).keys()];
88
+ })
89
+ .catch((err) => {
90
+ this.isLoading = false;
91
+ this.hasErrors = true;
92
+ console.error('Error!', err);
93
+ });
94
+ }
95
+ multiplierChangeHandler(e) {
96
+ this.multiplier = e.target ? e.target.checked : false;
97
+ this.multiplierChange.emit(this.multiplier);
98
+ }
99
+ drawsChangeHandler(event) {
100
+ this.ticket = Object.assign(Object.assign({}, this.ticket), { draws: event });
101
+ this.ticketCompleted.emit(this.ticket);
102
+ }
103
+ gridFilledHandler(event) {
104
+ this.ticket = Object.assign(Object.assign({}, event.detail), { draws: this.numberOfDraws });
105
+ this.ticketDone = true;
106
+ this.ticketCompleted.emit(this.ticket);
107
+ }
108
+ toggleAutoSelection() {
109
+ this.ticketDone = true;
110
+ this.autoSelection.emit(this.ticketId);
111
+ }
112
+ toggleResetSelection() {
113
+ this.ticketDone = false;
114
+ this.resetSelection.emit(this.ticketId);
115
+ }
116
+ changeStake(event) {
117
+ this.stakeChange.emit({
118
+ ticketId: this.ticketId,
119
+ stake: event.target.value
120
+ });
121
+ }
122
+ render() {
123
+ if (this.isLoading) {
124
+ return (index.h("div", null, index.h("p", null, translate('loading', this.language))));
125
+ }
126
+ else {
127
+ if (this.hasErrors) {
128
+ return (index.h("div", null, index.h("p", null, translate('error', this.language))));
129
+ }
130
+ else {
131
+ const { rules } = this.gameData;
132
+ return (index.h("div", { class: "TicketContainer" }, index.h("p", null, this.gameData.name), this.resetButton && this.ticketDone &&
133
+ index.h("a", { class: "ResetButton", onClick: () => this.toggleResetSelection() }, translate('resetButton', this.language)), this.autoPick && !this.ticketDone &&
134
+ index.h("a", { class: "AutoButton", onClick: () => this.toggleAutoSelection() }, translate('autoButton', this.language)), this.grids.map((item, index$1) => index.h("div", { class: "TicketGridBullets" }, index.h("p", { class: "TicketGridTitle" }, translate('grid', this.language), " ", item), index.h("lottery-grid", { "grid-index": index$1, "maximum-allowed": rules.boards[index$1].maximumAllowed, "minimum-allowed": rules.boards[index$1].minimumAllowed, "total-numbers": rules.boards[index$1].totalNumbers, selectable: true, "reset-button": true, "auto-pick": true, "game-id": this.gameId, "ticket-id": this.ticketId, language: this.language }))), rules.multiplier &&
135
+ index.h("div", null, index.h("label", { class: "Toggle" }, index.h("label", { class: "Label" }, translate('multiplier', this.language), ": "), index.h("input", { class: "ToggleCheckbox", type: "checkbox", onInput: (e) => this.multiplierChangeHandler(e) }), index.h("div", { class: "ToggleSwitch" }))), this.multipleDraws &&
136
+ index.h("div", { class: "TicketDraws" }, index.h("label", { class: "Label" }, translate('numberOfDraws', this.language), ": "), index.h("div", { class: "NumberInput" }, index.h("button", { onClick: () => this.numberOfDraws > 1 ? this.numberOfDraws-- : this.numberOfDraws = 1, class: "Minus" }, "-"), index.h("input", { class: "InputDefault", min: "1", value: this.numberOfDraws, type: "number" }), index.h("button", { onClick: () => this.numberOfDraws++, class: "Plus" }, "+"))), index.h("label", { class: "Label" }, translate('wagerPerDraw', this.language), ": "), index.h("div", { class: "WagerInput" }, rules.stakes.length > 1 ? index.h("div", null, index.h("select", { class: "InputDefault", onChange: (event) => this.changeStake(event) }, rules.stakes.map((item) => index.h("option", { value: item.amount }, item.amount, " ", item.currency)))) : index.h("div", null, index.h("input", { min: "1", value: rules.stakes[0].amount, type: "number", disabled: true }), index.h("p", { class: "WagerInputTitle" }, rules.stakes[0].currency)))));
137
+ }
138
+ }
139
+ }
140
+ static get watchers() { return {
141
+ "numberOfDraws": ["drawsChangeHandler"]
142
+ }; }
143
+ };
144
+ LotteryTicket.style = lotteryTicketCss;
145
+
146
+ exports.lottery_ticket = LotteryTicket;
@@ -82,5 +82,11 @@
82
82
  ]
83
83
  }
84
84
  ],
85
- "bundles": []
85
+ "bundles": [
86
+ {
87
+ "components": [
88
+ "lottery-game-page"
89
+ ]
90
+ }
91
+ ]
86
92
  }
@@ -106,5 +106,6 @@ function defineCustomElement() {
106
106
  break;
107
107
  } });
108
108
  }
109
+ defineCustomElement();
109
110
 
110
111
  export { Accordion as A, defineCustomElement as d };
@@ -22343,5 +22343,6 @@ function defineCustomElement() {
22343
22343
  break;
22344
22344
  } });
22345
22345
  }
22346
+ defineCustomElement();
22346
22347
 
22347
22348
  export { HelperFilters as H, defineCustomElement as d };
@@ -54,5 +54,6 @@ function defineCustomElement() {
54
54
  break;
55
55
  } });
56
56
  }
57
+ defineCustomElement();
57
58
 
58
59
  export { HelperModal as H, defineCustomElement as d };
@@ -208,6 +208,7 @@ function defineCustomElement$1() {
208
208
  break;
209
209
  } });
210
210
  }
211
+ defineCustomElement$1();
211
212
 
212
213
  const HelperPagination = HelperPagination$1;
213
214
  const defineCustomElement = defineCustomElement$1;
@@ -43,5 +43,6 @@ function defineCustomElement() {
43
43
  break;
44
44
  } });
45
45
  }
46
+ defineCustomElement();
46
47
 
47
48
  export { HelperTab as H, defineCustomElement as d };
@@ -58,5 +58,6 @@ function defineCustomElement() {
58
58
  break;
59
59
  } });
60
60
  }
61
+ defineCustomElement();
61
62
 
62
63
  export { HelperTabs as H, defineCustomElement as d };
@@ -52,5 +52,6 @@ function defineCustomElement() {
52
52
  break;
53
53
  } });
54
54
  }
55
+ defineCustomElement();
55
56
 
56
57
  export { LotteryBullet as L, defineCustomElement as d };
@@ -170,5 +170,6 @@ function defineCustomElement() {
170
170
  break;
171
171
  } });
172
172
  }
173
+ defineCustomElement();
173
174
 
174
175
  export { LotteryDrawResultsHistory as L, defineCustomElement as d };
@@ -213,5 +213,6 @@ function defineCustomElement() {
213
213
  break;
214
214
  } });
215
215
  }
216
+ defineCustomElement();
216
217
 
217
218
  export { LotteryDrawResults as L, defineCustomElement as d };