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