bj-web-components 0.2.28 → 0.2.30

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 (90) hide show
  1. package/dist/index.js +1 -51
  2. package/dist/index.mjs +49 -49
  3. package/dist/style.css +1 -3744
  4. package/dist/web/BasicInput/BInput.js +1 -208
  5. package/dist/web/BasicInput/BInput.mjs +132 -164
  6. package/dist/web/BasicInput/utils.js +1 -47
  7. package/dist/web/BasicInput/utils.mjs +28 -38
  8. package/dist/web/CategoryDropdown/CategoryDropdown.js +1 -307
  9. package/dist/web/CategoryDropdown/CategoryDropdown.mjs +170 -218
  10. package/dist/web/CheckBox/BCheckBox.js +1 -116
  11. package/dist/web/CheckBox/BCheckBox.mjs +70 -86
  12. package/dist/web/CheckBox/Group.js +1 -73
  13. package/dist/web/CheckBox/Group.mjs +56 -63
  14. package/dist/web/CheckBox/context.js +1 -5
  15. package/dist/web/CheckBox/context.mjs +3 -3
  16. package/dist/web/CheckBox/index.js +1 -8
  17. package/dist/web/CheckBox/index.mjs +6 -6
  18. package/dist/web/Dropdown/BDropdown.js +1 -186
  19. package/dist/web/Dropdown/BDropdown.mjs +106 -132
  20. package/dist/web/EmptyInputBox/EmptyInputBox.js +1 -77
  21. package/dist/web/EmptyInputBox/EmptyInputBox.mjs +48 -52
  22. package/dist/web/FileCard/FileCard.js +1 -157
  23. package/dist/web/FileCard/FileCard.mjs +82 -112
  24. package/dist/web/Icon/Icon.js +1 -9
  25. package/dist/web/Icon/Icon.mjs +6 -6
  26. package/dist/web/Input/Input.js +1 -181
  27. package/dist/web/Input/Input.mjs +113 -122
  28. package/dist/web/InputNumber/BInputNumber.js +1 -311
  29. package/dist/web/InputNumber/BInputNumber.mjs +167 -275
  30. package/dist/web/InputNumber/StepHandler.js +1 -69
  31. package/dist/web/InputNumber/StepHandler.mjs +32 -38
  32. package/dist/web/InputNumber/hooks/useCursor.js +1 -40
  33. package/dist/web/InputNumber/hooks/useCursor.mjs +33 -35
  34. package/dist/web/InputNumber/hooks/useFrame.js +1 -12
  35. package/dist/web/InputNumber/hooks/useFrame.mjs +6 -9
  36. package/dist/web/InputNumber/utils/decimal.js +1 -147
  37. package/dist/web/InputNumber/utils/decimal.mjs +81 -109
  38. package/dist/web/Modal/Modal.js +1 -84
  39. package/dist/web/Modal/Modal.mjs +49 -52
  40. package/dist/web/OverlayScrollbar/BOverlayScrollbar.js +1 -232
  41. package/dist/web/OverlayScrollbar/BOverlayScrollbar.mjs +125 -206
  42. package/dist/web/Pagination/Pagination.js +1 -328
  43. package/dist/web/Pagination/Pagination.mjs +178 -254
  44. package/dist/web/ProductField/ProductField.js +1 -272
  45. package/dist/web/ProductField/ProductField.mjs +143 -190
  46. package/dist/web/ProductField/arrow-up.svg.js +1 -3
  47. package/dist/web/ProductField/arrow-up.svg.mjs +2 -2
  48. package/dist/web/ProductField/checkbox-no.svg.js +1 -3
  49. package/dist/web/ProductField/checkbox-no.svg.mjs +2 -2
  50. package/dist/web/ProductField/checkbox-ok.svg.js +1 -3
  51. package/dist/web/ProductField/checkbox-ok.svg.mjs +2 -2
  52. package/dist/web/ProductField/no_data_light.svg.js +1 -3
  53. package/dist/web/ProductField/no_data_light.svg.mjs +2 -2
  54. package/dist/web/ProductField/search.svg.js +1 -3
  55. package/dist/web/ProductField/search.svg.mjs +2 -2
  56. package/dist/web/ProductField/sort.svg.js +1 -3
  57. package/dist/web/ProductField/sort.svg.mjs +2 -2
  58. package/dist/web/SkuInputCard/SkuInputCard.js +1 -276
  59. package/dist/web/SkuInputCard/SkuInputCard.mjs +149 -188
  60. package/dist/web/SkuInputCard/spin_loading_red.gif.js +1 -3
  61. package/dist/web/SkuInputCard/spin_loading_red.gif.mjs +2 -2
  62. package/dist/web/Switch/Switch.js +1 -70
  63. package/dist/web/Switch/Switch.mjs +37 -47
  64. package/dist/web/Table/BTable.js +1 -950
  65. package/dist/web/Table/BTable.mjs +521 -767
  66. package/dist/web/Table/Column.js +1 -5
  67. package/dist/web/Table/Column.mjs +2 -2
  68. package/dist/web/Table/ColumnGroup.js +1 -5
  69. package/dist/web/Table/ColumnGroup.mjs +2 -2
  70. package/dist/web/Table/utils/columns.js +1 -48
  71. package/dist/web/Table/utils/columns.mjs +30 -35
  72. package/dist/web/Table/utils/sortFilter.js +1 -84
  73. package/dist/web/Table/utils/sortFilter.mjs +52 -73
  74. package/dist/web/Tabs/BTabs.js +1 -150
  75. package/dist/web/Tabs/BTabs.mjs +98 -118
  76. package/dist/web/Tabs/TabPane.js +1 -8
  77. package/dist/web/Tabs/TabPane.mjs +4 -4
  78. package/dist/web/Tooltip/ConfirmTooltip.js +1 -26
  79. package/dist/web/Tooltip/ConfirmTooltip.mjs +19 -20
  80. package/dist/web/Tooltip/ContentTooltip.js +1 -94
  81. package/dist/web/Tooltip/ContentTooltip.mjs +62 -72
  82. package/dist/web/Tooltip/ProgressTooltip.js +1 -36
  83. package/dist/web/Tooltip/ProgressTooltip.mjs +20 -22
  84. package/dist/web/Tooltip/TooltipWrapper.js +1 -12
  85. package/dist/web/Tooltip/TooltipWrapper.mjs +8 -8
  86. package/dist/web/Tooltip/useAutoPlacement.js +1 -41
  87. package/dist/web/Tooltip/useAutoPlacement.mjs +25 -34
  88. package/dist/web.js +1 -51
  89. package/dist/web.mjs +49 -49
  90. package/package.json +1 -1
@@ -1,328 +1 @@
1
- "use strict";
2
- const jsxRuntime = require("react/jsx-runtime");
3
- const react = require("react");
4
- const reactDom = require("react-dom");
5
- ;/* empty css */
6
- function defaultResolvePopupPlacement({
7
- triggerRect,
8
- dropdownHeight,
9
- viewportHeight
10
- }) {
11
- const spaceBelow = viewportHeight - triggerRect.bottom;
12
- const spaceAbove = triggerRect.top;
13
- return spaceBelow < dropdownHeight && spaceAbove >= dropdownHeight ? "top" : "bottom";
14
- }
15
- const Pagination = (props) => {
16
- const {
17
- current: controlledCurrent,
18
- defaultCurrent = 1,
19
- pageSize: controlledPageSize,
20
- defaultPageSize = 10,
21
- total = 0,
22
- onChange,
23
- onShowSizeChange,
24
- showSizeChanger = false,
25
- showQuickJumper = false,
26
- pageSizeOptions = [10, 20, 50, 100],
27
- disabled = false,
28
- hideOnSinglePage = false,
29
- showTotal,
30
- size = "medium",
31
- align = "start",
32
- simple = false,
33
- popupPlacement,
34
- resolvePopupPlacement,
35
- dropdownClassName,
36
- t = (text) => text,
37
- className,
38
- style
39
- } = props;
40
- const [internalCurrent, setInternalCurrent] = react.useState(defaultCurrent);
41
- const [internalPageSize, setInternalPageSize] = react.useState(defaultPageSize);
42
- const [isSizeDropdownOpen, setIsSizeDropdownOpen] = react.useState(false);
43
- const [dropdownPlacement, setDropdownPlacement] = react.useState("bottom");
44
- const [dropdownAnchor, setDropdownAnchor] = react.useState(null);
45
- const sizeDropdownRef = react.useRef(null);
46
- const dropdownPortalRef = react.useRef(null);
47
- const current = controlledCurrent ?? internalCurrent;
48
- const pageSize = controlledPageSize ?? internalPageSize;
49
- const totalPages = Math.ceil(total / pageSize);
50
- if (hideOnSinglePage && totalPages <= 1) {
51
- return null;
52
- }
53
- const handlePageChange = (page) => {
54
- if (disabled || page < 1 || page > totalPages || page === current) {
55
- return;
56
- }
57
- if (controlledCurrent === void 0) {
58
- setInternalCurrent(page);
59
- }
60
- onChange == null ? void 0 : onChange(page, pageSize);
61
- };
62
- const handlePageSizeChange = (newPageSize) => {
63
- const newTotalPages = Math.ceil(total / newPageSize);
64
- const newCurrent = Math.min(current, newTotalPages) || 1;
65
- if (controlledPageSize === void 0) {
66
- setInternalPageSize(newPageSize);
67
- if (controlledCurrent === void 0) {
68
- setInternalCurrent(newCurrent);
69
- }
70
- }
71
- onShowSizeChange == null ? void 0 : onShowSizeChange(newCurrent, newPageSize);
72
- onChange == null ? void 0 : onChange(newCurrent, newPageSize);
73
- };
74
- const updateDropdownPosition = (placement) => {
75
- if (!sizeDropdownRef.current) return;
76
- const triggerRect = sizeDropdownRef.current.getBoundingClientRect();
77
- setDropdownAnchor({
78
- left: triggerRect.left + triggerRect.width / 2,
79
- top: placement === "bottom" ? triggerRect.bottom + 4 : triggerRect.top - 4
80
- });
81
- };
82
- const toggleSizeDropdown = () => {
83
- if (disabled) return;
84
- if (isSizeDropdownOpen) {
85
- setIsSizeDropdownOpen(false);
86
- return;
87
- }
88
- let placement = dropdownPlacement;
89
- if (popupPlacement === void 0 && sizeDropdownRef.current) {
90
- const triggerRect = sizeDropdownRef.current.getBoundingClientRect();
91
- const dropdownHeight = pageSizeOptions.length * 40 + 8;
92
- const viewportHeight = window.innerHeight;
93
- placement = (resolvePopupPlacement == null ? void 0 : resolvePopupPlacement({ triggerRect, dropdownHeight, viewportHeight })) ?? defaultResolvePopupPlacement({ triggerRect, dropdownHeight, viewportHeight });
94
- setDropdownPlacement(placement);
95
- }
96
- updateDropdownPosition(popupPlacement ?? placement);
97
- setIsSizeDropdownOpen(true);
98
- };
99
- const handleSizeOptionClick = (newPageSize) => {
100
- handlePageSizeChange(newPageSize);
101
- setIsSizeDropdownOpen(false);
102
- };
103
- react.useEffect(() => {
104
- const handleClickOutside = (event) => {
105
- var _a, _b;
106
- const target = event.target;
107
- if (((_a = sizeDropdownRef.current) == null ? void 0 : _a.contains(target)) || ((_b = dropdownPortalRef.current) == null ? void 0 : _b.contains(target))) {
108
- return;
109
- }
110
- setIsSizeDropdownOpen(false);
111
- };
112
- const handleScroll = () => setIsSizeDropdownOpen(false);
113
- const handleResize = () => updateDropdownPosition(popupPlacement ?? dropdownPlacement);
114
- if (isSizeDropdownOpen) {
115
- document.addEventListener("mousedown", handleClickOutside);
116
- document.addEventListener("scroll", handleScroll, true);
117
- window.addEventListener("resize", handleResize);
118
- return () => {
119
- document.removeEventListener("mousedown", handleClickOutside);
120
- document.removeEventListener("scroll", handleScroll, true);
121
- window.removeEventListener("resize", handleResize);
122
- };
123
- }
124
- }, [isSizeDropdownOpen, popupPlacement, dropdownPlacement]);
125
- const handleQuickJump = (e) => {
126
- const value = parseInt(e.target.value);
127
- if (!isNaN(value) && value >= 1 && value <= totalPages) {
128
- handlePageChange(value);
129
- }
130
- };
131
- const pageNumbers = react.useMemo(() => {
132
- const pages = [];
133
- const showEllipsisThreshold = 7;
134
- if (totalPages <= showEllipsisThreshold) {
135
- for (let i = 1; i <= totalPages; i++) {
136
- pages.push(i);
137
- }
138
- } else {
139
- if (current <= 4) {
140
- for (let i = 1; i <= 5; i++) {
141
- pages.push(i);
142
- }
143
- pages.push("...");
144
- pages.push(totalPages);
145
- } else if (current >= totalPages - 3) {
146
- pages.push(1);
147
- pages.push("...");
148
- for (let i = totalPages - 4; i <= totalPages; i++) {
149
- pages.push(i);
150
- }
151
- } else {
152
- pages.push(1);
153
- pages.push("...");
154
- for (let i = current - 1; i <= current + 1; i++) {
155
- pages.push(i);
156
- }
157
- pages.push("...");
158
- pages.push(totalPages);
159
- }
160
- }
161
- return pages;
162
- }, [current, totalPages]);
163
- const rangeStart = (current - 1) * pageSize + 1;
164
- const rangeEnd = Math.min(current * pageSize, total);
165
- const sizeClass = `pagination-${size}`;
166
- const alignClass = `pagination-${align}`;
167
- const disabledClass = disabled ? "pagination-disabled" : "";
168
- const renderPageItem = (page, index) => {
169
- if (page === "...") {
170
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pagination-item pagination-ellipsis", children: "..." }, `ellipsis-${index}`);
171
- }
172
- const isActive = page === current;
173
- const activeClass = isActive ? "pagination-item-active" : "";
174
- return /* @__PURE__ */ jsxRuntime.jsx(
175
- "button",
176
- {
177
- type: "button",
178
- className: `pagination-item ${activeClass}`,
179
- onClick: () => handlePageChange(page),
180
- disabled,
181
- children: page
182
- },
183
- page
184
- );
185
- };
186
- if (simple) {
187
- return /* @__PURE__ */ jsxRuntime.jsx(
188
- "div",
189
- {
190
- className: `pagination pagination-simple ${disabledClass} ${className || ""}`,
191
- style,
192
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pagination-simple-list", children: [
193
- /* @__PURE__ */ jsxRuntime.jsx(
194
- "button",
195
- {
196
- type: "button",
197
- className: "pagination-simple-item pagination-simple-prev",
198
- onClick: () => handlePageChange(current - 1),
199
- disabled: disabled || current === 1,
200
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 2L4 6L8 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
201
- }
202
- ),
203
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "pagination-simple-text", children: [
204
- current,
205
- " / ",
206
- totalPages || 0
207
- ] }),
208
- /* @__PURE__ */ jsxRuntime.jsx(
209
- "button",
210
- {
211
- type: "button",
212
- className: "pagination-simple-item pagination-simple-next",
213
- onClick: () => handlePageChange(current + 1),
214
- disabled: disabled || current === totalPages,
215
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 2L8 6L4 10", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
216
- }
217
- )
218
- ] })
219
- }
220
- );
221
- }
222
- return /* @__PURE__ */ jsxRuntime.jsxs(
223
- "div",
224
- {
225
- className: `pagination ${sizeClass} ${alignClass} ${disabledClass} ${className || ""}`,
226
- style,
227
- children: [
228
- showTotal && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pagination-total", children: showTotal(total, [rangeStart, rangeEnd]) }),
229
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pagination-list", children: [
230
- /* @__PURE__ */ jsxRuntime.jsx(
231
- "button",
232
- {
233
- type: "button",
234
- className: "pagination-item pagination-prev",
235
- onClick: () => handlePageChange(current - 1),
236
- disabled: disabled || current === 1,
237
- children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
238
- /* @__PURE__ */ jsxRuntime.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" }),
239
- /* @__PURE__ */ jsxRuntime.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" })
240
- ] })
241
- }
242
- ),
243
- pageNumbers.map((page, index) => renderPageItem(page, index)),
244
- /* @__PURE__ */ jsxRuntime.jsx(
245
- "button",
246
- {
247
- type: "button",
248
- className: "pagination-item pagination-next",
249
- onClick: () => handlePageChange(current + 1),
250
- disabled: disabled || current === totalPages,
251
- children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
252
- /* @__PURE__ */ jsxRuntime.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" }),
253
- /* @__PURE__ */ jsxRuntime.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" })
254
- ] })
255
- }
256
- )
257
- ] }),
258
- showSizeChanger && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pagination-sizer", ref: sizeDropdownRef, children: [
259
- /* @__PURE__ */ jsxRuntime.jsxs(
260
- "button",
261
- {
262
- type: "button",
263
- className: "pagination-sizer-select",
264
- onClick: toggleSizeDropdown,
265
- disabled,
266
- children: [
267
- pageSize,
268
- t("条/页"),
269
- /* @__PURE__ */ jsxRuntime.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: [
270
- /* @__PURE__ */ jsxRuntime.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" }),
271
- /* @__PURE__ */ jsxRuntime.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" })
272
- ] })
273
- ]
274
- }
275
- ),
276
- isSizeDropdownOpen && dropdownAnchor && reactDom.createPortal(
277
- /* @__PURE__ */ jsxRuntime.jsx(
278
- "div",
279
- {
280
- ref: dropdownPortalRef,
281
- className: `pagination-sizer-dropdown pagination-sizer-dropdown-${popupPlacement ?? dropdownPlacement}${dropdownClassName ? ` ${dropdownClassName}` : ""}`,
282
- style: {
283
- position: "fixed",
284
- left: dropdownAnchor.left,
285
- top: dropdownAnchor.top,
286
- zIndex: 99999,
287
- transform: (popupPlacement ?? dropdownPlacement) === "bottom" ? "translate(-50%, 0)" : "translate(-50%, -100%)"
288
- },
289
- children: pageSizeOptions.map((size2) => /* @__PURE__ */ jsxRuntime.jsxs(
290
- "button",
291
- {
292
- type: "button",
293
- className: "pagination-sizer-option",
294
- onClick: () => handleSizeOptionClick(size2),
295
- "data-selected": size2 === pageSize,
296
- children: [
297
- size2,
298
- t("条/页")
299
- ]
300
- },
301
- size2
302
- ))
303
- }
304
- ),
305
- document.body
306
- )
307
- ] }),
308
- showQuickJumper && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pagination-jumper", children: [
309
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: t("跳至") }),
310
- /* @__PURE__ */ jsxRuntime.jsx(
311
- "input",
312
- {
313
- type: "number",
314
- className: "pagination-jumper-input",
315
- min: 1,
316
- max: totalPages,
317
- onChange: handleQuickJump,
318
- disabled,
319
- placeholder: ""
320
- }
321
- ),
322
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: t("页") })
323
- ] })
324
- ]
325
- }
326
- );
327
- };
328
- module.exports = Pagination;
1
+ "use strict";const t=require("react/jsx-runtime"),l=require("react"),ae=require("react-dom");;/* empty css */function le({triggerRect:w,dropdownHeight:r,viewportHeight:L}){const x=L-w.bottom,b=w.top;return x<r&&b>=r?"top":"bottom"}const re=w=>{const{current:r,defaultCurrent:L=1,pageSize:x,defaultPageSize:b=10,total:v=0,onChange:c,onShowSizeChange:N,showSizeChanger:A=!1,showQuickJumper:q=!1,pageSizeOptions:S=[10,20,50,100],disabled:a=!1,hideOnSinglePage:T=!1,showTotal:y,size:H="medium",align:J="start",simple:Q=!1,popupPlacement:d,resolvePopupPlacement:k,dropdownClassName:P,t:j=e=>e,className:$,style:M}=w,[W,E]=l.useState(L),[F,G]=l.useState(b),[g,f]=l.useState(!1),[C,K]=l.useState("bottom"),[z,U]=l.useState(null),p=l.useRef(null),R=l.useRef(null),s=r??W,u=x??F,o=Math.ceil(v/u);if(T&&o<=1)return null;const h=e=>{a||e<1||e>o||e===s||(r===void 0&&E(e),c==null||c(e,u))},V=e=>{const i=Math.ceil(v/e),n=Math.min(s,i)||1;x===void 0&&(G(e),r===void 0&&E(n)),N==null||N(n,e),c==null||c(n,e)},B=e=>{if(!p.current)return;const i=p.current.getBoundingClientRect();U({left:i.left+i.width/2,top:e==="bottom"?i.bottom+4:i.top-4})},X=()=>{if(a)return;if(g){f(!1);return}let e=C;if(d===void 0&&p.current){const i=p.current.getBoundingClientRect(),n=S.length*40+8,m=window.innerHeight;e=(k==null?void 0:k({triggerRect:i,dropdownHeight:n,viewportHeight:m}))??le({triggerRect:i,dropdownHeight:n,viewportHeight:m}),K(e)}B(d??e),f(!0)},Y=e=>{V(e),f(!1)};l.useEffect(()=>{const e=m=>{var I,Z;const O=m.target;(I=p.current)!=null&&I.contains(O)||(Z=R.current)!=null&&Z.contains(O)||f(!1)},i=()=>f(!1),n=()=>B(d??C);if(g)return document.addEventListener("mousedown",e),document.addEventListener("scroll",i,!0),window.addEventListener("resize",n),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("scroll",i,!0),window.removeEventListener("resize",n)}},[g,d,C]);const _=e=>{const i=parseInt(e.target.value);!isNaN(i)&&i>=1&&i<=o&&h(i)},ee=l.useMemo(()=>{const e=[];if(o<=7)for(let n=1;n<=o;n++)e.push(n);else if(s<=4){for(let n=1;n<=5;n++)e.push(n);e.push("..."),e.push(o)}else if(s>=o-3){e.push(1),e.push("...");for(let n=o-4;n<=o;n++)e.push(n)}else{e.push(1),e.push("...");for(let n=s-1;n<=s+1;n++)e.push(n);e.push("..."),e.push(o)}return e},[s,o]),te=(s-1)*u+1,ne=Math.min(s*u,v),ie=`pagination-${H}`,se=`pagination-${J}`,D=a?"pagination-disabled":"",oe=(e,i)=>{if(e==="...")return t.jsx("span",{className:"pagination-item pagination-ellipsis",children:"..."},`ellipsis-${i}`);const m=e===s?"pagination-item-active":"";return t.jsx("button",{type:"button",className:`pagination-item ${m}`,onClick:()=>h(e),disabled:a,children:e},e)};return Q?t.jsx("div",{className:`pagination pagination-simple ${D} ${$||""}`,style:M,children:t.jsxs("div",{className:"pagination-simple-list",children:[t.jsx("button",{type:"button",className:"pagination-simple-item pagination-simple-prev",onClick:()=>h(s-1),disabled:a||s===1,children:t.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:t.jsx("path",{d:"M8 2L4 6L8 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),t.jsxs("span",{className:"pagination-simple-text",children:[s," / ",o||0]}),t.jsx("button",{type:"button",className:"pagination-simple-item pagination-simple-next",onClick:()=>h(s+1),disabled:a||s===o,children:t.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:t.jsx("path",{d:"M4 2L8 6L4 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}):t.jsxs("div",{className:`pagination ${ie} ${se} ${D} ${$||""}`,style:M,children:[y&&t.jsx("div",{className:"pagination-total",children:y(v,[te,ne])}),t.jsxs("div",{className:"pagination-list",children:[t.jsx("button",{type:"button",className:"pagination-item pagination-prev",onClick:()=>h(s-1),disabled:a||s===1,children:t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[t.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"}),t.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"})]})}),ee.map((e,i)=>oe(e,i)),t.jsx("button",{type:"button",className:"pagination-item pagination-next",onClick:()=>h(s+1),disabled:a||s===o,children:t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[t.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"}),t.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"})]})})]}),A&&t.jsxs("div",{className:"pagination-sizer",ref:p,children:[t.jsxs("button",{type:"button",className:"pagination-sizer-select",onClick:X,disabled:a,children:[u,j("条/页"),t.jsxs("svg",{className:`pagination-sizer-icon${g?" pagination-sizer-icon-open":""}`,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[t.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"}),t.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"})]})]}),g&&z&&ae.createPortal(t.jsx("div",{ref:R,className:`pagination-sizer-dropdown pagination-sizer-dropdown-${d??C}${P?` ${P}`:""}`,style:{position:"fixed",left:z.left,top:z.top,zIndex:99999,transform:(d??C)==="bottom"?"translate(-50%, 0)":"translate(-50%, -100%)"},children:S.map(e=>t.jsxs("button",{type:"button",className:"pagination-sizer-option",onClick:()=>Y(e),"data-selected":e===u,children:[e,j("条/页")]},e))}),document.body)]}),q&&t.jsxs("div",{className:"pagination-jumper",children:[t.jsx("span",{children:j("跳至")}),t.jsx("input",{type:"number",className:"pagination-jumper-input",min:1,max:o,onChange:_,disabled:a,placeholder:""}),t.jsx("span",{children:j("页")})]})]})};module.exports=re;