@creekjs/web-components 1.0.5 → 1.0.6

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 (164) hide show
  1. package/.turbo/turbo-father$colon$build.log +35 -19
  2. package/README.md +97 -18
  3. package/dist/creek-config-provider/CreekConfigContext.d.ts +4 -0
  4. package/dist/creek-config-provider/CreekConfigContext.d.ts.map +1 -1
  5. package/dist/creek-config-provider/CreekConfigContext.js.map +2 -2
  6. package/dist/creek-config-provider/CreekI18nProvider.d.ts +22 -0
  7. package/dist/creek-config-provider/CreekI18nProvider.d.ts.map +1 -0
  8. package/dist/creek-config-provider/CreekI18nProvider.js +92 -0
  9. package/dist/creek-config-provider/CreekI18nProvider.js.map +7 -0
  10. package/dist/creek-config-provider/index.d.ts +5 -3
  11. package/dist/creek-config-provider/index.d.ts.map +1 -1
  12. package/dist/creek-config-provider/index.js +47 -4
  13. package/dist/creek-config-provider/index.js.map +3 -3
  14. package/dist/creek-hooks/useApp/index.d.ts +3 -3
  15. package/dist/creek-keep-alive/index.d.ts +24 -1
  16. package/dist/creek-keep-alive/index.d.ts.map +1 -1
  17. package/dist/creek-keep-alive/index.js +141 -4
  18. package/dist/creek-keep-alive/index.js.map +2 -2
  19. package/dist/creek-layout/ActionRender/FullScreen.d.ts.map +1 -1
  20. package/dist/creek-layout/ActionRender/FullScreen.js +3 -1
  21. package/dist/creek-layout/ActionRender/FullScreen.js.map +2 -2
  22. package/dist/creek-layout/ActionRender/LayoutSettings.d.ts +5 -0
  23. package/dist/creek-layout/ActionRender/LayoutSettings.d.ts.map +1 -0
  24. package/dist/creek-layout/ActionRender/LayoutSettings.js +73 -0
  25. package/dist/creek-layout/ActionRender/LayoutSettings.js.map +7 -0
  26. package/dist/creek-layout/ActionRender/UserInfo.js.map +2 -2
  27. package/dist/creek-layout/ActionRender/index.d.ts +1 -0
  28. package/dist/creek-layout/ActionRender/index.d.ts.map +1 -1
  29. package/dist/creek-layout/ActionRender/index.js +3 -0
  30. package/dist/creek-layout/ActionRender/index.js.map +2 -2
  31. package/dist/creek-layout/index.d.ts +5 -5
  32. package/dist/creek-layout/index.d.ts.map +1 -1
  33. package/dist/creek-layout/index.js +79 -16
  34. package/dist/creek-layout/index.js.map +3 -3
  35. package/dist/creek-layout/useLayoutSettingsStore.d.ts +20 -0
  36. package/dist/creek-layout/useLayoutSettingsStore.d.ts.map +1 -0
  37. package/dist/creek-layout/useLayoutSettingsStore.js +45 -0
  38. package/dist/creek-layout/useLayoutSettingsStore.js.map +7 -0
  39. package/dist/creek-locale-button/index.d.ts +1 -0
  40. package/dist/creek-locale-button/index.d.ts.map +1 -0
  41. package/dist/creek-locale-button/index.js +66 -0
  42. package/dist/creek-locale-button/index.js.map +7 -0
  43. package/dist/creek-page-container/index.d.ts +4 -0
  44. package/dist/creek-page-container/index.d.ts.map +1 -0
  45. package/dist/creek-page-container/index.js +68 -0
  46. package/dist/creek-page-container/index.js.map +7 -0
  47. package/dist/creek-style/index.d.ts +1 -0
  48. package/dist/creek-style/index.d.ts.map +1 -0
  49. package/dist/creek-style/index.js +24 -0
  50. package/dist/creek-style/index.js.map +7 -0
  51. package/dist/creek-style/scrollbar.d.ts +2 -0
  52. package/dist/creek-style/scrollbar.d.ts.map +1 -0
  53. package/dist/creek-style/scrollbar.js +55 -0
  54. package/dist/creek-style/scrollbar.js.map +7 -0
  55. package/dist/creek-table/SearchTable.d.ts +9 -0
  56. package/dist/creek-table/SearchTable.d.ts.map +1 -1
  57. package/dist/creek-table/SearchTable.js +109 -72
  58. package/dist/creek-table/SearchTable.js.map +3 -3
  59. package/dist/creek-table/components/DensityIcon.d.ts +9 -0
  60. package/dist/creek-table/components/DensityIcon.d.ts.map +1 -0
  61. package/dist/creek-table/components/DensityIcon.js +77 -0
  62. package/dist/creek-table/components/DensityIcon.js.map +7 -0
  63. package/dist/creek-table/components/EllipsisTooltip.d.ts +9 -0
  64. package/dist/creek-table/components/EllipsisTooltip.d.ts.map +1 -0
  65. package/dist/creek-table/components/EllipsisTooltip.js +122 -0
  66. package/dist/creek-table/components/EllipsisTooltip.js.map +7 -0
  67. package/dist/creek-table/components/index.d.ts +2 -0
  68. package/dist/creek-table/components/index.d.ts.map +1 -0
  69. package/dist/creek-table/components/index.js +26 -0
  70. package/dist/creek-table/components/index.js.map +7 -0
  71. package/dist/creek-table/hooks/index.d.ts +5 -0
  72. package/dist/creek-table/hooks/index.d.ts.map +1 -1
  73. package/dist/creek-table/hooks/index.js +10 -0
  74. package/dist/creek-table/hooks/index.js.map +2 -2
  75. package/dist/creek-table/hooks/useAutoWidthColumns.d.ts +1 -1
  76. package/dist/creek-table/hooks/useAutoWidthColumns.d.ts.map +1 -1
  77. package/dist/creek-table/hooks/useAutoWidthColumns.js +76 -17
  78. package/dist/creek-table/hooks/useAutoWidthColumns.js.map +2 -2
  79. package/dist/creek-table/hooks/useEllipsisColumns.d.ts +8 -0
  80. package/dist/creek-table/hooks/useEllipsisColumns.d.ts.map +1 -0
  81. package/dist/creek-table/hooks/useEllipsisColumns.js +58 -0
  82. package/dist/creek-table/hooks/useEllipsisColumns.js.map +7 -0
  83. package/dist/creek-table/hooks/useIndexColumn.d.ts +2 -0
  84. package/dist/creek-table/hooks/useIndexColumn.d.ts.map +1 -0
  85. package/dist/creek-table/hooks/useIndexColumn.js +52 -0
  86. package/dist/creek-table/hooks/useIndexColumn.js.map +7 -0
  87. package/dist/creek-table/hooks/useResizableColumns.d.ts +20 -0
  88. package/dist/creek-table/hooks/useResizableColumns.d.ts.map +1 -0
  89. package/dist/creek-table/hooks/useResizableColumns.js +279 -0
  90. package/dist/creek-table/hooks/useResizableColumns.js.map +7 -0
  91. package/dist/creek-table/hooks/useStatusColumns.d.ts +2 -0
  92. package/dist/creek-table/hooks/useStatusColumns.d.ts.map +1 -0
  93. package/dist/creek-table/hooks/useStatusColumns.js +215 -0
  94. package/dist/creek-table/hooks/useStatusColumns.js.map +7 -0
  95. package/dist/creek-table/hooks/useTableOptions.d.ts +15 -0
  96. package/dist/creek-table/hooks/useTableOptions.d.ts.map +1 -0
  97. package/dist/creek-table/hooks/useTableOptions.js +78 -0
  98. package/dist/creek-table/hooks/useTableOptions.js.map +7 -0
  99. package/dist/creek-table/hooks/useTableScrollHeight.d.ts +6 -1
  100. package/dist/creek-table/hooks/useTableScrollHeight.d.ts.map +1 -1
  101. package/dist/creek-table/hooks/useTableScrollHeight.js +44 -5
  102. package/dist/creek-table/hooks/useTableScrollHeight.js.map +2 -2
  103. package/dist/creek-table/type.d.ts +4 -6
  104. package/dist/creek-table/type.d.ts.map +1 -1
  105. package/dist/creek-table/type.js.map +1 -1
  106. package/dist/index.d.ts +4 -0
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +8 -0
  109. package/dist/index.js.map +2 -2
  110. package/dist/locales/en-US.d.ts +25 -0
  111. package/dist/locales/en-US.d.ts.map +1 -0
  112. package/dist/locales/en-US.js +49 -0
  113. package/dist/locales/en-US.js.map +7 -0
  114. package/dist/locales/zh-CN.d.ts +25 -0
  115. package/dist/locales/zh-CN.d.ts.map +1 -0
  116. package/dist/locales/zh-CN.js +49 -0
  117. package/dist/locales/zh-CN.js.map +7 -0
  118. package/dist/utils/i18n.d.ts +2 -0
  119. package/dist/utils/i18n.d.ts.map +1 -0
  120. package/dist/utils/i18n.js +34 -0
  121. package/dist/utils/i18n.js.map +7 -0
  122. package/i18n.config.ts +27 -0
  123. package/package.json +17 -3
  124. package/src/creek-config-provider/CreekConfigContext.tsx +5 -1
  125. package/src/creek-config-provider/CreekI18nProvider.tsx +87 -0
  126. package/src/creek-config-provider/index.tsx +53 -4
  127. package/src/creek-keep-alive/index.tsx +225 -6
  128. package/src/creek-layout/ActionRender/FullScreen.tsx +10 -6
  129. package/src/creek-layout/ActionRender/LayoutSettings.tsx +67 -0
  130. package/src/creek-layout/ActionRender/UserInfo.tsx +1 -1
  131. package/src/creek-layout/ActionRender/index.tsx +1 -0
  132. package/src/creek-layout/index.tsx +89 -22
  133. package/src/creek-layout/useLayoutSettingsStore.ts +25 -0
  134. package/src/creek-locale-button/index.tsx +42 -0
  135. package/src/creek-page-container/index.tsx +32 -0
  136. package/src/creek-style/index.ts +1 -0
  137. package/src/creek-style/scrollbar.ts +29 -0
  138. package/src/creek-table/SearchTable.tsx +125 -72
  139. package/src/creek-table/components/DensityIcon.tsx +63 -0
  140. package/src/creek-table/components/EllipsisTooltip.tsx +116 -0
  141. package/src/creek-table/components/index.tsx +3 -0
  142. package/src/creek-table/hooks/index.ts +5 -1
  143. package/src/creek-table/hooks/useAutoWidthColumns.tsx +93 -19
  144. package/src/creek-table/hooks/useEllipsisColumns.tsx +47 -0
  145. package/src/creek-table/hooks/useIndexColumn.tsx +27 -0
  146. package/src/creek-table/hooks/useResizableColumns.tsx +323 -0
  147. package/src/creek-table/hooks/useStatusColumns.tsx +252 -0
  148. package/src/creek-table/hooks/useTableOptions.tsx +81 -0
  149. package/src/creek-table/hooks/useTableScrollHeight.tsx +61 -6
  150. package/src/creek-table/type.ts +5 -7
  151. package/src/index.tsx +4 -0
  152. package/src/locales/en-US.ts +24 -0
  153. package/src/locales/zh-CN.ts +24 -0
  154. package/src/utils/i18n.ts +4 -0
  155. package/dist/creek-table/TableOptionRender.d.ts +0 -9
  156. package/dist/creek-table/TableOptionRender.d.ts.map +0 -1
  157. package/dist/creek-table/TableOptionRender.js +0 -74
  158. package/dist/creek-table/TableOptionRender.js.map +0 -7
  159. package/dist/creek-table/toolBarRender.d.ts +0 -5
  160. package/dist/creek-table/toolBarRender.d.ts.map +0 -1
  161. package/dist/creek-table/toolBarRender.js +0 -58
  162. package/dist/creek-table/toolBarRender.js.map +0 -7
  163. package/src/creek-table/TableOptionRender.tsx +0 -57
  164. package/src/creek-table/toolBarRender.tsx +0 -28
@@ -0,0 +1,279 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/creek-table/hooks/useResizableColumns.tsx
30
+ var useResizableColumns_exports = {};
31
+ __export(useResizableColumns_exports, {
32
+ useResizableColumns: () => useResizableColumns
33
+ });
34
+ module.exports = __toCommonJS(useResizableColumns_exports);
35
+ var import_ahooks = require("ahooks");
36
+ var import_antd_style = require("antd-style");
37
+ var import_classnames = __toESM(require("classnames"));
38
+ var import_react = require("react");
39
+ var import_react_resizable = require("react-resizable");
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ var useStyles = (0, import_antd_style.createStyles)(({ token }) => ({
42
+ "resizable-handle": {
43
+ position: "absolute",
44
+ right: -5,
45
+ bottom: 0,
46
+ zIndex: 10,
47
+ width: 10,
48
+ height: "100%",
49
+ cursor: "col-resize",
50
+ touchAction: "none",
51
+ userSelect: "none",
52
+ // 添加一个小竖线作为视觉提示
53
+ "&::after": {
54
+ content: '""',
55
+ position: "absolute",
56
+ top: 0,
57
+ bottom: 0,
58
+ left: "50%",
59
+ width: 1,
60
+ opacity: 0,
61
+ transition: "all 0.3s",
62
+ transform: "translateX(-50%)"
63
+ },
64
+ "&:hover::after": {
65
+ opacity: 1
66
+ },
67
+ "&:active::after": {
68
+ opacity: 1
69
+ }
70
+ },
71
+ "resizable-th": {
72
+ position: "relative",
73
+ "&:hover .resizable-handle::after": {
74
+ opacity: 0.5
75
+ }
76
+ }
77
+ }));
78
+ var ResizableTitle = (props) => {
79
+ const { onResize, onResizeStart, onResizeStop, width, className, minWidth, ...restProps } = props;
80
+ const { styles } = useStyles();
81
+ const ref = (0, import_react.useRef)(null);
82
+ const [realWidth, setRealWidth] = (0, import_react.useState)(void 0);
83
+ const [localWidth, setLocalWidth] = (0, import_react.useState)(typeof width === "number" ? width : void 0);
84
+ const [isResizing, setIsResizing] = (0, import_react.useState)(false);
85
+ (0, import_react.useEffect)(() => {
86
+ if (!isResizing && typeof width === "number") {
87
+ setLocalWidth(width);
88
+ }
89
+ }, [width, isResizing]);
90
+ (0, import_react.useLayoutEffect)(() => {
91
+ if (ref.current) {
92
+ const w = ref.current.getBoundingClientRect().width;
93
+ setRealWidth(w);
94
+ if (typeof width !== "number") {
95
+ setLocalWidth(w);
96
+ }
97
+ }
98
+ }, []);
99
+ const handleResizeStart = (e, data) => {
100
+ setIsResizing(true);
101
+ document.body.style.userSelect = "none";
102
+ document.body.style.cursor = "col-resize";
103
+ if (onResizeStart) {
104
+ onResizeStart(e, data);
105
+ }
106
+ };
107
+ const handleResizeStop = (e, data) => {
108
+ setIsResizing(false);
109
+ document.body.style.userSelect = "";
110
+ document.body.style.cursor = "";
111
+ if (onResizeStop) {
112
+ onResizeStop(e, data);
113
+ }
114
+ };
115
+ const handleResize = (e, data) => {
116
+ setLocalWidth(data.size.width);
117
+ if (onResize) {
118
+ onResize(e, data);
119
+ }
120
+ };
121
+ const currentWidth = localWidth ?? realWidth;
122
+ if (typeof currentWidth === "number" && onResize) {
123
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
124
+ import_react_resizable.Resizable,
125
+ {
126
+ width: currentWidth,
127
+ height: 0,
128
+ minConstraints: [minWidth || 0, 0],
129
+ handle: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
130
+ "span",
131
+ {
132
+ className: (0, import_classnames.default)(styles["resizable-handle"], "resizable-handle"),
133
+ onClick: (e) => {
134
+ e.stopPropagation();
135
+ },
136
+ onMouseEnter: (e) => {
137
+ if (onResizeStart) {
138
+ onResizeStart(e, { node: e.currentTarget, size: { width: currentWidth, height: 0 }, handle: "e" });
139
+ }
140
+ }
141
+ }
142
+ ),
143
+ onResize: handleResize,
144
+ onResizeStart: handleResizeStart,
145
+ onResizeStop: handleResizeStop,
146
+ draggableOpts: { enableUserSelectHack: false },
147
+ axis: "x",
148
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("th", { ...restProps, className: (0, import_classnames.default)(className, styles["resizable-th"]), style: { ...restProps.style, width: currentWidth } })
149
+ }
150
+ );
151
+ }
152
+ if (!onResize || !realWidth) {
153
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("th", { ...restProps, className, ref });
154
+ }
155
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
156
+ import_react_resizable.Resizable,
157
+ {
158
+ width: realWidth,
159
+ height: 0,
160
+ minConstraints: [minWidth || 0, 0],
161
+ handle: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
162
+ "span",
163
+ {
164
+ className: (0, import_classnames.default)(styles["resizable-handle"], "resizable-handle"),
165
+ onClick: (e) => {
166
+ e.stopPropagation();
167
+ },
168
+ onMouseEnter: (e) => {
169
+ if (onResizeStart) {
170
+ onResizeStart(e, { node: e.currentTarget, size: { width: realWidth, height: 0 }, handle: "e" });
171
+ }
172
+ }
173
+ }
174
+ ),
175
+ onResize: handleResize,
176
+ onResizeStart: handleResizeStart,
177
+ onResizeStop: handleResizeStop,
178
+ draggableOpts: { enableUserSelectHack: false },
179
+ axis: "x",
180
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("th", { ...restProps, className: (0, import_classnames.default)(className, styles["resizable-th"]), style: { ...restProps.style, width: realWidth } })
181
+ }
182
+ );
183
+ };
184
+ var useResizableColumns = (columns, resizable = true, resizedWidthsProp, setResizedWidthsProp, tableRef) => {
185
+ const [internalResizedWidths, setInternalResizedWidths] = (0, import_react.useState)({});
186
+ const [minWidths, setMinWidths] = (0, import_react.useState)({});
187
+ const resizedWidths = resizedWidthsProp || internalResizedWidths;
188
+ const setResizedWidths = setResizedWidthsProp || setInternalResizedWidths;
189
+ const handleResize = (0, import_ahooks.useMemoizedFn)((key) => (_, { size }) => {
190
+ });
191
+ const handleResizeStop = (0, import_ahooks.useMemoizedFn)((key) => (_, { size }) => {
192
+ setResizedWidths((prev) => ({
193
+ ...prev,
194
+ [key]: size.width
195
+ }));
196
+ });
197
+ const handleResizeStart = (0, import_ahooks.useMemoizedFn)(() => {
198
+ if (!(tableRef == null ? void 0 : tableRef.current))
199
+ return;
200
+ const thElements = tableRef.current.querySelectorAll("th[data-column-key]");
201
+ if (!thElements || thElements.length === 0)
202
+ return;
203
+ const currentWidths = {};
204
+ thElements.forEach((th) => {
205
+ const key = th.getAttribute("data-column-key");
206
+ const width = th.getBoundingClientRect().width;
207
+ if (key && width) {
208
+ currentWidths[key] = width;
209
+ }
210
+ });
211
+ setResizedWidths((prev) => {
212
+ const next = { ...currentWidths, ...prev };
213
+ const isSame = Object.keys(next).every((k) => next[k] === prev[k]) && Object.keys(prev).length === Object.keys(next).length;
214
+ if (isSame)
215
+ return prev;
216
+ return next;
217
+ });
218
+ setMinWidths((prev) => {
219
+ const next = { ...prev };
220
+ let hasChange = false;
221
+ Object.keys(currentWidths).forEach((key) => {
222
+ if (next[key] === void 0) {
223
+ next[key] = currentWidths[key];
224
+ hasChange = true;
225
+ }
226
+ });
227
+ return hasChange ? next : prev;
228
+ });
229
+ });
230
+ const resizableColumns = (0, import_react.useMemo)(() => {
231
+ if (!resizable || !columns)
232
+ return columns;
233
+ return columns.map((col, index) => {
234
+ const key = col.key || col.dataIndex || `col-${index}`;
235
+ if (col.valueType === "option") {
236
+ return col;
237
+ }
238
+ const width = resizedWidths[key] ?? col.width;
239
+ const calculatedMinWidth = col.calculatedWidth || 0;
240
+ const autoMinWidth = minWidths[key] || 0;
241
+ const minWidth = Math.max(calculatedMinWidth, autoMinWidth);
242
+ return {
243
+ ...col,
244
+ width,
245
+ // 应用调整后的宽度
246
+ onHeaderCell: (column) => ({
247
+ width,
248
+ // 传递给 ResizableTitle
249
+ minWidth,
250
+ onResize: handleResize(key),
251
+ onResizeStart: handleResizeStart,
252
+ onResizeStop: handleResizeStop(key),
253
+ "data-column-key": key,
254
+ // 用于在 DOM 中查找
255
+ ...col.onHeaderCell ? col.onHeaderCell(column) : null
256
+ })
257
+ };
258
+ });
259
+ }, [columns, resizable, resizedWidths, handleResize, handleResizeStart, handleResizeStop]);
260
+ const components = (0, import_react.useMemo)(() => {
261
+ if (!resizable)
262
+ return void 0;
263
+ return {
264
+ header: {
265
+ cell: ResizableTitle
266
+ }
267
+ };
268
+ }, [resizable]);
269
+ return {
270
+ columns: resizableColumns,
271
+ components,
272
+ resizedWidths
273
+ };
274
+ };
275
+ // Annotate the CommonJS export names for ESM import in node:
276
+ 0 && (module.exports = {
277
+ useResizableColumns
278
+ });
279
+ //# sourceMappingURL=useResizableColumns.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/creek-table/hooks/useResizableColumns.tsx"],
4
+ "sourcesContent": ["import { ProColumns } from '@ant-design/pro-components';\nimport { useMemoizedFn } from 'ahooks';\nimport { createStyles } from 'antd-style';\nimport classnames from 'classnames';\nimport React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Resizable, ResizeCallbackData } from 'react-resizable';\n\ninterface ResizableTitleProps extends React.HTMLAttributes<HTMLTableCellElement> {\n onResize?: (e: React.SyntheticEvent, data: ResizeCallbackData) => void;\n onResizeStart?: (e: React.SyntheticEvent, data: ResizeCallbackData) => void;\n onResizeStop?: (e: React.SyntheticEvent, data: ResizeCallbackData) => void;\n width?: number | string;\n minWidth?: number;\n}\n\n// 样式定义\nconst useStyles = createStyles(({ token }) => ({\n 'resizable-handle': {\n position: 'absolute',\n right: -5,\n bottom: 0,\n zIndex: 10,\n width: 10,\n height: '100%',\n cursor: 'col-resize',\n touchAction: 'none',\n userSelect: 'none',\n \n // 添加一个小竖线作为视觉提示\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: '50%',\n width: 1,\n opacity: 0,\n transition: 'all 0.3s',\n transform: 'translateX(-50%)',\n },\n\n '&:hover::after': {\n opacity: 1,\n },\n\n '&:active::after': {\n opacity: 1,\n },\n },\n 'resizable-th': {\n position: 'relative',\n '&:hover .resizable-handle::after': {\n opacity: 0.5,\n },\n },\n}));\n\nconst ResizableTitle = (props: ResizableTitleProps) => {\n const { onResize, onResizeStart, onResizeStop, width, className, minWidth, ...restProps } = props;\n const { styles } = useStyles();\n\n // 2. 如果 width 不是数字,尝试测量(降级处理)\n const ref = useRef<HTMLTableCellElement>(null);\n const [realWidth, setRealWidth] = useState<number | undefined>(undefined);\n\n // 本地状态,用于控制拖动过程中的平滑更新\n // 初始化为 props.width (如果是数字) 或 undefined\n const [localWidth, setLocalWidth] = useState<number | undefined>(typeof width === 'number' ? width : undefined);\n const [isResizing, setIsResizing] = useState(false);\n\n // 当外部 width 变化且非拖动状态时,同步到内部\n useEffect(() => {\n if (!isResizing && typeof width === 'number') {\n setLocalWidth(width);\n }\n }, [width, isResizing]);\n\n useLayoutEffect(() => {\n if (ref.current) {\n const w = ref.current.getBoundingClientRect().width;\n setRealWidth(w);\n // 如果没有传入具体数字宽度,初始化 localWidth 为测量值\n if (typeof width !== 'number') {\n setLocalWidth(w);\n }\n }\n }, []); // 只在挂载时测量一次\n\n const handleResizeStart = (e: React.SyntheticEvent, data: ResizeCallbackData) => {\n setIsResizing(true);\n // 增加全局样式防止选中文字\n document.body.style.userSelect = 'none';\n document.body.style.cursor = 'col-resize';\n if (onResizeStart) {\n onResizeStart(e, data);\n }\n };\n\n const handleResizeStop = (e: React.SyntheticEvent, data: ResizeCallbackData) => {\n setIsResizing(false);\n document.body.style.userSelect = '';\n document.body.style.cursor = '';\n // 拖动结束时,确保最后一次更新传递出去\n if (onResizeStop) {\n onResizeStop(e, data);\n }\n };\n\n const handleResize = (e: React.SyntheticEvent, data: ResizeCallbackData) => {\n // 1. 立即更新本地状态,保证 handle 跟手\n setLocalWidth(data.size.width);\n \n // 2. 调用外部 onResize (可能会被节流)\n if (onResize) {\n onResize(e, data);\n }\n };\n\n // 1. 如果 width 是数字,直接使用,避免任何 state/effect 开销\n // 修改逻辑:只要有 localWidth 就使用 Resizable\n const currentWidth = localWidth ?? realWidth;\n\n if (typeof currentWidth === 'number' && onResize) {\n return (\n <Resizable\n width={currentWidth}\n height={0}\n minConstraints={[minWidth || 0, 0]}\n handle={\n <span\n className={classnames(styles['resizable-handle'], 'resizable-handle')}\n onClick={(e) => {\n e.stopPropagation();\n }}\n onMouseEnter={(e) => {\n // 鼠标进入 handle 时触发一次 onResizeStart,用于预先锁定其他列宽度\n // 这样可以避免在 onResizeStart (mousedown) 时触发重渲染导致 drag 失败\n if (onResizeStart) {\n // 构造一个假的 event 和 data,因为这里只需要触发锁定逻辑\n onResizeStart(e, { node: e.currentTarget, size: { width: currentWidth, height: 0 }, handle: 'e' as any });\n }\n }}\n />\n }\n onResize={handleResize}\n onResizeStart={handleResizeStart}\n onResizeStop={handleResizeStop}\n draggableOpts={{ enableUserSelectHack: false }} // 我们自己处理了 userSelect\n axis=\"x\"\n >\n <th {...restProps} className={classnames(className, styles['resizable-th'])} style={{ ...restProps.style, width: currentWidth }} />\n </Resizable>\n );\n }\n\n if (!onResize || !realWidth) {\n return <th {...restProps} className={className} ref={ref} />;\n }\n\n // Fallback (虽然逻辑上可能不需要了,保留以防万一)\n return (\n <Resizable\n width={realWidth}\n height={0}\n minConstraints={[minWidth || 0, 0]}\n handle={\n <span\n className={classnames(styles['resizable-handle'], 'resizable-handle')}\n onClick={(e) => {\n e.stopPropagation();\n }}\n onMouseEnter={(e) => {\n if (onResizeStart) {\n onResizeStart(e, { node: e.currentTarget, size: { width: realWidth, height: 0 }, handle: 'e' as any });\n }\n }}\n />\n }\n onResize={handleResize}\n onResizeStart={handleResizeStart}\n onResizeStop={handleResizeStop}\n draggableOpts={{ enableUserSelectHack: false }}\n axis=\"x\"\n >\n <th {...restProps} className={classnames(className, styles['resizable-th'])} style={{ ...restProps.style, width: realWidth }} />\n </Resizable>\n );\n};\n\nexport const useResizableColumns = <T, ValueType>(\n columns: ProColumns<T, ValueType>[] | undefined,\n resizable: boolean = true,\n resizedWidthsProp?: Record<string, number>,\n setResizedWidthsProp?: React.Dispatch<React.SetStateAction<Record<string, number>>>,\n tableRef?: React.RefObject<HTMLDivElement>,\n): { \n columns: ProColumns<T, ValueType>[] | undefined;\n components: { header: { cell: React.ComponentType<ResizableTitleProps> } } | undefined;\n resizedWidths: Record<string, number>;\n} => {\n // 存储用户手动调整的列宽\n const [internalResizedWidths, setInternalResizedWidths] = useState<Record<string, number>>({});\n // 存储列的初始自动计算宽度,作为最小宽度限制\n const [minWidths, setMinWidths] = useState<Record<string, number>>({});\n\n const resizedWidths = resizedWidthsProp || internalResizedWidths;\n const setResizedWidths = setResizedWidthsProp || setInternalResizedWidths;\n\n // 性能优化:Resize 过程中不更新 state,只在 Stop 时更新\n // handleResize 仅用于 potential future usage (e.g. events) or removed if not needed\n const handleResize = useMemoizedFn((key: string) => (_: React.SyntheticEvent, { size }: ResizeCallbackData) => {\n // Intentionally empty or minimal logic to avoid re-renders during drag\n // ResizableTitle handles visual updates locally\n });\n \n const handleResizeStop = useMemoizedFn((key: string) => (_: React.SyntheticEvent, { size }: ResizeCallbackData) => {\n setResizedWidths((prev) => ({\n ...prev,\n [key]: size.width,\n }));\n });\n\n const handleResizeStart = useMemoizedFn(() => {\n // 只有当 tableRef 存在时才能获取当前宽度\n if (!tableRef?.current) return;\n\n // 查找所有表头单元格\n const thElements = tableRef.current.querySelectorAll('th[data-column-key]');\n if (!thElements || thElements.length === 0) return;\n\n const currentWidths: Record<string, number> = {};\n thElements.forEach((th) => {\n const key = th.getAttribute('data-column-key');\n const width = th.getBoundingClientRect().width;\n if (key && width) {\n currentWidths[key] = width;\n }\n });\n\n setResizedWidths((prev) => {\n // 只有当之前的状态中缺少某些列的宽度时,才合并当前宽度\n // 这样可以避免覆盖用户已经调整过的值,同时填补未调整列的宽度\n // 实际上,我们希望一旦开始 resize,所有列都有明确的宽度\n const next = { ...currentWidths, ...prev };\n \n // 简单的浅比较,如果内容没变就不更新,避免重渲染\n const isSame = Object.keys(next).every(k => next[k] === prev[k]) && Object.keys(prev).length === Object.keys(next).length;\n if (isSame) return prev;\n\n return next;\n });\n\n // 记录初始宽度作为 minWidth\n setMinWidths((prev) => {\n const next = { ...prev };\n let hasChange = false;\n Object.keys(currentWidths).forEach((key) => {\n // 只有当没有记录该列的最小宽度时才记录\n // 这样可以确保 minWidth 始终是第一次捕获时的宽度(即 auto 宽度)\n if (next[key] === undefined) {\n next[key] = currentWidths[key];\n hasChange = true;\n }\n });\n return hasChange ? next : prev;\n });\n });\n\n const resizableColumns = useMemo(() => {\n if (!resizable || !columns) return columns;\n\n return columns.map((col, index) => {\n // 优先使用 key,如果没有则使用 dataIndex,如果都没有则使用 index\n const key = (col.key as string) || (col.dataIndex as string) || `col-${index}`;\n \n // 针对 valueType 为 'option' 的操作列,不启用 resizing\n if (col.valueType === 'option') {\n return col;\n }\n \n // 只有当存在 resizedWidths[key] 时才使用它,否则完全依赖外部传入的 col.width(即 useAutoWidthColumns 计算出的宽度)\n const width = resizedWidths[key] ?? col.width;\n\n // 从 col 中获取 calculatedWidth 作为 minWidth\n const calculatedMinWidth = (col as any).calculatedWidth || 0;\n // 使用捕获到的 auto 宽度作为最小宽度,如果没有则使用 0\n const autoMinWidth = minWidths[key] || 0;\n \n // 最终的 minWidth 取两者的最大值,确保至少是 auto 宽度\n const minWidth = Math.max(calculatedMinWidth, autoMinWidth);\n\n return {\n ...col,\n width, // 应用调整后的宽度\n onHeaderCell: (column: any) => ({\n width: width, // 传递给 ResizableTitle\n minWidth: minWidth,\n onResize: handleResize(key),\n onResizeStart: handleResizeStart,\n onResizeStop: handleResizeStop(key),\n 'data-column-key': key, // 用于在 DOM 中查找\n ...(col.onHeaderCell ? col.onHeaderCell(column) : null),\n }) as React.HTMLAttributes<HTMLElement>,\n };\n });\n }, [columns, resizable, resizedWidths, handleResize, handleResizeStart, handleResizeStop]);\n\n const components = useMemo(() => {\n if (!resizable) return undefined;\n\n return {\n header: {\n cell: ResizableTitle,\n },\n };\n }, [resizable]);\n\n return {\n columns: resizableColumns,\n components,\n resizedWidths,\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA8B;AAC9B,wBAA6B;AAC7B,wBAAuB;AACvB,mBAA6E;AAC7E,6BAA8C;AA4HpC;AAjHV,IAAM,gBAAY,gCAAa,CAAC,EAAE,MAAM,OAAO;AAAA,EAC7C,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,YAAY;AAAA;AAAA,IAGZ,YAAY;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,WAAW;AAAA,IACb;AAAA,IAEA,kBAAkB;AAAA,MAChB,SAAS;AAAA,IACX;AAAA,IAEA,mBAAmB;AAAA,MACjB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,UAAU;AAAA,IACV,oCAAoC;AAAA,MAClC,SAAS;AAAA,IACX;AAAA,EACF;AACF,EAAE;AAEF,IAAM,iBAAiB,CAAC,UAA+B;AACrD,QAAM,EAAE,UAAU,eAAe,cAAc,OAAO,WAAW,UAAU,GAAG,UAAU,IAAI;AAC5F,QAAM,EAAE,OAAO,IAAI,UAAU;AAG7B,QAAM,UAAM,qBAA6B,IAAI;AAC7C,QAAM,CAAC,WAAW,YAAY,QAAI,uBAA6B,MAAS;AAIxE,QAAM,CAAC,YAAY,aAAa,QAAI,uBAA6B,OAAO,UAAU,WAAW,QAAQ,MAAS;AAC9G,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAGlD,8BAAU,MAAM;AACd,QAAI,CAAC,cAAc,OAAO,UAAU,UAAU;AAC5C,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,oCAAgB,MAAM;AACpB,QAAI,IAAI,SAAS;AACf,YAAM,IAAI,IAAI,QAAQ,sBAAsB,EAAE;AAC9C,mBAAa,CAAC;AAEd,UAAI,OAAO,UAAU,UAAU;AAC7B,sBAAc,CAAC;AAAA,MACjB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAoB,CAAC,GAAyB,SAA6B;AAC/E,kBAAc,IAAI;AAElB,aAAS,KAAK,MAAM,aAAa;AACjC,aAAS,KAAK,MAAM,SAAS;AAC7B,QAAI,eAAe;AACjB,oBAAc,GAAG,IAAI;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,mBAAmB,CAAC,GAAyB,SAA6B;AAC9E,kBAAc,KAAK;AACnB,aAAS,KAAK,MAAM,aAAa;AACjC,aAAS,KAAK,MAAM,SAAS;AAE7B,QAAI,cAAc;AAChB,mBAAa,GAAG,IAAI;AAAA,IACtB;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,GAAyB,SAA6B;AAE1E,kBAAc,KAAK,KAAK,KAAK;AAG7B,QAAI,UAAU;AACZ,eAAS,GAAG,IAAI;AAAA,IAClB;AAAA,EACF;AAIA,QAAM,eAAe,cAAc;AAEnC,MAAI,OAAO,iBAAiB,YAAY,UAAU;AAChD,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,gBAAgB,CAAC,YAAY,GAAG,CAAC;AAAA,QACjC,QACE;AAAA,UAAC;AAAA;AAAA,YACC,eAAW,kBAAAA,SAAW,OAAO,kBAAkB,GAAG,kBAAkB;AAAA,YACpE,SAAS,CAAC,MAAM;AACd,gBAAE,gBAAgB;AAAA,YACpB;AAAA,YACA,cAAc,CAAC,MAAM;AAGlB,kBAAI,eAAe;AAEjB,8BAAc,GAAG,EAAE,MAAM,EAAE,eAAe,MAAM,EAAE,OAAO,cAAc,QAAQ,EAAE,GAAG,QAAQ,IAAW,CAAC;AAAA,cAC1G;AAAA,YACH;AAAA;AAAA,QACF;AAAA,QAEF,UAAU;AAAA,QACV,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe,EAAE,sBAAsB,MAAM;AAAA,QAC7C,MAAK;AAAA,QAEL,sDAAC,QAAI,GAAG,WAAW,eAAW,kBAAAA,SAAW,WAAW,OAAO,cAAc,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,OAAO,OAAO,aAAa,GAAG;AAAA;AAAA,IACnI;AAAA,EAEJ;AAEA,MAAI,CAAC,YAAY,CAAC,WAAW;AAC3B,WAAO,4CAAC,QAAI,GAAG,WAAW,WAAsB,KAAU;AAAA,EAC5D;AAGA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,gBAAgB,CAAC,YAAY,GAAG,CAAC;AAAA,MACjC,QACE;AAAA,QAAC;AAAA;AAAA,UACC,eAAW,kBAAAA,SAAW,OAAO,kBAAkB,GAAG,kBAAkB;AAAA,UACpE,SAAS,CAAC,MAAM;AACd,cAAE,gBAAgB;AAAA,UACpB;AAAA,UACA,cAAc,CAAC,MAAM;AAClB,gBAAI,eAAe;AACjB,4BAAc,GAAG,EAAE,MAAM,EAAE,eAAe,MAAM,EAAE,OAAO,WAAW,QAAQ,EAAE,GAAG,QAAQ,IAAW,CAAC;AAAA,YACvG;AAAA,UACH;AAAA;AAAA,MACF;AAAA,MAEF,UAAU;AAAA,MACV,eAAe;AAAA,MACf,cAAc;AAAA,MACd,eAAe,EAAE,sBAAsB,MAAM;AAAA,MAC7C,MAAK;AAAA,MAEL,sDAAC,QAAI,GAAG,WAAW,eAAW,kBAAAA,SAAW,WAAW,OAAO,cAAc,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,OAAO,OAAO,UAAU,GAAG;AAAA;AAAA,EAChI;AAEJ;AAEO,IAAM,sBAAsB,CACjC,SACA,YAAqB,MACrB,mBACA,sBACA,aAKG;AAEH,QAAM,CAAC,uBAAuB,wBAAwB,QAAI,uBAAiC,CAAC,CAAC;AAE7F,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAiC,CAAC,CAAC;AAErE,QAAM,gBAAgB,qBAAqB;AAC3C,QAAM,mBAAmB,wBAAwB;AAIjD,QAAM,mBAAe,6BAAc,CAAC,QAAgB,CAAC,GAAyB,EAAE,KAAK,MAA0B;AAAA,EAG/G,CAAC;AAED,QAAM,uBAAmB,6BAAc,CAAC,QAAgB,CAAC,GAAyB,EAAE,KAAK,MAA0B;AACjH,qBAAiB,CAAC,UAAU;AAAA,MACxB,GAAG;AAAA,MACH,CAAC,GAAG,GAAG,KAAK;AAAA,IAChB,EAAE;AAAA,EACJ,CAAC;AAED,QAAM,wBAAoB,6BAAc,MAAM;AAE5C,QAAI,EAAC,qCAAU;AAAS;AAGxB,UAAM,aAAa,SAAS,QAAQ,iBAAiB,qBAAqB;AAC1E,QAAI,CAAC,cAAc,WAAW,WAAW;AAAG;AAE5C,UAAM,gBAAwC,CAAC;AAC/C,eAAW,QAAQ,CAAC,OAAO;AACzB,YAAM,MAAM,GAAG,aAAa,iBAAiB;AAC7C,YAAM,QAAQ,GAAG,sBAAsB,EAAE;AACzC,UAAI,OAAO,OAAO;AAChB,sBAAc,GAAG,IAAI;AAAA,MACvB;AAAA,IACF,CAAC;AAED,qBAAiB,CAAC,SAAS;AAIzB,YAAM,OAAO,EAAE,GAAG,eAAe,GAAG,KAAK;AAGzC,YAAM,SAAS,OAAO,KAAK,IAAI,EAAE,MAAM,OAAK,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,IAAI,EAAE,WAAW,OAAO,KAAK,IAAI,EAAE;AACnH,UAAI;AAAQ,eAAO;AAEnB,aAAO;AAAA,IACT,CAAC;AAGD,iBAAa,CAAC,SAAS;AACrB,YAAM,OAAO,EAAE,GAAG,KAAK;AACvB,UAAI,YAAY;AAChB,aAAO,KAAK,aAAa,EAAE,QAAQ,CAAC,QAAQ;AAG1C,YAAI,KAAK,GAAG,MAAM,QAAW;AAC3B,eAAK,GAAG,IAAI,cAAc,GAAG;AAC7B,sBAAY;AAAA,QACd;AAAA,MACF,CAAC;AACD,aAAO,YAAY,OAAO;AAAA,IAC5B,CAAC;AAAA,EACH,CAAC;AAED,QAAM,uBAAmB,sBAAQ,MAAM;AACrC,QAAI,CAAC,aAAa,CAAC;AAAS,aAAO;AAEnC,WAAO,QAAQ,IAAI,CAAC,KAAK,UAAU;AAEjC,YAAM,MAAO,IAAI,OAAmB,IAAI,aAAwB,OAAO;AAGvE,UAAI,IAAI,cAAc,UAAU;AAC9B,eAAO;AAAA,MACT;AAGA,YAAM,QAAQ,cAAc,GAAG,KAAK,IAAI;AAGxC,YAAM,qBAAsB,IAAY,mBAAmB;AAE3D,YAAM,eAAe,UAAU,GAAG,KAAK;AAGvC,YAAM,WAAW,KAAK,IAAI,oBAAoB,YAAY;AAE1D,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA;AAAA,QACA,cAAc,CAAC,YAAiB;AAAA,UAC9B;AAAA;AAAA,UACA;AAAA,UACA,UAAU,aAAa,GAAG;AAAA,UAC1B,eAAe;AAAA,UACf,cAAc,iBAAiB,GAAG;AAAA,UAClC,mBAAmB;AAAA;AAAA,UACnB,GAAI,IAAI,eAAe,IAAI,aAAa,MAAM,IAAI;AAAA,QACpD;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,WAAW,eAAe,cAAc,mBAAmB,gBAAgB,CAAC;AAEzF,QAAM,iBAAa,sBAAQ,MAAM;AAC/B,QAAI,CAAC;AAAW,aAAO;AAEvB,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAEd,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": ["classnames"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import { ProColumns } from '@ant-design/pro-components';
2
+ export declare const useStatusColumns: <T, ValueType>(columns?: ProColumns<T, ValueType>[]) => ProColumns<T, ValueType>[] | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStatusColumns.d.ts","sourceRoot":"","sources":["../../../src/creek-table/hooks/useStatusColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA+HxD,eAAO,MAAM,gBAAgB,2BACjB,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,2CA2HrC,CAAC"}
@@ -0,0 +1,215 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/creek-table/hooks/useStatusColumns.tsx
20
+ var useStatusColumns_exports = {};
21
+ __export(useStatusColumns_exports, {
22
+ useStatusColumns: () => useStatusColumns
23
+ });
24
+ module.exports = __toCommonJS(useStatusColumns_exports);
25
+ var import_antd = require("antd");
26
+ var import_lodash = require("lodash");
27
+ var import_react = require("react");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ var PRESET_COLORS = [
30
+ "blue",
31
+ "green",
32
+ "volcano",
33
+ "orange",
34
+ "gold",
35
+ "lime",
36
+ "cyan",
37
+ "geekblue",
38
+ "purple",
39
+ "magenta"
40
+ ];
41
+ var SEMANTIC_STATUS_MAP = {
42
+ // Success / Green
43
+ success: "success",
44
+ ok: "success",
45
+ pass: "success",
46
+ complete: "success",
47
+ finish: "success",
48
+ online: "success",
49
+ active: "success",
50
+ enable: "success",
51
+ published: "success",
52
+ open: "success",
53
+ 正常: "success",
54
+ 成功: "success",
55
+ 完成: "success",
56
+ 通过: "success",
57
+ 启用: "success",
58
+ 在线: "success",
59
+ 发布: "success",
60
+ 开启: "success",
61
+ 已发布: "success",
62
+ // Error / Red
63
+ fail: "error",
64
+ error: "error",
65
+ reject: "error",
66
+ stop: "error",
67
+ close: "error",
68
+ offline: "error",
69
+ disable: "error",
70
+ banned: "error",
71
+ exception: "error",
72
+ blocked: "error",
73
+ 失败: "error",
74
+ 错误: "error",
75
+ 拒绝: "error",
76
+ 停止: "error",
77
+ 关闭: "error",
78
+ 离线: "error",
79
+ 禁用: "error",
80
+ 异常: "error",
81
+ 封禁: "error",
82
+ // Processing / Blue
83
+ process: "processing",
84
+ running: "processing",
85
+ pending: "processing",
86
+ waiting: "processing",
87
+ loading: "processing",
88
+ init: "processing",
89
+ doing: "processing",
90
+ 进行中: "processing",
91
+ 处理中: "processing",
92
+ 等待: "processing",
93
+ 加载: "processing",
94
+ 初始化: "processing",
95
+ 启动: "processing",
96
+ 运行中: "processing",
97
+ // Warning / Warning
98
+ warn: "warning",
99
+ timeout: "warning",
100
+ expire: "warning",
101
+ risk: "warning",
102
+ abnormal: "warning",
103
+ 警告: "warning",
104
+ 超时: "warning",
105
+ 过期: "warning",
106
+ 风险: "warning",
107
+ // Default
108
+ default: "default",
109
+ normal: "default",
110
+ unknown: "default",
111
+ 默认: "default",
112
+ 未知: "default"
113
+ };
114
+ var inferStatusColor = (key, text) => {
115
+ const normalizedKey = String(key).toLowerCase();
116
+ const normalizedText = String(text).toLowerCase();
117
+ for (const keyword in SEMANTIC_STATUS_MAP) {
118
+ if (normalizedKey.includes(keyword)) {
119
+ return SEMANTIC_STATUS_MAP[keyword];
120
+ }
121
+ }
122
+ for (const keyword in SEMANTIC_STATUS_MAP) {
123
+ if (normalizedText.includes(keyword)) {
124
+ return SEMANTIC_STATUS_MAP[keyword];
125
+ }
126
+ }
127
+ let hash = 0;
128
+ for (let i = 0; i < normalizedKey.length; i++) {
129
+ hash = normalizedKey.charCodeAt(i) + ((hash << 5) - hash);
130
+ }
131
+ const index = Math.abs(hash) % PRESET_COLORS.length;
132
+ return PRESET_COLORS[index];
133
+ };
134
+ var useStatusColumns = (columns) => {
135
+ return (0, import_react.useMemo)(() => {
136
+ return columns == null ? void 0 : columns.map((col) => {
137
+ var _a;
138
+ if (col.render) {
139
+ return col;
140
+ }
141
+ if (!col.valueEnum) {
142
+ return col;
143
+ }
144
+ const statusRender = (_a = col.fieldProps) == null ? void 0 : _a.statusRender;
145
+ if (statusRender === "none") {
146
+ return col;
147
+ }
148
+ return {
149
+ ...col,
150
+ render: (dom, entity, index, action, schema) => {
151
+ const valueEnum = schema == null ? void 0 : schema.valueEnum;
152
+ if (!valueEnum) {
153
+ return dom;
154
+ }
155
+ const dataIndex = col.dataIndex || col.key;
156
+ const rawValue = typeof dataIndex === "string" || Array.isArray(dataIndex) ? (0, import_lodash.get)(entity, dataIndex) : void 0;
157
+ if (rawValue === void 0 || rawValue === null) {
158
+ return dom;
159
+ }
160
+ let enumItem = null;
161
+ if (valueEnum instanceof Map) {
162
+ enumItem = valueEnum.get(rawValue);
163
+ if (!enumItem && typeof rawValue === "number") {
164
+ enumItem = valueEnum.get(String(rawValue));
165
+ } else if (!enumItem && typeof rawValue === "string") {
166
+ enumItem = valueEnum.get(Number(rawValue));
167
+ }
168
+ } else {
169
+ enumItem = valueEnum[rawValue];
170
+ }
171
+ if (!enumItem) {
172
+ return dom;
173
+ }
174
+ if (enumItem.color && statusRender !== "badge") {
175
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Tag, { color: enumItem.color, style: { margin: 0 }, children: enumItem.text || dom });
176
+ }
177
+ if (enumItem.status && statusRender !== "tag") {
178
+ const status = String(enumItem.status).toLowerCase();
179
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Badge, { status, text: enumItem.text || dom });
180
+ }
181
+ if (enumItem.status === null || enumItem.status === false) {
182
+ return dom;
183
+ }
184
+ const inferred = inferStatusColor(
185
+ rawValue,
186
+ enumItem.text || String(rawValue)
187
+ );
188
+ if (statusRender === "tag") {
189
+ let tagColor = inferred;
190
+ if (inferred === "processing")
191
+ tagColor = "blue";
192
+ if (inferred === "error")
193
+ tagColor = "error";
194
+ if (inferred === "success")
195
+ tagColor = "success";
196
+ if (inferred === "warning")
197
+ tagColor = "warning";
198
+ if (inferred === "default")
199
+ tagColor = "default";
200
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Tag, { color: tagColor, style: { margin: 0 }, children: enumItem.text || dom });
201
+ }
202
+ if (["success", "processing", "error", "default", "warning"].includes(inferred)) {
203
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Badge, { status: inferred, text: enumItem.text || dom });
204
+ }
205
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Badge, { color: inferred, text: enumItem.text || dom });
206
+ }
207
+ };
208
+ });
209
+ }, [columns]);
210
+ };
211
+ // Annotate the CommonJS export names for ESM import in node:
212
+ 0 && (module.exports = {
213
+ useStatusColumns
214
+ });
215
+ //# sourceMappingURL=useStatusColumns.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/creek-table/hooks/useStatusColumns.tsx"],
4
+ "sourcesContent": ["import { ProColumns } from '@ant-design/pro-components';\nimport { Badge, Tag } from 'antd';\nimport { get } from 'lodash';\nimport React, { useMemo } from 'react';\n\n// Preset colors for automatic assignment when no semantic match is found\nconst PRESET_COLORS = [\n 'blue',\n 'green',\n 'volcano',\n 'orange',\n 'gold',\n 'lime',\n 'cyan',\n 'geekblue',\n 'purple',\n 'magenta',\n];\n\n// Semantic keywords mapping\nconst SEMANTIC_STATUS_MAP: Record<string, string> = {\n // Success / Green\n success: 'success',\n ok: 'success',\n pass: 'success',\n complete: 'success',\n finish: 'success',\n online: 'success',\n active: 'success',\n enable: 'success',\n published: 'success',\n open: 'success',\n 正常: 'success',\n 成功: 'success',\n 完成: 'success',\n 通过: 'success',\n 启用: 'success',\n 在线: 'success',\n 发布: 'success',\n 开启: 'success',\n 已发布: 'success',\n\n // Error / Red\n fail: 'error',\n error: 'error',\n reject: 'error',\n stop: 'error',\n close: 'error',\n offline: 'error',\n disable: 'error',\n banned: 'error',\n exception: 'error',\n blocked: 'error',\n 失败: 'error',\n 错误: 'error',\n 拒绝: 'error',\n 停止: 'error',\n 关闭: 'error',\n 离线: 'error',\n 禁用: 'error',\n 异常: 'error',\n 封禁: 'error',\n\n // Processing / Blue\n process: 'processing',\n running: 'processing',\n pending: 'processing',\n waiting: 'processing',\n loading: 'processing',\n init: 'processing',\n doing: 'processing',\n 进行中: 'processing',\n 处理中: 'processing',\n 等待: 'processing',\n 加载: 'processing',\n 初始化: 'processing',\n 启动: 'processing',\n 运行中: 'processing',\n\n // Warning / Warning\n warn: 'warning',\n timeout: 'warning',\n expire: 'warning',\n risk: 'warning',\n abnormal: 'warning',\n 警告: 'warning',\n 超时: 'warning',\n 过期: 'warning',\n 风险: 'warning',\n\n // Default\n default: 'default',\n normal: 'default',\n unknown: 'default',\n 默认: 'default',\n 未知: 'default',\n};\n\n// Helper to determine status color based on text or key\nconst inferStatusColor = (key: string | number, text: string): string => {\n const normalizedKey = String(key).toLowerCase();\n const normalizedText = String(text).toLowerCase();\n\n // 1. Try to match key first\n for (const keyword in SEMANTIC_STATUS_MAP) {\n if (normalizedKey.includes(keyword)) {\n return SEMANTIC_STATUS_MAP[keyword];\n }\n }\n\n // 2. Try to match text\n for (const keyword in SEMANTIC_STATUS_MAP) {\n if (normalizedText.includes(keyword)) {\n return SEMANTIC_STATUS_MAP[keyword];\n }\n }\n\n // 3. Fallback to deterministic hash color\n // Use a simple hash of the key to pick a color from PRESET_COLORS\n let hash = 0;\n for (let i = 0; i < normalizedKey.length; i++) {\n hash = normalizedKey.charCodeAt(i) + ((hash << 5) - hash);\n }\n const index = Math.abs(hash) % PRESET_COLORS.length;\n return PRESET_COLORS[index];\n};\n\nexport const useStatusColumns = <T, ValueType>(\n columns?: ProColumns<T, ValueType>[],\n) => {\n return useMemo(() => {\n return columns?.map((col) => {\n // If user has custom render, we respect it and do nothing\n if (col.render) {\n return col;\n }\n\n // If no valueEnum, we do nothing\n if (!col.valueEnum) {\n return col;\n }\n\n // Check fieldProps for explicit status render mode: 'tag' | 'badge' | 'none' | undefined (auto)\n // We use fieldProps because it's a standard place to put custom column props without TS errors\n const statusRender = (col.fieldProps as any)?.statusRender;\n \n\n if (statusRender === 'none') {\n return col;\n }\n\n // We wrap the render function to support Tag and Badge automatically based on valueEnum properties\n return {\n ...col,\n render: (\n dom: React.ReactNode,\n entity: T,\n index: number,\n action: any,\n schema: any,\n ) => {\n const valueEnum = schema?.valueEnum;\n if (!valueEnum) {\n return dom;\n }\n\n // Get raw value\n const dataIndex = col.dataIndex || col.key;\n // dataIndex can be array or string\n const rawValue =\n typeof dataIndex === 'string' || Array.isArray(dataIndex)\n ? get(entity, dataIndex as any)\n : undefined;\n\n if (rawValue === undefined || rawValue === null) {\n return dom;\n }\n\n // valueEnum can be Map or Object\n let enumItem = null;\n if (valueEnum instanceof Map) {\n enumItem = valueEnum.get(rawValue);\n // Try string key if number key fails, or vice versa\n if (!enumItem && typeof rawValue === 'number') {\n enumItem = valueEnum.get(String(rawValue));\n } else if (!enumItem && typeof rawValue === 'string') {\n enumItem = valueEnum.get(Number(rawValue));\n }\n } else {\n enumItem = valueEnum[rawValue as string];\n }\n\n if (!enumItem) {\n return dom;\n }\n\n // 1. If color is present, render Tag (unless forced to badge)\n if (enumItem.color && statusRender !== 'badge') {\n return (\n <Tag color={enumItem.color} style={{ margin: 0 }}>\n {enumItem.text || dom}\n </Tag>\n );\n }\n\n // 2. If status is present, render Badge (unless forced to tag)\n // ProTable usually handles this, but since we overrode render, we must handle it\n if (enumItem.status && statusRender !== 'tag') {\n const status = String(enumItem.status).toLowerCase();\n return <Badge status={status as any} text={enumItem.text || dom} />;\n }\n\n // 3. If neither is present, try to infer color automatically\n // Only infer if it's NOT explicitly set to null/false (in case user wants plain text)\n if (enumItem.status === null || enumItem.status === false) {\n return dom;\n }\n const inferred = inferStatusColor(\n rawValue,\n enumItem.text || String(rawValue),\n );\n\n // Force Tag mode\n if (statusRender === 'tag') {\n // Map semantic status to actual colors for Tag\n let tagColor = inferred;\n if (inferred === 'processing') tagColor = 'blue';\n if (inferred === 'error') tagColor = 'error';\n if (inferred === 'success') tagColor = 'success';\n if (inferred === 'warning') tagColor = 'warning';\n if (inferred === 'default') tagColor = 'default';\n\n return (\n <Tag color={tagColor} style={{ margin: 0 }}>\n {enumItem.text || dom}\n </Tag>\n );\n }\n\n // Default / Force Badge mode\n // If it is a semantic status, use status prop\n if (['success', 'processing', 'error', 'default', 'warning'].includes(inferred)) {\n return <Badge status={inferred as any} text={enumItem.text || dom} />;\n }\n\n // Otherwise use color prop (for preset colors like 'volcano', 'gold', etc.)\n return <Badge color={inferred} text={enumItem.text || dom} />;\n },\n } as ProColumns<T, ValueType>;\n });\n }, [columns]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import { ParamsType, ProTableProps } from '@ant-design/pro-components';
2
+ /**
3
+ * Hook to manage ProTable options logic including density and settings
4
+ *
5
+ * @param options User provided options configuration
6
+ * @param size User provided size (density)
7
+ * @returns { finalOptions, tableSize, setTableSize }
8
+ */
9
+ export declare const useTableOptions: <T extends ParamsType, U extends ParamsType, ValueType = "text">(options: ProTableProps<T, U, ValueType>['options'], size?: ProTableProps<T, U, ValueType>['size'], optionsRender?: ProTableProps<T, U, ValueType>['optionsRender']) => {
10
+ finalOptions: ProTableProps<T, U, ValueType>['options'];
11
+ tableSize: ProTableProps<T, U, ValueType>['size'];
12
+ setTableSize: React.Dispatch<React.SetStateAction<ProTableProps<T, U, ValueType>['size']>>;
13
+ showDensity: boolean;
14
+ finalOptionsRender: ProTableProps<T, U, ValueType>['optionsRender'];
15
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableOptions.d.ts","sourceRoot":"","sources":["../../../src/creek-table/hooks/useTableOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAKvE;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,4EACjB,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,SAC3C,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,kBAC7B,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC;kBAEjD,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;eAC5C,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC;kBACnC,MAAM,QAAQ,CAAC,MAAM,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC7E,OAAO;wBACA,cAAc,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC;CA2DpE,CAAC"}