@everymatrix/lottery-game-page 0.1.24 → 0.1.26
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.cjs.entry.js +1 -7
- package/dist/cjs/helper-filters_2.cjs.entry.js +3 -74
- package/dist/cjs/helper-modal.cjs.entry.js +1 -1
- package/dist/cjs/helper-pagination.cjs.entry.js +1 -13
- package/dist/cjs/helper-tab.cjs.entry.js +1 -1
- package/dist/cjs/helper-tabs.cjs.entry.js +1 -1
- package/dist/cjs/{index-7b63209d.js → index-cd44e726.js} +30 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/lottery-bullet_2.cjs.entry.js +1 -1
- package/dist/cjs/lottery-draw-results-history.cjs.entry.js +2 -28
- package/dist/cjs/lottery-game-details.cjs.entry.js +1 -1
- package/dist/cjs/lottery-game-page.cjs.entry.js +38 -16
- package/dist/cjs/lottery-game-page.cjs.js +1 -1
- package/dist/cjs/lottery-ticket-controller.cjs.entry.js +2 -8
- package/dist/cjs/lottery-ticket.cjs.entry.js +1 -21
- package/dist/collection/components/lottery-game-page/lottery-game-page.js +29 -19
- package/dist/collection/components/lottery-game-page/static/chrono_desktop.png +0 -0
- package/dist/collection/components/lottery-game-page/static/chrono_lottery_mobile.png +0 -0
- package/dist/components/helper-accordion2.js +0 -6
- package/dist/components/helper-filters2.js +0 -26
- package/dist/components/helper-pagination.js +0 -12
- package/dist/components/lottery-draw-results-history2.js +1 -27
- package/dist/components/lottery-draw-results2.js +2 -47
- package/dist/components/lottery-game-page.js +38 -16
- package/dist/components/lottery-ticket-controller2.js +1 -7
- package/dist/components/lottery-ticket2.js +0 -20
- package/dist/esm/helper-accordion.entry.js +1 -7
- package/dist/esm/helper-filters_2.entry.js +3 -74
- package/dist/esm/helper-modal.entry.js +1 -1
- package/dist/esm/helper-pagination.entry.js +1 -13
- package/dist/esm/helper-tab.entry.js +1 -1
- package/dist/esm/helper-tabs.entry.js +1 -1
- package/dist/esm/{index-0f8edfd2.js → index-d1baacd4.js} +30 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/lottery-bullet_2.entry.js +1 -1
- package/dist/esm/lottery-draw-results-history.entry.js +2 -28
- package/dist/esm/lottery-game-details.entry.js +1 -1
- package/dist/esm/lottery-game-page.entry.js +38 -16
- package/dist/esm/lottery-game-page.js +1 -1
- package/dist/esm/lottery-ticket-controller.entry.js +2 -8
- package/dist/esm/lottery-ticket.entry.js +1 -21
- package/dist/lottery-game-page/lottery-game-page.esm.js +1 -1
- package/dist/lottery-game-page/{p-e816baee.entry.js → p-023325a2.entry.js} +1 -1
- package/dist/lottery-game-page/{p-4098d6d4.entry.js → p-04fbc8fd.entry.js} +1 -1
- package/dist/lottery-game-page/p-256b151c.entry.js +1 -0
- package/dist/lottery-game-page/p-381b5507.entry.js +1 -0
- package/dist/lottery-game-page/{p-800590f3.entry.js → p-3f8b6ad9.entry.js} +1 -1
- package/dist/lottery-game-page/p-4274053c.entry.js +1 -0
- package/dist/lottery-game-page/p-4f81cd37.entry.js +1 -0
- package/dist/lottery-game-page/p-5c389034.entry.js +1 -0
- package/dist/lottery-game-page/p-7d06371e.entry.js +1 -0
- package/dist/lottery-game-page/{p-c8162ede.entry.js → p-ca8430a0.entry.js} +50 -50
- package/dist/lottery-game-page/{p-97048566.entry.js → p-d6f76e8d.entry.js} +1 -1
- package/dist/lottery-game-page/p-e765c7d9.js +1 -0
- package/dist/lottery-game-page/{p-07f98587.entry.js → p-f6fcc22c.entry.js} +1 -1
- package/dist/lottery-game-page/static/chrono_desktop.png +0 -0
- package/dist/lottery-game-page/static/chrono_lottery_mobile.png +0 -0
- package/dist/types/Users/user/workspace/everymatrix/widgets-stencil/packages/lottery-game-page/.stencil/packages/lottery-game-page/stencil.config.d.ts +2 -0
- package/dist/types/components/lottery-game-page/lottery-game-page.d.ts +2 -0
- package/dist/types/components.d.ts +2 -2
- package/package.json +1 -1
- package/dist/lottery-game-page/p-01132729.entry.js +0 -1
- package/dist/lottery-game-page/p-807dda48.entry.js +0 -1
- package/dist/lottery-game-page/p-a21ecd5f.entry.js +0 -1
- package/dist/lottery-game-page/p-b44e49d7.entry.js +0 -1
- package/dist/lottery-game-page/p-b4e2988a.js +0 -1
- package/dist/lottery-game-page/p-d91fc066.entry.js +0 -1
- package/dist/lottery-game-page/p-fc4ea90d.entry.js +0 -1
- package/dist/types/Users/dragos.bodea/Documents/everymatrix-prjs/stencil/widgets-stencil/packages/lottery-game-page/.stencil/packages/lottery-game-page/stencil.config.d.ts +0 -2
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const DEFAULT_LANGUAGE = 'en';
|
|
8
8
|
const SUPPORTED_LANGUAGES = ['ro', 'en'];
|
|
@@ -13,12 +13,6 @@ const TRANSLATIONS = {
|
|
|
13
13
|
ro: {
|
|
14
14
|
deleteTicket: 'Sterge biletul'
|
|
15
15
|
},
|
|
16
|
-
fr: {
|
|
17
|
-
deleteTicket: 'Supprimer le billet'
|
|
18
|
-
},
|
|
19
|
-
ar: {
|
|
20
|
-
deleteTicket: 'حذف التذكرة'
|
|
21
|
-
}
|
|
22
16
|
};
|
|
23
17
|
const translate = (key, customLang) => {
|
|
24
18
|
const lang = customLang;
|
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const DEFAULT_LANGUAGE$1 = 'en';
|
|
8
8
|
const SUPPORTED_LANGUAGES$1 = ['ro', 'en'];
|
|
@@ -31,32 +31,6 @@ const TRANSLATIONS$1 = {
|
|
|
31
31
|
filterModalButton: 'Cauta',
|
|
32
32
|
filterOrDate: 'sau cauta dupa data'
|
|
33
33
|
},
|
|
34
|
-
fr: {
|
|
35
|
-
filterOpen: 'Filter',
|
|
36
|
-
filterClear: 'Clear',
|
|
37
|
-
filterModalTicketTitle: 'Ticket Results',
|
|
38
|
-
filterModalDrawTitle: 'Draws Results History',
|
|
39
|
-
filterTicketPlaceholder: 'Search for a ticket ID',
|
|
40
|
-
filterDrawPlaceholder: 'Search for a draw ID',
|
|
41
|
-
filterDateRangePlaceholder: 'Date Range',
|
|
42
|
-
filterModalButton: 'Search',
|
|
43
|
-
filterFromCalendar: 'From',
|
|
44
|
-
filterToCalendar: 'To',
|
|
45
|
-
filterOrDate: 'or search by date'
|
|
46
|
-
},
|
|
47
|
-
ar: {
|
|
48
|
-
filterOpen: 'Filter',
|
|
49
|
-
filterClear: 'Clear',
|
|
50
|
-
filterModalTicketTitle: 'Ticket Results',
|
|
51
|
-
filterModalDrawTitle: 'Draws Results History',
|
|
52
|
-
filterTicketPlaceholder: 'Search for a ticket ID',
|
|
53
|
-
filterDrawPlaceholder: 'Search for a draw ID',
|
|
54
|
-
filterDateRangePlaceholder: 'Date Range',
|
|
55
|
-
filterModalButton: 'Search',
|
|
56
|
-
filterFromCalendar: 'From',
|
|
57
|
-
filterToCalendar: 'To',
|
|
58
|
-
filterOrDate: 'or search by date'
|
|
59
|
-
}
|
|
60
34
|
};
|
|
61
35
|
const translate$2 = (key, customLang) => {
|
|
62
36
|
const lang = customLang;
|
|
@@ -22420,40 +22394,6 @@ const TRANSLATIONS = {
|
|
|
22420
22394
|
ticketAmount: 'Valoarea biletului',
|
|
22421
22395
|
winUpTo: 'Poti castiga'
|
|
22422
22396
|
},
|
|
22423
|
-
fr: {
|
|
22424
|
-
drawResultsHeader: 'Résultats du dernier tirage',
|
|
22425
|
-
drawId: 'ID de tirage',
|
|
22426
|
-
drawName: 'Nom du jeu',
|
|
22427
|
-
drawDate: 'Date du tirage',
|
|
22428
|
-
drawNumbersGridDraw: 'Tirage des numéros Grille',
|
|
22429
|
-
drawNumbersGridTicket: 'Tirage des numéros Grille',
|
|
22430
|
-
ticketResult: 'Résultat du ticket',
|
|
22431
|
-
amountWon: 'Montant gagné',
|
|
22432
|
-
numberOfDraws: 'Nombre de tirages',
|
|
22433
|
-
multiplier: 'Multiplicateur',
|
|
22434
|
-
ticketPurchaseDate: 'Date d\'achat du billet',
|
|
22435
|
-
ticketStatus: 'Statut du ticket',
|
|
22436
|
-
ticketId: 'ID de billets',
|
|
22437
|
-
ticketAmount: 'Montant du billet',
|
|
22438
|
-
winUpTo: 'Gagnez jusqu\'à'
|
|
22439
|
-
},
|
|
22440
|
-
ar: {
|
|
22441
|
-
drawResultsHeader: 'نتائج آخر سحب',
|
|
22442
|
-
drawId: 'معرّف السحب',
|
|
22443
|
-
drawName: 'اسم اللعبة',
|
|
22444
|
-
drawDate: 'تاريخ السحب',
|
|
22445
|
-
drawNumbersGridDraw: 'شبكة أرقام السحب',
|
|
22446
|
-
drawNumbersGridTicket: 'شبكة أرقام السحب',
|
|
22447
|
-
ticketResult: 'نتيجة التذكرة',
|
|
22448
|
-
amountWon: 'المبلغ الذي تم ربحه',
|
|
22449
|
-
numberOfDraws: 'عدد السحوبات',
|
|
22450
|
-
multiplier: 'مضاعف',
|
|
22451
|
-
ticketPurchaseDate: 'تاريخ شراء التذكرة',
|
|
22452
|
-
ticketStatus: 'حالة التذكرة',
|
|
22453
|
-
ticketId: 'معرّف التذكرة',
|
|
22454
|
-
ticketAmount: 'مبلغ التذكرة',
|
|
22455
|
-
winUpTo: 'ربح يصل إلى'
|
|
22456
|
-
}
|
|
22457
22397
|
};
|
|
22458
22398
|
const translate = (key, customLang) => {
|
|
22459
22399
|
const lang = customLang;
|
|
@@ -22552,8 +22492,7 @@ const LotteryDrawResults = class {
|
|
|
22552
22492
|
this.ticketDataLoaded = true;
|
|
22553
22493
|
}
|
|
22554
22494
|
return this.ticketData;
|
|
22555
|
-
})
|
|
22556
|
-
.then((response) => {
|
|
22495
|
+
}).then((response) => {
|
|
22557
22496
|
response.forEach(ticket => {
|
|
22558
22497
|
if (ticket.drawResults.length) {
|
|
22559
22498
|
ticket.drawResults.forEach(draw => {
|
|
@@ -22566,20 +22505,13 @@ const LotteryDrawResults = class {
|
|
|
22566
22505
|
if (!this.ticketDraws.some(el => el.drawId === draw.drawId)) {
|
|
22567
22506
|
this.ticketDraws.push({ drawId: draw.drawId, drawNumbers: data.winningNumbers });
|
|
22568
22507
|
}
|
|
22569
|
-
})
|
|
22570
|
-
.catch((err) => {
|
|
22571
|
-
console.log('error ', err);
|
|
22572
22508
|
});
|
|
22573
22509
|
});
|
|
22574
22510
|
}
|
|
22575
22511
|
return this.ticketDraws;
|
|
22576
22512
|
});
|
|
22577
|
-
})
|
|
22578
|
-
.then(() => {
|
|
22513
|
+
}).then(() => {
|
|
22579
22514
|
this.hasDrawNumbers = true;
|
|
22580
|
-
})
|
|
22581
|
-
.catch((err) => {
|
|
22582
|
-
console.log('error ', err);
|
|
22583
22515
|
});
|
|
22584
22516
|
};
|
|
22585
22517
|
this.changeBox = (index) => {
|
|
@@ -22618,9 +22550,6 @@ const LotteryDrawResults = class {
|
|
|
22618
22550
|
Promise.all(promises)
|
|
22619
22551
|
.then(() => {
|
|
22620
22552
|
this.isLoading = false;
|
|
22621
|
-
}).catch((err) => {
|
|
22622
|
-
console.log('error ', err);
|
|
22623
|
-
this.isLoading = false;
|
|
22624
22553
|
});
|
|
22625
22554
|
}
|
|
22626
22555
|
componentDidRender() {
|
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @name isMobile
|
|
@@ -32,18 +32,6 @@ const TRANSLATIONS = {
|
|
|
32
32
|
nextPage: 'Urmatoarea',
|
|
33
33
|
lastPage: 'Ultima'
|
|
34
34
|
},
|
|
35
|
-
fr: {
|
|
36
|
-
firstPage: 'First',
|
|
37
|
-
previousPage: 'Previous',
|
|
38
|
-
nextPage: 'Next',
|
|
39
|
-
lastPage: 'Last'
|
|
40
|
-
},
|
|
41
|
-
ar: {
|
|
42
|
-
firstPage: 'First',
|
|
43
|
-
previousPage: 'Previous',
|
|
44
|
-
nextPage: 'Next',
|
|
45
|
-
lastPage: 'Last'
|
|
46
|
-
}
|
|
47
35
|
};
|
|
48
36
|
const translate = (key, customLang) => {
|
|
49
37
|
const lang = customLang;
|
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const helperTabCss = ":host{display:block}.TabContent{font-size:14px;color:#000;font-weight:normal}";
|
|
8
8
|
|
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const helperTabsCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.Tabs{display:flex;gap:10px;overflow-x:auto}.TabButton{cursor:pointer;width:auto;border-radius:4px;padding:8px 15px;margin:5px 0 10px;border:1px solid #009993;background:#FFF;color:#000;font-size:12px;transition:all 0.2s linear;text-align:center;letter-spacing:0;white-space:nowrap}.TabButton:hover{background:#F1F1F1}.TabButton.Active{background:#009993;color:#FFF}";
|
|
8
8
|
|
|
@@ -270,6 +270,31 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
|
|
270
270
|
classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
|
|
271
271
|
classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
|
|
272
272
|
}
|
|
273
|
+
else if (memberName === 'style') {
|
|
274
|
+
// update style attribute, css properties and values
|
|
275
|
+
{
|
|
276
|
+
for (const prop in oldValue) {
|
|
277
|
+
if (!newValue || newValue[prop] == null) {
|
|
278
|
+
if (prop.includes('-')) {
|
|
279
|
+
elm.style.removeProperty(prop);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
elm.style[prop] = '';
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
for (const prop in newValue) {
|
|
288
|
+
if (!oldValue || newValue[prop] !== oldValue[prop]) {
|
|
289
|
+
if (prop.includes('-')) {
|
|
290
|
+
elm.style.setProperty(prop, newValue[prop]);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
elm.style[prop] = newValue[prop];
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
273
298
|
else if (memberName === 'ref') {
|
|
274
299
|
// minifier will clean this up
|
|
275
300
|
if (newValue) {
|
|
@@ -1202,6 +1227,10 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1202
1227
|
// Fallback appLoad event
|
|
1203
1228
|
endBootstrap();
|
|
1204
1229
|
};
|
|
1230
|
+
const getAssetPath = (path) => {
|
|
1231
|
+
const assetUrl = new URL(path, plt.$resourcesUrl$);
|
|
1232
|
+
return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;
|
|
1233
|
+
};
|
|
1205
1234
|
const hostRefs = new WeakMap();
|
|
1206
1235
|
const getHostRef = (ref) => hostRefs.get(ref);
|
|
1207
1236
|
const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
|
|
@@ -1288,6 +1317,7 @@ const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
|
|
|
1288
1317
|
|
|
1289
1318
|
exports.bootstrapLazy = bootstrapLazy;
|
|
1290
1319
|
exports.createEvent = createEvent;
|
|
1320
|
+
exports.getAssetPath = getAssetPath;
|
|
1291
1321
|
exports.getElement = getElement;
|
|
1292
1322
|
exports.h = h;
|
|
1293
1323
|
exports.promiseResolve = promiseResolve;
|
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-cd44e726.js');
|
|
6
6
|
|
|
7
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
8
|
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const DEFAULT_LANGUAGE = 'en';
|
|
8
|
-
const SUPPORTED_LANGUAGES = ['ro', 'en'
|
|
8
|
+
const SUPPORTED_LANGUAGES = ['ro', 'en'];
|
|
9
9
|
const TRANSLATIONS = {
|
|
10
10
|
en: {
|
|
11
11
|
drawResultsHeader: 'Draw results history',
|
|
@@ -33,32 +33,6 @@ const TRANSLATIONS = {
|
|
|
33
33
|
noResults: 'Niciun rezultat',
|
|
34
34
|
fetchingResults: 'Se obtin rezultatele'
|
|
35
35
|
},
|
|
36
|
-
fr: {
|
|
37
|
-
drawResultsHeader: 'Dessiner l\'historique des résultats',
|
|
38
|
-
drawId: 'ID de tirage',
|
|
39
|
-
drawDate: 'Date du tirage',
|
|
40
|
-
drawNumbersGridA: 'Tirage des numéros Grille',
|
|
41
|
-
viewAllResults: 'Voir tout',
|
|
42
|
-
lastFiveDraws: '5 derniers tirages',
|
|
43
|
-
lastTenDraws: '10 derniers tirages',
|
|
44
|
-
lastFifteenDraws: '15 derniers tirages',
|
|
45
|
-
allDrawResultsHistory: 'Historique des résultats de tous les tirages',
|
|
46
|
-
noResults: 'Aucun résultat',
|
|
47
|
-
fetchingResults: 'Récupération des résultats'
|
|
48
|
-
},
|
|
49
|
-
ar: {
|
|
50
|
-
drawResultsHeader: 'سجل نتائج السحب',
|
|
51
|
-
drawId: 'معرّف السحب',
|
|
52
|
-
drawDate: 'تاريخ السحب',
|
|
53
|
-
drawNumbersGridA: 'شبكة أرقام السحب',
|
|
54
|
-
viewAllResults: 'عرض الكل',
|
|
55
|
-
lastFiveDraws: 'آخر 5 سحوبات',
|
|
56
|
-
lastTenDraws: 'آخر 10 سحوبات',
|
|
57
|
-
lastFifteenDraws: 'آخر 15 سحبًا',
|
|
58
|
-
allDrawResultsHistory: 'سجل نتائج كل السحوبات',
|
|
59
|
-
noResults: 'لا توجد نتائج',
|
|
60
|
-
fetchingResults: 'جلب النتائج'
|
|
61
|
-
}
|
|
62
36
|
};
|
|
63
37
|
const translate = (key, customLang) => {
|
|
64
38
|
const lang = customLang;
|
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const DEFAULT_LANGUAGE = 'en';
|
|
8
8
|
const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'ar'];
|
|
@@ -105,6 +105,19 @@ const translate = (key, customLang) => {
|
|
|
105
105
|
return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
|
|
106
106
|
};
|
|
107
107
|
|
|
108
|
+
/**
|
|
109
|
+
* @name isMobile
|
|
110
|
+
* @description A method that returns if the browser used to access the app is from a mobile device or not
|
|
111
|
+
* @param {String} userAgent window.navigator.userAgent
|
|
112
|
+
* @returns {Boolean} true or false
|
|
113
|
+
*/
|
|
114
|
+
const isMobile = (userAgent) => {
|
|
115
|
+
return !!(userAgent.toLowerCase().match(/android/i) ||
|
|
116
|
+
userAgent.toLowerCase().match(/blackberry|bb/i) ||
|
|
117
|
+
userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
|
|
118
|
+
userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
|
|
119
|
+
};
|
|
120
|
+
|
|
108
121
|
const lotteryGamePageCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}.GamePage .GridBanner{background-color:#009993;background-repeat:no-repeat;background-position:center;color:#111;padding:0 20px 10px;height:220px;display:flex;flex-direction:column;justify-content:space-between}.GamePage .GridBanner .BannerButtonsWrapper{display:flex;justify-content:space-between;padding-top:16px}.GamePage .GridBanner .BannerButtonsWrapper .BannerBackButton,.GamePage .GridBanner .BannerButtonsWrapper .BannerLobbyButton{background:#fff;border:1px solid #D4D4D4;border-radius:4px;padding:7px 15px;font-size:12px;text-transform:uppercase;width:80px}.GamePage .GridBanner .GridBannerArea{padding-top:30px;display:flex;flex-direction:column;align-items:center}.GamePage .TotalWinnings{color:#000;font-size:18px;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px;text-transform:uppercase}.GamePage .TotalWinnings span{font-size:18px;font-weight:700}.GamePage .NextDraw{color:#00958f;font-size:24px;font-weight:600;margin:0 auto;text-align:center;text-transform:uppercase;display:flex;justify-content:center;align-items:center;flex-direction:column}.GamePage .NextDraw .BannerText{font-weight:400;font-size:18px;text-transform:uppercase;padding:0;margin:15px 0 0 0}.GamePage .NextDraw .BannerCountdown{font-size:22px;color:#00958f;display:flex;gap:20px}.GamePage .Tabs{display:flex;justify-content:center;gap:10px}.GamePage .Tabs .TabButton{border-radius:4px;cursor:pointer;padding:8px 0;width:50%;max-width:200px;border:1px solid #00958f;background:#00958f;color:#fff;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.GamePage .Tabs .TabButton.Active{color:#00958f;background:#F1F1F1;border:1px solid #F1F1F1}.LastDrawResultsTitle{color:#009993;padding:25px 0 10px 0;text-align:center;border-radius:4px;text-transform:uppercase;font-size:16px;font-weight:600;margin:0}.NextDrawWrapper{padding:10px 15px;background:#F1F1F1;background:linear-gradient(0deg, #f1f1f1 0%, rgba(253, 187, 45, 0) 100%)}.NextDrawWrapper .BannerText{font-size:16px;font-weight:700;text-align:center}.NextDrawWrapper .BannerCountdown{font-size:22px;display:flex;gap:8px;color:#009993;font-weight:bolder;justify-content:center}.GamePageContent{padding:15px;max-width:1200px;margin:0 auto}.GameDetails{padding-bottom:10px;margin-bottom:20px}.CreateNewTicket{background:#004D4A;height:100px;width:100%;display:flex;margin-top:10px;flex-direction:column;justify-content:center;align-items:center}.CreateNewTicket button{cursor:pointer;display:inline-block;border-radius:50%;width:40px;height:40px;margin:5px;border:1px solid #FFF;background:#FFF;color:#004D4A;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.CreateNewTicket button:hover{background:#F1F1F1}.CreateNewTicket span{display:inline-block;font-size:12px;text-align:center;margin:0 auto;color:#FFF}.OrderSummary{min-width:200px;border-radius:4px;display:flex;flex-direction:column;justify-content:center;margin-top:20px;background:#fff}.OrderSummary .OrderSummaryTitle{font-size:16px;color:#009993;text-transform:uppercase;text-align:center}.OrderSummary .Ticket{display:inline-block;color:#000;font-size:14px;height:50px;border-bottom:solid 1px #D4D4D4;line-height:50px}.OrderSummary .Ticket span{text-align:right}.OrderSummary .Total{display:inline-block;color:#000;font-size:14px;height:50px;line-height:50px}.OrderSummary .Total span{text-align:right}.ButtonWrapper{display:flex;align-items:center;justify-content:center}.ButtonWrapper .Button{cursor:pointer;border-radius:4px;padding:8px 60px;width:max-content;margin:5px;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0;background:#009993;border:1px solid #009993;color:#FFF}.ButtonWrapper .Button:hover{background:#00ABA4}.ButtonWrapper .Button.ButtonDisabled{pointer-events:none;background:#ccc;border:1px solid #ccc}.SubmitModalSuccess{text-align:center;font-size:18px;padding:20px}.DeleteTicketModalWrapper{padding:20px;text-align:center}.DeleteTicketModalWrapper .DeleteTicketModalTitle{font-size:16px;color:#00958f;font-weight:400;text-transform:uppercase;margin:20px 0 40px}.DeleteTicketModalWrapper .DeleteTicketModalText{font-size:14px;color:#000;line-height:22px;margin-bottom:40px}.DeleteTicketModalWrapper .DeleteTicketModalButtons{display:flex;gap:10px;justify-content:center}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalConfirm{cursor:pointer;border-radius:4px;padding:8px 25px;width:max-content;margin:5px;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0;background:#FF3D00;border:1px solid #FF3D00;color:#FFF}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalConfirm:hover{background:#FF6536;border:1px solid #FF3D00}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalCancel{cursor:pointer;width:max-content;border-radius:4px;padding:10px 25px;margin:5px;border:1px solid #00958f;background:#FFF;color:#000;font-size:12px;transition:all 0.2s linear;text-transform:uppercase;text-align:center;letter-spacing:0}.DeleteTicketModalWrapper .DeleteTicketModalButtons .DeleteTicketModalCancel:hover{background:#F1F1F1}@media (min-width: 1200px){.GamePageContent .TicketsWrapper{float:left;width:49%}.GamePageContent .GameDetails{float:right;width:49%}.GamePageContent .OrderSummary{float:right;width:49%}}";
|
|
109
122
|
|
|
110
123
|
const LotteryGamePage = class {
|
|
@@ -142,6 +155,8 @@ const LotteryGamePage = class {
|
|
|
142
155
|
this.isLoggedIn = false;
|
|
143
156
|
this.loginModalVisible = false;
|
|
144
157
|
this.limitStylingAppends = false;
|
|
158
|
+
// @TODO fix any type
|
|
159
|
+
this.userAgent = window.navigator.userAgent;
|
|
145
160
|
this.multiplier = false;
|
|
146
161
|
this.quickPick = false;
|
|
147
162
|
this.setClientStyling = () => {
|
|
@@ -165,10 +180,12 @@ const LotteryGamePage = class {
|
|
|
165
180
|
};
|
|
166
181
|
}
|
|
167
182
|
// @TODO fix `any` type later, I'm lazy now
|
|
183
|
+
handleSessionIdValue() {
|
|
184
|
+
this.isLoggedIn = true;
|
|
185
|
+
}
|
|
168
186
|
connectedCallback() {
|
|
169
187
|
this.getGameDetails();
|
|
170
188
|
this.getDraws();
|
|
171
|
-
console.log(this.language);
|
|
172
189
|
if (this.sessionId) {
|
|
173
190
|
this.isLoggedIn = true;
|
|
174
191
|
}
|
|
@@ -185,12 +202,14 @@ const LotteryGamePage = class {
|
|
|
185
202
|
// end custom styling area
|
|
186
203
|
}
|
|
187
204
|
countdownLogic(date) {
|
|
188
|
-
|
|
189
|
-
this.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
205
|
+
if (date) {
|
|
206
|
+
this.interval = setInterval(() => {
|
|
207
|
+
this.daysRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60 * 24));
|
|
208
|
+
this.hoursRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60 * 60) - this.daysRemaining * 24);
|
|
209
|
+
this.minutesRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / (1000 * 60) - this.daysRemaining * 24 * 60 - this.hoursRemaining * 60);
|
|
210
|
+
this.secondsRemaining = Math.floor((Date.parse(date) - new Date().getTime()) / 1000 - this.daysRemaining * 24 * 60 * 60 - this.hoursRemaining * 60 * 60 - this.minutesRemaining * 60);
|
|
211
|
+
}, 1000);
|
|
212
|
+
}
|
|
194
213
|
}
|
|
195
214
|
disconnectedCallback() {
|
|
196
215
|
clearInterval(this.interval);
|
|
@@ -296,20 +315,20 @@ const LotteryGamePage = class {
|
|
|
296
315
|
return response.json();
|
|
297
316
|
})
|
|
298
317
|
.then((data) => {
|
|
299
|
-
var _a;
|
|
318
|
+
var _a, _b;
|
|
300
319
|
let upcoming = data.items.filter((item) => {
|
|
301
320
|
if (Date.parse(item.date) > new Date().getTime()) {
|
|
302
321
|
return !item.winningNumbers;
|
|
303
322
|
}
|
|
304
323
|
});
|
|
305
324
|
let past = data.items.filter((item) => item.winningNumbers);
|
|
306
|
-
this.latestDraw = upcoming[0];
|
|
307
|
-
this.nextDate = this.latestDraw.date;
|
|
308
|
-
this.countdownLogic(this.nextDate);
|
|
325
|
+
this.latestDraw = upcoming[0] || {};
|
|
326
|
+
this.nextDate = (_a = this.latestDraw) === null || _a === void 0 ? void 0 : _a.date;
|
|
327
|
+
this.countdownLogic(this.nextDate || '');
|
|
309
328
|
this.lastDrawId = past[past.length - 1].id;
|
|
310
329
|
// calculate total winnings
|
|
311
330
|
// @TODO fix any type
|
|
312
|
-
(
|
|
331
|
+
(_b = this.latestDraw) === null || _b === void 0 ? void 0 : _b.prizes.forEach((element) => {
|
|
313
332
|
this.totalWinningsAmount += JSON.parse(element.amount);
|
|
314
333
|
});
|
|
315
334
|
})
|
|
@@ -384,14 +403,14 @@ const LotteryGamePage = class {
|
|
|
384
403
|
this.successVisible = true;
|
|
385
404
|
}
|
|
386
405
|
render() {
|
|
387
|
-
|
|
388
|
-
|
|
406
|
+
const backgroundSrc = index.getAssetPath('./static/chrono_lottery_mobile.png');
|
|
407
|
+
const backgroundDesktopSrc = index.getAssetPath('./static/chrono_desktop.png');
|
|
389
408
|
if (this.hasErrors) {
|
|
390
409
|
return (index.h("div", { class: "GamePage" }, index.h("div", { class: "Title" }, translate('error', this.language))));
|
|
391
410
|
}
|
|
392
411
|
return (
|
|
393
412
|
/* Game details */
|
|
394
|
-
index.h("div", { class: "GamePage", dir: this.language == 'ar' ? 'rtl' : 'ltr', ref: el => this.stylingContainer = el }, index.h("div", { class: "GridBanner" }, index.h("div", { class: "BannerButtonsWrapper" }, index.h("button", { class: "BannerBackButton" }, index.h("span", { class: "BannerBackButtonArrow" }, "\u1438 "), translate('backButton', this.language)), index.h("button", { class: "BannerLobbyButton" }, translate('lobbyButton', this.language))), index.h("div", { class: "Tabs" }, index.h("div", { class: 'TabButton' + (this.tabIndex == 0 ? ' Active' : ''), onClick: () => this.tabIndex = 0 }, translate('buy', this.language)), index.h("div", { class: 'TabButton' + (this.tabIndex == 1 ? ' Active' : ''), onClick: () => this.tabIndex = 1 }, translate('viewLatest', this.language)))), index.h("div", { class: "NextDrawWrapper" }, index.h("div", { class: "TotalWinnings" }, translate('winUpTo', this.language), ": ", index.h("span", null, "$", this.totalWinningsAmount.toLocaleString('en-US', { maximumFractionDigits: 2 }))), index.h("div", { class: "NextDraw" }, index.h("p", { class: "BannerText" }, translate('nextDraw', this.language)), index.h("div", { class: "BannerCountdown" }, index.h("span", { class: "CountdownDays" }, this.daysRemaining, "D"), index.h("span", { class: "CountdownHours" }, this.hoursRemaining, "H"), index.h("span", { class: "CountdownMinutes" }, this.minutesRemaining, "M"), index.h("span", { class: "CountdownSeconds" }, this.secondsRemaining, "S")))), this.tabIndex == 0 &&
|
|
413
|
+
index.h("div", { class: "GamePage", dir: this.language == 'ar' ? 'rtl' : 'ltr', ref: el => this.stylingContainer = el }, index.h("div", { class: "GridBanner", style: { backgroundImage: isMobile(this.userAgent) ? `url(${backgroundSrc})` : `url(${backgroundDesktopSrc})` } }, index.h("div", { class: "BannerButtonsWrapper" }, index.h("button", { class: "BannerBackButton" }, index.h("span", { class: "BannerBackButtonArrow" }, "\u1438 "), translate('backButton', this.language)), index.h("button", { class: "BannerLobbyButton" }, translate('lobbyButton', this.language))), index.h("div", { class: "Tabs" }, index.h("div", { class: 'TabButton' + (this.tabIndex == 0 ? ' Active' : ''), onClick: () => this.tabIndex = 0 }, translate('buy', this.language)), index.h("div", { class: 'TabButton' + (this.tabIndex == 1 ? ' Active' : ''), onClick: () => this.tabIndex = 1 }, translate('viewLatest', this.language)))), index.h("div", { class: "NextDrawWrapper" }, index.h("div", { class: "TotalWinnings" }, translate('winUpTo', this.language), ": ", index.h("span", null, "$", this.totalWinningsAmount.toLocaleString('en-US', { maximumFractionDigits: 2 }))), index.h("div", { class: "NextDraw" }, index.h("p", { class: "BannerText" }, translate('nextDraw', this.language)), index.h("div", { class: "BannerCountdown" }, index.h("span", { class: "CountdownDays" }, this.daysRemaining, "D"), index.h("span", { class: "CountdownHours" }, this.hoursRemaining, "H"), index.h("span", { class: "CountdownMinutes" }, this.minutesRemaining, "M"), index.h("span", { class: "CountdownSeconds" }, this.secondsRemaining, "S")))), this.tabIndex == 0 &&
|
|
395
414
|
index.h("div", { class: "GamePageContent" }, index.h("div", { class: "GameDetails" }, index.h("lottery-game-details", { "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent })), index.h("div", { class: "TicketsWrapper" }, this.tickets.map((item) => index.h("lottery-ticket-controller", { endpoint: this.endpoint, "ticket-id": item.ticketId, "game-id": item.gameId, collapsed: false, last: true, language: this.language, "auto-pick": this.autoPick, "reset-button": this.resetButton, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent })), index.h("div", { class: "CreateNewTicket" }, index.h("button", { onClick: () => this.createNewTicket() }, "+"), index.h("span", null, translate('createTicket', this.language)))), index.h("div", { class: "OrderSummary" }, index.h("h3", { class: "OrderSummaryTitle" }, translate('orderSummaryTitle', this.language)), index.h("div", { class: "Ticket" }, translate('orderSummaryTickets', this.language), ": ", index.h("span", null, this.tickets.length)), index.h("div", { class: "Total" }, translate('orderSummaryTotal', this.language), ": ", index.h("span", null, this.totalAmount, " ", this.currency)), index.h("div", { class: "ButtonWrapper" }, this.isLoggedIn &&
|
|
396
415
|
index.h("span", { class: "Button", onClick: () => this.submitTickets() }, translate('orderSummarySubmit', this.language)), !this.isLoggedIn &&
|
|
397
416
|
index.h("div", null, index.h("span", { class: "Button", onClick: () => this.showLoginModal() }, translate('orderSummarySubmit', this.language)), index.h("helper-modal", { "title-modal": "Success", visible: this.loginModalVisible, "client-styling": this.clientStyling, "client-styling-url-content": this.clientStylingUrlContent }, index.h("p", { class: "SubmitModalSuccess" }, translate('modalLogin', this.language))))))), this.tabIndex == 1 &&
|
|
@@ -399,6 +418,9 @@ const LotteryGamePage = class {
|
|
|
399
418
|
}
|
|
400
419
|
static get assetsDirs() { return ["static"]; }
|
|
401
420
|
get element() { return index.getElement(this); }
|
|
421
|
+
static get watchers() { return {
|
|
422
|
+
"sessionId": ["handleSessionIdValue"]
|
|
423
|
+
}; }
|
|
402
424
|
};
|
|
403
425
|
LotteryGamePage.style = lotteryGamePageCss;
|
|
404
426
|
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const DEFAULT_LANGUAGE = 'en';
|
|
8
|
-
const SUPPORTED_LANGUAGES = ['ro', 'en'
|
|
8
|
+
const SUPPORTED_LANGUAGES = ['ro', 'en'];
|
|
9
9
|
const TRANSLATIONS = {
|
|
10
10
|
en: {
|
|
11
11
|
ticket: 'Ticket',
|
|
@@ -13,12 +13,6 @@ const TRANSLATIONS = {
|
|
|
13
13
|
ro: {
|
|
14
14
|
ticket: 'Bilet',
|
|
15
15
|
},
|
|
16
|
-
fr: {
|
|
17
|
-
ticket: 'Billet'
|
|
18
|
-
},
|
|
19
|
-
ar: {
|
|
20
|
-
ticket: 'تذكرة',
|
|
21
|
-
}
|
|
22
16
|
};
|
|
23
17
|
const translate = (key, customLang) => {
|
|
24
18
|
const lang = customLang;
|
|
@@ -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-cd44e726.js');
|
|
6
6
|
|
|
7
7
|
const DEFAULT_LANGUAGE = 'en';
|
|
8
8
|
const SUPPORTED_LANGUAGES = ['ro', 'en'];
|
|
@@ -27,26 +27,6 @@ const TRANSLATIONS = {
|
|
|
27
27
|
resetButton: 'Reseteaza',
|
|
28
28
|
autoButton: 'Ma simt norocos'
|
|
29
29
|
},
|
|
30
|
-
fr: {
|
|
31
|
-
loading: 'Loading, please wait ...',
|
|
32
|
-
error: 'It was an error while trying to fetch the data',
|
|
33
|
-
grid: 'Grid',
|
|
34
|
-
multiplier: 'Multiplier',
|
|
35
|
-
numberOfDraws: 'Number of draws',
|
|
36
|
-
wagerPerDraw: 'Wager per draw',
|
|
37
|
-
resetButton: 'Reset',
|
|
38
|
-
autoButton: 'I feel lucky'
|
|
39
|
-
},
|
|
40
|
-
ar: {
|
|
41
|
-
loading: 'Loading, please wait ...',
|
|
42
|
-
error: 'It was an error while trying to fetch the data',
|
|
43
|
-
grid: 'Grid',
|
|
44
|
-
multiplier: 'Multiplier',
|
|
45
|
-
numberOfDraws: 'Number of draws',
|
|
46
|
-
wagerPerDraw: 'Wager per draw',
|
|
47
|
-
resetButton: 'Reset',
|
|
48
|
-
autoButton: 'I feel lucky'
|
|
49
|
-
}
|
|
50
30
|
};
|
|
51
31
|
const translate = (key, customLang) => {
|
|
52
32
|
const lang = customLang;
|