@everymatrix/lottery-game-page 1.52.6 → 1.53.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 (30) hide show
  1. package/dist/cjs/{helper-accordion_13.cjs.entry.js → helper-accordion_14.cjs.entry.js} +3896 -439
  2. package/dist/cjs/index-3ecbfc1b.js +2 -6
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/lottery-game-page.cjs.js +1 -1
  5. package/dist/collection/collection-manifest.json +6 -6
  6. package/dist/collection/components/lottery-game-page/lottery-game-page.css +70 -53
  7. package/dist/collection/components/lottery-game-page/lottery-game-page.js +210 -154
  8. package/dist/collection/components/static/chrono_desktop.png +0 -0
  9. package/dist/collection/components/static/chrono_lottery_mobile.png +0 -0
  10. package/dist/collection/utils/locale.utils.js +16 -1
  11. package/dist/collection/utils/utils.js +6 -0
  12. package/dist/esm/{helper-accordion_13.entry.js → helper-accordion_14.entry.js} +3896 -440
  13. package/dist/esm/index-7ea78a23.js +2 -6
  14. package/dist/esm/loader.js +1 -1
  15. package/dist/esm/lottery-game-page.js +1 -1
  16. package/dist/lottery-game-page/lottery-game-page.esm.js +1 -1
  17. package/dist/lottery-game-page/{p-41527e32.entry.js → p-dee70ec2.entry.js} +1061 -137
  18. package/dist/static/chrono_desktop.png +0 -0
  19. package/dist/static/chrono_lottery_mobile.png +0 -0
  20. package/dist/types/Users/maria.bumbar/Desktop/widgets-monorepo/packages/stencil/lottery-game-page/.stencil/packages/stencil/lottery-game-page/stencil.config.d.ts +2 -0
  21. package/dist/types/Users/maria.bumbar/Desktop/widgets-monorepo/packages/stencil/lottery-game-page/.stencil/packages/stencil/lottery-game-page/stencil.config.dev.d.ts +2 -0
  22. package/dist/types/components/lottery-game-page/lottery-game-page.d.ts +17 -17
  23. package/dist/types/components.d.ts +8 -16
  24. package/dist/types/utils/utils.d.ts +1 -0
  25. package/package.json +1 -1
  26. package/dist/cjs/helper-pagination.cjs.entry.js +0 -227
  27. package/dist/esm/helper-pagination.entry.js +0 -223
  28. package/dist/lottery-game-page/p-dd23f58f.entry.js +0 -1
  29. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-game-page/.stencil/packages/stencil/lottery-game-page/stencil.config.d.ts +0 -2
  30. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/lottery-game-page/.stencil/packages/stencil/lottery-game-page/stencil.config.dev.d.ts +0 -2
Binary file
@@ -0,0 +1,2 @@
1
+ import { Config } from '../../../../../../../../../../../stencil-public-runtime';
2
+ export declare const config: Config;
@@ -0,0 +1,2 @@
1
+ import { Config } from '../../../../../../../../../../../stencil-public-runtime';
2
+ export declare const config: Config;
@@ -9,6 +9,10 @@ export declare class LotteryGamePage {
9
9
  * Endpoint URL for the source of data
10
10
  */
11
11
  endpoint: string;
12
+ /**
13
+ * EndpointTicket URL for the source of ticket data
14
+ */
15
+ endpointTicket: string;
12
16
  /**
13
17
  * GameID of the lottery game
14
18
  */
@@ -29,14 +33,6 @@ export declare class LotteryGamePage {
29
33
  * Url for banner's custom background image
30
34
  */
31
35
  backgroundUrl: string;
32
- /**
33
- * Shows the auto-pick button
34
- */
35
- autoPick: boolean;
36
- /**
37
- * Shows the reset button
38
- */
39
- resetButton: boolean;
40
36
  /**
41
37
  * Client custom styling via string
42
38
  */
@@ -47,36 +43,40 @@ export declare class LotteryGamePage {
47
43
  clientStylingurl: string;
48
44
  clientStylingUrlContent: string;
49
45
  tickets: Array<any>;
46
+ mainTickets: Array<any>;
47
+ secondaryTickets: Array<any>;
50
48
  tabIndex: number;
51
49
  hasErrors: boolean;
52
50
  totalAmount: number;
53
51
  successVisible: boolean;
54
- deleteVisible: boolean;
55
- deleteEventData: any;
56
52
  private daysRemaining;
57
53
  private hoursRemaining;
58
54
  private minutesRemaining;
59
55
  private secondsRemaining;
60
- private latestDraw;
61
- private totalWinningsAmount;
62
56
  private nextDate;
63
57
  private isLoggedIn;
64
58
  private loginModalVisible;
65
59
  private limitStylingAppends;
60
+ private isLoading;
61
+ private showSubmitError;
62
+ private submitError;
63
+ private showApiError;
64
+ private apiError;
66
65
  element: HTMLElement;
67
66
  goBackEvent: EventEmitter<string>;
68
67
  goToLobbyEvent: EventEmitter<string>;
69
68
  private userAgent;
70
69
  private stylingContainer;
71
70
  private basicStake;
72
- private multiplier;
71
+ private basicLine;
72
+ private basicBetType;
73
73
  private quickPick;
74
74
  private nextDraw;
75
- private lastDrawId;
76
75
  private currency;
77
76
  private gameData;
78
77
  private interval;
79
78
  private isMobile;
79
+ private secondarySelectionAllowed;
80
80
  connectedCallback(): void;
81
81
  componentDidRender(): void;
82
82
  countdownLogic(date: any): void;
@@ -85,12 +85,12 @@ export declare class LotteryGamePage {
85
85
  calculateTotalAmount(): void;
86
86
  gridFilledHandler(event: CustomEvent<any>): void;
87
87
  gridDirtyHandler(event: CustomEvent<any>): void;
88
- deleteTicketHandler(event: CustomEvent<any>): void;
89
88
  modalCloseEvent(): void;
90
89
  stakeChangeHandler(event: any): void;
91
90
  multiplierChangeHandler(event: CustomEvent<any>): void;
92
- getDraws(): void;
93
- confirmDeleteTicketHandler(event: any): void;
91
+ drawMultiplierChangeHandler(event: CustomEvent<any>): void;
92
+ lineMultiplierChangeHandler(event: CustomEvent<any>): void;
93
+ betTypeChangeHandler(event: CustomEvent<any>): void;
94
94
  createNewTicket(): void;
95
95
  showLoginModal(): void;
96
96
  submitTickets(): void;
@@ -7,10 +7,6 @@
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  export namespace Components {
9
9
  interface LotteryGamePage {
10
- /**
11
- * Shows the auto-pick button
12
- */
13
- "autoPick": boolean;
14
10
  /**
15
11
  * Url for banner's custom background image
16
12
  */
@@ -27,6 +23,10 @@ export namespace Components {
27
23
  * Endpoint URL for the source of data
28
24
  */
29
25
  "endpoint": string;
26
+ /**
27
+ * EndpointTicket URL for the source of ticket data
28
+ */
29
+ "endpointTicket": string;
30
30
  /**
31
31
  * GameID of the lottery game
32
32
  */
@@ -39,10 +39,6 @@ export namespace Components {
39
39
  * Player ID
40
40
  */
41
41
  "playerId": number;
42
- /**
43
- * Shows the reset button
44
- */
45
- "resetButton": boolean;
46
42
  /**
47
43
  * GIC Session
48
44
  */
@@ -78,10 +74,6 @@ declare global {
78
74
  }
79
75
  declare namespace LocalJSX {
80
76
  interface LotteryGamePage {
81
- /**
82
- * Shows the auto-pick button
83
- */
84
- "autoPick"?: boolean;
85
77
  /**
86
78
  * Url for banner's custom background image
87
79
  */
@@ -98,6 +90,10 @@ declare namespace LocalJSX {
98
90
  * Endpoint URL for the source of data
99
91
  */
100
92
  "endpoint"?: string;
93
+ /**
94
+ * EndpointTicket URL for the source of ticket data
95
+ */
96
+ "endpointTicket"?: string;
101
97
  /**
102
98
  * GameID of the lottery game
103
99
  */
@@ -112,10 +108,6 @@ declare namespace LocalJSX {
112
108
  * Player ID
113
109
  */
114
110
  "playerId"?: number;
115
- /**
116
- * Shows the reset button
117
- */
118
- "resetButton"?: boolean;
119
111
  /**
120
112
  * GIC Session
121
113
  */
@@ -5,3 +5,4 @@
5
5
  * @returns {Boolean} true or false
6
6
  */
7
7
  export declare const isMobile: (userAgent: string) => boolean;
8
+ export declare const generateUUID: () => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/lottery-game-page",
3
- "version": "1.52.6",
3
+ "version": "1.53.0",
4
4
  "main": "./dist/index.cjs.js",
5
5
  "module": "./dist/index.js",
6
6
  "es2015": "./dist/esm/index.mjs",
@@ -1,227 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-3ecbfc1b.js');
6
-
7
- /**
8
- * @name isMobile
9
- * @description A method that returns if the browser used to access the app is from a mobile device or not
10
- * @param {String} userAgent window.navigator.userAgent
11
- * @returns {Boolean} true or false
12
- */
13
- const isMobile = (userAgent) => {
14
- return !!(userAgent.toLowerCase().match(/android/i) ||
15
- userAgent.toLowerCase().match(/blackberry|bb/i) ||
16
- userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
17
- userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
18
- };
19
-
20
- const DEFAULT_LANGUAGE = 'en';
21
- const TRANSLATIONS = {
22
- en: {
23
- firstPage: 'First',
24
- previousPage: 'Previous',
25
- nextPage: 'Next',
26
- lastPage: 'Last'
27
- },
28
- ro: {
29
- firstPage: 'Prima',
30
- previousPage: 'Anterior',
31
- nextPage: 'Urmatoarea',
32
- lastPage: 'Ultima'
33
- },
34
- fr: {
35
- firstPage: 'First',
36
- previousPage: 'Previous',
37
- nextPage: 'Next',
38
- lastPage: 'Last'
39
- },
40
- ar: {
41
- firstPage: 'First',
42
- previousPage: 'Previous',
43
- nextPage: 'Next',
44
- lastPage: 'Last'
45
- },
46
- hu: {
47
- firstPage: 'First',
48
- previousPage: 'Previous',
49
- nextPage: 'Következő',
50
- lastPage: 'Last'
51
- },
52
- hr: {
53
- firstPage: 'Prva',
54
- previousPage: 'Prethodna',
55
- nextPage: 'Slijedeća',
56
- lastPage: 'Zadnja'
57
- }
58
- };
59
- const translate = (key, customLang) => {
60
- const lang = customLang;
61
- return TRANSLATIONS[(lang !== undefined) && (lang in TRANSLATIONS) ? lang : DEFAULT_LANGUAGE][key];
62
- };
63
-
64
- const helperPaginationCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}#PaginationContainer{width:100%;margin:20px 0;display:inline-flex;justify-content:space-between;align-items:center}.LeftItems button:not(:first-child),.RightItems button:not(:last-child){margin:0 10px}.LeftItems button,.RightItems button{padding:0;background-color:#009993;border-color:#009993}.PaginationArea{display:inline-flex;gap:10px;list-style:none}.PaginationArea li{margin:0;padding:0}.PaginationArea li button{width:24px;height:24px;display:flex;border:0;padding:0;justify-content:center;align-items:center;background-color:transparent;color:#000;cursor:pointer;pointer-events:all}.PaginationItem.ActiveItem button{background:#009993;border-color:#009993;color:#fff}.PaginationItem.ActiveItem button:disabled{pointer-events:none;cursor:not-allowed}.PaginationItem button:hover,.PaginationItem button:active{background:#009993;border-color:#009993;color:#fff;opacity:0.8}button{width:100px;height:32px;border:1px solid #524e52;border-radius:5px;background:#524e52;color:#fff;font-size:14px;font:inherit;cursor:pointer;transition:all 0.1s linear;text-transform:uppercase;text-align:center;letter-spacing:0}button:hover,button:active{background:#004D4A;border-color:#004D4A}button:disabled{background-color:#ccc;border-color:#ccc;color:#fff;cursor:not-allowed}@media screen and (max-width: 720px){button{width:90px;font-size:14px}}@media screen and (max-width: 480px){button{width:70px;font-size:14px}.paginationArea{padding:5px}}@media screen and (max-width: 320px){button{width:58px;font-size:12px}.paginationArea{padding:5px;gap:5px}}@media (hover: none){.paginationItem button:hover{background:inherit;border-color:inherit;color:inherit;opacity:1}.paginationItem.activeItem button:hover{background:#009993;border-color:#009993;color:#fff}}";
65
- const HelperPaginationStyle0 = helperPaginationCss;
66
-
67
- const HelperPagination = class {
68
- constructor(hostRef) {
69
- index.registerInstance(this, hostRef);
70
- this.hpPageChange = index.createEvent(this, "hpPageChange", 7);
71
- this.userAgent = window.navigator.userAgent;
72
- this.currentPage = 1;
73
- /**
74
- * Navigation logic
75
- */
76
- this.navigateTo = (navigationPage) => {
77
- switch (navigationPage) {
78
- case 'firstPage':
79
- this.offsetInt = 0;
80
- break;
81
- case 'lastPage':
82
- this.offsetInt = this.endInt * this.limitInt;
83
- break;
84
- case 'previousPage':
85
- this.offsetInt -= this.limitInt;
86
- break;
87
- case 'nextPage':
88
- this.offsetInt += this.limitInt;
89
- break;
90
- case 'fivePagesBack':
91
- this.offsetInt -= this.limitInt * 5;
92
- this.offsetInt = this.offsetInt <= 0 ? 0 : this.offsetInt;
93
- break;
94
- case 'fivePagesForward':
95
- this.offsetInt += this.limitInt * 5;
96
- this.offsetInt = this.offsetInt / this.limitInt >= this.endInt ? this.endInt * this.limitInt : this.offsetInt;
97
- break;
98
- }
99
- this.previousPage = !this.offsetInt ? false : true;
100
- this.hpPageChange.emit({ offset: this.offsetInt, limit: this.limitInt, total: this.totalInt });
101
- };
102
- /**
103
- * Handle navigation from here
104
- */
105
- this.paginationNavigation = (pageNumber, index) => {
106
- this.previousPage = true;
107
- if (!isNaN(pageNumber)) {
108
- if (pageNumber === 1) {
109
- this.offsetInt = pageNumber - 1;
110
- this.previousPage = false;
111
- }
112
- else {
113
- this.offsetInt = (pageNumber - 1) * this.limitInt;
114
- }
115
- }
116
- else {
117
- if (index === 0 && this.currentPage <= 4) {
118
- this.navigateTo('firstPage');
119
- }
120
- else if (index === 0 && this.currentPage > 4) {
121
- this.navigateTo('fivePagesBack');
122
- }
123
- else if (index === 4 && this.endInt - this.currentPage >= 2) {
124
- this.navigateTo('fivePagesForward');
125
- }
126
- }
127
- this.hpPageChange.emit({ offset: this.offsetInt, limit: this.limitInt, total: this.totalInt });
128
- };
129
- this.setClientStyling = () => {
130
- let sheet = document.createElement('style');
131
- sheet.innerHTML = this.clientStyling;
132
- this.stylingContainer.prepend(sheet);
133
- };
134
- this.setClientStylingURL = () => {
135
- let cssFile = document.createElement('style');
136
- setTimeout(() => {
137
- cssFile.innerHTML = this.clientStylingUrlContent;
138
- this.stylingContainer.prepend(cssFile);
139
- }, 1);
140
- };
141
- this.nextPage = '';
142
- this.prevPage = '';
143
- this.offset = 0;
144
- this.limit = 1;
145
- this.total = 1;
146
- this.language = 'en';
147
- this.clientStyling = '';
148
- this.clientStylingUrlContent = '';
149
- this.arrowsActive = undefined;
150
- this.secondaryArrowsActive = undefined;
151
- this.numberedNavActive = undefined;
152
- this.offsetInt = undefined;
153
- this.lastPage = false;
154
- this.previousPage = false;
155
- this.limitInt = undefined;
156
- this.totalInt = undefined;
157
- this.pagesArray = [];
158
- this.endInt = 0;
159
- this.limitStylingAppends = false;
160
- }
161
- componentWillRender() {
162
- this.offsetInt = this.offset;
163
- this.limitInt = this.limit;
164
- this.currentPage = (this.offsetInt / this.limitInt) + 1;
165
- this.limitInt = this.limit;
166
- this.totalInt = this.total;
167
- this.endInt = (Math.ceil(this.totalInt / this.limitInt) - 1);
168
- this.lastPage = (this.offsetInt >= this.endInt * this.limitInt) ? false : true;
169
- /**
170
- * Construct numbered navigation area based on current page position
171
- */
172
- if (this.currentPage == 1 || this.currentPage == 2) {
173
- this.pagesArray = Array.from({ length: 4 }, (_, i) => i + 1);
174
- this.pagesArray.push('...');
175
- }
176
- else if (this.currentPage >= 3 && ((this.endInt - this.currentPage) >= 2)) {
177
- this.pagesArray = Array.from({ length: 3 }, (_, i) => this.currentPage + i - 1);
178
- this.pagesArray.push('...');
179
- this.pagesArray.unshift('...');
180
- }
181
- else if ((this.endInt - this.currentPage) < 3) {
182
- this.pagesArray = Array.from({ length: 4 }, (_, i) => this.endInt - 2 + i);
183
- this.pagesArray.unshift('...');
184
- }
185
- }
186
- componentDidRender() {
187
- // start custom styling area
188
- if (!this.limitStylingAppends && this.stylingContainer) {
189
- if (this.clientStyling)
190
- this.setClientStyling();
191
- if (this.clientStylingUrlContent)
192
- this.setClientStylingURL();
193
- this.limitStylingAppends = true;
194
- }
195
- // end custom styling area
196
- }
197
- render() {
198
- /**
199
- * Center navigation area
200
- */
201
- let navigationArea = index.h("ul", { class: "PaginationArea" }, this.pagesArray.map((item, index$1) => {
202
- return (index.h("li", { class: 'PaginationItem' + (item === this.currentPage ? ' ActiveItem' : ' ') + ' ' + (isMobile(this.userAgent) ? 'MobileButtons' : '') }, index.h("button", { disabled: item === this.currentPage ? true : false, onClick: this.paginationNavigation.bind(this, item, index$1) }, index.h("span", null, item))));
203
- }));
204
- /**
205
- * Left navigation area
206
- */
207
- let buttonSecondaryLeftSide = index.h("button", { disabled: this.prevPage ? false : true, onClick: this.navigateTo.bind(this, 'firstPage') }, index.h("span", { class: "NavigationButton" }, translate('firstPage', this.language)), index.h("span", { class: "NavigationIcon" }));
208
- let buttonsLeftSide = index.h("div", { class: "LeftItems" }, this.secondaryArrowsActive && buttonSecondaryLeftSide, index.h("button", { disabled: this.prevPage ? false : true, onClick: this.navigateTo.bind(this, 'previousPage') }, index.h("span", { class: "NavigationButton" }, translate('previousPage', this.language)), index.h("span", { class: "NavigationIcon" })));
209
- if (isMobile(this.userAgent)) {
210
- buttonsLeftSide =
211
- index.h("div", { class: "LeftItems" }, index.h("button", { disabled: this.prevPage ? false : true, onClick: this.navigateTo.bind(this, 'previousPage') }, index.h("span", { class: "NavigationButton" }, translate('previousPage', this.language)), index.h("span", { class: "NavigationIcon" })));
212
- }
213
- /**
214
- * Right navigation area
215
- */
216
- let buttonSecondaryRightSide = index.h("button", { disabled: this.nextPage ? false : true, onClick: this.navigateTo.bind(this, 'lastPage') }, index.h("span", { class: "NavigationButton" }, translate('lastPage', this.language)), index.h("span", { class: "NavigationIcon" }));
217
- let buttonsRightSide = index.h("div", { class: "RightItems" }, index.h("button", { disabled: this.nextPage ? false : true, onClick: this.navigateTo.bind(this, 'nextPage') }, index.h("span", { class: "NavigationButton" }, translate('nextPage', this.language)), index.h("span", { class: "NavigationIcon" })), this.secondaryArrowsActive && buttonSecondaryRightSide);
218
- if (isMobile(this.userAgent)) {
219
- buttonsRightSide =
220
- index.h("div", { class: "RightItems" }, index.h("button", { disabled: this.nextPage ? false : true, onClick: this.navigateTo.bind(this, 'nextPage') }, index.h("span", { class: "NavigationButton" }, translate('nextPage', this.language)), index.h("span", { class: "NavigationIcon" })));
221
- }
222
- return (index.h("div", { id: "PaginationContainer", ref: el => this.stylingContainer = el }, this.arrowsActive && buttonsLeftSide, this.numberedNavActive && navigationArea, this.arrowsActive && buttonsRightSide));
223
- }
224
- };
225
- HelperPagination.style = HelperPaginationStyle0;
226
-
227
- exports.helper_pagination = HelperPagination;
@@ -1,223 +0,0 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-7ea78a23.js';
2
-
3
- /**
4
- * @name isMobile
5
- * @description A method that returns if the browser used to access the app is from a mobile device or not
6
- * @param {String} userAgent window.navigator.userAgent
7
- * @returns {Boolean} true or false
8
- */
9
- const isMobile = (userAgent) => {
10
- return !!(userAgent.toLowerCase().match(/android/i) ||
11
- userAgent.toLowerCase().match(/blackberry|bb/i) ||
12
- userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
13
- userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
14
- };
15
-
16
- const DEFAULT_LANGUAGE = 'en';
17
- const TRANSLATIONS = {
18
- en: {
19
- firstPage: 'First',
20
- previousPage: 'Previous',
21
- nextPage: 'Next',
22
- lastPage: 'Last'
23
- },
24
- ro: {
25
- firstPage: 'Prima',
26
- previousPage: 'Anterior',
27
- nextPage: 'Urmatoarea',
28
- lastPage: 'Ultima'
29
- },
30
- fr: {
31
- firstPage: 'First',
32
- previousPage: 'Previous',
33
- nextPage: 'Next',
34
- lastPage: 'Last'
35
- },
36
- ar: {
37
- firstPage: 'First',
38
- previousPage: 'Previous',
39
- nextPage: 'Next',
40
- lastPage: 'Last'
41
- },
42
- hu: {
43
- firstPage: 'First',
44
- previousPage: 'Previous',
45
- nextPage: 'Következő',
46
- lastPage: 'Last'
47
- },
48
- hr: {
49
- firstPage: 'Prva',
50
- previousPage: 'Prethodna',
51
- nextPage: 'Slijedeća',
52
- lastPage: 'Zadnja'
53
- }
54
- };
55
- const translate = (key, customLang) => {
56
- const lang = customLang;
57
- return TRANSLATIONS[(lang !== undefined) && (lang in TRANSLATIONS) ? lang : DEFAULT_LANGUAGE][key];
58
- };
59
-
60
- const helperPaginationCss = "@import url(\"https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap\");:host{display:block;font-family:\"Roboto\", sans-serif}#PaginationContainer{width:100%;margin:20px 0;display:inline-flex;justify-content:space-between;align-items:center}.LeftItems button:not(:first-child),.RightItems button:not(:last-child){margin:0 10px}.LeftItems button,.RightItems button{padding:0;background-color:#009993;border-color:#009993}.PaginationArea{display:inline-flex;gap:10px;list-style:none}.PaginationArea li{margin:0;padding:0}.PaginationArea li button{width:24px;height:24px;display:flex;border:0;padding:0;justify-content:center;align-items:center;background-color:transparent;color:#000;cursor:pointer;pointer-events:all}.PaginationItem.ActiveItem button{background:#009993;border-color:#009993;color:#fff}.PaginationItem.ActiveItem button:disabled{pointer-events:none;cursor:not-allowed}.PaginationItem button:hover,.PaginationItem button:active{background:#009993;border-color:#009993;color:#fff;opacity:0.8}button{width:100px;height:32px;border:1px solid #524e52;border-radius:5px;background:#524e52;color:#fff;font-size:14px;font:inherit;cursor:pointer;transition:all 0.1s linear;text-transform:uppercase;text-align:center;letter-spacing:0}button:hover,button:active{background:#004D4A;border-color:#004D4A}button:disabled{background-color:#ccc;border-color:#ccc;color:#fff;cursor:not-allowed}@media screen and (max-width: 720px){button{width:90px;font-size:14px}}@media screen and (max-width: 480px){button{width:70px;font-size:14px}.paginationArea{padding:5px}}@media screen and (max-width: 320px){button{width:58px;font-size:12px}.paginationArea{padding:5px;gap:5px}}@media (hover: none){.paginationItem button:hover{background:inherit;border-color:inherit;color:inherit;opacity:1}.paginationItem.activeItem button:hover{background:#009993;border-color:#009993;color:#fff}}";
61
- const HelperPaginationStyle0 = helperPaginationCss;
62
-
63
- const HelperPagination = class {
64
- constructor(hostRef) {
65
- registerInstance(this, hostRef);
66
- this.hpPageChange = createEvent(this, "hpPageChange", 7);
67
- this.userAgent = window.navigator.userAgent;
68
- this.currentPage = 1;
69
- /**
70
- * Navigation logic
71
- */
72
- this.navigateTo = (navigationPage) => {
73
- switch (navigationPage) {
74
- case 'firstPage':
75
- this.offsetInt = 0;
76
- break;
77
- case 'lastPage':
78
- this.offsetInt = this.endInt * this.limitInt;
79
- break;
80
- case 'previousPage':
81
- this.offsetInt -= this.limitInt;
82
- break;
83
- case 'nextPage':
84
- this.offsetInt += this.limitInt;
85
- break;
86
- case 'fivePagesBack':
87
- this.offsetInt -= this.limitInt * 5;
88
- this.offsetInt = this.offsetInt <= 0 ? 0 : this.offsetInt;
89
- break;
90
- case 'fivePagesForward':
91
- this.offsetInt += this.limitInt * 5;
92
- this.offsetInt = this.offsetInt / this.limitInt >= this.endInt ? this.endInt * this.limitInt : this.offsetInt;
93
- break;
94
- }
95
- this.previousPage = !this.offsetInt ? false : true;
96
- this.hpPageChange.emit({ offset: this.offsetInt, limit: this.limitInt, total: this.totalInt });
97
- };
98
- /**
99
- * Handle navigation from here
100
- */
101
- this.paginationNavigation = (pageNumber, index) => {
102
- this.previousPage = true;
103
- if (!isNaN(pageNumber)) {
104
- if (pageNumber === 1) {
105
- this.offsetInt = pageNumber - 1;
106
- this.previousPage = false;
107
- }
108
- else {
109
- this.offsetInt = (pageNumber - 1) * this.limitInt;
110
- }
111
- }
112
- else {
113
- if (index === 0 && this.currentPage <= 4) {
114
- this.navigateTo('firstPage');
115
- }
116
- else if (index === 0 && this.currentPage > 4) {
117
- this.navigateTo('fivePagesBack');
118
- }
119
- else if (index === 4 && this.endInt - this.currentPage >= 2) {
120
- this.navigateTo('fivePagesForward');
121
- }
122
- }
123
- this.hpPageChange.emit({ offset: this.offsetInt, limit: this.limitInt, total: this.totalInt });
124
- };
125
- this.setClientStyling = () => {
126
- let sheet = document.createElement('style');
127
- sheet.innerHTML = this.clientStyling;
128
- this.stylingContainer.prepend(sheet);
129
- };
130
- this.setClientStylingURL = () => {
131
- let cssFile = document.createElement('style');
132
- setTimeout(() => {
133
- cssFile.innerHTML = this.clientStylingUrlContent;
134
- this.stylingContainer.prepend(cssFile);
135
- }, 1);
136
- };
137
- this.nextPage = '';
138
- this.prevPage = '';
139
- this.offset = 0;
140
- this.limit = 1;
141
- this.total = 1;
142
- this.language = 'en';
143
- this.clientStyling = '';
144
- this.clientStylingUrlContent = '';
145
- this.arrowsActive = undefined;
146
- this.secondaryArrowsActive = undefined;
147
- this.numberedNavActive = undefined;
148
- this.offsetInt = undefined;
149
- this.lastPage = false;
150
- this.previousPage = false;
151
- this.limitInt = undefined;
152
- this.totalInt = undefined;
153
- this.pagesArray = [];
154
- this.endInt = 0;
155
- this.limitStylingAppends = false;
156
- }
157
- componentWillRender() {
158
- this.offsetInt = this.offset;
159
- this.limitInt = this.limit;
160
- this.currentPage = (this.offsetInt / this.limitInt) + 1;
161
- this.limitInt = this.limit;
162
- this.totalInt = this.total;
163
- this.endInt = (Math.ceil(this.totalInt / this.limitInt) - 1);
164
- this.lastPage = (this.offsetInt >= this.endInt * this.limitInt) ? false : true;
165
- /**
166
- * Construct numbered navigation area based on current page position
167
- */
168
- if (this.currentPage == 1 || this.currentPage == 2) {
169
- this.pagesArray = Array.from({ length: 4 }, (_, i) => i + 1);
170
- this.pagesArray.push('...');
171
- }
172
- else if (this.currentPage >= 3 && ((this.endInt - this.currentPage) >= 2)) {
173
- this.pagesArray = Array.from({ length: 3 }, (_, i) => this.currentPage + i - 1);
174
- this.pagesArray.push('...');
175
- this.pagesArray.unshift('...');
176
- }
177
- else if ((this.endInt - this.currentPage) < 3) {
178
- this.pagesArray = Array.from({ length: 4 }, (_, i) => this.endInt - 2 + i);
179
- this.pagesArray.unshift('...');
180
- }
181
- }
182
- componentDidRender() {
183
- // start custom styling area
184
- if (!this.limitStylingAppends && this.stylingContainer) {
185
- if (this.clientStyling)
186
- this.setClientStyling();
187
- if (this.clientStylingUrlContent)
188
- this.setClientStylingURL();
189
- this.limitStylingAppends = true;
190
- }
191
- // end custom styling area
192
- }
193
- render() {
194
- /**
195
- * Center navigation area
196
- */
197
- let navigationArea = h("ul", { class: "PaginationArea" }, this.pagesArray.map((item, index) => {
198
- return (h("li", { class: 'PaginationItem' + (item === this.currentPage ? ' ActiveItem' : ' ') + ' ' + (isMobile(this.userAgent) ? 'MobileButtons' : '') }, h("button", { disabled: item === this.currentPage ? true : false, onClick: this.paginationNavigation.bind(this, item, index) }, h("span", null, item))));
199
- }));
200
- /**
201
- * Left navigation area
202
- */
203
- let buttonSecondaryLeftSide = h("button", { disabled: this.prevPage ? false : true, onClick: this.navigateTo.bind(this, 'firstPage') }, h("span", { class: "NavigationButton" }, translate('firstPage', this.language)), h("span", { class: "NavigationIcon" }));
204
- let buttonsLeftSide = h("div", { class: "LeftItems" }, this.secondaryArrowsActive && buttonSecondaryLeftSide, h("button", { disabled: this.prevPage ? false : true, onClick: this.navigateTo.bind(this, 'previousPage') }, h("span", { class: "NavigationButton" }, translate('previousPage', this.language)), h("span", { class: "NavigationIcon" })));
205
- if (isMobile(this.userAgent)) {
206
- buttonsLeftSide =
207
- h("div", { class: "LeftItems" }, h("button", { disabled: this.prevPage ? false : true, onClick: this.navigateTo.bind(this, 'previousPage') }, h("span", { class: "NavigationButton" }, translate('previousPage', this.language)), h("span", { class: "NavigationIcon" })));
208
- }
209
- /**
210
- * Right navigation area
211
- */
212
- let buttonSecondaryRightSide = h("button", { disabled: this.nextPage ? false : true, onClick: this.navigateTo.bind(this, 'lastPage') }, h("span", { class: "NavigationButton" }, translate('lastPage', this.language)), h("span", { class: "NavigationIcon" }));
213
- let buttonsRightSide = h("div", { class: "RightItems" }, h("button", { disabled: this.nextPage ? false : true, onClick: this.navigateTo.bind(this, 'nextPage') }, h("span", { class: "NavigationButton" }, translate('nextPage', this.language)), h("span", { class: "NavigationIcon" })), this.secondaryArrowsActive && buttonSecondaryRightSide);
214
- if (isMobile(this.userAgent)) {
215
- buttonsRightSide =
216
- h("div", { class: "RightItems" }, h("button", { disabled: this.nextPage ? false : true, onClick: this.navigateTo.bind(this, 'nextPage') }, h("span", { class: "NavigationButton" }, translate('nextPage', this.language)), h("span", { class: "NavigationIcon" })));
217
- }
218
- return (h("div", { id: "PaginationContainer", ref: el => this.stylingContainer = el }, this.arrowsActive && buttonsLeftSide, this.numberedNavActive && navigationArea, this.arrowsActive && buttonsRightSide));
219
- }
220
- };
221
- HelperPagination.style = HelperPaginationStyle0;
222
-
223
- export { HelperPagination as helper_pagination };
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as s}from"./p-dcd233c1.js";const a=t=>!!(t.toLowerCase().match(/android/i)||t.toLowerCase().match(/blackberry|bb/i)||t.toLowerCase().match(/iphone|ipad|ipod/i)||t.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i)),e={en:{firstPage:"First",previousPage:"Previous",nextPage:"Next",lastPage:"Last"},ro:{firstPage:"Prima",previousPage:"Anterior",nextPage:"Urmatoarea",lastPage:"Ultima"},fr:{firstPage:"First",previousPage:"Previous",nextPage:"Next",lastPage:"Last"},ar:{firstPage:"First",previousPage:"Previous",nextPage:"Next",lastPage:"Last"},hu:{firstPage:"First",previousPage:"Previous",nextPage:"Következő",lastPage:"Last"},hr:{firstPage:"Prva",previousPage:"Prethodna",nextPage:"Slijedeća",lastPage:"Zadnja"}},o=(t,i)=>e[void 0!==i&&i in e?i:"en"][t],n=class{constructor(s){t(this,s),this.hpPageChange=i(this,"hpPageChange",7),this.userAgent=window.navigator.userAgent,this.currentPage=1,this.navigateTo=t=>{switch(t){case"firstPage":this.offsetInt=0;break;case"lastPage":this.offsetInt=this.endInt*this.limitInt;break;case"previousPage":this.offsetInt-=this.limitInt;break;case"nextPage":this.offsetInt+=this.limitInt;break;case"fivePagesBack":this.offsetInt-=5*this.limitInt,this.offsetInt=this.offsetInt<=0?0:this.offsetInt;break;case"fivePagesForward":this.offsetInt+=5*this.limitInt,this.offsetInt=this.offsetInt/this.limitInt>=this.endInt?this.endInt*this.limitInt:this.offsetInt}this.previousPage=!!this.offsetInt,this.hpPageChange.emit({offset:this.offsetInt,limit:this.limitInt,total:this.totalInt})},this.paginationNavigation=(t,i)=>{this.previousPage=!0,isNaN(t)?0===i&&this.currentPage<=4?this.navigateTo("firstPage"):0===i&&this.currentPage>4?this.navigateTo("fivePagesBack"):4===i&&this.endInt-this.currentPage>=2&&this.navigateTo("fivePagesForward"):1===t?(this.offsetInt=t-1,this.previousPage=!1):this.offsetInt=(t-1)*this.limitInt,this.hpPageChange.emit({offset:this.offsetInt,limit:this.limitInt,total:this.totalInt})},this.setClientStyling=()=>{let t=document.createElement("style");t.innerHTML=this.clientStyling,this.stylingContainer.prepend(t)},this.setClientStylingURL=()=>{let t=document.createElement("style");setTimeout((()=>{t.innerHTML=this.clientStylingUrlContent,this.stylingContainer.prepend(t)}),1)},this.nextPage="",this.prevPage="",this.offset=0,this.limit=1,this.total=1,this.language="en",this.clientStyling="",this.clientStylingUrlContent="",this.arrowsActive=void 0,this.secondaryArrowsActive=void 0,this.numberedNavActive=void 0,this.offsetInt=void 0,this.lastPage=!1,this.previousPage=!1,this.limitInt=void 0,this.totalInt=void 0,this.pagesArray=[],this.endInt=0,this.limitStylingAppends=!1}componentWillRender(){this.offsetInt=this.offset,this.limitInt=this.limit,this.currentPage=this.offsetInt/this.limitInt+1,this.limitInt=this.limit,this.totalInt=this.total,this.endInt=Math.ceil(this.totalInt/this.limitInt)-1,this.lastPage=!(this.offsetInt>=this.endInt*this.limitInt),1==this.currentPage||2==this.currentPage?(this.pagesArray=Array.from({length:4},((t,i)=>i+1)),this.pagesArray.push("...")):this.currentPage>=3&&this.endInt-this.currentPage>=2?(this.pagesArray=Array.from({length:3},((t,i)=>this.currentPage+i-1)),this.pagesArray.push("..."),this.pagesArray.unshift("...")):this.endInt-this.currentPage<3&&(this.pagesArray=Array.from({length:4},((t,i)=>this.endInt-2+i)),this.pagesArray.unshift("..."))}componentDidRender(){!this.limitStylingAppends&&this.stylingContainer&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrlContent&&this.setClientStylingURL(),this.limitStylingAppends=!0)}render(){let t=s("ul",{class:"PaginationArea"},this.pagesArray.map(((t,i)=>s("li",{class:"PaginationItem"+(t===this.currentPage?" ActiveItem":" ")+" "+(a(this.userAgent)?"MobileButtons":"")},s("button",{disabled:t===this.currentPage,onClick:this.paginationNavigation.bind(this,t,i)},s("span",null,t)))))),i=s("button",{disabled:!this.prevPage,onClick:this.navigateTo.bind(this,"firstPage")},s("span",{class:"NavigationButton"},o("firstPage",this.language)),s("span",{class:"NavigationIcon"})),e=s("div",{class:"LeftItems"},this.secondaryArrowsActive&&i,s("button",{disabled:!this.prevPage,onClick:this.navigateTo.bind(this,"previousPage")},s("span",{class:"NavigationButton"},o("previousPage",this.language)),s("span",{class:"NavigationIcon"})));a(this.userAgent)&&(e=s("div",{class:"LeftItems"},s("button",{disabled:!this.prevPage,onClick:this.navigateTo.bind(this,"previousPage")},s("span",{class:"NavigationButton"},o("previousPage",this.language)),s("span",{class:"NavigationIcon"}))));let n=s("button",{disabled:!this.nextPage,onClick:this.navigateTo.bind(this,"lastPage")},s("span",{class:"NavigationButton"},o("lastPage",this.language)),s("span",{class:"NavigationIcon"})),h=s("div",{class:"RightItems"},s("button",{disabled:!this.nextPage,onClick:this.navigateTo.bind(this,"nextPage")},s("span",{class:"NavigationButton"},o("nextPage",this.language)),s("span",{class:"NavigationIcon"})),this.secondaryArrowsActive&&n);return a(this.userAgent)&&(h=s("div",{class:"RightItems"},s("button",{disabled:!this.nextPage,onClick:this.navigateTo.bind(this,"nextPage")},s("span",{class:"NavigationButton"},o("nextPage",this.language)),s("span",{class:"NavigationIcon"})))),s("div",{id:"PaginationContainer",ref:t=>this.stylingContainer=t},this.arrowsActive&&e,this.numberedNavActive&&t,this.arrowsActive&&h)}};n.style='@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap");:host{display:block;font-family:"Roboto", sans-serif}#PaginationContainer{width:100%;margin:20px 0;display:inline-flex;justify-content:space-between;align-items:center}.LeftItems button:not(:first-child),.RightItems button:not(:last-child){margin:0 10px}.LeftItems button,.RightItems button{padding:0;background-color:#009993;border-color:#009993}.PaginationArea{display:inline-flex;gap:10px;list-style:none}.PaginationArea li{margin:0;padding:0}.PaginationArea li button{width:24px;height:24px;display:flex;border:0;padding:0;justify-content:center;align-items:center;background-color:transparent;color:#000;cursor:pointer;pointer-events:all}.PaginationItem.ActiveItem button{background:#009993;border-color:#009993;color:#fff}.PaginationItem.ActiveItem button:disabled{pointer-events:none;cursor:not-allowed}.PaginationItem button:hover,.PaginationItem button:active{background:#009993;border-color:#009993;color:#fff;opacity:0.8}button{width:100px;height:32px;border:1px solid #524e52;border-radius:5px;background:#524e52;color:#fff;font-size:14px;font:inherit;cursor:pointer;transition:all 0.1s linear;text-transform:uppercase;text-align:center;letter-spacing:0}button:hover,button:active{background:#004D4A;border-color:#004D4A}button:disabled{background-color:#ccc;border-color:#ccc;color:#fff;cursor:not-allowed}@media screen and (max-width: 720px){button{width:90px;font-size:14px}}@media screen and (max-width: 480px){button{width:70px;font-size:14px}.paginationArea{padding:5px}}@media screen and (max-width: 320px){button{width:58px;font-size:12px}.paginationArea{padding:5px;gap:5px}}@media (hover: none){.paginationItem button:hover{background:inherit;border-color:inherit;color:inherit;opacity:1}.paginationItem.activeItem button:hover{background:#009993;border-color:#009993;color:#fff}}';export{n as helper_pagination}
@@ -1,2 +0,0 @@
1
- import { Config } from '../../../../../../../../../../../../stencil-public-runtime';
2
- export declare const config: Config;
@@ -1,2 +0,0 @@
1
- import { Config } from '../../../../../../../../../../../../stencil-public-runtime';
2
- export declare const config: Config;