@everymatrix/lottery-game-page 0.1.19 → 0.1.21

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 (78) hide show
  1. package/dist/cjs/helper-accordion.cjs.entry.js +41 -3
  2. package/dist/cjs/helper-filters_2.cjs.entry.js +208 -21
  3. package/dist/cjs/helper-modal.cjs.entry.js +34 -2
  4. package/dist/cjs/helper-pagination.cjs.entry.js +45 -1
  5. package/dist/cjs/helper-tab.cjs.entry.js +36 -4
  6. package/dist/cjs/helper-tabs.cjs.entry.js +38 -2
  7. package/dist/cjs/{index-5701a895.js → index-7b63209d.js} +13 -0
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/lottery-bullet_2.cjs.entry.js +72 -4
  10. package/dist/cjs/lottery-draw-results-history.cjs.entry.js +76 -13
  11. package/dist/cjs/lottery-game-details.cjs.entry.js +34 -2
  12. package/dist/cjs/lottery-game-page.cjs.entry.js +69 -9
  13. package/dist/cjs/lottery-game-page.cjs.js +2 -2
  14. package/dist/cjs/lottery-ticket-controller.cjs.entry.js +55 -2
  15. package/dist/cjs/lottery-ticket.cjs.entry.js +55 -3
  16. package/dist/collection/components/lottery-game-page/lottery-game-page.css +6 -4
  17. package/dist/collection/components/lottery-game-page/lottery-game-page.js +84 -9
  18. package/dist/collection/utils/locale.utils.js +26 -3
  19. package/dist/components/helper-accordion2.js +44 -3
  20. package/dist/components/helper-filters2.js +70 -8
  21. package/dist/components/helper-modal2.js +37 -2
  22. package/dist/components/helper-pagination.js +48 -1
  23. package/dist/components/helper-tab2.js +39 -4
  24. package/dist/components/helper-tabs2.js +42 -2
  25. package/dist/components/lottery-bullet2.js +37 -2
  26. package/dist/components/lottery-draw-results-history2.js +80 -14
  27. package/dist/components/lottery-draw-results2.js +152 -15
  28. package/dist/components/lottery-game-details2.js +38 -2
  29. package/dist/components/lottery-game-page.js +73 -9
  30. package/dist/components/lottery-grid2.js +43 -3
  31. package/dist/components/lottery-ticket-controller2.js +58 -2
  32. package/dist/components/lottery-ticket2.js +58 -3
  33. package/dist/esm/helper-accordion.entry.js +41 -3
  34. package/dist/esm/helper-filters_2.entry.js +208 -21
  35. package/dist/esm/helper-modal.entry.js +34 -2
  36. package/dist/esm/helper-pagination.entry.js +45 -1
  37. package/dist/esm/helper-tab.entry.js +36 -4
  38. package/dist/esm/helper-tabs.entry.js +38 -2
  39. package/dist/esm/{index-ade3d0ab.js → index-0f8edfd2.js} +13 -0
  40. package/dist/esm/loader.js +2 -2
  41. package/dist/esm/lottery-bullet_2.entry.js +72 -4
  42. package/dist/esm/lottery-draw-results-history.entry.js +76 -13
  43. package/dist/esm/lottery-game-details.entry.js +34 -2
  44. package/dist/esm/lottery-game-page.entry.js +69 -9
  45. package/dist/esm/lottery-game-page.js +2 -2
  46. package/dist/esm/lottery-ticket-controller.entry.js +55 -2
  47. package/dist/esm/lottery-ticket.entry.js +55 -3
  48. package/dist/lottery-game-page/lottery-game-page.esm.js +1 -1
  49. package/dist/lottery-game-page/p-01132729.entry.js +1 -0
  50. package/dist/lottery-game-page/p-07f98587.entry.js +1 -0
  51. package/dist/lottery-game-page/p-4098d6d4.entry.js +1 -0
  52. package/dist/lottery-game-page/p-75703176.entry.js +1 -0
  53. package/dist/lottery-game-page/p-800590f3.entry.js +1 -0
  54. package/dist/lottery-game-page/p-807dda48.entry.js +1 -0
  55. package/dist/lottery-game-page/p-97048566.entry.js +1 -0
  56. package/dist/lottery-game-page/p-a21ecd5f.entry.js +1 -0
  57. package/dist/lottery-game-page/p-b44e49d7.entry.js +1 -0
  58. package/dist/lottery-game-page/p-b4e2988a.js +1 -0
  59. package/dist/lottery-game-page/{p-042b777b.entry.js → p-d1d09322.entry.js} +39 -39
  60. package/dist/lottery-game-page/p-d91fc066.entry.js +1 -0
  61. package/dist/lottery-game-page/p-e816baee.entry.js +1 -0
  62. 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 +2 -0
  63. package/dist/types/components/lottery-game-page/lottery-game-page.d.ts +14 -0
  64. package/dist/types/components.d.ts +16 -0
  65. package/package.json +1 -1
  66. package/dist/lottery-game-page/p-07cca45e.entry.js +0 -1
  67. package/dist/lottery-game-page/p-1196396b.entry.js +0 -1
  68. package/dist/lottery-game-page/p-2197c8ae.entry.js +0 -1
  69. package/dist/lottery-game-page/p-2a4e9984.entry.js +0 -1
  70. package/dist/lottery-game-page/p-4bfd0112.entry.js +0 -1
  71. package/dist/lottery-game-page/p-5e12dbf9.entry.js +0 -1
  72. package/dist/lottery-game-page/p-a10368b2.entry.js +0 -1
  73. package/dist/lottery-game-page/p-a26ebf45.entry.js +0 -1
  74. package/dist/lottery-game-page/p-b301a9d4.js +0 -1
  75. package/dist/lottery-game-page/p-d4b6a11a.entry.js +0 -1
  76. package/dist/lottery-game-page/p-dd63fcc6.entry.js +0 -1
  77. package/dist/lottery-game-page/p-f59dc9e1.entry.js +0 -1
  78. package/dist/types/Users/user/workspace/everymatrix/widgets-stencil/packages/lottery-game-page/.stencil/packages/lottery-game-page/stencil.config.d.ts +0 -2
@@ -1,5 +1,5 @@
1
1
  const DEFAULT_LANGUAGE = 'en';
2
- const SUPPORTED_LANGUAGES = ['ro', 'en', 'ar'];
2
+ const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'ar'];
3
3
  const TRANSLATIONS = {
4
4
  en: {
5
5
  error: 'Error',
@@ -47,6 +47,29 @@ const TRANSLATIONS = {
47
47
  lastDrawResultsTitle: 'Cele mai recente extrageri',
48
48
  modalLogin: 'Please login to submit a ticket',
49
49
  },
50
+ fr: {
51
+ error: 'Error',
52
+ title: 'Chrono',
53
+ backButton: 'Back',
54
+ lobbyButton: 'Lobby',
55
+ prize: 'Prize',
56
+ winUpTo: 'Win up to',
57
+ nextDraw: 'Next draw in: ',
58
+ buy: 'Buy tickets',
59
+ viewLatest: 'View latest results',
60
+ createTicket: 'Create Ticket',
61
+ modalSuccess: 'Purchase successfully completed!',
62
+ deleteTicketModalTitle: 'Delete Ticket',
63
+ deleteTicketModalText: 'Are you sure you want to delete this ticket?',
64
+ deleteTicketModalCancel: 'Cancel',
65
+ deleteTicketModalConfirm: 'Delete',
66
+ orderSummaryTitle: 'Order Summary',
67
+ orderSummaryTickets: 'Ticket',
68
+ orderSummaryTotal: 'Total',
69
+ orderSummarySubmit: 'Submit',
70
+ lastDrawResultsTitle: 'Résultats du dernier tirage',
71
+ modalLogin: 'Please login to submit a ticket',
72
+ },
50
73
  ar: {
51
74
  error: 'خطأ',
52
75
  title: 'كرونو',
@@ -67,9 +90,9 @@ const TRANSLATIONS = {
67
90
  orderSummaryTickets: 'تذكرة',
68
91
  orderSummaryTotal: 'المجموع',
69
92
  orderSummarySubmit: 'يُقدِّم',
70
- lastDrawResultsTitle: 'Cele mai recente extrageri',
93
+ lastDrawResultsTitle: 'نتائج آخر سحب',
71
94
  modalLogin: 'الرجاء تسجيل الدخول لتقديم تذكرة'
72
- },
95
+ }
73
96
  };
74
97
  export const translate = (key, customLang) => {
75
98
  const lang = customLang;
@@ -9,13 +9,19 @@ 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
+ }
12
18
  };
13
19
  const translate = (key, customLang) => {
14
20
  const lang = customLang;
15
21
  return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
16
22
  };
17
23
 
18
- const helperAccordionCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.Header{border-radius:4px 4px 0 0;background:#009993;display:flex;gap:30px;border:1px solid #009993;padding:8px 10px;user-select:none}.Header:hover{background:#00ABA4}.Header .Title,.Header .Subtitle,.Header .Description{margin:0;font-size:14px;color:#fff}.Header .Expand{margin-left:auto;color:#FFF;width:17px;height:17px;cursor:pointer;text-align:center;transform:rotate(90deg);font-size:20px;user-select:none}.HeaderTicketHistory{border-radius:4px;background:#F1F1F1;display:flex;gap:30px;border:1px solid #009993;padding:8px 10px;user-select:none;margin-bottom:5px}.HeaderTicketHistory:hover{background:#00ABA4}.HeaderTicketHistory .Title,.HeaderTicketHistory .Subtitle,.HeaderTicketHistory .Description{margin:0;font-size:14px;color:#000}.HeaderTicketHistory .Expand{margin-left:auto;color:#FFF;width:17px;height:17px;cursor:pointer;text-align:center;transform:rotate(90deg);font-size:20px;user-select:none}.Content{border-radius:0 0 4px 4px;background:#fff;border:1px solid #009993;padding:10px 15px;user-select:none;color:#000;margin-bottom:10px}.ActionButton{cursor:pointer;display:inline-block;border-radius:4px;margin:20px 0 10px;text-transform:uppercase;font-size:12px;text-align:center;padding:8px 20px;min-width:80px;background:#FF3D00;border:1px solid #FF3D00;color:#FFF}.ActionButton:hover{background:#FF6536;border:1px solid #FF3D00}";
24
+ const helperAccordionCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.Header{border-radius:5px;background:#009993;display:flex;gap:30px;border:1px solid #009993;padding:8px 10px;user-select:none;margin-bottom:1px}.Header:hover{background:#00ABA4}.Header .Title,.Header .Subtitle,.Header .Description{margin:0;font-size:14px;color:#fff;text-transform:capitalize}.Header .Expand{margin-left:auto;color:#FFF;width:17px;height:17px;cursor:pointer;text-align:center;transform:rotate(90deg);font-size:20px;user-select:none}.HeaderTicketHistory{border-radius:4px;background:#F1F1F1;display:flex;gap:30px;border:1px solid #009993;padding:8px 10px;user-select:none;margin-bottom:5px}.HeaderTicketHistory:hover{background:#00ABA4}.HeaderTicketHistory .Title,.HeaderTicketHistory .Subtitle,.HeaderTicketHistory .Description{margin:0;font-size:14px;color:#000}.HeaderTicketHistory .Expand{margin-left:auto;color:#FFF;width:17px;height:17px;cursor:pointer;text-align:center;transform:rotate(90deg);font-size:20px;user-select:none}.Content{border-radius:0 0 4px 4px;background:#fff;border:1px solid #009993;padding:10px 15px;user-select:none;color:#000;margin-bottom:10px}.ActionButton{cursor:pointer;display:inline-block;border-radius:4px;margin:20px 0 10px;text-transform:uppercase;font-size:12px;text-align:center;padding:8px 20px;min-width:80px;background:#FF3D00;border:1px solid #FF3D00;color:#FFF}.ActionButton:hover{background:#FF6536;border:1px solid #FF3D00}";
19
25
 
20
26
  const Accordion = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
21
27
  constructor() {
@@ -63,11 +69,43 @@ const Accordion = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
63
69
  * Language
64
70
  */
65
71
  this.language = 'en';
72
+ /**
73
+ * Client custom styling via string
74
+ */
75
+ this.clientStyling = '';
76
+ /**
77
+ * Client custom styling via url content
78
+ */
79
+ this.clientStylingUrlContent = '';
80
+ this.limitStylingAppends = false;
81
+ this.setClientStyling = () => {
82
+ let sheet = document.createElement('style');
83
+ sheet.innerHTML = this.clientStyling;
84
+ this.stylingContainer.prepend(sheet);
85
+ };
86
+ this.setClientStylingURL = () => {
87
+ let cssFile = document.createElement('style');
88
+ setTimeout(() => {
89
+ cssFile.innerHTML = this.clientStylingUrlContent;
90
+ this.stylingContainer.prepend(cssFile);
91
+ }, 1);
92
+ };
66
93
  }
67
94
  // @TODO fix the `any` type :)
68
95
  connectedCallback() {
69
96
  this.showContent = !this.collapsed;
70
97
  }
98
+ componentDidRender() {
99
+ // start custom styling area
100
+ if (!this.limitStylingAppends && this.stylingContainer) {
101
+ if (this.clientStyling)
102
+ this.setClientStyling();
103
+ if (this.clientStylingUrlContent)
104
+ this.setClientStylingURL();
105
+ this.limitStylingAppends = true;
106
+ }
107
+ // end custom styling area
108
+ }
71
109
  toggleContent() {
72
110
  this.showContent = !this.showContent;
73
111
  }
@@ -79,7 +117,7 @@ const Accordion = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
79
117
  this.accordionEvent.emit();
80
118
  }
81
119
  render() {
82
- return (h("div", { class: "Wrapper" }, h("div", { class: this.ticketHistoryFlag === true ? 'HeaderTicketHistory' : 'Header' }, h("p", { class: "Title" }, this.headerTitle), h("p", { class: "Subtitle" }, this.headerSubtitle), h("p", { class: "Subtitle" }, this.description), h("span", { class: "Expand", onClick: () => this.toggleContent() }, this.showContent ? '<' : '>')), this.showContent &&
120
+ return (h("div", { class: "Wrapper", ref: el => this.stylingContainer = el }, h("div", { class: this.ticketHistoryFlag === true ? 'HeaderTicketHistory' : 'Header' }, h("p", { class: "Title" }, this.headerTitle), h("p", { class: "Subtitle" }, this.headerSubtitle), h("p", { class: "Subtitle Description" }, this.description), h("span", { class: "Expand", onClick: () => this.toggleContent() }, this.showContent ? '<' : '>')), this.showContent &&
83
121
  h("div", null, h("div", { class: "Content" }, h("slot", { name: 'accordionContent' }), this.footer && this.showContent &&
84
122
  h("div", null, this.deleteTab &&
85
123
  h("span", { class: "ActionButton", onClick: () => this.deleteAction() }, translate('deleteTicket', this.language)))))));
@@ -96,7 +134,10 @@ const Accordion = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
96
134
  "eventName": [1, "event-name"],
97
135
  "collapsed": [4],
98
136
  "language": [1],
99
- "showContent": [32]
137
+ "clientStyling": [1, "client-styling"],
138
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
139
+ "showContent": [32],
140
+ "limitStylingAppends": [32]
100
141
  }]);
101
142
  function defineCustomElement() {
102
143
  if (typeof customElements === "undefined") {
@@ -28,6 +28,32 @@ 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
+ }
31
57
  };
32
58
  const translate$1 = (key, customLang) => {
33
59
  const lang = customLang;
@@ -22264,26 +22290,55 @@ const HelperFilters = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
22264
22290
  * Language
22265
22291
  */
22266
22292
  this.language = 'en';
22293
+ /**
22294
+ * Notifies if the quick filters from tickets are active
22295
+ */
22296
+ this.quickFiltersActive = false;
22297
+ /**
22298
+ * Client custom styling via string
22299
+ */
22300
+ this.clientStyling = '';
22301
+ /**
22302
+ * Client custom styling via url content
22303
+ */
22304
+ this.clientStylingUrlContent = '';
22267
22305
  this.showFilterModal = false;
22268
22306
  this.showClearButton = false;
22269
22307
  this.filterData = {};
22270
22308
  this.filterDataReset = { ticketDrawId: '', filterFromCalendar: '', filterToCalendar: '' };
22309
+ this.limitStylingAppends = false;
22310
+ this.setClientStyling = () => {
22311
+ let sheet = document.createElement('style');
22312
+ sheet.innerHTML = this.clientStyling;
22313
+ this.stylingContainer.prepend(sheet);
22314
+ };
22315
+ this.setClientStylingURL = () => {
22316
+ let cssFile = document.createElement('style');
22317
+ setTimeout(() => {
22318
+ cssFile.innerHTML = this.clientStylingUrlContent;
22319
+ this.stylingContainer.prepend(cssFile);
22320
+ }, 1);
22321
+ };
22271
22322
  }
22272
22323
  // reset field values each time the filter modal opens
22273
22324
  componentDidRender() {
22274
- this.filterData.ticketDrawId = null;
22275
- this.filterData.filterFromCalendar = null;
22276
- this.filterData.filterToCalendar = null;
22277
22325
  // @TODO: to way binding?
22278
22326
  if (document.getElementById('#FilterById'))
22279
22327
  document.getElementById('#FilterById').value = '';
22328
+ // start custom styling area
22329
+ if (!this.limitStylingAppends && this.stylingContainer) {
22330
+ if (this.clientStyling)
22331
+ this.setClientStyling();
22332
+ if (this.clientStylingUrlContent)
22333
+ this.setClientStylingURL();
22334
+ this.limitStylingAppends = true;
22335
+ }
22336
+ // end custom styling area
22280
22337
  }
22281
22338
  filterSelectionHandler(event) {
22282
22339
  if (this.postMessage)
22283
22340
  window.postMessage({ type: 'filterSelection', event }, window.location.href);
22284
- if (this.filterData.ticketDrawId)
22285
- this.filterDraw.emit(event);
22286
- if (this.filterData.filterFromCalendar || this.filterData.filterToCalendar)
22341
+ if (this.filterData.ticketDrawId || this.filterData.filterFromCalendar || this.filterData.filterToCalendar)
22287
22342
  this.filterSelection.emit(event);
22288
22343
  }
22289
22344
  filterSelectionResetHandler(event) {
@@ -22319,7 +22374,10 @@ const HelperFilters = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
22319
22374
  this.filterData.filterToCalendar = new Date(event.target.value).toISOString();
22320
22375
  }
22321
22376
  render() {
22322
- return (h$2("div", { class: "HelperFilters" }, h$2("div", { class: "FilterButtonsWrapper" }, h$2("button", { class: "FilterOpen", onClick: () => this.toggleFilterModal() }, translate$1('filterOpen', this.language)), this.showClearButton ? h$2("button", { class: "FilterClear", onClick: () => this.resetSearch() }, translate$1('filterClear', this.language)) : null), h$2("helper-modal", { "title-modal": "Filter Modal", visible: this.showFilterModal }, h$2("div", { class: "FilterModalHeader" }, h$2("h3", { class: "FilterModalTitle" }, this.activateTicketSearch ? translate$1('filterModalTicketTitle', this.language) : translate$1('filterModalDrawTitle', this.language))), h$2("div", { class: "FilterModalBody" }, h$2("input", { id: "FilterById", type: "text", value: this.filterData.ticketDrawId, onInput: (event) => this.handleTicketDrawId(event), class: "FilterModalSearch", placeholder: this.activateTicketSearch ? translate$1('filterTicketPlaceholder', this.language) : translate$1('filterDrawPlaceholder', this.language) }), h$2("p", null, translate$1('filterOrDate', this.language)), h$2("div", { class: "FilterCalendarWrapper" }, h$2("vaadin-date-picker", { value: this.filterData.filterFromCalendar, onChange: (event) => this.handleFilterFrom(event), placeholder: translate$1('filterFromCalendar', this.language), class: "VaadinDatePicker" }), h$2("vaadin-date-picker", { value: this.filterData.filterToCalendar, onChange: (event) => this.handleFilterTo(event), placeholder: translate$1('filterToCalendar', this.language), class: "VaadinDatePicker" }))), h$2("div", { class: "FilterModalFooter" }, h$2("button", { class: "FilterModalButton", onClick: () => this.filterSearch() }, translate$1('filterModalButton', this.language))))));
22377
+ return (h$2("div", { class: "HelperFilters", ref: el => this.stylingContainer = el }, h$2("div", { class: "FilterButtonsWrapper" }, h$2("button", { class: "FilterOpen", onClick: () => this.toggleFilterModal() }, translate$1('filterOpen', this.language)), (this.showClearButton || this.quickFiltersActive) ?
22378
+ h$2("button", { class: "FilterClear", onClick: () => this.resetSearch() }, translate$1('filterClear', this.language))
22379
+ :
22380
+ null), h$2("helper-modal", { "title-modal": "Filter Modal", visible: this.showFilterModal, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }, h$2("div", { class: "FilterModalHeader" }, h$2("h3", { class: "FilterModalTitle" }, this.activateTicketSearch ? translate$1('filterModalTicketTitle', this.language) : translate$1('filterModalDrawTitle', this.language))), h$2("div", { class: "FilterModalBody" }, h$2("input", { id: "FilterById", type: "text", value: this.filterData.ticketDrawId, onInput: (event) => this.handleTicketDrawId(event), class: "FilterModalSearch", placeholder: this.activateTicketSearch ? translate$1('filterTicketPlaceholder', this.language) : translate$1('filterDrawPlaceholder', this.language) }), h$2("p", null, translate$1('filterOrDate', this.language)), h$2("div", { class: "FilterCalendarWrapper" }, h$2("vaadin-date-picker", { value: this.filterData.filterFromCalendar, onChange: (event) => this.handleFilterFrom(event), placeholder: translate$1('filterFromCalendar', this.language), class: "VaadinDatePicker" }), h$2("vaadin-date-picker", { value: this.filterData.filterToCalendar, onChange: (event) => this.handleFilterTo(event), placeholder: translate$1('filterToCalendar', this.language), class: "VaadinDatePicker" }))), h$2("div", { class: "FilterModalFooter" }, h$2("button", { class: "FilterModalButton", onClick: () => this.filterSearch() }, translate$1('filterModalButton', this.language))))));
22323
22381
  }
22324
22382
  static get style() { return helperFiltersCss; }
22325
22383
  }, [1, "helper-filters", {
@@ -22330,10 +22388,14 @@ const HelperFilters = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
22330
22388
  "session": [1],
22331
22389
  "postMessage": [4, "post-message"],
22332
22390
  "language": [1],
22391
+ "quickFiltersActive": [4, "quick-filters-active"],
22392
+ "clientStyling": [1, "client-styling"],
22393
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
22333
22394
  "showFilterModal": [32],
22334
22395
  "showClearButton": [32],
22335
22396
  "filterData": [32],
22336
- "filterDataReset": [32]
22397
+ "filterDataReset": [32],
22398
+ "limitStylingAppends": [32]
22337
22399
  }, [[0, "modalCloseEvent", "modalCloseEvent"]]]);
22338
22400
  function defineCustomElement() {
22339
22401
  if (typeof customElements === "undefined") {
@@ -25,21 +25,56 @@ const HelperModal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
25
25
  * Toggles if the helper is visible or not
26
26
  */
27
27
  this.visible = true;
28
+ /**
29
+ * Client custom styling via string
30
+ */
31
+ this.clientStyling = '';
32
+ /**
33
+ * Client custom styling via url content
34
+ */
35
+ this.clientStylingUrlContent = '';
36
+ this.limitStylingAppends = false;
28
37
  this.userAgent = window.navigator.userAgent;
38
+ this.setClientStyling = () => {
39
+ let sheet = document.createElement('style');
40
+ sheet.innerHTML = this.clientStyling;
41
+ this.stylingContainer.prepend(sheet);
42
+ };
43
+ this.setClientStylingURL = () => {
44
+ let cssFile = document.createElement('style');
45
+ setTimeout(() => {
46
+ cssFile.innerHTML = this.clientStylingUrlContent;
47
+ this.stylingContainer.prepend(cssFile);
48
+ }, 1);
49
+ };
29
50
  }
30
51
  handleHelperModalClose() {
31
52
  this.visible = false;
32
53
  this.cancel.emit();
33
54
  }
34
55
  ;
56
+ componentDidRender() {
57
+ // start custom styling area
58
+ if (!this.limitStylingAppends && this.stylingContainer) {
59
+ if (this.clientStyling)
60
+ this.setClientStyling();
61
+ if (this.clientStylingUrlContent)
62
+ this.setClientStylingURL();
63
+ this.limitStylingAppends = true;
64
+ }
65
+ // end custom styling area
66
+ }
35
67
  render() {
36
68
  return ((this.visible &&
37
- h("div", { class: this.visible ? "HelperModalWrapper HelperModalVisible" : "HelperModalWrapper" }, h("div", { class: "HelperModalWrapper HelperModalVisible" }, h("div", { class: "HelperModalContent" + (isMobile(this.userAgent) ? ' HelperModalMobileContent' : '') }, h("span", { class: "HelperModalClose" + (isMobile(this.userAgent) ? ' HelperModalMobileClose' : ''), onClick: this.handleHelperModalClose.bind(this) }, "X"), h("slot", null))))));
69
+ h("div", { class: this.visible ? "HelperModalWrapper HelperModalVisible" : "HelperModalWrapper", ref: el => this.stylingContainer = el }, h("div", { class: "HelperModalWrapper HelperModalVisible" }, h("div", { class: "HelperModalContent" + (isMobile(this.userAgent) ? ' HelperModalMobileContent' : '') }, h("span", { class: "HelperModalClose" + (isMobile(this.userAgent) ? ' HelperModalMobileClose' : ''), onClick: this.handleHelperModalClose.bind(this) }, "X"), h("slot", null))))));
38
70
  }
39
71
  static get style() { return helperModalCss; }
40
72
  }, [1, "helper-modal", {
41
73
  "titleModal": [1, "title-modal"],
42
- "visible": [1540]
74
+ "visible": [1540],
75
+ "clientStyling": [1, "client-styling"],
76
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
77
+ "limitStylingAppends": [32]
43
78
  }]);
44
79
  function defineCustomElement() {
45
80
  if (typeof customElements === "undefined") {
@@ -28,6 +28,18 @@ 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
+ }
31
43
  };
32
44
  const translate = (key, customLang) => {
33
45
  const lang = customLang;
@@ -66,6 +78,14 @@ const HelperPagination$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
66
78
  * Language
67
79
  */
68
80
  this.language = 'en';
81
+ /**
82
+ * Client custom styling via string
83
+ */
84
+ this.clientStyling = '';
85
+ /**
86
+ * Client custom styling via url content
87
+ */
88
+ this.clientStylingUrlContent = '';
69
89
  /**
70
90
  * In component working variable for the array of pages
71
91
  */
@@ -76,6 +96,7 @@ const HelperPagination$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
76
96
  this.endInt = 0;
77
97
  this.userAgent = window.navigator.userAgent;
78
98
  this.currentPage = 1;
99
+ this.limitStylingAppends = false;
79
100
  /**
80
101
  * Navigation logic
81
102
  */
@@ -130,6 +151,18 @@ const HelperPagination$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
130
151
  this.currentPage = this.offsetInt;
131
152
  this.hpPageChange.emit({ offset: this.offsetInt, limit: this.limitInt, total: this.totalInt });
132
153
  };
154
+ this.setClientStyling = () => {
155
+ let sheet = document.createElement('style');
156
+ sheet.innerHTML = this.clientStyling;
157
+ this.stylingContainer.prepend(sheet);
158
+ };
159
+ this.setClientStylingURL = () => {
160
+ let cssFile = document.createElement('style');
161
+ setTimeout(() => {
162
+ cssFile.innerHTML = this.clientStylingUrlContent;
163
+ this.stylingContainer.prepend(cssFile);
164
+ }, 1);
165
+ };
133
166
  }
134
167
  componentWillRender() {
135
168
  this.offsetInt = this.offset;
@@ -155,6 +188,17 @@ const HelperPagination$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
155
188
  this.pagesArray.unshift('...');
156
189
  }
157
190
  }
191
+ componentDidRender() {
192
+ // start custom styling area
193
+ if (!this.limitStylingAppends && this.stylingContainer) {
194
+ if (this.clientStyling)
195
+ this.setClientStyling();
196
+ if (this.clientStylingUrlContent)
197
+ this.setClientStylingURL();
198
+ this.limitStylingAppends = true;
199
+ }
200
+ // end custom styling area
201
+ }
158
202
  render() {
159
203
  /**
160
204
  * Center navigation area
@@ -188,12 +232,15 @@ const HelperPagination$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
188
232
  "limit": [1538],
189
233
  "total": [1538],
190
234
  "language": [1],
235
+ "clientStyling": [1, "client-styling"],
236
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
191
237
  "offsetInt": [32],
192
238
  "lastPage": [32],
193
239
  "limitInt": [32],
194
240
  "totalInt": [32],
195
241
  "pagesArray": [32],
196
- "endInt": [32]
242
+ "endInt": [32],
243
+ "limitStylingAppends": [32]
197
244
  }]);
198
245
  function defineCustomElement$1() {
199
246
  if (typeof customElements === "undefined") {
@@ -11,20 +11,52 @@ const HelperTab = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
11
11
  * Selected index
12
12
  */
13
13
  this.selectedIndex = 0;
14
+ /**
15
+ * Client custom styling via string
16
+ */
17
+ this.clientStyling = '';
18
+ /**
19
+ * Client custom styling via url content
20
+ */
21
+ this.clientStylingUrlContent = '';
14
22
  this.tabContent = '';
23
+ this.limitStylingAppends = false;
24
+ this.setClientStyling = () => {
25
+ let sheet = document.createElement('style');
26
+ sheet.innerHTML = this.clientStyling;
27
+ this.stylingContainer.prepend(sheet);
28
+ };
29
+ this.setClientStylingURL = () => {
30
+ let cssFile = document.createElement('style');
31
+ setTimeout(() => {
32
+ cssFile.innerHTML = this.clientStylingUrlContent;
33
+ this.stylingContainer.prepend(cssFile);
34
+ }, 1);
35
+ };
15
36
  }
16
37
  connectedCallback() {
17
38
  /**
18
39
  * fetch(cmsEndpoint + / + / + selectedIndex)
19
40
  */
20
41
  }
42
+ componentDidRender() {
43
+ // start custom styling area
44
+ if (!this.limitStylingAppends && this.stylingContainer) {
45
+ if (this.clientStyling)
46
+ this.setClientStyling();
47
+ if (this.clientStylingUrlContent)
48
+ this.setClientStylingURL();
49
+ this.limitStylingAppends = true;
50
+ }
51
+ // end custom styling area
52
+ }
21
53
  render() {
22
- this.tabContent = h("div", { class: "TabContent" }, "Each play includes one set of numbers from 1 to 21 with a selectable number of 8 and a second, 4-digit set of numbers, with a minimum selection of 1. Draws are held every 5 minutes and the winnings are automatically credited to your account.");
54
+ this.tabContent = h("div", { class: "TabContent", ref: el => this.stylingContainer = el }, "Each play includes one set of numbers from 1 to 21 with a selectable number of 8 and a second, 4-digit set of numbers, with a minimum selection of 1. Draws are held every 5 minutes and the winnings are automatically credited to your account.");
23
55
  if (this.selectedIndex + 1 == 2) {
24
- this.tabContent = h("div", { class: "TabContent" }, h("ol", null, h("li", null, "Register or Login"), h("li", null, "Buy tickets. Select 'Buy Tickets' to pick your numbers. Want us to automatically generate random numbers for you? Choose \u201CI feel lucky\u201D."), h("li", null, "Review and Complete your purchase. Once you've chosen your total number of plays, and confirmed your number of selections, review your ticket details and complete your purchase!")));
56
+ this.tabContent = h("div", { class: "TabContent", ref: el => this.stylingContainer = el }, h("ol", null, h("li", null, "Register or Login"), h("li", null, "Buy tickets. Select 'Buy Tickets' to pick your numbers. Want us to automatically generate random numbers for you? Choose \u201CI feel lucky\u201D."), h("li", null, "Review and Complete your purchase. Once you've chosen your total number of plays, and confirmed your number of selections, review your ticket details and complete your purchase!")));
25
57
  }
26
58
  else if (this.selectedIndex + 1 == 3) {
27
- this.tabContent = h("div", { class: "TabContent" }, h("ul", null, h("li", null, "What are my odds of winning?"), h("li", null, "How can I find out if I\u2019ve won a draw game?"), h("li", null, "How do I claim my prize?")));
59
+ this.tabContent = h("div", { class: "TabContent", ref: el => this.stylingContainer = el }, h("ul", null, h("li", null, "What are my odds of winning?"), h("li", null, "How can I find out if I\u2019ve won a draw game?"), h("li", null, "How do I claim my prize?")));
28
60
  }
29
61
  return (this.tabContent);
30
62
  }
@@ -32,7 +64,10 @@ const HelperTab = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
32
64
  }, [1, "helper-tab", {
33
65
  "selectedIndex": [2, "selected-index"],
34
66
  "cmsEndpoint": [1, "cms-endpoint"],
35
- "tabContent": [32]
67
+ "clientStyling": [1, "client-styling"],
68
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
69
+ "tabContent": [32],
70
+ "limitStylingAppends": [32]
36
71
  }]);
37
72
  function defineCustomElement() {
38
73
  if (typeof customElements === "undefined") {
@@ -24,11 +24,47 @@ const HelperTabs = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
24
24
  * Tabs details
25
25
  */
26
26
  this.tabs = [{ label: 'How to Play' }, { label: 'About' }, { label: 'FAQs' }];
27
+ /**
28
+ * Client custom styling via string
29
+ */
30
+ this.clientStyling = '';
31
+ /**
32
+ * Client custom styling via url
33
+ */
34
+ this.clientStylingurl = '';
35
+ /**
36
+ * Client custom styling via url content
37
+ */
38
+ this.clientStylingUrlContent = '';
39
+ this.limitStylingAppends = false;
40
+ this.setClientStyling = () => {
41
+ let sheet = document.createElement('style');
42
+ sheet.innerHTML = this.clientStyling;
43
+ this.stylingContainer.prepend(sheet);
44
+ };
45
+ this.setClientStylingURL = () => {
46
+ let cssFile = document.createElement('style');
47
+ setTimeout(() => {
48
+ cssFile.innerHTML = this.clientStylingUrlContent;
49
+ this.stylingContainer.prepend(cssFile);
50
+ }, 1);
51
+ };
27
52
  }
28
53
  connectedCallback() {
29
54
  }
55
+ componentDidRender() {
56
+ // start custom styling area
57
+ if (!this.limitStylingAppends && this.stylingContainer) {
58
+ this.setClientStyling();
59
+ if (this.clientStylingUrlContent) {
60
+ this.setClientStylingURL();
61
+ }
62
+ this.limitStylingAppends = true;
63
+ }
64
+ // end custom styling area
65
+ }
30
66
  render() {
31
- return (h("div", null, h("div", { class: "Tabs" }, this.tabs.map((tab, index) => h("button", { class: 'TabButton' + (this.selectedIndex == index ? ' Active' : ''), onClick: () => this.selectedIndex = index }, tab.label))), h("div", null, h("helper-tab", { selectedIndex: this.selectedIndex }))));
67
+ return (h("div", { ref: el => this.stylingContainer = el }, h("div", { class: "Tabs" }, this.tabs.map((tab, index) => h("button", { class: 'TabButton' + (this.selectedIndex == index ? ' Active' : ''), onClick: () => this.selectedIndex = index }, tab.label))), h("div", null, h("helper-tab", { selectedIndex: this.selectedIndex, "client-styling": this.clientStyling, "client-stylingurl": this.clientStylingurl, "client-styling-url-content": this.clientStylingUrlContent }))));
32
68
  }
33
69
  get host() { return this; }
34
70
  static get style() { return helperTabsCss; }
@@ -38,7 +74,11 @@ const HelperTabs = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
38
74
  "selected": [4],
39
75
  "cmsEndpoint": [1, "cms-endpoint"],
40
76
  "selectedIndex": [1538, "selected-index"],
41
- "tabs": [16]
77
+ "tabs": [16],
78
+ "clientStyling": [1, "client-styling"],
79
+ "clientStylingurl": [1, "client-stylingurl"],
80
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
81
+ "limitStylingAppends": [32]
42
82
  }]);
43
83
  function defineCustomElement() {
44
84
  if (typeof customElements === "undefined") {
@@ -20,6 +20,15 @@ const LotteryBullet = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
20
20
  * Marks if the bullet should be selected
21
21
  */
22
22
  this.isSelected = false;
23
+ /**
24
+ * Client custom styling via string
25
+ */
26
+ this.clientStyling = '';
27
+ /**
28
+ * Client custom styling via url content
29
+ */
30
+ this.clientStylingUrlContent = '';
31
+ this.limitStylingAppends = false;
23
32
  this.select = () => {
24
33
  if (this.selectable) {
25
34
  this.isSelected = !this.isSelected;
@@ -29,15 +38,41 @@ const LotteryBullet = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
29
38
  });
30
39
  }
31
40
  };
41
+ this.setClientStyling = () => {
42
+ let sheet = document.createElement('style');
43
+ sheet.innerHTML = this.clientStyling;
44
+ this.stylingContainer.prepend(sheet);
45
+ };
46
+ this.setClientStylingURL = () => {
47
+ let cssFile = document.createElement('style');
48
+ setTimeout(() => {
49
+ cssFile.innerHTML = this.clientStylingUrlContent;
50
+ this.stylingContainer.prepend(cssFile);
51
+ }, 1);
52
+ };
53
+ }
54
+ componentDidRender() {
55
+ // start custom styling area
56
+ if (!this.limitStylingAppends && this.stylingContainer) {
57
+ if (this.clientStyling)
58
+ this.setClientStyling();
59
+ if (this.clientStylingUrlContent)
60
+ this.setClientStylingURL();
61
+ this.limitStylingAppends = true;
62
+ }
63
+ // end custom styling area
32
64
  }
33
65
  render() {
34
- return (h("div", { class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : ''), onClick: () => this.select() }, this.value));
66
+ return (h("div", { class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : ''), onClick: () => this.select(), ref: el => this.stylingContainer = el }, this.value));
35
67
  }
36
68
  static get style() { return lotteryBulletCss; }
37
69
  }, [1, "lottery-bullet", {
38
70
  "value": [1],
39
71
  "selectable": [4],
40
- "isSelected": [4, "is-selected"]
72
+ "isSelected": [4, "is-selected"],
73
+ "clientStyling": [1, "client-styling"],
74
+ "clientStylingUrlContent": [1, "client-styling-url-content"],
75
+ "limitStylingAppends": [32]
41
76
  }]);
42
77
  function defineCustomElement() {
43
78
  if (typeof customElements === "undefined") {