@zat-design/sisyphus-react 3.14.0-beta.2 → 4.0.0-beta.10

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 (545) hide show
  1. package/README.md +77 -207
  2. package/babel.config.js +2 -2
  3. package/dist/index.esm.css +1 -1
  4. package/dist/less.esm.css +1 -1
  5. package/es/FormsProvider/index.d.ts +4 -1
  6. package/es/ProAction/components/CheckModalContent/index.js +0 -9
  7. package/es/ProAction/index.js +3 -6
  8. package/es/ProAction/index.less +0 -2
  9. package/es/ProConfigProvider/index.d.ts +22 -5
  10. package/es/ProConfigProvider/index.js +58 -26
  11. package/es/ProDownload/index.js +2 -3
  12. package/es/ProDownload/style/index.less +0 -2
  13. package/es/ProDownload/utils.js +3 -4
  14. package/es/ProDrawerForm/components/ProDrawer/index.js +13 -17
  15. package/es/ProDrawerForm/components/ProModal/index.js +12 -20
  16. package/es/ProDrawerForm/index.d.ts +2 -1
  17. package/es/ProDrawerForm/index.js +35 -33
  18. package/es/ProDrawerForm/propsType.d.ts +7 -18
  19. package/es/ProDrawerForm/style/index.less +6 -14
  20. package/es/ProEditLabel/components/RenderProForm.js +2 -3
  21. package/es/ProEditLabel/index.js +10 -15
  22. package/es/ProEditLabel/propsType.d.ts +1 -6
  23. package/es/ProEditLabel/style/index.less +2 -3
  24. package/es/ProEditTable/components/ActionButton/index.js +5 -8
  25. package/es/ProEditTable/components/RcTable/BaseTable.js +70 -53
  26. package/es/ProEditTable/components/RcTable/DraggableTable.js +70 -49
  27. package/es/ProEditTable/components/RcTable/index.d.ts +0 -2
  28. package/es/ProEditTable/components/RcTable/index.js +1 -3
  29. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +9 -12
  30. package/es/ProEditTable/components/RenderField/index.d.ts +3 -2
  31. package/es/ProEditTable/components/RenderField/index.js +401 -241
  32. package/es/ProEditTable/components/RenderToolbar/index.js +5 -5
  33. package/es/ProEditTable/components/Summary/index.js +5 -8
  34. package/es/ProEditTable/components/Validator/index.js +3 -6
  35. package/es/ProEditTable/index.js +99 -103
  36. package/es/ProEditTable/propsType.d.ts +7 -7
  37. package/es/ProEditTable/style/index.less +12 -12
  38. package/es/ProEditTable/utils/config.js +6 -7
  39. package/es/ProEditTable/utils/index.js +21 -17
  40. package/es/ProEditTable/utils/useEditTableError.js +12 -4
  41. package/es/ProEditTable/utils/useShouldUpdateForTable.d.ts +15 -0
  42. package/es/ProEditTable/utils/useShouldUpdateForTable.js +132 -0
  43. package/es/ProEnum/hooks/useEnum.js +5 -0
  44. package/es/ProEnum/hooks/useEnumRequest.js +3 -3
  45. package/es/ProEnum/index.js +10 -17
  46. package/es/ProEnum/style/index.less +0 -2
  47. package/es/ProEnum/utils/index.d.ts +1 -0
  48. package/es/ProEnum/utils/index.js +3 -7
  49. package/es/ProForm/components/Container.d.ts +1 -0
  50. package/es/ProForm/components/Container.js +2 -3
  51. package/es/ProForm/components/FormFooter/index.js +18 -19
  52. package/es/ProForm/components/FormFooter/propsType.d.ts +2 -0
  53. package/es/ProForm/components/base/Checkbox/index.js +3 -4
  54. package/es/ProForm/components/base/DatePicker/index.d.ts +1 -3
  55. package/es/ProForm/components/base/DatePicker/index.js +7 -7
  56. package/es/ProForm/components/base/DatePicker/useDateLimit.d.ts +3 -0
  57. package/es/ProForm/components/base/DatePicker/useDateLimit.js +11 -0
  58. package/es/ProForm/components/base/Input/index.js +10 -8
  59. package/es/ProForm/components/base/InputNumber/index.js +3 -6
  60. package/es/ProForm/components/base/Radio/index.js +3 -4
  61. package/es/ProForm/components/base/RangePicker/index.js +7 -6
  62. package/es/ProForm/components/base/RangePicker/useDateRange.d.ts +5 -5
  63. package/es/ProForm/components/base/Select/index.js +2 -3
  64. package/es/ProForm/components/base/Switch/index.js +2 -3
  65. package/es/ProForm/components/base/SwitchCheckbox/index.js +2 -3
  66. package/es/ProForm/components/base/SwitchCheckbox/style/index.less +0 -2
  67. package/es/ProForm/components/base/TextArea/index.js +3 -4
  68. package/es/ProForm/components/base/TextArea/index.less +10 -2
  69. package/es/ProForm/components/base/TimePicker/index.d.ts +1 -2
  70. package/es/ProForm/components/base/TimePicker/index.js +6 -7
  71. package/es/ProForm/components/base/TimePicker/style/index.less +3 -3
  72. package/es/ProForm/components/combination/Container/style/index.less +0 -2
  73. package/es/ProForm/components/combination/FormList/components/ActionButton.js +15 -13
  74. package/es/ProForm/components/combination/FormList/components/BlockFields.js +5 -8
  75. package/es/ProForm/components/combination/FormList/components/Empty.js +2 -3
  76. package/es/ProForm/components/combination/FormList/components/LineFields.js +2 -3
  77. package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +5 -8
  78. package/es/ProForm/components/combination/FormList/index.js +2 -3
  79. package/es/ProForm/components/combination/FormList/style/index.less +36 -2
  80. package/es/ProForm/components/combination/Group/component/AddonWrapper/index.d.ts +1 -0
  81. package/es/ProForm/components/combination/Group/component/ComRender.js +0 -1
  82. package/es/ProForm/components/combination/Group/index.js +3 -4
  83. package/es/ProForm/components/combination/Group/style/index.less +7 -87
  84. package/es/ProForm/components/combination/Group/utils.d.ts +1 -1
  85. package/es/ProForm/components/combination/Group/utils.js +4 -5
  86. package/es/ProForm/components/combination/ProCascader/index.js +13 -15
  87. package/es/ProForm/components/combination/ProCascader/propsType.d.ts +1 -1
  88. package/es/ProForm/components/combination/ProCascader/style/index.less +0 -2
  89. package/es/ProForm/components/combination/ProModalSelect/index.d.ts +1 -1
  90. package/es/ProForm/components/combination/ProModalSelect/index.js +24 -39
  91. package/es/ProForm/components/combination/ProModalSelect/style/index.less +11 -15
  92. package/es/ProForm/components/combination/ProNumberRange/index.d.ts +3 -2
  93. package/es/ProForm/components/combination/ProNumberRange/index.js +21 -21
  94. package/es/ProForm/components/combination/ProNumberRange/style/index.less +3 -54
  95. package/es/ProForm/components/combination/ProRangeLimit/index.d.ts +2 -23
  96. package/es/ProForm/components/combination/ProRangeLimit/index.js +42 -25
  97. package/es/ProForm/components/combination/ProRangeLimit/propsType.d.ts +23 -0
  98. package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.d.ts +3 -2
  99. package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +14 -2
  100. package/es/ProForm/components/combination/ProTimeLimit/index.d.ts +5 -6
  101. package/es/ProForm/components/combination/ProTimeLimit/index.js +23 -20
  102. package/es/ProForm/components/combination/ProTimeLimit/style/index.less +64 -6
  103. package/es/ProForm/components/index.d.ts +2 -9
  104. package/es/ProForm/components/index.js +1 -11
  105. package/es/ProForm/components/render/ChangedWrapper.js +8 -9
  106. package/es/ProForm/components/render/ConfirmWrapper.js +7 -7
  107. package/es/ProForm/components/render/Render.js +29 -30
  108. package/es/ProForm/components/render/RenderFields.d.ts +1 -0
  109. package/es/ProForm/components/render/RenderFields.js +6 -3
  110. package/es/ProForm/components/render/propsType.d.ts +3 -6
  111. package/es/ProForm/index.d.ts +2 -2
  112. package/es/ProForm/index.js +14 -42
  113. package/es/ProForm/propsType.d.ts +3 -0
  114. package/es/ProForm/style/index.less +4 -16
  115. package/es/ProForm/utils/index.d.ts +15 -1
  116. package/es/ProForm/utils/index.js +66 -15
  117. package/es/ProForm/utils/useDeepCompareMemo.js +4 -4
  118. package/es/ProForm/utils/useForm.js +27 -22
  119. package/es/ProForm/utils/useShouldUpdate.d.ts +1 -0
  120. package/es/ProForm/utils/useShouldUpdate.js +103 -17
  121. package/es/ProIcon/index.js +10 -13
  122. package/es/ProIcon/style/index.less +0 -2
  123. package/es/ProLayout/components/Layout/Header/index.js +1 -1
  124. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +3 -6
  125. package/es/ProLayout/components/Layout/Menu/FoldMenu/style/index.less +40 -39
  126. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +2 -3
  127. package/es/ProLayout/components/Layout/Menu/OpenMenu/style/index.less +0 -3
  128. package/es/ProLayout/components/Layout/Menu/SideMenu/style/index.less +7 -5
  129. package/es/ProLayout/components/Layout/Menu/index.js +1 -1
  130. package/es/ProLayout/components/Layout/Menu/style/index.less +0 -2
  131. package/es/ProLayout/components/Layout/Notice/style/index.less +0 -2
  132. package/es/ProLayout/components/ProCollapse/index.js +29 -44
  133. package/es/ProLayout/components/ProCollapse/style/index.less +5 -4
  134. package/es/ProLayout/components/ProFooter/index.js +2 -3
  135. package/es/ProLayout/components/ProFooter/style/index.less +0 -2
  136. package/es/ProLayout/components/ProHeader/components/Copy/index.js +2 -3
  137. package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +2 -3
  138. package/es/ProLayout/components/ProHeader/components/ProBackBtn/style/index.less +7 -9
  139. package/es/ProLayout/components/ProHeader/index.js +43 -45
  140. package/es/ProLayout/components/ProHeader/style/index.less +0 -2
  141. package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +2 -3
  142. package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +0 -2
  143. package/es/ProLayout/index.js +80 -41
  144. package/es/ProLayout/style/index.less +2 -3
  145. package/es/ProSelect/components/AdaptiveTooltip.js +2 -3
  146. package/es/ProSelect/index.js +7 -15
  147. package/es/ProSelect/index.less +0 -2
  148. package/es/ProSelect/propsType.d.ts +1 -1
  149. package/es/ProStep/components/Anchor/index.js +2 -3
  150. package/es/ProStep/components/Item/index.js +1 -0
  151. package/es/ProStep/components/Step/index.js +1 -0
  152. package/es/ProStep/style/index.less +2 -4
  153. package/es/ProTable/components/FormatColumn/index.js +33 -31
  154. package/es/ProTable/components/RcTable/components/BaseTable/index.d.ts +0 -1
  155. package/es/ProTable/components/RcTable/components/BaseTable/index.js +2 -4
  156. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +17 -13
  157. package/es/ProTable/components/RcTable/components/DraggableTable/index.d.ts +0 -1
  158. package/es/ProTable/components/RcTable/components/DraggableTable/index.js +2 -4
  159. package/es/ProTable/components/RenderColumn/index.d.ts +1 -1
  160. package/es/ProTable/components/RenderColumn/index.js +15 -18
  161. package/es/ProTable/components/RenderSummary/index.js +4 -5
  162. package/es/ProTable/components/RenderTableHeader/index.js +3 -4
  163. package/es/ProTable/components/RenderTabs/index.js +3 -6
  164. package/es/ProTable/components/TableResizable/index.js +2 -1
  165. package/es/ProTable/components/TooltipTitle/index.js +2 -3
  166. package/es/ProTable/hooks/useAntdTable.js +4 -7
  167. package/es/ProTable/index.d.ts +0 -7
  168. package/es/ProTable/index.js +11 -14
  169. package/es/ProTable/propsType.d.ts +2 -3
  170. package/es/ProTable/style/index.less +4 -6
  171. package/es/ProTabs/components/Card/index.js +5 -10
  172. package/es/ProTabs/index.js +2 -3
  173. package/es/ProTabs/style/index.less +0 -2
  174. package/es/ProThemeTools/component/ProTools/index.js +18 -22
  175. package/es/ProThemeTools/context/ThemeContext.d.ts +31 -0
  176. package/es/ProThemeTools/context/ThemeContext.js +136 -0
  177. package/es/ProThemeTools/index.d.ts +4 -8
  178. package/es/ProThemeTools/index.js +80 -49
  179. package/es/ProThemeTools/style/index.less +1 -3
  180. package/es/ProThemeTools/utils/index.d.ts +16 -6
  181. package/es/ProThemeTools/utils/index.js +30 -24
  182. package/es/ProTooltip/index.js +14 -9
  183. package/es/ProTooltip/style/index.less +0 -2
  184. package/es/ProTree/components/AdaptiveTooltip.js +2 -3
  185. package/es/ProTree/components/List.js +3 -4
  186. package/es/ProTree/components/ProTree.js +5 -12
  187. package/es/ProTree/components/ProTreeSelect/index.js +28 -26
  188. package/es/ProTree/components/ProTreeSelect/style/index.less +0 -2
  189. package/es/ProTree/components/Tree.js +6 -13
  190. package/es/ProTree/index.js +0 -7
  191. package/es/ProTree/propsType.d.ts +1 -1
  192. package/es/ProTree/style/index.less +8 -6
  193. package/es/ProTreeModal/components/Cascader.js +3 -4
  194. package/es/ProTreeModal/components/List.js +11 -17
  195. package/es/ProTreeModal/components/SortableItem.js +2 -3
  196. package/es/ProTreeModal/components/Tree.js +3 -4
  197. package/es/ProTreeModal/components/Trigger.js +6 -11
  198. package/es/ProTreeModal/index.d.ts +0 -1
  199. package/es/ProTreeModal/index.js +10 -20
  200. package/es/ProTreeModal/style/index.less +12 -3
  201. package/es/ProUpload/components/ButtonRender.js +4 -7
  202. package/es/ProUpload/components/DragRender.js +2 -3
  203. package/es/ProUpload/components/FileItem.d.ts +0 -1
  204. package/es/ProUpload/components/FileItem.js +15 -21
  205. package/es/ProUpload/components/ImageRender.js +8 -17
  206. package/es/ProUpload/index.js +3 -4
  207. package/es/ProUpload/style/index.less +171 -12
  208. package/es/ProViewer/index.js +28 -35
  209. package/es/ProViewer/propsType.js +3 -0
  210. package/es/ProViewer/style/index.less +0 -2
  211. package/es/ProWaterMark/index.js +2 -3
  212. package/es/ProWaterMark/propsType.d.ts +5 -24
  213. package/es/global.less +2 -1
  214. package/es/index.d.ts +3 -3
  215. package/es/index.js +5 -5
  216. package/es/locale/en_US.js +1 -1
  217. package/es/locale/index.d.ts +2 -0
  218. package/es/locale/index.js +13 -2
  219. package/es/locale/zh_CN.js +1 -1
  220. package/es/style/components.less +0 -3
  221. package/es/style/index.less +1 -1
  222. package/es/style/theme/antd.less +36 -48
  223. package/es/style/theme/base.less +90 -0
  224. package/es/style/theme/index.less +2 -89
  225. package/es/utils/index.d.ts +7 -0
  226. package/es/utils/index.js +37 -1
  227. package/lib/FormsProvider/index.d.ts +4 -1
  228. package/lib/ProAction/components/CheckModalContent/index.js +0 -9
  229. package/lib/ProAction/index.js +3 -6
  230. package/lib/ProAction/index.less +0 -2
  231. package/lib/ProConfigProvider/index.d.ts +22 -5
  232. package/lib/ProConfigProvider/index.js +58 -26
  233. package/lib/ProDownload/index.js +2 -3
  234. package/lib/ProDownload/style/index.less +0 -2
  235. package/lib/ProDownload/utils.js +3 -4
  236. package/lib/ProDrawerForm/components/ProDrawer/index.js +13 -17
  237. package/lib/ProDrawerForm/components/ProModal/index.js +12 -20
  238. package/lib/ProDrawerForm/index.d.ts +2 -1
  239. package/lib/ProDrawerForm/index.js +35 -33
  240. package/lib/ProDrawerForm/propsType.d.ts +7 -18
  241. package/lib/ProDrawerForm/style/index.less +6 -14
  242. package/lib/ProEditLabel/components/RenderProForm.js +2 -3
  243. package/lib/ProEditLabel/index.js +10 -15
  244. package/lib/ProEditLabel/propsType.d.ts +1 -6
  245. package/lib/ProEditLabel/style/index.less +2 -3
  246. package/lib/ProEditTable/components/ActionButton/index.js +5 -8
  247. package/lib/ProEditTable/components/RcTable/BaseTable.js +69 -52
  248. package/lib/ProEditTable/components/RcTable/DraggableTable.js +69 -48
  249. package/lib/ProEditTable/components/RcTable/index.d.ts +0 -2
  250. package/lib/ProEditTable/components/RcTable/index.js +1 -8
  251. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +9 -12
  252. package/lib/ProEditTable/components/RenderField/index.d.ts +3 -2
  253. package/lib/ProEditTable/components/RenderField/index.js +401 -241
  254. package/lib/ProEditTable/components/RenderToolbar/index.js +5 -5
  255. package/lib/ProEditTable/components/Summary/index.js +5 -9
  256. package/lib/ProEditTable/components/Validator/index.js +3 -7
  257. package/lib/ProEditTable/index.js +96 -100
  258. package/lib/ProEditTable/propsType.d.ts +7 -7
  259. package/lib/ProEditTable/style/index.less +12 -12
  260. package/lib/ProEditTable/utils/config.js +6 -7
  261. package/lib/ProEditTable/utils/index.js +20 -16
  262. package/lib/ProEditTable/utils/useEditTableError.js +12 -4
  263. package/lib/ProEditTable/utils/useShouldUpdateForTable.d.ts +15 -0
  264. package/lib/ProEditTable/utils/useShouldUpdateForTable.js +139 -0
  265. package/lib/ProEnum/hooks/useEnum.js +5 -0
  266. package/lib/ProEnum/hooks/useEnumRequest.js +2 -2
  267. package/lib/ProEnum/index.js +10 -17
  268. package/lib/ProEnum/style/index.less +0 -2
  269. package/lib/ProEnum/utils/index.d.ts +1 -0
  270. package/lib/ProEnum/utils/index.js +4 -7
  271. package/lib/ProForm/components/Container.d.ts +1 -0
  272. package/lib/ProForm/components/Container.js +2 -3
  273. package/lib/ProForm/components/FormFooter/index.js +18 -19
  274. package/lib/ProForm/components/FormFooter/propsType.d.ts +2 -0
  275. package/lib/ProForm/components/base/Checkbox/index.js +3 -4
  276. package/lib/ProForm/components/base/DatePicker/index.d.ts +1 -3
  277. package/lib/ProForm/components/base/DatePicker/index.js +7 -7
  278. package/lib/ProForm/components/base/DatePicker/useDateLimit.d.ts +3 -0
  279. package/lib/ProForm/components/base/DatePicker/useDateLimit.js +19 -0
  280. package/lib/ProForm/components/base/Input/index.js +10 -8
  281. package/lib/ProForm/components/base/InputNumber/index.js +3 -6
  282. package/lib/ProForm/components/base/Radio/index.js +3 -4
  283. package/lib/ProForm/components/base/RangePicker/index.js +6 -6
  284. package/lib/ProForm/components/base/RangePicker/useDateRange.d.ts +5 -5
  285. package/lib/ProForm/components/base/Select/index.js +2 -3
  286. package/lib/ProForm/components/base/Switch/index.js +2 -3
  287. package/lib/ProForm/components/base/SwitchCheckbox/index.js +2 -3
  288. package/lib/ProForm/components/base/SwitchCheckbox/style/index.less +0 -2
  289. package/lib/ProForm/components/base/TextArea/index.js +3 -4
  290. package/lib/ProForm/components/base/TextArea/index.less +10 -2
  291. package/lib/ProForm/components/base/TimePicker/index.d.ts +1 -2
  292. package/lib/ProForm/components/base/TimePicker/index.js +6 -7
  293. package/lib/ProForm/components/base/TimePicker/style/index.less +3 -3
  294. package/lib/ProForm/components/combination/Container/style/index.less +0 -2
  295. package/lib/ProForm/components/combination/FormList/components/ActionButton.js +15 -13
  296. package/lib/ProForm/components/combination/FormList/components/BlockFields.js +6 -9
  297. package/lib/ProForm/components/combination/FormList/components/Empty.js +2 -3
  298. package/lib/ProForm/components/combination/FormList/components/LineFields.js +2 -3
  299. package/lib/ProForm/components/combination/FormList/components/ToolbarButton.js +4 -7
  300. package/lib/ProForm/components/combination/FormList/index.js +2 -3
  301. package/lib/ProForm/components/combination/FormList/style/index.less +36 -2
  302. package/lib/ProForm/components/combination/Group/component/AddonWrapper/index.d.ts +1 -0
  303. package/lib/ProForm/components/combination/Group/component/ComRender.js +0 -1
  304. package/lib/ProForm/components/combination/Group/index.js +3 -4
  305. package/lib/ProForm/components/combination/Group/style/index.less +7 -87
  306. package/lib/ProForm/components/combination/Group/utils.d.ts +1 -1
  307. package/lib/ProForm/components/combination/Group/utils.js +4 -5
  308. package/lib/ProForm/components/combination/ProCascader/index.js +12 -14
  309. package/lib/ProForm/components/combination/ProCascader/propsType.d.ts +1 -1
  310. package/lib/ProForm/components/combination/ProCascader/style/index.less +0 -2
  311. package/lib/ProForm/components/combination/ProModalSelect/index.d.ts +1 -1
  312. package/lib/ProForm/components/combination/ProModalSelect/index.js +24 -39
  313. package/lib/ProForm/components/combination/ProModalSelect/style/index.less +11 -15
  314. package/lib/ProForm/components/combination/ProNumberRange/index.d.ts +3 -2
  315. package/lib/ProForm/components/combination/ProNumberRange/index.js +20 -20
  316. package/lib/ProForm/components/combination/ProNumberRange/style/index.less +3 -54
  317. package/lib/ProForm/components/combination/ProRangeLimit/index.d.ts +2 -23
  318. package/lib/ProForm/components/combination/ProRangeLimit/index.js +42 -25
  319. package/lib/ProForm/components/combination/ProRangeLimit/propsType.d.ts +23 -0
  320. package/lib/ProForm/components/combination/ProTimeLimit/hooks/useControlled.d.ts +3 -2
  321. package/lib/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +14 -2
  322. package/lib/ProForm/components/combination/ProTimeLimit/index.d.ts +5 -6
  323. package/lib/ProForm/components/combination/ProTimeLimit/index.js +23 -20
  324. package/lib/ProForm/components/combination/ProTimeLimit/style/index.less +64 -6
  325. package/lib/ProForm/components/index.d.ts +2 -9
  326. package/lib/ProForm/components/index.js +1 -63
  327. package/lib/ProForm/components/render/ChangedWrapper.js +8 -9
  328. package/lib/ProForm/components/render/ConfirmWrapper.js +7 -7
  329. package/lib/ProForm/components/render/Render.js +29 -30
  330. package/lib/ProForm/components/render/RenderFields.d.ts +1 -0
  331. package/lib/ProForm/components/render/RenderFields.js +6 -3
  332. package/lib/ProForm/components/render/propsType.d.ts +3 -6
  333. package/lib/ProForm/index.d.ts +2 -2
  334. package/lib/ProForm/index.js +13 -42
  335. package/lib/ProForm/propsType.d.ts +3 -0
  336. package/lib/ProForm/style/index.less +4 -16
  337. package/lib/ProForm/utils/index.d.ts +15 -1
  338. package/lib/ProForm/utils/index.js +69 -17
  339. package/lib/ProForm/utils/useDeepCompareMemo.js +4 -4
  340. package/lib/ProForm/utils/useForm.js +26 -21
  341. package/lib/ProForm/utils/useShouldUpdate.d.ts +1 -0
  342. package/lib/ProForm/utils/useShouldUpdate.js +101 -15
  343. package/lib/ProIcon/index.js +10 -13
  344. package/lib/ProIcon/style/index.less +0 -2
  345. package/lib/ProLayout/components/Layout/Header/index.js +1 -1
  346. package/lib/ProLayout/components/Layout/Menu/FoldMenu/index.js +3 -6
  347. package/lib/ProLayout/components/Layout/Menu/FoldMenu/style/index.less +40 -39
  348. package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.js +2 -3
  349. package/lib/ProLayout/components/Layout/Menu/OpenMenu/style/index.less +0 -3
  350. package/lib/ProLayout/components/Layout/Menu/SideMenu/style/index.less +7 -5
  351. package/lib/ProLayout/components/Layout/Menu/index.js +1 -1
  352. package/lib/ProLayout/components/Layout/Menu/style/index.less +0 -2
  353. package/lib/ProLayout/components/Layout/Notice/style/index.less +0 -2
  354. package/lib/ProLayout/components/ProCollapse/index.js +29 -44
  355. package/lib/ProLayout/components/ProCollapse/style/index.less +5 -4
  356. package/lib/ProLayout/components/ProFooter/index.js +2 -3
  357. package/lib/ProLayout/components/ProFooter/style/index.less +0 -2
  358. package/lib/ProLayout/components/ProHeader/components/Copy/index.js +2 -3
  359. package/lib/ProLayout/components/ProHeader/components/ProBackBtn/index.js +2 -3
  360. package/lib/ProLayout/components/ProHeader/components/ProBackBtn/style/index.less +7 -9
  361. package/lib/ProLayout/components/ProHeader/index.js +44 -47
  362. package/lib/ProLayout/components/ProHeader/style/index.less +0 -2
  363. package/lib/ProLayout/components/TabsManager/components/TabContextMenu.js +2 -3
  364. package/lib/ProLayout/components/TabsManager/hooks/useTabsState.js +0 -2
  365. package/lib/ProLayout/index.js +79 -40
  366. package/lib/ProLayout/style/index.less +2 -3
  367. package/lib/ProSelect/components/AdaptiveTooltip.js +2 -3
  368. package/lib/ProSelect/index.js +7 -15
  369. package/lib/ProSelect/index.less +0 -2
  370. package/lib/ProSelect/propsType.d.ts +1 -1
  371. package/lib/ProStep/components/Anchor/index.js +2 -3
  372. package/lib/ProStep/components/Item/index.js +1 -1
  373. package/lib/ProStep/components/Step/index.js +1 -0
  374. package/lib/ProStep/style/index.less +2 -4
  375. package/lib/ProTable/components/FormatColumn/index.js +33 -31
  376. package/lib/ProTable/components/RcTable/components/BaseTable/index.d.ts +0 -1
  377. package/lib/ProTable/components/RcTable/components/BaseTable/index.js +2 -4
  378. package/lib/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +16 -13
  379. package/lib/ProTable/components/RcTable/components/DraggableTable/index.d.ts +0 -1
  380. package/lib/ProTable/components/RcTable/components/DraggableTable/index.js +2 -4
  381. package/lib/ProTable/components/RenderColumn/index.d.ts +1 -1
  382. package/lib/ProTable/components/RenderColumn/index.js +15 -18
  383. package/lib/ProTable/components/RenderSummary/index.js +4 -6
  384. package/lib/ProTable/components/RenderTableHeader/index.js +3 -5
  385. package/lib/ProTable/components/RenderTabs/index.js +3 -6
  386. package/lib/ProTable/components/TableResizable/index.js +2 -1
  387. package/lib/ProTable/components/TooltipTitle/index.js +2 -3
  388. package/lib/ProTable/hooks/useAntdTable.js +4 -7
  389. package/lib/ProTable/index.d.ts +0 -7
  390. package/lib/ProTable/index.js +10 -13
  391. package/lib/ProTable/propsType.d.ts +2 -3
  392. package/lib/ProTable/style/index.less +4 -6
  393. package/lib/ProTabs/components/Card/index.js +5 -11
  394. package/lib/ProTabs/index.js +2 -3
  395. package/lib/ProTabs/style/index.less +0 -2
  396. package/lib/ProThemeTools/component/ProTools/index.js +18 -22
  397. package/lib/ProThemeTools/context/ThemeContext.d.ts +31 -0
  398. package/lib/ProThemeTools/context/ThemeContext.js +145 -0
  399. package/lib/ProThemeTools/index.d.ts +4 -8
  400. package/lib/ProThemeTools/index.js +88 -48
  401. package/lib/ProThemeTools/style/index.less +1 -3
  402. package/lib/ProThemeTools/utils/index.d.ts +16 -6
  403. package/lib/ProThemeTools/utils/index.js +34 -27
  404. package/lib/ProTooltip/index.js +14 -9
  405. package/lib/ProTooltip/style/index.less +0 -2
  406. package/lib/ProTree/components/AdaptiveTooltip.js +2 -4
  407. package/lib/ProTree/components/List.js +3 -4
  408. package/lib/ProTree/components/ProTree.js +5 -12
  409. package/lib/ProTree/components/ProTreeSelect/index.js +28 -26
  410. package/lib/ProTree/components/ProTreeSelect/style/index.less +0 -2
  411. package/lib/ProTree/components/Tree.js +6 -13
  412. package/lib/ProTree/index.js +0 -8
  413. package/lib/ProTree/propsType.d.ts +1 -1
  414. package/lib/ProTree/style/index.less +8 -6
  415. package/lib/ProTreeModal/components/Cascader.js +3 -4
  416. package/lib/ProTreeModal/components/List.js +11 -17
  417. package/lib/ProTreeModal/components/SortableItem.js +2 -3
  418. package/lib/ProTreeModal/components/Tree.js +3 -4
  419. package/lib/ProTreeModal/components/Trigger.js +6 -11
  420. package/lib/ProTreeModal/index.d.ts +0 -1
  421. package/lib/ProTreeModal/index.js +10 -20
  422. package/lib/ProTreeModal/style/index.less +12 -3
  423. package/lib/ProUpload/components/ButtonRender.js +4 -7
  424. package/lib/ProUpload/components/DragRender.js +2 -3
  425. package/lib/ProUpload/components/FileItem.d.ts +0 -1
  426. package/lib/ProUpload/components/FileItem.js +15 -21
  427. package/lib/ProUpload/components/ImageRender.js +8 -17
  428. package/lib/ProUpload/index.js +3 -4
  429. package/lib/ProUpload/style/index.less +171 -12
  430. package/lib/ProViewer/index.js +30 -36
  431. package/lib/ProViewer/propsType.js +3 -1
  432. package/lib/ProViewer/style/index.less +0 -2
  433. package/lib/ProWaterMark/index.js +3 -4
  434. package/lib/ProWaterMark/propsType.d.ts +5 -24
  435. package/lib/global.less +2 -1
  436. package/lib/index.d.ts +3 -3
  437. package/lib/index.js +34 -21
  438. package/lib/locale/en_US.js +1 -1
  439. package/lib/locale/index.d.ts +2 -0
  440. package/lib/locale/index.js +14 -3
  441. package/lib/locale/zh_CN.js +1 -1
  442. package/lib/style/components.less +0 -3
  443. package/lib/style/index.less +1 -1
  444. package/lib/style/theme/antd.less +36 -48
  445. package/lib/style/theme/base.less +90 -0
  446. package/lib/style/theme/index.less +2 -89
  447. package/lib/utils/index.d.ts +7 -0
  448. package/lib/utils/index.js +41 -2
  449. package/package.json +37 -25
  450. package/es/ProEditTable/components/RcTable/VirtualTable.d.ts +0 -3
  451. package/es/ProEditTable/components/RcTable/VirtualTable.js +0 -9
  452. package/es/ProForm/components/combination/ProCombination/index.d.ts +0 -6
  453. package/es/ProForm/components/combination/ProCombination/index.js +0 -208
  454. package/es/ProForm/components/combination/ProCombination/propsType.d.ts +0 -68
  455. package/es/ProForm/components/combination/ProCombination/style/index.less +0 -18
  456. package/es/ProForm/components/old/EnumSelect/hooks/useRequestList.d.ts +0 -33
  457. package/es/ProForm/components/old/EnumSelect/hooks/useRequestList.js +0 -110
  458. package/es/ProForm/components/old/EnumSelect/index.d.ts +0 -4
  459. package/es/ProForm/components/old/EnumSelect/index.js +0 -265
  460. package/es/ProForm/components/old/EnumSelect/interface.d.ts +0 -29
  461. package/es/ProForm/components/old/EnumSelect/interface.js +0 -1
  462. package/es/ProForm/components/old/EnumSelect/style/index.less +0 -113
  463. package/es/ProForm/components/old/InputRange/index.d.ts +0 -16
  464. package/es/ProForm/components/old/InputRange/index.js +0 -101
  465. package/es/ProForm/components/old/InputWithSuffix/index.d.ts +0 -3
  466. package/es/ProForm/components/old/InputWithSuffix/index.js +0 -47
  467. package/es/ProForm/components/old/InputWithSuffix/propsTypes.d.ts +0 -11
  468. package/es/ProForm/components/old/InputWithSuffix/propsTypes.js +0 -1
  469. package/es/ProForm/components/old/ProAddress/index.d.ts +0 -27
  470. package/es/ProForm/components/old/ProAddress/index.js +0 -276
  471. package/es/ProForm/components/old/ProAddress/propsTypes.d.ts +0 -16
  472. package/es/ProForm/components/old/ProAddress/propsTypes.js +0 -1
  473. package/es/ProForm/components/old/ProCertNo/index.d.ts +0 -14
  474. package/es/ProForm/components/old/ProCertNo/index.js +0 -66
  475. package/es/ProForm/components/old/ProCertNo/propsType.d.ts +0 -18
  476. package/es/ProForm/components/old/ProCertNo/propsType.js +0 -1
  477. package/es/ProForm/components/old/ProCertValidity/index.d.ts +0 -9
  478. package/es/ProForm/components/old/ProCertValidity/index.js +0 -186
  479. package/es/ProForm/components/old/ProCertValidity/propsType.d.ts +0 -19
  480. package/es/ProForm/components/old/ProCertValidity/propsType.js +0 -1
  481. package/es/ProForm/components/old/ProRangeBox/index.d.ts +0 -2
  482. package/es/ProForm/components/old/ProRangeBox/index.js +0 -98
  483. package/es/ProForm/components/old/ProRangeBox/propsType.d.ts +0 -3
  484. package/es/ProForm/components/old/ProRangeBox/propsType.js +0 -1
  485. package/es/ProUpload/style/fileItem.less +0 -159
  486. package/es/old/ProCertValidity/index.d.ts +0 -9
  487. package/es/old/ProCertValidity/index.js +0 -186
  488. package/es/old/ProCertValidity/propsType.d.ts +0 -19
  489. package/es/old/ProCertValidity/propsType.js +0 -1
  490. package/es/old/ProEditableTable/index.d.ts +0 -4
  491. package/es/old/ProEditableTable/index.js +0 -594
  492. package/es/old/ProEditableTable/propsType.d.ts +0 -68
  493. package/es/old/ProEditableTable/propsType.js +0 -1
  494. package/es/old/ProEditableTable/style/index.less +0 -75
  495. package/es/old/ProEditableTable/utils.d.ts +0 -29
  496. package/es/old/ProEditableTable/utils.js +0 -321
  497. package/lib/ProEditTable/components/RcTable/VirtualTable.d.ts +0 -3
  498. package/lib/ProEditTable/components/RcTable/VirtualTable.js +0 -14
  499. package/lib/ProForm/components/combination/ProCombination/index.d.ts +0 -6
  500. package/lib/ProForm/components/combination/ProCombination/index.js +0 -217
  501. package/lib/ProForm/components/combination/ProCombination/propsType.d.ts +0 -68
  502. package/lib/ProForm/components/combination/ProCombination/style/index.less +0 -18
  503. package/lib/ProForm/components/old/EnumSelect/hooks/useRequestList.d.ts +0 -33
  504. package/lib/ProForm/components/old/EnumSelect/hooks/useRequestList.js +0 -117
  505. package/lib/ProForm/components/old/EnumSelect/index.d.ts +0 -4
  506. package/lib/ProForm/components/old/EnumSelect/index.js +0 -271
  507. package/lib/ProForm/components/old/EnumSelect/interface.d.ts +0 -29
  508. package/lib/ProForm/components/old/EnumSelect/interface.js +0 -5
  509. package/lib/ProForm/components/old/EnumSelect/style/index.less +0 -113
  510. package/lib/ProForm/components/old/InputRange/index.d.ts +0 -16
  511. package/lib/ProForm/components/old/InputRange/index.js +0 -108
  512. package/lib/ProForm/components/old/InputWithSuffix/index.d.ts +0 -3
  513. package/lib/ProForm/components/old/InputWithSuffix/index.js +0 -53
  514. package/lib/ProForm/components/old/InputWithSuffix/propsTypes.d.ts +0 -11
  515. package/lib/ProForm/components/old/InputWithSuffix/propsTypes.js +0 -5
  516. package/lib/ProForm/components/old/ProAddress/index.d.ts +0 -27
  517. package/lib/ProForm/components/old/ProAddress/index.js +0 -284
  518. package/lib/ProForm/components/old/ProAddress/propsTypes.d.ts +0 -16
  519. package/lib/ProForm/components/old/ProAddress/propsTypes.js +0 -5
  520. package/lib/ProForm/components/old/ProCertNo/index.d.ts +0 -14
  521. package/lib/ProForm/components/old/ProCertNo/index.js +0 -72
  522. package/lib/ProForm/components/old/ProCertNo/propsType.d.ts +0 -18
  523. package/lib/ProForm/components/old/ProCertNo/propsType.js +0 -5
  524. package/lib/ProForm/components/old/ProCertValidity/index.d.ts +0 -9
  525. package/lib/ProForm/components/old/ProCertValidity/index.js +0 -192
  526. package/lib/ProForm/components/old/ProCertValidity/propsType.d.ts +0 -19
  527. package/lib/ProForm/components/old/ProCertValidity/propsType.js +0 -5
  528. package/lib/ProForm/components/old/ProRangeBox/index.d.ts +0 -2
  529. package/lib/ProForm/components/old/ProRangeBox/index.js +0 -105
  530. package/lib/ProForm/components/old/ProRangeBox/propsType.d.ts +0 -3
  531. package/lib/ProForm/components/old/ProRangeBox/propsType.js +0 -5
  532. package/lib/ProUpload/style/fileItem.less +0 -159
  533. package/lib/old/ProCertValidity/index.d.ts +0 -9
  534. package/lib/old/ProCertValidity/index.js +0 -192
  535. package/lib/old/ProCertValidity/propsType.d.ts +0 -19
  536. package/lib/old/ProCertValidity/propsType.js +0 -5
  537. package/lib/old/ProEditableTable/index.d.ts +0 -4
  538. package/lib/old/ProEditableTable/index.js +0 -598
  539. package/lib/old/ProEditableTable/propsType.d.ts +0 -68
  540. package/lib/old/ProEditableTable/propsType.js +0 -5
  541. package/lib/old/ProEditableTable/style/index.less +0 -75
  542. package/lib/old/ProEditableTable/utils.d.ts +0 -29
  543. package/lib/old/ProEditableTable/utils.js +0 -329
  544. /package/es/ProForm/components/combination/{ProCombination → ProRangeLimit}/propsType.js +0 -0
  545. /package/lib/ProForm/components/combination/{ProCombination → ProRangeLimit}/propsType.js +0 -0
@@ -1,5 +1,3 @@
1
- import "antd/es/form/style";
2
- import _Form from "antd/es/form";
3
1
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
4
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
@@ -7,9 +5,11 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
7
5
  var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "onDiff", "className", "trim", "confirm", "dependencies", "desensitization"];
8
6
  /* eslint-disable prefer-destructuring */
9
7
  /* eslint-disable prefer-const */
10
- import React, { useEffect } from 'react';
8
+ import React, { useEffect, useCallback, useMemo, memo, useRef } from 'react';
9
+ import { Form } from 'antd';
11
10
  import classNames from 'classnames';
12
- import { cloneDeep, isEqual, debounce, omit, isFunction } from 'lodash';
11
+ import { cloneDeep, isEqual, debounce, omit, isFunction, isEqualWith } from 'lodash';
12
+ import { compatStartTransition, customEqualForFunction } from "../../../utils";
13
13
  import valueTypeMap from "../../../ProForm/utils/valueType";
14
14
  import transformMap from "../../utils/transform";
15
15
  import { getNamePath, difference, getDisabled } from "../../utils/tools";
@@ -23,10 +23,11 @@ import { isSelect, isTrim } from "../../../ProForm/utils";
23
23
  import ConfirmWrapper from "../../../ProForm/components/render/ConfirmWrapper";
24
24
  import { getDefaultProps } from "../../utils/getDefaultProps";
25
25
  import ListChangedWrapper from "./ListChangedWrapper";
26
+ import useShouldUpdateForTable from "../../utils/useShouldUpdateForTable";
26
27
  import { Fragment as _Fragment } from "react/jsx-runtime";
27
28
  import { jsx as _jsx } from "react/jsx-runtime";
28
29
  var RenderField = _ref => {
29
- var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps2;
30
+ var _type, _type$replace, _fieldProps2, _fieldProps4, _names, _TargetComponent5, _componentProps2;
30
31
  var value = _ref.text,
31
32
  record = _ref.record,
32
33
  index = _ref.index,
@@ -58,9 +59,6 @@ var RenderField = _ref => {
58
59
  dependencies = column.dependencies,
59
60
  desensitization = column.desensitization,
60
61
  resetProps = _objectWithoutProperties(column, _excluded);
61
-
62
- // editRender弃用使用component同ProForm
63
- var _editRender = component || editRender;
64
62
  var mode = config.mode,
65
63
  cellName = config.cellName,
66
64
  cellNamePath = config.cellNamePath,
@@ -77,13 +75,17 @@ var RenderField = _ref => {
77
75
  validateTrigger = _config$validateTrigg === void 0 ? ['onChange', 'onBlur', 'onSubmit'] : _config$validateTrigg,
78
76
  otherProps = config.otherProps,
79
77
  diffConfig = config.diffConfig,
80
- getIsNew = config.getIsNew;
78
+ getIsNew = config.getIsNew,
79
+ shouldUpdateDebounce = config.shouldUpdateDebounce;
81
80
  var _fieldProps = fieldProps || formItemProps || {};
82
81
  var _rules = rules || [];
83
82
  var _required = required;
84
83
  var _valueType = valueType;
85
84
  var _disabled = false;
86
85
  var _desensitization = desensitization || [];
86
+
87
+ // editRender弃用使用component同ProForm
88
+ var _editRender = component || editRender;
87
89
  var isCell = mode === 'cell';
88
90
  if (isCell) {
89
91
  record['is-view'] = !isEqual(cellNamePath, cellName);
@@ -102,32 +104,45 @@ var RenderField = _ref => {
102
104
  var rowData = form.getFieldValue([...namePath, index]) || record || {};
103
105
  var currentValue = dataIndex ? rowData === null || rowData === void 0 ? void 0 : rowData[dataIndex] : null;
104
106
 
105
- // 第三个参数
106
- var options = {
107
+ // 第三个参数 - 使用useMemo优化
108
+ var options = useMemo(() => ({
107
109
  index,
108
110
  form,
109
111
  name: column === null || column === void 0 ? void 0 : column.name,
110
112
  namePath: [...namePath, index]
111
- };
113
+ }), [index, column === null || column === void 0 ? void 0 : column.name, namePath]);
112
114
 
113
- // 行参数
114
- var rowParams = [currentValue, rowData, options];
115
+ // 行参数 - 使用useMemo优化
116
+ var rowParams = useMemo(() => [currentValue, rowData, options], [currentValue, rowData, options]);
117
+
118
+ // 使用 hook 处理动态属性(带选择性防抖)
119
+ var dynamicProps = useShouldUpdateForTable({
120
+ rowParams,
121
+ column,
122
+ shouldUpdateDebounce
123
+ });
115
124
 
116
125
  // required & rules & fieldProps & disabled & valueType 函数化处理
126
+ // 优先使用 hook 返回的值,fallback 到原始值
117
127
  if (isFunction(required)) {
118
- _required = required(...rowParams);
128
+ var _dynamicProps$require;
129
+ _required = (_dynamicProps$require = dynamicProps.required) !== null && _dynamicProps$require !== void 0 ? _dynamicProps$require : required(...rowParams);
119
130
  }
120
131
  if (isFunction(fieldProps)) {
121
- _fieldProps = fieldProps(...rowParams);
132
+ var _dynamicProps$fieldPr;
133
+ _fieldProps = (_dynamicProps$fieldPr = dynamicProps.fieldProps) !== null && _dynamicProps$fieldPr !== void 0 ? _dynamicProps$fieldPr : fieldProps(...rowParams);
122
134
  }
123
135
  if (isFunction(rules)) {
124
- _rules = rules(...rowParams);
136
+ var _dynamicProps$rules;
137
+ _rules = (_dynamicProps$rules = dynamicProps.rules) !== null && _dynamicProps$rules !== void 0 ? _dynamicProps$rules : rules(...rowParams);
125
138
  }
126
139
  if (isFunction(valueType)) {
127
- _valueType = valueType(...rowParams);
140
+ var _dynamicProps$valueTy;
141
+ _valueType = (_dynamicProps$valueTy = dynamicProps.valueType) !== null && _dynamicProps$valueTy !== void 0 ? _dynamicProps$valueTy : valueType(...rowParams);
128
142
  }
129
143
  if (isFunction(desensitization)) {
130
- _desensitization = desensitization(...rowParams);
144
+ var _dynamicProps$desensi;
145
+ _desensitization = (_dynamicProps$desensi = dynamicProps.desensitization) !== null && _dynamicProps$desensi !== void 0 ? _dynamicProps$desensi : desensitization(...rowParams);
131
146
  }
132
147
 
133
148
  // 获取最终的disabled
@@ -139,11 +154,11 @@ var RenderField = _ref => {
139
154
  columnFieldProps: _fieldProps,
140
155
  params: rowParams
141
156
  });
142
- if (typeof isEditable === 'function') {
143
- isEditable = isEditable(...rowParams);
144
- // setTimeout(() => {
145
- // !isEditable && form.validateFields([cellName]);
146
- // }, 100);
157
+
158
+ // isEditable 处理 - 优先使用 hook 返回的值
159
+ if (isFunction(isEditable)) {
160
+ var _dynamicProps$isEdita;
161
+ isEditable = (_dynamicProps$isEdita = dynamicProps.isEditable) !== null && _dynamicProps$isEdita !== void 0 ? _dynamicProps$isEdita : isEditable(...rowParams);
147
162
  }
148
163
 
149
164
  // 是否只读文本
@@ -161,7 +176,10 @@ var RenderField = _ref => {
161
176
  var baseName = isView ? name : namePath;
162
177
  var TargetComponent;
163
178
 
164
- // 设置校验规则
179
+ // 将Hooks调用移到组件顶层
180
+ var proConfig = useProConfig();
181
+
182
+ // 设置校验规则 - 修复Hooks使用规则
165
183
  var internalRule = useRules({
166
184
  names,
167
185
  label: label,
@@ -177,17 +195,19 @@ var RenderField = _ref => {
177
195
 
178
196
  // 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
179
197
  var formItemChildProps = _objectSpread({}, _fieldProps);
180
- var defaultProps = getDefaultProps({
198
+
199
+ // 使用useMemo优化defaultProps计算
200
+ var defaultProps = useMemo(() => getDefaultProps({
181
201
  name,
182
202
  namePath: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
183
203
  type: column === null || column === void 0 ? void 0 : column.type,
184
204
  fieldProps: column === null || column === void 0 ? void 0 : column.fieldProps
185
- });
205
+ }), [name, formNamePath, cellName, column === null || column === void 0 ? void 0 : column.type, column === null || column === void 0 ? void 0 : column.fieldProps]);
186
206
 
187
- // 允许formItem的属性放在column最外层
188
- var _formItemProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultProps), resetProps), internalRule), {}, {
207
+ // 允许formItem的属性放在column最外层 - 使用useMemo优化
208
+ var _formItemProps = useMemo(() => _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultProps), resetProps), internalRule), {}, {
189
209
  validateTrigger
190
- });
210
+ }), [defaultProps, resetProps, internalRule, validateTrigger]);
191
211
  if (['Switch', 'SwitchCheckbox'].includes(type)) {
192
212
  _formItemProps.valuePropName = 'checked';
193
213
  _valueType = 'switch';
@@ -197,20 +217,20 @@ var RenderField = _ref => {
197
217
  * 针对一些特殊类型,基于formItem的normalize与getValueProps进行默认值类型转换
198
218
  * @returns {}
199
219
  */
200
- var defaultTransform = () => {
220
+ var defaultTransform = useCallback(() => {
201
221
  var types = ['DatePicker', 'RangePicker'];
202
222
  if (!_valueType && types.includes(type)) {
203
223
  var _transformMap$type;
204
224
  return transformMap === null || transformMap === void 0 || (_transformMap$type = transformMap[type]) === null || _transformMap$type === void 0 ? void 0 : _transformMap$type.call(transformMap, _fieldProps || {});
205
225
  }
206
226
  return {};
207
- };
227
+ }, [_valueType, type, _fieldProps]);
208
228
 
209
229
  /**
210
230
  * 配置valueType时,基于formItem的normalize与getValueProps进行值类型转换
211
231
  * @returns {}
212
232
  */
213
- var valueTypeTransform = () => {
233
+ var valueTypeTransform = useCallback(() => {
214
234
  var _fieldProps3;
215
235
  // SwitchCheckbox默认YN, 兼容已有组件
216
236
  if (type === 'SwitchCheckbox') {
@@ -220,7 +240,7 @@ var RenderField = _ref => {
220
240
  mode: (_fieldProps3 = _fieldProps) === null || _fieldProps3 === void 0 ? void 0 : _fieldProps3.mode
221
241
  });
222
242
  return isFunction(valueTypeMap[_valueType]) ? valueTypeMap[_valueType](params) : {};
223
- };
243
+ }, [type, _valueType, column, (_fieldProps4 = _fieldProps) === null || _fieldProps4 === void 0 ? void 0 : _fieldProps4.mode]);
224
244
  if ((_names = names) !== null && _names !== void 0 && _names.length) {
225
245
  // 支持names配置,临时生成对应的formItem,用来存储单个对应的值
226
246
  names = names.map(key => {
@@ -245,14 +265,14 @@ var RenderField = _ref => {
245
265
  * 配置names时,基于formItem的normalize与getValueProps进行值类型转换
246
266
  * @returns {}
247
267
  */
248
- var namesTransform = () => {
268
+ var namesTransform = useCallback(() => {
249
269
  var _names3;
250
270
  if (!((_names3 = names) !== null && _names3 !== void 0 && _names3.length)) {
251
271
  return valueTypeTransform();
252
272
  }
253
273
  var namesStr = [...baseName, index, dataIndex];
254
274
  return transformNames(_objectSpread(_objectSpread({}, _formItemProps), valueTypeTransform()), form, names, namesStr, type);
255
- };
275
+ }, [names, baseName, index, dataIndex, _formItemProps, type]);
256
276
  if (!_editRender && typeof type === 'string') {
257
277
  var _componentMap$type;
258
278
  TargetComponent = (_componentMap$type = componentMap[type]) !== null && _componentMap$type !== void 0 ? _componentMap$type : /*#__PURE__*/_jsx(_Fragment, {});
@@ -285,7 +305,9 @@ var RenderField = _ref => {
285
305
  var onChange = formItemChildProps === null || formItemChildProps === void 0 ? void 0 : formItemChildProps.onChange;
286
306
  var onFieldChange = formItemChildProps === null || formItemChildProps === void 0 ? void 0 : formItemChildProps.onFieldChange;
287
307
  var onBlur = formItemChildProps === null || formItemChildProps === void 0 ? void 0 : formItemChildProps.onBlur;
288
- var formatArgs = function formatArgs() {
308
+
309
+ // 使用useCallback优化formatArgs函数
310
+ var formatArgs = useCallback(function () {
289
311
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
290
312
  args[_key] = arguments[_key];
291
313
  }
@@ -313,230 +335,268 @@ var RenderField = _ref => {
313
335
  break;
314
336
  }
315
337
  return nextArgs;
316
- };
317
- var debounceValidate = function debounceValidate() {
338
+ }, [options, type]);
339
+
340
+ // 使用useCallback优化debounceValidate函数
341
+ var debounceValidate = useCallback(function () {
318
342
  var validateFieldKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
319
343
  setTimeout(() => {
320
- form.validateFields(validateFieldKeys);
344
+ form.validateFields(validateFieldKeys, {
345
+ recursive: true
346
+ });
321
347
  }, 100);
322
- };
348
+ }, [form]);
349
+
350
+ // 使用 useRef 保存防抖函数
351
+ var debounceRef = useRef(null);
352
+
353
+ // 使用 useCallback 创建稳定的 onChange 函数
354
+ var _onChange = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
355
+ var _args3 = arguments;
356
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
357
+ while (1) switch (_context2.prev = _context2.next) {
358
+ case 0:
359
+ // 如果防抖函数不存在,创建一个新的防抖函数
360
+ if (!debounceRef.current) {
361
+ debounceRef.current = debounce( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
362
+ var _len2,
363
+ innerArgs,
364
+ _key2,
365
+ _args,
366
+ rowPath,
367
+ _dependencies$map,
368
+ validateFieldKeys,
369
+ row,
370
+ orgRow,
371
+ _TargetComponent,
372
+ _TargetComponent2,
373
+ _Object$keys,
374
+ _Object$keys$map,
375
+ diff,
376
+ _validateFieldKeys,
377
+ _args2 = arguments;
378
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
379
+ while (1) switch (_context.prev = _context.next) {
380
+ case 0:
381
+ for (_len2 = _args2.length, innerArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
382
+ innerArgs[_key2] = _args2[_key2];
383
+ }
384
+ _args = [...innerArgs];
385
+ rowPath = [...namePath, index];
386
+ if (!(!onFieldChange && !onChange)) {
387
+ _context.next = 6;
388
+ break;
389
+ }
390
+ if (dependencies !== null && dependencies !== void 0 && dependencies.length) {
391
+ validateFieldKeys = dependencies === null || dependencies === void 0 || (_dependencies$map = dependencies.map) === null || _dependencies$map === void 0 ? void 0 : _dependencies$map.call(dependencies, key => [...rowPath, key]);
392
+ setTimeout(() => {
393
+ form.validateFields(validateFieldKeys);
394
+ }, 100);
395
+ }
396
+ return _context.abrupt("return", null);
397
+ case 6:
398
+ row = form.getFieldValue(rowPath, true);
399
+ orgRow = cloneDeep(row);
400
+ if (!onFieldChange) {
401
+ _context.next = 21;
402
+ break;
403
+ }
404
+ _args = formatArgs(innerArgs);
405
+ _args[1] = row;
406
+ _context.t0 = (_TargetComponent = TargetComponent) === null || _TargetComponent === void 0 || (_TargetComponent = _TargetComponent.props) === null || _TargetComponent === void 0 ? void 0 : _TargetComponent.onFieldChange;
407
+ if (!_context.t0) {
408
+ _context.next = 15;
409
+ break;
410
+ }
411
+ _context.next = 15;
412
+ return TargetComponent.props.onFieldChange(..._args);
413
+ case 15:
414
+ _context.t1 = onFieldChange;
415
+ if (!_context.t1) {
416
+ _context.next = 19;
417
+ break;
418
+ }
419
+ _context.next = 19;
420
+ return onFieldChange(..._args);
421
+ case 19:
422
+ _context.next = 30;
423
+ break;
424
+ case 21:
425
+ _args = _args.concat([row, index, form]);
426
+ _context.t2 = (_TargetComponent2 = TargetComponent) === null || _TargetComponent2 === void 0 || (_TargetComponent2 = _TargetComponent2.props) === null || _TargetComponent2 === void 0 ? void 0 : _TargetComponent2.onChange;
427
+ if (!_context.t2) {
428
+ _context.next = 26;
429
+ break;
430
+ }
431
+ _context.next = 26;
432
+ return TargetComponent.props.onChange(..._args);
433
+ case 26:
434
+ _context.t3 = onChange;
435
+ if (!_context.t3) {
436
+ _context.next = 30;
437
+ break;
438
+ }
439
+ _context.next = 30;
440
+ return onChange(..._args);
441
+ case 30:
442
+ // 判断属性是否变动
443
+ form.setFieldValue(rowPath, row);
444
+ if (validateTrigger && validateTrigger.includes('onChange')) {
445
+ if (!isEqual(orgRow, row)) {
446
+ diff = difference(row, orgRow) || {};
447
+ _validateFieldKeys = (_Object$keys = Object.keys(diff)) === null || _Object$keys === void 0 || (_Object$keys$map = _Object$keys.map) === null || _Object$keys$map === void 0 ? void 0 : _Object$keys$map.call(_Object$keys, key => [...rowPath, key]).concat(dependencies || []);
448
+ if (_validateFieldKeys !== null && _validateFieldKeys !== void 0 && _validateFieldKeys.length) {
449
+ debounceValidate(_validateFieldKeys);
450
+ }
451
+ }
452
+ }
453
+ // 使用startTransition优化状态更新
454
+ compatStartTransition(() => {
455
+ setState({
456
+ forceUpdate: {
457
+ d: Date.now()
458
+ }
459
+ });
460
+ });
461
+ case 33:
462
+ case "end":
463
+ return _context.stop();
464
+ }
465
+ }, _callee);
466
+ })), 300);
467
+ }
323
468
 
324
- // 单元格更新数据时,加个防抖,防止更新频率过快,卡顿
325
- var _onChange = debounce( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
326
- var _len2,
469
+ // 调用防抖函数
470
+ debounceRef.current(..._args3);
471
+ case 2:
472
+ case "end":
473
+ return _context2.stop();
474
+ }
475
+ }, _callee2);
476
+ })), [namePath, index, dependencies, formatArgs, onChange, onFieldChange, form, setState, TargetComponent, validateTrigger]);
477
+
478
+ // 在组件卸载时清理防抖函数
479
+ useEffect(() => {
480
+ return () => {
481
+ if (debounceRef.current) {
482
+ debounceRef.current.cancel();
483
+ }
484
+ };
485
+ }, []);
486
+
487
+ // 使用useCallback优化_onblur函数
488
+ var _onblur = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
489
+ var _TargetComponent3;
490
+ var _len3,
327
491
  args,
328
- _key2,
492
+ _key3,
329
493
  _args,
330
494
  rowPath,
331
- _dependencies$map,
332
- validateFieldKeys,
333
495
  row,
334
496
  orgRow,
335
- _TargetComponent,
336
- _TargetComponent2,
337
- _Object$keys,
338
- _Object$keys$map,
497
+ _Object$keys2,
498
+ _Object$keys2$map,
339
499
  diff,
340
- _validateFieldKeys,
341
- _args2 = arguments;
342
- return _regeneratorRuntime().wrap(function _callee$(_context) {
343
- while (1) switch (_context.prev = _context.next) {
500
+ validateFieldKeys,
501
+ _args4 = arguments;
502
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
503
+ while (1) switch (_context3.prev = _context3.next) {
344
504
  case 0:
345
- for (_len2 = _args2.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
346
- args[_key2] = _args2[_key2];
347
- }
348
- _args = [...args];
349
- rowPath = [...namePath, index];
350
- if (!(!onFieldChange && !onChange)) {
351
- _context.next = 6;
505
+ if (onBlur) {
506
+ _context3.next = 2;
352
507
  break;
353
508
  }
354
- if (dependencies !== null && dependencies !== void 0 && dependencies.length) {
355
- validateFieldKeys = dependencies === null || dependencies === void 0 || (_dependencies$map = dependencies.map) === null || _dependencies$map === void 0 ? void 0 : _dependencies$map.call(dependencies, key => [...rowPath, key]);
356
- setTimeout(() => {
357
- form.validateFields(validateFieldKeys);
358
- }, 100);
509
+ return _context3.abrupt("return", null);
510
+ case 2:
511
+ for (_len3 = _args4.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
512
+ args[_key3] = _args4[_key3];
359
513
  }
360
- return _context.abrupt("return", null);
361
- case 6:
514
+ _args = formatArgs([...args]);
515
+ rowPath = [...namePath, index];
362
516
  row = form.getFieldValue(rowPath, true);
363
517
  orgRow = cloneDeep(row);
364
- if (!onFieldChange) {
365
- _context.next = 21;
366
- break;
367
- }
368
- _args = formatArgs(args);
369
518
  _args[1] = row;
370
- _context.t0 = (_TargetComponent = TargetComponent) === null || _TargetComponent === void 0 || (_TargetComponent = _TargetComponent.props) === null || _TargetComponent === void 0 ? void 0 : _TargetComponent.onFieldChange;
371
- if (!_context.t0) {
372
- _context.next = 15;
519
+ _context3.t0 = (_TargetComponent3 = TargetComponent) === null || _TargetComponent3 === void 0 || (_TargetComponent3 = _TargetComponent3.props) === null || _TargetComponent3 === void 0 ? void 0 : _TargetComponent3.onBlur;
520
+ if (!_context3.t0) {
521
+ _context3.next = 12;
373
522
  break;
374
523
  }
375
- _context.next = 15;
376
- return TargetComponent.props.onFieldChange(..._args);
377
- case 15:
378
- _context.t1 = onFieldChange;
379
- if (!_context.t1) {
380
- _context.next = 19;
524
+ _context3.next = 12;
525
+ return TargetComponent.props.onBlur(..._args);
526
+ case 12:
527
+ _context3.t1 = onBlur;
528
+ if (!_context3.t1) {
529
+ _context3.next = 16;
381
530
  break;
382
531
  }
383
- _context.next = 19;
384
- return onFieldChange(..._args);
385
- case 19:
386
- _context.next = 30;
387
- break;
388
- case 21:
389
- _args = _args.concat([row, index, form]);
390
- _context.t2 = (_TargetComponent2 = TargetComponent) === null || _TargetComponent2 === void 0 || (_TargetComponent2 = _TargetComponent2.props) === null || _TargetComponent2 === void 0 ? void 0 : _TargetComponent2.onChange;
391
- if (!_context.t2) {
392
- _context.next = 26;
393
- break;
394
- }
395
- _context.next = 26;
396
- return TargetComponent.props.onChange(..._args);
397
- case 26:
398
- _context.t3 = onChange;
399
- if (!_context.t3) {
400
- _context.next = 30;
401
- break;
402
- }
403
- _context.next = 30;
404
- return onChange(..._args);
405
- case 30:
532
+ _context3.next = 16;
533
+ return onBlur(..._args);
534
+ case 16:
406
535
  // 判断属性是否变动
407
536
  form.setFieldValue(rowPath, row);
408
- if (validateTrigger && validateTrigger.includes('onChange')) {
537
+ if (validateTrigger && validateTrigger.includes('onBlur')) {
409
538
  if (!isEqual(orgRow, row)) {
410
539
  diff = difference(row, orgRow) || {};
411
- _validateFieldKeys = (_Object$keys = Object.keys(diff)) === null || _Object$keys === void 0 || (_Object$keys$map = _Object$keys.map) === null || _Object$keys$map === void 0 ? void 0 : _Object$keys$map.call(_Object$keys, key => [...rowPath, key]).concat(dependencies || []);
412
- if (_validateFieldKeys !== null && _validateFieldKeys !== void 0 && _validateFieldKeys.length) {
413
- setTimeout(() => {
414
- form.validateFields(_validateFieldKeys);
415
- }, 100);
540
+ validateFieldKeys = (_Object$keys2 = Object.keys(diff)) === null || _Object$keys2 === void 0 || (_Object$keys2$map = _Object$keys2.map) === null || _Object$keys2$map === void 0 ? void 0 : _Object$keys2$map.call(_Object$keys2, key => [...rowPath, key]).concat(dependencies || []);
541
+ if (validateFieldKeys !== null && validateFieldKeys !== void 0 && validateFieldKeys.length) {
542
+ debounceValidate(validateFieldKeys);
416
543
  }
417
544
  }
418
545
  }
546
+ if (!isCell) {
547
+ _context3.next = 22;
548
+ break;
549
+ }
550
+ _context3.next = 21;
551
+ return form.validateFields([cellName]);
552
+ case 21:
419
553
  setState({
420
- forceUpdate: {
421
- d: Date.now()
422
- }
554
+ cellNamePath: []
423
555
  });
424
- case 33:
425
- case "end":
426
- return _context.stop();
427
- }
428
- }, _callee);
429
- })), 300);
430
- var _onblur = /*#__PURE__*/function () {
431
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
432
- var _TargetComponent3;
433
- var _len3,
434
- args,
435
- _key3,
436
- _args,
437
- rowPath,
438
- row,
439
- orgRow,
440
- _Object$keys2,
441
- _Object$keys2$map,
442
- diff,
443
- validateFieldKeys,
444
- _args3 = arguments;
445
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
446
- while (1) switch (_context2.prev = _context2.next) {
447
- case 0:
448
- if (onBlur) {
449
- _context2.next = 2;
450
- break;
451
- }
452
- return _context2.abrupt("return", null);
453
- case 2:
454
- for (_len3 = _args3.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
455
- args[_key3] = _args3[_key3];
456
- }
457
- _args = formatArgs([...args]);
458
- rowPath = [...namePath, index];
459
- row = form.getFieldValue(rowPath, true);
460
- orgRow = cloneDeep(row);
461
- _args[1] = row;
462
- _context2.t0 = (_TargetComponent3 = TargetComponent) === null || _TargetComponent3 === void 0 || (_TargetComponent3 = _TargetComponent3.props) === null || _TargetComponent3 === void 0 ? void 0 : _TargetComponent3.onBlur;
463
- if (!_context2.t0) {
464
- _context2.next = 12;
465
- break;
466
- }
467
- _context2.next = 12;
468
- return TargetComponent.props.onBlur(..._args);
469
- case 12:
470
- _context2.t1 = onBlur;
471
- if (!_context2.t1) {
472
- _context2.next = 16;
473
- break;
474
- }
475
- _context2.next = 16;
476
- return onBlur(..._args);
477
- case 16:
478
- // 判断属性是否变动
479
- form.setFieldValue(rowPath, row);
480
- if (validateTrigger && validateTrigger.includes('onBlur')) {
481
- if (!isEqual(orgRow, row)) {
482
- diff = difference(row, orgRow) || {};
483
- validateFieldKeys = (_Object$keys2 = Object.keys(diff)) === null || _Object$keys2 === void 0 || (_Object$keys2$map = _Object$keys2.map) === null || _Object$keys2$map === void 0 ? void 0 : _Object$keys2$map.call(_Object$keys2, key => [...rowPath, key]).concat(dependencies || []);
484
- if (validateFieldKeys !== null && validateFieldKeys !== void 0 && validateFieldKeys.length) {
485
- debounceValidate(validateFieldKeys);
486
- }
487
- }
488
- }
489
- if (!isCell) {
490
- _context2.next = 22;
491
- break;
492
- }
493
- _context2.next = 21;
494
- return form.validateFields([cellName]);
495
- case 21:
496
- setState({
497
- cellNamePath: []
498
- });
499
- case 22:
500
- // 单行编辑时需要 强制更新视图
556
+ case 22:
557
+ // 单行编辑时需要 强制更新视图
558
+ compatStartTransition(() => {
501
559
  setState({
502
560
  forceUpdate: {
503
561
  d: Date.now()
504
562
  }
505
563
  });
506
- case 23:
507
- case "end":
508
- return _context2.stop();
509
- }
510
- }, _callee2);
511
- }));
512
- return function _onblur() {
513
- return _ref3.apply(this, arguments);
514
- };
515
- }();
516
- var componentProps = _objectSpread(_objectSpread(_objectSpread({
517
- form,
518
- name: cellName
519
- }, _fieldProps), (_TargetComponent4 = TargetComponent) === null || _TargetComponent4 === void 0 ? void 0 : _TargetComponent4.props), {}, {
520
- namePath: [...namePath, index],
521
- disabled: _disabled,
522
- onChange: _onChange,
523
- onBlur: _onblur,
524
- index,
525
- confirm,
526
- desensitization: _desensitization,
527
- otherProps: {
564
+ });
565
+ case 23:
566
+ case "end":
567
+ return _context3.stop();
568
+ }
569
+ }, _callee3);
570
+ })), [onBlur, formatArgs, namePath, index, form, TargetComponent, validateTrigger, debounceValidate, isCell, cellName, setState]);
571
+
572
+ // 使用useMemo优化componentProps对象
573
+ var componentProps = useMemo(() => {
574
+ var _TargetComponent4;
575
+ return _objectSpread(_objectSpread(_objectSpread({
528
576
  form,
529
- names,
577
+ name: cellName
578
+ }, _fieldProps), (_TargetComponent4 = TargetComponent) === null || _TargetComponent4 === void 0 ? void 0 : _TargetComponent4.props), {}, {
530
579
  namePath: [...namePath, index],
531
- name: originalName,
532
- listName: cellName,
533
- // 用于下拉框去重消费,保持和formlist一致
534
- viewEmpty,
535
- valueType: _valueType,
536
- isView,
537
- desensitizationKey: otherProps === null || otherProps === void 0 ? void 0 : otherProps.desensitizationKey
538
- }
539
- });
580
+ disabled: _disabled,
581
+ onChange: _onChange,
582
+ onBlur: _onblur,
583
+ index,
584
+ confirm,
585
+ desensitization: _desensitization,
586
+ otherProps: {
587
+ form,
588
+ names,
589
+ namePath: [...namePath, index],
590
+ name: originalName,
591
+ listName: cellName,
592
+ // 用于下拉框去重消费,保持和formlist一致
593
+ viewEmpty,
594
+ valueType: _valueType,
595
+ isView,
596
+ desensitizationKey: otherProps === null || otherProps === void 0 ? void 0 : otherProps.desensitizationKey
597
+ }
598
+ });
599
+ }, [cellName, _fieldProps, (_TargetComponent5 = TargetComponent) === null || _TargetComponent5 === void 0 ? void 0 : _TargetComponent5.props, namePath, index, _disabled, _onChange, _onblur, confirm, _desensitization, names, originalName, viewEmpty, _valueType, isView, otherProps === null || otherProps === void 0 ? void 0 : otherProps.desensitizationKey]);
540
600
  componentProps = omit(componentProps, ['onFieldChange', 'namePath', 'index']);
541
601
 
542
602
  // 单元格编辑时,设置各个单元格disabled属性
@@ -552,22 +612,28 @@ var RenderField = _ref => {
552
612
  var editingDom = document.getElementById(cellNamePath.join('_'));
553
613
  editingDom === null || editingDom === void 0 || (_editingDom$focus = editingDom.focus) === null || _editingDom$focus === void 0 || _editingDom$focus.call(editingDom);
554
614
  }
555
- }, [cellNamePath]);
615
+ }, [cellNamePath, isCell]);
556
616
 
557
617
  // 可编辑表格默认关闭scrollFollowParent
558
618
  if (['Select', 'ProSelect', 'ProEnum'].includes(type)) {
559
619
  componentProps.scrollFollowParent = false;
560
620
  }
561
- Object.assign(_formItemProps, _objectSpread(_objectSpread(_objectSpread({}, defaultTransform()), namesTransform()), isTrim(type, trim, useProConfig())));
621
+
622
+ // 使用useMemo优化最终的formItemProps - 修复Hooks使用规则
623
+ var finalFormItemProps = useMemo(() => {
624
+ return Object.assign(_formItemProps, _objectSpread(_objectSpread(_objectSpread({}, defaultTransform()), namesTransform()), isTrim(type, trim, proConfig)));
625
+ }, [_formItemProps, defaultTransform, namesTransform, type, trim, proConfig]);
562
626
 
563
627
  // 编辑&保存模式,在查看状态下移除表单的rules不做校验
564
628
  if (isView) {
565
- delete _formItemProps.rules;
629
+ delete finalFormItemProps.rules;
566
630
  }
567
- var _className = classNames({
631
+ var _className = useMemo(() => classNames({
568
632
  [className]: className
569
- });
570
- var getFieldItem = () => {
633
+ }), [className]);
634
+
635
+ // 使用useCallback优化getFieldItem函数
636
+ var getFieldItem = useCallback(() => {
571
637
  var _componentProps;
572
638
  var FormItem = null;
573
639
  var FieldComponent = /*#__PURE__*/React.isValidElement(TargetComponent) ? ( /*#__PURE__*/React.cloneElement(TargetComponent, componentProps)) : /*#__PURE__*/_jsx(TargetComponent, _objectSpread({}, componentProps));
@@ -585,9 +651,9 @@ var RenderField = _ref => {
585
651
  type: type,
586
652
  onChange: _onChange,
587
653
  onBlur: _onblur,
588
- valuePropName: _formItemProps.valuePropName,
589
- normalize: _formItemProps.normalize,
590
- getValueProps: _formItemProps.getValueProps,
654
+ valuePropName: finalFormItemProps.valuePropName,
655
+ normalize: finalFormItemProps.normalize,
656
+ getValueProps: finalFormItemProps.getValueProps,
591
657
  viewRender: viewRender,
592
658
  diffConfig: diffConfig,
593
659
  index: index,
@@ -599,9 +665,9 @@ var RenderField = _ref => {
599
665
  children: FieldComponent
600
666
  }));
601
667
  }
602
- FormItem = TargetComponent ? /*#__PURE__*/_jsx(_Form.Item, _objectSpread(_objectSpread({
668
+ FormItem = TargetComponent ? /*#__PURE__*/_jsx(Form.Item, _objectSpread(_objectSpread({
603
669
  validateFirst: true
604
- }, omit(_formItemProps, ['render', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
670
+ }, omit(finalFormItemProps, ['render', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
605
671
  // 移除非必要字段
606
672
  className: _className,
607
673
  name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
@@ -610,9 +676,9 @@ var RenderField = _ref => {
610
676
  viewEmpty: viewEmpty
611
677
  });
612
678
  if (type === 'FormList') {
613
- FormItem = /*#__PURE__*/_jsx(_Form.List, _objectSpread(_objectSpread({
679
+ FormItem = /*#__PURE__*/_jsx(Form.List, _objectSpread(_objectSpread({
614
680
  name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
615
- }, omit(_formItemProps, ['render', 'key', 'width', 'hiddenNames', 'name'])), {}, {
681
+ }, omit(finalFormItemProps, ['render', 'key', 'width', 'hiddenNames', 'name'])), {}, {
616
682
  children: (fields, operation, meta) => /*#__PURE__*/_jsx(TargetComponent, _objectSpread(_objectSpread({}, componentProps), {}, {
617
683
  otherProps: otherProps,
618
684
  fields: fields,
@@ -622,14 +688,108 @@ var RenderField = _ref => {
622
688
  }));
623
689
  }
624
690
  return FormItem;
625
- };
691
+ }, [TargetComponent, componentProps, originalValues, record, cellName, names, baseName, index, dataIndex, originalName, originalNames, type, finalFormItemProps, viewRender, diffConfig, _className, formNamePath, viewEmpty, otherProps, getIsNew]);
626
692
  return /*#__PURE__*/_jsx(FieldProvider, {
627
693
  value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
628
- children: _formItemProps.shouldUpdate ? /*#__PURE__*/_jsx(_Form.Item, {
694
+ children: finalFormItemProps.shouldUpdate ? /*#__PURE__*/_jsx(Form.Item, {
629
695
  noStyle: true,
630
- shouldUpdate: _formItemProps.shouldUpdate,
696
+ shouldUpdate: finalFormItemProps.shouldUpdate,
631
697
  children: () => getFieldItem()
632
698
  }) : getFieldItem()
633
699
  });
634
700
  };
635
- export default RenderField;
701
+ export default /*#__PURE__*/memo(RenderField, (prevProps, nextProps) => {
702
+ // 自定义比较函数,只有关键props变化时才重新渲染
703
+ var prevText = prevProps.text,
704
+ prevRecord = prevProps.record,
705
+ prevIndex = prevProps.index,
706
+ prevColumn = prevProps.column,
707
+ prevConfig = prevProps.config;
708
+ var nextText = nextProps.text,
709
+ nextRecord = nextProps.record,
710
+ nextIndex = nextProps.index,
711
+ nextColumn = nextProps.column,
712
+ nextConfig = nextProps.config;
713
+ var prevRowParams = [prevText, prevRecord, {
714
+ index: prevIndex,
715
+ form: prevConfig === null || prevConfig === void 0 ? void 0 : prevConfig.form,
716
+ name: prevConfig === null || prevConfig === void 0 ? void 0 : prevConfig.name
717
+ }];
718
+ var nextRowParams = [nextText, nextRecord, {
719
+ index: nextIndex,
720
+ form: nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.form,
721
+ name: nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.name
722
+ }];
723
+ if (isFunction(prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.disabled) && isFunction(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.disabled)) {
724
+ if ((prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.disabled(...prevRowParams)) !== (nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.disabled(...nextRowParams))) {
725
+ return false;
726
+ }
727
+ }
728
+
729
+ // fieldProps 函数化直接更新,无法比对返回值是否一致
730
+ if (isFunction(prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.fieldProps) && isFunction(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.fieldProps)) {
731
+ return false;
732
+ }
733
+
734
+ // 通用函数比较方法
735
+ var compareFunctionResult = (prevColumn, nextColumn, prevRowParams, nextRowParams, functionName) => {
736
+ var prevFunc = prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn[functionName];
737
+ var nextFunc = nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn[functionName];
738
+ if (isFunction(prevFunc) && isFunction(nextFunc)) {
739
+ return isEqualWith(prevFunc(...prevRowParams), nextFunc(...nextRowParams), customEqualForFunction);
740
+ }
741
+ return true; // 如果不是函数或只有一个是函数,认为相等
742
+ };
743
+
744
+ // 使用简化后的比较逻辑
745
+ var functionFields = ['rules', 'component', 'desensitization', 'isEditable'];
746
+ if (functionFields.some(field => !compareFunctionResult(prevColumn, nextColumn, prevRowParams, nextRowParams, field))) {
747
+ return false;
748
+ }
749
+
750
+ // 基本props比较
751
+ if (!isEqual(prevText, nextText) || prevIndex !== nextIndex) {
752
+ return false;
753
+ }
754
+
755
+ // 记录关键字段比较(避免完整对象比较的性能开销)
756
+ if ((prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord.rowKey) !== (nextRecord === null || nextRecord === void 0 ? void 0 : nextRecord.rowKey) || (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord._addFlag) !== (nextRecord === null || nextRecord === void 0 ? void 0 : nextRecord._addFlag)) {
757
+ return false;
758
+ }
759
+
760
+ // 列配置比较(只比较关键字段),required,disabled为函数时,需要重新计算
761
+ if ((prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.dataIndex) !== (nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.dataIndex) || (prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.type) !== (nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.type) || (prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.name) !== (nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.name)) {
762
+ return false;
763
+ }
764
+
765
+ // config中关键字段比较
766
+ if ((prevConfig === null || prevConfig === void 0 ? void 0 : prevConfig._isEditing) !== (nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig._isEditing) || (prevConfig === null || prevConfig === void 0 ? void 0 : prevConfig.mode) !== (nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.mode)) {
767
+ return false;
768
+ }
769
+
770
+ // 当前单元格的值比较
771
+ var prevDataIndex = prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.dataIndex;
772
+ var nextDataIndex = nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.dataIndex;
773
+ if (prevDataIndex && nextDataIndex && prevDataIndex === nextDataIndex) {
774
+ if ((prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord[prevDataIndex]) !== (nextRecord === null || nextRecord === void 0 ? void 0 : nextRecord[nextDataIndex])) {
775
+ return false;
776
+ }
777
+ }
778
+
779
+ // 特殊处理:当使用自定义 component 函数时,比较整个 record 对象
780
+ // 因为自定义组件可能依赖 record 中的其他字段(不只是当前列的 dataIndex)
781
+ if (isFunction(prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.component) || isFunction(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.component)) {
782
+ // 浅比较 record 的所有属性
783
+ var prevKeys = Object.keys(prevRecord || {});
784
+ var nextKeys = Object.keys(nextRecord || {});
785
+ if (prevKeys.length !== nextKeys.length) {
786
+ return false;
787
+ }
788
+
789
+ // 使用 some 方法代替 for 循环
790
+ if (prevKeys.some(key => (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord[key]) !== (nextRecord === null || nextRecord === void 0 ? void 0 : nextRecord[key]))) {
791
+ return false;
792
+ }
793
+ }
794
+ return true;
795
+ });