aeico-components 0.1.7 → 0.1.9
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/README.md +0 -0
- package/dist/alert.cjs +637 -4
- package/dist/alert.cjs.map +7 -1
- package/dist/alert.js +575 -3
- package/dist/alert.js.map +7 -1
- package/dist/badge.cjs +573 -4
- package/dist/badge.cjs.map +7 -1
- package/dist/badge.js +510 -3
- package/dist/badge.js.map +7 -1
- package/dist/breadcrumb.cjs +709 -5
- package/dist/breadcrumb.cjs.map +7 -1
- package/dist/breadcrumb.js +644 -4
- package/dist/breadcrumb.js.map +7 -1
- package/dist/button-group.cjs +546 -4
- package/dist/button-group.cjs.map +7 -1
- package/dist/button-group.js +489 -3
- package/dist/button-group.js.map +7 -1
- package/dist/button.cjs +834 -4
- package/dist/button.cjs.map +7 -1
- package/dist/button.js +771 -3
- package/dist/button.js.map +7 -1
- package/dist/card.cjs +574 -4
- package/dist/card.cjs.map +7 -1
- package/dist/card.js +516 -3
- package/dist/card.js.map +7 -1
- package/dist/checkbox.cjs +867 -4
- package/dist/checkbox.cjs.map +7 -1
- package/dist/checkbox.js +794 -3
- package/dist/checkbox.js.map +7 -1
- package/dist/copy-button.cjs +1046 -4
- package/dist/copy-button.cjs.map +7 -1
- package/dist/copy-button.js +969 -3
- package/dist/copy-button.js.map +7 -1
- package/dist/detail-group.cjs +531 -4
- package/dist/detail-group.cjs.map +7 -1
- package/dist/detail-group.js +474 -3
- package/dist/detail-group.js.map +7 -1
- package/dist/detail.cjs +627 -4
- package/dist/detail.cjs.map +7 -1
- package/dist/detail.js +569 -3
- package/dist/detail.js.map +7 -1
- package/dist/dialog.cjs +738 -4
- package/dist/dialog.cjs.map +7 -1
- package/dist/dialog.js +665 -3
- package/dist/dialog.js.map +7 -1
- package/dist/divider.cjs +558 -4
- package/dist/divider.cjs.map +7 -1
- package/dist/divider.js +502 -3
- package/dist/divider.js.map +7 -1
- package/dist/drawer.cjs +818 -4
- package/dist/drawer.cjs.map +7 -1
- package/dist/drawer.js +749 -3
- package/dist/drawer.js.map +7 -1
- package/dist/dropdown.cjs +1396 -5
- package/dist/dropdown.cjs.map +7 -1
- package/dist/dropdown.js +1316 -4
- package/dist/dropdown.js.map +7 -1
- package/dist/icon-button.cjs +999 -4
- package/dist/icon-button.cjs.map +7 -1
- package/dist/icon-button.js +930 -3
- package/dist/icon-button.js.map +7 -1
- package/dist/icon.cjs +613 -4
- package/dist/icon.cjs.map +7 -1
- package/dist/icon.js +547 -3
- package/dist/icon.js.map +7 -1
- package/dist/index.cjs +6532 -74
- package/dist/index.cjs.map +7 -1
- package/dist/index.js +6183 -73
- package/dist/index.js.map +7 -1
- package/dist/menu.cjs +841 -4
- package/dist/menu.cjs.map +7 -1
- package/dist/menu.js +785 -3
- package/dist/menu.js.map +7 -1
- package/dist/navbar.cjs +622 -4
- package/dist/navbar.cjs.map +7 -1
- package/dist/navbar.js +564 -3
- package/dist/navbar.js.map +7 -1
- package/dist/number-input.cjs +885 -4
- package/dist/number-input.cjs.map +7 -1
- package/dist/number-input.js +817 -3
- package/dist/number-input.js.map +7 -1
- package/dist/pagination.cjs +1099 -4
- package/dist/pagination.cjs.map +7 -1
- package/dist/pagination.js +1029 -3
- package/dist/pagination.js.map +7 -1
- package/dist/progress-bar.cjs +581 -4
- package/dist/progress-bar.cjs.map +7 -1
- package/dist/progress-bar.js +525 -3
- package/dist/progress-bar.js.map +7 -1
- package/dist/radio-group.cjs +973 -5
- package/dist/radio-group.cjs.map +7 -1
- package/dist/radio-group.js +899 -4
- package/dist/radio-group.js.map +7 -1
- package/dist/select.cjs +1242 -45
- package/dist/select.cjs.map +7 -1
- package/dist/select.js +1159 -44
- package/dist/select.js.map +7 -1
- package/dist/slider.cjs +1420 -4
- package/dist/slider.cjs.map +7 -1
- package/dist/slider.js +1351 -3
- package/dist/slider.js.map +7 -1
- package/dist/spinner.cjs +587 -4
- package/dist/spinner.cjs.map +7 -1
- package/dist/spinner.js +528 -3
- package/dist/spinner.js.map +7 -1
- package/dist/styles/layout.cjs +1 -0
- package/dist/styles/layout.js +1 -0
- package/dist/styles/radius.cjs +1 -0
- package/dist/styles/radius.js +1 -0
- package/dist/styles/variables.cjs +1 -0
- package/dist/styles/variables.js +1 -0
- package/dist/switch.cjs +1092 -4
- package/dist/switch.cjs.map +7 -1
- package/dist/switch.js +1013 -3
- package/dist/switch.js.map +7 -1
- package/dist/tabs.cjs +660 -6
- package/dist/tabs.cjs.map +7 -1
- package/dist/tabs.js +591 -5
- package/dist/tabs.js.map +7 -1
- package/dist/tag.cjs +591 -3
- package/dist/tag.cjs.map +7 -1
- package/dist/tag.js +532 -2
- package/dist/tag.js.map +7 -1
- package/dist/text-input.cjs +829 -4
- package/dist/text-input.cjs.map +7 -1
- package/dist/text-input.js +761 -3
- package/dist/text-input.js.map +7 -1
- package/dist/textarea.cjs +914 -3
- package/dist/textarea.cjs.map +7 -1
- package/dist/textarea.js +854 -2
- package/dist/textarea.js.map +7 -1
- package/dist/tooltip.cjs +764 -4
- package/dist/tooltip.cjs.map +7 -1
- package/dist/tooltip.js +711 -3
- package/dist/tooltip.js.map +7 -1
- package/dist/tree.cjs +1059 -4
- package/dist/tree.cjs.map +7 -1
- package/dist/tree.js +985 -3
- package/dist/tree.js.map +7 -1
- package/dist/types/dialog/dialog.d.ts +1 -0
- package/dist/types/drawer/drawer.d.ts +2 -0
- package/dist/types/icon/defines.d.ts +2 -0
- package/dist/types/menu/defines.d.ts +1 -0
- package/dist/types/menu/menu-item.d.ts +1 -0
- package/dist/types/menu/menu.d.ts +1 -0
- package/dist/types/styles/layout.d.ts +2 -0
- package/dist/types/styles/radius.d.ts +2 -0
- package/dist/types/styles/variables.d.ts +2 -0
- package/package.json +31 -7
- package/src/alert/alert.ts +3 -3
- package/src/badge/badge.ts +4 -4
- package/src/breadcrumb/breadcrumb-item.ts +2 -2
- package/src/breadcrumb/breadcrumb.ts +3 -3
- package/src/button/button.ts +4 -4
- package/src/button-group/button-group.ts +8 -9
- package/src/card/card.ts +3 -3
- package/src/checkbox/checkbox.ts +6 -6
- package/src/copy-button/copy-button.ts +4 -4
- package/src/detail/detail.ts +3 -3
- package/src/detail-group/detail-group.ts +2 -2
- package/src/dialog/dialog.ts +15 -14
- package/src/divider/divider.ts +3 -3
- package/src/drawer/drawer.ts +28 -11
- package/src/dropdown/dropdown-item.ts +2 -2
- package/src/dropdown/dropdown.ts +2 -2
- package/src/icon/defines.ts +2 -0
- package/src/icon/icon.ts +4 -4
- package/src/menu/defines.ts +1 -0
- package/src/menu/menu-item.ts +14 -4
- package/src/menu/menu.ts +5 -2
- package/src/navbar/navbar.ts +3 -3
- package/src/number-input/number-input.ts +5 -5
- package/src/pagination/pagination.ts +3 -3
- package/src/progress-bar/progress-bar.ts +3 -3
- package/src/radio-group/radio-group.ts +12 -8
- package/src/select/select-option.ts +2 -2
- package/src/select/select.ts +5 -5
- package/src/slider/slider.ts +6 -6
- package/src/spinner/spinner.ts +4 -4
- package/src/styles/components/button-group.css +2 -0
- package/src/styles/components/card.css +42 -18
- package/src/styles/components/checkbox.css +16 -5
- package/src/styles/components/dialog.css +1 -1
- package/src/styles/components/drawer.css +50 -9
- package/src/styles/components/field-label.css +1 -1
- package/src/styles/components/menu-item.css +6 -0
- package/src/styles/components/navbar.css +7 -28
- package/src/styles/components/radio-group.css +19 -0
- package/src/styles/components/slider.css +30 -5
- package/src/styles/components/switch.css +16 -2
- package/src/styles/layout.css +5 -2
- package/src/styles/radius.css +15 -0
- package/src/switch/switch.ts +6 -6
- package/src/tabs/tab-panel.ts +1 -1
- package/src/tabs/tab.ts +1 -1
- package/src/tabs/tabs.ts +2 -2
- package/src/tag/tag.ts +4 -4
- package/src/text-input/text-input.ts +5 -5
- package/src/textarea/textarea.ts +5 -5
- package/src/tooltip/tooltip.ts +2 -2
- package/src/tree/tree-item.ts +2 -2
- package/src/tree/tree.ts +2 -2
- package/dist/chunks/action-button.cjs +0 -296
- package/dist/chunks/action-button.cjs.map +0 -1
- package/dist/chunks/action-button.js +0 -297
- package/dist/chunks/action-button.js.map +0 -1
- package/dist/chunks/aeico-component.cjs +0 -17
- package/dist/chunks/aeico-component.cjs.map +0 -1
- package/dist/chunks/aeico-component.js +0 -18
- package/dist/chunks/aeico-component.js.map +0 -1
- package/dist/chunks/alert.cjs +0 -164
- package/dist/chunks/alert.cjs.map +0 -1
- package/dist/chunks/alert.js +0 -165
- package/dist/chunks/alert.js.map +0 -1
- package/dist/chunks/badge.cjs +0 -85
- package/dist/chunks/badge.cjs.map +0 -1
- package/dist/chunks/badge.js +0 -86
- package/dist/chunks/badge.js.map +0 -1
- package/dist/chunks/breadcrumb-item.cjs +0 -261
- package/dist/chunks/breadcrumb-item.cjs.map +0 -1
- package/dist/chunks/breadcrumb-item.js +0 -262
- package/dist/chunks/breadcrumb-item.js.map +0 -1
- package/dist/chunks/button-group.cjs +0 -79
- package/dist/chunks/button-group.cjs.map +0 -1
- package/dist/chunks/button-group.js +0 -80
- package/dist/chunks/button-group.js.map +0 -1
- package/dist/chunks/button.cjs +0 -337
- package/dist/chunks/button.cjs.map +0 -1
- package/dist/chunks/button.js +0 -338
- package/dist/chunks/button.js.map +0 -1
- package/dist/chunks/card.cjs +0 -93
- package/dist/chunks/card.cjs.map +0 -1
- package/dist/chunks/card.js +0 -94
- package/dist/chunks/card.js.map +0 -1
- package/dist/chunks/checkbox.cjs +0 -86
- package/dist/chunks/checkbox.cjs.map +0 -1
- package/dist/chunks/checkbox.js +0 -87
- package/dist/chunks/checkbox.js.map +0 -1
- package/dist/chunks/color.cjs +0 -4
- package/dist/chunks/color.cjs.map +0 -1
- package/dist/chunks/color.js +0 -5
- package/dist/chunks/color.js.map +0 -1
- package/dist/chunks/copy-button.cjs +0 -171
- package/dist/chunks/copy-button.cjs.map +0 -1
- package/dist/chunks/copy-button.js +0 -172
- package/dist/chunks/copy-button.js.map +0 -1
- package/dist/chunks/detail-group.cjs +0 -65
- package/dist/chunks/detail-group.cjs.map +0 -1
- package/dist/chunks/detail-group.js +0 -66
- package/dist/chunks/detail-group.js.map +0 -1
- package/dist/chunks/detail.cjs +0 -146
- package/dist/chunks/detail.cjs.map +0 -1
- package/dist/chunks/detail.js +0 -147
- package/dist/chunks/detail.js.map +0 -1
- package/dist/chunks/dialog.cjs +0 -117
- package/dist/chunks/dialog.cjs.map +0 -1
- package/dist/chunks/dialog.js +0 -118
- package/dist/chunks/dialog.js.map +0 -1
- package/dist/chunks/divider.cjs +0 -80
- package/dist/chunks/divider.cjs.map +0 -1
- package/dist/chunks/divider.js +0 -81
- package/dist/chunks/divider.js.map +0 -1
- package/dist/chunks/drawer.cjs +0 -180
- package/dist/chunks/drawer.cjs.map +0 -1
- package/dist/chunks/drawer.js +0 -181
- package/dist/chunks/drawer.js.map +0 -1
- package/dist/chunks/dropdown-button.cjs +0 -533
- package/dist/chunks/dropdown-button.cjs.map +0 -1
- package/dist/chunks/dropdown-button.js +0 -534
- package/dist/chunks/dropdown-button.js.map +0 -1
- package/dist/chunks/icon-button.cjs +0 -35
- package/dist/chunks/icon-button.cjs.map +0 -1
- package/dist/chunks/icon-button.js +0 -36
- package/dist/chunks/icon-button.js.map +0 -1
- package/dist/chunks/icon.cjs +0 -124
- package/dist/chunks/icon.cjs.map +0 -1
- package/dist/chunks/icon.js +0 -125
- package/dist/chunks/icon.js.map +0 -1
- package/dist/chunks/menu.cjs +0 -396
- package/dist/chunks/menu.cjs.map +0 -1
- package/dist/chunks/menu.js +0 -397
- package/dist/chunks/menu.js.map +0 -1
- package/dist/chunks/navbar.cjs +0 -142
- package/dist/chunks/navbar.cjs.map +0 -1
- package/dist/chunks/navbar.js +0 -143
- package/dist/chunks/navbar.js.map +0 -1
- package/dist/chunks/number-input.cjs +0 -110
- package/dist/chunks/number-input.cjs.map +0 -1
- package/dist/chunks/number-input.js +0 -111
- package/dist/chunks/number-input.js.map +0 -1
- package/dist/chunks/pagination.cjs +0 -475
- package/dist/chunks/pagination.cjs.map +0 -1
- package/dist/chunks/pagination.js +0 -476
- package/dist/chunks/pagination.js.map +0 -1
- package/dist/chunks/progress-bar.cjs +0 -101
- package/dist/chunks/progress-bar.cjs.map +0 -1
- package/dist/chunks/progress-bar.js +0 -102
- package/dist/chunks/progress-bar.js.map +0 -1
- package/dist/chunks/radio.cjs +0 -185
- package/dist/chunks/radio.cjs.map +0 -1
- package/dist/chunks/radio.js +0 -186
- package/dist/chunks/radio.js.map +0 -1
- package/dist/chunks/select.cjs +0 -381
- package/dist/chunks/select.cjs.map +0 -1
- package/dist/chunks/select.js +0 -382
- package/dist/chunks/select.js.map +0 -1
- package/dist/chunks/size.cjs +0 -4
- package/dist/chunks/size.cjs.map +0 -1
- package/dist/chunks/size.js +0 -5
- package/dist/chunks/size.js.map +0 -1
- package/dist/chunks/slider.cjs +0 -608
- package/dist/chunks/slider.cjs.map +0 -1
- package/dist/chunks/slider.js +0 -609
- package/dist/chunks/slider.js.map +0 -1
- package/dist/chunks/spinner.cjs +0 -102
- package/dist/chunks/spinner.cjs.map +0 -1
- package/dist/chunks/spinner.js +0 -103
- package/dist/chunks/spinner.js.map +0 -1
- package/dist/chunks/switch.cjs +0 -167
- package/dist/chunks/switch.cjs.map +0 -1
- package/dist/chunks/switch.js +0 -168
- package/dist/chunks/switch.js.map +0 -1
- package/dist/chunks/tab-panel.cjs +0 -174
- package/dist/chunks/tab-panel.cjs.map +0 -1
- package/dist/chunks/tab-panel.js +0 -175
- package/dist/chunks/tab-panel.js.map +0 -1
- package/dist/chunks/tag.cjs +0 -108
- package/dist/chunks/tag.cjs.map +0 -1
- package/dist/chunks/tag.js +0 -109
- package/dist/chunks/tag.js.map +0 -1
- package/dist/chunks/text-input.cjs +0 -54
- package/dist/chunks/text-input.cjs.map +0 -1
- package/dist/chunks/text-input.js +0 -55
- package/dist/chunks/text-input.js.map +0 -1
- package/dist/chunks/textarea.cjs +0 -137
- package/dist/chunks/textarea.cjs.map +0 -1
- package/dist/chunks/textarea.js +0 -138
- package/dist/chunks/textarea.js.map +0 -1
- package/dist/chunks/tooltip.cjs +0 -292
- package/dist/chunks/tooltip.cjs.map +0 -1
- package/dist/chunks/tooltip.js +0 -293
- package/dist/chunks/tooltip.js.map +0 -1
- package/dist/chunks/tree.cjs +0 -468
- package/dist/chunks/tree.cjs.map +0 -1
- package/dist/chunks/tree.js +0 -469
- package/dist/chunks/tree.js.map +0 -1
- package/dist/chunks/variables.cjs +0 -396
- package/dist/chunks/variables.cjs.map +0 -1
- package/dist/chunks/variables.js +0 -397
- package/dist/chunks/variables.js.map +0 -1
|
@@ -1,475 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const aeico = require("aeico");
|
|
3
|
-
const aeicoComponent = require("./aeico-component.cjs");
|
|
4
|
-
const variables = require("./variables.cjs");
|
|
5
|
-
const size = require("./size.cjs");
|
|
6
|
-
const paginationStyle = `:host {
|
|
7
|
-
display: inline-flex;
|
|
8
|
-
align-items: center;
|
|
9
|
-
font-size: var(--ae-size-m);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
nav {
|
|
13
|
-
display: flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
gap: 4px;
|
|
16
|
-
margin: 0;
|
|
17
|
-
padding: 0;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
button {
|
|
21
|
-
display: inline-flex;
|
|
22
|
-
align-items: center;
|
|
23
|
-
justify-content: center;
|
|
24
|
-
min-width: 2em;
|
|
25
|
-
height: 2em;
|
|
26
|
-
padding: 0 0.5em;
|
|
27
|
-
font-family: inherit;
|
|
28
|
-
font-size: inherit;
|
|
29
|
-
line-height: 1;
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
user-select: none;
|
|
32
|
-
border-radius: var(--ae-border-radius, var(--ae-radius-sm));
|
|
33
|
-
border: 1px solid var(--ae-border-default);
|
|
34
|
-
background: transparent;
|
|
35
|
-
color: var(--ae-color-text-main);
|
|
36
|
-
transition: background 0.15s, border-color 0.15s, color 0.15s;
|
|
37
|
-
outline: none;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
button:focus-visible {
|
|
41
|
-
box-shadow: 0 0 0 2px var(--ae-focus-ring);
|
|
42
|
-
border-color: var(--ae-border-focus);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
button:hover:not(:disabled) {
|
|
46
|
-
border-color: var(--ae-color-primary);
|
|
47
|
-
color: var(--ae-color-primary);
|
|
48
|
-
background: var(--ae-color-primary-bg-subtle);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
button:active:not(:disabled) {
|
|
52
|
-
background: color-mix(in srgb, var(--ae-color-primary-bg-subtle), var(--ae-color-primary) 10%);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
button:disabled {
|
|
56
|
-
opacity: 0.45;
|
|
57
|
-
cursor: not-allowed;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
button.active {
|
|
61
|
-
background: var(--ae-color-primary);
|
|
62
|
-
border-color: var(--ae-color-primary);
|
|
63
|
-
color: white;
|
|
64
|
-
font-weight: 600;
|
|
65
|
-
cursor: default;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
button.active:hover:not(:disabled) {
|
|
69
|
-
background: var(--ae-color-primary-hover);
|
|
70
|
-
border-color: var(--ae-color-primary-hover);
|
|
71
|
-
color: white;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
button.nav-btn {
|
|
75
|
-
min-width: 2em;
|
|
76
|
-
width: 2em;
|
|
77
|
-
padding: 0;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
[part="ellipsis"] {
|
|
81
|
-
display: inline-flex;
|
|
82
|
-
align-items: flex-end;
|
|
83
|
-
justify-content: center;
|
|
84
|
-
min-width: 2em;
|
|
85
|
-
height: 2em;
|
|
86
|
-
color: var(--ae-color-text-muted);
|
|
87
|
-
user-select: none;
|
|
88
|
-
letter-spacing: 0.1em;
|
|
89
|
-
padding-bottom: 0.2em;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
input[part="page-input"] {
|
|
93
|
-
width: 3em;
|
|
94
|
-
height: 2em;
|
|
95
|
-
padding: 0 0.4em;
|
|
96
|
-
text-align: center;
|
|
97
|
-
border: 1px solid var(--ae-border-subtle);
|
|
98
|
-
border-radius: var(--ae-border-radius, var(--ae-border-radius));
|
|
99
|
-
font-size: inherit;
|
|
100
|
-
font-family: inherit;
|
|
101
|
-
color: var(--ae-color-text-main);
|
|
102
|
-
background: var(--ae-surface-base);
|
|
103
|
-
box-shadow: none;
|
|
104
|
-
-webkit-appearance: none;
|
|
105
|
-
-moz-appearance: textfield;
|
|
106
|
-
appearance: textfield;
|
|
107
|
-
outline: none;
|
|
108
|
-
transition: border-color 0.15s, box-shadow 0.15s;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
input[part="page-input"]:hover:not(:disabled) {
|
|
112
|
-
border-color: var(--ae-border-default);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
input[part="page-input"]::-webkit-inner-spin-button,
|
|
116
|
-
input[part="page-input"]::-webkit-outer-spin-button {
|
|
117
|
-
-webkit-appearance: none;
|
|
118
|
-
appearance: none;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
input[part="page-input"]:focus {
|
|
122
|
-
border-color: var(--ae-border-focus);
|
|
123
|
-
box-shadow: 0 0 0 2px var(--ae-focus-ring);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
input[part="page-input"]:disabled {
|
|
127
|
-
opacity: 0.45;
|
|
128
|
-
cursor: not-allowed;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
[part="page-total"] {
|
|
132
|
-
color: var(--ae-color-text-muted);
|
|
133
|
-
white-space: nowrap;
|
|
134
|
-
padding: 0 0.25em;
|
|
135
|
-
line-height: 2em;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/* ── Borderless variant ──────────────────────────────────────────────── */
|
|
139
|
-
:host([variant='borderless']) button {
|
|
140
|
-
border-color: transparent;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
:host([variant='borderless']) button:hover:not(:disabled) {
|
|
144
|
-
border-color: transparent;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
:host([variant='borderless']) button.active {
|
|
148
|
-
border-color: transparent;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
:host([variant='borderless']) input[part='page-input'] {
|
|
152
|
-
border-color: transparent;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
:host([variant='borderless']) input[part='page-input']:hover:not(:disabled) {
|
|
156
|
-
border-color: transparent;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
:host([variant='borderless']) input[part='page-input']:focus {
|
|
160
|
-
border-color: var(--ae-border-focus);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/* ── Link variant ────────────────────────────────────────────────────── */
|
|
164
|
-
:host([variant='link']) button {
|
|
165
|
-
border-color: transparent;
|
|
166
|
-
background: transparent;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
:host([variant='link']) button:hover:not(:disabled) {
|
|
170
|
-
border-color: transparent;
|
|
171
|
-
background: transparent;
|
|
172
|
-
color: var(--ae-color-primary);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
:host([variant='link']) button:active:not(:disabled) {
|
|
176
|
-
background: transparent;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
:host([variant='link']) button:focus-visible {
|
|
180
|
-
border-color: transparent;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
:host([variant='link']) button.active {
|
|
184
|
-
background: transparent;
|
|
185
|
-
border-color: transparent;
|
|
186
|
-
color: var(--ae-color-primary);
|
|
187
|
-
font-weight: 600;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
:host([variant='link']) button.active:hover:not(:disabled) {
|
|
191
|
-
background: transparent;
|
|
192
|
-
color: var(--ae-color-primary);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
:host([variant='link']) input[part='page-input'] {
|
|
196
|
-
border-color: transparent;
|
|
197
|
-
border-bottom-color: var(--ae-border-subtle);
|
|
198
|
-
border-radius: var(--ae-border-radius, var(--ae-radius-sm));
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
:host([variant='link']) input[part='page-input']:hover:not(:disabled) {
|
|
202
|
-
border-color: transparent;
|
|
203
|
-
border-bottom-color: var(--ae-border-default);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
:host([variant='link']) input[part='page-input']:focus {
|
|
207
|
-
border-color: transparent;
|
|
208
|
-
border-bottom-color: var(--ae-border-focus);
|
|
209
|
-
box-shadow: none;
|
|
210
|
-
}
|
|
211
|
-
`;
|
|
212
|
-
var __create = Object.create;
|
|
213
|
-
var __defProp = Object.defineProperty;
|
|
214
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
215
|
-
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
216
|
-
var __typeError = (msg) => {
|
|
217
|
-
throw TypeError(msg);
|
|
218
|
-
};
|
|
219
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
220
|
-
var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
|
|
221
|
-
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
222
|
-
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
223
|
-
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
224
|
-
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
225
|
-
var __runInitializers = (array, flags, self, value) => {
|
|
226
|
-
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
227
|
-
return value;
|
|
228
|
-
};
|
|
229
|
-
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
230
|
-
var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
|
|
231
|
-
var j = array.length + 1, key = __decoratorStrings[k + 5];
|
|
232
|
-
var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
|
|
233
|
-
var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
|
|
234
|
-
return __privateGet(this, extra);
|
|
235
|
-
}, set [name](x) {
|
|
236
|
-
return __privateSet(this, extra, x);
|
|
237
|
-
} }, name));
|
|
238
|
-
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
239
|
-
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
240
|
-
{
|
|
241
|
-
ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
|
|
242
|
-
access.get = (x) => x[name];
|
|
243
|
-
access.set = (x, y) => x[name] = y;
|
|
244
|
-
}
|
|
245
|
-
it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
|
|
246
|
-
if (it === void 0) __expectFn(it) && (desc[key] = it);
|
|
247
|
-
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
248
|
-
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
249
|
-
}
|
|
250
|
-
return desc && __defProp(target, name, desc), target;
|
|
251
|
-
};
|
|
252
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
253
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
254
|
-
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
|
|
255
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
256
|
-
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
257
|
-
var _variant_dec, _showFirstLast_dec, _simple_dec, _disabled_dec, _size_dec, _siblingCount_dec, _pageCount_dec, _total_dec, _pageSize_dec, _page_dec, _a, _init, _page, _pageSize, _total, _pageCount, _siblingCount, _size, _disabled, _simple, _showFirstLast, _variant;
|
|
258
|
-
class Pagination extends (_a = aeicoComponent.AeicoComponent, _page_dec = [aeico.prop({ type: Number })], _pageSize_dec = [aeico.prop({ type: Number })], _total_dec = [aeico.prop({ type: Number })], _pageCount_dec = [aeico.prop({ type: Number })], _siblingCount_dec = [aeico.prop({ type: Number })], _size_dec = [aeico.prop({ type: String })], _disabled_dec = [aeico.prop({ type: Boolean })], _simple_dec = [aeico.prop({ type: Boolean })], _showFirstLast_dec = [aeico.prop({ type: Boolean })], _variant_dec = [aeico.prop({ type: String })], _a) {
|
|
259
|
-
constructor() {
|
|
260
|
-
super(...arguments);
|
|
261
|
-
__privateAdd(this, _page, __runInitializers(_init, 8, this, 1)), __runInitializers(_init, 11, this);
|
|
262
|
-
__privateAdd(this, _pageSize, __runInitializers(_init, 12, this, 10)), __runInitializers(_init, 15, this);
|
|
263
|
-
__privateAdd(this, _total, __runInitializers(_init, 16, this, 0)), __runInitializers(_init, 19, this);
|
|
264
|
-
__privateAdd(this, _pageCount, __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
|
|
265
|
-
__privateAdd(this, _siblingCount, __runInitializers(_init, 24, this, 1)), __runInitializers(_init, 27, this);
|
|
266
|
-
__privateAdd(this, _size, __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
|
|
267
|
-
__privateAdd(this, _disabled, __runInitializers(_init, 32, this, false)), __runInitializers(_init, 35, this);
|
|
268
|
-
__privateAdd(this, _simple, __runInitializers(_init, 36, this, false)), __runInitializers(_init, 39, this);
|
|
269
|
-
__privateAdd(this, _showFirstLast, __runInitializers(_init, 40, this, false)), __runInitializers(_init, 43, this);
|
|
270
|
-
__privateAdd(this, _variant, __runInitializers(_init, 44, this)), __runInitializers(_init, 47, this);
|
|
271
|
-
__publicField(this, "_simpleInput", null);
|
|
272
|
-
__publicField(this, "_handleItemClick", (e) => {
|
|
273
|
-
const btn = e.currentTarget;
|
|
274
|
-
const p = Number(btn.dataset.page);
|
|
275
|
-
if (!isNaN(p)) this._goToPage(p);
|
|
276
|
-
});
|
|
277
|
-
__publicField(this, "_handlePrevClick", () => {
|
|
278
|
-
this._goToPage(this._currentPage - 1);
|
|
279
|
-
});
|
|
280
|
-
__publicField(this, "_handleNextClick", () => {
|
|
281
|
-
this._goToPage(this._currentPage + 1);
|
|
282
|
-
});
|
|
283
|
-
__publicField(this, "_handleFirstClick", () => {
|
|
284
|
-
this._goToPage(1);
|
|
285
|
-
});
|
|
286
|
-
__publicField(this, "_handleLastClick", () => {
|
|
287
|
-
this._goToPage(this._computedPageCount);
|
|
288
|
-
});
|
|
289
|
-
__publicField(this, "_handleSimpleInputChange", (e) => {
|
|
290
|
-
const input = e.target;
|
|
291
|
-
const val = parseInt(input.value, 10);
|
|
292
|
-
if (!isNaN(val)) {
|
|
293
|
-
this._goToPage(val);
|
|
294
|
-
}
|
|
295
|
-
input.value = String(this._currentPage);
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
get _computedPageCount() {
|
|
299
|
-
if (this.pageCount != null) return Math.max(1, this.pageCount);
|
|
300
|
-
const ps = this.pageSize > 0 ? this.pageSize : 10;
|
|
301
|
-
return Math.max(1, Math.ceil(this.total / ps));
|
|
302
|
-
}
|
|
303
|
-
get _currentPage() {
|
|
304
|
-
const count = this._computedPageCount;
|
|
305
|
-
return Math.max(1, Math.min(this.page ?? 1, count));
|
|
306
|
-
}
|
|
307
|
-
_getPageItems() {
|
|
308
|
-
const count = this._computedPageCount;
|
|
309
|
-
const page = this._currentPage;
|
|
310
|
-
const sc = Math.max(0, this.siblingCount ?? 1);
|
|
311
|
-
const rangeStart = Math.max(2, page - sc);
|
|
312
|
-
const rangeEnd = Math.min(count - 1, page + sc);
|
|
313
|
-
const showLeftEllipsis = rangeStart > 2;
|
|
314
|
-
const showRightEllipsis = rangeEnd < count - 1;
|
|
315
|
-
const items = [];
|
|
316
|
-
items.push(1);
|
|
317
|
-
if (count <= 1) return items;
|
|
318
|
-
if (showLeftEllipsis) {
|
|
319
|
-
items.push("ellipsis-start");
|
|
320
|
-
} else {
|
|
321
|
-
for (let i = 2; i < rangeStart; i++) items.push(i);
|
|
322
|
-
}
|
|
323
|
-
for (let i = rangeStart; i <= rangeEnd; i++) items.push(i);
|
|
324
|
-
if (showRightEllipsis) {
|
|
325
|
-
items.push("ellipsis-end");
|
|
326
|
-
} else {
|
|
327
|
-
for (let i = rangeEnd + 1; i < count; i++) items.push(i);
|
|
328
|
-
}
|
|
329
|
-
items.push(count);
|
|
330
|
-
return items;
|
|
331
|
-
}
|
|
332
|
-
_goToPage(page) {
|
|
333
|
-
const count = this._computedPageCount;
|
|
334
|
-
const next = Math.max(1, Math.min(count, page));
|
|
335
|
-
if (next === this._currentPage) return;
|
|
336
|
-
this.page = next;
|
|
337
|
-
this.emit("change", { detail: { page: this.page } });
|
|
338
|
-
}
|
|
339
|
-
onUpdated() {
|
|
340
|
-
if (this._simpleInput) {
|
|
341
|
-
this._simpleInput.value = String(this._currentPage);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
_renderNavBtn(name, iconName, label, disabled, onClick) {
|
|
345
|
-
const { button, slot, aeIcon } = aeico.tags;
|
|
346
|
-
button(
|
|
347
|
-
{
|
|
348
|
-
key: name,
|
|
349
|
-
part: name,
|
|
350
|
-
className: "nav-btn",
|
|
351
|
-
disabled,
|
|
352
|
-
"aria-label": label,
|
|
353
|
-
"@click": onClick
|
|
354
|
-
},
|
|
355
|
-
() => {
|
|
356
|
-
slot({ name }, () => {
|
|
357
|
-
aeIcon({ name: iconName });
|
|
358
|
-
});
|
|
359
|
-
}
|
|
360
|
-
);
|
|
361
|
-
}
|
|
362
|
-
_renderSimpleMode(page, count, disabled) {
|
|
363
|
-
this._simpleInput = aeico.tags.input({
|
|
364
|
-
key: "page-input",
|
|
365
|
-
part: "page-input",
|
|
366
|
-
type: "number",
|
|
367
|
-
min: "1",
|
|
368
|
-
max: String(count),
|
|
369
|
-
value: String(page),
|
|
370
|
-
disabled,
|
|
371
|
-
"aria-label": "Page number",
|
|
372
|
-
"@change": this._handleSimpleInputChange
|
|
373
|
-
});
|
|
374
|
-
aeico.tags.span({ key: "page-total", part: "page-total", textContent: `/ ${count}` });
|
|
375
|
-
}
|
|
376
|
-
_renderPageItems(page, disabled) {
|
|
377
|
-
for (const item of this._getPageItems()) {
|
|
378
|
-
if (item === "ellipsis-start" || item === "ellipsis-end") {
|
|
379
|
-
aeico.tags.span({
|
|
380
|
-
key: item,
|
|
381
|
-
part: "ellipsis",
|
|
382
|
-
className: "ellipsis",
|
|
383
|
-
"aria-hidden": "true",
|
|
384
|
-
textContent: "…"
|
|
385
|
-
});
|
|
386
|
-
} else {
|
|
387
|
-
const isActive = item === page;
|
|
388
|
-
aeico.tags.button({
|
|
389
|
-
key: `item-${item}`,
|
|
390
|
-
part: isActive ? "item item-active" : "item",
|
|
391
|
-
className: isActive ? "item active" : "item",
|
|
392
|
-
disabled,
|
|
393
|
-
"aria-current": isActive ? "page" : void 0,
|
|
394
|
-
"aria-label": `Page ${item}`,
|
|
395
|
-
"data-page": String(item),
|
|
396
|
-
textContent: String(item),
|
|
397
|
-
"@click": this._handleItemClick
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
render() {
|
|
403
|
-
const count = this._computedPageCount;
|
|
404
|
-
const page = this._currentPage;
|
|
405
|
-
const disabled = this.disabled;
|
|
406
|
-
const isFirst = page <= 1;
|
|
407
|
-
const isLast = page >= count;
|
|
408
|
-
return aeico.html(({ nav }) => {
|
|
409
|
-
nav({ part: "root", role: "navigation", "aria-label": "Pagination" }, () => {
|
|
410
|
-
if (this.showFirstLast)
|
|
411
|
-
this._renderNavBtn(
|
|
412
|
-
"first",
|
|
413
|
-
"chevrons-left",
|
|
414
|
-
"First page",
|
|
415
|
-
disabled || isFirst,
|
|
416
|
-
this._handleFirstClick
|
|
417
|
-
);
|
|
418
|
-
this._renderNavBtn(
|
|
419
|
-
"prev",
|
|
420
|
-
"chevron-left",
|
|
421
|
-
"Previous page",
|
|
422
|
-
disabled || isFirst,
|
|
423
|
-
this._handlePrevClick
|
|
424
|
-
);
|
|
425
|
-
if (this.simple) {
|
|
426
|
-
this._renderSimpleMode(page, count, disabled);
|
|
427
|
-
} else {
|
|
428
|
-
this._renderPageItems(page, disabled);
|
|
429
|
-
}
|
|
430
|
-
this._renderNavBtn(
|
|
431
|
-
"next",
|
|
432
|
-
"chevron-right",
|
|
433
|
-
"Next page",
|
|
434
|
-
disabled || isLast,
|
|
435
|
-
this._handleNextClick
|
|
436
|
-
);
|
|
437
|
-
if (this.showFirstLast)
|
|
438
|
-
this._renderNavBtn(
|
|
439
|
-
"last",
|
|
440
|
-
"chevrons-right",
|
|
441
|
-
"Last page",
|
|
442
|
-
disabled || isLast,
|
|
443
|
-
this._handleLastClick
|
|
444
|
-
);
|
|
445
|
-
});
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
_init = __decoratorStart(_a);
|
|
450
|
-
_page = /* @__PURE__ */ new WeakMap();
|
|
451
|
-
_pageSize = /* @__PURE__ */ new WeakMap();
|
|
452
|
-
_total = /* @__PURE__ */ new WeakMap();
|
|
453
|
-
_pageCount = /* @__PURE__ */ new WeakMap();
|
|
454
|
-
_siblingCount = /* @__PURE__ */ new WeakMap();
|
|
455
|
-
_size = /* @__PURE__ */ new WeakMap();
|
|
456
|
-
_disabled = /* @__PURE__ */ new WeakMap();
|
|
457
|
-
_simple = /* @__PURE__ */ new WeakMap();
|
|
458
|
-
_showFirstLast = /* @__PURE__ */ new WeakMap();
|
|
459
|
-
_variant = /* @__PURE__ */ new WeakMap();
|
|
460
|
-
__decorateElement(_init, 4, "page", _page_dec, Pagination, _page);
|
|
461
|
-
__decorateElement(_init, 4, "pageSize", _pageSize_dec, Pagination, _pageSize);
|
|
462
|
-
__decorateElement(_init, 4, "total", _total_dec, Pagination, _total);
|
|
463
|
-
__decorateElement(_init, 4, "pageCount", _pageCount_dec, Pagination, _pageCount);
|
|
464
|
-
__decorateElement(_init, 4, "siblingCount", _siblingCount_dec, Pagination, _siblingCount);
|
|
465
|
-
__decorateElement(_init, 4, "size", _size_dec, Pagination, _size);
|
|
466
|
-
__decorateElement(_init, 4, "disabled", _disabled_dec, Pagination, _disabled);
|
|
467
|
-
__decorateElement(_init, 4, "simple", _simple_dec, Pagination, _simple);
|
|
468
|
-
__decorateElement(_init, 4, "showFirstLast", _showFirstLast_dec, Pagination, _showFirstLast);
|
|
469
|
-
__decorateElement(_init, 4, "variant", _variant_dec, Pagination, _variant);
|
|
470
|
-
__decoratorMetadata(_init, Pagination);
|
|
471
|
-
__publicField(Pagination, "tagName", "pagination");
|
|
472
|
-
__publicField(Pagination, "styles", [variables.variables, size.sizeCSS, paginationStyle]);
|
|
473
|
-
Pagination.register();
|
|
474
|
-
exports.Pagination = Pagination;
|
|
475
|
-
//# sourceMappingURL=pagination.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.cjs","sources":["../../src/pagination/pagination.ts"],"sourcesContent":["import { html, prop, tags } from 'aeico';\nimport type { InferProps } from 'aeico';\nimport AeicoComponent from '../aeico-component';\nimport styleVariables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport paginationStyle from '../styles/components/pagination.css?inline';\nimport type { PaginationSize, PaginationVariant } from './defines';\nimport '../icon/icon';\n\ntype PageItem = number | 'ellipsis-start' | 'ellipsis-end';\n\n/**\n * Pagination component for navigating between pages of content.\n *\n * @prop {number} page - Current page number (1-indexed). Default: 1.\n * @prop {number} pageSize - Number of items per page. Default: 10.\n * @prop {number} total - Total number of items. Used to compute pageCount when pageCount is not set.\n * @prop {number} pageCount - Total number of pages. Overrides total/pageSize calculation when set.\n * @prop {number} siblingCount - Number of page buttons to show on each side of the current page. Default: 1.\n * @prop {'xs'|'sm'|'md'|'lg'} size - Size variant.\n * @prop {boolean} disabled - Disables all interactive controls.\n * @prop {boolean} simple - Simple mode: shows only prev/next buttons and a page number input.\n * @prop {boolean} showFirstLast - Show dedicated first-page and last-page jump buttons.\n * @prop {'borderless'|'link'} variant - Visual variant. `borderless` removes borders; `link` renders page numbers as plain text links with no borders or backgrounds.\n *\n * @event {CustomEvent<{page: number}>} change - Fired when the page changes.\n *\n * @slot prev - Custom content for the previous-page button (default: chevron-left icon).\n * @slot next - Custom content for the next-page button (default: chevron-right icon).\n * @slot first - Custom content for the first-page button (default: chevrons-left icon). Requires showFirstLast.\n * @slot last - Custom content for the last-page button (default: chevrons-right icon). Requires showFirstLast.\n *\n * @csspart root - The outer <nav> element.\n * @csspart prev - The previous-page button.\n * @csspart next - The next-page button.\n * @csspart first - The first-page button (visible when showFirstLast).\n * @csspart last - The last-page button (visible when showFirstLast).\n * @csspart item - A page number button.\n * @csspart ellipsis - An ellipsis span between page groups.\n * @csspart page-input - The page number input in simple mode.\n * @csspart page-total - The \"/ N\" label in simple mode.\n *\n * @example\n * ```html\n * <ae-pagination total=\"100\" page-size=\"10\" page=\"1\"></ae-pagination>\n * ```\n */\nclass Pagination extends AeicoComponent {\n static tagName = 'pagination';\n\n protected static styles = [styleVariables, sizeCSS, paginationStyle];\n\n @prop({ type: Number })\n accessor page: number = 1;\n\n @prop({ type: Number })\n accessor pageSize: number = 10;\n\n @prop({ type: Number })\n accessor total: number = 0;\n\n @prop({ type: Number })\n accessor pageCount: number | undefined;\n\n @prop({ type: Number })\n accessor siblingCount: number = 1;\n\n @prop({ type: String })\n accessor size: PaginationSize | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean = false;\n\n @prop({ type: Boolean })\n accessor simple: boolean = false;\n\n @prop({ type: Boolean })\n accessor showFirstLast: boolean = false;\n\n @prop({ type: String })\n accessor variant: PaginationVariant | undefined;\n\n private _simpleInput: HTMLInputElement | null = null;\n\n private get _computedPageCount(): number {\n if (this.pageCount != null) return Math.max(1, this.pageCount);\n const ps = this.pageSize > 0 ? this.pageSize : 10;\n return Math.max(1, Math.ceil(this.total / ps));\n }\n\n private get _currentPage(): number {\n const count = this._computedPageCount;\n return Math.max(1, Math.min(this.page ?? 1, count));\n }\n\n private _getPageItems(): PageItem[] {\n const count = this._computedPageCount;\n const page = this._currentPage;\n const sc = Math.max(0, this.siblingCount ?? 1);\n\n const rangeStart = Math.max(2, page - sc);\n const rangeEnd = Math.min(count - 1, page + sc);\n\n const showLeftEllipsis = rangeStart > 2;\n const showRightEllipsis = rangeEnd < count - 1;\n\n const items: PageItem[] = [];\n\n // First page always shown\n items.push(1);\n\n if (count <= 1) return items;\n\n // Left side\n if (showLeftEllipsis) {\n items.push('ellipsis-start');\n } else {\n for (let i = 2; i < rangeStart; i++) items.push(i);\n }\n\n // Sibling range (bounded to 2..count-1)\n for (let i = rangeStart; i <= rangeEnd; i++) items.push(i);\n\n // Right side\n if (showRightEllipsis) {\n items.push('ellipsis-end');\n } else {\n for (let i = rangeEnd + 1; i < count; i++) items.push(i);\n }\n\n // Last page always shown\n items.push(count);\n\n return items;\n }\n\n private _goToPage(page: number): void {\n const count = this._computedPageCount;\n const next = Math.max(1, Math.min(count, page));\n if (next === this._currentPage) return;\n this.page = next;\n this.emit('change', { detail: { page: this.page } });\n }\n\n private _handleItemClick = (e: Event): void => {\n const btn = e.currentTarget as HTMLElement;\n const p = Number(btn.dataset.page);\n if (!isNaN(p)) this._goToPage(p);\n };\n\n private _handlePrevClick = (): void => {\n this._goToPage(this._currentPage - 1);\n };\n private _handleNextClick = (): void => {\n this._goToPage(this._currentPage + 1);\n };\n private _handleFirstClick = (): void => {\n this._goToPage(1);\n };\n private _handleLastClick = (): void => {\n this._goToPage(this._computedPageCount);\n };\n\n private _handleSimpleInputChange = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n const val = parseInt(input.value, 10);\n if (!isNaN(val)) {\n this._goToPage(val);\n }\n\n input.value = String(this._currentPage);\n };\n\n protected onUpdated(): void {\n if (this._simpleInput) {\n this._simpleInput.value = String(this._currentPage);\n }\n }\n\n private _renderNavBtn(\n name: 'first' | 'prev' | 'next' | 'last',\n iconName: string,\n label: string,\n disabled: boolean,\n onClick: () => void,\n ): void {\n const { button, slot, aeIcon } = tags;\n\n button(\n {\n key: name,\n part: name,\n className: 'nav-btn',\n disabled,\n 'aria-label': label,\n '@click': onClick,\n },\n () => {\n slot({ name }, () => {\n aeIcon({ name: iconName });\n });\n },\n );\n }\n\n private _renderSimpleMode(page: number, count: number, disabled: boolean): void {\n this._simpleInput = tags.input({\n key: 'page-input',\n part: 'page-input',\n type: 'number',\n min: '1',\n max: String(count),\n value: String(page),\n disabled,\n 'aria-label': 'Page number',\n '@change': this._handleSimpleInputChange,\n });\n tags.span({ key: 'page-total', part: 'page-total', textContent: `/ ${count}` });\n }\n\n private _renderPageItems(page: number, disabled: boolean): void {\n for (const item of this._getPageItems()) {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n tags.span({\n key: item,\n part: 'ellipsis',\n className: 'ellipsis',\n 'aria-hidden': 'true',\n textContent: '…',\n });\n } else {\n const isActive = item === page;\n tags.button({\n key: `item-${item}`,\n part: isActive ? 'item item-active' : 'item',\n className: isActive ? 'item active' : 'item',\n disabled,\n 'aria-current': isActive ? 'page' : undefined,\n 'aria-label': `Page ${item}`,\n 'data-page': String(item),\n textContent: String(item),\n '@click': this._handleItemClick,\n });\n }\n }\n }\n\n protected render() {\n const count = this._computedPageCount;\n const page = this._currentPage;\n const disabled = this.disabled;\n const isFirst = page <= 1;\n const isLast = page >= count;\n\n return html(({ nav }) => {\n nav({ part: 'root', role: 'navigation', 'aria-label': 'Pagination' }, () => {\n if (this.showFirstLast)\n this._renderNavBtn(\n 'first',\n 'chevrons-left',\n 'First page',\n disabled || isFirst,\n this._handleFirstClick,\n );\n\n this._renderNavBtn(\n 'prev',\n 'chevron-left',\n 'Previous page',\n disabled || isFirst,\n this._handlePrevClick,\n );\n\n if (this.simple) {\n this._renderSimpleMode(page, count, disabled);\n } else {\n this._renderPageItems(page, disabled);\n }\n\n this._renderNavBtn(\n 'next',\n 'chevron-right',\n 'Next page',\n disabled || isLast,\n this._handleNextClick,\n );\n\n if (this.showFirstLast)\n this._renderNavBtn(\n 'last',\n 'chevrons-right',\n 'Last page',\n disabled || isLast,\n this._handleLastClick,\n );\n });\n });\n }\n}\n\nPagination.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-pagination': Pagination;\n }\n}\n\nexport default Pagination;\nexport type PaginationProps = InferProps<typeof Pagination>;\n"],"names":["AeicoComponent","prop","tags","html","styleVariables","sizeCSS"],"mappings":"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"}
|