@everymatrix/lottery-game-page 0.1.24 → 0.1.26

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 (69) hide show
  1. package/dist/cjs/helper-accordion.cjs.entry.js +1 -7
  2. package/dist/cjs/helper-filters_2.cjs.entry.js +3 -74
  3. package/dist/cjs/helper-modal.cjs.entry.js +1 -1
  4. package/dist/cjs/helper-pagination.cjs.entry.js +1 -13
  5. package/dist/cjs/helper-tab.cjs.entry.js +1 -1
  6. package/dist/cjs/helper-tabs.cjs.entry.js +1 -1
  7. package/dist/cjs/{index-7b63209d.js → index-cd44e726.js} +30 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/lottery-bullet_2.cjs.entry.js +1 -1
  10. package/dist/cjs/lottery-draw-results-history.cjs.entry.js +2 -28
  11. package/dist/cjs/lottery-game-details.cjs.entry.js +1 -1
  12. package/dist/cjs/lottery-game-page.cjs.entry.js +38 -16
  13. package/dist/cjs/lottery-game-page.cjs.js +1 -1
  14. package/dist/cjs/lottery-ticket-controller.cjs.entry.js +2 -8
  15. package/dist/cjs/lottery-ticket.cjs.entry.js +1 -21
  16. package/dist/collection/components/lottery-game-page/lottery-game-page.js +29 -19
  17. package/dist/collection/components/lottery-game-page/static/chrono_desktop.png +0 -0
  18. package/dist/collection/components/lottery-game-page/static/chrono_lottery_mobile.png +0 -0
  19. package/dist/components/helper-accordion2.js +0 -6
  20. package/dist/components/helper-filters2.js +0 -26
  21. package/dist/components/helper-pagination.js +0 -12
  22. package/dist/components/lottery-draw-results-history2.js +1 -27
  23. package/dist/components/lottery-draw-results2.js +2 -47
  24. package/dist/components/lottery-game-page.js +38 -16
  25. package/dist/components/lottery-ticket-controller2.js +1 -7
  26. package/dist/components/lottery-ticket2.js +0 -20
  27. package/dist/esm/helper-accordion.entry.js +1 -7
  28. package/dist/esm/helper-filters_2.entry.js +3 -74
  29. package/dist/esm/helper-modal.entry.js +1 -1
  30. package/dist/esm/helper-pagination.entry.js +1 -13
  31. package/dist/esm/helper-tab.entry.js +1 -1
  32. package/dist/esm/helper-tabs.entry.js +1 -1
  33. package/dist/esm/{index-0f8edfd2.js → index-d1baacd4.js} +30 -1
  34. package/dist/esm/loader.js +1 -1
  35. package/dist/esm/lottery-bullet_2.entry.js +1 -1
  36. package/dist/esm/lottery-draw-results-history.entry.js +2 -28
  37. package/dist/esm/lottery-game-details.entry.js +1 -1
  38. package/dist/esm/lottery-game-page.entry.js +38 -16
  39. package/dist/esm/lottery-game-page.js +1 -1
  40. package/dist/esm/lottery-ticket-controller.entry.js +2 -8
  41. package/dist/esm/lottery-ticket.entry.js +1 -21
  42. package/dist/lottery-game-page/lottery-game-page.esm.js +1 -1
  43. package/dist/lottery-game-page/{p-e816baee.entry.js → p-023325a2.entry.js} +1 -1
  44. package/dist/lottery-game-page/{p-4098d6d4.entry.js → p-04fbc8fd.entry.js} +1 -1
  45. package/dist/lottery-game-page/p-256b151c.entry.js +1 -0
  46. package/dist/lottery-game-page/p-381b5507.entry.js +1 -0
  47. package/dist/lottery-game-page/{p-800590f3.entry.js → p-3f8b6ad9.entry.js} +1 -1
  48. package/dist/lottery-game-page/p-4274053c.entry.js +1 -0
  49. package/dist/lottery-game-page/p-4f81cd37.entry.js +1 -0
  50. package/dist/lottery-game-page/p-5c389034.entry.js +1 -0
  51. package/dist/lottery-game-page/p-7d06371e.entry.js +1 -0
  52. package/dist/lottery-game-page/{p-c8162ede.entry.js → p-ca8430a0.entry.js} +50 -50
  53. package/dist/lottery-game-page/{p-97048566.entry.js → p-d6f76e8d.entry.js} +1 -1
  54. package/dist/lottery-game-page/p-e765c7d9.js +1 -0
  55. package/dist/lottery-game-page/{p-07f98587.entry.js → p-f6fcc22c.entry.js} +1 -1
  56. package/dist/lottery-game-page/static/chrono_desktop.png +0 -0
  57. package/dist/lottery-game-page/static/chrono_lottery_mobile.png +0 -0
  58. package/dist/types/Users/user/workspace/everymatrix/widgets-stencil/packages/lottery-game-page/.stencil/packages/lottery-game-page/stencil.config.d.ts +2 -0
  59. package/dist/types/components/lottery-game-page/lottery-game-page.d.ts +2 -0
  60. package/dist/types/components.d.ts +2 -2
  61. package/package.json +1 -1
  62. package/dist/lottery-game-page/p-01132729.entry.js +0 -1
  63. package/dist/lottery-game-page/p-807dda48.entry.js +0 -1
  64. package/dist/lottery-game-page/p-a21ecd5f.entry.js +0 -1
  65. package/dist/lottery-game-page/p-b44e49d7.entry.js +0 -1
  66. package/dist/lottery-game-page/p-b4e2988a.js +0 -1
  67. package/dist/lottery-game-page/p-d91fc066.entry.js +0 -1
  68. package/dist/lottery-game-page/p-fc4ea90d.entry.js +0 -1
  69. package/dist/types/Users/dragos.bodea/Documents/everymatrix-prjs/stencil/widgets-stencil/packages/lottery-game-page/.stencil/packages/lottery-game-page/stencil.config.d.ts +0 -2
@@ -1,6 +1,6 @@
1
- import { Component, h, Prop, State, Listen, Element, /*getAssetPath */ } from '@stencil/core';
1
+ import { Component, h, Prop, State, Listen, Element, Watch, getAssetPath } from '@stencil/core';
2
2
  import { translate } from '../../utils/locale.utils';
3
- // import { isMobile } from "../../utils/utils";
3
+ import { isMobile } from "../../utils/utils";
4
4
  import '@everymatrix/lottery-ticket-controller';
5
5
  import '@everymatrix/helper-modal';
6
6
  import '@everymatrix/lottery-game-details';
@@ -40,6 +40,8 @@ export class LotteryGamePage {
40
40
  this.isLoggedIn = false;
41
41
  this.loginModalVisible = false;
42
42
  this.limitStylingAppends = false;
43
+ // @TODO fix any type
44
+ this.userAgent = window.navigator.userAgent;
43
45
  this.multiplier = false;
44
46
  this.quickPick = false;
45
47
  this.setClientStyling = () => {
@@ -63,10 +65,12 @@ export class LotteryGamePage {
63
65
  };
64
66
  }
65
67
  // @TODO fix `any` type later, I'm lazy now
68
+ handleSessionIdValue() {
69
+ this.isLoggedIn = true;
70
+ }
66
71
  connectedCallback() {
67
72
  this.getGameDetails();
68
73
  this.getDraws();
69
- console.log(this.language);
70
74
  if (this.sessionId) {
71
75
  this.isLoggedIn = true;
72
76
  }
@@ -83,12 +87,14 @@ export class LotteryGamePage {
83
87
  // end custom styling area
84
88
  }
85
89
  countdownLogic(date) {
86
- this.interval = setInterval(() => {
87
- this.daysRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60 * 24));
88
- this.hoursRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60) - this.daysRemaining * 24);
89
- this.minutesRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60) - this.daysRemaining * 24 * 60 - this.hoursRemaining * 60);
90
- this.secondsRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / 1000 - this.daysRemaining * 24 * 60 * 60 - this.hoursRemaining * 60 * 60 - this.minutesRemaining * 60);
91
- }, 1000);
90
+ if (date) {
91
+ this.interval = setInterval(() => {
92
+ this.daysRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60 * 24));
93
+ this.hoursRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60) - this.daysRemaining * 24);
94
+ this.minutesRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60) - this.daysRemaining * 24 * 60 - this.hoursRemaining * 60);
95
+ this.secondsRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / 1000 - this.daysRemaining * 24 * 60 * 60 - this.hoursRemaining * 60 * 60 - this.minutesRemaining * 60);
96
+ }, 1000);
97
+ }
92
98
  }
93
99
  disconnectedCallback() {
94
100
  clearInterval(this.interval);
@@ -194,20 +200,20 @@ export class LotteryGamePage {
194
200
  return response.json();
195
201
  })
196
202
  .then((data) => {
197
- var _a;
203
+ var _a, _b;
198
204
  let upcoming = data.items.filter((item) => {
199
205
  if (Date.parse(item.date) > new Date().getTime()) {
200
206
  return !item.winningNumbers;
201
207
  }
202
208
  });
203
209
  let past = data.items.filter((item) => item.winningNumbers);
204
- this.latestDraw = upcoming[0];
205
- this.nextDate = this.latestDraw.date;
206
- this.countdownLogic(this.nextDate);
210
+ this.latestDraw = upcoming[0] || {};
211
+ this.nextDate = (_a = this.latestDraw) === null || _a === void 0 ? void 0 : _a.date;
212
+ this.countdownLogic(this.nextDate || '');
207
213
  this.lastDrawId = past[past.length - 1].id;
208
214
  // calculate total winnings
209
215
  // @TODO fix any type
210
- (_a = this.latestDraw) === null || _a === void 0 ? void 0 : _a.prizes.forEach((element) => {
216
+ (_b = this.latestDraw) === null || _b === void 0 ? void 0 : _b.prizes.forEach((element) => {
211
217
  this.totalWinningsAmount += JSON.parse(element.amount);
212
218
  });
213
219
  })
@@ -282,8 +288,8 @@ export class LotteryGamePage {
282
288
  this.successVisible = true;
283
289
  }
284
290
  render() {
285
- // const backgroundSrc = getAssetPath('./static/chrono_lottery_mobile.png');
286
- // const backgroundDesktopSrc = getAssetPath('./static/chrono_desktop.png');
291
+ const backgroundSrc = getAssetPath('./static/chrono_lottery_mobile.png');
292
+ const backgroundDesktopSrc = getAssetPath('./static/chrono_desktop.png');
287
293
  if (this.hasErrors) {
288
294
  return (h("div", { class: "GamePage" },
289
295
  h("div", { class: "Title" }, translate('error', this.language))));
@@ -291,7 +297,7 @@ export class LotteryGamePage {
291
297
  return (
292
298
  /* Game details */
293
299
  h("div", { class: "GamePage", dir: this.language == 'ar' ? 'rtl' : 'ltr', ref: el => this.stylingContainer = el },
294
- h("div", { class: "GridBanner" },
300
+ h("div", { class: "GridBanner", style: { backgroundImage: isMobile(this.userAgent) ? `url(${backgroundSrc})` : `url(${backgroundDesktopSrc})` } },
295
301
  h("div", { class: "BannerButtonsWrapper" },
296
302
  h("button", { class: "BannerBackButton" },
297
303
  h("span", { class: "BannerBackButtonArrow" }, "\u1438 "),
@@ -385,7 +391,7 @@ export class LotteryGamePage {
385
391
  "resolved": "string",
386
392
  "references": {}
387
393
  },
388
- "required": false,
394
+ "required": true,
389
395
  "optional": false,
390
396
  "docs": {
391
397
  "tags": [],
@@ -402,7 +408,7 @@ export class LotteryGamePage {
402
408
  "resolved": "string",
403
409
  "references": {}
404
410
  },
405
- "required": false,
411
+ "required": true,
406
412
  "optional": false,
407
413
  "docs": {
408
414
  "tags": [],
@@ -557,6 +563,10 @@ export class LotteryGamePage {
557
563
  "limitStylingAppends": {}
558
564
  }; }
559
565
  static get elementRef() { return "element"; }
566
+ static get watchers() { return [{
567
+ "propName": "sessionId",
568
+ "methodName": "handleSessionIdValue"
569
+ }]; }
560
570
  static get listeners() { return [{
561
571
  "name": "ticketCompleted",
562
572
  "method": "gridFilledHandler",
@@ -9,12 +9,6 @@ const TRANSLATIONS = {
9
9
  ro: {
10
10
  deleteTicket: 'Sterge biletul'
11
11
  },
12
- fr: {
13
- deleteTicket: 'Supprimer le billet'
14
- },
15
- ar: {
16
- deleteTicket: 'حذف التذكرة'
17
- }
18
12
  };
19
13
  const translate = (key, customLang) => {
20
14
  const lang = customLang;
@@ -28,32 +28,6 @@ const TRANSLATIONS = {
28
28
  filterModalButton: 'Cauta',
29
29
  filterOrDate: 'sau cauta dupa data'
30
30
  },
31
- fr: {
32
- filterOpen: 'Filter',
33
- filterClear: 'Clear',
34
- filterModalTicketTitle: 'Ticket Results',
35
- filterModalDrawTitle: 'Draws Results History',
36
- filterTicketPlaceholder: 'Search for a ticket ID',
37
- filterDrawPlaceholder: 'Search for a draw ID',
38
- filterDateRangePlaceholder: 'Date Range',
39
- filterModalButton: 'Search',
40
- filterFromCalendar: 'From',
41
- filterToCalendar: 'To',
42
- filterOrDate: 'or search by date'
43
- },
44
- ar: {
45
- filterOpen: 'Filter',
46
- filterClear: 'Clear',
47
- filterModalTicketTitle: 'Ticket Results',
48
- filterModalDrawTitle: 'Draws Results History',
49
- filterTicketPlaceholder: 'Search for a ticket ID',
50
- filterDrawPlaceholder: 'Search for a draw ID',
51
- filterDateRangePlaceholder: 'Date Range',
52
- filterModalButton: 'Search',
53
- filterFromCalendar: 'From',
54
- filterToCalendar: 'To',
55
- filterOrDate: 'or search by date'
56
- }
57
31
  };
58
32
  const translate$1 = (key, customLang) => {
59
33
  const lang = customLang;
@@ -28,18 +28,6 @@ const TRANSLATIONS = {
28
28
  nextPage: 'Urmatoarea',
29
29
  lastPage: 'Ultima'
30
30
  },
31
- fr: {
32
- firstPage: 'First',
33
- previousPage: 'Previous',
34
- nextPage: 'Next',
35
- lastPage: 'Last'
36
- },
37
- ar: {
38
- firstPage: 'First',
39
- previousPage: 'Previous',
40
- nextPage: 'Next',
41
- lastPage: 'Last'
42
- }
43
31
  };
44
32
  const translate = (key, customLang) => {
45
33
  const lang = customLang;
@@ -6,7 +6,7 @@ import { d as defineCustomElement$2 } from './lottery-draw-results2.js';
6
6
  import { d as defineCustomElement$1 } from './lottery-grid2.js';
7
7
 
8
8
  const DEFAULT_LANGUAGE = 'en';
9
- const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'ar'];
9
+ const SUPPORTED_LANGUAGES = ['ro', 'en'];
10
10
  const TRANSLATIONS = {
11
11
  en: {
12
12
  drawResultsHeader: 'Draw results history',
@@ -34,32 +34,6 @@ const TRANSLATIONS = {
34
34
  noResults: 'Niciun rezultat',
35
35
  fetchingResults: 'Se obtin rezultatele'
36
36
  },
37
- fr: {
38
- drawResultsHeader: 'Dessiner l\'historique des résultats',
39
- drawId: 'ID de tirage',
40
- drawDate: 'Date du tirage',
41
- drawNumbersGridA: 'Tirage des numéros Grille',
42
- viewAllResults: 'Voir tout',
43
- lastFiveDraws: '5 derniers tirages',
44
- lastTenDraws: '10 derniers tirages',
45
- lastFifteenDraws: '15 derniers tirages',
46
- allDrawResultsHistory: 'Historique des résultats de tous les tirages',
47
- noResults: 'Aucun résultat',
48
- fetchingResults: 'Récupération des résultats'
49
- },
50
- ar: {
51
- drawResultsHeader: 'سجل نتائج السحب',
52
- drawId: 'معرّف السحب',
53
- drawDate: 'تاريخ السحب',
54
- drawNumbersGridA: 'شبكة أرقام السحب',
55
- viewAllResults: 'عرض الكل',
56
- lastFiveDraws: 'آخر 5 سحوبات',
57
- lastTenDraws: 'آخر 10 سحوبات',
58
- lastFifteenDraws: 'آخر 15 سحبًا',
59
- allDrawResultsHistory: 'سجل نتائج كل السحوبات',
60
- noResults: 'لا توجد نتائج',
61
- fetchingResults: 'جلب النتائج'
62
- }
63
37
  };
64
38
  const translate = (key, customLang) => {
65
39
  const lang = customLang;
@@ -39,40 +39,6 @@ const TRANSLATIONS = {
39
39
  ticketAmount: 'Valoarea biletului',
40
40
  winUpTo: 'Poti castiga'
41
41
  },
42
- fr: {
43
- drawResultsHeader: 'Résultats du dernier tirage',
44
- drawId: 'ID de tirage',
45
- drawName: 'Nom du jeu',
46
- drawDate: 'Date du tirage',
47
- drawNumbersGridDraw: 'Tirage des numéros Grille',
48
- drawNumbersGridTicket: 'Tirage des numéros Grille',
49
- ticketResult: 'Résultat du ticket',
50
- amountWon: 'Montant gagné',
51
- numberOfDraws: 'Nombre de tirages',
52
- multiplier: 'Multiplicateur',
53
- ticketPurchaseDate: 'Date d\'achat du billet',
54
- ticketStatus: 'Statut du ticket',
55
- ticketId: 'ID de billets',
56
- ticketAmount: 'Montant du billet',
57
- winUpTo: 'Gagnez jusqu\'à'
58
- },
59
- ar: {
60
- drawResultsHeader: 'نتائج آخر سحب',
61
- drawId: 'معرّف السحب',
62
- drawName: 'اسم اللعبة',
63
- drawDate: 'تاريخ السحب',
64
- drawNumbersGridDraw: 'شبكة أرقام السحب',
65
- drawNumbersGridTicket: 'شبكة أرقام السحب',
66
- ticketResult: 'نتيجة التذكرة',
67
- amountWon: 'المبلغ الذي تم ربحه',
68
- numberOfDraws: 'عدد السحوبات',
69
- multiplier: 'مضاعف',
70
- ticketPurchaseDate: 'تاريخ شراء التذكرة',
71
- ticketStatus: 'حالة التذكرة',
72
- ticketId: 'معرّف التذكرة',
73
- ticketAmount: 'مبلغ التذكرة',
74
- winUpTo: 'ربح يصل إلى'
75
- }
76
42
  };
77
43
  const translate = (key, customLang) => {
78
44
  const lang = customLang;
@@ -173,8 +139,7 @@ const LotteryDrawResults = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
173
139
  this.ticketDataLoaded = true;
174
140
  }
175
141
  return this.ticketData;
176
- })
177
- .then((response) => {
142
+ }).then((response) => {
178
143
  response.forEach(ticket => {
179
144
  if (ticket.drawResults.length) {
180
145
  ticket.drawResults.forEach(draw => {
@@ -187,20 +152,13 @@ const LotteryDrawResults = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
187
152
  if (!this.ticketDraws.some(el => el.drawId === draw.drawId)) {
188
153
  this.ticketDraws.push({ drawId: draw.drawId, drawNumbers: data.winningNumbers });
189
154
  }
190
- })
191
- .catch((err) => {
192
- console.log('error ', err);
193
155
  });
194
156
  });
195
157
  }
196
158
  return this.ticketDraws;
197
159
  });
198
- })
199
- .then(() => {
160
+ }).then(() => {
200
161
  this.hasDrawNumbers = true;
201
- })
202
- .catch((err) => {
203
- console.log('error ', err);
204
162
  });
205
163
  };
206
164
  this.changeBox = (index) => {
@@ -239,9 +197,6 @@ const LotteryDrawResults = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
239
197
  Promise.all(promises)
240
198
  .then(() => {
241
199
  this.isLoading = false;
242
- }).catch((err) => {
243
- console.log('error ', err);
244
- this.isLoading = false;
245
200
  });
246
201
  }
247
202
  componentDidRender() {
@@ -1,4 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, getAssetPath, h } from '@stencil/core/internal/client';
2
2
  import { d as defineCustomElement$d } from './helper-accordion2.js';
3
3
  import { d as defineCustomElement$c } from './helper-filters2.js';
4
4
  import { d as defineCustomElement$b } from './helper-modal2.js';
@@ -113,6 +113,19 @@ const translate = (key, customLang) => {
113
113
  return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
114
114
  };
115
115
 
116
+ /**
117
+ * @name isMobile
118
+ * @description A method that returns if the browser used to access the app is from a mobile device or not
119
+ * @param {String} userAgent window.navigator.userAgent
120
+ * @returns {Boolean} true or false
121
+ */
122
+ const isMobile = (userAgent) => {
123
+ return !!(userAgent.toLowerCase().match(/android/i) ||
124
+ userAgent.toLowerCase().match(/blackberry|bb/i) ||
125
+ userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
126
+ userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
127
+ };
128
+
116
129
  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:#000;font-size:18px;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px;text-transform:uppercase}.GamePage .TotalWinnings span{font-size:18px;font-weight:700}.GamePage .NextDraw{color:#00958f;font-size:24px;font-weight:600;margin:0 auto;text-align:center;text-transform:uppercase;display:flex;justify-content:center;align-items:center;flex-direction:column}.GamePage .NextDraw .BannerText{font-weight:400;font-size:18px;text-transform:uppercase;padding:0;margin:15px 0 0 0}.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:#00958f;color:#fff;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.GamePage .Tabs .TabButton.Active{color:#00958f;background:#F1F1F1;border:1px solid #F1F1F1}.LastDrawResultsTitle{color:#009993;padding:25px 0 10px 0;text-align:center;border-radius:4px;text-transform:uppercase;font-size:16px;font-weight:600;margin:0}.NextDrawWrapper{padding:10px 15px;background:#F1F1F1;background:linear-gradient(0deg, #f1f1f1 0%, rgba(253, 187, 45, 0) 100%)}.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:15px;max-width:1200px;margin:0 auto}.GameDetails{padding-bottom:10px;margin-bottom:20px}.CreateNewTicket{background:#004D4A;height:100px;width:100%;display:flex;margin-top:10px;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}.ButtonWrapper .Button.ButtonDisabled{pointer-events:none;background:#ccc;border:1px solid #ccc}.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%}}";
117
130
 
118
131
  const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
@@ -152,6 +165,8 @@ const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
152
165
  this.isLoggedIn = false;
153
166
  this.loginModalVisible = false;
154
167
  this.limitStylingAppends = false;
168
+ // @TODO fix any type
169
+ this.userAgent = window.navigator.userAgent;
155
170
  this.multiplier = false;
156
171
  this.quickPick = false;
157
172
  this.setClientStyling = () => {
@@ -175,10 +190,12 @@ const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
175
190
  };
176
191
  }
177
192
  // @TODO fix `any` type later, I'm lazy now
193
+ handleSessionIdValue() {
194
+ this.isLoggedIn = true;
195
+ }
178
196
  connectedCallback() {
179
197
  this.getGameDetails();
180
198
  this.getDraws();
181
- console.log(this.language);
182
199
  if (this.sessionId) {
183
200
  this.isLoggedIn = true;
184
201
  }
@@ -195,12 +212,14 @@ const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
195
212
  // end custom styling area
196
213
  }
197
214
  countdownLogic(date) {
198
- this.interval = setInterval(() => {
199
- this.daysRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60 * 24));
200
- this.hoursRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60) - this.daysRemaining * 24);
201
- this.minutesRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60) - this.daysRemaining * 24 * 60 - this.hoursRemaining * 60);
202
- this.secondsRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / 1000 - this.daysRemaining * 24 * 60 * 60 - this.hoursRemaining * 60 * 60 - this.minutesRemaining * 60);
203
- }, 1000);
215
+ if (date) {
216
+ this.interval = setInterval(() => {
217
+ this.daysRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60 * 24));
218
+ this.hoursRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60) - this.daysRemaining * 24);
219
+ this.minutesRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60) - this.daysRemaining * 24 * 60 - this.hoursRemaining * 60);
220
+ this.secondsRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / 1000 - this.daysRemaining * 24 * 60 * 60 - this.hoursRemaining * 60 * 60 - this.minutesRemaining * 60);
221
+ }, 1000);
222
+ }
204
223
  }
205
224
  disconnectedCallback() {
206
225
  clearInterval(this.interval);
@@ -306,20 +325,20 @@ const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
306
325
  return response.json();
307
326
  })
308
327
  .then((data) => {
309
- var _a;
328
+ var _a, _b;
310
329
  let upcoming = data.items.filter((item) => {
311
330
  if (Date.parse(item.date) > new Date().getTime()) {
312
331
  return !item.winningNumbers;
313
332
  }
314
333
  });
315
334
  let past = data.items.filter((item) => item.winningNumbers);
316
- this.latestDraw = upcoming[0];
317
- this.nextDate = this.latestDraw.date;
318
- this.countdownLogic(this.nextDate);
335
+ this.latestDraw = upcoming[0] || {};
336
+ this.nextDate = (_a = this.latestDraw) === null || _a === void 0 ? void 0 : _a.date;
337
+ this.countdownLogic(this.nextDate || '');
319
338
  this.lastDrawId = past[past.length - 1].id;
320
339
  // calculate total winnings
321
340
  // @TODO fix any type
322
- (_a = this.latestDraw) === null || _a === void 0 ? void 0 : _a.prizes.forEach((element) => {
341
+ (_b = this.latestDraw) === null || _b === void 0 ? void 0 : _b.prizes.forEach((element) => {
323
342
  this.totalWinningsAmount += JSON.parse(element.amount);
324
343
  });
325
344
  })
@@ -394,14 +413,14 @@ const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
394
413
  this.successVisible = true;
395
414
  }
396
415
  render() {
397
- // const backgroundSrc = getAssetPath('./static/chrono_lottery_mobile.png');
398
- // const backgroundDesktopSrc = getAssetPath('./static/chrono_desktop.png');
416
+ const backgroundSrc = getAssetPath('./static/chrono_lottery_mobile.png');
417
+ const backgroundDesktopSrc = getAssetPath('./static/chrono_desktop.png');
399
418
  if (this.hasErrors) {
400
419
  return (h("div", { class: "GamePage" }, h("div", { class: "Title" }, translate('error', this.language))));
401
420
  }
402
421
  return (
403
422
  /* Game details */
404
- h("div", { class: "GamePage", dir: this.language == 'ar' ? 'rtl' : 'ltr', ref: el => this.stylingContainer = el }, h("div", { class: "GridBanner" }, h("div", { class: "BannerButtonsWrapper" }, h("button", { class: "BannerBackButton" }, h("span", { class: "BannerBackButtonArrow" }, "\u1438 "), translate('backButton', this.language)), h("button", { class: "BannerLobbyButton" }, translate('lobbyButton', this.language))), h("div", { class: "Tabs" }, h("div", { class: 'TabButton' + (this.tabIndex == 0 ? ' Active' : ''), onClick: () => this.tabIndex = 0 }, translate('buy', this.language)), h("div", { class: 'TabButton' + (this.tabIndex == 1 ? ' Active' : ''), onClick: () => this.tabIndex = 1 }, translate('viewLatest', this.language)))), h("div", { class: "NextDrawWrapper" }, h("div", { class: "TotalWinnings" }, translate('winUpTo', this.language), ": ", h("span", null, "$", this.totalWinningsAmount.toLocaleString('en-US', { maximumFractionDigits: 2 }))), h("div", { class: "NextDraw" }, h("p", { class: "BannerText" }, translate('nextDraw', this.language)), h("div", { class: "BannerCountdown" }, h("span", { class: "CountdownDays" }, this.daysRemaining, "D"), h("span", { class: "CountdownHours" }, this.hoursRemaining, "H"), h("span", { class: "CountdownMinutes" }, this.minutesRemaining, "M"), h("span", { class: "CountdownSeconds" }, this.secondsRemaining, "S")))), this.tabIndex == 0 &&
423
+ h("div", { class: "GamePage", dir: this.language == 'ar' ? 'rtl' : 'ltr', ref: el => this.stylingContainer = el }, h("div", { class: "GridBanner", style: { backgroundImage: isMobile(this.userAgent) ? `url(${backgroundSrc})` : `url(${backgroundDesktopSrc})` } }, h("div", { class: "BannerButtonsWrapper" }, h("button", { class: "BannerBackButton" }, h("span", { class: "BannerBackButtonArrow" }, "\u1438 "), translate('backButton', this.language)), h("button", { class: "BannerLobbyButton" }, translate('lobbyButton', this.language))), h("div", { class: "Tabs" }, h("div", { class: 'TabButton' + (this.tabIndex == 0 ? ' Active' : ''), onClick: () => this.tabIndex = 0 }, translate('buy', this.language)), h("div", { class: 'TabButton' + (this.tabIndex == 1 ? ' Active' : ''), onClick: () => this.tabIndex = 1 }, translate('viewLatest', this.language)))), h("div", { class: "NextDrawWrapper" }, h("div", { class: "TotalWinnings" }, translate('winUpTo', this.language), ": ", h("span", null, "$", this.totalWinningsAmount.toLocaleString('en-US', { maximumFractionDigits: 2 }))), h("div", { class: "NextDraw" }, h("p", { class: "BannerText" }, translate('nextDraw', this.language)), h("div", { class: "BannerCountdown" }, h("span", { class: "CountdownDays" }, this.daysRemaining, "D"), h("span", { class: "CountdownHours" }, this.hoursRemaining, "H"), h("span", { class: "CountdownMinutes" }, this.minutesRemaining, "M"), h("span", { class: "CountdownSeconds" }, this.secondsRemaining, "S")))), this.tabIndex == 0 &&
405
424
  h("div", { class: "GamePageContent" }, h("div", { class: "GameDetails" }, h("lottery-game-details", { "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent })), h("div", { class: "TicketsWrapper" }, this.tickets.map((item) => 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, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent })), h("div", { class: "CreateNewTicket" }, h("button", { onClick: () => this.createNewTicket() }, "+"), h("span", null, translate('createTicket', this.language)))), h("div", { class: "OrderSummary" }, h("h3", { class: "OrderSummaryTitle" }, translate('orderSummaryTitle', this.language)), h("div", { class: "Ticket" }, translate('orderSummaryTickets', this.language), ": ", h("span", null, this.tickets.length)), h("div", { class: "Total" }, translate('orderSummaryTotal', this.language), ": ", h("span", null, this.totalAmount, " ", this.currency)), h("div", { class: "ButtonWrapper" }, this.isLoggedIn &&
406
425
  h("span", { class: "Button", onClick: () => this.submitTickets() }, translate('orderSummarySubmit', this.language)), !this.isLoggedIn &&
407
426
  h("div", null, h("span", { class: "Button", onClick: () => this.showLoginModal() }, translate('orderSummarySubmit', this.language)), h("helper-modal", { "title-modal": "Success", visible: this.loginModalVisible, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }, h("p", { class: "SubmitModalSuccess" }, translate('modalLogin', this.language))))))), this.tabIndex == 1 &&
@@ -409,6 +428,9 @@ const LotteryGamePage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEle
409
428
  }
410
429
  static get assetsDirs() { return ["static"]; }
411
430
  get element() { return this; }
431
+ static get watchers() { return {
432
+ "sessionId": ["handleSessionIdValue"]
433
+ }; }
412
434
  static get style() { return lotteryGamePageCss; }
413
435
  }, [1, "lottery-game-page", {
414
436
  "endpoint": [1],
@@ -5,7 +5,7 @@ import { d as defineCustomElement$2 } from './lottery-grid2.js';
5
5
  import { d as defineCustomElement$1 } from './lottery-ticket2.js';
6
6
 
7
7
  const DEFAULT_LANGUAGE = 'en';
8
- const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'ar'];
8
+ const SUPPORTED_LANGUAGES = ['ro', 'en'];
9
9
  const TRANSLATIONS = {
10
10
  en: {
11
11
  ticket: 'Ticket',
@@ -13,12 +13,6 @@ const TRANSLATIONS = {
13
13
  ro: {
14
14
  ticket: 'Bilet',
15
15
  },
16
- fr: {
17
- ticket: 'Billet'
18
- },
19
- ar: {
20
- ticket: 'تذكرة',
21
- }
22
16
  };
23
17
  const translate = (key, customLang) => {
24
18
  const lang = customLang;
@@ -25,26 +25,6 @@ const TRANSLATIONS = {
25
25
  resetButton: 'Reseteaza',
26
26
  autoButton: 'Ma simt norocos'
27
27
  },
28
- fr: {
29
- loading: 'Loading, please wait ...',
30
- error: 'It was an error while trying to fetch the data',
31
- grid: 'Grid',
32
- multiplier: 'Multiplier',
33
- numberOfDraws: 'Number of draws',
34
- wagerPerDraw: 'Wager per draw',
35
- resetButton: 'Reset',
36
- autoButton: 'I feel lucky'
37
- },
38
- ar: {
39
- loading: 'Loading, please wait ...',
40
- error: 'It was an error while trying to fetch the data',
41
- grid: 'Grid',
42
- multiplier: 'Multiplier',
43
- numberOfDraws: 'Number of draws',
44
- wagerPerDraw: 'Wager per draw',
45
- resetButton: 'Reset',
46
- autoButton: 'I feel lucky'
47
- }
48
28
  };
49
29
  const translate = (key, customLang) => {
50
30
  const lang = customLang;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-0f8edfd2.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-d1baacd4.js';
2
2
 
3
3
  const DEFAULT_LANGUAGE = 'en';
4
4
  const SUPPORTED_LANGUAGES = ['ro', 'en'];
@@ -9,12 +9,6 @@ const TRANSLATIONS = {
9
9
  ro: {
10
10
  deleteTicket: 'Sterge biletul'
11
11
  },
12
- fr: {
13
- deleteTicket: 'Supprimer le billet'
14
- },
15
- ar: {
16
- deleteTicket: 'حذف التذكرة'
17
- }
18
12
  };
19
13
  const translate = (key, customLang) => {
20
14
  const lang = customLang;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h as h$2 } from './index-0f8edfd2.js';
1
+ import { r as registerInstance, c as createEvent, h as h$2 } from './index-d1baacd4.js';
2
2
 
3
3
  const DEFAULT_LANGUAGE$1 = 'en';
4
4
  const SUPPORTED_LANGUAGES$1 = ['ro', 'en'];
@@ -27,32 +27,6 @@ const TRANSLATIONS$1 = {
27
27
  filterModalButton: 'Cauta',
28
28
  filterOrDate: 'sau cauta dupa data'
29
29
  },
30
- fr: {
31
- filterOpen: 'Filter',
32
- filterClear: 'Clear',
33
- filterModalTicketTitle: 'Ticket Results',
34
- filterModalDrawTitle: 'Draws Results History',
35
- filterTicketPlaceholder: 'Search for a ticket ID',
36
- filterDrawPlaceholder: 'Search for a draw ID',
37
- filterDateRangePlaceholder: 'Date Range',
38
- filterModalButton: 'Search',
39
- filterFromCalendar: 'From',
40
- filterToCalendar: 'To',
41
- filterOrDate: 'or search by date'
42
- },
43
- ar: {
44
- filterOpen: 'Filter',
45
- filterClear: 'Clear',
46
- filterModalTicketTitle: 'Ticket Results',
47
- filterModalDrawTitle: 'Draws Results History',
48
- filterTicketPlaceholder: 'Search for a ticket ID',
49
- filterDrawPlaceholder: 'Search for a draw ID',
50
- filterDateRangePlaceholder: 'Date Range',
51
- filterModalButton: 'Search',
52
- filterFromCalendar: 'From',
53
- filterToCalendar: 'To',
54
- filterOrDate: 'or search by date'
55
- }
56
30
  };
57
31
  const translate$2 = (key, customLang) => {
58
32
  const lang = customLang;
@@ -22416,40 +22390,6 @@ const TRANSLATIONS = {
22416
22390
  ticketAmount: 'Valoarea biletului',
22417
22391
  winUpTo: 'Poti castiga'
22418
22392
  },
22419
- fr: {
22420
- drawResultsHeader: 'Résultats du dernier tirage',
22421
- drawId: 'ID de tirage',
22422
- drawName: 'Nom du jeu',
22423
- drawDate: 'Date du tirage',
22424
- drawNumbersGridDraw: 'Tirage des numéros Grille',
22425
- drawNumbersGridTicket: 'Tirage des numéros Grille',
22426
- ticketResult: 'Résultat du ticket',
22427
- amountWon: 'Montant gagné',
22428
- numberOfDraws: 'Nombre de tirages',
22429
- multiplier: 'Multiplicateur',
22430
- ticketPurchaseDate: 'Date d\'achat du billet',
22431
- ticketStatus: 'Statut du ticket',
22432
- ticketId: 'ID de billets',
22433
- ticketAmount: 'Montant du billet',
22434
- winUpTo: 'Gagnez jusqu\'à'
22435
- },
22436
- ar: {
22437
- drawResultsHeader: 'نتائج آخر سحب',
22438
- drawId: 'معرّف السحب',
22439
- drawName: 'اسم اللعبة',
22440
- drawDate: 'تاريخ السحب',
22441
- drawNumbersGridDraw: 'شبكة أرقام السحب',
22442
- drawNumbersGridTicket: 'شبكة أرقام السحب',
22443
- ticketResult: 'نتيجة التذكرة',
22444
- amountWon: 'المبلغ الذي تم ربحه',
22445
- numberOfDraws: 'عدد السحوبات',
22446
- multiplier: 'مضاعف',
22447
- ticketPurchaseDate: 'تاريخ شراء التذكرة',
22448
- ticketStatus: 'حالة التذكرة',
22449
- ticketId: 'معرّف التذكرة',
22450
- ticketAmount: 'مبلغ التذكرة',
22451
- winUpTo: 'ربح يصل إلى'
22452
- }
22453
22393
  };
22454
22394
  const translate = (key, customLang) => {
22455
22395
  const lang = customLang;
@@ -22548,8 +22488,7 @@ const LotteryDrawResults = class {
22548
22488
  this.ticketDataLoaded = true;
22549
22489
  }
22550
22490
  return this.ticketData;
22551
- })
22552
- .then((response) => {
22491
+ }).then((response) => {
22553
22492
  response.forEach(ticket => {
22554
22493
  if (ticket.drawResults.length) {
22555
22494
  ticket.drawResults.forEach(draw => {
@@ -22562,20 +22501,13 @@ const LotteryDrawResults = class {
22562
22501
  if (!this.ticketDraws.some(el => el.drawId === draw.drawId)) {
22563
22502
  this.ticketDraws.push({ drawId: draw.drawId, drawNumbers: data.winningNumbers });
22564
22503
  }
22565
- })
22566
- .catch((err) => {
22567
- console.log('error ', err);
22568
22504
  });
22569
22505
  });
22570
22506
  }
22571
22507
  return this.ticketDraws;
22572
22508
  });
22573
- })
22574
- .then(() => {
22509
+ }).then(() => {
22575
22510
  this.hasDrawNumbers = true;
22576
- })
22577
- .catch((err) => {
22578
- console.log('error ', err);
22579
22511
  });
22580
22512
  };
22581
22513
  this.changeBox = (index) => {
@@ -22614,9 +22546,6 @@ const LotteryDrawResults = class {
22614
22546
  Promise.all(promises)
22615
22547
  .then(() => {
22616
22548
  this.isLoading = false;
22617
- }).catch((err) => {
22618
- console.log('error ', err);
22619
- this.isLoading = false;
22620
22549
  });
22621
22550
  }
22622
22551
  componentDidRender() {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-0f8edfd2.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-d1baacd4.js';
2
2
 
3
3
  /**
4
4
  * @name isMobile