@everymatrix/lottery-ticket-controller 0.1.5 → 0.1.6
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.
- package/dist/cjs/{helper-accordion_2.cjs.entry.js → helper-accordion.cjs.entry.js} +1 -65
- package/dist/cjs/{index-4814ed9d.js → index-95915aab.js} +40 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/lottery-bullet.cjs.entry.js +41 -0
- package/dist/cjs/lottery-grid.cjs.entry.js +167 -0
- package/dist/cjs/lottery-ticket-controller.cjs.entry.js +69 -0
- package/dist/cjs/lottery-ticket-controller.cjs.js +2 -2
- package/dist/cjs/lottery-ticket.cjs.entry.js +169 -0
- package/dist/collection/collection-manifest.json +25 -1
- package/dist/components/helper-accordion2.js +1 -0
- package/dist/components/lottery-bullet.js +6 -0
- package/dist/components/lottery-bullet2.js +57 -0
- package/dist/components/lottery-grid.js +6 -0
- package/dist/components/lottery-grid2.js +197 -0
- package/dist/components/lottery-ticket-controller.js +21 -3
- package/dist/components/lottery-ticket.js +6 -0
- package/dist/components/lottery-ticket2.js +209 -0
- package/dist/esm/{helper-accordion_2.entry.js → helper-accordion.entry.js} +2 -65
- package/dist/esm/{index-116c3025.js → index-e3877ca0.js} +40 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/lottery-bullet.entry.js +37 -0
- package/dist/esm/lottery-grid.entry.js +163 -0
- package/dist/esm/lottery-ticket-controller.entry.js +65 -0
- package/dist/esm/lottery-ticket-controller.js +2 -2
- package/dist/esm/lottery-ticket.entry.js +165 -0
- package/dist/lottery-ticket-controller/lottery-ticket-controller.esm.js +1 -1
- package/dist/lottery-ticket-controller/p-25f1639a.entry.js +1 -0
- package/dist/lottery-ticket-controller/p-3971b8e6.js +1 -0
- package/dist/lottery-ticket-controller/p-40d1058f.entry.js +1 -0
- package/dist/lottery-ticket-controller/p-dc525e6c.entry.js +1 -0
- package/dist/lottery-ticket-controller/p-f08b1b06.entry.js +1 -0
- package/dist/lottery-ticket-controller/p-f886ec7e.entry.js +1 -0
- package/dist/stencil.config.js +3 -0
- package/package.json +2 -2
- package/dist/lottery-ticket-controller/p-b4ec0994.js +0 -1
- package/dist/lottery-ticket-controller/p-efb11dcf.entry.js +0 -1
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
6
|
-
require('@everymatrix/lottery-ticket');
|
|
5
|
+
const index = require('./index-95915aab.js');
|
|
7
6
|
|
|
8
7
|
const DEFAULT_LANGUAGE = 'en';
|
|
9
8
|
const SUPPORTED_LANGUAGES = ['ro', 'en'];
|
|
@@ -90,67 +89,4 @@ const Accordion = class {
|
|
|
90
89
|
};
|
|
91
90
|
Accordion.style = helperAccordionCss;
|
|
92
91
|
|
|
93
|
-
const lotteryTicketControllerCss = ":host{display:block}";
|
|
94
|
-
|
|
95
|
-
const LotteryTicketController = class {
|
|
96
|
-
constructor(hostRef) {
|
|
97
|
-
index.registerInstance(this, hostRef);
|
|
98
|
-
this.deleteTicketEvent = index.createEvent(this, "deleteTicket", 7);
|
|
99
|
-
/**
|
|
100
|
-
* Endpoint URL for the source of data (NorWAy standard)
|
|
101
|
-
*/
|
|
102
|
-
this.endpoint = '';
|
|
103
|
-
/**
|
|
104
|
-
* Ticket number
|
|
105
|
-
*/
|
|
106
|
-
this.ticketId = 1;
|
|
107
|
-
/**
|
|
108
|
-
* Activates postMessages as events for actions from the widget
|
|
109
|
-
*/
|
|
110
|
-
this.postMessage = false;
|
|
111
|
-
/**
|
|
112
|
-
* Name of the event emitter by the action button
|
|
113
|
-
*/
|
|
114
|
-
this.eventName = 'deleteTicketAction';
|
|
115
|
-
/**
|
|
116
|
-
* Collapsed
|
|
117
|
-
*/
|
|
118
|
-
this.collapsed = true;
|
|
119
|
-
/**
|
|
120
|
-
* Number of grids?
|
|
121
|
-
*/
|
|
122
|
-
this.numberOfGrids = 1;
|
|
123
|
-
/**
|
|
124
|
-
* This toggles if the last ticket added should be expanded or not
|
|
125
|
-
*/
|
|
126
|
-
this.last = false;
|
|
127
|
-
/**
|
|
128
|
-
* Language
|
|
129
|
-
*/
|
|
130
|
-
this.language = 'en';
|
|
131
|
-
/**
|
|
132
|
-
* Shows the auto-pick button
|
|
133
|
-
*/
|
|
134
|
-
this.autoPick = false;
|
|
135
|
-
/**
|
|
136
|
-
* Shows the reset button
|
|
137
|
-
*/
|
|
138
|
-
this.resetButton = false;
|
|
139
|
-
}
|
|
140
|
-
// @TODO fix the `any` type
|
|
141
|
-
helperAccordionActionHandler() {
|
|
142
|
-
if (this.postMessage) {
|
|
143
|
-
window.postMessage({ type: this.eventName }, window.location.href);
|
|
144
|
-
}
|
|
145
|
-
this.deleteTicketEvent.emit({
|
|
146
|
-
ticketId: this.ticketId
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
render() {
|
|
150
|
-
return (index.h("div", null, index.h("helper-accordion", { "header-title": 'Ticket ' + this.ticketId, "header-subtitle": this.ticketDescription, footer: true, "delete-tab": true, collapsed: !this.last || this.collapsed, language: this.language }, index.h("div", { slot: "accordionContent" }, index.h("lottery-ticket", { endpoint: this.endpoint, "game-id": this.gameId, "ticket-id": this.ticketId, "number-of-grids": this.numberOfGrids, language: this.language, "reset-button": this.resetButton, "auto-pick": this.autoPick })))));
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
LotteryTicketController.style = lotteryTicketControllerCss;
|
|
154
|
-
|
|
155
92
|
exports.helper_accordion = Accordion;
|
|
156
|
-
exports.lottery_ticket_controller = LotteryTicketController;
|
|
@@ -50,7 +50,7 @@ const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
|
|
|
50
50
|
const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
|
|
51
51
|
if (listeners) {
|
|
52
52
|
listeners.map(([flags, name, method]) => {
|
|
53
|
-
const target = elm;
|
|
53
|
+
const target = getHostListenerTarget(elm, flags) ;
|
|
54
54
|
const handler = hostListenerProxy(hostRef, method);
|
|
55
55
|
const opts = hostListenerOpts(flags);
|
|
56
56
|
plt.ael(target, name, handler, opts);
|
|
@@ -74,6 +74,13 @@ const hostListenerProxy = (hostRef, methodName) => (ev) => {
|
|
|
74
74
|
consoleError(e);
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
|
+
const getHostListenerTarget = (elm, flags) => {
|
|
78
|
+
if (flags & 4 /* TargetDocument */)
|
|
79
|
+
return doc;
|
|
80
|
+
if (flags & 8 /* TargetWindow */)
|
|
81
|
+
return win;
|
|
82
|
+
return elm;
|
|
83
|
+
};
|
|
77
84
|
// prettier-ignore
|
|
78
85
|
const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
|
|
79
86
|
const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
|
|
@@ -790,6 +797,7 @@ const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propNam
|
|
|
790
797
|
const setValue = (ref, propName, newVal, cmpMeta) => {
|
|
791
798
|
// check our new property value against our internal value
|
|
792
799
|
const hostRef = getHostRef(ref);
|
|
800
|
+
const elm = hostRef.$hostElement$ ;
|
|
793
801
|
const oldVal = hostRef.$instanceValues$.get(propName);
|
|
794
802
|
const flags = hostRef.$flags$;
|
|
795
803
|
const instance = hostRef.$lazyInstance$ ;
|
|
@@ -802,6 +810,22 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
802
810
|
// set our new value!
|
|
803
811
|
hostRef.$instanceValues$.set(propName, newVal);
|
|
804
812
|
if (instance) {
|
|
813
|
+
// get an array of method names of watch functions to call
|
|
814
|
+
if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
|
|
815
|
+
const watchMethods = cmpMeta.$watchers$[propName];
|
|
816
|
+
if (watchMethods) {
|
|
817
|
+
// this instance is watching for when this property changed
|
|
818
|
+
watchMethods.map((watchMethodName) => {
|
|
819
|
+
try {
|
|
820
|
+
// fire off each of the watch methods that are watching this property
|
|
821
|
+
instance[watchMethodName](newVal, oldVal, propName);
|
|
822
|
+
}
|
|
823
|
+
catch (e) {
|
|
824
|
+
consoleError(e, elm);
|
|
825
|
+
}
|
|
826
|
+
});
|
|
827
|
+
}
|
|
828
|
+
}
|
|
805
829
|
if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
|
|
806
830
|
// looks like this value actually changed, so we've got work to do!
|
|
807
831
|
// but only if we've already rendered, otherwise just chill out
|
|
@@ -814,6 +838,9 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
814
838
|
};
|
|
815
839
|
const proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
816
840
|
if (cmpMeta.$members$) {
|
|
841
|
+
if (Cstr.watchers) {
|
|
842
|
+
cmpMeta.$watchers$ = Cstr.watchers;
|
|
843
|
+
}
|
|
817
844
|
// It's better to have a const than two Object.entries()
|
|
818
845
|
const members = Object.entries(cmpMeta.$members$);
|
|
819
846
|
const prototype = Cstr.prototype;
|
|
@@ -918,6 +945,12 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
|
|
|
918
945
|
endLoad();
|
|
919
946
|
}
|
|
920
947
|
if (!Cstr.isProxied) {
|
|
948
|
+
// we've never proxied this Constructor before
|
|
949
|
+
// let's add the getters/setters to its prototype before
|
|
950
|
+
// the first time we create an instance of the implementation
|
|
951
|
+
{
|
|
952
|
+
cmpMeta.$watchers$ = Cstr.watchers;
|
|
953
|
+
}
|
|
921
954
|
proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
|
|
922
955
|
Cstr.isProxied = true;
|
|
923
956
|
}
|
|
@@ -941,6 +974,9 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
|
|
|
941
974
|
{
|
|
942
975
|
hostRef.$flags$ &= ~8 /* isConstructingInstance */;
|
|
943
976
|
}
|
|
977
|
+
{
|
|
978
|
+
hostRef.$flags$ |= 128 /* isWatchReady */;
|
|
979
|
+
}
|
|
944
980
|
endNewInstance();
|
|
945
981
|
fireConnectedCallback(hostRef.$lazyInstance$);
|
|
946
982
|
}
|
|
@@ -1063,6 +1099,9 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1063
1099
|
{
|
|
1064
1100
|
cmpMeta.$listeners$ = compactMeta[3];
|
|
1065
1101
|
}
|
|
1102
|
+
{
|
|
1103
|
+
cmpMeta.$watchers$ = {};
|
|
1104
|
+
}
|
|
1066
1105
|
const tagName = cmpMeta.$tagName$;
|
|
1067
1106
|
const HostElement = class extends HTMLElement {
|
|
1068
1107
|
// StencilLazyHost
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-95915aab.js');
|
|
6
6
|
|
|
7
7
|
/*
|
|
8
8
|
Stencil Client Patch Esm v2.15.2 | MIT Licensed | https://stenciljs.com
|
|
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
16
|
return patchEsm().then(() => {
|
|
17
|
-
return index.bootstrapLazy([["
|
|
17
|
+
return index.bootstrapLazy([["lottery-bullet.cjs",[[1,"lottery-bullet",{"value":[1],"selectable":[4],"isSelected":[4,"is-selected"]}]]],["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"]]]]],["lottery-ticket.cjs",[[1,"lottery-ticket",{"endpoint":[1],"gameId":[1,"game-id"],"numberOfGrids":[2,"number-of-grids"],"multipleDraws":[4,"multiple-draws"],"ticketId":[2,"ticket-id"],"resetButton":[4,"reset-button"],"autoPick":[4,"auto-pick"],"language":[1],"multiplier":[32],"numberOfDraws":[32],"isLoading":[32],"hasErrors":[32],"ticketDone":[32],"isCustomSelect":[32],"amountInfo":[32]},[[8,"click","checkForClickOutside"],[0,"gridFilled","gridFilledHandler"]]]]],["helper-accordion.cjs",[[1,"helper-accordion",{"ticketHistoryFlag":[4,"ticket-history-flag"],"headerTitle":[1,"header-title"],"headerSubtitle":[1,"header-subtitle"],"description":[1],"footer":[4],"deleteTab":[4,"delete-tab"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"language":[1],"showContent":[32]}]]],["lottery-ticket-controller.cjs",[[1,"lottery-ticket-controller",{"endpoint":[1],"ticketId":[2,"ticket-id"],"ticketDescription":[1,"ticket-description"],"gameId":[1,"game-id"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"numberOfGrids":[2,"number-of-grids"],"last":[4],"language":[1],"autoPick":[4,"auto-pick"],"resetButton":[4,"reset-button"]},[[0,"helperAccordionAction","helperAccordionActionHandler"]]]]]], options);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-95915aab.js');
|
|
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, white 0%, white 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, white 0%, #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:#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}";
|
|
8
|
+
|
|
9
|
+
const LotteryBullet = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
index.registerInstance(this, hostRef);
|
|
12
|
+
this.bulletEvent = index.createEvent(this, "lotteryBulletSelection", 7);
|
|
13
|
+
/**
|
|
14
|
+
* Value of the bullet
|
|
15
|
+
*/
|
|
16
|
+
this.value = '0';
|
|
17
|
+
/**
|
|
18
|
+
* Marks if the bullet should be selectable
|
|
19
|
+
*/
|
|
20
|
+
this.selectable = true;
|
|
21
|
+
/**
|
|
22
|
+
* Marks if the bullet should be selected
|
|
23
|
+
*/
|
|
24
|
+
this.isSelected = false;
|
|
25
|
+
this.select = () => {
|
|
26
|
+
if (this.selectable) {
|
|
27
|
+
this.isSelected = !this.isSelected;
|
|
28
|
+
this.bulletEvent.emit({
|
|
29
|
+
value: this.value,
|
|
30
|
+
selected: this.isSelected
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
render() {
|
|
36
|
+
return (index.h("div", { class: 'Circle ' + (this.selectable ? '' : 'Disabled') + (this.isSelected ? 'Selected' : ''), onClick: () => this.select() }, this.value));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
LotteryBullet.style = lotteryBulletCss;
|
|
40
|
+
|
|
41
|
+
exports.lottery_bullet = LotteryBullet;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-95915aab.js');
|
|
6
|
+
|
|
7
|
+
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:1200px}.Grid{margin-top:10px 0 10px 0;display:flex;flex-direction:row;flex-wrap:wrap;gap:25px}";
|
|
8
|
+
|
|
9
|
+
const LotteryGrid = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
index.registerInstance(this, hostRef);
|
|
12
|
+
this.gridFilledEvent = index.createEvent(this, "gridFilled", 7);
|
|
13
|
+
this.gridDirtyEvent = index.createEvent(this, "gridDirty", 7);
|
|
14
|
+
/**
|
|
15
|
+
* Number of bullets of grid
|
|
16
|
+
*/
|
|
17
|
+
this.totalNumbers = 0;
|
|
18
|
+
/**
|
|
19
|
+
* Number of maximum bullets that can be selected
|
|
20
|
+
*/
|
|
21
|
+
this.maximumAllowed = 0;
|
|
22
|
+
/**
|
|
23
|
+
* Minimum allowed of bullets
|
|
24
|
+
*/
|
|
25
|
+
this.minimumAllowed = 1;
|
|
26
|
+
/**
|
|
27
|
+
* Allows the user to select numbers on the grid
|
|
28
|
+
*/
|
|
29
|
+
this.selectable = true;
|
|
30
|
+
/**
|
|
31
|
+
* Numbers that should be showed as selected on the grid (as a string of those numbers e.g. '1,2,3,4,5,6')
|
|
32
|
+
*/
|
|
33
|
+
this.selectedNumbers = '';
|
|
34
|
+
/**
|
|
35
|
+
* Show only selected numbers
|
|
36
|
+
*/
|
|
37
|
+
this.displaySelected = false;
|
|
38
|
+
/**
|
|
39
|
+
* Language
|
|
40
|
+
*/
|
|
41
|
+
this.language = 'en';
|
|
42
|
+
this.numbers = [];
|
|
43
|
+
this.selectedCounter = 0;
|
|
44
|
+
}
|
|
45
|
+
connectedCallback() {
|
|
46
|
+
let selected = [];
|
|
47
|
+
if (this.selectedNumbers.length > 0) {
|
|
48
|
+
selected = this.selectedNumbers.split(',');
|
|
49
|
+
this.selectedCounter = selected.length;
|
|
50
|
+
}
|
|
51
|
+
if (this.displaySelected) {
|
|
52
|
+
selected.forEach((item) => {
|
|
53
|
+
this.numbers.push({
|
|
54
|
+
number: item,
|
|
55
|
+
selected: true,
|
|
56
|
+
selectable: this.selectable
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
[...Array(this.totalNumbers).keys()]
|
|
62
|
+
.map(number => (number + 1).toString())
|
|
63
|
+
.forEach((number) => {
|
|
64
|
+
this.numbers.push({
|
|
65
|
+
number,
|
|
66
|
+
selected: selected.indexOf(number) >= 0 ? true : false,
|
|
67
|
+
selectable: this.selectedCounter == this.maximumAllowed ? false : this.selectable
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
lotteryBulletSelectionHandler(event) {
|
|
73
|
+
this.numbers = this.numbers.map((item) => {
|
|
74
|
+
if (item.number == event.detail.value) {
|
|
75
|
+
return {
|
|
76
|
+
number: item.number,
|
|
77
|
+
selected: event.detail.selected,
|
|
78
|
+
selectable: item.selectable
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
number: item.number,
|
|
83
|
+
selected: item.selected,
|
|
84
|
+
selectable: item.selectable
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
if (event.detail.selected) {
|
|
88
|
+
this.selectedCounter += 1;
|
|
89
|
+
if (this.selectedCounter == this.maximumAllowed) {
|
|
90
|
+
this.numbers = this.numbers.map((item) => {
|
|
91
|
+
return {
|
|
92
|
+
number: item.number,
|
|
93
|
+
selected: item.selected,
|
|
94
|
+
selectable: item.selected ? true : false
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
this.gridFilledEvent.emit({
|
|
98
|
+
id: this.ticketId,
|
|
99
|
+
index: this.gridIndex,
|
|
100
|
+
selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (this.selectedCounter == this.maximumAllowed) {
|
|
106
|
+
this.numbers = this.numbers.map((item) => {
|
|
107
|
+
return {
|
|
108
|
+
number: item.number,
|
|
109
|
+
selected: item.selected,
|
|
110
|
+
selectable: true
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
this.gridDirtyEvent.emit({
|
|
114
|
+
id: this.ticketId,
|
|
115
|
+
index: this.gridIndex,
|
|
116
|
+
selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
this.selectedCounter -= 1;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async resetSelectionHandler(event) {
|
|
123
|
+
if (event.detail && event.detail == this.ticketId) {
|
|
124
|
+
this.selectedCounter = 0;
|
|
125
|
+
this.numbers = this.numbers.map((item) => {
|
|
126
|
+
return {
|
|
127
|
+
number: item.number,
|
|
128
|
+
selected: false,
|
|
129
|
+
selectable: this.selectable
|
|
130
|
+
};
|
|
131
|
+
});
|
|
132
|
+
this.gridDirtyEvent.emit({
|
|
133
|
+
id: this.ticketId,
|
|
134
|
+
index: this.gridIndex,
|
|
135
|
+
selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async autoSelectionHandler(event) {
|
|
140
|
+
if (event.detail && event.detail == this.ticketId) {
|
|
141
|
+
this.resetSelectionHandler(event);
|
|
142
|
+
let array = [...Array(this.totalNumbers).keys()]
|
|
143
|
+
.map(number => number + 1)
|
|
144
|
+
.sort(() => 0.5 - Math.random());
|
|
145
|
+
array = array.slice(0, this.minimumAllowed);
|
|
146
|
+
this.numbers = this.numbers.map((item) => {
|
|
147
|
+
return {
|
|
148
|
+
number: item.number,
|
|
149
|
+
selected: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
|
|
150
|
+
selectable: array.indexOf(parseInt(item.number, 10)) >= 0 ? true : false,
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
this.gridFilledEvent.emit({
|
|
154
|
+
id: this.ticketId,
|
|
155
|
+
index: this.gridIndex,
|
|
156
|
+
selectedNumbers: this.numbers.filter((item) => item.selected).map((item) => item.number)
|
|
157
|
+
});
|
|
158
|
+
this.selectedCounter = this.maximumAllowed;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
render() {
|
|
162
|
+
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 }))))));
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
LotteryGrid.style = lotteryGridCss;
|
|
166
|
+
|
|
167
|
+
exports.lottery_grid = LotteryGrid;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-95915aab.js');
|
|
6
|
+
|
|
7
|
+
const lotteryTicketControllerCss = ":host{display:block}";
|
|
8
|
+
|
|
9
|
+
const LotteryTicketController = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
index.registerInstance(this, hostRef);
|
|
12
|
+
this.deleteTicketEvent = index.createEvent(this, "deleteTicket", 7);
|
|
13
|
+
/**
|
|
14
|
+
* Endpoint URL for the source of data (NorWAy standard)
|
|
15
|
+
*/
|
|
16
|
+
this.endpoint = '';
|
|
17
|
+
/**
|
|
18
|
+
* Ticket number
|
|
19
|
+
*/
|
|
20
|
+
this.ticketId = 1;
|
|
21
|
+
/**
|
|
22
|
+
* Activates postMessages as events for actions from the widget
|
|
23
|
+
*/
|
|
24
|
+
this.postMessage = false;
|
|
25
|
+
/**
|
|
26
|
+
* Name of the event emitter by the action button
|
|
27
|
+
*/
|
|
28
|
+
this.eventName = 'deleteTicketAction';
|
|
29
|
+
/**
|
|
30
|
+
* Collapsed
|
|
31
|
+
*/
|
|
32
|
+
this.collapsed = true;
|
|
33
|
+
/**
|
|
34
|
+
* Number of grids?
|
|
35
|
+
*/
|
|
36
|
+
this.numberOfGrids = 1;
|
|
37
|
+
/**
|
|
38
|
+
* This toggles if the last ticket added should be expanded or not
|
|
39
|
+
*/
|
|
40
|
+
this.last = false;
|
|
41
|
+
/**
|
|
42
|
+
* Language
|
|
43
|
+
*/
|
|
44
|
+
this.language = 'en';
|
|
45
|
+
/**
|
|
46
|
+
* Shows the auto-pick button
|
|
47
|
+
*/
|
|
48
|
+
this.autoPick = false;
|
|
49
|
+
/**
|
|
50
|
+
* Shows the reset button
|
|
51
|
+
*/
|
|
52
|
+
this.resetButton = false;
|
|
53
|
+
}
|
|
54
|
+
// @TODO fix the `any` type
|
|
55
|
+
helperAccordionActionHandler() {
|
|
56
|
+
if (this.postMessage) {
|
|
57
|
+
window.postMessage({ type: this.eventName }, window.location.href);
|
|
58
|
+
}
|
|
59
|
+
this.deleteTicketEvent.emit({
|
|
60
|
+
ticketId: this.ticketId
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
return (index.h("div", null, index.h("helper-accordion", { "header-title": 'Ticket ' + this.ticketId, "header-subtitle": this.ticketDescription, footer: true, "delete-tab": true, collapsed: !this.last || this.collapsed, language: this.language }, index.h("div", { slot: "accordionContent" }, index.h("lottery-ticket", { endpoint: this.endpoint, "game-id": this.gameId, "ticket-id": this.ticketId, "number-of-grids": this.numberOfGrids, language: this.language, "reset-button": this.resetButton, "auto-pick": this.autoPick })))));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
LotteryTicketController.style = lotteryTicketControllerCss;
|
|
68
|
+
|
|
69
|
+
exports.lottery_ticket_controller = LotteryTicketController;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const index = require('./index-
|
|
3
|
+
const index = require('./index-95915aab.js');
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
6
|
Stencil Client Patch Browser v2.15.2 | MIT Licensed | https://stenciljs.com
|
|
@@ -15,5 +15,5 @@ const patchBrowser = () => {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(options => {
|
|
18
|
-
return index.bootstrapLazy([["
|
|
18
|
+
return index.bootstrapLazy([["lottery-bullet.cjs",[[1,"lottery-bullet",{"value":[1],"selectable":[4],"isSelected":[4,"is-selected"]}]]],["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"]]]]],["lottery-ticket.cjs",[[1,"lottery-ticket",{"endpoint":[1],"gameId":[1,"game-id"],"numberOfGrids":[2,"number-of-grids"],"multipleDraws":[4,"multiple-draws"],"ticketId":[2,"ticket-id"],"resetButton":[4,"reset-button"],"autoPick":[4,"auto-pick"],"language":[1],"multiplier":[32],"numberOfDraws":[32],"isLoading":[32],"hasErrors":[32],"ticketDone":[32],"isCustomSelect":[32],"amountInfo":[32]},[[8,"click","checkForClickOutside"],[0,"gridFilled","gridFilledHandler"]]]]],["helper-accordion.cjs",[[1,"helper-accordion",{"ticketHistoryFlag":[4,"ticket-history-flag"],"headerTitle":[1,"header-title"],"headerSubtitle":[1,"header-subtitle"],"description":[1],"footer":[4],"deleteTab":[4,"delete-tab"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"language":[1],"showContent":[32]}]]],["lottery-ticket-controller.cjs",[[1,"lottery-ticket-controller",{"endpoint":[1],"ticketId":[2,"ticket-id"],"ticketDescription":[1,"ticket-description"],"gameId":[1,"game-id"],"postMessage":[4,"post-message"],"eventName":[1,"event-name"],"collapsed":[4],"numberOfGrids":[2,"number-of-grids"],"last":[4],"language":[1],"autoPick":[4,"auto-pick"],"resetButton":[4,"reset-button"]},[[0,"helperAccordionAction","helperAccordionActionHandler"]]]]]], options);
|
|
19
19
|
});
|