@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
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
- require("antd/es/form/style");
10
- var _form = _interopRequireDefault(require("antd/es/form"));
11
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
12
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
14
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
13
  var _react = _interopRequireWildcard(require("react"));
14
+ var _antd = require("antd");
16
15
  var _classnames = _interopRequireDefault(require("classnames"));
17
16
  var _lodash = require("lodash");
17
+ var _utils = require("../../../utils");
18
18
  var _valueType2 = _interopRequireDefault(require("../../../ProForm/utils/valueType"));
19
19
  var _transform = _interopRequireDefault(require("../../utils/transform"));
20
20
  var _tools = require("../../utils/tools");
@@ -24,16 +24,17 @@ var _Container = _interopRequireDefault(require("../../../ProForm/components/Con
24
24
  var _transformNames = _interopRequireDefault(require("../../../ProForm/utils/transformNames"));
25
25
  var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
26
26
  var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
27
- var _utils = require("../../../ProForm/utils");
27
+ var _utils2 = require("../../../ProForm/utils");
28
28
  var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
29
29
  var _getDefaultProps = require("../../utils/getDefaultProps");
30
30
  var _ListChangedWrapper = _interopRequireDefault(require("./ListChangedWrapper"));
31
+ var _useShouldUpdateForTable = _interopRequireDefault(require("../../utils/useShouldUpdateForTable"));
31
32
  var _jsxRuntime = require("react/jsx-runtime");
32
33
  var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "onDiff", "className", "trim", "confirm", "dependencies", "desensitization"];
33
34
  /* eslint-disable prefer-destructuring */
34
35
  /* eslint-disable prefer-const */
35
36
  var RenderField = _ref => {
36
- var _type, _type$replace, _fieldProps2, _names, _TargetComponent4, _componentProps2;
37
+ var _type, _type$replace, _fieldProps2, _fieldProps4, _names, _TargetComponent5, _componentProps2;
37
38
  var value = _ref.text,
38
39
  record = _ref.record,
39
40
  index = _ref.index,
@@ -65,9 +66,6 @@ var RenderField = _ref => {
65
66
  dependencies = column.dependencies,
66
67
  desensitization = column.desensitization,
67
68
  resetProps = (0, _objectWithoutProperties2.default)(column, _excluded);
68
-
69
- // editRender弃用使用component同ProForm
70
- var _editRender = component || editRender;
71
69
  var mode = config.mode,
72
70
  cellName = config.cellName,
73
71
  cellNamePath = config.cellNamePath,
@@ -84,13 +82,17 @@ var RenderField = _ref => {
84
82
  validateTrigger = _config$validateTrigg === void 0 ? ['onChange', 'onBlur', 'onSubmit'] : _config$validateTrigg,
85
83
  otherProps = config.otherProps,
86
84
  diffConfig = config.diffConfig,
87
- getIsNew = config.getIsNew;
85
+ getIsNew = config.getIsNew,
86
+ shouldUpdateDebounce = config.shouldUpdateDebounce;
88
87
  var _fieldProps = fieldProps || formItemProps || {};
89
88
  var _rules = rules || [];
90
89
  var _required = required;
91
90
  var _valueType = valueType;
92
91
  var _disabled = false;
93
92
  var _desensitization = desensitization || [];
93
+
94
+ // editRender弃用使用component同ProForm
95
+ var _editRender = component || editRender;
94
96
  var isCell = mode === 'cell';
95
97
  if (isCell) {
96
98
  record['is-view'] = !(0, _lodash.isEqual)(cellNamePath, cellName);
@@ -109,32 +111,45 @@ var RenderField = _ref => {
109
111
  var rowData = form.getFieldValue([...namePath, index]) || record || {};
110
112
  var currentValue = dataIndex ? rowData === null || rowData === void 0 ? void 0 : rowData[dataIndex] : null;
111
113
 
112
- // 第三个参数
113
- var options = {
114
+ // 第三个参数 - 使用useMemo优化
115
+ var options = (0, _react.useMemo)(() => ({
114
116
  index,
115
117
  form,
116
118
  name: column === null || column === void 0 ? void 0 : column.name,
117
119
  namePath: [...namePath, index]
118
- };
120
+ }), [index, column === null || column === void 0 ? void 0 : column.name, namePath]);
119
121
 
120
- // 行参数
121
- var rowParams = [currentValue, rowData, options];
122
+ // 行参数 - 使用useMemo优化
123
+ var rowParams = (0, _react.useMemo)(() => [currentValue, rowData, options], [currentValue, rowData, options]);
124
+
125
+ // 使用 hook 处理动态属性(带选择性防抖)
126
+ var dynamicProps = (0, _useShouldUpdateForTable.default)({
127
+ rowParams,
128
+ column,
129
+ shouldUpdateDebounce
130
+ });
122
131
 
123
132
  // required & rules & fieldProps & disabled & valueType 函数化处理
133
+ // 优先使用 hook 返回的值,fallback 到原始值
124
134
  if ((0, _lodash.isFunction)(required)) {
125
- _required = required(...rowParams);
135
+ var _dynamicProps$require;
136
+ _required = (_dynamicProps$require = dynamicProps.required) !== null && _dynamicProps$require !== void 0 ? _dynamicProps$require : required(...rowParams);
126
137
  }
127
138
  if ((0, _lodash.isFunction)(fieldProps)) {
128
- _fieldProps = fieldProps(...rowParams);
139
+ var _dynamicProps$fieldPr;
140
+ _fieldProps = (_dynamicProps$fieldPr = dynamicProps.fieldProps) !== null && _dynamicProps$fieldPr !== void 0 ? _dynamicProps$fieldPr : fieldProps(...rowParams);
129
141
  }
130
142
  if ((0, _lodash.isFunction)(rules)) {
131
- _rules = rules(...rowParams);
143
+ var _dynamicProps$rules;
144
+ _rules = (_dynamicProps$rules = dynamicProps.rules) !== null && _dynamicProps$rules !== void 0 ? _dynamicProps$rules : rules(...rowParams);
132
145
  }
133
146
  if ((0, _lodash.isFunction)(valueType)) {
134
- _valueType = valueType(...rowParams);
147
+ var _dynamicProps$valueTy;
148
+ _valueType = (_dynamicProps$valueTy = dynamicProps.valueType) !== null && _dynamicProps$valueTy !== void 0 ? _dynamicProps$valueTy : valueType(...rowParams);
135
149
  }
136
150
  if ((0, _lodash.isFunction)(desensitization)) {
137
- _desensitization = desensitization(...rowParams);
151
+ var _dynamicProps$desensi;
152
+ _desensitization = (_dynamicProps$desensi = dynamicProps.desensitization) !== null && _dynamicProps$desensi !== void 0 ? _dynamicProps$desensi : desensitization(...rowParams);
138
153
  }
139
154
 
140
155
  // 获取最终的disabled
@@ -146,11 +161,11 @@ var RenderField = _ref => {
146
161
  columnFieldProps: _fieldProps,
147
162
  params: rowParams
148
163
  });
149
- if (typeof isEditable === 'function') {
150
- isEditable = isEditable(...rowParams);
151
- // setTimeout(() => {
152
- // !isEditable && form.validateFields([cellName]);
153
- // }, 100);
164
+
165
+ // isEditable 处理 - 优先使用 hook 返回的值
166
+ if ((0, _lodash.isFunction)(isEditable)) {
167
+ var _dynamicProps$isEdita;
168
+ isEditable = (_dynamicProps$isEdita = dynamicProps.isEditable) !== null && _dynamicProps$isEdita !== void 0 ? _dynamicProps$isEdita : isEditable(...rowParams);
154
169
  }
155
170
 
156
171
  // 是否只读文本
@@ -168,14 +183,17 @@ var RenderField = _ref => {
168
183
  var baseName = isView ? name : namePath;
169
184
  var TargetComponent;
170
185
 
171
- // 设置校验规则
186
+ // 将Hooks调用移到组件顶层
187
+ var proConfig = (0, _ProConfigProvider.useProConfig)();
188
+
189
+ // 设置校验规则 - 修复Hooks使用规则
172
190
  var internalRule = (0, _useRules.default)({
173
191
  names,
174
192
  label: label,
175
193
  labelRequired,
176
194
  required: !isView && _required,
177
195
  rules: _isEditing ? _rules : [],
178
- isSelect: (0, _utils.isSelect)({
196
+ isSelect: (0, _utils2.isSelect)({
179
197
  dataSource: (_fieldProps2 = _fieldProps) === null || _fieldProps2 === void 0 ? void 0 : _fieldProps2.dataSource,
180
198
  type
181
199
  }),
@@ -184,17 +202,19 @@ var RenderField = _ref => {
184
202
 
185
203
  // 分离form item参数,防止对于参数透传(如onChange,防止重复触发)并优先级高于 _fieldProps 内部参数
186
204
  var formItemChildProps = (0, _objectSpread2.default)({}, _fieldProps);
187
- var defaultProps = (0, _getDefaultProps.getDefaultProps)({
205
+
206
+ // 使用useMemo优化defaultProps计算
207
+ var defaultProps = (0, _react.useMemo)(() => (0, _getDefaultProps.getDefaultProps)({
188
208
  name,
189
209
  namePath: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
190
210
  type: column === null || column === void 0 ? void 0 : column.type,
191
211
  fieldProps: column === null || column === void 0 ? void 0 : column.fieldProps
192
- });
212
+ }), [name, formNamePath, cellName, column === null || column === void 0 ? void 0 : column.type, column === null || column === void 0 ? void 0 : column.fieldProps]);
193
213
 
194
- // 允许formItem的属性放在column最外层
195
- var _formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), resetProps), internalRule), {}, {
214
+ // 允许formItem的属性放在column最外层 - 使用useMemo优化
215
+ var _formItemProps = (0, _react.useMemo)(() => (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), resetProps), internalRule), {}, {
196
216
  validateTrigger
197
- });
217
+ }), [defaultProps, resetProps, internalRule, validateTrigger]);
198
218
  if (['Switch', 'SwitchCheckbox'].includes(type)) {
199
219
  _formItemProps.valuePropName = 'checked';
200
220
  _valueType = 'switch';
@@ -204,20 +224,20 @@ var RenderField = _ref => {
204
224
  * 针对一些特殊类型,基于formItem的normalize与getValueProps进行默认值类型转换
205
225
  * @returns {}
206
226
  */
207
- var defaultTransform = () => {
227
+ var defaultTransform = (0, _react.useCallback)(() => {
208
228
  var types = ['DatePicker', 'RangePicker'];
209
229
  if (!_valueType && types.includes(type)) {
210
230
  var _transformMap$type;
211
231
  return _transform.default === null || _transform.default === void 0 || (_transformMap$type = _transform.default[type]) === null || _transformMap$type === void 0 ? void 0 : _transformMap$type.call(_transform.default, _fieldProps || {});
212
232
  }
213
233
  return {};
214
- };
234
+ }, [_valueType, type, _fieldProps]);
215
235
 
216
236
  /**
217
237
  * 配置valueType时,基于formItem的normalize与getValueProps进行值类型转换
218
238
  * @returns {}
219
239
  */
220
- var valueTypeTransform = () => {
240
+ var valueTypeTransform = (0, _react.useCallback)(() => {
221
241
  var _fieldProps3;
222
242
  // SwitchCheckbox默认YN, 兼容已有组件
223
243
  if (type === 'SwitchCheckbox') {
@@ -227,7 +247,7 @@ var RenderField = _ref => {
227
247
  mode: (_fieldProps3 = _fieldProps) === null || _fieldProps3 === void 0 ? void 0 : _fieldProps3.mode
228
248
  });
229
249
  return (0, _lodash.isFunction)(_valueType2.default[_valueType]) ? _valueType2.default[_valueType](params) : {};
230
- };
250
+ }, [type, _valueType, column, (_fieldProps4 = _fieldProps) === null || _fieldProps4 === void 0 ? void 0 : _fieldProps4.mode]);
231
251
  if ((_names = names) !== null && _names !== void 0 && _names.length) {
232
252
  // 支持names配置,临时生成对应的formItem,用来存储单个对应的值
233
253
  names = names.map(key => {
@@ -252,14 +272,14 @@ var RenderField = _ref => {
252
272
  * 配置names时,基于formItem的normalize与getValueProps进行值类型转换
253
273
  * @returns {}
254
274
  */
255
- var namesTransform = () => {
275
+ var namesTransform = (0, _react.useCallback)(() => {
256
276
  var _names3;
257
277
  if (!((_names3 = names) !== null && _names3 !== void 0 && _names3.length)) {
258
278
  return valueTypeTransform();
259
279
  }
260
280
  var namesStr = [...baseName, index, dataIndex];
261
281
  return (0, _transformNames.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _formItemProps), valueTypeTransform()), form, names, namesStr, type);
262
- };
282
+ }, [names, baseName, index, dataIndex, _formItemProps, type]);
263
283
  if (!_editRender && typeof type === 'string') {
264
284
  var _componentMap$type;
265
285
  TargetComponent = (_componentMap$type = componentMap[type]) !== null && _componentMap$type !== void 0 ? _componentMap$type : /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
@@ -292,7 +312,9 @@ var RenderField = _ref => {
292
312
  var onChange = formItemChildProps === null || formItemChildProps === void 0 ? void 0 : formItemChildProps.onChange;
293
313
  var onFieldChange = formItemChildProps === null || formItemChildProps === void 0 ? void 0 : formItemChildProps.onFieldChange;
294
314
  var onBlur = formItemChildProps === null || formItemChildProps === void 0 ? void 0 : formItemChildProps.onBlur;
295
- var formatArgs = function formatArgs() {
315
+
316
+ // 使用useCallback优化formatArgs函数
317
+ var formatArgs = (0, _react.useCallback)(function () {
296
318
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
297
319
  args[_key] = arguments[_key];
298
320
  }
@@ -320,230 +342,268 @@ var RenderField = _ref => {
320
342
  break;
321
343
  }
322
344
  return nextArgs;
323
- };
324
- var debounceValidate = function debounceValidate() {
345
+ }, [options, type]);
346
+
347
+ // 使用useCallback优化debounceValidate函数
348
+ var debounceValidate = (0, _react.useCallback)(function () {
325
349
  var validateFieldKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
326
350
  setTimeout(() => {
327
- form.validateFields(validateFieldKeys);
351
+ form.validateFields(validateFieldKeys, {
352
+ recursive: true
353
+ });
328
354
  }, 100);
329
- };
355
+ }, [form]);
356
+
357
+ // 使用 useRef 保存防抖函数
358
+ var debounceRef = (0, _react.useRef)(null);
359
+
360
+ // 使用 useCallback 创建稳定的 onChange 函数
361
+ var _onChange = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
362
+ var _args3 = arguments;
363
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
364
+ while (1) switch (_context2.prev = _context2.next) {
365
+ case 0:
366
+ // 如果防抖函数不存在,创建一个新的防抖函数
367
+ if (!debounceRef.current) {
368
+ debounceRef.current = (0, _lodash.debounce)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
369
+ var _len2,
370
+ innerArgs,
371
+ _key2,
372
+ _args,
373
+ rowPath,
374
+ _dependencies$map,
375
+ validateFieldKeys,
376
+ row,
377
+ orgRow,
378
+ _TargetComponent,
379
+ _TargetComponent2,
380
+ _Object$keys,
381
+ _Object$keys$map,
382
+ diff,
383
+ _validateFieldKeys,
384
+ _args2 = arguments;
385
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
386
+ while (1) switch (_context.prev = _context.next) {
387
+ case 0:
388
+ for (_len2 = _args2.length, innerArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
389
+ innerArgs[_key2] = _args2[_key2];
390
+ }
391
+ _args = [...innerArgs];
392
+ rowPath = [...namePath, index];
393
+ if (!(!onFieldChange && !onChange)) {
394
+ _context.next = 6;
395
+ break;
396
+ }
397
+ if (dependencies !== null && dependencies !== void 0 && dependencies.length) {
398
+ validateFieldKeys = dependencies === null || dependencies === void 0 || (_dependencies$map = dependencies.map) === null || _dependencies$map === void 0 ? void 0 : _dependencies$map.call(dependencies, key => [...rowPath, key]);
399
+ setTimeout(() => {
400
+ form.validateFields(validateFieldKeys);
401
+ }, 100);
402
+ }
403
+ return _context.abrupt("return", null);
404
+ case 6:
405
+ row = form.getFieldValue(rowPath, true);
406
+ orgRow = (0, _lodash.cloneDeep)(row);
407
+ if (!onFieldChange) {
408
+ _context.next = 21;
409
+ break;
410
+ }
411
+ _args = formatArgs(innerArgs);
412
+ _args[1] = row;
413
+ _context.t0 = (_TargetComponent = TargetComponent) === null || _TargetComponent === void 0 || (_TargetComponent = _TargetComponent.props) === null || _TargetComponent === void 0 ? void 0 : _TargetComponent.onFieldChange;
414
+ if (!_context.t0) {
415
+ _context.next = 15;
416
+ break;
417
+ }
418
+ _context.next = 15;
419
+ return TargetComponent.props.onFieldChange(..._args);
420
+ case 15:
421
+ _context.t1 = onFieldChange;
422
+ if (!_context.t1) {
423
+ _context.next = 19;
424
+ break;
425
+ }
426
+ _context.next = 19;
427
+ return onFieldChange(..._args);
428
+ case 19:
429
+ _context.next = 30;
430
+ break;
431
+ case 21:
432
+ _args = _args.concat([row, index, form]);
433
+ _context.t2 = (_TargetComponent2 = TargetComponent) === null || _TargetComponent2 === void 0 || (_TargetComponent2 = _TargetComponent2.props) === null || _TargetComponent2 === void 0 ? void 0 : _TargetComponent2.onChange;
434
+ if (!_context.t2) {
435
+ _context.next = 26;
436
+ break;
437
+ }
438
+ _context.next = 26;
439
+ return TargetComponent.props.onChange(..._args);
440
+ case 26:
441
+ _context.t3 = onChange;
442
+ if (!_context.t3) {
443
+ _context.next = 30;
444
+ break;
445
+ }
446
+ _context.next = 30;
447
+ return onChange(..._args);
448
+ case 30:
449
+ // 判断属性是否变动
450
+ form.setFieldValue(rowPath, row);
451
+ if (validateTrigger && validateTrigger.includes('onChange')) {
452
+ if (!(0, _lodash.isEqual)(orgRow, row)) {
453
+ diff = (0, _tools.difference)(row, orgRow) || {};
454
+ _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 || []);
455
+ if (_validateFieldKeys !== null && _validateFieldKeys !== void 0 && _validateFieldKeys.length) {
456
+ debounceValidate(_validateFieldKeys);
457
+ }
458
+ }
459
+ }
460
+ // 使用startTransition优化状态更新
461
+ (0, _utils.compatStartTransition)(() => {
462
+ setState({
463
+ forceUpdate: {
464
+ d: Date.now()
465
+ }
466
+ });
467
+ });
468
+ case 33:
469
+ case "end":
470
+ return _context.stop();
471
+ }
472
+ }, _callee);
473
+ })), 300);
474
+ }
330
475
 
331
- // 单元格更新数据时,加个防抖,防止更新频率过快,卡顿
332
- var _onChange = (0, _lodash.debounce)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
333
- var _len2,
476
+ // 调用防抖函数
477
+ debounceRef.current(..._args3);
478
+ case 2:
479
+ case "end":
480
+ return _context2.stop();
481
+ }
482
+ }, _callee2);
483
+ })), [namePath, index, dependencies, formatArgs, onChange, onFieldChange, form, setState, TargetComponent, validateTrigger]);
484
+
485
+ // 在组件卸载时清理防抖函数
486
+ (0, _react.useEffect)(() => {
487
+ return () => {
488
+ if (debounceRef.current) {
489
+ debounceRef.current.cancel();
490
+ }
491
+ };
492
+ }, []);
493
+
494
+ // 使用useCallback优化_onblur函数
495
+ var _onblur = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
496
+ var _TargetComponent3;
497
+ var _len3,
334
498
  args,
335
- _key2,
499
+ _key3,
336
500
  _args,
337
501
  rowPath,
338
- _dependencies$map,
339
- validateFieldKeys,
340
502
  row,
341
503
  orgRow,
342
- _TargetComponent,
343
- _TargetComponent2,
344
- _Object$keys,
345
- _Object$keys$map,
504
+ _Object$keys2,
505
+ _Object$keys2$map,
346
506
  diff,
347
- _validateFieldKeys,
348
- _args2 = arguments;
349
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
350
- while (1) switch (_context.prev = _context.next) {
507
+ validateFieldKeys,
508
+ _args4 = arguments;
509
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
510
+ while (1) switch (_context3.prev = _context3.next) {
351
511
  case 0:
352
- for (_len2 = _args2.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
353
- args[_key2] = _args2[_key2];
354
- }
355
- _args = [...args];
356
- rowPath = [...namePath, index];
357
- if (!(!onFieldChange && !onChange)) {
358
- _context.next = 6;
512
+ if (onBlur) {
513
+ _context3.next = 2;
359
514
  break;
360
515
  }
361
- if (dependencies !== null && dependencies !== void 0 && dependencies.length) {
362
- validateFieldKeys = dependencies === null || dependencies === void 0 || (_dependencies$map = dependencies.map) === null || _dependencies$map === void 0 ? void 0 : _dependencies$map.call(dependencies, key => [...rowPath, key]);
363
- setTimeout(() => {
364
- form.validateFields(validateFieldKeys);
365
- }, 100);
516
+ return _context3.abrupt("return", null);
517
+ case 2:
518
+ for (_len3 = _args4.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
519
+ args[_key3] = _args4[_key3];
366
520
  }
367
- return _context.abrupt("return", null);
368
- case 6:
521
+ _args = formatArgs([...args]);
522
+ rowPath = [...namePath, index];
369
523
  row = form.getFieldValue(rowPath, true);
370
524
  orgRow = (0, _lodash.cloneDeep)(row);
371
- if (!onFieldChange) {
372
- _context.next = 21;
373
- break;
374
- }
375
- _args = formatArgs(args);
376
525
  _args[1] = row;
377
- _context.t0 = (_TargetComponent = TargetComponent) === null || _TargetComponent === void 0 || (_TargetComponent = _TargetComponent.props) === null || _TargetComponent === void 0 ? void 0 : _TargetComponent.onFieldChange;
378
- if (!_context.t0) {
379
- _context.next = 15;
526
+ _context3.t0 = (_TargetComponent3 = TargetComponent) === null || _TargetComponent3 === void 0 || (_TargetComponent3 = _TargetComponent3.props) === null || _TargetComponent3 === void 0 ? void 0 : _TargetComponent3.onBlur;
527
+ if (!_context3.t0) {
528
+ _context3.next = 12;
380
529
  break;
381
530
  }
382
- _context.next = 15;
383
- return TargetComponent.props.onFieldChange(..._args);
384
- case 15:
385
- _context.t1 = onFieldChange;
386
- if (!_context.t1) {
387
- _context.next = 19;
531
+ _context3.next = 12;
532
+ return TargetComponent.props.onBlur(..._args);
533
+ case 12:
534
+ _context3.t1 = onBlur;
535
+ if (!_context3.t1) {
536
+ _context3.next = 16;
388
537
  break;
389
538
  }
390
- _context.next = 19;
391
- return onFieldChange(..._args);
392
- case 19:
393
- _context.next = 30;
394
- break;
395
- case 21:
396
- _args = _args.concat([row, index, form]);
397
- _context.t2 = (_TargetComponent2 = TargetComponent) === null || _TargetComponent2 === void 0 || (_TargetComponent2 = _TargetComponent2.props) === null || _TargetComponent2 === void 0 ? void 0 : _TargetComponent2.onChange;
398
- if (!_context.t2) {
399
- _context.next = 26;
400
- break;
401
- }
402
- _context.next = 26;
403
- return TargetComponent.props.onChange(..._args);
404
- case 26:
405
- _context.t3 = onChange;
406
- if (!_context.t3) {
407
- _context.next = 30;
408
- break;
409
- }
410
- _context.next = 30;
411
- return onChange(..._args);
412
- case 30:
539
+ _context3.next = 16;
540
+ return onBlur(..._args);
541
+ case 16:
413
542
  // 判断属性是否变动
414
543
  form.setFieldValue(rowPath, row);
415
- if (validateTrigger && validateTrigger.includes('onChange')) {
544
+ if (validateTrigger && validateTrigger.includes('onBlur')) {
416
545
  if (!(0, _lodash.isEqual)(orgRow, row)) {
417
546
  diff = (0, _tools.difference)(row, orgRow) || {};
418
- _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 || []);
419
- if (_validateFieldKeys !== null && _validateFieldKeys !== void 0 && _validateFieldKeys.length) {
420
- setTimeout(() => {
421
- form.validateFields(_validateFieldKeys);
422
- }, 100);
547
+ 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 || []);
548
+ if (validateFieldKeys !== null && validateFieldKeys !== void 0 && validateFieldKeys.length) {
549
+ debounceValidate(validateFieldKeys);
423
550
  }
424
551
  }
425
552
  }
553
+ if (!isCell) {
554
+ _context3.next = 22;
555
+ break;
556
+ }
557
+ _context3.next = 21;
558
+ return form.validateFields([cellName]);
559
+ case 21:
426
560
  setState({
427
- forceUpdate: {
428
- d: Date.now()
429
- }
561
+ cellNamePath: []
430
562
  });
431
- case 33:
432
- case "end":
433
- return _context.stop();
434
- }
435
- }, _callee);
436
- })), 300);
437
- var _onblur = /*#__PURE__*/function () {
438
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
439
- var _TargetComponent3;
440
- var _len3,
441
- args,
442
- _key3,
443
- _args,
444
- rowPath,
445
- row,
446
- orgRow,
447
- _Object$keys2,
448
- _Object$keys2$map,
449
- diff,
450
- validateFieldKeys,
451
- _args3 = arguments;
452
- return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
453
- while (1) switch (_context2.prev = _context2.next) {
454
- case 0:
455
- if (onBlur) {
456
- _context2.next = 2;
457
- break;
458
- }
459
- return _context2.abrupt("return", null);
460
- case 2:
461
- for (_len3 = _args3.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
462
- args[_key3] = _args3[_key3];
463
- }
464
- _args = formatArgs([...args]);
465
- rowPath = [...namePath, index];
466
- row = form.getFieldValue(rowPath, true);
467
- orgRow = (0, _lodash.cloneDeep)(row);
468
- _args[1] = row;
469
- _context2.t0 = (_TargetComponent3 = TargetComponent) === null || _TargetComponent3 === void 0 || (_TargetComponent3 = _TargetComponent3.props) === null || _TargetComponent3 === void 0 ? void 0 : _TargetComponent3.onBlur;
470
- if (!_context2.t0) {
471
- _context2.next = 12;
472
- break;
473
- }
474
- _context2.next = 12;
475
- return TargetComponent.props.onBlur(..._args);
476
- case 12:
477
- _context2.t1 = onBlur;
478
- if (!_context2.t1) {
479
- _context2.next = 16;
480
- break;
481
- }
482
- _context2.next = 16;
483
- return onBlur(..._args);
484
- case 16:
485
- // 判断属性是否变动
486
- form.setFieldValue(rowPath, row);
487
- if (validateTrigger && validateTrigger.includes('onBlur')) {
488
- if (!(0, _lodash.isEqual)(orgRow, row)) {
489
- diff = (0, _tools.difference)(row, orgRow) || {};
490
- 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 || []);
491
- if (validateFieldKeys !== null && validateFieldKeys !== void 0 && validateFieldKeys.length) {
492
- debounceValidate(validateFieldKeys);
493
- }
494
- }
495
- }
496
- if (!isCell) {
497
- _context2.next = 22;
498
- break;
499
- }
500
- _context2.next = 21;
501
- return form.validateFields([cellName]);
502
- case 21:
503
- setState({
504
- cellNamePath: []
505
- });
506
- case 22:
507
- // 单行编辑时需要 强制更新视图
563
+ case 22:
564
+ // 单行编辑时需要 强制更新视图
565
+ (0, _utils.compatStartTransition)(() => {
508
566
  setState({
509
567
  forceUpdate: {
510
568
  d: Date.now()
511
569
  }
512
570
  });
513
- case 23:
514
- case "end":
515
- return _context2.stop();
516
- }
517
- }, _callee2);
518
- }));
519
- return function _onblur() {
520
- return _ref3.apply(this, arguments);
521
- };
522
- }();
523
- var componentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
524
- form,
525
- name: cellName
526
- }, _fieldProps), (_TargetComponent4 = TargetComponent) === null || _TargetComponent4 === void 0 ? void 0 : _TargetComponent4.props), {}, {
527
- namePath: [...namePath, index],
528
- disabled: _disabled,
529
- onChange: _onChange,
530
- onBlur: _onblur,
531
- index,
532
- confirm,
533
- desensitization: _desensitization,
534
- otherProps: {
571
+ });
572
+ case 23:
573
+ case "end":
574
+ return _context3.stop();
575
+ }
576
+ }, _callee3);
577
+ })), [onBlur, formatArgs, namePath, index, form, TargetComponent, validateTrigger, debounceValidate, isCell, cellName, setState]);
578
+
579
+ // 使用useMemo优化componentProps对象
580
+ var componentProps = (0, _react.useMemo)(() => {
581
+ var _TargetComponent4;
582
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
535
583
  form,
536
- names,
584
+ name: cellName
585
+ }, _fieldProps), (_TargetComponent4 = TargetComponent) === null || _TargetComponent4 === void 0 ? void 0 : _TargetComponent4.props), {}, {
537
586
  namePath: [...namePath, index],
538
- name: originalName,
539
- listName: cellName,
540
- // 用于下拉框去重消费,保持和formlist一致
541
- viewEmpty,
542
- valueType: _valueType,
543
- isView,
544
- desensitizationKey: otherProps === null || otherProps === void 0 ? void 0 : otherProps.desensitizationKey
545
- }
546
- });
587
+ disabled: _disabled,
588
+ onChange: _onChange,
589
+ onBlur: _onblur,
590
+ index,
591
+ confirm,
592
+ desensitization: _desensitization,
593
+ otherProps: {
594
+ form,
595
+ names,
596
+ namePath: [...namePath, index],
597
+ name: originalName,
598
+ listName: cellName,
599
+ // 用于下拉框去重消费,保持和formlist一致
600
+ viewEmpty,
601
+ valueType: _valueType,
602
+ isView,
603
+ desensitizationKey: otherProps === null || otherProps === void 0 ? void 0 : otherProps.desensitizationKey
604
+ }
605
+ });
606
+ }, [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]);
547
607
  componentProps = (0, _lodash.omit)(componentProps, ['onFieldChange', 'namePath', 'index']);
548
608
 
549
609
  // 单元格编辑时,设置各个单元格disabled属性
@@ -559,22 +619,28 @@ var RenderField = _ref => {
559
619
  var editingDom = document.getElementById(cellNamePath.join('_'));
560
620
  editingDom === null || editingDom === void 0 || (_editingDom$focus = editingDom.focus) === null || _editingDom$focus === void 0 || _editingDom$focus.call(editingDom);
561
621
  }
562
- }, [cellNamePath]);
622
+ }, [cellNamePath, isCell]);
563
623
 
564
624
  // 可编辑表格默认关闭scrollFollowParent
565
625
  if (['Select', 'ProSelect', 'ProEnum'].includes(type)) {
566
626
  componentProps.scrollFollowParent = false;
567
627
  }
568
- Object.assign(_formItemProps, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultTransform()), namesTransform()), (0, _utils.isTrim)(type, trim, (0, _ProConfigProvider.useProConfig)())));
628
+
629
+ // 使用useMemo优化最终的formItemProps - 修复Hooks使用规则
630
+ var finalFormItemProps = (0, _react.useMemo)(() => {
631
+ return Object.assign(_formItemProps, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultTransform()), namesTransform()), (0, _utils2.isTrim)(type, trim, proConfig)));
632
+ }, [_formItemProps, defaultTransform, namesTransform, type, trim, proConfig]);
569
633
 
570
634
  // 编辑&保存模式,在查看状态下移除表单的rules不做校验
571
635
  if (isView) {
572
- delete _formItemProps.rules;
636
+ delete finalFormItemProps.rules;
573
637
  }
574
- var _className = (0, _classnames.default)({
638
+ var _className = (0, _react.useMemo)(() => (0, _classnames.default)({
575
639
  [className]: className
576
- });
577
- var getFieldItem = () => {
640
+ }), [className]);
641
+
642
+ // 使用useCallback优化getFieldItem函数
643
+ var getFieldItem = (0, _react.useCallback)(() => {
578
644
  var _componentProps;
579
645
  var FormItem = null;
580
646
  var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
@@ -592,9 +658,9 @@ var RenderField = _ref => {
592
658
  type: type,
593
659
  onChange: _onChange,
594
660
  onBlur: _onblur,
595
- valuePropName: _formItemProps.valuePropName,
596
- normalize: _formItemProps.normalize,
597
- getValueProps: _formItemProps.getValueProps,
661
+ valuePropName: finalFormItemProps.valuePropName,
662
+ normalize: finalFormItemProps.normalize,
663
+ getValueProps: finalFormItemProps.getValueProps,
598
664
  viewRender: viewRender,
599
665
  diffConfig: diffConfig,
600
666
  index: index,
@@ -606,9 +672,9 @@ var RenderField = _ref => {
606
672
  children: FieldComponent
607
673
  }));
608
674
  }
609
- FormItem = TargetComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_form.default.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
675
+ FormItem = TargetComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
610
676
  validateFirst: true
611
- }, (0, _lodash.omit)(_formItemProps, ['render', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
677
+ }, (0, _lodash.omit)(finalFormItemProps, ['render', 'key', 'width', 'hiddenNames', 'name', 'onCell', _fieldProps.shouldUpdate ? 'shouldUpdate' : null])), {}, {
612
678
  // 移除非必要字段
613
679
  className: _className,
614
680
  name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
@@ -617,9 +683,9 @@ var RenderField = _ref => {
617
683
  viewEmpty: viewEmpty
618
684
  });
619
685
  if (type === 'FormList') {
620
- FormItem = /*#__PURE__*/(0, _jsxRuntime.jsx)(_form.default.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
686
+ FormItem = /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
621
687
  name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName
622
- }, (0, _lodash.omit)(_formItemProps, ['render', 'key', 'width', 'hiddenNames', 'name'])), {}, {
688
+ }, (0, _lodash.omit)(finalFormItemProps, ['render', 'key', 'width', 'hiddenNames', 'name'])), {}, {
623
689
  children: (fields, operation, meta) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
624
690
  otherProps: otherProps,
625
691
  fields: fields,
@@ -629,14 +695,108 @@ var RenderField = _ref => {
629
695
  }));
630
696
  }
631
697
  return FormItem;
632
- };
698
+ }, [TargetComponent, componentProps, originalValues, record, cellName, names, baseName, index, dataIndex, originalName, originalNames, type, finalFormItemProps, viewRender, diffConfig, _className, formNamePath, viewEmpty, otherProps, getIsNew]);
633
699
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
634
700
  value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
635
- children: _formItemProps.shouldUpdate ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_form.default.Item, {
701
+ children: finalFormItemProps.shouldUpdate ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Form.Item, {
636
702
  noStyle: true,
637
- shouldUpdate: _formItemProps.shouldUpdate,
703
+ shouldUpdate: finalFormItemProps.shouldUpdate,
638
704
  children: () => getFieldItem()
639
705
  }) : getFieldItem()
640
706
  });
641
707
  };
642
- var _default = exports.default = RenderField;
708
+ var _default = exports.default = /*#__PURE__*/(0, _react.memo)(RenderField, (prevProps, nextProps) => {
709
+ // 自定义比较函数,只有关键props变化时才重新渲染
710
+ var prevText = prevProps.text,
711
+ prevRecord = prevProps.record,
712
+ prevIndex = prevProps.index,
713
+ prevColumn = prevProps.column,
714
+ prevConfig = prevProps.config;
715
+ var nextText = nextProps.text,
716
+ nextRecord = nextProps.record,
717
+ nextIndex = nextProps.index,
718
+ nextColumn = nextProps.column,
719
+ nextConfig = nextProps.config;
720
+ var prevRowParams = [prevText, prevRecord, {
721
+ index: prevIndex,
722
+ form: prevConfig === null || prevConfig === void 0 ? void 0 : prevConfig.form,
723
+ name: prevConfig === null || prevConfig === void 0 ? void 0 : prevConfig.name
724
+ }];
725
+ var nextRowParams = [nextText, nextRecord, {
726
+ index: nextIndex,
727
+ form: nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.form,
728
+ name: nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.name
729
+ }];
730
+ if ((0, _lodash.isFunction)(prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.disabled) && (0, _lodash.isFunction)(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.disabled)) {
731
+ if ((prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.disabled(...prevRowParams)) !== (nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.disabled(...nextRowParams))) {
732
+ return false;
733
+ }
734
+ }
735
+
736
+ // fieldProps 函数化直接更新,无法比对返回值是否一致
737
+ if ((0, _lodash.isFunction)(prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.fieldProps) && (0, _lodash.isFunction)(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.fieldProps)) {
738
+ return false;
739
+ }
740
+
741
+ // 通用函数比较方法
742
+ var compareFunctionResult = (prevColumn, nextColumn, prevRowParams, nextRowParams, functionName) => {
743
+ var prevFunc = prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn[functionName];
744
+ var nextFunc = nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn[functionName];
745
+ if ((0, _lodash.isFunction)(prevFunc) && (0, _lodash.isFunction)(nextFunc)) {
746
+ return (0, _lodash.isEqualWith)(prevFunc(...prevRowParams), nextFunc(...nextRowParams), _utils.customEqualForFunction);
747
+ }
748
+ return true; // 如果不是函数或只有一个是函数,认为相等
749
+ };
750
+
751
+ // 使用简化后的比较逻辑
752
+ var functionFields = ['rules', 'component', 'desensitization', 'isEditable'];
753
+ if (functionFields.some(field => !compareFunctionResult(prevColumn, nextColumn, prevRowParams, nextRowParams, field))) {
754
+ return false;
755
+ }
756
+
757
+ // 基本props比较
758
+ if (!(0, _lodash.isEqual)(prevText, nextText) || prevIndex !== nextIndex) {
759
+ return false;
760
+ }
761
+
762
+ // 记录关键字段比较(避免完整对象比较的性能开销)
763
+ 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)) {
764
+ return false;
765
+ }
766
+
767
+ // 列配置比较(只比较关键字段),required,disabled为函数时,需要重新计算
768
+ 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)) {
769
+ return false;
770
+ }
771
+
772
+ // config中关键字段比较
773
+ 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)) {
774
+ return false;
775
+ }
776
+
777
+ // 当前单元格的值比较
778
+ var prevDataIndex = prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.dataIndex;
779
+ var nextDataIndex = nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.dataIndex;
780
+ if (prevDataIndex && nextDataIndex && prevDataIndex === nextDataIndex) {
781
+ if ((prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord[prevDataIndex]) !== (nextRecord === null || nextRecord === void 0 ? void 0 : nextRecord[nextDataIndex])) {
782
+ return false;
783
+ }
784
+ }
785
+
786
+ // 特殊处理:当使用自定义 component 函数时,比较整个 record 对象
787
+ // 因为自定义组件可能依赖 record 中的其他字段(不只是当前列的 dataIndex)
788
+ if ((0, _lodash.isFunction)(prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.component) || (0, _lodash.isFunction)(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.component)) {
789
+ // 浅比较 record 的所有属性
790
+ var prevKeys = Object.keys(prevRecord || {});
791
+ var nextKeys = Object.keys(nextRecord || {});
792
+ if (prevKeys.length !== nextKeys.length) {
793
+ return false;
794
+ }
795
+
796
+ // 使用 some 方法代替 for 循环
797
+ if (prevKeys.some(key => (prevRecord === null || prevRecord === void 0 ? void 0 : prevRecord[key]) !== (nextRecord === null || nextRecord === void 0 ? void 0 : nextRecord[key]))) {
798
+ return false;
799
+ }
800
+ }
801
+ return true;
802
+ });