@everymatrix/lottery-draw-results 0.1.1 → 0.1.2

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 (27) hide show
  1. package/dist/cjs/{index-33a98fae.js → index-62f030ff.js} +73 -1
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/lottery-bullet_3.cjs.entry.js +374 -0
  4. package/dist/cjs/lottery-draw-results.cjs.js +2 -2
  5. package/dist/collection/collection-manifest.json +14 -1
  6. package/dist/collection/components/lottery-draw-results/lottery-draw-results.css +7 -18
  7. package/dist/collection/components/lottery-draw-results/lottery-draw-results.js +56 -169
  8. package/dist/collection/utils/locale.utils.js +2 -14
  9. package/dist/components/lottery-bullet.js +6 -0
  10. package/dist/components/lottery-bullet2.js +56 -0
  11. package/dist/components/lottery-draw-results.js +59 -62
  12. package/dist/components/lottery-grid.js +6 -0
  13. package/dist/components/lottery-grid2.js +196 -0
  14. package/dist/esm/{index-c6e6b7f8.js → index-98326ddd.js} +73 -2
  15. package/dist/esm/loader.js +2 -2
  16. package/dist/esm/lottery-bullet_3.entry.js +368 -0
  17. package/dist/esm/lottery-draw-results.js +2 -2
  18. package/dist/lottery-draw-results/lottery-draw-results.esm.js +1 -1
  19. package/dist/lottery-draw-results/p-2b8529f6.entry.js +1 -0
  20. package/dist/lottery-draw-results/p-bb429486.js +1 -0
  21. package/dist/types/components/lottery-draw-results/lottery-draw-results.d.ts +3 -28
  22. package/dist/types/components.d.ts +2 -56
  23. package/package.json +1 -1
  24. package/dist/cjs/lottery-draw-results.cjs.entry.js +0 -188
  25. package/dist/esm/lottery-draw-results.entry.js +0 -184
  26. package/dist/lottery-draw-results/p-31e0953f.js +0 -1
  27. package/dist/lottery-draw-results/p-d7361a7b.entry.js +0 -1
@@ -0,0 +1,196 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$1 } from './lottery-bullet2.js';
3
+
4
+ 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}";
5
+
6
+ const LotteryGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.__attachShadow();
11
+ this.gridFilledEvent = createEvent(this, "gridFilled", 7);
12
+ this.gridDirtyEvent = createEvent(this, "gridDirty", 7);
13
+ /**
14
+ * Number of bullets of grid
15
+ */
16
+ this.totalNumbers = 0;
17
+ /**
18
+ * Number of maximum bullets that can be selected
19
+ */
20
+ this.maximumAllowed = 0;
21
+ /**
22
+ * Minimum allowed of bullets
23
+ */
24
+ this.minimumAllowed = 1;
25
+ /**
26
+ * Allows the user to select numbers on the grid
27
+ */
28
+ this.selectable = true;
29
+ /**
30
+ * 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
+ */
32
+ this.selectedNumbers = '';
33
+ /**
34
+ * Show only selected numbers
35
+ */
36
+ this.displaySelected = false;
37
+ /**
38
+ * Language
39
+ */
40
+ this.language = 'en';
41
+ this.numbers = [];
42
+ this.selectedCounter = 0;
43
+ }
44
+ connectedCallback() {
45
+ let selected = [];
46
+ if (this.selectedNumbers.length > 0) {
47
+ selected = this.selectedNumbers.split(',');
48
+ this.selectedCounter = selected.length;
49
+ }
50
+ if (this.displaySelected) {
51
+ selected.forEach((item) => {
52
+ this.numbers.push({
53
+ number: item,
54
+ selected: true,
55
+ selectable: this.selectable
56
+ });
57
+ });
58
+ }
59
+ else {
60
+ [...Array(this.totalNumbers).keys()]
61
+ .map(number => (number + 1).toString())
62
+ .forEach((number) => {
63
+ this.numbers.push({
64
+ number,
65
+ selected: selected.indexOf(number) >= 0 ? true : false,
66
+ selectable: this.selectedCounter == this.maximumAllowed ? false : this.selectable
67
+ });
68
+ });
69
+ }
70
+ }
71
+ lotteryBulletSelectionHandler(event) {
72
+ this.numbers = this.numbers.map((item) => {
73
+ if (item.number == event.detail.value) {
74
+ return {
75
+ number: item.number,
76
+ selected: event.detail.selected,
77
+ selectable: item.selectable
78
+ };
79
+ }
80
+ return {
81
+ number: item.number,
82
+ selected: item.selected,
83
+ selectable: item.selectable
84
+ };
85
+ });
86
+ if (event.detail.selected) {
87
+ this.selectedCounter += 1;
88
+ if (this.selectedCounter == this.maximumAllowed) {
89
+ this.numbers = this.numbers.map((item) => {
90
+ return {
91
+ number: item.number,
92
+ selected: item.selected,
93
+ selectable: item.selected ? true : false
94
+ };
95
+ });
96
+ this.gridFilledEvent.emit({
97
+ id: this.ticketId,
98
+ index: this.gridIndex,
99
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
100
+ });
101
+ }
102
+ }
103
+ else {
104
+ if (this.selectedCounter == this.maximumAllowed) {
105
+ this.numbers = this.numbers.map((item) => {
106
+ return {
107
+ number: item.number,
108
+ selected: item.selected,
109
+ selectable: true
110
+ };
111
+ });
112
+ this.gridDirtyEvent.emit({
113
+ id: this.ticketId,
114
+ index: this.gridIndex,
115
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
116
+ });
117
+ }
118
+ this.selectedCounter -= 1;
119
+ }
120
+ }
121
+ async resetSelectionHandler(event) {
122
+ if (event.detail && event.detail == this.ticketId) {
123
+ this.selectedCounter = 0;
124
+ this.numbers = this.numbers.map((item) => {
125
+ return {
126
+ number: item.number,
127
+ selected: false,
128
+ selectable: this.selectable
129
+ };
130
+ });
131
+ this.gridDirtyEvent.emit({
132
+ id: this.ticketId,
133
+ index: this.gridIndex,
134
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
135
+ });
136
+ }
137
+ }
138
+ async autoSelectionHandler(event) {
139
+ if (event.detail && event.detail == this.ticketId) {
140
+ this.resetSelectionHandler(event);
141
+ let array = [...Array(this.totalNumbers).keys()]
142
+ .map(number => number + 1)
143
+ .sort(() => 0.5 - Math.random());
144
+ array = array.slice(0, this.minimumAllowed);
145
+ this.numbers = this.numbers.map((item) => {
146
+ return {
147
+ number: item.number,
148
+ selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
149
+ selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
150
+ };
151
+ });
152
+ this.gridFilledEvent.emit({
153
+ id: this.ticketId,
154
+ index: this.gridIndex,
155
+ selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
156
+ });
157
+ this.selectedCounter = this.maximumAllowed;
158
+ }
159
+ }
160
+ render() {
161
+ return (h("div", { class: "GridContainer" }, h("div", { class: "Grid" }, this.numbers.map((item) => h("div", null, h("lottery-bullet", { value: item.number, selectable: item.selectable, "is-selected": item.selected }))))));
162
+ }
163
+ static get style() { return lotteryGridCss; }
164
+ }, [1, "lottery-grid", {
165
+ "ticketId": [2, "ticket-id"],
166
+ "totalNumbers": [2, "total-numbers"],
167
+ "gameId": [1, "game-id"],
168
+ "maximumAllowed": [2, "maximum-allowed"],
169
+ "minimumAllowed": [2, "minimum-allowed"],
170
+ "selectable": [4],
171
+ "selectedNumbers": [1, "selected-numbers"],
172
+ "displaySelected": [4, "display-selected"],
173
+ "language": [1],
174
+ "gridIndex": [2, "grid-index"],
175
+ "numbers": [32]
176
+ }, [[0, "lotteryBulletSelection", "lotteryBulletSelectionHandler"], [4, "resetSelection", "resetSelectionHandler"], [4, "autoSelection", "autoSelectionHandler"]]]);
177
+ function defineCustomElement() {
178
+ if (typeof customElements === "undefined") {
179
+ return;
180
+ }
181
+ const components = ["lottery-grid", "lottery-bullet"];
182
+ components.forEach(tagName => { switch (tagName) {
183
+ case "lottery-grid":
184
+ if (!customElements.get(tagName)) {
185
+ customElements.define(tagName, LotteryGrid);
186
+ }
187
+ break;
188
+ case "lottery-bullet":
189
+ if (!customElements.get(tagName)) {
190
+ defineCustomElement$1();
191
+ }
192
+ break;
193
+ } });
194
+ }
195
+
196
+ export { LotteryGrid as L, defineCustomElement as d };
@@ -25,6 +25,40 @@ const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
25
25
  return false;
26
26
  })()
27
27
  ;
28
+ const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
29
+ if (listeners) {
30
+ listeners.map(([flags, name, method]) => {
31
+ const target = getHostListenerTarget(elm, flags) ;
32
+ const handler = hostListenerProxy(hostRef, method);
33
+ const opts = hostListenerOpts(flags);
34
+ plt.ael(target, name, handler, opts);
35
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
36
+ });
37
+ }
38
+ };
39
+ const hostListenerProxy = (hostRef, methodName) => (ev) => {
40
+ try {
41
+ {
42
+ if (hostRef.$flags$ & 256 /* isListenReady */) {
43
+ // instance is ready, let's call it's member method for this event
44
+ hostRef.$lazyInstance$[methodName](ev);
45
+ }
46
+ else {
47
+ (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
48
+ }
49
+ }
50
+ }
51
+ catch (e) {
52
+ consoleError(e);
53
+ }
54
+ };
55
+ const getHostListenerTarget = (elm, flags) => {
56
+ if (flags & 4 /* TargetDocument */)
57
+ return doc;
58
+ return elm;
59
+ };
60
+ // prettier-ignore
61
+ const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
28
62
  const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
29
63
  const createTime = (fnName, tagName = '') => {
30
64
  {
@@ -501,6 +535,20 @@ const renderVdom = (hostRef, renderFnResults) => {
501
535
  // synchronous patch
502
536
  patch(oldVNode, rootVnode);
503
537
  };
538
+ const getElement = (ref) => (getHostRef(ref).$hostElement$ );
539
+ const createEvent = (ref, name, flags) => {
540
+ const elm = getElement(ref);
541
+ return {
542
+ emit: (detail) => {
543
+ return emitEvent(elm, name, {
544
+ bubbles: !!(flags & 4 /* Bubbles */),
545
+ composed: !!(flags & 2 /* Composed */),
546
+ cancelable: !!(flags & 1 /* Cancellable */),
547
+ detail,
548
+ });
549
+ },
550
+ };
551
+ };
504
552
  /**
505
553
  * Helper function to create & dispatch a custom Event on a provided target
506
554
  * @param elm the target of the Event
@@ -537,6 +585,15 @@ const dispatchHooks = (hostRef, isInitialLoad) => {
537
585
  const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);
538
586
  const instance = hostRef.$lazyInstance$ ;
539
587
  let promise;
588
+ if (isInitialLoad) {
589
+ {
590
+ hostRef.$flags$ |= 256 /* isListenReady */;
591
+ if (hostRef.$queuedListeners$) {
592
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));
593
+ hostRef.$queuedListeners$ = null;
594
+ }
595
+ }
596
+ }
540
597
  endSchedule();
541
598
  return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));
542
599
  };
@@ -938,6 +995,10 @@ const connectedCallback = (elm) => {
938
995
  }
939
996
  }
940
997
  else {
998
+ // not the first time this has connected
999
+ // reattach any event listeners to the host
1000
+ // since they would have been removed when disconnected
1001
+ addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
941
1002
  // fire off connectedCallback() on component instance
942
1003
  fireConnectedCallback(hostRef.$lazyInstance$);
943
1004
  }
@@ -946,7 +1007,13 @@ const connectedCallback = (elm) => {
946
1007
  };
947
1008
  const disconnectedCallback = (elm) => {
948
1009
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
949
- getHostRef(elm);
1010
+ const hostRef = getHostRef(elm);
1011
+ {
1012
+ if (hostRef.$rmListeners$) {
1013
+ hostRef.$rmListeners$.map((rmListener) => rmListener());
1014
+ hostRef.$rmListeners$ = undefined;
1015
+ }
1016
+ }
950
1017
  }
951
1018
  };
952
1019
  const bootstrapLazy = (lazyBundles, options = {}) => {
@@ -973,6 +1040,9 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
973
1040
  {
974
1041
  cmpMeta.$members$ = compactMeta[2];
975
1042
  }
1043
+ {
1044
+ cmpMeta.$listeners$ = compactMeta[3];
1045
+ }
976
1046
  const tagName = cmpMeta.$tagName$;
977
1047
  const HostElement = class extends HTMLElement {
978
1048
  // StencilLazyHost
@@ -1053,6 +1123,7 @@ const registerHost = (elm, cmpMeta) => {
1053
1123
  elm['s-p'] = [];
1054
1124
  elm['s-rc'] = [];
1055
1125
  }
1126
+ addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
1056
1127
  return hostRefs.set(elm, hostRef);
1057
1128
  };
1058
1129
  const isMemberInElement = (elm, memberName) => memberName in elm;
@@ -1121,4 +1192,4 @@ const flush = () => {
1121
1192
  const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1122
1193
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1123
1194
 
1124
- export { bootstrapLazy as b, h, promiseResolve as p, registerInstance as r };
1195
+ export { bootstrapLazy as b, createEvent as c, h, promiseResolve as p, registerInstance as r };
@@ -1,4 +1,4 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-c6e6b7f8.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-98326ddd.js';
2
2
 
3
3
  /*
4
4
  Stencil Client Patch Esm v2.15.2 | MIT Licensed | https://stenciljs.com
@@ -10,7 +10,7 @@ const patchEsm = () => {
10
10
  const defineCustomElements = (win, options) => {
11
11
  if (typeof window === 'undefined') return Promise.resolve();
12
12
  return patchEsm().then(() => {
13
- return bootstrapLazy([["lottery-draw-results",[[1,"lottery-draw-results",{"endpoint":[1],"gameId":[1,"game-id"],"language":[1],"playerId":[1,"player-id"],"drawMode":[4,"draw-mode"],"drawId":[1,"draw-id"],"gameName":[1,"game-name"],"ticketDate":[1,"ticket-date"],"ticketStatus":[1,"ticket-status"],"ticketId":[1,"ticket-id"],"ticketAmount":[1,"ticket-amount"],"ticketMultiplier":[4,"ticket-multiplier"],"ticketDrawCount":[2,"ticket-draw-count"],"multiplier":[32],"isLoading":[32],"drawResults":[32],"rules":[32],"toggleDrawer":[32],"hasErrors":[32],"errorText":[32]}]]]], options);
13
+ return bootstrapLazy([["lottery-bullet_3",[[1,"lottery-draw-results",{"endpoint":[1],"gameId":[1,"game-id"],"language":[1],"playerId":[1,"player-id"],"drawMode":[4,"draw-mode"],"drawId":[1,"draw-id"],"gameName":[1,"game-name"],"multiplier":[32],"ticketData":[32],"isLoading":[32],"drawResults":[32],"rules":[32],"toggleDrawer":[32],"hasErrors":[32],"errorText":[32]}],[1,"lottery-grid",{"ticketId":[2,"ticket-id"],"totalNumbers":[2,"total-numbers"],"gameId":[1,"game-id"],"maximumAllowed":[2,"maximum-allowed"],"minimumAllowed":[2,"minimum-allowed"],"selectable":[4],"selectedNumbers":[1,"selected-numbers"],"displaySelected":[4,"display-selected"],"language":[1],"gridIndex":[2,"grid-index"],"numbers":[32]},[[0,"lotteryBulletSelection","lotteryBulletSelectionHandler"],[4,"resetSelection","resetSelectionHandler"],[4,"autoSelection","autoSelectionHandler"]]],[1,"lottery-bullet",{"value":[1],"selectable":[4],"isSelected":[4,"is-selected"]}]]]], options);
14
14
  });
15
15
  };
16
16