@everymatrix/lottery-tipping-ticket-controller 0.1.0

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 (74) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  2. package/dist/cjs/general-tooltip_6.cjs.entry.js +8888 -0
  3. package/dist/cjs/index-db2858c7.js +1376 -0
  4. package/dist/cjs/index.cjs.js +10 -0
  5. package/dist/cjs/loader.cjs.js +15 -0
  6. package/dist/cjs/lottery-tipping-ticket-controller-0f34247f.js +3081 -0
  7. package/dist/cjs/lottery-tipping-ticket-controller.cjs.js +25 -0
  8. package/dist/collection/collection-manifest.json +28 -0
  9. package/dist/collection/components/lottery-tipping-ticket-banner/index.js +1 -0
  10. package/dist/collection/components/lottery-tipping-ticket-banner/locale.utils.js +35 -0
  11. package/dist/collection/components/lottery-tipping-ticket-banner/lottery-tipping-ticket-banner.css +68 -0
  12. package/dist/collection/components/lottery-tipping-ticket-banner/lottery-tipping-ticket-banner.js +224 -0
  13. package/dist/collection/components/lottery-tipping-ticket-controller/index.js +1 -0
  14. package/dist/collection/components/lottery-tipping-ticket-controller/lottery-tipping-ticket-controller.css +198 -0
  15. package/dist/collection/components/lottery-tipping-ticket-controller/lottery-tipping-ticket-controller.js +570 -0
  16. package/dist/collection/components/static/loading.svg +10 -0
  17. package/dist/collection/components/static/tipping-full-color.svg +15 -0
  18. package/dist/collection/index.js +1 -0
  19. package/dist/collection/models/index.js +11 -0
  20. package/dist/collection/utils/locale.utils.js +105 -0
  21. package/dist/collection/utils/utils.js +130 -0
  22. package/dist/esm/app-globals-0f993ce5.js +3 -0
  23. package/dist/esm/general-tooltip_6.entry.js +8880 -0
  24. package/dist/esm/index-f0e9db16.js +1347 -0
  25. package/dist/esm/index.js +2 -0
  26. package/dist/esm/loader.js +11 -0
  27. package/dist/esm/lottery-tipping-ticket-controller-f0dd1981.js +3070 -0
  28. package/dist/esm/lottery-tipping-ticket-controller.js +20 -0
  29. package/dist/index.cjs.js +1 -0
  30. package/dist/index.js +1 -0
  31. package/dist/lottery-tipping-ticket-controller/app-globals-0f993ce5.js +1 -0
  32. package/dist/lottery-tipping-ticket-controller/general-tooltip_6.entry.js +7975 -0
  33. package/dist/lottery-tipping-ticket-controller/index-f0e9db16.js +2 -0
  34. package/dist/lottery-tipping-ticket-controller/index.esm.js +1 -0
  35. package/dist/lottery-tipping-ticket-controller/lottery-tipping-ticket-controller-f0dd1981.js +1 -0
  36. package/dist/lottery-tipping-ticket-controller/lottery-tipping-ticket-controller.esm.js +1 -0
  37. package/dist/static/add.svg +8 -0
  38. package/dist/static/delete.svg +37 -0
  39. package/dist/static/info.svg +6 -0
  40. package/dist/static/left-arrow.svg +15 -0
  41. package/dist/static/loading.svg +10 -0
  42. package/dist/static/right-arrow.svg +15 -0
  43. package/dist/static/tipping-full-color.svg +15 -0
  44. package/dist/stencil.config.dev.js +19 -0
  45. package/dist/stencil.config.js +19 -0
  46. package/dist/storybook/main.js +43 -0
  47. package/dist/storybook/preview.js +9 -0
  48. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/libs/common/src/storybook/storybook-utils.d.ts +39 -0
  49. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/packages/stencil/lottery-tipping-ticket-controller/stencil.config.d.ts +2 -0
  50. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/packages/stencil/lottery-tipping-ticket-controller/stencil.config.dev.d.ts +2 -0
  51. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/packages/stencil/lottery-tipping-ticket-controller/storybook/main.d.ts +3 -0
  52. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/packages/stencil/lottery-tipping-ticket-controller/storybook/preview.d.ts +70 -0
  53. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/tools/plugins/index.d.ts +3 -0
  54. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/tools/plugins/stencil-clean-deps-plugin.d.ts +5 -0
  55. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/tools/plugins/vite-chunk-plugin.d.ts +6 -0
  56. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-tipping-ticket-controller/.stencil/tools/plugins/vite-clean-deps-plugin.d.ts +4 -0
  57. package/dist/types/components/lottery-tipping-ticket-banner/index.d.ts +1 -0
  58. package/dist/types/components/lottery-tipping-ticket-banner/locale.utils.d.ts +2 -0
  59. package/dist/types/components/lottery-tipping-ticket-banner/lottery-tipping-ticket-banner.d.ts +22 -0
  60. package/dist/types/components/lottery-tipping-ticket-controller/index.d.ts +1 -0
  61. package/dist/types/components/lottery-tipping-ticket-controller/lottery-tipping-ticket-controller.d.ts +113 -0
  62. package/dist/types/components.d.ts +180 -0
  63. package/dist/types/index.d.ts +1 -0
  64. package/dist/types/models/index.d.ts +14 -0
  65. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  66. package/dist/types/utils/locale.utils.d.ts +3 -0
  67. package/dist/types/utils/utils.d.ts +50 -0
  68. package/loader/cdn.js +1 -0
  69. package/loader/index.cjs.js +1 -0
  70. package/loader/index.d.ts +24 -0
  71. package/loader/index.es2017.js +1 -0
  72. package/loader/index.js +2 -0
  73. package/loader/package.json +11 -0
  74. package/package.json +27 -0
@@ -0,0 +1,105 @@
1
+ const DEFAULT_LANGUAGE = 'en';
2
+ const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'ar', 'hr'];
3
+ const TRANSLATIONS = {
4
+ en: {
5
+ selectionCleared: 'Your selection will be cleared.',
6
+ ticketSubmitted: 'Ticket submitted successfully.',
7
+ ticketFailed: 'Failed to purchase the ticket. Please try again.',
8
+ lines: 'Lines',
9
+ line: 'Line',
10
+ bettingType: 'Betting Type',
11
+ playingMode: 'Playing Mode',
12
+ orderSummaryTitle: 'Order Summary',
13
+ orderSummaryTickets: 'Tickets',
14
+ orderSummaryTotal: 'Total',
15
+ orderSummarySubmit: 'Submit',
16
+ cancel: 'Cancel',
17
+ confirm: 'Confirm'
18
+ },
19
+ ro: {
20
+ selectionCleared: 'Selecția dvs. va fi ștearsă.',
21
+ ticketSubmitted: 'Bilet trimis cu succes.',
22
+ ticketFailed: 'Nu s-a putut achiziționa biletul. Vă rugăm să încercați din nou.',
23
+ lines: 'Linii',
24
+ line: 'Linie',
25
+ bettingType: 'Tip de pariu',
26
+ playingMode: 'Mod de joc',
27
+ orderSummaryTitle: 'Sumar comandă',
28
+ orderSummaryTickets: 'Bilete',
29
+ orderSummaryTotal: 'Total',
30
+ orderSummarySubmit: 'Trimite',
31
+ cancel: 'Anulează',
32
+ confirm: 'Confirmă'
33
+ },
34
+ fr: {
35
+ selectionCleared: 'Votre sélection sera effacée.',
36
+ ticketSubmitted: 'Billet soumis avec succès.',
37
+ ticketFailed: "Échec de l'achat du billet. Veuillez réessayer.",
38
+ lines: 'Lignes',
39
+ line: 'Ligne',
40
+ bettingType: 'Type de pari',
41
+ playingMode: 'Mode de jeu',
42
+ orderSummaryTitle: 'Résumé de la commande',
43
+ orderSummaryTickets: 'Billets',
44
+ orderSummaryTotal: 'Total',
45
+ orderSummarySubmit: 'Soumettre',
46
+ cancel: 'Annuler',
47
+ confirm: 'Confirmer'
48
+ },
49
+ ar: {
50
+ selectionCleared: 'سيتم مسح اختيارك.',
51
+ ticketSubmitted: 'تم إرسال التذكرة بنجاح.',
52
+ ticketFailed: 'فشل شراء التذكرة. يرجى المحاولة مرة أخرى.',
53
+ lines: 'خطوط',
54
+ line: 'خط',
55
+ bettingType: 'نوع الرهان',
56
+ playingMode: 'وضع اللعب',
57
+ orderSummaryTitle: 'ملخص الطلب',
58
+ orderSummaryTickets: 'التذاكر',
59
+ orderSummaryTotal: 'المجموع',
60
+ orderSummarySubmit: 'إرسال',
61
+ cancel: 'إلغاء',
62
+ confirm: 'تأكيد'
63
+ },
64
+ hr: {
65
+ selectionCleared: 'Vaš odabir bit će obrisan.',
66
+ ticketSubmitted: 'Listić je uspješno predan.',
67
+ ticketFailed: 'Kupnja listića nije uspjela. Molimo pokušajte ponovo.',
68
+ lines: 'Linije',
69
+ line: 'Linija',
70
+ bettingType: 'Vrsta oklade',
71
+ playingMode: 'Način igranja',
72
+ orderSummaryTitle: 'Sažetak narudžbe',
73
+ orderSummaryTickets: 'Listići',
74
+ orderSummaryTotal: 'Ukupno',
75
+ orderSummarySubmit: 'Pošalji',
76
+ cancel: 'Odustani',
77
+ confirm: 'Potvrdi'
78
+ }
79
+ };
80
+ export const translate = (key, customLang) => {
81
+ const lang = customLang;
82
+ return TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
83
+ };
84
+ export const getTranslations = (data) => {
85
+ Object.keys(data).forEach((item) => {
86
+ for (let key in data[item]) {
87
+ TRANSLATIONS[item][key] = data[item][key];
88
+ }
89
+ });
90
+ };
91
+ export const resolveTranslationUrl = async (translationUrl) => {
92
+ if (translationUrl) {
93
+ try {
94
+ const response = await fetch(translationUrl);
95
+ if (!response.ok) {
96
+ throw new Error(`HTTP error! status: ${response.status}`);
97
+ }
98
+ const translations = await response.json();
99
+ getTranslations(translations);
100
+ }
101
+ catch (error) {
102
+ console.error('Failed to fetch or parse translations from URL:', error);
103
+ }
104
+ }
105
+ };
@@ -0,0 +1,130 @@
1
+ export function format(first, middle, last) {
2
+ return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
3
+ }
4
+ import { format as _format, parseISO } from "date-fns";
5
+ export const formatDate = ({ date, type = 'date', format }) => {
6
+ try {
7
+ const parsedDate = parseISO(date);
8
+ if (isNaN(parsedDate.getTime())) {
9
+ throw new Error(`Invalid date: ${date}`);
10
+ }
11
+ if (format)
12
+ return _format(parsedDate, format);
13
+ let formatStr = 'dd/MM/yyyy';
14
+ if (type === 'time') {
15
+ formatStr = 'dd/MM/yyyy HH:mm:ss';
16
+ }
17
+ else if (type === 'week') {
18
+ formatStr = 'ccc dd/MM/yyyy HH:mm:ss';
19
+ }
20
+ return _format(parsedDate, formatStr);
21
+ }
22
+ catch (error) {
23
+ console.error('Error formatting date:', error.message);
24
+ return '';
25
+ }
26
+ };
27
+ export const fetcher = (url) => fetch(url, {
28
+ method: 'GET',
29
+ headers: {
30
+ 'x-scheme': 'application/json',
31
+ Accept: 'application/json'
32
+ }
33
+ }).then((r) => r.json());
34
+ export const showNotification = ({ message, theme = 'success' }) => {
35
+ window.postMessage({
36
+ type: 'ShowNotificationToast',
37
+ message,
38
+ theme
39
+ });
40
+ };
41
+ export const thousandSeparator = (value) => {
42
+ if (value === 0) {
43
+ return '0';
44
+ }
45
+ if (!value) {
46
+ return '';
47
+ }
48
+ value = value.toString();
49
+ const parts = value.split('.');
50
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
51
+ return parts.join('.');
52
+ };
53
+ export const generateUUID = () => {
54
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
55
+ var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
56
+ return v.toString(16);
57
+ });
58
+ };
59
+ export const TICKET_INVALID_TOKEN = 'TICKET_INVALID_TOKEN';
60
+ // format results to winning numbers
61
+ export const formatResultsToWinningNumbers = (rawResults) => {
62
+ const formatMatchCheckRes = (matchRes) => matchRes.map((bulletItem) => (bulletItem.isSelected ? 1 : 0));
63
+ const resultsForTotalLines = rawResults.map((lineRes) => lineRes.map(formatMatchCheckRes));
64
+ const result = [];
65
+ for (let i = 0; i < resultsForTotalLines.length; i++) {
66
+ const resultsInLine = resultsForTotalLines[i];
67
+ for (let j = 0; j < resultsInLine.length; j++) {
68
+ const matchResult = resultsInLine[j];
69
+ for (let k = 0; k < matchResult.length; k++) {
70
+ if (!result[i])
71
+ result[i] = [];
72
+ if (matchResult[k])
73
+ result[i].push(k, j);
74
+ }
75
+ }
76
+ }
77
+ return result;
78
+ };
79
+ export const doSubmitTicket = ({ body, sessionId, url }) => {
80
+ const options = {
81
+ method: 'POST',
82
+ headers: {
83
+ 'Content-Type': 'application/json',
84
+ Accept: 'application/json',
85
+ Authorization: `Bearer ${sessionId}`,
86
+ 'X-Idempotency-Key': generateUUID()
87
+ },
88
+ body: JSON.stringify(body)
89
+ };
90
+ return fetch(url, options).then((res) => {
91
+ if (res.status === 401) {
92
+ throw new Error(TICKET_INVALID_TOKEN);
93
+ }
94
+ if (res.status > 300) {
95
+ throw new Error(res.statusText);
96
+ }
97
+ return res.json();
98
+ });
99
+ };
100
+ // BettingTypes, playModes and playTypes
101
+ export const getEnableOptions = (raw = []) => raw.filter((i) => i.enabled);
102
+ // the first one in bet type config that enabled = true, will be default choice
103
+ export const getDefaultType = ({ playTypeConfig = [], betTypeConfig = [], enabledBettingTypeOptions = [], enabledPlayingModeOptions = [] }) => {
104
+ const enabledBetTypeConfig = betTypeConfig.filter((i) => i.enabled);
105
+ for (const item of enabledBetTypeConfig) {
106
+ const { bettingType, playMode } = playTypeConfig === null || playTypeConfig === void 0 ? void 0 : playTypeConfig.find((i) => i.betTypeId === item.id);
107
+ if (enabledBettingTypeOptions.map((i) => i.code).includes(bettingType) &&
108
+ enabledPlayingModeOptions.map((i) => i.code).includes(playMode))
109
+ return { bettingType, playMode };
110
+ }
111
+ return {};
112
+ };
113
+ export const calculatePlayingModeOptions = ({ bettingType, playTypeConfig, betTypeConfig, enabledPlayingModeOptions }) => {
114
+ const enabledBetTypeIdConfig = betTypeConfig.filter((i) => i.enabled).map((i) => i.id);
115
+ const filteredPlayTypesConfig = playTypeConfig.filter((i) => enabledBetTypeIdConfig.includes(i.betTypeId));
116
+ const selectedBettingTypeFilteredPlayTypesConfig = filteredPlayTypesConfig.filter((i) => i.bettingType === bettingType);
117
+ const _ = selectedBettingTypeFilteredPlayTypesConfig.map((i) => i.playMode);
118
+ return enabledPlayingModeOptions.filter((i) => _.includes(i.code));
119
+ };
120
+ export const getCheckedCountForEachLineAndEachMatch = ({ rawResults }) => {
121
+ const getMatchCheckRes = (matchRes) => matchRes.filter((bulletItem) => bulletItem.isSelected).length;
122
+ const checkedCountForEachLineAndEachMatch = rawResults.map((lineRes) => lineRes.length > 0 ? lineRes.map(getMatchCheckRes) : [0]);
123
+ return checkedCountForEachLineAndEachMatch;
124
+ };
125
+ export const getPlayTypeConfig = ({ rawData, selectedBettingType, selectedPlayingMode }) => {
126
+ var _a, _b, _c, _d, _e, _f;
127
+ const betTypeId = (_d = (_c = (_b = (_a = rawData === null || rawData === void 0 ? void 0 : rawData.rules) === null || _a === void 0 ? void 0 : _a.poolGame) === null || _b === void 0 ? void 0 : _b.playTypes) === null || _c === void 0 ? void 0 : _c.find((i) => i.bettingType === selectedBettingType && i.playMode === selectedPlayingMode)) === null || _d === void 0 ? void 0 : _d.betTypeId;
128
+ const betType = (_f = (_e = rawData === null || rawData === void 0 ? void 0 : rawData.rules) === null || _e === void 0 ? void 0 : _e.betTypes) === null || _f === void 0 ? void 0 : _f.find((i) => i.id === betTypeId);
129
+ return { betTypeId, betType };
130
+ };
@@ -0,0 +1,3 @@
1
+ const globalScripts = () => {};
2
+
3
+ export { globalScripts as g };