bj-web-components 0.2.27 → 0.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +51 -1
- package/dist/index.mjs +49 -49
- package/dist/style.css +3744 -1
- package/dist/web/BasicInput/BInput.js +208 -1
- package/dist/web/BasicInput/BInput.mjs +164 -132
- package/dist/web/BasicInput/utils.js +47 -1
- package/dist/web/BasicInput/utils.mjs +38 -28
- package/dist/web/CategoryDropdown/CategoryDropdown.js +307 -1
- package/dist/web/CategoryDropdown/CategoryDropdown.mjs +218 -170
- package/dist/web/CheckBox/BCheckBox.js +116 -1
- package/dist/web/CheckBox/BCheckBox.mjs +86 -70
- package/dist/web/CheckBox/Group.js +73 -1
- package/dist/web/CheckBox/Group.mjs +63 -56
- package/dist/web/CheckBox/context.js +5 -1
- package/dist/web/CheckBox/context.mjs +3 -3
- package/dist/web/CheckBox/index.js +8 -1
- package/dist/web/CheckBox/index.mjs +6 -6
- package/dist/web/Dropdown/BDropdown.js +186 -1
- package/dist/web/Dropdown/BDropdown.mjs +132 -106
- package/dist/web/EmptyInputBox/EmptyInputBox.js +77 -1
- package/dist/web/EmptyInputBox/EmptyInputBox.mjs +52 -48
- package/dist/web/FileCard/FileCard.js +157 -1
- package/dist/web/FileCard/FileCard.mjs +112 -82
- package/dist/web/Icon/Icon.js +9 -1
- package/dist/web/Icon/Icon.mjs +6 -6
- package/dist/web/Input/Input.js +181 -1
- package/dist/web/Input/Input.mjs +122 -113
- package/dist/web/InputNumber/BInputNumber.js +311 -1
- package/dist/web/InputNumber/BInputNumber.mjs +275 -167
- package/dist/web/InputNumber/StepHandler.js +69 -1
- package/dist/web/InputNumber/StepHandler.mjs +38 -32
- package/dist/web/InputNumber/hooks/useCursor.js +40 -1
- package/dist/web/InputNumber/hooks/useCursor.mjs +35 -33
- package/dist/web/InputNumber/hooks/useFrame.js +12 -1
- package/dist/web/InputNumber/hooks/useFrame.mjs +9 -6
- package/dist/web/InputNumber/utils/decimal.js +147 -1
- package/dist/web/InputNumber/utils/decimal.mjs +109 -81
- package/dist/web/Modal/Modal.js +84 -1
- package/dist/web/Modal/Modal.mjs +52 -49
- package/dist/web/OverlayScrollbar/BOverlayScrollbar.js +232 -1
- package/dist/web/OverlayScrollbar/BOverlayScrollbar.mjs +206 -125
- package/dist/web/Pagination/Pagination.js +328 -1
- package/dist/web/Pagination/Pagination.mjs +254 -178
- package/dist/web/ProductField/ProductField.js +272 -1
- package/dist/web/ProductField/ProductField.mjs +190 -143
- package/dist/web/ProductField/arrow-up.svg.js +3 -1
- package/dist/web/ProductField/arrow-up.svg.mjs +2 -2
- package/dist/web/ProductField/checkbox-no.svg.js +3 -1
- package/dist/web/ProductField/checkbox-no.svg.mjs +2 -2
- package/dist/web/ProductField/checkbox-ok.svg.js +3 -1
- package/dist/web/ProductField/checkbox-ok.svg.mjs +2 -2
- package/dist/web/ProductField/no_data_light.svg.js +3 -1
- package/dist/web/ProductField/no_data_light.svg.mjs +2 -2
- package/dist/web/ProductField/search.svg.js +3 -1
- package/dist/web/ProductField/search.svg.mjs +2 -2
- package/dist/web/ProductField/sort.svg.js +3 -1
- package/dist/web/ProductField/sort.svg.mjs +2 -2
- package/dist/web/SkuInputCard/SkuInputCard.js +276 -1
- package/dist/web/SkuInputCard/SkuInputCard.mjs +188 -149
- package/dist/web/SkuInputCard/spin_loading_red.gif.js +3 -1
- package/dist/web/SkuInputCard/spin_loading_red.gif.mjs +2 -2
- package/dist/web/Switch/Switch.js +70 -1
- package/dist/web/Switch/Switch.mjs +47 -37
- package/dist/web/Table/BTable.js +950 -1
- package/dist/web/Table/BTable.mjs +771 -519
- package/dist/web/Table/Column.js +5 -1
- package/dist/web/Table/Column.mjs +2 -2
- package/dist/web/Table/ColumnGroup.js +5 -1
- package/dist/web/Table/ColumnGroup.mjs +2 -2
- package/dist/web/Table/utils/columns.js +48 -1
- package/dist/web/Table/utils/columns.mjs +35 -30
- package/dist/web/Table/utils/sortFilter.js +84 -1
- package/dist/web/Table/utils/sortFilter.mjs +73 -52
- package/dist/web/Tabs/BTabs.js +150 -1
- package/dist/web/Tabs/BTabs.mjs +118 -98
- package/dist/web/Tabs/TabPane.js +8 -1
- package/dist/web/Tabs/TabPane.mjs +4 -4
- package/dist/web/Tooltip/ConfirmTooltip.js +26 -1
- package/dist/web/Tooltip/ConfirmTooltip.mjs +20 -19
- package/dist/web/Tooltip/ContentTooltip.js +94 -1
- package/dist/web/Tooltip/ContentTooltip.mjs +72 -62
- package/dist/web/Tooltip/ProgressTooltip.js +36 -1
- package/dist/web/Tooltip/ProgressTooltip.mjs +22 -20
- package/dist/web/Tooltip/TooltipWrapper.js +12 -1
- package/dist/web/Tooltip/TooltipWrapper.mjs +8 -8
- package/dist/web/Tooltip/useAutoPlacement.js +41 -1
- package/dist/web/Tooltip/useAutoPlacement.mjs +34 -25
- package/dist/web.js +51 -1
- package/dist/web.mjs +49 -49
- package/package.json +1 -1
|
@@ -1,253 +1,329 @@
|
|
|
1
|
-
import { jsx
|
|
2
|
-
import { useState
|
|
3
|
-
import { createPortal
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useEffect, useMemo } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
4
|
/* empty css */
|
|
5
|
-
function
|
|
6
|
-
triggerRect
|
|
7
|
-
dropdownHeight
|
|
8
|
-
viewportHeight
|
|
5
|
+
function defaultResolvePopupPlacement({
|
|
6
|
+
triggerRect,
|
|
7
|
+
dropdownHeight,
|
|
8
|
+
viewportHeight
|
|
9
9
|
}) {
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const spaceBelow = viewportHeight - triggerRect.bottom;
|
|
11
|
+
const spaceAbove = triggerRect.top;
|
|
12
|
+
return spaceBelow < dropdownHeight && spaceAbove >= dropdownHeight ? "top" : "bottom";
|
|
12
13
|
}
|
|
13
|
-
const
|
|
14
|
+
const Pagination = (props) => {
|
|
14
15
|
const {
|
|
15
|
-
current:
|
|
16
|
-
defaultCurrent
|
|
17
|
-
pageSize:
|
|
18
|
-
defaultPageSize
|
|
19
|
-
total
|
|
20
|
-
onChange
|
|
21
|
-
onShowSizeChange
|
|
22
|
-
showSizeChanger
|
|
23
|
-
showQuickJumper
|
|
24
|
-
pageSizeOptions
|
|
25
|
-
disabled
|
|
26
|
-
hideOnSinglePage
|
|
27
|
-
showTotal
|
|
28
|
-
size
|
|
29
|
-
align
|
|
30
|
-
simple
|
|
31
|
-
popupPlacement
|
|
32
|
-
resolvePopupPlacement
|
|
33
|
-
dropdownClassName
|
|
34
|
-
t
|
|
35
|
-
className
|
|
36
|
-
style
|
|
37
|
-
} =
|
|
38
|
-
|
|
16
|
+
current: controlledCurrent,
|
|
17
|
+
defaultCurrent = 1,
|
|
18
|
+
pageSize: controlledPageSize,
|
|
19
|
+
defaultPageSize = 10,
|
|
20
|
+
total = 0,
|
|
21
|
+
onChange,
|
|
22
|
+
onShowSizeChange,
|
|
23
|
+
showSizeChanger = false,
|
|
24
|
+
showQuickJumper = false,
|
|
25
|
+
pageSizeOptions = [10, 20, 50, 100],
|
|
26
|
+
disabled = false,
|
|
27
|
+
hideOnSinglePage = false,
|
|
28
|
+
showTotal,
|
|
29
|
+
size = "medium",
|
|
30
|
+
align = "start",
|
|
31
|
+
simple = false,
|
|
32
|
+
popupPlacement,
|
|
33
|
+
resolvePopupPlacement,
|
|
34
|
+
dropdownClassName,
|
|
35
|
+
t = (text) => text,
|
|
36
|
+
className,
|
|
37
|
+
style
|
|
38
|
+
} = props;
|
|
39
|
+
const [internalCurrent, setInternalCurrent] = useState(defaultCurrent);
|
|
40
|
+
const [internalPageSize, setInternalPageSize] = useState(defaultPageSize);
|
|
41
|
+
const [isSizeDropdownOpen, setIsSizeDropdownOpen] = useState(false);
|
|
42
|
+
const [dropdownPlacement, setDropdownPlacement] = useState("bottom");
|
|
43
|
+
const [dropdownAnchor, setDropdownAnchor] = useState(null);
|
|
44
|
+
const sizeDropdownRef = useRef(null);
|
|
45
|
+
const dropdownPortalRef = useRef(null);
|
|
46
|
+
const current = controlledCurrent ?? internalCurrent;
|
|
47
|
+
const pageSize = controlledPageSize ?? internalPageSize;
|
|
48
|
+
const totalPages = Math.ceil(total / pageSize);
|
|
49
|
+
if (hideOnSinglePage && totalPages <= 1) {
|
|
39
50
|
return null;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
}
|
|
52
|
+
const handlePageChange = (page) => {
|
|
53
|
+
if (disabled || page < 1 || page > totalPages || page === current) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (controlledCurrent === void 0) {
|
|
57
|
+
setInternalCurrent(page);
|
|
58
|
+
}
|
|
59
|
+
onChange == null ? void 0 : onChange(page, pageSize);
|
|
60
|
+
};
|
|
61
|
+
const handlePageSizeChange = (newPageSize) => {
|
|
62
|
+
const newTotalPages = Math.ceil(total / newPageSize);
|
|
63
|
+
const newCurrent = Math.min(current, newTotalPages) || 1;
|
|
64
|
+
if (controlledPageSize === void 0) {
|
|
65
|
+
setInternalPageSize(newPageSize);
|
|
66
|
+
if (controlledCurrent === void 0) {
|
|
67
|
+
setInternalCurrent(newCurrent);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onShowSizeChange == null ? void 0 : onShowSizeChange(newCurrent, newPageSize);
|
|
71
|
+
onChange == null ? void 0 : onChange(newCurrent, newPageSize);
|
|
72
|
+
};
|
|
73
|
+
const updateDropdownPosition = (placement) => {
|
|
74
|
+
if (!sizeDropdownRef.current) return;
|
|
75
|
+
const triggerRect = sizeDropdownRef.current.getBoundingClientRect();
|
|
76
|
+
setDropdownAnchor({
|
|
77
|
+
left: triggerRect.left + triggerRect.width / 2,
|
|
78
|
+
top: placement === "bottom" ? triggerRect.bottom + 4 : triggerRect.top - 4
|
|
51
79
|
});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
80
|
+
};
|
|
81
|
+
const toggleSizeDropdown = () => {
|
|
82
|
+
if (disabled) return;
|
|
83
|
+
if (isSizeDropdownOpen) {
|
|
84
|
+
setIsSizeDropdownOpen(false);
|
|
56
85
|
return;
|
|
57
86
|
}
|
|
58
|
-
let
|
|
59
|
-
if (
|
|
60
|
-
const
|
|
61
|
-
|
|
87
|
+
let placement = dropdownPlacement;
|
|
88
|
+
if (popupPlacement === void 0 && sizeDropdownRef.current) {
|
|
89
|
+
const triggerRect = sizeDropdownRef.current.getBoundingClientRect();
|
|
90
|
+
const dropdownHeight = pageSizeOptions.length * 40 + 8;
|
|
91
|
+
const viewportHeight = window.innerHeight;
|
|
92
|
+
placement = (resolvePopupPlacement == null ? void 0 : resolvePopupPlacement({ triggerRect, dropdownHeight, viewportHeight })) ?? defaultResolvePopupPlacement({ triggerRect, dropdownHeight, viewportHeight });
|
|
93
|
+
setDropdownPlacement(placement);
|
|
62
94
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Y(t), g(!1);
|
|
95
|
+
updateDropdownPosition(popupPlacement ?? placement);
|
|
96
|
+
setIsSizeDropdownOpen(true);
|
|
66
97
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
98
|
+
const handleSizeOptionClick = (newPageSize) => {
|
|
99
|
+
handlePageSizeChange(newPageSize);
|
|
100
|
+
setIsSizeDropdownOpen(false);
|
|
101
|
+
};
|
|
102
|
+
useEffect(() => {
|
|
103
|
+
const handleClickOutside = (event) => {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
const target = event.target;
|
|
106
|
+
if (((_a = sizeDropdownRef.current) == null ? void 0 : _a.contains(target)) || ((_b = dropdownPortalRef.current) == null ? void 0 : _b.contains(target))) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
setIsSizeDropdownOpen(false);
|
|
110
|
+
};
|
|
111
|
+
const handleScroll = () => setIsSizeDropdownOpen(false);
|
|
112
|
+
const handleResize = () => updateDropdownPosition(popupPlacement ?? dropdownPlacement);
|
|
113
|
+
if (isSizeDropdownOpen) {
|
|
114
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
115
|
+
document.addEventListener("scroll", handleScroll, true);
|
|
116
|
+
window.addEventListener("resize", handleResize);
|
|
117
|
+
return () => {
|
|
118
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
119
|
+
document.removeEventListener("scroll", handleScroll, true);
|
|
120
|
+
window.removeEventListener("resize", handleResize);
|
|
76
121
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
for (let e = s - 4; e <= s; e++)
|
|
93
|
-
t.push(e);
|
|
122
|
+
}
|
|
123
|
+
}, [isSizeDropdownOpen, popupPlacement, dropdownPlacement]);
|
|
124
|
+
const handleQuickJump = (e) => {
|
|
125
|
+
const value = parseInt(e.target.value);
|
|
126
|
+
if (!isNaN(value) && value >= 1 && value <= totalPages) {
|
|
127
|
+
handlePageChange(value);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
const pageNumbers = useMemo(() => {
|
|
131
|
+
const pages = [];
|
|
132
|
+
const showEllipsisThreshold = 7;
|
|
133
|
+
if (totalPages <= showEllipsisThreshold) {
|
|
134
|
+
for (let i = 1; i <= totalPages; i++) {
|
|
135
|
+
pages.push(i);
|
|
136
|
+
}
|
|
94
137
|
} else {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
138
|
+
if (current <= 4) {
|
|
139
|
+
for (let i = 1; i <= 5; i++) {
|
|
140
|
+
pages.push(i);
|
|
141
|
+
}
|
|
142
|
+
pages.push("...");
|
|
143
|
+
pages.push(totalPages);
|
|
144
|
+
} else if (current >= totalPages - 3) {
|
|
145
|
+
pages.push(1);
|
|
146
|
+
pages.push("...");
|
|
147
|
+
for (let i = totalPages - 4; i <= totalPages; i++) {
|
|
148
|
+
pages.push(i);
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
pages.push(1);
|
|
152
|
+
pages.push("...");
|
|
153
|
+
for (let i = current - 1; i <= current + 1; i++) {
|
|
154
|
+
pages.push(i);
|
|
155
|
+
}
|
|
156
|
+
pages.push("...");
|
|
157
|
+
pages.push(totalPages);
|
|
158
|
+
}
|
|
99
159
|
}
|
|
100
|
-
return
|
|
101
|
-
}, [
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
t
|
|
111
|
-
);
|
|
112
|
-
return F ? /* @__PURE__ */ i(
|
|
113
|
-
"div",
|
|
114
|
-
{
|
|
115
|
-
className: `pagination pagination-simple ${j} ${E || ""}`,
|
|
116
|
-
style: B,
|
|
117
|
-
children: /* @__PURE__ */ a("div", { className: "pagination-simple-list", children: [
|
|
118
|
-
/* @__PURE__ */ i(
|
|
119
|
-
"button",
|
|
120
|
-
{
|
|
121
|
-
type: "button",
|
|
122
|
-
className: "pagination-simple-item pagination-simple-prev",
|
|
123
|
-
onClick: () => h(o - 1),
|
|
124
|
-
disabled: l || o === 1,
|
|
125
|
-
children: /* @__PURE__ */ i("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ i("path", { d: "M8 2L4 6L8 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
126
|
-
}
|
|
127
|
-
),
|
|
128
|
-
/* @__PURE__ */ a("span", { className: "pagination-simple-text", children: [
|
|
129
|
-
o,
|
|
130
|
-
" / ",
|
|
131
|
-
s || 0
|
|
132
|
-
] }),
|
|
133
|
-
/* @__PURE__ */ i(
|
|
134
|
-
"button",
|
|
135
|
-
{
|
|
136
|
-
type: "button",
|
|
137
|
-
className: "pagination-simple-item pagination-simple-next",
|
|
138
|
-
onClick: () => h(o + 1),
|
|
139
|
-
disabled: l || o === s,
|
|
140
|
-
children: /* @__PURE__ */ i("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ i("path", { d: "M4 2L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
141
|
-
}
|
|
142
|
-
)
|
|
143
|
-
] })
|
|
160
|
+
return pages;
|
|
161
|
+
}, [current, totalPages]);
|
|
162
|
+
const rangeStart = (current - 1) * pageSize + 1;
|
|
163
|
+
const rangeEnd = Math.min(current * pageSize, total);
|
|
164
|
+
const sizeClass = `pagination-${size}`;
|
|
165
|
+
const alignClass = `pagination-${align}`;
|
|
166
|
+
const disabledClass = disabled ? "pagination-disabled" : "";
|
|
167
|
+
const renderPageItem = (page, index) => {
|
|
168
|
+
if (page === "...") {
|
|
169
|
+
return /* @__PURE__ */ jsx("span", { className: "pagination-item pagination-ellipsis", children: "..." }, `ellipsis-${index}`);
|
|
144
170
|
}
|
|
145
|
-
|
|
171
|
+
const isActive = page === current;
|
|
172
|
+
const activeClass = isActive ? "pagination-item-active" : "";
|
|
173
|
+
return /* @__PURE__ */ jsx(
|
|
174
|
+
"button",
|
|
175
|
+
{
|
|
176
|
+
type: "button",
|
|
177
|
+
className: `pagination-item ${activeClass}`,
|
|
178
|
+
onClick: () => handlePageChange(page),
|
|
179
|
+
disabled,
|
|
180
|
+
children: page
|
|
181
|
+
},
|
|
182
|
+
page
|
|
183
|
+
);
|
|
184
|
+
};
|
|
185
|
+
if (simple) {
|
|
186
|
+
return /* @__PURE__ */ jsx(
|
|
187
|
+
"div",
|
|
188
|
+
{
|
|
189
|
+
className: `pagination pagination-simple ${disabledClass} ${className || ""}`,
|
|
190
|
+
style,
|
|
191
|
+
children: /* @__PURE__ */ jsxs("div", { className: "pagination-simple-list", children: [
|
|
192
|
+
/* @__PURE__ */ jsx(
|
|
193
|
+
"button",
|
|
194
|
+
{
|
|
195
|
+
type: "button",
|
|
196
|
+
className: "pagination-simple-item pagination-simple-prev",
|
|
197
|
+
onClick: () => handlePageChange(current - 1),
|
|
198
|
+
disabled: disabled || current === 1,
|
|
199
|
+
children: /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M8 2L4 6L8 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
200
|
+
}
|
|
201
|
+
),
|
|
202
|
+
/* @__PURE__ */ jsxs("span", { className: "pagination-simple-text", children: [
|
|
203
|
+
current,
|
|
204
|
+
" / ",
|
|
205
|
+
totalPages || 0
|
|
206
|
+
] }),
|
|
207
|
+
/* @__PURE__ */ jsx(
|
|
208
|
+
"button",
|
|
209
|
+
{
|
|
210
|
+
type: "button",
|
|
211
|
+
className: "pagination-simple-item pagination-simple-next",
|
|
212
|
+
onClick: () => handlePageChange(current + 1),
|
|
213
|
+
disabled: disabled || current === totalPages,
|
|
214
|
+
children: /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M4 2L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
215
|
+
}
|
|
216
|
+
)
|
|
217
|
+
] })
|
|
218
|
+
}
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
return /* @__PURE__ */ jsxs(
|
|
146
222
|
"div",
|
|
147
223
|
{
|
|
148
|
-
className: `pagination ${
|
|
149
|
-
style
|
|
224
|
+
className: `pagination ${sizeClass} ${alignClass} ${disabledClass} ${className || ""}`,
|
|
225
|
+
style,
|
|
150
226
|
children: [
|
|
151
|
-
|
|
152
|
-
/* @__PURE__ */
|
|
153
|
-
/* @__PURE__ */
|
|
227
|
+
showTotal && /* @__PURE__ */ jsx("div", { className: "pagination-total", children: showTotal(total, [rangeStart, rangeEnd]) }),
|
|
228
|
+
/* @__PURE__ */ jsxs("div", { className: "pagination-list", children: [
|
|
229
|
+
/* @__PURE__ */ jsx(
|
|
154
230
|
"button",
|
|
155
231
|
{
|
|
156
232
|
type: "button",
|
|
157
233
|
className: "pagination-item pagination-prev",
|
|
158
|
-
onClick: () =>
|
|
159
|
-
disabled:
|
|
160
|
-
children: /* @__PURE__ */
|
|
161
|
-
/* @__PURE__ */
|
|
162
|
-
/* @__PURE__ */
|
|
234
|
+
onClick: () => handlePageChange(current - 1),
|
|
235
|
+
disabled: disabled || current === 1,
|
|
236
|
+
children: /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
237
|
+
/* @__PURE__ */ jsx("path", { d: "M11.1749 5.57516C11.3377 5.41245 11.6014 5.41245 11.7641 5.57516C11.9268 5.73788 11.9268 6.00164 11.7641 6.16436L7.8945 10.034L11.7617 13.8366C11.9257 13.998 11.9279 14.2617 11.7666 14.4258C11.6052 14.5899 11.3414 14.592 11.1774 14.4307L7.2105 10.5299C6.93541 10.2594 6.93349 9.81648 7.20629 9.54367L11.1749 5.57516Z", fill: "#333333" }),
|
|
238
|
+
/* @__PURE__ */ jsx("path", { d: "M11.1749 5.57516C11.3377 5.41245 11.6014 5.41245 11.7641 5.57516C11.9268 5.73788 11.9268 6.00164 11.7641 6.16436L7.8945 10.034L11.7617 13.8366C11.9257 13.998 11.9279 14.2617 11.7666 14.4258C11.6052 14.5899 11.3414 14.592 11.1774 14.4307L7.2105 10.5299C6.93541 10.2594 6.93349 9.81648 7.20629 9.54367L11.1749 5.57516Z", fill: "black", fillOpacity: "0.2" })
|
|
163
239
|
] })
|
|
164
240
|
}
|
|
165
241
|
),
|
|
166
|
-
|
|
167
|
-
/* @__PURE__ */
|
|
242
|
+
pageNumbers.map((page, index) => renderPageItem(page, index)),
|
|
243
|
+
/* @__PURE__ */ jsx(
|
|
168
244
|
"button",
|
|
169
245
|
{
|
|
170
246
|
type: "button",
|
|
171
247
|
className: "pagination-item pagination-next",
|
|
172
|
-
onClick: () =>
|
|
173
|
-
disabled:
|
|
174
|
-
children: /* @__PURE__ */
|
|
175
|
-
/* @__PURE__ */
|
|
176
|
-
/* @__PURE__ */
|
|
248
|
+
onClick: () => handlePageChange(current + 1),
|
|
249
|
+
disabled: disabled || current === totalPages,
|
|
250
|
+
children: /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
251
|
+
/* @__PURE__ */ jsx("path", { d: "M8.82507 5.57516C8.66235 5.41245 8.39859 5.41245 8.23587 5.57516C8.07315 5.73788 8.07315 6.00164 8.23587 6.16436L12.1055 10.034L8.23831 13.8366C8.07427 13.998 8.0721 14.2617 8.23343 14.4258C8.39478 14.5899 8.65856 14.592 8.82262 14.4307L12.7895 10.5299C13.0646 10.2594 13.0665 9.81648 12.7937 9.54367L8.82507 5.57516Z", fill: "#333333" }),
|
|
252
|
+
/* @__PURE__ */ jsx("path", { d: "M8.82507 5.57516C8.66235 5.41245 8.39859 5.41245 8.23587 5.57516C8.07315 5.73788 8.07315 6.00164 8.23587 6.16436L12.1055 10.034L8.23831 13.8366C8.07427 13.998 8.0721 14.2617 8.23343 14.4258C8.39478 14.5899 8.65856 14.592 8.82262 14.4307L12.7895 10.5299C13.0646 10.2594 13.0665 9.81648 12.7937 9.54367L8.82507 5.57516Z", fill: "black", "fill-opacity": "0.2" })
|
|
177
253
|
] })
|
|
178
254
|
}
|
|
179
255
|
)
|
|
180
256
|
] }),
|
|
181
|
-
|
|
182
|
-
/* @__PURE__ */
|
|
257
|
+
showSizeChanger && /* @__PURE__ */ jsxs("div", { className: "pagination-sizer", ref: sizeDropdownRef, children: [
|
|
258
|
+
/* @__PURE__ */ jsxs(
|
|
183
259
|
"button",
|
|
184
260
|
{
|
|
185
261
|
type: "button",
|
|
186
262
|
className: "pagination-sizer-select",
|
|
187
|
-
onClick:
|
|
188
|
-
disabled
|
|
263
|
+
onClick: toggleSizeDropdown,
|
|
264
|
+
disabled,
|
|
189
265
|
children: [
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
/* @__PURE__ */
|
|
193
|
-
/* @__PURE__ */
|
|
194
|
-
/* @__PURE__ */
|
|
266
|
+
pageSize,
|
|
267
|
+
t("条/页"),
|
|
268
|
+
/* @__PURE__ */ jsxs("svg", { className: `pagination-sizer-icon${isSizeDropdownOpen ? " pagination-sizer-icon-open" : ""}`, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
269
|
+
/* @__PURE__ */ jsx("path", { d: "M5.57321 8.828C5.41049 8.66528 5.41049 8.40152 5.57321 8.2388C5.73593 8.07608 5.99969 8.07608 6.1624 8.2388L10.032 12.1084L13.8347 8.24124C13.996 8.0772 14.2598 8.07503 14.4239 8.23636C14.5879 8.39771 14.5901 8.66149 14.4287 8.82555L10.5279 12.7924C10.2574 13.0675 9.81452 13.0694 9.54172 12.7966L5.57321 8.828Z", fill: "#333333" }),
|
|
270
|
+
/* @__PURE__ */ jsx("path", { d: "M5.57321 8.828C5.41049 8.66528 5.41049 8.40152 5.57321 8.2388C5.73593 8.07608 5.99969 8.07608 6.1624 8.2388L10.032 12.1084L13.8347 8.24124C13.996 8.0772 14.2598 8.07503 14.4239 8.23636C14.5879 8.39771 14.5901 8.66149 14.4287 8.82555L10.5279 12.7924C10.2574 13.0675 9.81452 13.0694 9.54172 12.7966L5.57321 8.828Z", fill: "black", fillOpacity: "0.2" })
|
|
195
271
|
] })
|
|
196
272
|
]
|
|
197
273
|
}
|
|
198
274
|
),
|
|
199
|
-
|
|
200
|
-
/* @__PURE__ */
|
|
275
|
+
isSizeDropdownOpen && dropdownAnchor && createPortal(
|
|
276
|
+
/* @__PURE__ */ jsx(
|
|
201
277
|
"div",
|
|
202
278
|
{
|
|
203
|
-
ref:
|
|
204
|
-
className: `pagination-sizer-dropdown pagination-sizer-dropdown-${
|
|
279
|
+
ref: dropdownPortalRef,
|
|
280
|
+
className: `pagination-sizer-dropdown pagination-sizer-dropdown-${popupPlacement ?? dropdownPlacement}${dropdownClassName ? ` ${dropdownClassName}` : ""}`,
|
|
205
281
|
style: {
|
|
206
282
|
position: "fixed",
|
|
207
|
-
left:
|
|
208
|
-
top:
|
|
283
|
+
left: dropdownAnchor.left,
|
|
284
|
+
top: dropdownAnchor.top,
|
|
209
285
|
zIndex: 99999,
|
|
210
|
-
transform: (
|
|
286
|
+
transform: (popupPlacement ?? dropdownPlacement) === "bottom" ? "translate(-50%, 0)" : "translate(-50%, -100%)"
|
|
211
287
|
},
|
|
212
|
-
children:
|
|
288
|
+
children: pageSizeOptions.map((size2) => /* @__PURE__ */ jsxs(
|
|
213
289
|
"button",
|
|
214
290
|
{
|
|
215
291
|
type: "button",
|
|
216
292
|
className: "pagination-sizer-option",
|
|
217
|
-
onClick: () =>
|
|
218
|
-
"data-selected":
|
|
293
|
+
onClick: () => handleSizeOptionClick(size2),
|
|
294
|
+
"data-selected": size2 === pageSize,
|
|
219
295
|
children: [
|
|
220
|
-
|
|
221
|
-
|
|
296
|
+
size2,
|
|
297
|
+
t("条/页")
|
|
222
298
|
]
|
|
223
299
|
},
|
|
224
|
-
|
|
300
|
+
size2
|
|
225
301
|
))
|
|
226
302
|
}
|
|
227
303
|
),
|
|
228
304
|
document.body
|
|
229
305
|
)
|
|
230
306
|
] }),
|
|
231
|
-
|
|
232
|
-
/* @__PURE__ */
|
|
233
|
-
/* @__PURE__ */
|
|
307
|
+
showQuickJumper && /* @__PURE__ */ jsxs("div", { className: "pagination-jumper", children: [
|
|
308
|
+
/* @__PURE__ */ jsx("span", { children: t("跳至") }),
|
|
309
|
+
/* @__PURE__ */ jsx(
|
|
234
310
|
"input",
|
|
235
311
|
{
|
|
236
312
|
type: "number",
|
|
237
313
|
className: "pagination-jumper-input",
|
|
238
314
|
min: 1,
|
|
239
|
-
max:
|
|
240
|
-
onChange:
|
|
241
|
-
disabled
|
|
315
|
+
max: totalPages,
|
|
316
|
+
onChange: handleQuickJump,
|
|
317
|
+
disabled,
|
|
242
318
|
placeholder: ""
|
|
243
319
|
}
|
|
244
320
|
),
|
|
245
|
-
/* @__PURE__ */
|
|
321
|
+
/* @__PURE__ */ jsx("span", { children: t("页") })
|
|
246
322
|
] })
|
|
247
323
|
]
|
|
248
324
|
}
|
|
249
325
|
);
|
|
250
326
|
};
|
|
251
327
|
export {
|
|
252
|
-
|
|
328
|
+
Pagination as default
|
|
253
329
|
};
|