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.
Files changed (90) hide show
  1. package/dist/index.js +51 -1
  2. package/dist/index.mjs +49 -49
  3. package/dist/style.css +3744 -1
  4. package/dist/web/BasicInput/BInput.js +208 -1
  5. package/dist/web/BasicInput/BInput.mjs +164 -132
  6. package/dist/web/BasicInput/utils.js +47 -1
  7. package/dist/web/BasicInput/utils.mjs +38 -28
  8. package/dist/web/CategoryDropdown/CategoryDropdown.js +307 -1
  9. package/dist/web/CategoryDropdown/CategoryDropdown.mjs +218 -170
  10. package/dist/web/CheckBox/BCheckBox.js +116 -1
  11. package/dist/web/CheckBox/BCheckBox.mjs +86 -70
  12. package/dist/web/CheckBox/Group.js +73 -1
  13. package/dist/web/CheckBox/Group.mjs +63 -56
  14. package/dist/web/CheckBox/context.js +5 -1
  15. package/dist/web/CheckBox/context.mjs +3 -3
  16. package/dist/web/CheckBox/index.js +8 -1
  17. package/dist/web/CheckBox/index.mjs +6 -6
  18. package/dist/web/Dropdown/BDropdown.js +186 -1
  19. package/dist/web/Dropdown/BDropdown.mjs +132 -106
  20. package/dist/web/EmptyInputBox/EmptyInputBox.js +77 -1
  21. package/dist/web/EmptyInputBox/EmptyInputBox.mjs +52 -48
  22. package/dist/web/FileCard/FileCard.js +157 -1
  23. package/dist/web/FileCard/FileCard.mjs +112 -82
  24. package/dist/web/Icon/Icon.js +9 -1
  25. package/dist/web/Icon/Icon.mjs +6 -6
  26. package/dist/web/Input/Input.js +181 -1
  27. package/dist/web/Input/Input.mjs +122 -113
  28. package/dist/web/InputNumber/BInputNumber.js +311 -1
  29. package/dist/web/InputNumber/BInputNumber.mjs +275 -167
  30. package/dist/web/InputNumber/StepHandler.js +69 -1
  31. package/dist/web/InputNumber/StepHandler.mjs +38 -32
  32. package/dist/web/InputNumber/hooks/useCursor.js +40 -1
  33. package/dist/web/InputNumber/hooks/useCursor.mjs +35 -33
  34. package/dist/web/InputNumber/hooks/useFrame.js +12 -1
  35. package/dist/web/InputNumber/hooks/useFrame.mjs +9 -6
  36. package/dist/web/InputNumber/utils/decimal.js +147 -1
  37. package/dist/web/InputNumber/utils/decimal.mjs +109 -81
  38. package/dist/web/Modal/Modal.js +84 -1
  39. package/dist/web/Modal/Modal.mjs +52 -49
  40. package/dist/web/OverlayScrollbar/BOverlayScrollbar.js +232 -1
  41. package/dist/web/OverlayScrollbar/BOverlayScrollbar.mjs +206 -125
  42. package/dist/web/Pagination/Pagination.js +328 -1
  43. package/dist/web/Pagination/Pagination.mjs +254 -178
  44. package/dist/web/ProductField/ProductField.js +272 -1
  45. package/dist/web/ProductField/ProductField.mjs +190 -143
  46. package/dist/web/ProductField/arrow-up.svg.js +3 -1
  47. package/dist/web/ProductField/arrow-up.svg.mjs +2 -2
  48. package/dist/web/ProductField/checkbox-no.svg.js +3 -1
  49. package/dist/web/ProductField/checkbox-no.svg.mjs +2 -2
  50. package/dist/web/ProductField/checkbox-ok.svg.js +3 -1
  51. package/dist/web/ProductField/checkbox-ok.svg.mjs +2 -2
  52. package/dist/web/ProductField/no_data_light.svg.js +3 -1
  53. package/dist/web/ProductField/no_data_light.svg.mjs +2 -2
  54. package/dist/web/ProductField/search.svg.js +3 -1
  55. package/dist/web/ProductField/search.svg.mjs +2 -2
  56. package/dist/web/ProductField/sort.svg.js +3 -1
  57. package/dist/web/ProductField/sort.svg.mjs +2 -2
  58. package/dist/web/SkuInputCard/SkuInputCard.js +276 -1
  59. package/dist/web/SkuInputCard/SkuInputCard.mjs +188 -149
  60. package/dist/web/SkuInputCard/spin_loading_red.gif.js +3 -1
  61. package/dist/web/SkuInputCard/spin_loading_red.gif.mjs +2 -2
  62. package/dist/web/Switch/Switch.js +70 -1
  63. package/dist/web/Switch/Switch.mjs +47 -37
  64. package/dist/web/Table/BTable.js +950 -1
  65. package/dist/web/Table/BTable.mjs +771 -519
  66. package/dist/web/Table/Column.js +5 -1
  67. package/dist/web/Table/Column.mjs +2 -2
  68. package/dist/web/Table/ColumnGroup.js +5 -1
  69. package/dist/web/Table/ColumnGroup.mjs +2 -2
  70. package/dist/web/Table/utils/columns.js +48 -1
  71. package/dist/web/Table/utils/columns.mjs +35 -30
  72. package/dist/web/Table/utils/sortFilter.js +84 -1
  73. package/dist/web/Table/utils/sortFilter.mjs +73 -52
  74. package/dist/web/Tabs/BTabs.js +150 -1
  75. package/dist/web/Tabs/BTabs.mjs +118 -98
  76. package/dist/web/Tabs/TabPane.js +8 -1
  77. package/dist/web/Tabs/TabPane.mjs +4 -4
  78. package/dist/web/Tooltip/ConfirmTooltip.js +26 -1
  79. package/dist/web/Tooltip/ConfirmTooltip.mjs +20 -19
  80. package/dist/web/Tooltip/ContentTooltip.js +94 -1
  81. package/dist/web/Tooltip/ContentTooltip.mjs +72 -62
  82. package/dist/web/Tooltip/ProgressTooltip.js +36 -1
  83. package/dist/web/Tooltip/ProgressTooltip.mjs +22 -20
  84. package/dist/web/Tooltip/TooltipWrapper.js +12 -1
  85. package/dist/web/Tooltip/TooltipWrapper.mjs +8 -8
  86. package/dist/web/Tooltip/useAutoPlacement.js +41 -1
  87. package/dist/web/Tooltip/useAutoPlacement.mjs +34 -25
  88. package/dist/web.js +51 -1
  89. package/dist/web.mjs +49 -49
  90. package/package.json +1 -1
@@ -1,253 +1,329 @@
1
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
2
- import { useState as w, useRef as T, useEffect as rt, useMemo as ct } from "react";
3
- import { createPortal as dt } from "react-dom";
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 pt({
6
- triggerRect: v,
7
- dropdownHeight: r,
8
- viewportHeight: k
5
+ function defaultResolvePopupPlacement({
6
+ triggerRect,
7
+ dropdownHeight,
8
+ viewportHeight
9
9
  }) {
10
- const L = k - v.bottom, z = v.top;
11
- return L < r && z >= r ? "top" : "bottom";
10
+ const spaceBelow = viewportHeight - triggerRect.bottom;
11
+ const spaceAbove = triggerRect.top;
12
+ return spaceBelow < dropdownHeight && spaceAbove >= dropdownHeight ? "top" : "bottom";
12
13
  }
13
- const ft = (v) => {
14
+ const Pagination = (props) => {
14
15
  const {
15
- current: r,
16
- defaultCurrent: k = 1,
17
- pageSize: L,
18
- defaultPageSize: z = 10,
19
- total: b = 0,
20
- onChange: c,
21
- onShowSizeChange: x,
22
- showSizeChanger: H = !1,
23
- showQuickJumper: J = !1,
24
- pageSizeOptions: $ = [10, 20, 50, 100],
25
- disabled: l = !1,
26
- hideOnSinglePage: Q = !1,
27
- showTotal: M,
28
- size: W = "medium",
29
- align: q = "start",
30
- simple: F = !1,
31
- popupPlacement: d,
32
- resolvePopupPlacement: y,
33
- dropdownClassName: S,
34
- t: N = (t) => t,
35
- className: E,
36
- style: B
37
- } = v, [G, O] = w(k), [K, U] = w(z), [m, g] = w(!1), [f, V] = w("bottom"), [P, X] = w(null), p = T(null), R = T(null), o = r ?? G, u = L ?? K, s = Math.ceil(b / u);
38
- if (Q && s <= 1)
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
- const h = (t) => {
41
- l || t < 1 || t > s || t === o || (r === void 0 && O(t), c == null || c(t, u));
42
- }, Y = (t) => {
43
- const n = Math.ceil(b / t), e = Math.min(o, n) || 1;
44
- L === void 0 && (U(t), r === void 0 && O(e)), x == null || x(e, t), c == null || c(e, t);
45
- }, D = (t) => {
46
- if (!p.current) return;
47
- const n = p.current.getBoundingClientRect();
48
- X({
49
- left: n.left + n.width / 2,
50
- top: t === "bottom" ? n.bottom + 4 : n.top - 4
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
- if (l) return;
54
- if (m) {
55
- g(!1);
80
+ };
81
+ const toggleSizeDropdown = () => {
82
+ if (disabled) return;
83
+ if (isSizeDropdownOpen) {
84
+ setIsSizeDropdownOpen(false);
56
85
  return;
57
86
  }
58
- let t = f;
59
- if (d === void 0 && p.current) {
60
- const n = p.current.getBoundingClientRect(), e = $.length * 40 + 8, C = window.innerHeight;
61
- t = (y == null ? void 0 : y({ triggerRect: n, dropdownHeight: e, viewportHeight: C })) ?? pt({ triggerRect: n, dropdownHeight: e, viewportHeight: C }), V(t);
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
- D(d ?? t), g(!0);
64
- }, tt = (t) => {
65
- Y(t), g(!1);
95
+ updateDropdownPosition(popupPlacement ?? placement);
96
+ setIsSizeDropdownOpen(true);
66
97
  };
67
- rt(() => {
68
- const t = (C) => {
69
- var Z, A;
70
- const I = C.target;
71
- (Z = p.current) != null && Z.contains(I) || (A = R.current) != null && A.contains(I) || g(!1);
72
- }, n = () => g(!1), e = () => D(d ?? f);
73
- if (m)
74
- return document.addEventListener("mousedown", t), document.addEventListener("scroll", n, !0), window.addEventListener("resize", e), () => {
75
- document.removeEventListener("mousedown", t), document.removeEventListener("scroll", n, !0), window.removeEventListener("resize", e);
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
- }, [m, d, f]);
78
- const et = (t) => {
79
- const n = parseInt(t.target.value);
80
- !isNaN(n) && n >= 1 && n <= s && h(n);
81
- }, nt = ct(() => {
82
- const t = [];
83
- if (s <= 7)
84
- for (let e = 1; e <= s; e++)
85
- t.push(e);
86
- else if (o <= 4) {
87
- for (let e = 1; e <= 5; e++)
88
- t.push(e);
89
- t.push("..."), t.push(s);
90
- } else if (o >= s - 3) {
91
- t.push(1), t.push("...");
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
- t.push(1), t.push("...");
96
- for (let e = o - 1; e <= o + 1; e++)
97
- t.push(e);
98
- t.push("..."), t.push(s);
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 t;
101
- }, [o, s]), it = (o - 1) * u + 1, ot = Math.min(o * u, b), st = `pagination-${W}`, at = `pagination-${q}`, j = l ? "pagination-disabled" : "", lt = (t, n) => t === "..." ? /* @__PURE__ */ i("span", { className: "pagination-item pagination-ellipsis", children: "..." }, `ellipsis-${n}`) : /* @__PURE__ */ i(
102
- "button",
103
- {
104
- type: "button",
105
- className: `pagination-item ${t === o ? "pagination-item-active" : ""}`,
106
- onClick: () => h(t),
107
- disabled: l,
108
- children: t
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
- ) : /* @__PURE__ */ a(
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 ${st} ${at} ${j} ${E || ""}`,
149
- style: B,
224
+ className: `pagination ${sizeClass} ${alignClass} ${disabledClass} ${className || ""}`,
225
+ style,
150
226
  children: [
151
- M && /* @__PURE__ */ i("div", { className: "pagination-total", children: M(b, [it, ot]) }),
152
- /* @__PURE__ */ a("div", { className: "pagination-list", children: [
153
- /* @__PURE__ */ i(
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: () => h(o - 1),
159
- disabled: l || o === 1,
160
- children: /* @__PURE__ */ a("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
161
- /* @__PURE__ */ i("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" }),
162
- /* @__PURE__ */ i("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" })
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
- nt.map((t, n) => lt(t, n)),
167
- /* @__PURE__ */ i(
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: () => h(o + 1),
173
- disabled: l || o === s,
174
- children: /* @__PURE__ */ a("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
175
- /* @__PURE__ */ i("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" }),
176
- /* @__PURE__ */ i("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" })
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
- H && /* @__PURE__ */ a("div", { className: "pagination-sizer", ref: p, children: [
182
- /* @__PURE__ */ a(
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: l,
263
+ onClick: toggleSizeDropdown,
264
+ disabled,
189
265
  children: [
190
- u,
191
- N("条/页"),
192
- /* @__PURE__ */ a("svg", { className: `pagination-sizer-icon${m ? " pagination-sizer-icon-open" : ""}`, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
193
- /* @__PURE__ */ i("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" }),
194
- /* @__PURE__ */ i("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" })
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
- m && P && dt(
200
- /* @__PURE__ */ i(
275
+ isSizeDropdownOpen && dropdownAnchor && createPortal(
276
+ /* @__PURE__ */ jsx(
201
277
  "div",
202
278
  {
203
- ref: R,
204
- className: `pagination-sizer-dropdown pagination-sizer-dropdown-${d ?? f}${S ? ` ${S}` : ""}`,
279
+ ref: dropdownPortalRef,
280
+ className: `pagination-sizer-dropdown pagination-sizer-dropdown-${popupPlacement ?? dropdownPlacement}${dropdownClassName ? ` ${dropdownClassName}` : ""}`,
205
281
  style: {
206
282
  position: "fixed",
207
- left: P.left,
208
- top: P.top,
283
+ left: dropdownAnchor.left,
284
+ top: dropdownAnchor.top,
209
285
  zIndex: 99999,
210
- transform: (d ?? f) === "bottom" ? "translate(-50%, 0)" : "translate(-50%, -100%)"
286
+ transform: (popupPlacement ?? dropdownPlacement) === "bottom" ? "translate(-50%, 0)" : "translate(-50%, -100%)"
211
287
  },
212
- children: $.map((t) => /* @__PURE__ */ a(
288
+ children: pageSizeOptions.map((size2) => /* @__PURE__ */ jsxs(
213
289
  "button",
214
290
  {
215
291
  type: "button",
216
292
  className: "pagination-sizer-option",
217
- onClick: () => tt(t),
218
- "data-selected": t === u,
293
+ onClick: () => handleSizeOptionClick(size2),
294
+ "data-selected": size2 === pageSize,
219
295
  children: [
220
- t,
221
- N("条/页")
296
+ size2,
297
+ t("条/页")
222
298
  ]
223
299
  },
224
- t
300
+ size2
225
301
  ))
226
302
  }
227
303
  ),
228
304
  document.body
229
305
  )
230
306
  ] }),
231
- J && /* @__PURE__ */ a("div", { className: "pagination-jumper", children: [
232
- /* @__PURE__ */ i("span", { children: N("跳至") }),
233
- /* @__PURE__ */ i(
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: s,
240
- onChange: et,
241
- disabled: l,
315
+ max: totalPages,
316
+ onChange: handleQuickJump,
317
+ disabled,
242
318
  placeholder: ""
243
319
  }
244
320
  ),
245
- /* @__PURE__ */ i("span", { children: N("页") })
321
+ /* @__PURE__ */ jsx("span", { children: t("页") })
246
322
  ] })
247
323
  ]
248
324
  }
249
325
  );
250
326
  };
251
327
  export {
252
- ft as default
328
+ Pagination as default
253
329
  };