@zat-design/sisyphus-react 4.5.10-beta.1 → 4.5.10-beta.2

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 (266) hide show
  1. package/es/FormsProvider/index.js +14 -21
  2. package/es/ProAction/components/CheckModalContent/index.js +12 -26
  3. package/es/ProAction/index.js +79 -83
  4. package/es/ProAction/propsType.js +0 -1
  5. package/es/ProConfigProvider/index.js +63 -110
  6. package/es/ProConfigProvider/propsType.js +0 -1
  7. package/es/ProDownload/index.js +55 -65
  8. package/es/ProDownload/propsType.js +0 -1
  9. package/es/ProDownload/utils.js +61 -95
  10. package/es/ProDrawerForm/components/ProDrawer/index.js +83 -113
  11. package/es/ProDrawerForm/components/ProModal/index.js +77 -108
  12. package/es/ProDrawerForm/components/index.js +6 -2
  13. package/es/ProDrawerForm/hooks/useConfirmClose.js +20 -39
  14. package/es/ProDrawerForm/index.js +29 -38
  15. package/es/ProDrawerForm/propsType.js +0 -1
  16. package/es/ProDrawerForm/utils/index.js +18 -36
  17. package/es/ProEditLabel/components/RenderProForm.js +45 -49
  18. package/es/ProEditLabel/index.js +126 -163
  19. package/es/ProEditLabel/propsType.js +0 -1
  20. package/es/ProEditLabel/utils/index.js +5 -8
  21. package/es/ProEditTable/components/ActionButton/index.js +111 -119
  22. package/es/ProEditTable/components/RcTable/BaseTable.js +38 -51
  23. package/es/ProEditTable/components/RcTable/DraggableTable.js +97 -129
  24. package/es/ProEditTable/components/RcTable/index.js +6 -4
  25. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +77 -95
  26. package/es/ProEditTable/components/RenderField/index.js +490 -587
  27. package/es/ProEditTable/components/RenderField/propsType.js +0 -1
  28. package/es/ProEditTable/components/RenderField/tools.js +115 -112
  29. package/es/ProEditTable/components/RenderToolbar/index.js +47 -73
  30. package/es/ProEditTable/components/Summary/index.js +38 -64
  31. package/es/ProEditTable/components/Validator/index.js +46 -46
  32. package/es/ProEditTable/components/index.js +12 -5
  33. package/es/ProEditTable/index.js +456 -378
  34. package/es/ProEditTable/propsType.js +0 -1
  35. package/es/ProEditTable/utils/config.js +60 -122
  36. package/es/ProEditTable/utils/diffOriginal.js +45 -82
  37. package/es/ProEditTable/utils/getDefaultProps.js +19 -24
  38. package/es/ProEditTable/utils/index.js +150 -236
  39. package/es/ProEditTable/utils/tools.js +149 -286
  40. package/es/ProEditTable/utils/transform.js +25 -30
  41. package/es/ProEditTable/utils/useEditTableError.js +30 -43
  42. package/es/ProEditTable/utils/useShouldUpdateForTable.js +42 -72
  43. package/es/ProEditTable/utils/validateAll.js +87 -154
  44. package/es/ProEnum/components/Group.js +38 -30
  45. package/es/ProEnum/components/Tag.js +22 -26
  46. package/es/ProEnum/hooks/useEnum.js +48 -116
  47. package/es/ProEnum/hooks/useEnumRequest.js +128 -179
  48. package/es/ProEnum/hooks/useFrequentEnumRequest.js +40 -48
  49. package/es/ProEnum/index.js +162 -172
  50. package/es/ProEnum/propsType.js +0 -1
  51. package/es/ProEnum/utils/eventCenter.js +10 -12
  52. package/es/ProEnum/utils/frequentEnum.js +35 -92
  53. package/es/ProEnum/utils/getEnum.js +32 -90
  54. package/es/ProEnum/utils/getEnumLabel.js +44 -49
  55. package/es/ProEnum/utils/index.js +93 -207
  56. package/es/ProForm/components/Container.js +13 -28
  57. package/es/ProForm/components/FormFooter/index.js +36 -44
  58. package/es/ProForm/components/FormFooter/propsType.js +0 -1
  59. package/es/ProForm/components/base/Checkbox/index.js +32 -59
  60. package/es/ProForm/components/base/DatePicker/index.js +49 -71
  61. package/es/ProForm/components/base/Input/index.js +63 -97
  62. package/es/ProForm/components/base/Input/propsType.js +0 -1
  63. package/es/ProForm/components/base/InputNumber/index.js +118 -172
  64. package/es/ProForm/components/base/Radio/index.js +39 -52
  65. package/es/ProForm/components/base/RangePicker/index.js +109 -127
  66. package/es/ProForm/components/base/RangePicker/useDateRange.js +20 -17
  67. package/es/ProForm/components/base/Select/index.js +63 -89
  68. package/es/ProForm/components/base/Switch/index.js +27 -35
  69. package/es/ProForm/components/base/SwitchCheckbox/index.js +36 -54
  70. package/es/ProForm/components/base/TextArea/index.js +30 -41
  71. package/es/ProForm/components/base/TimePicker/index.js +27 -37
  72. package/es/ProForm/components/combination/Container/index.js +37 -47
  73. package/es/ProForm/components/combination/Container/propsType.js +0 -1
  74. package/es/ProForm/components/combination/FormList/components/ActionButton.js +165 -237
  75. package/es/ProForm/components/combination/FormList/components/BlockFields.js +98 -103
  76. package/es/ProForm/components/combination/FormList/components/Empty.js +27 -54
  77. package/es/ProForm/components/combination/FormList/components/LineFields.js +57 -54
  78. package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +61 -109
  79. package/es/ProForm/components/combination/FormList/index.js +151 -161
  80. package/es/ProForm/components/combination/FormList/propsType.js +0 -1
  81. package/es/ProForm/components/combination/FormList/utils.js +22 -38
  82. package/es/ProForm/components/combination/Group/component/AddonWrapper/index.js +12 -28
  83. package/es/ProForm/components/combination/Group/component/ComRender.js +50 -111
  84. package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +105 -206
  85. package/es/ProForm/components/combination/Group/hooks/index.js +68 -128
  86. package/es/ProForm/components/combination/Group/index.js +87 -126
  87. package/es/ProForm/components/combination/Group/propsType.js +0 -1
  88. package/es/ProForm/components/combination/Group/utils/index.js +124 -239
  89. package/es/ProForm/components/combination/ProCascader/index.js +156 -199
  90. package/es/ProForm/components/combination/ProCascader/propsType.js +0 -1
  91. package/es/ProForm/components/combination/ProCascader/utils/index.js +12 -21
  92. package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +63 -75
  93. package/es/ProForm/components/combination/ProModalSelect/index.js +290 -348
  94. package/es/ProForm/components/combination/ProModalSelect/propsType.js +0 -1
  95. package/es/ProForm/components/combination/ProModalSelect/utils/index.js +32 -39
  96. package/es/ProForm/components/combination/ProNumberRange/index.js +100 -156
  97. package/es/ProForm/components/combination/ProNumberRange/propsType.js +0 -1
  98. package/es/ProForm/components/combination/ProRangeLimit/index.js +104 -115
  99. package/es/ProForm/components/combination/ProRangeLimit/propsType.js +0 -1
  100. package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +16 -16
  101. package/es/ProForm/components/combination/ProTimeLimit/index.js +75 -109
  102. package/es/ProForm/components/index.js +56 -34
  103. package/es/ProForm/components/render/ChangedWrapper.js +85 -94
  104. package/es/ProForm/components/render/ConfirmWrapper.js +27 -39
  105. package/es/ProForm/components/render/CustomComponentViewWrapper.js +65 -82
  106. package/es/ProForm/components/render/Render.js +223 -329
  107. package/es/ProForm/components/render/RenderFields.js +76 -113
  108. package/es/ProForm/components/render/propsType.js +0 -1
  109. package/es/ProForm/hooks/useControlled.js +8 -10
  110. package/es/ProForm/hooks/useDeepCompareMemo.js +11 -11
  111. package/es/ProForm/hooks/useFieldProps.js +8 -4
  112. package/es/ProForm/hooks/useForm.js +50 -110
  113. package/es/ProForm/hooks/useRules.js +17 -33
  114. package/es/ProForm/hooks/useShouldUpdate.js +77 -152
  115. package/es/ProForm/hooks/useWatch.js +58 -129
  116. package/es/ProForm/index.js +157 -194
  117. package/es/ProForm/propsType.js +15 -7
  118. package/es/ProForm/utils/buildFormItemProps.js +51 -58
  119. package/es/ProForm/utils/diffOriginal.js +43 -73
  120. package/es/ProForm/utils/getDefaultProps.js +18 -24
  121. package/es/ProForm/utils/index.js +159 -234
  122. package/es/ProForm/utils/processDependencies.js +21 -60
  123. package/es/ProForm/utils/reactiveValues.js +20 -34
  124. package/es/ProForm/utils/rulesCreator.js +42 -40
  125. package/es/ProForm/utils/transformNames.js +10 -13
  126. package/es/ProForm/utils/transformValue.js +16 -29
  127. package/es/ProForm/utils/valueType.js +96 -178
  128. package/es/ProIcon/config/index.js +340 -274
  129. package/es/ProIcon/index.js +135 -209
  130. package/es/ProIcon/propsTypes.js +0 -1
  131. package/es/ProIcon/utils/index.js +24 -39
  132. package/es/ProLayout/components/Layout/Header/index.js +108 -141
  133. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +134 -190
  134. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +111 -137
  135. package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.js +0 -1
  136. package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +23 -31
  137. package/es/ProLayout/components/Layout/Menu/index.js +92 -89
  138. package/es/ProLayout/components/Layout/Notice/index.js +13 -27
  139. package/es/ProLayout/components/Layout/index.js +8 -3
  140. package/es/ProLayout/components/ProCollapse/PropTypes.js +0 -1
  141. package/es/ProLayout/components/ProCollapse/index.js +89 -111
  142. package/es/ProLayout/components/ProFooter/PropTypes.js +0 -1
  143. package/es/ProLayout/components/ProFooter/index.js +27 -25
  144. package/es/ProLayout/components/ProHeader/PropTypes.js +0 -1
  145. package/es/ProLayout/components/ProHeader/components/Copy/index.js +23 -21
  146. package/es/ProLayout/components/ProHeader/components/Describe/index.js +67 -86
  147. package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +18 -21
  148. package/es/ProLayout/components/ProHeader/components/ProBackBtn/propsType.js +0 -1
  149. package/es/ProLayout/components/ProHeader/components/index.js +6 -2
  150. package/es/ProLayout/components/ProHeader/index.js +216 -356
  151. package/es/ProLayout/components/ProHeader/utils/index.js +19 -26
  152. package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +92 -85
  153. package/es/ProLayout/components/TabsManager/components/TabItem.js +53 -64
  154. package/es/ProLayout/components/TabsManager/components/TabsContext.js +5 -5
  155. package/es/ProLayout/components/TabsManager/components/TabsHeader.js +42 -52
  156. package/es/ProLayout/components/TabsManager/hooks/useActiveTab.js +8 -9
  157. package/es/ProLayout/components/TabsManager/hooks/useIframeRoute.js +19 -32
  158. package/es/ProLayout/components/TabsManager/hooks/useProLayoutTabs.js +6 -20
  159. package/es/ProLayout/components/TabsManager/hooks/useTabsCache.js +25 -42
  160. package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +290 -408
  161. package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.js +132 -95
  162. package/es/ProLayout/components/TabsManager/index.js +406 -390
  163. package/es/ProLayout/components/TabsManager/propTypes.js +7 -15
  164. package/es/ProLayout/components/TabsManager/utils/historyObserver.js +26 -23
  165. package/es/ProLayout/components/TabsManager/utils/index.js +127 -184
  166. package/es/ProLayout/components/index.js +8 -3
  167. package/es/ProLayout/index.js +171 -229
  168. package/es/ProLayout/propTypes.js +12 -52
  169. package/es/ProLayout/utils/index.js +48 -128
  170. package/es/ProSelect/components/AdaptiveTooltip.js +26 -25
  171. package/es/ProSelect/index.js +184 -229
  172. package/es/ProSelect/propsType.js +0 -1
  173. package/es/ProSelect/utils/index.js +100 -146
  174. package/es/ProStep/components/Anchor/index.js +71 -82
  175. package/es/ProStep/components/Item/index.js +49 -56
  176. package/es/ProStep/components/LazyLoad/index.js +23 -29
  177. package/es/ProStep/components/Listener/index.js +20 -33
  178. package/es/ProStep/components/Step/index.js +31 -38
  179. package/es/ProStep/constants.js +4 -1
  180. package/es/ProStep/index.js +166 -153
  181. package/es/ProStep/propsType.js +0 -1
  182. package/es/ProStep/utils/index.js +29 -55
  183. package/es/ProStepTab/index.js +83 -138
  184. package/es/ProStepTab/propsType.js +0 -1
  185. package/es/ProTable/components/EditableCell/EditIcon.js +10 -14
  186. package/es/ProTable/components/EditableCell/index.js +37 -71
  187. package/es/ProTable/components/EditableCell/propsType.js +0 -1
  188. package/es/ProTable/components/FormatColumn/index.js +209 -340
  189. package/es/ProTable/components/FormatColumn/propsType.js +0 -1
  190. package/es/ProTable/components/RcTable/components/BaseTable/index.js +35 -39
  191. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +80 -107
  192. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +54 -48
  193. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/propsType.js +0 -1
  194. package/es/ProTable/components/RcTable/components/DraggableTable/index.js +47 -54
  195. package/es/ProTable/components/RcTable/index.js +6 -4
  196. package/es/ProTable/components/RenderColumn/index.js +158 -186
  197. package/es/ProTable/components/RenderEmptyText/index.js +12 -21
  198. package/es/ProTable/components/RenderFooter/index.js +15 -15
  199. package/es/ProTable/components/RenderSummary/index.js +33 -50
  200. package/es/ProTable/components/RenderTableHeader/index.js +44 -46
  201. package/es/ProTable/components/RenderTabs/index.js +47 -51
  202. package/es/ProTable/components/TableResizable/index.js +56 -72
  203. package/es/ProTable/components/TooltipTitle/index.js +13 -21
  204. package/es/ProTable/components/index.js +16 -36
  205. package/es/ProTable/hooks/useAntdTable.js +185 -219
  206. package/es/ProTable/index.js +232 -249
  207. package/es/ProTable/propsType.js +0 -1
  208. package/es/ProTable/utils/columnStorage.js +63 -88
  209. package/es/ProTable/utils/index.js +57 -90
  210. package/es/ProTabs/components/Card/index.js +20 -48
  211. package/es/ProTabs/components/index.js +4 -1
  212. package/es/ProTabs/index.js +39 -56
  213. package/es/ProTabs/propType.js +0 -1
  214. package/es/ProThemeTools/component/ProTools/index.js +106 -158
  215. package/es/ProThemeTools/component/index.js +4 -1
  216. package/es/ProThemeTools/context/ThemeContext.js +67 -146
  217. package/es/ProThemeTools/index.js +103 -156
  218. package/es/ProThemeTools/propsType.js +0 -1
  219. package/es/ProThemeTools/utils/index.js +60 -109
  220. package/es/ProTooltip/index.js +132 -165
  221. package/es/ProTooltip/propsType.js +0 -1
  222. package/es/ProTree/components/AdaptiveTooltip.js +15 -17
  223. package/es/ProTree/components/CloseIcon.js +18 -26
  224. package/es/ProTree/components/List.js +28 -47
  225. package/es/ProTree/components/ProTree.js +152 -211
  226. package/es/ProTree/components/ProTreeSelect/index.js +254 -458
  227. package/es/ProTree/components/ProTreeSelect/propsType.js +0 -1
  228. package/es/ProTree/components/SearchTitle.js +23 -42
  229. package/es/ProTree/components/Tree.js +147 -195
  230. package/es/ProTree/components/index.js +10 -5
  231. package/es/ProTree/index.js +12 -16
  232. package/es/ProTree/propsType.js +0 -1
  233. package/es/ProTree/utils.js +46 -118
  234. package/es/ProTreeModal/components/Cascader.js +56 -64
  235. package/es/ProTreeModal/components/CloseIcon.js +18 -26
  236. package/es/ProTreeModal/components/List.js +114 -180
  237. package/es/ProTreeModal/components/SearchTitle.js +15 -18
  238. package/es/ProTreeModal/components/SortableItem.js +29 -58
  239. package/es/ProTreeModal/components/Tree.js +99 -113
  240. package/es/ProTreeModal/components/Trigger.js +87 -121
  241. package/es/ProTreeModal/components/index.js +14 -6
  242. package/es/ProTreeModal/index.js +397 -435
  243. package/es/ProTreeModal/propsType.js +0 -1
  244. package/es/ProTreeModal/utils.js +52 -95
  245. package/es/ProUpload/components/ButtonRender.js +44 -54
  246. package/es/ProUpload/components/DragRender.js +94 -134
  247. package/es/ProUpload/components/DraggableUploadListItem.js +12 -25
  248. package/es/ProUpload/components/Example.js +27 -31
  249. package/es/ProUpload/components/FileItem.js +69 -163
  250. package/es/ProUpload/components/ImageRender.js +134 -170
  251. package/es/ProUpload/index.js +68 -100
  252. package/es/ProUpload/propsType.js +0 -1
  253. package/es/ProUpload/uitls.js +8 -4
  254. package/es/ProUtils/utils/index.js +17 -13
  255. package/es/ProViewer/index.js +154 -175
  256. package/es/ProViewer/propsType.js +0 -5
  257. package/es/ProWaterMark/index.js +9 -16
  258. package/es/ProWaterMark/propsType.js +0 -1
  259. package/es/hooks/useDraggableRow.js +25 -53
  260. package/es/index.js +57 -77
  261. package/es/locale/en_US.js +153 -142
  262. package/es/locale/index.js +23 -36
  263. package/es/locale/zh_CN.js +145 -142
  264. package/es/tokens.js +84 -83
  265. package/es/utils/index.js +24 -51
  266. package/package.json +4 -3
@@ -1,29 +1,34 @@
1
- import _isFunction from "lodash/isFunction";
2
- import _isBoolean from "lodash/isBoolean";
3
- import _isArray from "lodash/isArray";
4
- import _cloneDeepWith from "lodash/cloneDeepWith";
5
- import React from 'react';
6
- import { Tooltip, Space } from 'antd';
7
- import classnames from 'classnames';
8
- import { tools } from '@zat-design/utils';
9
- import { QuestionCircleOutlined } from '@ant-design/icons';
10
- import { actions, defaultBtnNameMap, defaultSingleActionKeys, defaultMultipleActionKeys, defaultEditingActionKeys } from "./config";
11
- import { customValidate, getNamePath, splitNames, handleScrollToError, cloneDeepFilterNode, isRecordShallowEqual } from "./tools";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import cloneDeepWith from "lodash/cloneDeepWith";
4
+ import isArray from "lodash/isArray";
5
+ import isBoolean from "lodash/isBoolean";
6
+ import isFunction from "lodash/isFunction";
7
+ import { Tooltip, Space } from "antd";
8
+ import classnames from "classnames";
9
+ import { tools } from "@zat-design/utils";
10
+ import { QuestionCircleOutlined } from "@ant-design/icons";
11
+ import {
12
+ actions,
13
+ defaultBtnNameMap,
14
+ defaultSingleActionKeys,
15
+ defaultMultipleActionKeys,
16
+ defaultEditingActionKeys
17
+ } from "./config";
18
+ import {
19
+ customValidate,
20
+ getNamePath,
21
+ splitNames,
22
+ handleScrollToError,
23
+ cloneDeepFilterNode,
24
+ isRecordShallowEqual
25
+ } from "./tools";
12
26
  import { filterInternalFields } from "../../ProForm/utils";
13
27
  import ProTooltip from "../../ProTooltip";
14
28
  import { RenderField, ActionButton } from "../components";
15
29
  import { hasRowFunctionDependency } from "../components/RenderField/tools";
16
30
  import locale from "../../locale";
17
-
18
- /**
19
- * shouldCellUpdate 缓存容器:跟踪 dataSource/component 引用与 filterInList 列表长度。
20
- * 调用方(ProEditTable 顶层)通过 useRef 持有按实例隔离的容器,避免 module-level Map
21
- * 在多实例场景下交叉污染;实例卸载后缓存随宿主一起释放。
22
- * 未传 caches 时退化为单次内联 Map(不缓存历史,shouldCellUpdate 始终首次比较)。
23
- */
24
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
- // 渲染操作栏
26
- const getActionColumn = config => {
31
+ const getActionColumn = (config) => {
27
32
  const {
28
33
  disabled,
29
34
  name,
@@ -36,108 +41,77 @@ const getActionColumn = config => {
36
41
  rowDisabled,
37
42
  actionDirection,
38
43
  editingKeys
39
- } = _cloneDeepWith(config, value => {
40
- if ( /*#__PURE__*/React.isValidElement(value)) {
44
+ } = cloneDeepWith(config, (value) => {
45
+ if (React.isValidElement(value)) {
41
46
  return value;
42
47
  }
43
48
  });
44
- const pageNum = tools.calc(page.pageNum, '-', 1);
45
- const firstIndex = tools.calc(pageNum, '*', page.pageSize);
46
- // actionProps配置为false 默认不插入
49
+ const pageNum = tools.calc(page.pageNum, "-", 1);
50
+ const firstIndex = tools.calc(pageNum, "*", page.pageSize);
47
51
  if (actionProps === false || disabled) {
48
52
  return false;
49
53
  }
50
54
  const virtualRowName = getNamePath(name, virtualKey);
51
-
52
- // 设置默认操作栏按钮(区分单行与多行编辑场景)
53
55
  const defaultActionKeys = virtualKey ? defaultSingleActionKeys : defaultMultipleActionKeys;
54
56
  let nextActionsProps = [...actionProps];
55
-
56
- // 不设置actionProps
57
- if (_isArray(actionProps) && !actionProps?.length) {
58
- nextActionsProps = defaultActionKeys.map(key => {
59
- return {
60
- type: key
61
- };
57
+ if (isArray(actionProps) && !(actionProps == null ? void 0 : actionProps.length)) {
58
+ nextActionsProps = defaultActionKeys.map((key) => {
59
+ return { type: key };
62
60
  });
63
61
  } else {
64
- // 设置部分actionProps 内置的必选按钮会集成进去,可以手动开启show: false来隐藏对应类型的按钮
65
- defaultActionKeys.forEach(key => {
66
- if (_isArray(actionProps) && !actionProps.find(action => action.type === key)) {
62
+ defaultActionKeys.forEach((key) => {
63
+ if (isArray(actionProps) && !actionProps.find((action) => action.type === key)) {
67
64
  nextActionsProps.push({
68
65
  type: key
69
66
  });
70
67
  }
71
68
  });
72
69
  }
73
-
74
- // 渲染操作按钮前处理下默认数据
75
- const actionBtns = nextActionsProps.map(action => {
76
- const {
77
- type,
78
- label,
79
- show,
80
- needConfirm,
81
- onHandle,
82
- onClick,
83
- isSelectModal,
84
- ...buttonProps
85
- } = action;
70
+ const actionBtns = nextActionsProps.map((action) => {
71
+ const { type, label, show, needConfirm, onHandle, onClick, isSelectModal, ...buttonProps } = action;
86
72
  action.isEditable = defaultEditingActionKeys.includes(type);
87
73
  action.label = label ?? defaultBtnNameMap[type];
88
74
  action.show = show ?? true;
89
75
  action.needConfirm = needConfirm ?? true;
90
- action.onEvent = async (record, {
91
- index,
92
- form,
93
- name,
94
- namePath,
95
- tableLength,
96
- selectedRows
97
- }) => {
98
- index = tools.calc(firstIndex, '+', index);
76
+ action.onEvent = async (record, { index, form: form2, name: name2, namePath, tableLength, selectedRows }) => {
77
+ index = tools.calc(firstIndex, "+", index);
99
78
  const rowName = [...virtualRowName, index];
100
- if (type === 'save') {
101
- // 判断该行是否处于编辑状态
79
+ if (type === "save") {
102
80
  const _isEditing = !virtualKey || editingKeys.includes(record.rowKey) || record._addFlag;
103
-
104
- // 只有编辑中的行才需要校验
105
81
  if (_isEditing) {
106
82
  try {
107
- await customValidate(validateKeys, form, rowName);
83
+ await customValidate(validateKeys, form2, rowName);
108
84
  } catch (error) {
109
85
  handleScrollToError();
110
86
  return Promise.reject(error);
111
87
  }
112
88
  }
113
89
  }
114
- // 编辑状态使用自定义form值,非编辑状态直接使用行数据
115
- const fieldRecord = filterInternalFields(form.getFieldValue(rowName));
90
+ const fieldRecord = filterInternalFields(form2.getFieldValue(rowName));
116
91
  const lastRecord = {
117
92
  ...record,
118
- ...(fieldRecord && typeof fieldRecord === 'object' ? fieldRecord : {}),
93
+ ...fieldRecord && typeof fieldRecord === "object" ? fieldRecord : {},
119
94
  rowKey: record.rowKey
120
95
  };
121
- // 新增事件可以设置初始默认值,当做函数的出参导出
122
96
  const onEvent = onClick || onHandle;
123
97
  let result;
124
98
  if (!onEvent) {
125
99
  result = true;
126
100
  } else {
127
- result = await onEvent?.(lastRecord, {
128
- form,
101
+ result = await (onEvent == null ? void 0 : onEvent(lastRecord, {
102
+ form: form2,
129
103
  index,
130
104
  tableLength,
131
- name,
105
+ name: name2,
132
106
  namePath,
133
107
  selectedRows
134
- });
108
+ }));
135
109
  }
136
- if (result !== false && type !== 'custom') {
110
+ if (result !== false && type !== "custom") {
137
111
  const actionHandler = actions[type];
138
112
  actionHandler({
139
113
  ...config,
140
- rowName: [...name, index],
114
+ rowName: [...name2, index],
141
115
  virtualRowName: rowName,
142
116
  record: lastRecord,
143
117
  result,
@@ -150,43 +124,32 @@ const getActionColumn = config => {
150
124
  });
151
125
  return {
152
126
  title: locale.ProEditTable.operation,
153
- key: 'action',
154
- fixed: 'right',
155
- className: 'pro-edit-table-action-column',
156
- width: actionWidth || (actionDirection === 'vertical' ? 60 : virtualKey ? 120 : 60),
127
+ key: "action",
128
+ fixed: "right",
129
+ className: "pro-edit-table-action-column",
130
+ width: actionWidth || (actionDirection === "vertical" ? 60 : virtualKey ? 120 : 60),
157
131
  render: (text, record, index) => {
158
- const _disabled = rowDisabled?.(record) ?? false;
132
+ const _disabled = (rowDisabled == null ? void 0 : rowDisabled(record)) ?? false;
159
133
  if (_disabled) {
160
- return '';
134
+ return "";
161
135
  }
162
- return /*#__PURE__*/_jsx(Space, {
163
- size: "small",
164
- orientation: actionDirection,
165
- children: actionBtns.map(btnConfig => {
166
- return /*#__PURE__*/_jsx(React.Fragment, {
167
- children: /*#__PURE__*/_jsx(ActionButton, {
136
+ return /* @__PURE__ */ jsx(Space, { size: "small", orientation: actionDirection, children: actionBtns.map((btnConfig) => {
137
+ return /* @__PURE__ */ jsx(React.Fragment, { children: /* @__PURE__ */ jsx(
138
+ ActionButton,
139
+ {
140
+ ...{
168
141
  record,
169
142
  index,
170
143
  config,
171
144
  btnConfig
172
- })
173
- }, `${record.rowKey}-${btnConfig?.type}`);
174
- })
175
- });
145
+ }
146
+ }
147
+ ) }, `${record.rowKey}-${btnConfig == null ? void 0 : btnConfig.type}`);
148
+ }) });
176
149
  }
177
150
  };
178
151
  };
179
-
180
- /**
181
- * 编辑模式分为 多行和单行两种
182
- * 单行模式下,render 分为component和viewRender两种,对应编辑和非编辑状态下,edit状态不对外
183
- * 多行模式下component设置即可
184
- * render不对外暴露formItem,能自定渲染的尽是输入组件或者显示组件本身
185
- * @param columns 表格配置数据
186
- * @param config
187
- */
188
-
189
- export const transformColumns = (columns = [], config, caches) => {
152
+ const transformColumns = (columns = [], config, caches) => {
190
153
  const {
191
154
  mode,
192
155
  form,
@@ -199,17 +162,16 @@ export const transformColumns = (columns = [], config, caches) => {
199
162
  setState,
200
163
  page
201
164
  } = config;
202
-
203
- // 未传 caches 时退化为单次内联 Map(每次 transform 新建,不持久化)
204
165
  const cellCaches = caches ?? {
205
- dataSourceRef: new Map(),
206
- componentRef: new Map(),
207
- listLength: new Map()
166
+ dataSourceRef: /* @__PURE__ */ new Map(),
167
+ componentRef: /* @__PURE__ */ new Map(),
168
+ listLength: /* @__PURE__ */ new Map()
208
169
  };
209
- let nextColumns = columns.map(item => cloneDeepFilterNode(item));
210
- const pageNum = tools.calc(page.pageNum, '-', 1);
211
- const firstIndex = tools.calc(pageNum, '*', page.pageSize);
170
+ let nextColumns = columns.map((item) => cloneDeepFilterNode(item));
171
+ const pageNum = tools.calc(page.pageNum, "-", 1);
172
+ const firstIndex = tools.calc(pageNum, "*", page.pageSize);
212
173
  nextColumns.forEach((item, index) => {
174
+ var _a, _b;
213
175
  const {
214
176
  label,
215
177
  names,
@@ -225,147 +187,104 @@ export const transformColumns = (columns = [], config, caches) => {
225
187
  before,
226
188
  after
227
189
  } = item;
228
-
229
- // column设置label时,权重最高
230
190
  const columnTitle = label || title;
231
191
  item.title = columnTitle;
232
- if (typeof columnTitle === 'string') {
192
+ if (typeof columnTitle === "string") {
233
193
  item.originTitle = columnTitle;
234
194
  if (tooltip) {
235
- const {
236
- title: tooltipTitle,
237
- icon,
238
- ...resetProps
239
- } = tooltip || {};
240
- item.title = /*#__PURE__*/_jsxs("span", {
241
- className: "pro-edit-table-title pro-edit-table-tooltip",
242
- children: [before, columnTitle, /*#__PURE__*/_jsx(Tooltip, {
243
- title: tooltipTitle ?? tooltip,
244
- ...resetProps,
245
- children: icon ? ( /*#__PURE__*/React.cloneElement(icon, {
246
- className: 'icon-tip'
247
- })) : /*#__PURE__*/_jsx(QuestionCircleOutlined, {
248
- className: "icon-tip"
249
- })
250
- }), suffix || after]
251
- });
195
+ const { title: tooltipTitle, icon, ...resetProps } = tooltip || {};
196
+ item.title = /* @__PURE__ */ jsxs("span", { className: "pro-edit-table-title pro-edit-table-tooltip", children: [
197
+ before,
198
+ columnTitle,
199
+ /* @__PURE__ */ jsx(Tooltip, { title: tooltipTitle ?? tooltip, ...resetProps, children: icon ? React.cloneElement(icon, {
200
+ className: "icon-tip"
201
+ }) : /* @__PURE__ */ jsx(QuestionCircleOutlined, { className: "icon-tip" }) }),
202
+ suffix || after
203
+ ] });
252
204
  } else {
253
- item.title = /*#__PURE__*/_jsxs("span", {
254
- className: "pro-edit-table-title",
255
- children: [before, columnTitle, suffix || after]
256
- });
205
+ item.title = /* @__PURE__ */ jsxs("span", { className: "pro-edit-table-title", children: [
206
+ before,
207
+ columnTitle,
208
+ suffix || after
209
+ ] });
257
210
  }
258
211
  }
259
-
260
- // width转为数字,兼容虚拟滚动场景
261
- if (typeof item.width === 'string' && item.width.includes('px')) {
212
+ if (typeof item.width === "string" && item.width.includes("px")) {
262
213
  item.width = parseInt(item.width, 10);
263
214
  }
264
-
265
- // column设置name时,权重最高
266
- const columnName = item?.name || dataIndex || key;
215
+ const columnName = (item == null ? void 0 : item.name) || dataIndex || key;
267
216
  item.dataIndex = columnName;
268
217
  item.key = columnName;
269
- // item.shouldCellUpdate = item.shouldCellUpdate || ((record, perRecord) => !isEqual(record, perRecord));
270
-
271
- let required = _isBoolean(item.required) ? item.required : false;
272
- if (_isFunction(item.required)) {
273
- // 列配置预处理阶段没有稳定行上下文,required 函数交给 RenderField 内按行计算
218
+ let required = isBoolean(item.required) ? item.required : false;
219
+ if (isFunction(item.required)) {
274
220
  required = false;
275
221
  }
276
-
277
- // 列隐藏使用 antd 原生 column.hidden(antd 5.13+ 支持),不再依赖 is-hidden 错位定位 hack
278
222
  if (hidden) {
279
223
  item.hidden = true;
280
224
  }
281
-
282
- // 样式处理(不再写 is-hidden className)
283
225
  item.className = classnames({
284
- 'is-required': required || labelRequired,
285
- 'is-required-left': requiredAlign === 'left',
286
- 'is-required-right': requiredAlign === 'right',
226
+ "is-required": required || labelRequired,
227
+ "is-required-left": requiredAlign === "left",
228
+ "is-required-right": requiredAlign === "right",
287
229
  [className]: className
288
230
  });
289
-
290
- // 防止重复渲染导致className重复添加
291
231
  if (item.className) {
292
- item.className = [...new Set(item.className.split(' '))].join(' ');
232
+ item.className = [...new Set(item.className.split(" "))].join(" ");
293
233
  }
294
- const _render = (text, record, index) => {
234
+ const _render = (text, record, index2) => {
295
235
  const _isEditing = !virtualKey || editingKeys.includes(record.rowKey) || record._addFlag;
296
- let namePath = _isArray(name) ? name : [name];
236
+ let namePath = isArray(name) ? name : [name];
297
237
  if (virtualKey && editingKeys.includes(record.rowKey)) {
298
238
  namePath = getNamePath(name, virtualKey);
299
239
  }
300
240
  const namePathArray = Array.isArray(namePath) ? namePath : [namePath];
301
- const columnNamePath = _isArray(columnName) ? columnName : [columnName];
302
- index = tools.calc(firstIndex, '+', index);
303
- // 设置单元格formItem的namePath
304
- let cellName = columnName ? [...namePathArray, index, ...columnNamePath] : [...namePathArray, index];
241
+ const columnNamePath = isArray(columnName) ? columnName : [columnName];
242
+ index2 = tools.calc(firstIndex, "+", index2);
243
+ let cellName = columnName ? [...namePathArray, index2, ...columnNamePath] : [...namePathArray, index2];
305
244
  let _text = text;
306
-
307
- // 当传入组合组件时,name需要重新组合一下,以防names中key与dataIndex重叠
308
- if (names?.length) {
245
+ if (names == null ? void 0 : names.length) {
309
246
  const nextDataIndex = splitNames(names);
310
247
  item.dataIndex = nextDataIndex;
311
248
  item.key = nextDataIndex;
312
- cellName = [...namePathArray, index, nextDataIndex];
313
- // 给names返回数组值
314
- _text = names.map(item => record?.[item]);
249
+ cellName = [...namePathArray, index2, nextDataIndex];
250
+ _text = names.map((item2) => record == null ? void 0 : record[item2]);
315
251
  }
316
252
  if (!_isEditing && ellipsis) {
317
- return /*#__PURE__*/_jsx(ProTooltip, {
318
- text: _text,
319
- line: 1,
320
- isResponsiveWidth: true
321
- });
253
+ return /* @__PURE__ */ jsx(ProTooltip, { text: _text, line: 1, isResponsiveWidth: true });
322
254
  }
323
-
324
- // 单行多行交互有较大差异
325
- return /*#__PURE__*/_jsxs("div", {
326
- children: [index === 0 && !item.width ? /*#__PURE__*/_jsx("div", {
327
- style: {
328
- visibility: 'hidden',
329
- height: 0,
330
- paddingLeft: item?.required ? 16 : 0
331
- },
332
- children: columnTitle
333
- }) : null, /*#__PURE__*/_jsx(RenderField, {
334
- text: _text,
335
- record: record,
336
- index: index,
337
- column: item,
338
- config: {
339
- ...config,
340
- cellName,
341
- // 单元格formItem的namePath
342
- _isEditing // 是否正在编辑
255
+ return /* @__PURE__ */ jsxs("div", { children: [
256
+ index2 === 0 && !item.width ? /* @__PURE__ */ jsx("div", { style: { visibility: "hidden", height: 0, paddingLeft: (item == null ? void 0 : item.required) ? 16 : 0 }, children: columnTitle }) : null,
257
+ /* @__PURE__ */ jsx(
258
+ RenderField,
259
+ {
260
+ text: _text,
261
+ record,
262
+ index: index2,
263
+ column: item,
264
+ config: {
265
+ ...config,
266
+ cellName,
267
+ // 单元格formItem的namePath
268
+ _isEditing
269
+ // 是否正在编辑
270
+ }
343
271
  }
344
- })]
345
- });
272
+ )
273
+ ] });
346
274
  };
347
275
  item.render = _render;
348
-
349
- // 精准控制单元格更新,减少不必要的渲染
350
276
  if (!item.shouldCellUpdate) {
351
- const hasComponent = _isFunction(item.component);
352
- // 函数型动态属性会依赖整行数据(可能是当前列之外的兄弟字段),
353
- // 这类列在行内任意字段变化时都需重渲染,不能只比对本列 dataIndex
277
+ const hasComponent = isFunction(item.component);
354
278
  const hasFunctionDependency = hasRowFunctionDependency(item);
355
- const columnCacheKey = `${Array.isArray(name) ? name.join('.') : String(name)}::${String(columnName)}`;
356
-
357
- // Fix 问题1:用原始列引用(克隆前)比对 dataSource
358
- // cloneDeepFilterNode 每次产生新引用,在 shouldCellUpdate 内更新 cache 只会让第一行触发更新,其余行跳过
359
- const originalFieldProps = columns[index]?.fieldProps;
360
- const originalDataSourceRef = !_isFunction(originalFieldProps) ? originalFieldProps?.dataSource : undefined;
279
+ const columnCacheKey = `${Array.isArray(name) ? name.join(".") : String(name)}::${String(columnName)}`;
280
+ const originalFieldProps = (_a = columns[index]) == null ? void 0 : _a.fieldProps;
281
+ const originalDataSourceRef = !isFunction(originalFieldProps) ? originalFieldProps == null ? void 0 : originalFieldProps.dataSource : void 0;
361
282
  const prevDataSourceRef = cellCaches.dataSourceRef.get(columnCacheKey);
362
- const dataSourceChanged = originalDataSourceRef !== undefined && prevDataSourceRef !== originalDataSourceRef;
283
+ const dataSourceChanged = originalDataSourceRef !== void 0 && prevDataSourceRef !== originalDataSourceRef;
363
284
  if (dataSourceChanged) {
364
285
  cellCaches.dataSourceRef.set(columnCacheKey, originalDataSourceRef);
365
286
  }
366
-
367
- // Fix 问题2:检测 filterInList 列的行增删,避免行索引移位时 shouldUpdate 闭包中 index 失效
368
- const filterInListEnabled = !_isFunction(item?.fieldProps) && item?.fieldProps?.filterInList;
287
+ const filterInListEnabled = !isFunction(item == null ? void 0 : item.fieldProps) && ((_b = item == null ? void 0 : item.fieldProps) == null ? void 0 : _b.filterInList);
369
288
  let filterListChanged = false;
370
289
  if (filterInListEnabled) {
371
290
  const currentListLen = config.tableLength ?? 0;
@@ -376,27 +295,22 @@ export const transformColumns = (columns = [], config, caches) => {
376
295
  }
377
296
  }
378
297
  item.shouldCellUpdate = (record, prevRecord) => {
379
- // dataSource 变化:所有行均需更新(修复异步加载 dataSource 只更新第一行的问题)
380
- if (dataSourceChanged) return true;
381
- // filterInList 列的行数变化:强制全量重渲染,避免行索引移位时闭包失效导致显示错误
382
- if (filterListChanged) return true;
383
- if (record?.rowKey !== prevRecord?.rowKey) {
298
+ if (dataSourceChanged)
299
+ return true;
300
+ if (filterListChanged)
301
+ return true;
302
+ if ((record == null ? void 0 : record.rowKey) !== (prevRecord == null ? void 0 : prevRecord.rowKey)) {
384
303
  return true;
385
304
  }
386
- // 行位置变化时(增删其他行导致 index 移位),需强制重渲染以更新 Form.Item name 路径
387
- if (record?._rowIndex !== prevRecord?._rowIndex) {
305
+ if ((record == null ? void 0 : record._rowIndex) !== (prevRecord == null ? void 0 : prevRecord._rowIndex)) {
388
306
  return true;
389
307
  }
390
- // 拖拽排序时,行数据不变但位置(_dragIndex)变化,需强制重渲染以更新 cellName(Form.Item name)
391
- if (record?._dragIndex !== prevRecord?._dragIndex) {
308
+ if ((record == null ? void 0 : record._dragIndex) !== (prevRecord == null ? void 0 : prevRecord._dragIndex)) {
392
309
  return true;
393
310
  }
394
- // 单行编辑模式下,需要检测编辑状态变化
395
- if (virtualKey && record?._isEditing !== prevRecord?._isEditing) {
311
+ if (virtualKey && (record == null ? void 0 : record._isEditing) !== (prevRecord == null ? void 0 : prevRecord._isEditing)) {
396
312
  return true;
397
313
  }
398
- // 动态 component 函数引用变化说明外部依赖(如异步 list)已更新,必须重渲染
399
- // 即使行数据未变,旧闭包仍持有过时的外部状态
400
314
  if (hasComponent) {
401
315
  const prevComponentRef = cellCaches.componentRef.get(columnCacheKey);
402
316
  const currentComponentRef = item.component;
@@ -405,28 +319,26 @@ export const transformColumns = (columns = [], config, caches) => {
405
319
  return true;
406
320
  }
407
321
  }
408
- // 函数型动态属性(component/fieldProps/rules/required/disabled/isEditable/valueType/viewRender)
409
- // 可能依赖行内其他字段(兄弟字段),需比较整行;
410
- // 同引用原地修改时 isEqual 恒为 true,无法感知,必须强制重渲染
411
322
  if (hasFunctionDependency) {
412
323
  if (record === prevRecord) {
413
324
  return true;
414
325
  }
415
326
  return !isRecordShallowEqual(record, prevRecord);
416
327
  }
417
- const key = item.dataIndex || item.key;
418
- if (!key) return true;
419
- const keyChanged = record?.[key] !== prevRecord?.[key];
328
+ const key2 = item.dataIndex || item.key;
329
+ if (!key2)
330
+ return true;
331
+ const keyChanged = (record == null ? void 0 : record[key2]) !== (prevRecord == null ? void 0 : prevRecord[key2]);
420
332
  return keyChanged;
421
333
  };
422
334
  }
423
335
  });
424
336
  if (disabled || isView) {
425
- // 查看模式下过滤操作栏
426
- nextColumns = nextColumns.filter(item => item.title !== locale.ProEditTable.operation);
337
+ nextColumns = nextColumns.filter((item) => item.title !== locale.ProEditTable.operation);
427
338
  } else {
428
- const validateKeys = nextColumns.filter(i => i.rules || i.required).map(item => {
429
- if (item.names?.length) {
339
+ const validateKeys = nextColumns.filter((i) => i.rules || i.required).map((item) => {
340
+ var _a;
341
+ if ((_a = item.names) == null ? void 0 : _a.length) {
430
342
  const nextDataIndex = splitNames(item.names);
431
343
  item.dataIndex = nextDataIndex;
432
344
  item.key = nextDataIndex;
@@ -435,11 +347,13 @@ export const transformColumns = (columns = [], config, caches) => {
435
347
  });
436
348
  const actionColumn = getActionColumn({
437
349
  ...config,
438
- validateKeys // 需要校验的单元格的formItem的name
350
+ validateKeys
351
+ // 需要校验的单元格的formItem的name
439
352
  });
440
353
  actionColumn && nextColumns.push(actionColumn);
441
354
  }
442
-
443
- // 渲染操作列
444
355
  return nextColumns;
445
- };
356
+ };
357
+ export {
358
+ transformColumns
359
+ };