@everymatrix/lottery-grid 1.52.6 → 1.53.0

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.
@@ -8,7 +8,7 @@ const appGlobals = require('./app-globals-3a1e7e63.js');
8
8
  const defineCustomElements = async (win, options) => {
9
9
  if (typeof window === 'undefined') return undefined;
10
10
  await appGlobals.globalScripts();
11
- return index.bootstrapLazy([["lottery-bullet_2.cjs",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"numbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
11
+ return index.bootstrapLazy([["lottery-bullet_2.cjs",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"numberRange":[513,"number-range"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"secondaryNumbers":[513,"secondary-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"highNumber":[514,"high-number"],"lowNumber":[514,"low-number"],"selectionType":[513,"selection-type"],"partialQuickpickAvailable":[516,"partial-quickpick-available"],"numbers":[32],"bonusNumbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"isBonus":[516,"is-bonus"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
12
12
  };
13
13
 
14
14
  exports.setNonce = index.setNonce;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-8b26cfcb.js');
6
6
 
7
- const lotteryBulletCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}@-webkit-keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.22) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.2) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@-webkit-keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.Circle{-webkit-animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;cursor:pointer;color:#000000;display:block;height:30px;width:30px;margin:0;display:flex;align-items:center;justify-content:center;justify-content:center;align-items:center;border:solid 2px #ffffff;background:radial-gradient(circle at top, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 100%);font-weight:bold;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.5);user-select:none;font-size:16px;line-height:16px;font-weight:600;position:relative}.Circle:hover{-webkit-animation:hover-rotate 0.4s linear both;animation:hover-rotate 0.4s linear both;background:radial-gradient(circle at top, rgb(255, 255, 255) 0%, rgb(241, 241, 241) 100%)}.Circle.Selected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#ffffff;background:#9EC258;background:-webkit-radial-gradient(top, #00958f, #004D4A);background:-moz-radial-gradient(top, #00958f, #004D4A);background:radial-gradient(to bottom, #00958f, #004D4A);border:solid 2px #00958f}.Circle.Disabled{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#f1f1f1;background:#D4D4D4;border:solid 2px #D4D4D4;cursor:default}.Circle.DisabledSelected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#f1f1f1;background:#9EC258;background:-webkit-radial-gradient(top, #00958f, #004D4A);background:-moz-radial-gradient(top, #00958f, #004D4A);background:radial-gradient(to bottom, #00958f, #004D4A);border:solid 2px #D4D4D4;cursor:default}";
7
+ const lotteryBulletCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}@-webkit-keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.22) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.2) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@-webkit-keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.Circle{-webkit-animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;cursor:pointer;color:var(--emw--button-text-color, #000);display:block;height:30px;width:30px;margin:0;display:flex;align-items:center;justify-content:center;justify-content:center;align-items:center;border:solid 2px var(--emw--color-gray-transparency-100, rgb(255, 255, 255));background:radial-gradient(circle at top, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 0%, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 100%);font-weight:bold;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.5);user-select:none;font-size:16px;line-height:16px;font-weight:600;position:relative}.Circle:hover{-webkit-animation:hover-rotate 0.4s linear both;animation:hover-rotate 0.4s linear both;background:radial-gradient(circle at top, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 0%, var(--emw--color-gray-50, #F1F1F1) 100%)}.Circle.Selected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-transparency-100, rgb(255, 255, 255));background:var(--emw--color-primary, #9EC258);background:-webkit-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:-moz-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:radial-gradient(circle at top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));border:solid 2px var(--emw--button-border-color, #00958f)}.Circle.Disabled{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-50, #F1F1F1);background:var(--emw--color-gray-100, #D4D4D4);border:solid 2px var(--emw--color-gray-100, #D4D4D4);cursor:default}.Circle.DisabledSelected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-50, #F1F1F1);background:var(--emw--color-primary, #9EC258);background:-webkit-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:-moz-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:radial-gradient(circle at top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));border:solid 2px var(--emw--color-gray-100, #D4D4D4);cursor:default}.Circle.Bonus{background:var(--emw--color-error, #FF3D00)}";
8
8
  const LotteryBulletStyle0 = lotteryBulletCss;
9
9
 
10
10
  const LotteryBullet = class {
@@ -35,6 +35,7 @@ const LotteryBullet = class {
35
35
  this.value = '0';
36
36
  this.selectable = true;
37
37
  this.isSelected = false;
38
+ this.isBonus = false;
38
39
  this.clientStyling = '';
39
40
  this.clientStylingUrlContent = '';
40
41
  this.limitStylingAppends = false;
@@ -51,7 +52,7 @@ const LotteryBullet = class {
51
52
  // end custom styling area
52
53
  }
53
54
  render() {
54
- return (index.h("div", { key: 'af3601684ecf1f39d65fc9461430cba96b9e4b8c', class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : ''), onClick: () => this.select(), ref: el => this.stylingContainer = el }, this.value));
55
+ return (index.h("div", { key: 'a21cbee8f556bfbbe9f97be5f44bfc08b6f24dd6', class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : '') + (this.isBonus ? ' Bonus' : ''), onClick: () => this.select(), ref: el => this.stylingContainer = el }, this.value));
55
56
  }
56
57
  };
57
58
  LotteryBullet.style = LotteryBulletStyle0;
@@ -64,6 +65,7 @@ const LotteryGrid = class {
64
65
  index.registerInstance(this, hostRef);
65
66
  this.gridFilledEvent = index.createEvent(this, "gridFilled", 7);
66
67
  this.gridDirtyEvent = index.createEvent(this, "gridDirty", 7);
68
+ this.gridClearAllEvent = index.createEvent(this, "gridClearAllEvent", 7);
67
69
  this.selectedCounter = 0;
68
70
  this.setClientStyling = () => {
69
71
  let sheet = document.createElement('style');
@@ -80,17 +82,24 @@ const LotteryGrid = class {
80
82
  this.ticketId = undefined;
81
83
  this.totalNumbers = 0;
82
84
  this.gameId = undefined;
83
- this.maximumAllowed = 0;
84
- this.minimumAllowed = 1;
85
+ this.maximumAllowed = 7;
86
+ this.minimumAllowed = 3;
87
+ this.numberRange = undefined;
85
88
  this.selectable = true;
86
89
  this.selectedNumbers = '';
90
+ this.secondaryNumbers = '';
87
91
  this.displaySelected = false;
88
92
  this.language = 'en';
89
93
  this.gridIndex = undefined;
90
94
  this.gridType = '';
91
95
  this.clientStyling = '';
92
96
  this.clientStylingUrlContent = '';
97
+ this.highNumber = 47;
98
+ this.lowNumber = 1;
99
+ this.selectionType = 'mainSelection';
100
+ this.partialQuickpickAvailable = false;
93
101
  this.numbers = [];
102
+ this.bonusNumbers = [];
94
103
  this.limitStylingAppends = false;
95
104
  }
96
105
  connectedCallback() {
@@ -99,6 +108,15 @@ const LotteryGrid = class {
99
108
  selected = this.selectedNumbers.split(',');
100
109
  this.selectedCounter = selected.length;
101
110
  }
111
+ if (this.secondaryNumbers.length > 0) {
112
+ this.bonusNumbers = this.secondaryNumbers.split(',').map(item => {
113
+ return {
114
+ number: item,
115
+ selected: true,
116
+ selectable: this.selectable
117
+ };
118
+ });
119
+ }
102
120
  if (this.displaySelected) {
103
121
  selected.forEach((item) => {
104
122
  this.numbers.push({
@@ -109,9 +127,8 @@ const LotteryGrid = class {
109
127
  });
110
128
  }
111
129
  else {
112
- [...Array(this.totalNumbers).keys()]
113
- .map(number => (number + 1).toString())
114
- .forEach((number) => {
130
+ let gridNumbers = Array.from({ length: this.highNumber - this.lowNumber + 1 }, (_, index) => this.lowNumber + index);
131
+ gridNumbers.map(number => number.toString()).forEach((number) => {
115
132
  this.numbers.push({
116
133
  number,
117
134
  selected: selected.indexOf(number) >= 0 ? true : false,
@@ -142,56 +159,81 @@ const LotteryGrid = class {
142
159
  }
143
160
  lotteryBulletSelectionHandler(event) {
144
161
  this.numbers = this.numbers.map((item) => {
145
- if (item.number == event.detail.value) {
146
- return {
147
- number: item.number,
148
- selected: event.detail.selected,
149
- selectable: item.selectable
150
- };
151
- }
152
162
  return {
153
163
  number: item.number,
154
- selected: item.selected,
164
+ selected: item.number == event.detail.value ? event.detail.selected : item.selected,
155
165
  selectable: item.selectable
156
166
  };
157
167
  });
158
168
  if (event.detail.selected) {
159
169
  this.selectedCounter += 1;
160
- if (this.selectedCounter == this.maximumAllowed) {
170
+ if (this.selectedCounter >= this.minimumAllowed && this.selectedCounter <= this.maximumAllowed) {
161
171
  this.numbers = this.numbers.map((item) => {
162
- return {
163
- number: item.number,
164
- selected: item.selected,
165
- selectable: item.selected ? true : false
166
- };
172
+ if (this.selectedCounter === this.maximumAllowed) {
173
+ return {
174
+ number: item.number,
175
+ selected: item.selected,
176
+ selectable: item.selected ? true : false
177
+ };
178
+ }
179
+ else {
180
+ return {
181
+ number: item.number,
182
+ selected: item.selected,
183
+ selectable: true
184
+ };
185
+ }
167
186
  });
168
- this.gridFilledEvent.emit({
187
+ if (JSON.parse(this.numberRange).includes(this.selectedCounter)) {
188
+ this.gridFilledEvent.emit({
189
+ id: this.ticketId,
190
+ index: this.gridIndex,
191
+ selectionType: this.selectionType,
192
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
193
+ });
194
+ }
195
+ else {
196
+ this.gridDirtyEvent.emit({
197
+ id: this.ticketId,
198
+ index: this.gridIndex,
199
+ selectionType: this.selectionType,
200
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
201
+ });
202
+ }
203
+ }
204
+ }
205
+ else {
206
+ this.selectedCounter -= 1;
207
+ this.numbers = this.numbers.map((item) => {
208
+ return {
209
+ number: item.number,
210
+ selected: item.selected,
211
+ selectable: true
212
+ };
213
+ });
214
+ if (this.selectedCounter < this.minimumAllowed) {
215
+ this.gridDirtyEvent.emit({
169
216
  id: this.ticketId,
170
217
  index: this.gridIndex,
218
+ selectionType: this.selectionType,
171
219
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
172
220
  });
173
221
  }
174
- }
175
- else {
176
- if (this.selectedCounter == this.maximumAllowed) {
177
- this.numbers = this.numbers.map((item) => {
178
- return {
179
- number: item.number,
180
- selected: item.selected,
181
- selectable: true
182
- };
183
- });
184
- this.gridDirtyEvent.emit({
222
+ else {
223
+ this.gridFilledEvent.emit({
185
224
  id: this.ticketId,
186
225
  index: this.gridIndex,
226
+ selectionType: this.selectionType,
187
227
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
188
228
  });
189
229
  }
190
- this.selectedCounter -= 1;
230
+ if (this.selectedCounter === 0) {
231
+ this.gridClearAllEvent.emit(this.gridIndex);
232
+ }
191
233
  }
192
234
  }
193
235
  async resetSelectionHandler(event) {
194
- if (event.detail && event.detail == this.ticketId) {
236
+ if (event.detail && event.detail.ticketId == this.ticketId && event.detail.index === this.gridIndex) {
195
237
  this.selectedCounter = 0;
196
238
  this.numbers = this.numbers.map((item) => {
197
239
  return {
@@ -203,34 +245,35 @@ const LotteryGrid = class {
203
245
  this.gridDirtyEvent.emit({
204
246
  id: this.ticketId,
205
247
  index: this.gridIndex,
206
- selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
248
+ selectionType: this.selectionType,
249
+ selectedNumbers: []
207
250
  });
208
251
  }
209
252
  }
210
253
  async autoSelectionHandler(event) {
211
- if (event.detail && event.detail == this.ticketId) {
254
+ if (event.detail && event.detail.ticketId == this.ticketId && event.detail.index === this.gridIndex) {
212
255
  this.resetSelectionHandler(event);
213
- let array = [...Array(this.totalNumbers).keys()]
214
- .map(number => number + 1);
256
+ let array = Array.from({ length: this.highNumber - this.lowNumber + 1 }, (_, index) => this.lowNumber + index);
215
257
  array = this.shuffleArray(array);
216
258
  array = array.slice(0, this.minimumAllowed);
217
259
  this.numbers = this.numbers.map((item) => {
218
260
  return {
219
261
  number: item.number,
220
262
  selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
221
- selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
263
+ selectable: this.partialQuickpickAvailable ? array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false : false,
222
264
  };
223
265
  });
224
266
  this.gridFilledEvent.emit({
225
267
  id: this.ticketId,
226
268
  index: this.gridIndex,
269
+ selectionType: this.selectionType,
227
270
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
228
271
  });
229
- this.selectedCounter = this.maximumAllowed;
272
+ this.selectedCounter = this.minimumAllowed;
230
273
  }
231
274
  }
232
275
  render() {
233
- return (index.h("div", { key: '54b9187146b5d2625fd5ce7f53f38abf091cd943', class: "GridContainer", ref: el => this.stylingContainer = el }, index.h("div", { key: 'e7e8570557ebaa78edf881cdbc1ed720028cdf6e', class: this.gridType === 'ticket' ? 'Grid TicketGrid' : 'Grid' }, this.numbers.map((item) => index.h("div", null, index.h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))))));
276
+ return (index.h("div", { key: '8ad436904a126e6bee036c7372cf45c075022e5f', class: "GridContainer", ref: el => this.stylingContainer = el }, index.h("div", { key: '5a8818209485f0808a99978910f6f26473dd6f59', class: this.gridType === 'ticket' ? 'Grid TicketGrid' : 'Grid' }, this.numbers.map((item) => index.h("div", null, index.h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))), this.bonusNumbers.length ? this.bonusNumbers.map((item) => index.h("div", null, index.h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "is-bonus": true, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))) : '')));
234
277
  }
235
278
  };
236
279
  LotteryGrid.style = LotteryGridStyle0;
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["lottery-bullet_2.cjs",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"numbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
22
+ return index.bootstrapLazy([["lottery-bullet_2.cjs",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"numberRange":[513,"number-range"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"secondaryNumbers":[513,"secondary-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"highNumber":[514,"high-number"],"lowNumber":[514,"low-number"],"selectionType":[513,"selection-type"],"partialQuickpickAvailable":[516,"partial-quickpick-available"],"numbers":[32],"bonusNumbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"isBonus":[516,"is-bonus"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -1,5 +1,4 @@
1
1
  import { h } from "@stencil/core";
2
- // import { translate } from '../../utils/locale.utils';
3
2
  import "../../../../../lottery-bullet/dist/types/index";
4
3
  export class LotteryGrid {
5
4
  constructor() {
@@ -19,17 +18,24 @@ export class LotteryGrid {
19
18
  this.ticketId = undefined;
20
19
  this.totalNumbers = 0;
21
20
  this.gameId = undefined;
22
- this.maximumAllowed = 0;
23
- this.minimumAllowed = 1;
21
+ this.maximumAllowed = 7;
22
+ this.minimumAllowed = 3;
23
+ this.numberRange = undefined;
24
24
  this.selectable = true;
25
25
  this.selectedNumbers = '';
26
+ this.secondaryNumbers = '';
26
27
  this.displaySelected = false;
27
28
  this.language = 'en';
28
29
  this.gridIndex = undefined;
29
30
  this.gridType = '';
30
31
  this.clientStyling = '';
31
32
  this.clientStylingUrlContent = '';
33
+ this.highNumber = 47;
34
+ this.lowNumber = 1;
35
+ this.selectionType = 'mainSelection';
36
+ this.partialQuickpickAvailable = false;
32
37
  this.numbers = [];
38
+ this.bonusNumbers = [];
33
39
  this.limitStylingAppends = false;
34
40
  }
35
41
  connectedCallback() {
@@ -38,6 +44,15 @@ export class LotteryGrid {
38
44
  selected = this.selectedNumbers.split(',');
39
45
  this.selectedCounter = selected.length;
40
46
  }
47
+ if (this.secondaryNumbers.length > 0) {
48
+ this.bonusNumbers = this.secondaryNumbers.split(',').map(item => {
49
+ return {
50
+ number: item,
51
+ selected: true,
52
+ selectable: this.selectable
53
+ };
54
+ });
55
+ }
41
56
  if (this.displaySelected) {
42
57
  selected.forEach((item) => {
43
58
  this.numbers.push({
@@ -48,9 +63,8 @@ export class LotteryGrid {
48
63
  });
49
64
  }
50
65
  else {
51
- [...Array(this.totalNumbers).keys()]
52
- .map(number => (number + 1).toString())
53
- .forEach((number) => {
66
+ let gridNumbers = Array.from({ length: this.highNumber - this.lowNumber + 1 }, (_, index) => this.lowNumber + index);
67
+ gridNumbers.map(number => number.toString()).forEach((number) => {
54
68
  this.numbers.push({
55
69
  number,
56
70
  selected: selected.indexOf(number) >= 0 ? true : false,
@@ -81,56 +95,81 @@ export class LotteryGrid {
81
95
  }
82
96
  lotteryBulletSelectionHandler(event) {
83
97
  this.numbers = this.numbers.map((item) => {
84
- if (item.number == event.detail.value) {
85
- return {
86
- number: item.number,
87
- selected: event.detail.selected,
88
- selectable: item.selectable
89
- };
90
- }
91
98
  return {
92
99
  number: item.number,
93
- selected: item.selected,
100
+ selected: item.number == event.detail.value ? event.detail.selected : item.selected,
94
101
  selectable: item.selectable
95
102
  };
96
103
  });
97
104
  if (event.detail.selected) {
98
105
  this.selectedCounter += 1;
99
- if (this.selectedCounter == this.maximumAllowed) {
106
+ if (this.selectedCounter >= this.minimumAllowed && this.selectedCounter <= this.maximumAllowed) {
100
107
  this.numbers = this.numbers.map((item) => {
101
- return {
102
- number: item.number,
103
- selected: item.selected,
104
- selectable: item.selected ? true : false
105
- };
108
+ if (this.selectedCounter === this.maximumAllowed) {
109
+ return {
110
+ number: item.number,
111
+ selected: item.selected,
112
+ selectable: item.selected ? true : false
113
+ };
114
+ }
115
+ else {
116
+ return {
117
+ number: item.number,
118
+ selected: item.selected,
119
+ selectable: true
120
+ };
121
+ }
106
122
  });
107
- this.gridFilledEvent.emit({
123
+ if (JSON.parse(this.numberRange).includes(this.selectedCounter)) {
124
+ this.gridFilledEvent.emit({
125
+ id: this.ticketId,
126
+ index: this.gridIndex,
127
+ selectionType: this.selectionType,
128
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
129
+ });
130
+ }
131
+ else {
132
+ this.gridDirtyEvent.emit({
133
+ id: this.ticketId,
134
+ index: this.gridIndex,
135
+ selectionType: this.selectionType,
136
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
137
+ });
138
+ }
139
+ }
140
+ }
141
+ else {
142
+ this.selectedCounter -= 1;
143
+ this.numbers = this.numbers.map((item) => {
144
+ return {
145
+ number: item.number,
146
+ selected: item.selected,
147
+ selectable: true
148
+ };
149
+ });
150
+ if (this.selectedCounter < this.minimumAllowed) {
151
+ this.gridDirtyEvent.emit({
108
152
  id: this.ticketId,
109
153
  index: this.gridIndex,
154
+ selectionType: this.selectionType,
110
155
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
111
156
  });
112
157
  }
113
- }
114
- else {
115
- if (this.selectedCounter == this.maximumAllowed) {
116
- this.numbers = this.numbers.map((item) => {
117
- return {
118
- number: item.number,
119
- selected: item.selected,
120
- selectable: true
121
- };
122
- });
123
- this.gridDirtyEvent.emit({
158
+ else {
159
+ this.gridFilledEvent.emit({
124
160
  id: this.ticketId,
125
161
  index: this.gridIndex,
162
+ selectionType: this.selectionType,
126
163
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
127
164
  });
128
165
  }
129
- this.selectedCounter -= 1;
166
+ if (this.selectedCounter === 0) {
167
+ this.gridClearAllEvent.emit(this.gridIndex);
168
+ }
130
169
  }
131
170
  }
132
171
  async resetSelectionHandler(event) {
133
- if (event.detail && event.detail == this.ticketId) {
172
+ if (event.detail && event.detail.ticketId == this.ticketId && event.detail.index === this.gridIndex) {
134
173
  this.selectedCounter = 0;
135
174
  this.numbers = this.numbers.map((item) => {
136
175
  return {
@@ -142,34 +181,35 @@ export class LotteryGrid {
142
181
  this.gridDirtyEvent.emit({
143
182
  id: this.ticketId,
144
183
  index: this.gridIndex,
145
- selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
184
+ selectionType: this.selectionType,
185
+ selectedNumbers: []
146
186
  });
147
187
  }
148
188
  }
149
189
  async autoSelectionHandler(event) {
150
- if (event.detail && event.detail == this.ticketId) {
190
+ if (event.detail && event.detail.ticketId == this.ticketId && event.detail.index === this.gridIndex) {
151
191
  this.resetSelectionHandler(event);
152
- let array = [...Array(this.totalNumbers).keys()]
153
- .map(number => number + 1);
192
+ let array = Array.from({ length: this.highNumber - this.lowNumber + 1 }, (_, index) => this.lowNumber + index);
154
193
  array = this.shuffleArray(array);
155
194
  array = array.slice(0, this.minimumAllowed);
156
195
  this.numbers = this.numbers.map((item) => {
157
196
  return {
158
197
  number: item.number,
159
198
  selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
160
- selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
199
+ selectable: this.partialQuickpickAvailable ? array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false : false,
161
200
  };
162
201
  });
163
202
  this.gridFilledEvent.emit({
164
203
  id: this.ticketId,
165
204
  index: this.gridIndex,
205
+ selectionType: this.selectionType,
166
206
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
167
207
  });
168
- this.selectedCounter = this.maximumAllowed;
208
+ this.selectedCounter = this.minimumAllowed;
169
209
  }
170
210
  }
171
211
  render() {
172
- return (h("div", { key: '54b9187146b5d2625fd5ce7f53f38abf091cd943', class: "GridContainer", ref: el => this.stylingContainer = el }, h("div", { key: 'e7e8570557ebaa78edf881cdbc1ed720028cdf6e', class: this.gridType === 'ticket' ? 'Grid TicketGrid' : 'Grid' }, this.numbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))))));
212
+ return (h("div", { key: '8ad436904a126e6bee036c7372cf45c075022e5f', class: "GridContainer", ref: el => this.stylingContainer = el }, h("div", { key: '5a8818209485f0808a99978910f6f26473dd6f59', class: this.gridType === 'ticket' ? 'Grid TicketGrid' : 'Grid' }, this.numbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))), this.bonusNumbers.length ? this.bonusNumbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "is-bonus": true, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))) : '')));
173
213
  }
174
214
  static get is() { return "lottery-grid"; }
175
215
  static get encapsulation() { return "shadow"; }
@@ -253,7 +293,7 @@ export class LotteryGrid {
253
293
  },
254
294
  "attribute": "maximum-allowed",
255
295
  "reflect": true,
256
- "defaultValue": "0"
296
+ "defaultValue": "7"
257
297
  },
258
298
  "minimumAllowed": {
259
299
  "type": "number",
@@ -271,7 +311,24 @@ export class LotteryGrid {
271
311
  },
272
312
  "attribute": "minimum-allowed",
273
313
  "reflect": true,
274
- "defaultValue": "1"
314
+ "defaultValue": "3"
315
+ },
316
+ "numberRange": {
317
+ "type": "string",
318
+ "mutable": false,
319
+ "complexType": {
320
+ "original": "string",
321
+ "resolved": "string",
322
+ "references": {}
323
+ },
324
+ "required": false,
325
+ "optional": false,
326
+ "docs": {
327
+ "tags": [],
328
+ "text": "The number of numbers user can select on the grid"
329
+ },
330
+ "attribute": "number-range",
331
+ "reflect": true
275
332
  },
276
333
  "selectable": {
277
334
  "type": "boolean",
@@ -309,6 +366,24 @@ export class LotteryGrid {
309
366
  "reflect": true,
310
367
  "defaultValue": "''"
311
368
  },
369
+ "secondaryNumbers": {
370
+ "type": "string",
371
+ "mutable": false,
372
+ "complexType": {
373
+ "original": "string",
374
+ "resolved": "string",
375
+ "references": {}
376
+ },
377
+ "required": false,
378
+ "optional": false,
379
+ "docs": {
380
+ "tags": [],
381
+ "text": "Bonus numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1')"
382
+ },
383
+ "attribute": "secondary-numbers",
384
+ "reflect": true,
385
+ "defaultValue": "''"
386
+ },
312
387
  "displaySelected": {
313
388
  "type": "boolean",
314
389
  "mutable": false,
@@ -415,12 +490,85 @@ export class LotteryGrid {
415
490
  "attribute": "client-styling-url-content",
416
491
  "reflect": true,
417
492
  "defaultValue": "''"
493
+ },
494
+ "highNumber": {
495
+ "type": "number",
496
+ "mutable": false,
497
+ "complexType": {
498
+ "original": "number",
499
+ "resolved": "number",
500
+ "references": {}
501
+ },
502
+ "required": false,
503
+ "optional": false,
504
+ "docs": {
505
+ "tags": [],
506
+ "text": "Maximum number of the grid"
507
+ },
508
+ "attribute": "high-number",
509
+ "reflect": true,
510
+ "defaultValue": "47"
511
+ },
512
+ "lowNumber": {
513
+ "type": "number",
514
+ "mutable": false,
515
+ "complexType": {
516
+ "original": "number",
517
+ "resolved": "number",
518
+ "references": {}
519
+ },
520
+ "required": false,
521
+ "optional": false,
522
+ "docs": {
523
+ "tags": [],
524
+ "text": "Lowest number of the grid"
525
+ },
526
+ "attribute": "low-number",
527
+ "reflect": true,
528
+ "defaultValue": "1"
529
+ },
530
+ "selectionType": {
531
+ "type": "string",
532
+ "mutable": false,
533
+ "complexType": {
534
+ "original": "string",
535
+ "resolved": "string",
536
+ "references": {}
537
+ },
538
+ "required": false,
539
+ "optional": false,
540
+ "docs": {
541
+ "tags": [],
542
+ "text": "Type of selection"
543
+ },
544
+ "attribute": "selection-type",
545
+ "reflect": true,
546
+ "defaultValue": "'mainSelection'"
547
+ },
548
+ "partialQuickpickAvailable": {
549
+ "type": "boolean",
550
+ "mutable": false,
551
+ "complexType": {
552
+ "original": "boolean",
553
+ "resolved": "boolean",
554
+ "references": {}
555
+ },
556
+ "required": false,
557
+ "optional": false,
558
+ "docs": {
559
+ "tags": [],
560
+ "text": "Allows partial quickpick or not"
561
+ },
562
+ "attribute": "partial-quickpick-available",
563
+ "reflect": true,
564
+ "defaultValue": "false"
418
565
  }
419
566
  };
420
567
  }
421
568
  static get states() {
422
569
  return {
423
570
  "numbers": {},
571
+ "bonusNumbers": {},
424
572
  "limitStylingAppends": {}
425
573
  };
426
574
  }
@@ -467,6 +615,21 @@ export class LotteryGrid {
467
615
  }
468
616
  }
469
617
  }
618
+ }, {
619
+ "method": "gridClearAllEvent",
620
+ "name": "gridClearAllEvent",
621
+ "bubbles": true,
622
+ "cancelable": true,
623
+ "composed": true,
624
+ "docs": {
625
+ "tags": [],
626
+ "text": "When all the selection of each bullet are cleared, it emits this event"
627
+ },
628
+ "complexType": {
629
+ "original": "number",
630
+ "resolved": "number",
631
+ "references": {}
632
+ }
470
633
  }];
471
634
  }
472
635
  static get listeners() {
@@ -3,23 +3,23 @@ const SUPPORTED_LANGUAGES = ['ro', 'en', 'hr'];
3
3
  const TRANSLATIONS = {
4
4
  en: {
5
5
  resetButton: 'Reset',
6
- autoButton: 'I feel lucky'
6
+ autoButton: 'quick pick'
7
7
  },
8
8
  ro: {
9
9
  resetButton: 'Reseteaza',
10
- autoButton: 'Ma simt norocos'
10
+ autoButton: 'quick pick'
11
11
  },
12
12
  fr: {
13
13
  resetButton: 'Reset',
14
- autoButton: 'I feel lucky'
14
+ autoButton: 'quick pick'
15
15
  },
16
16
  ar: {
17
17
  resetButton: 'Reset',
18
- autoButton: 'I feel lucky'
18
+ autoButton: 'quick pick'
19
19
  },
20
20
  hr: {
21
21
  resetButton: 'Resetiraj',
22
- autoButton: 'Osjećam se sretno'
22
+ autoButton: 'quick pick'
23
23
  }
24
24
  };
25
25
  export const translate = (key, customLang) => {
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-0f993ce5.js';
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy([["lottery-bullet_2",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"numbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
8
+ return bootstrapLazy([["lottery-bullet_2",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"numberRange":[513,"number-range"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"secondaryNumbers":[513,"secondary-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"highNumber":[514,"high-number"],"lowNumber":[514,"low-number"],"selectionType":[513,"selection-type"],"partialQuickpickAvailable":[516,"partial-quickpick-available"],"numbers":[32],"bonusNumbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"isBonus":[516,"is-bonus"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-610c64ca.js';
2
2
 
3
- const lotteryBulletCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}@-webkit-keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.22) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.2) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@-webkit-keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.Circle{-webkit-animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;cursor:pointer;color:#000000;display:block;height:30px;width:30px;margin:0;display:flex;align-items:center;justify-content:center;justify-content:center;align-items:center;border:solid 2px #ffffff;background:radial-gradient(circle at top, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 100%);font-weight:bold;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.5);user-select:none;font-size:16px;line-height:16px;font-weight:600;position:relative}.Circle:hover{-webkit-animation:hover-rotate 0.4s linear both;animation:hover-rotate 0.4s linear both;background:radial-gradient(circle at top, rgb(255, 255, 255) 0%, rgb(241, 241, 241) 100%)}.Circle.Selected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#ffffff;background:#9EC258;background:-webkit-radial-gradient(top, #00958f, #004D4A);background:-moz-radial-gradient(top, #00958f, #004D4A);background:radial-gradient(to bottom, #00958f, #004D4A);border:solid 2px #00958f}.Circle.Disabled{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#f1f1f1;background:#D4D4D4;border:solid 2px #D4D4D4;cursor:default}.Circle.DisabledSelected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#f1f1f1;background:#9EC258;background:-webkit-radial-gradient(top, #00958f, #004D4A);background:-moz-radial-gradient(top, #00958f, #004D4A);background:radial-gradient(to bottom, #00958f, #004D4A);border:solid 2px #D4D4D4;cursor:default}";
3
+ const lotteryBulletCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}@-webkit-keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.22) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.2) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@-webkit-keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.Circle{-webkit-animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;cursor:pointer;color:var(--emw--button-text-color, #000);display:block;height:30px;width:30px;margin:0;display:flex;align-items:center;justify-content:center;justify-content:center;align-items:center;border:solid 2px var(--emw--color-gray-transparency-100, rgb(255, 255, 255));background:radial-gradient(circle at top, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 0%, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 100%);font-weight:bold;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.5);user-select:none;font-size:16px;line-height:16px;font-weight:600;position:relative}.Circle:hover{-webkit-animation:hover-rotate 0.4s linear both;animation:hover-rotate 0.4s linear both;background:radial-gradient(circle at top, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 0%, var(--emw--color-gray-50, #F1F1F1) 100%)}.Circle.Selected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-transparency-100, rgb(255, 255, 255));background:var(--emw--color-primary, #9EC258);background:-webkit-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:-moz-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:radial-gradient(circle at top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));border:solid 2px var(--emw--button-border-color, #00958f)}.Circle.Disabled{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-50, #F1F1F1);background:var(--emw--color-gray-100, #D4D4D4);border:solid 2px var(--emw--color-gray-100, #D4D4D4);cursor:default}.Circle.DisabledSelected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-50, #F1F1F1);background:var(--emw--color-primary, #9EC258);background:-webkit-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:-moz-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:radial-gradient(circle at top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));border:solid 2px var(--emw--color-gray-100, #D4D4D4);cursor:default}.Circle.Bonus{background:var(--emw--color-error, #FF3D00)}";
4
4
  const LotteryBulletStyle0 = lotteryBulletCss;
5
5
 
6
6
  const LotteryBullet = class {
@@ -31,6 +31,7 @@ const LotteryBullet = class {
31
31
  this.value = '0';
32
32
  this.selectable = true;
33
33
  this.isSelected = false;
34
+ this.isBonus = false;
34
35
  this.clientStyling = '';
35
36
  this.clientStylingUrlContent = '';
36
37
  this.limitStylingAppends = false;
@@ -47,7 +48,7 @@ const LotteryBullet = class {
47
48
  // end custom styling area
48
49
  }
49
50
  render() {
50
- return (h("div", { key: 'af3601684ecf1f39d65fc9461430cba96b9e4b8c', class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : ''), onClick: () => this.select(), ref: el => this.stylingContainer = el }, this.value));
51
+ return (h("div", { key: 'a21cbee8f556bfbbe9f97be5f44bfc08b6f24dd6', class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : '') + (this.isBonus ? ' Bonus' : ''), onClick: () => this.select(), ref: el => this.stylingContainer = el }, this.value));
51
52
  }
52
53
  };
53
54
  LotteryBullet.style = LotteryBulletStyle0;
@@ -60,6 +61,7 @@ const LotteryGrid = class {
60
61
  registerInstance(this, hostRef);
61
62
  this.gridFilledEvent = createEvent(this, "gridFilled", 7);
62
63
  this.gridDirtyEvent = createEvent(this, "gridDirty", 7);
64
+ this.gridClearAllEvent = createEvent(this, "gridClearAllEvent", 7);
63
65
  this.selectedCounter = 0;
64
66
  this.setClientStyling = () => {
65
67
  let sheet = document.createElement('style');
@@ -76,17 +78,24 @@ const LotteryGrid = class {
76
78
  this.ticketId = undefined;
77
79
  this.totalNumbers = 0;
78
80
  this.gameId = undefined;
79
- this.maximumAllowed = 0;
80
- this.minimumAllowed = 1;
81
+ this.maximumAllowed = 7;
82
+ this.minimumAllowed = 3;
83
+ this.numberRange = undefined;
81
84
  this.selectable = true;
82
85
  this.selectedNumbers = '';
86
+ this.secondaryNumbers = '';
83
87
  this.displaySelected = false;
84
88
  this.language = 'en';
85
89
  this.gridIndex = undefined;
86
90
  this.gridType = '';
87
91
  this.clientStyling = '';
88
92
  this.clientStylingUrlContent = '';
93
+ this.highNumber = 47;
94
+ this.lowNumber = 1;
95
+ this.selectionType = 'mainSelection';
96
+ this.partialQuickpickAvailable = false;
89
97
  this.numbers = [];
98
+ this.bonusNumbers = [];
90
99
  this.limitStylingAppends = false;
91
100
  }
92
101
  connectedCallback() {
@@ -95,6 +104,15 @@ const LotteryGrid = class {
95
104
  selected = this.selectedNumbers.split(',');
96
105
  this.selectedCounter = selected.length;
97
106
  }
107
+ if (this.secondaryNumbers.length > 0) {
108
+ this.bonusNumbers = this.secondaryNumbers.split(',').map(item => {
109
+ return {
110
+ number: item,
111
+ selected: true,
112
+ selectable: this.selectable
113
+ };
114
+ });
115
+ }
98
116
  if (this.displaySelected) {
99
117
  selected.forEach((item) => {
100
118
  this.numbers.push({
@@ -105,9 +123,8 @@ const LotteryGrid = class {
105
123
  });
106
124
  }
107
125
  else {
108
- [...Array(this.totalNumbers).keys()]
109
- .map(number => (number + 1).toString())
110
- .forEach((number) => {
126
+ let gridNumbers = Array.from({ length: this.highNumber - this.lowNumber + 1 }, (_, index) => this.lowNumber + index);
127
+ gridNumbers.map(number => number.toString()).forEach((number) => {
111
128
  this.numbers.push({
112
129
  number,
113
130
  selected: selected.indexOf(number) >= 0 ? true : false,
@@ -138,56 +155,81 @@ const LotteryGrid = class {
138
155
  }
139
156
  lotteryBulletSelectionHandler(event) {
140
157
  this.numbers = this.numbers.map((item) => {
141
- if (item.number == event.detail.value) {
142
- return {
143
- number: item.number,
144
- selected: event.detail.selected,
145
- selectable: item.selectable
146
- };
147
- }
148
158
  return {
149
159
  number: item.number,
150
- selected: item.selected,
160
+ selected: item.number == event.detail.value ? event.detail.selected : item.selected,
151
161
  selectable: item.selectable
152
162
  };
153
163
  });
154
164
  if (event.detail.selected) {
155
165
  this.selectedCounter += 1;
156
- if (this.selectedCounter == this.maximumAllowed) {
166
+ if (this.selectedCounter >= this.minimumAllowed && this.selectedCounter <= this.maximumAllowed) {
157
167
  this.numbers = this.numbers.map((item) => {
158
- return {
159
- number: item.number,
160
- selected: item.selected,
161
- selectable: item.selected ? true : false
162
- };
168
+ if (this.selectedCounter === this.maximumAllowed) {
169
+ return {
170
+ number: item.number,
171
+ selected: item.selected,
172
+ selectable: item.selected ? true : false
173
+ };
174
+ }
175
+ else {
176
+ return {
177
+ number: item.number,
178
+ selected: item.selected,
179
+ selectable: true
180
+ };
181
+ }
163
182
  });
164
- this.gridFilledEvent.emit({
183
+ if (JSON.parse(this.numberRange).includes(this.selectedCounter)) {
184
+ this.gridFilledEvent.emit({
185
+ id: this.ticketId,
186
+ index: this.gridIndex,
187
+ selectionType: this.selectionType,
188
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
189
+ });
190
+ }
191
+ else {
192
+ this.gridDirtyEvent.emit({
193
+ id: this.ticketId,
194
+ index: this.gridIndex,
195
+ selectionType: this.selectionType,
196
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
197
+ });
198
+ }
199
+ }
200
+ }
201
+ else {
202
+ this.selectedCounter -= 1;
203
+ this.numbers = this.numbers.map((item) => {
204
+ return {
205
+ number: item.number,
206
+ selected: item.selected,
207
+ selectable: true
208
+ };
209
+ });
210
+ if (this.selectedCounter < this.minimumAllowed) {
211
+ this.gridDirtyEvent.emit({
165
212
  id: this.ticketId,
166
213
  index: this.gridIndex,
214
+ selectionType: this.selectionType,
167
215
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
168
216
  });
169
217
  }
170
- }
171
- else {
172
- if (this.selectedCounter == this.maximumAllowed) {
173
- this.numbers = this.numbers.map((item) => {
174
- return {
175
- number: item.number,
176
- selected: item.selected,
177
- selectable: true
178
- };
179
- });
180
- this.gridDirtyEvent.emit({
218
+ else {
219
+ this.gridFilledEvent.emit({
181
220
  id: this.ticketId,
182
221
  index: this.gridIndex,
222
+ selectionType: this.selectionType,
183
223
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
184
224
  });
185
225
  }
186
- this.selectedCounter -= 1;
226
+ if (this.selectedCounter === 0) {
227
+ this.gridClearAllEvent.emit(this.gridIndex);
228
+ }
187
229
  }
188
230
  }
189
231
  async resetSelectionHandler(event) {
190
- if (event.detail && event.detail == this.ticketId) {
232
+ if (event.detail && event.detail.ticketId == this.ticketId && event.detail.index === this.gridIndex) {
191
233
  this.selectedCounter = 0;
192
234
  this.numbers = this.numbers.map((item) => {
193
235
  return {
@@ -199,34 +241,35 @@ const LotteryGrid = class {
199
241
  this.gridDirtyEvent.emit({
200
242
  id: this.ticketId,
201
243
  index: this.gridIndex,
202
- selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
244
+ selectionType: this.selectionType,
245
+ selectedNumbers: []
203
246
  });
204
247
  }
205
248
  }
206
249
  async autoSelectionHandler(event) {
207
- if (event.detail && event.detail == this.ticketId) {
250
+ if (event.detail && event.detail.ticketId == this.ticketId && event.detail.index === this.gridIndex) {
208
251
  this.resetSelectionHandler(event);
209
- let array = [...Array(this.totalNumbers).keys()]
210
- .map(number => number + 1);
252
+ let array = Array.from({ length: this.highNumber - this.lowNumber + 1 }, (_, index) => this.lowNumber + index);
211
253
  array = this.shuffleArray(array);
212
254
  array = array.slice(0, this.minimumAllowed);
213
255
  this.numbers = this.numbers.map((item) => {
214
256
  return {
215
257
  number: item.number,
216
258
  selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
217
- selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
259
+ selectable: this.partialQuickpickAvailable ? array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false : false,
218
260
  };
219
261
  });
220
262
  this.gridFilledEvent.emit({
221
263
  id: this.ticketId,
222
264
  index: this.gridIndex,
265
+ selectionType: this.selectionType,
223
266
  selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
224
267
  });
225
- this.selectedCounter = this.maximumAllowed;
268
+ this.selectedCounter = this.minimumAllowed;
226
269
  }
227
270
  }
228
271
  render() {
229
- return (h("div", { key: '54b9187146b5d2625fd5ce7f53f38abf091cd943', class: "GridContainer", ref: el => this.stylingContainer = el }, h("div", { key: 'e7e8570557ebaa78edf881cdbc1ed720028cdf6e', class: this.gridType === 'ticket' ? 'Grid TicketGrid' : 'Grid' }, this.numbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))))));
272
+ return (h("div", { key: '8ad436904a126e6bee036c7372cf45c075022e5f', class: "GridContainer", ref: el => this.stylingContainer = el }, h("div", { key: '5a8818209485f0808a99978910f6f26473dd6f59', class: this.gridType === 'ticket' ? 'Grid TicketGrid' : 'Grid' }, this.numbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))), this.bonusNumbers.length ? this.bonusNumbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected, "is-bonus": true, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }))) : '')));
230
273
  }
231
274
  };
232
275
  LotteryGrid.style = LotteryGridStyle0;
@@ -16,5 +16,5 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy([["lottery-bullet_2",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"numbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
19
+ return bootstrapLazy([["lottery-bullet_2",[[1,"lottery-grid",{"ticketId":[514,"ticket-id"],"totalNumbers":[514,"total-numbers"],"gameId":[513,"game-id"],"maximumAllowed":[514,"maximum-allowed"],"minimumAllowed":[514,"minimum-allowed"],"numberRange":[513,"number-range"],"selectable":[516],"selectedNumbers":[513,"selected-numbers"],"secondaryNumbers":[513,"secondary-numbers"],"displaySelected":[516,"display-selected"],"language":[513],"gridIndex":[514,"grid-index"],"gridType":[513,"grid-type"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"highNumber":[514,"high-number"],"lowNumber":[514,"low-number"],"selectionType":[513,"selection-type"],"partialQuickpickAvailable":[516,"partial-quickpick-available"],"numbers":[32],"bonusNumbers":[32],"limitStylingAppends":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[513],"selectable":[516],"isSelected":[516,"is-selected"],"isBonus":[516,"is-bonus"],"clientStyling":[513,"client-styling"],"clientStylingUrlContent":[513,"client-styling-url-content"],"limitStylingAppends":[32]}]]]], options);
20
20
  });
@@ -1 +1 @@
1
- import{p as e,b as t}from"./p-a2add9a5.js";export{s as setNonce}from"./p-a2add9a5.js";import{g as l}from"./p-e1255160.js";(()=>{const t=import.meta.url,l={};return""!==t&&(l.resourcesUrl=new URL(".",t).href),e(l)})().then((async e=>(await l(),t([["p-95806832",[[1,"lottery-grid",{ticketId:[514,"ticket-id"],totalNumbers:[514,"total-numbers"],gameId:[513,"game-id"],maximumAllowed:[514,"maximum-allowed"],minimumAllowed:[514,"minimum-allowed"],selectable:[516],selectedNumbers:[513,"selected-numbers"],displaySelected:[516,"display-selected"],language:[513],gridIndex:[514,"grid-index"],gridType:[513,"grid-type"],clientStyling:[513,"client-styling"],clientStylingUrlContent:[513,"client-styling-url-content"],numbers:[32],limitStylingAppends:[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{value:[513],selectable:[516],isSelected:[516,"is-selected"],clientStyling:[513,"client-styling"],clientStylingUrlContent:[513,"client-styling-url-content"],limitStylingAppends:[32]}]]]],e))));
1
+ import{p as e,b as t}from"./p-a2add9a5.js";export{s as setNonce}from"./p-a2add9a5.js";import{g as l}from"./p-e1255160.js";(()=>{const t=import.meta.url,l={};return""!==t&&(l.resourcesUrl=new URL(".",t).href),e(l)})().then((async e=>(await l(),t([["p-a27a4bfc",[[1,"lottery-grid",{ticketId:[514,"ticket-id"],totalNumbers:[514,"total-numbers"],gameId:[513,"game-id"],maximumAllowed:[514,"maximum-allowed"],minimumAllowed:[514,"minimum-allowed"],numberRange:[513,"number-range"],selectable:[516],selectedNumbers:[513,"selected-numbers"],secondaryNumbers:[513,"secondary-numbers"],displaySelected:[516,"display-selected"],language:[513],gridIndex:[514,"grid-index"],gridType:[513,"grid-type"],clientStyling:[513,"client-styling"],clientStylingUrlContent:[513,"client-styling-url-content"],highNumber:[514,"high-number"],lowNumber:[514,"low-number"],selectionType:[513,"selection-type"],partialQuickpickAvailable:[516,"partial-quickpick-available"],numbers:[32],bonusNumbers:[32],limitStylingAppends:[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{value:[513],selectable:[516],isSelected:[516,"is-selected"],isBonus:[516,"is-bonus"],clientStyling:[513,"client-styling"],clientStylingUrlContent:[513,"client-styling-url-content"],limitStylingAppends:[32]}]]]],e))));
@@ -0,0 +1 @@
1
+ import{r as t,c as e,h as i}from"./p-a2add9a5.js";const s=class{constructor(i){t(this,i),this.bulletEvent=e(this,"lotteryBulletSelection",7),this.select=()=>{this.selectable&&(this.isSelected=!this.isSelected,this.bulletEvent.emit({value:this.value,selected:this.isSelected}))},this.setClientStyling=()=>{let t=document.createElement("style");t.innerHTML=this.clientStyling,this.stylingContainer.prepend(t)},this.setClientStylingURL=()=>{let t=document.createElement("style");setTimeout((()=>{t.innerHTML=this.clientStylingUrlContent,this.stylingContainer.prepend(t)}),1)},this.value="0",this.selectable=!0,this.isSelected=!1,this.isBonus=!1,this.clientStyling="",this.clientStylingUrlContent="",this.limitStylingAppends=!1}componentDidRender(){!this.limitStylingAppends&&this.stylingContainer&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrlContent&&this.setClientStylingURL(),this.limitStylingAppends=!0)}render(){return i("div",{key:"a21cbee8f556bfbbe9f97be5f44bfc08b6f24dd6",class:"Circle "+(this.selectable?"":"Disabled")+(this.isSelected?"Selected":"")+(this.isBonus?" Bonus":""),onClick:()=>this.select(),ref:t=>this.stylingContainer=t},this.value)}};s.style='@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap");:host{display:block;font-family:"Roboto", sans-serif}@-webkit-keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.22) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.2) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@-webkit-keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.Circle{-webkit-animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;cursor:pointer;color:var(--emw--button-text-color, #000);display:block;height:30px;width:30px;margin:0;display:flex;align-items:center;justify-content:center;justify-content:center;align-items:center;border:solid 2px var(--emw--color-gray-transparency-100, rgb(255, 255, 255));background:radial-gradient(circle at top, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 0%, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 100%);font-weight:bold;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.5);user-select:none;font-size:16px;line-height:16px;font-weight:600;position:relative}.Circle:hover{-webkit-animation:hover-rotate 0.4s linear both;animation:hover-rotate 0.4s linear both;background:radial-gradient(circle at top, var(--emw--color-gray-transparency-100, rgb(255, 255, 255)) 0%, var(--emw--color-gray-50, #F1F1F1) 100%)}.Circle.Selected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-transparency-100, rgb(255, 255, 255));background:var(--emw--color-primary, #9EC258);background:-webkit-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:-moz-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:radial-gradient(circle at top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));border:solid 2px var(--emw--button-border-color, #00958f)}.Circle.Disabled{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-50, #F1F1F1);background:var(--emw--color-gray-100, #D4D4D4);border:solid 2px var(--emw--color-gray-100, #D4D4D4);cursor:default}.Circle.DisabledSelected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:var(--emw--color-gray-50, #F1F1F1);background:var(--emw--color-primary, #9EC258);background:-webkit-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:-moz-radial-gradient(top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));background:radial-gradient(circle at top, var(--emw--button-background-color, #00958f), var(--emw--color-primary-variant, #004D4A));border:solid 2px var(--emw--color-gray-100, #D4D4D4);cursor:default}.Circle.Bonus{background:var(--emw--color-error, #FF3D00)}';const r=class{constructor(i){t(this,i),this.gridFilledEvent=e(this,"gridFilled",7),this.gridDirtyEvent=e(this,"gridDirty",7),this.gridClearAllEvent=e(this,"gridClearAllEvent",7),this.selectedCounter=0,this.setClientStyling=()=>{let t=document.createElement("style");t.innerHTML=this.clientStyling,this.stylingContainer.prepend(t)},this.setClientStylingURL=()=>{let t=document.createElement("style");setTimeout((()=>{t.innerHTML=this.clientStylingUrlContent,this.stylingContainer.prepend(t)}),1)},this.ticketId=void 0,this.totalNumbers=0,this.gameId=void 0,this.maximumAllowed=7,this.minimumAllowed=3,this.numberRange=void 0,this.selectable=!0,this.selectedNumbers="",this.secondaryNumbers="",this.displaySelected=!1,this.language="en",this.gridIndex=void 0,this.gridType="",this.clientStyling="",this.clientStylingUrlContent="",this.highNumber=47,this.lowNumber=1,this.selectionType="mainSelection",this.partialQuickpickAvailable=!1,this.numbers=[],this.bonusNumbers=[],this.limitStylingAppends=!1}connectedCallback(){let t=[];this.selectedNumbers.length>0&&(t=this.selectedNumbers.split(","),this.selectedCounter=t.length),this.secondaryNumbers.length>0&&(this.bonusNumbers=this.secondaryNumbers.split(",").map((t=>({number:t,selected:!0,selectable:this.selectable})))),this.displaySelected?t.forEach((t=>{this.numbers.push({number:t,selected:!0,selectable:this.selectable})})):Array.from({length:this.highNumber-this.lowNumber+1},((t,e)=>this.lowNumber+e)).map((t=>t.toString())).forEach((e=>{this.numbers.push({number:e,selected:t.indexOf(e)>=0,selectable:this.selectedCounter!=this.maximumAllowed&&this.selectable})}))}componentDidRender(){!this.limitStylingAppends&&this.stylingContainer&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrlContent&&this.setClientStylingURL(),this.limitStylingAppends=!0)}shuffleArray(t){const e=[];for(;t.length>0;){const i=Math.floor(Math.random()*t.length);e.push(t.splice(i,1)[0])}return e}lotteryBulletSelectionHandler(t){this.numbers=this.numbers.map((e=>({number:e.number,selected:e.number==t.detail.value?t.detail.selected:e.selected,selectable:e.selectable}))),t.detail.selected?(this.selectedCounter+=1,this.selectedCounter>=this.minimumAllowed&&this.selectedCounter<=this.maximumAllowed&&(this.numbers=this.numbers.map((t=>this.selectedCounter===this.maximumAllowed?{number:t.number,selected:t.selected,selectable:!!t.selected}:{number:t.number,selected:t.selected,selectable:!0})),JSON.parse(this.numberRange).includes(this.selectedCounter)?this.gridFilledEvent.emit({id:this.ticketId,index:this.gridIndex,selectionType:this.selectionType,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}):this.gridDirtyEvent.emit({id:this.ticketId,index:this.gridIndex,selectionType:this.selectionType,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}))):(this.selectedCounter-=1,this.numbers=this.numbers.map((t=>({number:t.number,selected:t.selected,selectable:!0}))),this.selectedCounter<this.minimumAllowed?this.gridDirtyEvent.emit({id:this.ticketId,index:this.gridIndex,selectionType:this.selectionType,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}):this.gridFilledEvent.emit({id:this.ticketId,index:this.gridIndex,selectionType:this.selectionType,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}),0===this.selectedCounter&&this.gridClearAllEvent.emit(this.gridIndex))}async resetSelectionHandler(t){t.detail&&t.detail.ticketId==this.ticketId&&t.detail.index===this.gridIndex&&(this.selectedCounter=0,this.numbers=this.numbers.map((t=>({number:t.number,selected:!1,selectable:this.selectable}))),this.gridDirtyEvent.emit({id:this.ticketId,index:this.gridIndex,selectionType:this.selectionType,selectedNumbers:[]}))}async autoSelectionHandler(t){if(t.detail&&t.detail.ticketId==this.ticketId&&t.detail.index===this.gridIndex){this.resetSelectionHandler(t);let e=Array.from({length:this.highNumber-this.lowNumber+1},((t,e)=>this.lowNumber+e));e=this.shuffleArray(e),e=e.slice(0,this.minimumAllowed),this.numbers=this.numbers.map((t=>({number:t.number,selected:e.indexOf(parseInt(t.number,10))>=0,selectable:!!this.partialQuickpickAvailable&&e.indexOf(parseInt(t.number,10))>=0}))),this.gridFilledEvent.emit({id:this.ticketId,index:this.gridIndex,selectionType:this.selectionType,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}),this.selectedCounter=this.minimumAllowed}}render(){return i("div",{key:"8ad436904a126e6bee036c7372cf45c075022e5f",class:"GridContainer",ref:t=>this.stylingContainer=t},i("div",{key:"5a8818209485f0808a99978910f6f26473dd6f59",class:"ticket"===this.gridType?"Grid TicketGrid":"Grid"},this.numbers.map((t=>i("div",null,i("lottery-bullet",{value:t.number,selectable:t.selectable,"is-selected":t.selected,"client-styling":this.clientStyling,"client-styling-url-content":this.clientStylingUrlContent})))),this.bonusNumbers.length?this.bonusNumbers.map((t=>i("div",null,i("lottery-bullet",{value:t.number,selectable:t.selectable,"is-selected":t.selected,"is-bonus":!0,"client-styling":this.clientStyling,"client-styling-url-content":this.clientStylingUrlContent})))):""))}};r.style='@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap");:host{display:block;font-family:"Roboto", sans-serif}.GridContainer{display:flex;flex-direction:column;max-width:1200px}.Grid{margin-top:10px 0 10px 0;display:flex;flex-direction:row;flex-wrap:wrap;gap:20px}.Grid.TicketGrid{gap:5px}';export{s as lottery_bullet,r as lottery_grid}
@@ -0,0 +1,2 @@
1
+ import { Config } from '../../../../../../../../../../../stencil-public-runtime';
2
+ export declare const config: Config;
@@ -0,0 +1,2 @@
1
+ import { Config } from '../../../../../../../../../../../stencil-public-runtime';
2
+ export declare const config: Config;
@@ -22,6 +22,10 @@ export declare class LotteryGrid {
22
22
  * Minimum allowed of bullets
23
23
  */
24
24
  minimumAllowed: number;
25
+ /**
26
+ * The number of numbers user can select on the grid
27
+ */
28
+ numberRange: string;
25
29
  /**
26
30
  * Allows the user to select numbers on the grid
27
31
  */
@@ -30,6 +34,10 @@ export declare class LotteryGrid {
30
34
  * Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')
31
35
  */
32
36
  selectedNumbers: string;
37
+ /**
38
+ * Bonus numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1')
39
+ */
40
+ secondaryNumbers: string;
33
41
  /**
34
42
  * Show only selected numbers
35
43
  */
@@ -54,7 +62,30 @@ export declare class LotteryGrid {
54
62
  * Client custom styling via url content
55
63
  */
56
64
  clientStylingUrlContent: string;
65
+ /**
66
+ * Maximum number of the grid
67
+ */
68
+ highNumber: number;
69
+ /**
70
+ * Lowest number of the grid
71
+ */
72
+ lowNumber: number;
73
+ /**
74
+ * Type of selection
75
+ */
76
+ selectionType: string;
77
+ /**
78
+ * Allows partial quickpick or not
79
+ */
80
+ partialQuickpickAvailable: boolean;
81
+ /**
82
+ * main selection numbers
83
+ */
57
84
  numbers: Array<GridNumbers>;
85
+ /**
86
+ * Bonus selection numbers
87
+ */
88
+ bonusNumbers: Array<GridNumbers>;
58
89
  private limitStylingAppends;
59
90
  private selectedCounter;
60
91
  private stylingContainer;
@@ -66,6 +97,10 @@ export declare class LotteryGrid {
66
97
  * When the grid is uncomplete after being completed once (reset or change), it emits this event
67
98
  */
68
99
  gridDirtyEvent: EventEmitter<GridEvent>;
100
+ /**
101
+ * When all the selection of each bullet are cleared, it emits this event
102
+ */
103
+ gridClearAllEvent: EventEmitter<number>;
69
104
  connectedCallback(): void;
70
105
  componentDidRender(): void;
71
106
  shuffleArray(array: Array<any>): Array<any>;
@@ -11,4 +11,5 @@ export interface GridEvent {
11
11
  id: number;
12
12
  index: number;
13
13
  selectedNumbers: Array<string>;
14
+ selectionType: string;
14
15
  }
@@ -33,10 +33,18 @@ export namespace Components {
33
33
  * Personalize grid for ticket
34
34
  */
35
35
  "gridType": string;
36
+ /**
37
+ * Maximum number of the grid
38
+ */
39
+ "highNumber": number;
36
40
  /**
37
41
  * Language
38
42
  */
39
43
  "language": string;
44
+ /**
45
+ * Lowest number of the grid
46
+ */
47
+ "lowNumber": number;
40
48
  /**
41
49
  * Number of maximum bullets that can be selected
42
50
  */
@@ -45,6 +53,18 @@ export namespace Components {
45
53
  * Minimum allowed of bullets
46
54
  */
47
55
  "minimumAllowed": number;
56
+ /**
57
+ * The number of numbers user can select on the grid
58
+ */
59
+ "numberRange": string;
60
+ /**
61
+ * Allows partial quickpick or not
62
+ */
63
+ "partialQuickpickAvailable": boolean;
64
+ /**
65
+ * Bonus numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1')
66
+ */
67
+ "secondaryNumbers": string;
48
68
  /**
49
69
  * Allows the user to select numbers on the grid
50
70
  */
@@ -53,6 +73,10 @@ export namespace Components {
53
73
  * Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')
54
74
  */
55
75
  "selectedNumbers": string;
76
+ /**
77
+ * Type of selection
78
+ */
79
+ "selectionType": string;
56
80
  /**
57
81
  * Identifier for the ticket
58
82
  */
@@ -71,6 +95,7 @@ declare global {
71
95
  interface HTMLLotteryGridElementEventMap {
72
96
  "gridFilled": GridEvent;
73
97
  "gridDirty": GridEvent;
98
+ "gridClearAllEvent": number;
74
99
  }
75
100
  interface HTMLLotteryGridElement extends Components.LotteryGrid, HTMLStencilElement {
76
101
  addEventListener<K extends keyof HTMLLotteryGridElementEventMap>(type: K, listener: (this: HTMLLotteryGridElement, ev: LotteryGridCustomEvent<HTMLLotteryGridElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -116,10 +141,18 @@ declare namespace LocalJSX {
116
141
  * Personalize grid for ticket
117
142
  */
118
143
  "gridType"?: string;
144
+ /**
145
+ * Maximum number of the grid
146
+ */
147
+ "highNumber"?: number;
119
148
  /**
120
149
  * Language
121
150
  */
122
151
  "language"?: string;
152
+ /**
153
+ * Lowest number of the grid
154
+ */
155
+ "lowNumber"?: number;
123
156
  /**
124
157
  * Number of maximum bullets that can be selected
125
158
  */
@@ -128,6 +161,14 @@ declare namespace LocalJSX {
128
161
  * Minimum allowed of bullets
129
162
  */
130
163
  "minimumAllowed"?: number;
164
+ /**
165
+ * The number of numbers user can select on the grid
166
+ */
167
+ "numberRange"?: string;
168
+ /**
169
+ * When all the selection of each bullet are cleared, it emits this event
170
+ */
171
+ "onGridClearAllEvent"?: (event: LotteryGridCustomEvent<number>) => void;
131
172
  /**
132
173
  * When the grid is uncomplete after being completed once (reset or change), it emits this event
133
174
  */
@@ -136,6 +177,14 @@ declare namespace LocalJSX {
136
177
  * When the grid is completed, it emits this event with selected numbers
137
178
  */
138
179
  "onGridFilled"?: (event: LotteryGridCustomEvent<GridEvent>) => void;
180
+ /**
181
+ * Allows partial quickpick or not
182
+ */
183
+ "partialQuickpickAvailable"?: boolean;
184
+ /**
185
+ * Bonus numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1')
186
+ */
187
+ "secondaryNumbers"?: string;
139
188
  /**
140
189
  * Allows the user to select numbers on the grid
141
190
  */
@@ -144,6 +193,10 @@ declare namespace LocalJSX {
144
193
  * Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')
145
194
  */
146
195
  "selectedNumbers"?: string;
196
+ /**
197
+ * Type of selection
198
+ */
199
+ "selectionType"?: string;
147
200
  /**
148
201
  * Identifier for the ticket
149
202
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/lottery-grid",
3
- "version": "1.52.6",
3
+ "version": "1.53.0",
4
4
  "main": "./dist/index.cjs.js",
5
5
  "module": "./dist/index.js",
6
6
  "es2015": "./dist/esm/index.mjs",
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as s}from"./p-a2add9a5.js";const i=class{constructor(s){t(this,s),this.bulletEvent=e(this,"lotteryBulletSelection",7),this.select=()=>{this.selectable&&(this.isSelected=!this.isSelected,this.bulletEvent.emit({value:this.value,selected:this.isSelected}))},this.setClientStyling=()=>{let t=document.createElement("style");t.innerHTML=this.clientStyling,this.stylingContainer.prepend(t)},this.setClientStylingURL=()=>{let t=document.createElement("style");setTimeout((()=>{t.innerHTML=this.clientStylingUrlContent,this.stylingContainer.prepend(t)}),1)},this.value="0",this.selectable=!0,this.isSelected=!1,this.clientStyling="",this.clientStylingUrlContent="",this.limitStylingAppends=!1}componentDidRender(){!this.limitStylingAppends&&this.stylingContainer&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrlContent&&this.setClientStylingURL(),this.limitStylingAppends=!0)}render(){return s("div",{key:"af3601684ecf1f39d65fc9461430cba96b9e4b8c",class:"Circle "+(this.selectable?"":"Disabled")+(this.isSelected?"Selected":""),onClick:()=>this.select(),ref:t=>this.stylingContainer=t},this.value)}};i.style='@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap");:host{display:block;font-family:"Roboto", sans-serif}@-webkit-keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes Circle{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.22) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@keyframes hover-rotate{0%{-webkit-transform:scale(1) rotateZ(0);transform:scale(1) rotateZ(0)}50%{-webkit-transform:scale(1.2) rotateZ(180deg);transform:scale(1.2) rotateZ(180deg)}100%{-webkit-transform:scale(1) rotateZ(360deg);transform:scale(1) rotateZ(360deg)}}@-webkit-keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes selected-scaleUp{0%{-webkit-transform:scale(0.5);transform:scale(0.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.Circle{-webkit-animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:Circle 0.8s cubic-bezier(0.39, 0.575, 0.565, 1) both;cursor:pointer;color:#000000;display:block;height:30px;width:30px;margin:0;display:flex;align-items:center;justify-content:center;justify-content:center;align-items:center;border:solid 2px #ffffff;background:radial-gradient(circle at top, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 100%);font-weight:bold;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0, 0, 0, 0.5);user-select:none;font-size:16px;line-height:16px;font-weight:600;position:relative}.Circle:hover{-webkit-animation:hover-rotate 0.4s linear both;animation:hover-rotate 0.4s linear both;background:radial-gradient(circle at top, rgb(255, 255, 255) 0%, rgb(241, 241, 241) 100%)}.Circle.Selected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#ffffff;background:#9EC258;background:-webkit-radial-gradient(top, #00958f, #004D4A);background:-moz-radial-gradient(top, #00958f, #004D4A);background:radial-gradient(to bottom, #00958f, #004D4A);border:solid 2px #00958f}.Circle.Disabled{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#f1f1f1;background:#D4D4D4;border:solid 2px #D4D4D4;cursor:default}.Circle.DisabledSelected{-webkit-animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;animation:selected-scaleUp 0.4s cubic-bezier(0.39, 0.575, 0.565, 1) both;color:#f1f1f1;background:#9EC258;background:-webkit-radial-gradient(top, #00958f, #004D4A);background:-moz-radial-gradient(top, #00958f, #004D4A);background:radial-gradient(to bottom, #00958f, #004D4A);border:solid 2px #D4D4D4;cursor:default}';const r=class{constructor(s){t(this,s),this.gridFilledEvent=e(this,"gridFilled",7),this.gridDirtyEvent=e(this,"gridDirty",7),this.selectedCounter=0,this.setClientStyling=()=>{let t=document.createElement("style");t.innerHTML=this.clientStyling,this.stylingContainer.prepend(t)},this.setClientStylingURL=()=>{let t=document.createElement("style");setTimeout((()=>{t.innerHTML=this.clientStylingUrlContent,this.stylingContainer.prepend(t)}),1)},this.ticketId=void 0,this.totalNumbers=0,this.gameId=void 0,this.maximumAllowed=0,this.minimumAllowed=1,this.selectable=!0,this.selectedNumbers="",this.displaySelected=!1,this.language="en",this.gridIndex=void 0,this.gridType="",this.clientStyling="",this.clientStylingUrlContent="",this.numbers=[],this.limitStylingAppends=!1}connectedCallback(){let t=[];this.selectedNumbers.length>0&&(t=this.selectedNumbers.split(","),this.selectedCounter=t.length),this.displaySelected?t.forEach((t=>{this.numbers.push({number:t,selected:!0,selectable:this.selectable})})):[...Array(this.totalNumbers).keys()].map((t=>(t+1).toString())).forEach((e=>{this.numbers.push({number:e,selected:t.indexOf(e)>=0,selectable:this.selectedCounter!=this.maximumAllowed&&this.selectable})}))}componentDidRender(){!this.limitStylingAppends&&this.stylingContainer&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrlContent&&this.setClientStylingURL(),this.limitStylingAppends=!0)}shuffleArray(t){const e=[];for(;t.length>0;){const s=Math.floor(Math.random()*t.length);e.push(t.splice(s,1)[0])}return e}lotteryBulletSelectionHandler(t){this.numbers=this.numbers.map((e=>e.number==t.detail.value?{number:e.number,selected:t.detail.selected,selectable:e.selectable}:{number:e.number,selected:e.selected,selectable:e.selectable})),t.detail.selected?(this.selectedCounter+=1,this.selectedCounter==this.maximumAllowed&&(this.numbers=this.numbers.map((t=>({number:t.number,selected:t.selected,selectable:!!t.selected}))),this.gridFilledEvent.emit({id:this.ticketId,index:this.gridIndex,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}))):(this.selectedCounter==this.maximumAllowed&&(this.numbers=this.numbers.map((t=>({number:t.number,selected:t.selected,selectable:!0}))),this.gridDirtyEvent.emit({id:this.ticketId,index:this.gridIndex,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))})),this.selectedCounter-=1)}async resetSelectionHandler(t){t.detail&&t.detail==this.ticketId&&(this.selectedCounter=0,this.numbers=this.numbers.map((t=>({number:t.number,selected:!1,selectable:this.selectable}))),this.gridDirtyEvent.emit({id:this.ticketId,index:this.gridIndex,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}))}async autoSelectionHandler(t){if(t.detail&&t.detail==this.ticketId){this.resetSelectionHandler(t);let e=[...Array(this.totalNumbers).keys()].map((t=>t+1));e=this.shuffleArray(e),e=e.slice(0,this.minimumAllowed),this.numbers=this.numbers.map((t=>({number:t.number,selected:e.indexOf(parseInt(t.number,10))>=0,selectable:e.indexOf(parseInt(t.number,10))>=0}))),this.gridFilledEvent.emit({id:this.ticketId,index:this.gridIndex,selectedNumbers:this.numbers.filter((t=>t.selected)).map((t=>t.number))}),this.selectedCounter=this.maximumAllowed}}render(){return s("div",{key:"54b9187146b5d2625fd5ce7f53f38abf091cd943",class:"GridContainer",ref:t=>this.stylingContainer=t},s("div",{key:"e7e8570557ebaa78edf881cdbc1ed720028cdf6e",class:"ticket"===this.gridType?"Grid TicketGrid":"Grid"},this.numbers.map((t=>s("div",null,s("lottery-bullet",{value:t.number,selectable:t.selectable,"is-selected":t.selected,"client-styling":this.clientStyling,"client-styling-url-content":this.clientStylingUrlContent}))))))}};r.style='@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap");:host{display:block;font-family:"Roboto", sans-serif}.GridContainer{display:flex;flex-direction:column;max-width:1200px}.Grid{margin-top:10px 0 10px 0;display:flex;flex-direction:row;flex-wrap:wrap;gap:20px}.Grid.TicketGrid{gap:5px}';export{i as lottery_bullet,r as lottery_grid}
@@ -1,2 +0,0 @@
1
- import { Config } from '../../../../../../../../../../../../stencil-public-runtime';
2
- export declare const config: Config;
@@ -1,2 +0,0 @@
1
- import { Config } from '../../../../../../../../../../../../stencil-public-runtime';
2
- export declare const config: Config;