@everymatrix/lottery-draw-results 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 (47) hide show
  1. package/dist/cjs/index-03778cb9.js +1147 -0
  2. package/dist/cjs/index.cjs.js +2 -0
  3. package/dist/cjs/loader.cjs.js +21 -0
  4. package/dist/cjs/lottery-draw-results.cjs.entry.js +179 -0
  5. package/dist/cjs/lottery-draw-results.cjs.js +19 -0
  6. package/dist/collection/collection-manifest.json +12 -0
  7. package/dist/collection/components/lottery-draw-results/lottery-draw-results.css +148 -0
  8. package/dist/collection/components/lottery-draw-results/lottery-draw-results.js +365 -0
  9. package/dist/collection/index.js +1 -0
  10. package/dist/collection/utils/locale.utils.js +30 -0
  11. package/dist/collection/utils/utils.js +3 -0
  12. package/dist/components/index.d.ts +22 -0
  13. package/dist/components/index.js +2 -0
  14. package/dist/components/lottery-draw-results.d.ts +11 -0
  15. package/dist/components/lottery-draw-results.js +209 -0
  16. package/dist/esm/index-17920f23.js +1122 -0
  17. package/dist/esm/index.js +1 -0
  18. package/dist/esm/loader.js +17 -0
  19. package/dist/esm/lottery-draw-results.entry.js +175 -0
  20. package/dist/esm/lottery-draw-results.js +17 -0
  21. package/dist/esm/polyfills/core-js.js +11 -0
  22. package/dist/esm/polyfills/css-shim.js +1 -0
  23. package/dist/esm/polyfills/dom.js +79 -0
  24. package/dist/esm/polyfills/es5-html-element.js +1 -0
  25. package/dist/esm/polyfills/index.js +34 -0
  26. package/dist/esm/polyfills/system.js +6 -0
  27. package/dist/index.cjs.js +1 -0
  28. package/dist/index.js +1 -0
  29. package/dist/lottery-draw-results/index.esm.js +0 -0
  30. package/dist/lottery-draw-results/lottery-draw-results.esm.js +1 -0
  31. package/dist/lottery-draw-results/p-62092f31.js +2 -0
  32. package/dist/lottery-draw-results/p-c6628b24.entry.js +1 -0
  33. package/dist/stencil.config.js +22 -0
  34. package/dist/types/Users/user/workspace/everymatrix/widgets-stencil/packages/lottery-draw-results/.stencil/packages/lottery-draw-results/stencil.config.d.ts +2 -0
  35. package/dist/types/components/lottery-draw-results/lottery-draw-results.d.ts +44 -0
  36. package/dist/types/components.d.ts +87 -0
  37. package/dist/types/index.d.ts +1 -0
  38. package/dist/types/stencil-public-runtime.d.ts +1565 -0
  39. package/dist/types/utils/locale.utils.d.ts +1 -0
  40. package/dist/types/utils/utils.d.ts +1 -0
  41. package/loader/cdn.js +3 -0
  42. package/loader/index.cjs.js +3 -0
  43. package/loader/index.d.ts +12 -0
  44. package/loader/index.es2017.js +3 -0
  45. package/loader/index.js +4 -0
  46. package/loader/package.json +10 -0
  47. 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-03778cb9.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-draw-results.cjs",[[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]}]]]], options);
18
+ });
19
+ };
20
+
21
+ exports.defineCustomElements = defineCustomElements;
@@ -0,0 +1,179 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-03778cb9.js');
6
+ require('@everymatrix/lottery-grid');
7
+
8
+ const DEFAULT_LANGUAGE = 'en';
9
+ const SUPPORTED_LANGUAGES = ['ro', 'en'];
10
+ const TRANSLATIONS = {
11
+ en: {
12
+ drawResultsHeader: 'Last draw results',
13
+ drawId: 'Draw ID',
14
+ drawName: 'Game name',
15
+ drawDate: 'Draw Date',
16
+ drawNumbersGridDraw: 'Draw numbers Grid A',
17
+ drawNumbersGridTicket: 'Draw numbers Grid B',
18
+ ticketResult: 'Ticket result',
19
+ amountWon: 'Amount won',
20
+ numberOfDraws: 'Number of draws'
21
+ },
22
+ ro: {
23
+ drawResultsHeader: 'Ultimele rezultate extragere',
24
+ drawId: 'Id extragere',
25
+ drawName: 'Numele jocului',
26
+ drawDate: 'Data extragerii',
27
+ drawNumbersGridDraw: 'Numerele extrase Grid A',
28
+ drawNumbersGridTicket: 'Numerele extrase Grid B',
29
+ ticketResult: 'Rezultatul biletului',
30
+ amountWon: 'Suma castigata',
31
+ numberOfDraws: 'Numarul de extrageri'
32
+ },
33
+ };
34
+ const translate = (key, customLang) => {
35
+ const lang = customLang;
36
+ return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
37
+ };
38
+
39
+ const lotteryDrawResultsCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.TicketInfo{display:flex;flex-direction:row;gap:15px;background-color:#009993;color:#fff;padding:12px;font-size:14px}.DrawResultsSection{max-width:500px;margin:0 auto;margin:0px auto 10px;border-radius:4px}.DrawResultsHeader{display:flex;justify-content:space-between;padding:10px 20px;background-color:#009993;color:#fff;font-size:14px}.DrawResultsHeader h4{text-transform:uppercase;font-weight:400;margin:0}.DrawMultipler label{display:block;margin:15px 0}.DrawResultsBody{padding:0 20px}.DrawResultsBody .DrawNumbersGrid{font-size:14px}.DrawResultsBody .NumberOfDrawsContainer{display:table;width:100%}.Toggle{cursor:pointer;display:inline-block}.ToggleSwitch{display:inline-block;background:#ccc;border-radius:16px;width:58px;height:24px;position:relative;vertical-align:middle;transition:background 0.25s}.ToggleSwitch:before,.ToggleSwitch:after{content:\"\"}.ToggleSwitch:before{display:block;background:linear-gradient(to bottom, #fff 0%, #eee 100%);border-radius:50%;box-shadow:0 0 0 1px rgba(0, 0, 0, 0.25);width:16px;height:16px;position:absolute;top:4px;left:4px;transition:left 0.25s}.Toggle:hover .ToggleSwitch:before{background:linear-gradient(to bottom, #fff 0%, #fff 100%);box-shadow:0 0 0 1px rgba(0, 0, 0, 0.5)}.ToggleCheckbox:checked+.ToggleSwitch{background:#56c080}.ToggleCheckbox:checked+.ToggleSwitch:before{left:38px}.ToggleCheckbox{position:absolute;visibility:hidden}.Label{margin-right:5px;position:relative;top:2px}.DrawTicketsContainer{margin:30px auto}.ExpandableBoxes{position:relative}.ExpandableBox{width:100%;height:100%;max-height:100px;float:left;margin:0 0 20px 0;border:1px solid #009993;border-radius:4px;padding:10px;box-sizing:border-box;-webkit-transition:all 0.6s ease-in-out;-moz-transition:all 0.6s ease-in-out;-o-transition:all 0.6s ease-in-out;-ms-transition:all 0.6s ease-in-out;transition:all 0.6s ease-in-out;overflow:hidden}.ExpandableBox.ShowBox{max-height:400px;margin:0px 0px 20p 0px}.ExpandableBox.HideBox{width:0;height:0;overflow:hidden;border:none;padding:0;margin:0;opacity:0}";
40
+
41
+ const DEFAULT_VALUES = {
42
+ gamename: 'Chrono',
43
+ gamedate: '24/09/2022',
44
+ state: 'Processing',
45
+ amount: 304444,
46
+ ticketid: '6963444',
47
+ selection: '[5, 6, 7, 8, 9]',
48
+ multiplier: 4.5,
49
+ resultstatus: 'Processing',
50
+ drawstatus: 'Won',
51
+ drawamount: 1022,
52
+ drawid: '54545555',
53
+ drawdate: '24/09/2032'
54
+ };
55
+ const LotteryDrawResults = class {
56
+ constructor(hostRef) {
57
+ index.registerInstance(this, hostRef);
58
+ /**
59
+ * Language of the widget
60
+ */
61
+ this.language = 'en';
62
+ /**
63
+ * Shows only the last draw
64
+ */
65
+ this.drawMode = false;
66
+ this.gameName = '';
67
+ this.multiplier = 5.434;
68
+ this.ticketData = {};
69
+ this.isLoading = true;
70
+ this.drawResults = [];
71
+ this.rules = {};
72
+ this.toggleDrawer = [false];
73
+ this.hasErrors = false;
74
+ this.errorText = '';
75
+ this.changeBox = (index) => {
76
+ this.toggleDrawer = this.toggleDrawer.map((item, itemIndex) => {
77
+ if (itemIndex == index) {
78
+ return !item;
79
+ }
80
+ return item;
81
+ });
82
+ if (index >= this.toggleDrawer.length) {
83
+ this.toggleDrawer.push(true);
84
+ }
85
+ };
86
+ }
87
+ connectedCallback() {
88
+ let promises = [];
89
+ promises.push(this.getGameData());
90
+ if (this.playerId) {
91
+ promises.push(this.getTicketData());
92
+ }
93
+ if (this.drawId) {
94
+ promises.push(this.getDrawData());
95
+ }
96
+ Promise.all(promises)
97
+ .then(() => {
98
+ this.isLoading = false;
99
+ });
100
+ }
101
+ getDrawData() {
102
+ return new Promise((resolve, reject) => {
103
+ let url = new URL(`${this.endpoint}/games/${this.gameId}/draws/${this.drawId}`);
104
+ fetch(url.href)
105
+ .then((response) => {
106
+ // @TODO EXCEPTIONS
107
+ return response.json();
108
+ })
109
+ .then((data) => {
110
+ this.drawData = data;
111
+ resolve(true);
112
+ })
113
+ .catch((err) => {
114
+ reject(err);
115
+ });
116
+ });
117
+ }
118
+ getGameData() {
119
+ return new Promise((resolve, reject) => {
120
+ let url = new URL(`${this.endpoint}/games/${this.gameId}`);
121
+ fetch(url.href)
122
+ .then((response) => {
123
+ return response.json();
124
+ })
125
+ .then((data) => {
126
+ this.rules = {
127
+ maximumAllowed: data.rules.boards[0].maximumAllowed,
128
+ totalNumbers: data.rules.boards[0].totalNumbers
129
+ };
130
+ resolve(true);
131
+ })
132
+ .catch((err) => {
133
+ this.isLoading = false;
134
+ this.hasErrors = true;
135
+ this.errorText = err;
136
+ reject(err);
137
+ });
138
+ });
139
+ }
140
+ getTicketData() {
141
+ return new Promise((resolve, reject) => {
142
+ let url = new URL(`${this.endpoint}/tickets/player/${this.playerId}`);
143
+ fetch(url.href)
144
+ .then((response) => {
145
+ return response.json();
146
+ })
147
+ .then((data) => {
148
+ this.ticketData = data.length === 0 ? DEFAULT_VALUES : data[1];
149
+ this.drawResults = this.ticketData.drawResults.map((item) => item);
150
+ this.selection = this.ticketData.selection[0].join(',');
151
+ resolve(true);
152
+ })
153
+ .catch((err) => {
154
+ reject(err);
155
+ });
156
+ });
157
+ }
158
+ render() {
159
+ var _a, _b, _c, _d, _e, _f;
160
+ if (this.isLoading) {
161
+ return (index.h("p", null, "Loading, please wait ..."));
162
+ }
163
+ else if (this.hasErrors) {
164
+ index.h("p", null, this.errorText);
165
+ }
166
+ else {
167
+ return (index.h("section", { class: "DrawResultsSection" }, !this.drawMode ?
168
+ index.h("div", { class: "DrawResultsArea" }, index.h("div", { class: "TicketInfo" }, index.h("div", { class: "TicketGameName" }, translate('drawName', this.language), ": ", index.h("span", null, this.gameName)), index.h("div", { class: "TicketDate" }, "Ticket Purchase Date: ", index.h("span", null, (_a = this.ticketData) === null || _a === void 0 ? void 0 : _a.createdAt.slice(0, 10))), index.h("div", { class: "TicketStatus" }, "Status: ", index.h("span", null, (_b = this.ticketData) === null || _b === void 0 ? void 0 : _b.state))), index.h("div", { class: "DrawResultsBody" }, index.h("div", { class: "TicketIdContainer" }, index.h("p", null, "Ticket id: ", index.h("span", null, (_c = this.ticketData) === null || _c === void 0 ? void 0 : _c.id))), index.h("div", { class: "TicketAmountContainer" }, index.h("p", null, "Ticket amount: ", index.h("span", null, (_d = this.ticketData) === null || _d === void 0 ? void 0 : _d.amount))), index.h("div", { class: "DrawNumbersGrid" }, index.h("p", null, translate('drawNumbersGridTicket', this.language), ":"), index.h("div", { class: "BulletContainer" }, index.h("lottery-grid", { "maximum-allowed": this.rules.maximumAllowed, "total-numbers": this.rules.totalNumbers, "selected-numbers": this.selection, selectable: false, "display-selected": true, language: this.language }))), index.h("div", { class: "DrawMultipler" }, index.h("label", { class: "Label" }, "Multiplier: ", index.h("span", null, JSON.stringify((_e = this.ticketData) === null || _e === void 0 ? void 0 : _e.multiplier)))), index.h("div", { class: "NumberOfDrawsContainer" }, index.h("p", null, translate('numberOfDraws', this.language), ": ", (_f = this.ticketData) === null || _f === void 0 ? void 0 :
169
+ _f.drawCount), index.h("div", { class: "DrawTicketsContainer" }, this.drawResults.map((item, index$1) => index.h("div", { class: "ExpandableBoxes" }, index.h("div", { class: this.toggleDrawer[index$1] ? 'ExpandableBox ShowBox' : 'ExpandableBox', onClick: () => this.changeBox(index$1) }, index.h("div", { class: "TicketResultContainer" }, index.h("p", null, translate('ticketResult', this.language), ": ", item.status)), item.state == 'won' &&
170
+ index.h("div", { class: "AmountWonContainer" }, index.h("p", null, translate('amountWon', this.language), ": ", Number(item.amount).toLocaleString('en'), " ", item.currency)), index.h("div", { class: "DrawIdContainer" }, index.h("p", null, translate('drawId', this.language), ": ", item.drawId)), index.h("div", { class: "DrawDateContainer" }, index.h("p", null, translate('drawDate', this.language), ": ", item.updatedAt.slice(0, 10), " | ", item.updatedAt.slice(11, 19))), index.h("div", { class: "DrawNumbersGrid" }), index.h("div", { class: "DrawMultipler" }, index.h("label", { class: "Label" }, "Multiplier: ", item.multiplier)))))))))
171
+ :
172
+ index.h("div", { class: "DrawResultsArea" }, this.drawData &&
173
+ index.h("div", null, index.h("div", { class: "DrawResultsHeader" }, index.h("span", null, translate('drawId', this.language), ": ", this.drawData.id), index.h("span", null, translate('drawDate', this.language), ": ", this.drawData.date.slice(0, 10))), index.h("div", { class: "DrawResultsBody" }, index.h("div", { class: "DrawNumbersGrid" }, index.h("p", null, translate('drawNumbersGridDraw', this.language), ":"), index.h("div", { class: "BulletContainer" }, index.h("lottery-grid", { "maximum-allowed": this.rules.maximumAllowed, "total-numbers": this.rules.totalNumbers, selectedNumbers: this.drawData.winningNumbers.join(','), "display-selected": true, selectable: false, language: this.language })), index.h("div", { class: "DrawMultipler" }, index.h("label", { class: "Label" }, "Multiplier: ", this.multiplier))))))));
174
+ }
175
+ }
176
+ };
177
+ LotteryDrawResults.style = lotteryDrawResultsCss;
178
+
179
+ exports.lottery_draw_results = LotteryDrawResults;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const index = require('./index-03778cb9.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-draw-results.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-draw-results.cjs",[[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]}]]]], options);
19
+ });
@@ -0,0 +1,12 @@
1
+ {
2
+ "entries": [
3
+ "./components/lottery-draw-results/lottery-draw-results.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,148 @@
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
+ .TicketInfo {
8
+ display: flex;
9
+ flex-direction: row;
10
+ gap: 15px;
11
+ background-color: #009993;
12
+ color: #fff;
13
+ padding: 12px;
14
+ font-size: 14px;
15
+ }
16
+
17
+ .DrawResultsSection {
18
+ max-width: 500px;
19
+ margin: 0 auto;
20
+ margin: 0px auto 10px;
21
+ border-radius: 4px;
22
+ }
23
+
24
+ .DrawResultsHeader {
25
+ display: flex;
26
+ justify-content: space-between;
27
+ padding: 10px 20px;
28
+ background-color: #009993;
29
+ color: #fff;
30
+ font-size: 14px;
31
+ }
32
+ .DrawResultsHeader h4 {
33
+ text-transform: uppercase;
34
+ font-weight: 400;
35
+ margin: 0;
36
+ }
37
+
38
+ .DrawMultipler label {
39
+ display: block;
40
+ margin: 15px 0;
41
+ }
42
+
43
+ .DrawResultsBody {
44
+ padding: 0 20px;
45
+ }
46
+ .DrawResultsBody .DrawNumbersGrid {
47
+ font-size: 14px;
48
+ }
49
+ .DrawResultsBody .NumberOfDrawsContainer {
50
+ display: table;
51
+ width: 100%;
52
+ }
53
+
54
+ .Toggle {
55
+ cursor: pointer;
56
+ display: inline-block;
57
+ }
58
+
59
+ .ToggleSwitch {
60
+ display: inline-block;
61
+ background: #ccc;
62
+ border-radius: 16px;
63
+ width: 58px;
64
+ height: 24px;
65
+ position: relative;
66
+ vertical-align: middle;
67
+ transition: background 0.25s;
68
+ }
69
+ .ToggleSwitch:before, .ToggleSwitch:after {
70
+ content: "";
71
+ }
72
+ .ToggleSwitch:before {
73
+ display: block;
74
+ background: linear-gradient(to bottom, #fff 0%, #eee 100%);
75
+ border-radius: 50%;
76
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
77
+ width: 16px;
78
+ height: 16px;
79
+ position: absolute;
80
+ top: 4px;
81
+ left: 4px;
82
+ transition: left 0.25s;
83
+ }
84
+
85
+ .Toggle:hover .ToggleSwitch:before {
86
+ background: linear-gradient(to bottom, #fff 0%, #fff 100%);
87
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
88
+ }
89
+
90
+ .ToggleCheckbox:checked + .ToggleSwitch {
91
+ background: #56c080;
92
+ }
93
+
94
+ .ToggleCheckbox:checked + .ToggleSwitch:before {
95
+ left: 38px;
96
+ }
97
+
98
+ .ToggleCheckbox {
99
+ position: absolute;
100
+ visibility: hidden;
101
+ }
102
+
103
+ .Label {
104
+ margin-right: 5px;
105
+ position: relative;
106
+ top: 2px;
107
+ }
108
+
109
+ .DrawTicketsContainer {
110
+ margin: 30px auto;
111
+ }
112
+
113
+ .ExpandableBoxes {
114
+ position: relative;
115
+ }
116
+
117
+ .ExpandableBox {
118
+ width: 100%;
119
+ height: 100%;
120
+ max-height: 100px;
121
+ float: left;
122
+ margin: 0 0 20px 0;
123
+ border: 1px solid #009993;
124
+ border-radius: 4px;
125
+ padding: 10px;
126
+ box-sizing: border-box;
127
+ -webkit-transition: all 0.6s ease-in-out;
128
+ -moz-transition: all 0.6s ease-in-out;
129
+ -o-transition: all 0.6s ease-in-out;
130
+ -ms-transition: all 0.6s ease-in-out;
131
+ transition: all 0.6s ease-in-out;
132
+ overflow: hidden;
133
+ }
134
+
135
+ .ExpandableBox.ShowBox {
136
+ max-height: 400px;
137
+ margin: 0px 0px 20p 0px;
138
+ }
139
+
140
+ .ExpandableBox.HideBox {
141
+ width: 0;
142
+ height: 0;
143
+ overflow: hidden;
144
+ border: none;
145
+ padding: 0;
146
+ margin: 0;
147
+ opacity: 0;
148
+ }