@everymatrix/lottery-grid 0.0.3

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 (49) hide show
  1. package/dist/cjs/index-f969aaa4.js +1184 -0
  2. package/dist/cjs/index.cjs.js +2 -0
  3. package/dist/cjs/loader.cjs.js +21 -0
  4. package/dist/cjs/lottery-grid.cjs.entry.js +168 -0
  5. package/dist/cjs/lottery-grid.cjs.js +19 -0
  6. package/dist/collection/collection-manifest.json +12 -0
  7. package/dist/collection/components/lottery-grid/lottery-grid.css +19 -0
  8. package/dist/collection/components/lottery-grid/lottery-grid.js +408 -0
  9. package/dist/collection/components/lottery-grid/lottery-grid.types.js +1 -0
  10. package/dist/collection/index.js +1 -0
  11. package/dist/collection/utils/locale.utils.js +16 -0
  12. package/dist/collection/utils/utils.js +0 -0
  13. package/dist/components/index.d.ts +22 -0
  14. package/dist/components/index.js +2 -0
  15. package/dist/components/lottery-grid.d.ts +11 -0
  16. package/dist/components/lottery-grid.js +194 -0
  17. package/dist/esm/index-97506292.js +1158 -0
  18. package/dist/esm/index.js +1 -0
  19. package/dist/esm/loader.js +17 -0
  20. package/dist/esm/lottery-grid.entry.js +164 -0
  21. package/dist/esm/lottery-grid.js +17 -0
  22. package/dist/esm/polyfills/core-js.js +11 -0
  23. package/dist/esm/polyfills/css-shim.js +1 -0
  24. package/dist/esm/polyfills/dom.js +79 -0
  25. package/dist/esm/polyfills/es5-html-element.js +1 -0
  26. package/dist/esm/polyfills/index.js +34 -0
  27. package/dist/esm/polyfills/system.js +6 -0
  28. package/dist/index.cjs.js +1 -0
  29. package/dist/index.js +1 -0
  30. package/dist/lottery-grid/index.esm.js +0 -0
  31. package/dist/lottery-grid/lottery-grid.esm.js +1 -0
  32. package/dist/lottery-grid/p-9bc7643b.entry.js +1 -0
  33. package/dist/lottery-grid/p-fb681e4b.js +2 -0
  34. package/dist/stencil.config.js +22 -0
  35. package/dist/types/Users/user/workspace/everymatrix/widgets-stencil/packages/lottery-grid/.stencil/packages/lottery-grid/stencil.config.d.ts +2 -0
  36. package/dist/types/components/lottery-grid/lottery-grid.d.ts +60 -0
  37. package/dist/types/components/lottery-grid/lottery-grid.types.d.ts +14 -0
  38. package/dist/types/components.d.ts +130 -0
  39. package/dist/types/index.d.ts +1 -0
  40. package/dist/types/stencil-public-runtime.d.ts +1565 -0
  41. package/dist/types/utils/locale.utils.d.ts +1 -0
  42. package/dist/types/utils/utils.d.ts +0 -0
  43. package/loader/cdn.js +3 -0
  44. package/loader/index.cjs.js +3 -0
  45. package/loader/index.d.ts +12 -0
  46. package/loader/index.es2017.js +3 -0
  47. package/loader/index.js +4 -0
  48. package/loader/package.json +10 -0
  49. package/package.json +19 -0
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-f969aaa4.js');
6
+
7
+ /*
8
+ Stencil Client Patch Esm v2.17.0 | MIT Licensed | https://stenciljs.com
9
+ */
10
+ const patchEsm = () => {
11
+ return index.promiseResolve();
12
+ };
13
+
14
+ const defineCustomElements = (win, options) => {
15
+ if (typeof window === 'undefined') return Promise.resolve();
16
+ return patchEsm().then(() => {
17
+ return index.bootstrapLazy([["lottery-grid.cjs",[[1,"lottery-grid",{"ticketId":[2,"ticket-id"],"totalNumbers":[2,"total-numbers"],"gameId":[1,"game-id"],"maximumAllowed":[2,"maximum-allowed"],"minimumAllowed":[2,"minimum-allowed"],"selectable":[4],"selectedNumbers":[1,"selected-numbers"],"displaySelected":[4,"display-selected"],"language":[1],"gridIndex":[2,"grid-index"],"numbers":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]]]]], options);
18
+ });
19
+ };
20
+
21
+ exports.defineCustomElements = defineCustomElements;
@@ -0,0 +1,168 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-f969aaa4.js');
6
+ require('@everymatrix/lottery-bullet');
7
+
8
+ const lotteryGridCss = "@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:350px}.Grid{margin-top:10px 0 10px 0;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px}";
9
+
10
+ const LotteryGrid = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.gridFilledEvent = index.createEvent(this, "gridFilled", 7);
14
+ this.gridDirtyEvent = index.createEvent(this, "gridDirty", 7);
15
+ /**
16
+ * Number of bullets of grid
17
+ */
18
+ this.totalNumbers = 0;
19
+ /**
20
+ * Number of maximum bullets that can be selected
21
+ */
22
+ this.maximumAllowed = 0;
23
+ /**
24
+ * Minimum allowed of bullets
25
+ */
26
+ this.minimumAllowed = 1;
27
+ /**
28
+ * Allows the user to select numbers on the grid
29
+ */
30
+ this.selectable = true;
31
+ /**
32
+ * Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')
33
+ */
34
+ this.selectedNumbers = '';
35
+ /**
36
+ * Show only selected numbers
37
+ */
38
+ this.displaySelected = false;
39
+ /**
40
+ * Language
41
+ */
42
+ this.language = 'en';
43
+ this.numbers = [];
44
+ this.selectedCounter = 0;
45
+ }
46
+ connectedCallback() {
47
+ let selected = [];
48
+ if (this.selectedNumbers.length > 0) {
49
+ selected = this.selectedNumbers.split(',');
50
+ this.selectedCounter = selected.length;
51
+ }
52
+ if (this.displaySelected) {
53
+ selected.forEach((item) => {
54
+ this.numbers.push({
55
+ number: item,
56
+ selected: true,
57
+ selectable: this.selectable
58
+ });
59
+ });
60
+ }
61
+ else {
62
+ [...Array(this.totalNumbers).keys()]
63
+ .map(number => (number + 1).toString())
64
+ .forEach((number) => {
65
+ this.numbers.push({
66
+ number,
67
+ selected: selected.indexOf(number) >= 0 ? true : false,
68
+ selectable: this.selectedCounter == this.maximumAllowed ? false : this.selectable
69
+ });
70
+ });
71
+ }
72
+ }
73
+ lotteryBulletSelectionHandler(event) {
74
+ this.numbers = this.numbers.map((item) => {
75
+ if (item.number == event.detail.value) {
76
+ return {
77
+ number: item.number,
78
+ selected: event.detail.selected,
79
+ selectable: item.selectable
80
+ };
81
+ }
82
+ return {
83
+ number: item.number,
84
+ selected: item.selected,
85
+ selectable: item.selectable
86
+ };
87
+ });
88
+ if (event.detail.selected) {
89
+ this.selectedCounter += 1;
90
+ if (this.selectedCounter == this.maximumAllowed) {
91
+ this.numbers = this.numbers.map((item) => {
92
+ return {
93
+ number: item.number,
94
+ selected: item.selected,
95
+ selectable: item.selected ? true : false
96
+ };
97
+ });
98
+ this.gridFilledEvent.emit({
99
+ id: this.ticketId,
100
+ index: this.gridIndex,
101
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
102
+ });
103
+ }
104
+ }
105
+ else {
106
+ if (this.selectedCounter == this.maximumAllowed) {
107
+ this.numbers = this.numbers.map((item) => {
108
+ return {
109
+ number: item.number,
110
+ selected: item.selected,
111
+ selectable: true
112
+ };
113
+ });
114
+ this.gridDirtyEvent.emit({
115
+ id: this.ticketId,
116
+ index: this.gridIndex,
117
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
118
+ });
119
+ }
120
+ this.selectedCounter -= 1;
121
+ }
122
+ }
123
+ async resetSelectionHandler(event) {
124
+ if (event.detail && event.detail == this.ticketId) {
125
+ this.selectedCounter = 0;
126
+ this.numbers = this.numbers.map((item) => {
127
+ return {
128
+ number: item.number,
129
+ selected: false,
130
+ selectable: this.selectable
131
+ };
132
+ });
133
+ this.gridDirtyEvent.emit({
134
+ id: this.ticketId,
135
+ index: this.gridIndex,
136
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
137
+ });
138
+ }
139
+ }
140
+ async autoSelectionHandler(event) {
141
+ if (event.detail && event.detail == this.ticketId) {
142
+ this.resetSelectionHandler(event);
143
+ let array = [...Array(this.totalNumbers).keys()]
144
+ .map(number => number + 1)
145
+ .sort(() => 0.5 - Math.random());
146
+ array = array.slice(0, this.minimumAllowed);
147
+ this.numbers = this.numbers.map((item) => {
148
+ return {
149
+ number: item.number,
150
+ selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
151
+ selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
152
+ };
153
+ });
154
+ this.gridFilledEvent.emit({
155
+ id: this.ticketId,
156
+ index: this.gridIndex,
157
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
158
+ });
159
+ this.selectedCounter = this.maximumAllowed;
160
+ }
161
+ }
162
+ render() {
163
+ return (index.h("div", { class: "GridContainer" }, index.h("div", { class: "Grid" }, this.numbers.map((item) => index.h("div", null, index.h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected }))))));
164
+ }
165
+ };
166
+ LotteryGrid.style = lotteryGridCss;
167
+
168
+ exports.lottery_grid = LotteryGrid;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const index = require('./index-f969aaa4.js');
4
+
5
+ /*
6
+ Stencil Client Patch Browser v2.17.0 | MIT Licensed | https://stenciljs.com
7
+ */
8
+ const patchBrowser = () => {
9
+ const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('lottery-grid.cjs.js', document.baseURI).href));
10
+ const opts = {};
11
+ if (importMeta !== '') {
12
+ opts.resourcesUrl = new URL('.', importMeta).href;
13
+ }
14
+ return index.promiseResolve(opts);
15
+ };
16
+
17
+ patchBrowser().then(options => {
18
+ return index.bootstrapLazy([["lottery-grid.cjs",[[1,"lottery-grid",{"ticketId":[2,"ticket-id"],"totalNumbers":[2,"total-numbers"],"gameId":[1,"game-id"],"maximumAllowed":[2,"maximum-allowed"],"minimumAllowed":[2,"minimum-allowed"],"selectable":[4],"selectedNumbers":[1,"selected-numbers"],"displaySelected":[4,"display-selected"],"language":[1],"gridIndex":[2,"grid-index"],"numbers":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]]]]], options);
19
+ });
@@ -0,0 +1,12 @@
1
+ {
2
+ "entries": [
3
+ "./components/lottery-grid/lottery-grid.js"
4
+ ],
5
+ "compiler": {
6
+ "name": "@stencil/core",
7
+ "version": "2.17.0",
8
+ "typescriptVersion": "4.5.4"
9
+ },
10
+ "collections": [],
11
+ "bundles": []
12
+ }
@@ -0,0 +1,19 @@
1
+ @import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap");
2
+ :host {
3
+ display: block;
4
+ font-family: "Roboto", sans-serif;
5
+ }
6
+
7
+ .GridContainer {
8
+ display: flex;
9
+ flex-direction: column;
10
+ max-width: 350px;
11
+ }
12
+
13
+ .Grid {
14
+ margin-top: 10px 0 10px 0;
15
+ display: flex;
16
+ flex-direction: row;
17
+ flex-wrap: wrap;
18
+ gap: 10px;
19
+ }
@@ -0,0 +1,408 @@
1
+ import { Component, h, Prop, Listen, State, Event } from '@stencil/core';
2
+ // import { translate } from '../../utils/locale.utils';
3
+ import '@everymatrix/lottery-bullet';
4
+ export class LotteryGrid {
5
+ constructor() {
6
+ /**
7
+ * Number of bullets of grid
8
+ */
9
+ this.totalNumbers = 0;
10
+ /**
11
+ * Number of maximum bullets that can be selected
12
+ */
13
+ this.maximumAllowed = 0;
14
+ /**
15
+ * Minimum allowed of bullets
16
+ */
17
+ this.minimumAllowed = 1;
18
+ /**
19
+ * Allows the user to select numbers on the grid
20
+ */
21
+ this.selectable = true;
22
+ /**
23
+ * Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')
24
+ */
25
+ this.selectedNumbers = '';
26
+ /**
27
+ * Show only selected numbers
28
+ */
29
+ this.displaySelected = false;
30
+ /**
31
+ * Language
32
+ */
33
+ this.language = 'en';
34
+ this.numbers = [];
35
+ this.selectedCounter = 0;
36
+ }
37
+ connectedCallback() {
38
+ let selected = [];
39
+ if (this.selectedNumbers.length > 0) {
40
+ selected = this.selectedNumbers.split(',');
41
+ this.selectedCounter = selected.length;
42
+ }
43
+ if (this.displaySelected) {
44
+ selected.forEach((item) => {
45
+ this.numbers.push({
46
+ number: item,
47
+ selected: true,
48
+ selectable: this.selectable
49
+ });
50
+ });
51
+ }
52
+ else {
53
+ [...Array(this.totalNumbers).keys()]
54
+ .map(number => (number + 1).toString())
55
+ .forEach((number) => {
56
+ this.numbers.push({
57
+ number,
58
+ selected: selected.indexOf(number) >= 0 ? true : false,
59
+ selectable: this.selectedCounter == this.maximumAllowed ? false : this.selectable
60
+ });
61
+ });
62
+ }
63
+ }
64
+ lotteryBulletSelectionHandler(event) {
65
+ this.numbers = this.numbers.map((item) => {
66
+ if (item.number == event.detail.value) {
67
+ return {
68
+ number: item.number,
69
+ selected: event.detail.selected,
70
+ selectable: item.selectable
71
+ };
72
+ }
73
+ return {
74
+ number: item.number,
75
+ selected: item.selected,
76
+ selectable: item.selectable
77
+ };
78
+ });
79
+ if (event.detail.selected) {
80
+ this.selectedCounter += 1;
81
+ if (this.selectedCounter == this.maximumAllowed) {
82
+ this.numbers = this.numbers.map((item) => {
83
+ return {
84
+ number: item.number,
85
+ selected: item.selected,
86
+ selectable: item.selected ? true : false
87
+ };
88
+ });
89
+ this.gridFilledEvent.emit({
90
+ id: this.ticketId,
91
+ index: this.gridIndex,
92
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
93
+ });
94
+ }
95
+ }
96
+ else {
97
+ if (this.selectedCounter == this.maximumAllowed) {
98
+ this.numbers = this.numbers.map((item) => {
99
+ return {
100
+ number: item.number,
101
+ selected: item.selected,
102
+ selectable: true
103
+ };
104
+ });
105
+ this.gridDirtyEvent.emit({
106
+ id: this.ticketId,
107
+ index: this.gridIndex,
108
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
109
+ });
110
+ }
111
+ this.selectedCounter -= 1;
112
+ }
113
+ }
114
+ async resetSelectionHandler(event) {
115
+ if (event.detail && event.detail == this.ticketId) {
116
+ this.selectedCounter = 0;
117
+ this.numbers = this.numbers.map((item) => {
118
+ return {
119
+ number: item.number,
120
+ selected: false,
121
+ selectable: this.selectable
122
+ };
123
+ });
124
+ this.gridDirtyEvent.emit({
125
+ id: this.ticketId,
126
+ index: this.gridIndex,
127
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
128
+ });
129
+ }
130
+ }
131
+ async autoSelectionHandler(event) {
132
+ if (event.detail && event.detail == this.ticketId) {
133
+ this.resetSelectionHandler(event);
134
+ let array = [...Array(this.totalNumbers).keys()]
135
+ .map(number => number + 1)
136
+ .sort(() => 0.5 - Math.random());
137
+ array = array.slice(0, this.minimumAllowed);
138
+ this.numbers = this.numbers.map((item) => {
139
+ return {
140
+ number: item.number,
141
+ selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
142
+ selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
143
+ };
144
+ });
145
+ this.gridFilledEvent.emit({
146
+ id: this.ticketId,
147
+ index: this.gridIndex,
148
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
149
+ });
150
+ this.selectedCounter = this.maximumAllowed;
151
+ }
152
+ }
153
+ render() {
154
+ return (h("div", { class: "GridContainer" },
155
+ h("div", { class: "Grid" }, this.numbers.map((item) => h("div", null,
156
+ h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected }))))));
157
+ }
158
+ static get is() { return "lottery-grid"; }
159
+ static get encapsulation() { return "shadow"; }
160
+ static get originalStyleUrls() { return {
161
+ "$": ["lottery-grid.scss"]
162
+ }; }
163
+ static get styleUrls() { return {
164
+ "$": ["lottery-grid.css"]
165
+ }; }
166
+ static get properties() { return {
167
+ "ticketId": {
168
+ "type": "number",
169
+ "mutable": false,
170
+ "complexType": {
171
+ "original": "number",
172
+ "resolved": "number",
173
+ "references": {}
174
+ },
175
+ "required": false,
176
+ "optional": false,
177
+ "docs": {
178
+ "tags": [],
179
+ "text": "Identifier for the ticket"
180
+ },
181
+ "attribute": "ticket-id",
182
+ "reflect": false
183
+ },
184
+ "totalNumbers": {
185
+ "type": "number",
186
+ "mutable": false,
187
+ "complexType": {
188
+ "original": "number",
189
+ "resolved": "number",
190
+ "references": {}
191
+ },
192
+ "required": false,
193
+ "optional": false,
194
+ "docs": {
195
+ "tags": [],
196
+ "text": "Number of bullets of grid"
197
+ },
198
+ "attribute": "total-numbers",
199
+ "reflect": false,
200
+ "defaultValue": "0"
201
+ },
202
+ "gameId": {
203
+ "type": "string",
204
+ "mutable": false,
205
+ "complexType": {
206
+ "original": "string",
207
+ "resolved": "string",
208
+ "references": {}
209
+ },
210
+ "required": false,
211
+ "optional": false,
212
+ "docs": {
213
+ "tags": [],
214
+ "text": "Game ID"
215
+ },
216
+ "attribute": "game-id",
217
+ "reflect": false
218
+ },
219
+ "maximumAllowed": {
220
+ "type": "number",
221
+ "mutable": false,
222
+ "complexType": {
223
+ "original": "number",
224
+ "resolved": "number",
225
+ "references": {}
226
+ },
227
+ "required": false,
228
+ "optional": false,
229
+ "docs": {
230
+ "tags": [],
231
+ "text": "Number of maximum bullets that can be selected"
232
+ },
233
+ "attribute": "maximum-allowed",
234
+ "reflect": false,
235
+ "defaultValue": "0"
236
+ },
237
+ "minimumAllowed": {
238
+ "type": "number",
239
+ "mutable": false,
240
+ "complexType": {
241
+ "original": "number",
242
+ "resolved": "number",
243
+ "references": {}
244
+ },
245
+ "required": false,
246
+ "optional": false,
247
+ "docs": {
248
+ "tags": [],
249
+ "text": "Minimum allowed of bullets"
250
+ },
251
+ "attribute": "minimum-allowed",
252
+ "reflect": false,
253
+ "defaultValue": "1"
254
+ },
255
+ "selectable": {
256
+ "type": "boolean",
257
+ "mutable": false,
258
+ "complexType": {
259
+ "original": "boolean",
260
+ "resolved": "boolean",
261
+ "references": {}
262
+ },
263
+ "required": false,
264
+ "optional": false,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": "Allows the user to select numbers on the grid"
268
+ },
269
+ "attribute": "selectable",
270
+ "reflect": false,
271
+ "defaultValue": "true"
272
+ },
273
+ "selectedNumbers": {
274
+ "type": "string",
275
+ "mutable": false,
276
+ "complexType": {
277
+ "original": "string",
278
+ "resolved": "string",
279
+ "references": {}
280
+ },
281
+ "required": false,
282
+ "optional": false,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": "Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')"
286
+ },
287
+ "attribute": "selected-numbers",
288
+ "reflect": false,
289
+ "defaultValue": "''"
290
+ },
291
+ "displaySelected": {
292
+ "type": "boolean",
293
+ "mutable": false,
294
+ "complexType": {
295
+ "original": "boolean",
296
+ "resolved": "boolean",
297
+ "references": {}
298
+ },
299
+ "required": false,
300
+ "optional": false,
301
+ "docs": {
302
+ "tags": [],
303
+ "text": "Show only selected numbers"
304
+ },
305
+ "attribute": "display-selected",
306
+ "reflect": false,
307
+ "defaultValue": "false"
308
+ },
309
+ "language": {
310
+ "type": "string",
311
+ "mutable": false,
312
+ "complexType": {
313
+ "original": "string",
314
+ "resolved": "string",
315
+ "references": {}
316
+ },
317
+ "required": false,
318
+ "optional": false,
319
+ "docs": {
320
+ "tags": [],
321
+ "text": "Language"
322
+ },
323
+ "attribute": "language",
324
+ "reflect": false,
325
+ "defaultValue": "'en'"
326
+ },
327
+ "gridIndex": {
328
+ "type": "number",
329
+ "mutable": false,
330
+ "complexType": {
331
+ "original": "number",
332
+ "resolved": "number",
333
+ "references": {}
334
+ },
335
+ "required": false,
336
+ "optional": false,
337
+ "docs": {
338
+ "tags": [],
339
+ "text": "The index of the number"
340
+ },
341
+ "attribute": "grid-index",
342
+ "reflect": false
343
+ }
344
+ }; }
345
+ static get states() { return {
346
+ "numbers": {}
347
+ }; }
348
+ static get events() { return [{
349
+ "method": "gridFilledEvent",
350
+ "name": "gridFilled",
351
+ "bubbles": true,
352
+ "cancelable": true,
353
+ "composed": true,
354
+ "docs": {
355
+ "tags": [],
356
+ "text": "When the grid is completed, it emits this event with selected numbers"
357
+ },
358
+ "complexType": {
359
+ "original": "GridEvent",
360
+ "resolved": "GridEvent",
361
+ "references": {
362
+ "GridEvent": {
363
+ "location": "import",
364
+ "path": "./lottery-grid.types"
365
+ }
366
+ }
367
+ }
368
+ }, {
369
+ "method": "gridDirtyEvent",
370
+ "name": "gridDirty",
371
+ "bubbles": true,
372
+ "cancelable": true,
373
+ "composed": true,
374
+ "docs": {
375
+ "tags": [],
376
+ "text": "When the grid is uncomplete after being completed once (reset or change), it emits this event"
377
+ },
378
+ "complexType": {
379
+ "original": "GridEvent",
380
+ "resolved": "GridEvent",
381
+ "references": {
382
+ "GridEvent": {
383
+ "location": "import",
384
+ "path": "./lottery-grid.types"
385
+ }
386
+ }
387
+ }
388
+ }]; }
389
+ static get listeners() { return [{
390
+ "name": "lotteryBulletSelection",
391
+ "method": "lotteryBulletSelectionHandler",
392
+ "target": undefined,
393
+ "capture": false,
394
+ "passive": false
395
+ }, {
396
+ "name": "resetSelection",
397
+ "method": "resetSelectionHandler",
398
+ "target": "document",
399
+ "capture": false,
400
+ "passive": false
401
+ }, {
402
+ "name": "autoSelection",
403
+ "method": "autoSelectionHandler",
404
+ "target": "document",
405
+ "capture": false,
406
+ "passive": false
407
+ }]; }
408
+ }
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,16 @@
1
+ const DEFAULT_LANGUAGE = 'en';
2
+ const SUPPORTED_LANGUAGES = ['ro', 'en'];
3
+ const TRANSLATIONS = {
4
+ en: {
5
+ resetButton: 'Reset',
6
+ autoButton: 'I feel lucky'
7
+ },
8
+ ro: {
9
+ resetButton: 'Reseteaza',
10
+ autoButton: 'Ma simt norocos'
11
+ },
12
+ };
13
+ export const translate = (key, customLang) => {
14
+ const lang = customLang;
15
+ return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
16
+ };
File without changes