@ant-design/pro-components 3.0.2-0 → 3.1.1-0

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 (829) hide show
  1. package/README.es-PR.md +1 -3
  2. package/README.md +8 -10
  3. package/README.zh-CN.md +11 -11
  4. package/dist/pro-components.min.js +1 -1
  5. package/es/card/ProCard.js +7 -7
  6. package/es/card/components/Actions/index.js +25 -25
  7. package/es/card/components/Actions/style.d.ts +1 -1
  8. package/es/card/components/Actions/style.js +79 -71
  9. package/es/card/components/Card/index.js +160 -141
  10. package/es/card/components/Card/style.d.ts +1 -1
  11. package/es/card/components/Card/style.js +249 -192
  12. package/es/card/components/CheckCard/Group.js +94 -115
  13. package/es/card/components/CheckCard/index.d.ts +6 -0
  14. package/es/card/components/CheckCard/index.js +85 -78
  15. package/es/card/components/CheckCard/style.d.ts +1 -1
  16. package/es/card/components/CheckCard/style.js +184 -168
  17. package/es/card/components/Divider/index.js +19 -15
  18. package/es/card/components/Divider/style.d.ts +1 -1
  19. package/es/card/components/Divider/style.js +32 -29
  20. package/es/card/components/Loading/index.js +19 -16
  21. package/es/card/components/Loading/style.d.ts +1 -1
  22. package/es/card/components/Loading/style.js +34 -31
  23. package/es/card/components/Operation/index.js +16 -13
  24. package/es/card/components/Operation/style.d.ts +1 -1
  25. package/es/card/components/Operation/style.js +19 -18
  26. package/es/card/components/Statistic/index.js +46 -41
  27. package/es/card/components/Statistic/style.d.ts +1 -1
  28. package/es/card/components/Statistic/style.js +89 -70
  29. package/es/card/components/StatisticCard/index.js +45 -38
  30. package/es/card/components/StatisticCard/style.d.ts +1 -1
  31. package/es/card/components/StatisticCard/style.js +37 -35
  32. package/es/card/typing.d.ts +5 -0
  33. package/es/descriptions/index.js +214 -225
  34. package/es/descriptions/useFetchData.js +53 -91
  35. package/es/field/AllProField.js +265 -216
  36. package/es/field/FieldHOC/index.js +9 -14
  37. package/es/field/PureProField.js +82 -80
  38. package/es/field/ValueTypeToComponent.js +517 -618
  39. package/es/field/components/Cascader/index.d.ts +2 -3
  40. package/es/field/components/Cascader/index.js +65 -84
  41. package/es/field/components/Checkbox/index.d.ts +2 -3
  42. package/es/field/components/Checkbox/index.js +75 -72
  43. package/es/field/components/Code/index.js +40 -39
  44. package/es/field/components/ColorPicker/index.d.ts +1 -1
  45. package/es/field/components/ColorPicker/index.js +38 -32
  46. package/es/field/components/DatePicker/index.d.ts +2 -2
  47. package/es/field/components/DatePicker/index.js +49 -53
  48. package/es/field/components/Digit/index.js +41 -42
  49. package/es/field/components/DigitRange/index.js +71 -77
  50. package/es/field/components/FromNow/index.js +27 -25
  51. package/es/field/components/Image/index.js +28 -24
  52. package/es/field/components/IndexColumn/index.js +22 -16
  53. package/es/field/components/Money/index.js +107 -116
  54. package/es/field/components/Options/index.js +34 -33
  55. package/es/field/components/Password/index.js +35 -38
  56. package/es/field/components/Percent/index.js +40 -44
  57. package/es/field/components/Percent/util.d.ts +1 -1
  58. package/es/field/components/Percent/util.js +3 -5
  59. package/es/field/components/Progress/index.js +29 -27
  60. package/es/field/components/Radio/index.d.ts +1 -2
  61. package/es/field/components/Radio/index.js +61 -62
  62. package/es/field/components/RangePicker/index.d.ts +2 -2
  63. package/es/field/components/RangePicker/index.js +52 -63
  64. package/es/field/components/Rate/index.js +24 -21
  65. package/es/field/components/Second/index.js +36 -33
  66. package/es/field/components/Segmented/index.d.ts +1 -2
  67. package/es/field/components/Segmented/index.js +37 -46
  68. package/es/field/components/Select/LightSelect/index.d.ts +1 -1
  69. package/es/field/components/Select/LightSelect/index.js +102 -110
  70. package/es/field/components/Select/SearchSelect/index.d.ts +6 -1
  71. package/es/field/components/Select/SearchSelect/index.js +189 -129
  72. package/es/field/components/Select/index.d.ts +2 -5
  73. package/es/field/components/Select/index.js +197 -221
  74. package/es/field/components/Slider/index.js +25 -22
  75. package/es/field/components/Status/index.js +67 -78
  76. package/es/field/components/Switch/index.d.ts +1 -1
  77. package/es/field/components/Switch/index.js +32 -30
  78. package/es/field/components/Text/index.js +34 -37
  79. package/es/field/components/TextArea/index.js +26 -21
  80. package/es/field/components/TextArea/readonly.js +24 -21
  81. package/es/field/components/TimePicker/index.js +96 -105
  82. package/es/field/components/TreeSelect/index.d.ts +2 -3
  83. package/es/field/components/TreeSelect/index.js +107 -125
  84. package/es/form/BaseForm/BaseForm.d.ts +3 -0
  85. package/es/form/BaseForm/BaseForm.js +418 -498
  86. package/es/form/BaseForm/EditOrReadOnlyContext.js +1 -1
  87. package/es/form/BaseForm/LightWrapper/index.js +56 -65
  88. package/es/form/BaseForm/LightWrapper/style.d.ts +1 -1
  89. package/es/form/BaseForm/LightWrapper/style.js +17 -13
  90. package/es/form/BaseForm/Submitter/index.js +44 -43
  91. package/es/form/FieldContext.js +1 -1
  92. package/es/form/components/Captcha/index.d.ts +8 -2
  93. package/es/form/components/Captcha/index.js +76 -128
  94. package/es/form/components/Cascader/index.js +26 -28
  95. package/es/form/components/Checkbox/index.js +60 -61
  96. package/es/form/components/ColorPicker/index.js +24 -26
  97. package/es/form/components/DatePicker/BaseDatePicker.js +33 -31
  98. package/es/form/components/DatePicker/DatePicker.js +14 -13
  99. package/es/form/components/DatePicker/DateTimePicker.js +11 -12
  100. package/es/form/components/DatePicker/MonthPicker.js +14 -13
  101. package/es/form/components/DatePicker/QuarterPicker.js +14 -13
  102. package/es/form/components/DatePicker/TimePicker.js +26 -27
  103. package/es/form/components/DatePicker/WeekPicker.js +14 -13
  104. package/es/form/components/DatePicker/YearPicker.js +14 -13
  105. package/es/form/components/DatePicker/index.js +1 -1
  106. package/es/form/components/DateRangePicker/BaseDateRanger.js +35 -35
  107. package/es/form/components/DateRangePicker/DateMonthRangePicker.js +15 -16
  108. package/es/form/components/DateRangePicker/DateQuarterRangePicker.js +15 -16
  109. package/es/form/components/DateRangePicker/DateTimeRangePicker.js +15 -16
  110. package/es/form/components/DateRangePicker/DateWeekRangePicker.js +15 -16
  111. package/es/form/components/DateRangePicker/DateYearRangePicker.js +15 -16
  112. package/es/form/components/DateRangePicker/TimeRangePicker.js +26 -29
  113. package/es/form/components/DateRangePicker/index.js +15 -16
  114. package/es/form/components/Dependency/index.js +31 -34
  115. package/es/form/components/Digit/DigitRange.js +23 -24
  116. package/es/form/components/Digit/index.js +27 -29
  117. package/es/form/components/Field/index.js +55 -63
  118. package/es/form/components/FieldSet/index.js +68 -76
  119. package/es/form/components/FormItem/FormItemRender/index.js +58 -48
  120. package/es/form/components/FormItem/Group/index.js +95 -95
  121. package/es/form/components/FormItem/Group/style.d.ts +1 -1
  122. package/es/form/components/FormItem/Group/style.js +46 -40
  123. package/es/form/components/FormItem/index.js +135 -141
  124. package/es/form/components/FormItem/warpField.js +165 -149
  125. package/es/form/components/List/ListContainer.js +98 -189
  126. package/es/form/components/List/ListItem.js +151 -198
  127. package/es/form/components/List/index.d.ts +1 -1
  128. package/es/form/components/List/index.js +97 -107
  129. package/es/form/components/List/style.d.ts +1 -1
  130. package/es/form/components/List/style.js +71 -47
  131. package/es/form/components/Money/index.js +28 -30
  132. package/es/form/components/Radio/index.js +45 -49
  133. package/es/form/components/Rate/index.js +17 -20
  134. package/es/form/components/SchemaForm/index.js +58 -72
  135. package/es/form/components/SchemaForm/layoutType/Embed.js +5 -6
  136. package/es/form/components/SchemaForm/layoutType/StepsForm.js +22 -26
  137. package/es/form/components/SchemaForm/valueType/dependency.js +11 -11
  138. package/es/form/components/SchemaForm/valueType/divider.js +4 -5
  139. package/es/form/components/SchemaForm/valueType/field.js +45 -44
  140. package/es/form/components/SchemaForm/valueType/formList.js +8 -7
  141. package/es/form/components/SchemaForm/valueType/formSet.js +8 -7
  142. package/es/form/components/SchemaForm/valueType/group.js +7 -8
  143. package/es/form/components/SchemaForm/valueType/ignore.js +2 -2
  144. package/es/form/components/SchemaForm/valueType/index.js +5 -5
  145. package/es/form/components/Segmented/index.js +20 -23
  146. package/es/form/components/Select/index.js +69 -73
  147. package/es/form/components/Slider/index.js +33 -35
  148. package/es/form/components/Switch/index.js +24 -26
  149. package/es/form/components/Text/index.js +79 -88
  150. package/es/form/components/TextArea/index.js +17 -20
  151. package/es/form/components/TreeSelect/index.js +20 -23
  152. package/es/form/components/UploadButton/index.js +56 -103
  153. package/es/form/components/UploadDragger/index.js +37 -44
  154. package/es/form/helpers/grid.js +65 -67
  155. package/es/form/index.d.ts +1 -0
  156. package/es/form/layouts/DrawerForm/index.d.ts +1 -1
  157. package/es/form/layouts/DrawerForm/index.js +152 -242
  158. package/es/form/layouts/DrawerForm/style.d.ts +1 -1
  159. package/es/form/layouts/DrawerForm/style.js +26 -25
  160. package/es/form/layouts/LightFilter/index.d.ts +12 -1
  161. package/es/form/layouts/LightFilter/index.js +158 -140
  162. package/es/form/layouts/LightFilter/style.d.ts +1 -1
  163. package/es/form/layouts/LightFilter/style.js +52 -48
  164. package/es/form/layouts/LoginForm/index.d.ts +1 -1
  165. package/es/form/layouts/LoginForm/index.js +44 -47
  166. package/es/form/layouts/LoginForm/style.d.ts +1 -1
  167. package/es/form/layouts/LoginForm/style.js +71 -67
  168. package/es/form/layouts/LoginFormPage/index.d.ts +1 -1
  169. package/es/form/layouts/LoginFormPage/index.js +45 -48
  170. package/es/form/layouts/LoginFormPage/style.d.ts +1 -1
  171. package/es/form/layouts/LoginFormPage/style.js +136 -126
  172. package/es/form/layouts/ModalForm/index.js +120 -203
  173. package/es/form/layouts/ProForm/index.d.ts +2 -2
  174. package/es/form/layouts/ProForm/index.js +5 -5
  175. package/es/form/layouts/QueryFilter/Actions.js +23 -22
  176. package/es/form/layouts/QueryFilter/index.d.ts +2 -1
  177. package/es/form/layouts/QueryFilter/index.js +178 -203
  178. package/es/form/layouts/QueryFilter/style.d.ts +1 -1
  179. package/es/form/layouts/QueryFilter/style.js +45 -37
  180. package/es/form/layouts/StepsForm/StepForm.d.ts +2 -3
  181. package/es/form/layouts/StepsForm/StepForm.js +50 -71
  182. package/es/form/layouts/StepsForm/index.js +187 -216
  183. package/es/form/layouts/StepsForm/style.d.ts +1 -1
  184. package/es/form/layouts/StepsForm/style.js +30 -28
  185. package/es/form/layouts/index.js +1 -1
  186. package/es/layout/ProLayout.js +281 -292
  187. package/es/layout/WrapContent.js +16 -12
  188. package/es/layout/assert/Logo.js +95 -97
  189. package/es/layout/components/AppsLogoComponents/AppsLogo.js +10 -12
  190. package/es/layout/components/AppsLogoComponents/DefaultContent.js +17 -16
  191. package/es/layout/components/AppsLogoComponents/SimpleContent.js +19 -18
  192. package/es/layout/components/AppsLogoComponents/index.js +34 -37
  193. package/es/layout/components/AppsLogoComponents/style/default.js +2 -2
  194. package/es/layout/components/AppsLogoComponents/style/index.d.ts +1 -1
  195. package/es/layout/components/AppsLogoComponents/style/index.js +52 -50
  196. package/es/layout/components/AppsLogoComponents/style/simple.js +1 -1
  197. package/es/layout/components/CollapsedIcon/index.js +18 -15
  198. package/es/layout/components/CollapsedIcon/style.d.ts +1 -1
  199. package/es/layout/components/CollapsedIcon/style.js +40 -40
  200. package/es/layout/components/Footer.js +22 -21
  201. package/es/layout/components/FooterToolbar/index.js +58 -52
  202. package/es/layout/components/FooterToolbar/style/index.d.ts +1 -1
  203. package/es/layout/components/FooterToolbar/style/index.js +38 -37
  204. package/es/layout/components/FooterToolbar/style/stylish.d.ts +1 -1
  205. package/es/layout/components/FooterToolbar/style/stylish.js +11 -9
  206. package/es/layout/components/GlobalFooter/index.d.ts +1 -1
  207. package/es/layout/components/GlobalFooter/index.js +25 -25
  208. package/es/layout/components/GlobalFooter/style.d.ts +1 -1
  209. package/es/layout/components/GlobalFooter/style.js +31 -30
  210. package/es/layout/components/GlobalHeader/ActionsContent.js +62 -78
  211. package/es/layout/components/GlobalHeader/index.js +59 -47
  212. package/es/layout/components/GlobalHeader/rightContentStyle.d.ts +1 -1
  213. package/es/layout/components/GlobalHeader/rightContentStyle.js +49 -49
  214. package/es/layout/components/GlobalHeader/style.d.ts +1 -1
  215. package/es/layout/components/GlobalHeader/style.js +58 -54
  216. package/es/layout/components/GridContent/index.js +24 -19
  217. package/es/layout/components/GridContent/style.d.ts +1 -1
  218. package/es/layout/components/GridContent/style.js +14 -13
  219. package/es/layout/components/Header/index.js +63 -57
  220. package/es/layout/components/Header/style/header.d.ts +1 -1
  221. package/es/layout/components/Header/style/header.js +49 -47
  222. package/es/layout/components/Header/style/stylish.d.ts +1 -1
  223. package/es/layout/components/Header/style/stylish.js +15 -11
  224. package/es/layout/components/Help/AsyncContentPanel.js +13 -18
  225. package/es/layout/components/Help/HelpProvide.js +1 -1
  226. package/es/layout/components/Help/ProHelpContentPanel.js +64 -83
  227. package/es/layout/components/Help/ProHelpDrawer.d.ts +1 -1
  228. package/es/layout/components/Help/ProHelpDrawer.js +25 -29
  229. package/es/layout/components/Help/ProHelpModal.d.ts +1 -1
  230. package/es/layout/components/Help/ProHelpModal.js +24 -27
  231. package/es/layout/components/Help/ProHelpPanel.js +86 -94
  232. package/es/layout/components/Help/ProHelpPopover.js +19 -17
  233. package/es/layout/components/Help/RenderContentPanel.js +34 -24
  234. package/es/layout/components/Help/Search.js +52 -78
  235. package/es/layout/components/Help/index.js +9 -11
  236. package/es/layout/components/Help/style.d.ts +1 -1
  237. package/es/layout/components/Help/style.js +82 -75
  238. package/es/layout/components/PageContainer/index.js +168 -149
  239. package/es/layout/components/PageContainer/style/index.d.ts +1 -1
  240. package/es/layout/components/PageContainer/style/index.js +95 -78
  241. package/es/layout/components/PageContainer/style/stylish.d.ts +1 -1
  242. package/es/layout/components/PageContainer/style/stylish.js +11 -9
  243. package/es/layout/components/PageHeader/index.js +96 -97
  244. package/es/layout/components/PageHeader/style/index.d.ts +1 -1
  245. package/es/layout/components/PageHeader/style/index.js +142 -122
  246. package/es/layout/components/PageLoading/index.js +17 -20
  247. package/es/layout/components/SettingDrawer/BlockCheckbox.js +29 -32
  248. package/es/layout/components/SettingDrawer/LayoutChange.js +22 -22
  249. package/es/layout/components/SettingDrawer/RegionalChange.js +14 -15
  250. package/es/layout/components/SettingDrawer/ThemeColor.js +32 -35
  251. package/es/layout/components/SettingDrawer/index.js +139 -170
  252. package/es/layout/components/SettingDrawer/style/index.d.ts +1 -1
  253. package/es/layout/components/SettingDrawer/style/index.js +141 -137
  254. package/es/layout/components/SiderMenu/BaseMenu.d.ts +1 -1
  255. package/es/layout/components/SiderMenu/BaseMenu.js +236 -222
  256. package/es/layout/components/SiderMenu/SiderMenu.js +127 -117
  257. package/es/layout/components/SiderMenu/index.js +51 -43
  258. package/es/layout/components/SiderMenu/style/index.d.ts +1 -1
  259. package/es/layout/components/SiderMenu/style/index.js +179 -161
  260. package/es/layout/components/SiderMenu/style/menu.d.ts +1 -1
  261. package/es/layout/components/SiderMenu/style/menu.js +148 -110
  262. package/es/layout/components/SiderMenu/style/stylish.d.ts +1 -1
  263. package/es/layout/components/SiderMenu/style/stylish.js +15 -11
  264. package/es/layout/components/TopNavHeader/index.js +71 -60
  265. package/es/layout/components/TopNavHeader/style.d.ts +1 -1
  266. package/es/layout/components/TopNavHeader/style.js +64 -63
  267. package/es/layout/context/RouteContext.js +1 -1
  268. package/es/layout/defaultSettings.d.ts +6 -0
  269. package/es/layout/defaultSettings.js +1 -1
  270. package/es/layout/getPageTitle.js +23 -24
  271. package/es/layout/locales/en-US.js +3 -2
  272. package/es/layout/locales/index.js +5 -5
  273. package/es/layout/locales/it-IT.js +3 -2
  274. package/es/layout/locales/ko-KR.js +3 -2
  275. package/es/layout/locales/zh-CN.js +3 -2
  276. package/es/layout/locales/zh-TW.js +3 -2
  277. package/es/layout/style/index.d.ts +1 -1
  278. package/es/layout/style/index.js +48 -42
  279. package/es/layout/utils/getBreadcrumbProps.js +60 -60
  280. package/es/layout/utils/getMenuData.js +7 -11
  281. package/es/layout/utils/pathTools.js +2 -6
  282. package/es/layout/utils/useCurrentMenuLayoutProps.js +4 -9
  283. package/es/layout/utils/utils.js +15 -17
  284. package/es/list/Item.js +157 -137
  285. package/es/list/ListView.js +106 -115
  286. package/es/list/constants.js +2 -2
  287. package/es/list/index.js +72 -70
  288. package/es/list/style/index.d.ts +1 -1
  289. package/es/list/style/index.js +281 -213
  290. package/es/provider/index.d.ts +1 -0
  291. package/es/provider/index.js +126 -114
  292. package/es/provider/intl.js +53 -55
  293. package/es/provider/typing/layoutToken.js +26 -23
  294. package/es/provider/useStyle/index.d.ts +2 -1
  295. package/es/provider/useStyle/index.js +60 -60
  296. package/es/provider/utils/merge.js +10 -12
  297. package/es/skeleton/components/Descriptions/index.js +211 -229
  298. package/es/skeleton/components/List/index.js +208 -223
  299. package/es/skeleton/components/Result/index.js +45 -47
  300. package/es/skeleton/index.js +13 -10
  301. package/es/table/Store/Provide.d.ts +4 -4
  302. package/es/table/Store/Provide.js +102 -117
  303. package/es/table/Table.d.ts +5 -2
  304. package/es/table/Table.js +593 -603
  305. package/es/table/TableSearch.d.ts +24 -0
  306. package/es/table/TableSearch.js +54 -0
  307. package/es/table/TableToolbar.d.ts +22 -0
  308. package/es/table/TableToolbar.js +47 -0
  309. package/es/table/components/Alert/index.d.ts +1 -1
  310. package/es/table/components/Alert/index.js +41 -40
  311. package/es/table/components/Alert/style.d.ts +1 -1
  312. package/es/table/components/Alert/style.js +28 -27
  313. package/es/table/components/ColumnSetting/index.d.ts +1 -1
  314. package/es/table/components/ColumnSetting/index.js +230 -223
  315. package/es/table/components/ColumnSetting/style.d.ts +1 -1
  316. package/es/table/components/ColumnSetting/style.js +86 -71
  317. package/es/table/components/DragSortTable/index.d.ts +1 -1
  318. package/es/table/components/DragSortTable/index.js +65 -79
  319. package/es/table/components/DragSortTable/style.d.ts +1 -1
  320. package/es/table/components/DragSortTable/style.js +20 -19
  321. package/es/table/components/Dropdown/index.js +42 -47
  322. package/es/table/components/EditableTable/CellEditorTable.js +24 -32
  323. package/es/table/components/EditableTable/RowEditorTable.js +23 -28
  324. package/es/table/components/EditableTable/index.js +601 -302
  325. package/es/table/components/Form/FormRender.js +99 -103
  326. package/es/table/components/Form/index.d.ts +4 -19
  327. package/es/table/components/Form/index.js +112 -159
  328. package/es/table/components/ListToolBar/HeaderMenu.js +44 -52
  329. package/es/table/components/ListToolBar/index.js +122 -147
  330. package/es/table/components/ListToolBar/style.d.ts +1 -1
  331. package/es/table/components/ListToolBar/style.js +127 -117
  332. package/es/table/components/ToolBar/DensityIcon.js +10 -9
  333. package/es/table/components/ToolBar/FullscreenIcon.js +5 -9
  334. package/es/table/components/ToolBar/index.d.ts +2 -8
  335. package/es/table/components/ToolBar/index.js +155 -195
  336. package/es/table/style/index.d.ts +1 -1
  337. package/es/table/style/index.js +144 -112
  338. package/es/table/typing.d.ts +13 -6
  339. package/es/table/useFetchData.js +204 -348
  340. package/es/table/utils/cellRenderToFromItem.js +105 -119
  341. package/es/table/utils/columnRender.js +63 -54
  342. package/es/table/utils/columnSort.js +22 -22
  343. package/es/table/utils/genProColumnToColumn.d.ts +13 -9
  344. package/es/table/utils/genProColumnToColumn.js +121 -98
  345. package/es/table/utils/index.d.ts +12 -0
  346. package/es/table/utils/index.js +114 -178
  347. package/es/table/utils/useDragSort.d.ts +1 -1
  348. package/es/table/utils/useDragSort.js +99 -92
  349. package/es/table/utils/usePageInfo.d.ts +6 -0
  350. package/es/table/utils/usePageInfo.js +55 -0
  351. package/es/utils/components/DropdownFooter/index.js +23 -21
  352. package/es/utils/components/DropdownFooter/style.d.ts +1 -1
  353. package/es/utils/components/DropdownFooter/style.js +16 -15
  354. package/es/utils/components/ErrorBoundary/index.js +27 -50
  355. package/es/utils/components/FieldLabel/index.js +70 -70
  356. package/es/utils/components/FieldLabel/style.d.ts +1 -1
  357. package/es/utils/components/FieldLabel/style.js +104 -81
  358. package/es/utils/components/FilterDropdown/index.d.ts +11 -0
  359. package/es/utils/components/FilterDropdown/index.js +43 -32
  360. package/es/utils/components/FilterDropdown/style.d.ts +1 -1
  361. package/es/utils/components/FilterDropdown/style.js +19 -16
  362. package/es/utils/components/InlineErrorFormItem/index.js +78 -78
  363. package/es/utils/components/InlineErrorFormItem/style.d.ts +1 -1
  364. package/es/utils/components/InlineErrorFormItem/style.js +56 -49
  365. package/es/utils/components/LabelIconTip/index.js +30 -31
  366. package/es/utils/components/LabelIconTip/style.d.ts +1 -1
  367. package/es/utils/components/LabelIconTip/style.js +36 -35
  368. package/es/utils/components/ProFormContext/index.js +1 -1
  369. package/es/utils/conversionMomentValue/index.js +19 -22
  370. package/es/utils/dateArrayFormatter/index.js +9 -14
  371. package/es/utils/genCopyable/index.js +74 -32
  372. package/es/utils/getFieldPropsOrFormItemProps/index.js +1 -1
  373. package/es/utils/hooks/useDebounceFn/index.js +18 -51
  374. package/es/utils/hooks/useDebounceValue/index.js +7 -16
  375. package/es/utils/hooks/useDeepCompareEffect/index.js +6 -18
  376. package/es/utils/hooks/useDocumentTitle/index.js +2 -2
  377. package/es/utils/hooks/useFetchData/index.js +36 -65
  378. package/es/utils/hooks/useForceRender/index.js +2 -9
  379. package/es/utils/hooks/useLatest/index.js +2 -2
  380. package/es/utils/hooks/usePrevious/index.js +3 -3
  381. package/es/utils/hooks/useReactiveRef/index.js +2 -2
  382. package/es/utils/hooks/useRefCallback/index.js +3 -3
  383. package/es/utils/hooks/useRefFunction/index.js +4 -9
  384. package/es/utils/index.d.ts +1 -2
  385. package/es/utils/index.js +1 -2
  386. package/es/utils/isBrowser/index.js +2 -2
  387. package/es/utils/isDeepEqualReact/index.js +9 -44
  388. package/es/utils/isDropdownValueType/index.js +2 -2
  389. package/es/utils/isNil/index.js +1 -3
  390. package/es/utils/isUrl/index.js +2 -2
  391. package/es/utils/merge/index.js +10 -12
  392. package/es/utils/nanoid/index.js +5 -6
  393. package/es/utils/omitBoolean/index.js +1 -1
  394. package/es/utils/omitUndefined/index.js +3 -3
  395. package/es/utils/omitUndefinedAndEmptyArr/index.js +4 -5
  396. package/es/utils/parseValueToMoment/index.js +3 -7
  397. package/es/utils/pickProFormItemProps/index.js +3 -3
  398. package/es/utils/pickProProps/index.js +6 -7
  399. package/es/utils/proFieldParsingText/index.js +86 -99
  400. package/es/utils/runFunction/index.js +2 -5
  401. package/es/utils/stringify/index.js +1 -1
  402. package/es/utils/transformKeySubmitValue/index.js +99 -116
  403. package/es/utils/typing.d.ts +1 -1
  404. package/es/utils/useEditableArray/index.d.ts +9 -7
  405. package/es/utils/useEditableArray/index.js +788 -700
  406. package/es/utils/useEditableMap/index.d.ts +1 -1
  407. package/es/utils/useEditableMap/index.js +148 -137
  408. package/es/utils/useMediaQuery/index.js +16 -18
  409. package/es/utils/useMediaQuery/query.js +15 -19
  410. package/es/version.js +1 -1
  411. package/lib/card/ProCard.js +7 -7
  412. package/lib/card/components/Actions/index.js +25 -25
  413. package/lib/card/components/Actions/style.d.ts +1 -1
  414. package/lib/card/components/Actions/style.js +79 -72
  415. package/lib/card/components/Card/index.js +157 -138
  416. package/lib/card/components/Card/style.d.ts +1 -1
  417. package/lib/card/components/Card/style.js +249 -193
  418. package/lib/card/components/CheckCard/Group.js +97 -115
  419. package/lib/card/components/CheckCard/index.d.ts +6 -0
  420. package/lib/card/components/CheckCard/index.js +85 -77
  421. package/lib/card/components/CheckCard/style.d.ts +1 -1
  422. package/lib/card/components/CheckCard/style.js +184 -169
  423. package/lib/card/components/Divider/index.js +20 -16
  424. package/lib/card/components/Divider/style.d.ts +1 -1
  425. package/lib/card/components/Divider/style.js +32 -30
  426. package/lib/card/components/Loading/index.js +19 -16
  427. package/lib/card/components/Loading/style.d.ts +1 -1
  428. package/lib/card/components/Loading/style.js +34 -32
  429. package/lib/card/components/Operation/index.js +16 -14
  430. package/lib/card/components/Operation/style.d.ts +1 -1
  431. package/lib/card/components/Operation/style.js +19 -19
  432. package/lib/card/components/Statistic/index.js +46 -42
  433. package/lib/card/components/Statistic/style.d.ts +1 -1
  434. package/lib/card/components/Statistic/style.js +89 -71
  435. package/lib/card/components/StatisticCard/index.js +45 -38
  436. package/lib/card/components/StatisticCard/style.d.ts +1 -1
  437. package/lib/card/components/StatisticCard/style.js +37 -36
  438. package/lib/card/index.js +4 -4
  439. package/lib/card/typing.d.ts +5 -0
  440. package/lib/descriptions/index.js +219 -225
  441. package/lib/descriptions/useFetchData.js +51 -90
  442. package/lib/field/AllProField.js +267 -217
  443. package/lib/field/FieldHOC/index.js +9 -15
  444. package/lib/field/PureProField.js +84 -82
  445. package/lib/field/ValueTypeToComponent.js +517 -618
  446. package/lib/field/components/Cascader/index.d.ts +2 -3
  447. package/lib/field/components/Cascader/index.js +65 -85
  448. package/lib/field/components/Checkbox/index.d.ts +1 -2
  449. package/lib/field/components/Checkbox/index.js +75 -73
  450. package/lib/field/components/Code/index.js +40 -39
  451. package/lib/field/components/ColorPicker/index.js +38 -33
  452. package/lib/field/components/DatePicker/index.d.ts +1 -1
  453. package/lib/field/components/DatePicker/index.js +49 -53
  454. package/lib/field/components/Digit/index.js +41 -43
  455. package/lib/field/components/DigitRange/index.js +69 -76
  456. package/lib/field/components/FromNow/index.js +27 -25
  457. package/lib/field/components/Image/index.js +28 -24
  458. package/lib/field/components/IndexColumn/index.js +22 -17
  459. package/lib/field/components/Money/index.js +106 -116
  460. package/lib/field/components/Options/index.js +34 -34
  461. package/lib/field/components/Password/index.js +35 -38
  462. package/lib/field/components/Percent/index.js +40 -45
  463. package/lib/field/components/Percent/util.js +3 -6
  464. package/lib/field/components/Progress/index.js +29 -28
  465. package/lib/field/components/Radio/index.d.ts +1 -2
  466. package/lib/field/components/Radio/index.js +61 -63
  467. package/lib/field/components/RangePicker/index.d.ts +1 -1
  468. package/lib/field/components/RangePicker/index.js +52 -63
  469. package/lib/field/components/Rate/index.js +24 -21
  470. package/lib/field/components/Second/index.js +36 -33
  471. package/lib/field/components/Segmented/index.d.ts +1 -2
  472. package/lib/field/components/Segmented/index.js +37 -48
  473. package/lib/field/components/Select/LightSelect/index.d.ts +1 -1
  474. package/lib/field/components/Select/LightSelect/index.js +103 -111
  475. package/lib/field/components/Select/SearchSelect/index.d.ts +6 -1
  476. package/lib/field/components/Select/SearchSelect/index.js +193 -130
  477. package/lib/field/components/Select/index.d.ts +1 -4
  478. package/lib/field/components/Select/index.js +198 -220
  479. package/lib/field/components/Slider/index.js +25 -22
  480. package/lib/field/components/Status/index.js +69 -79
  481. package/lib/field/components/Switch/index.d.ts +1 -1
  482. package/lib/field/components/Switch/index.js +32 -31
  483. package/lib/field/components/Text/index.js +34 -38
  484. package/lib/field/components/TextArea/index.js +26 -21
  485. package/lib/field/components/TextArea/readonly.js +24 -22
  486. package/lib/field/components/TimePicker/index.js +96 -105
  487. package/lib/field/components/TreeSelect/index.d.ts +2 -3
  488. package/lib/field/components/TreeSelect/index.js +105 -124
  489. package/lib/field/index.js +34 -34
  490. package/lib/form/BaseForm/BaseForm.d.ts +3 -0
  491. package/lib/form/BaseForm/BaseForm.js +415 -495
  492. package/lib/form/BaseForm/EditOrReadOnlyContext.js +1 -1
  493. package/lib/form/BaseForm/LightWrapper/index.js +57 -66
  494. package/lib/form/BaseForm/LightWrapper/style.d.ts +1 -1
  495. package/lib/form/BaseForm/LightWrapper/style.js +17 -14
  496. package/lib/form/BaseForm/Submitter/index.js +44 -44
  497. package/lib/form/BaseForm/index.js +3 -3
  498. package/lib/form/FieldContext.js +1 -1
  499. package/lib/form/components/Captcha/index.d.ts +8 -2
  500. package/lib/form/components/Captcha/index.js +76 -129
  501. package/lib/form/components/Cascader/index.js +26 -29
  502. package/lib/form/components/Checkbox/index.js +60 -61
  503. package/lib/form/components/ColorPicker/index.js +24 -26
  504. package/lib/form/components/DatePicker/BaseDatePicker.js +32 -30
  505. package/lib/form/components/DatePicker/DatePicker.js +14 -13
  506. package/lib/form/components/DatePicker/DateTimePicker.js +11 -12
  507. package/lib/form/components/DatePicker/MonthPicker.js +14 -13
  508. package/lib/form/components/DatePicker/QuarterPicker.js +14 -13
  509. package/lib/form/components/DatePicker/TimePicker.js +26 -27
  510. package/lib/form/components/DatePicker/WeekPicker.js +14 -13
  511. package/lib/form/components/DatePicker/YearPicker.js +14 -13
  512. package/lib/form/components/DatePicker/index.js +1 -1
  513. package/lib/form/components/DateRangePicker/BaseDateRanger.js +34 -34
  514. package/lib/form/components/DateRangePicker/DateMonthRangePicker.js +15 -16
  515. package/lib/form/components/DateRangePicker/DateQuarterRangePicker.js +15 -16
  516. package/lib/form/components/DateRangePicker/DateTimeRangePicker.js +15 -16
  517. package/lib/form/components/DateRangePicker/DateWeekRangePicker.js +15 -16
  518. package/lib/form/components/DateRangePicker/DateYearRangePicker.js +15 -16
  519. package/lib/form/components/DateRangePicker/TimeRangePicker.js +26 -29
  520. package/lib/form/components/DateRangePicker/index.js +15 -16
  521. package/lib/form/components/Dependency/index.js +31 -35
  522. package/lib/form/components/Digit/DigitRange.js +23 -24
  523. package/lib/form/components/Digit/index.js +27 -29
  524. package/lib/form/components/Field/index.js +55 -63
  525. package/lib/form/components/FieldSet/index.js +68 -76
  526. package/lib/form/components/FormItem/FormItemRender/index.js +58 -48
  527. package/lib/form/components/FormItem/Group/index.js +95 -95
  528. package/lib/form/components/FormItem/Group/style.d.ts +1 -1
  529. package/lib/form/components/FormItem/Group/style.js +46 -41
  530. package/lib/form/components/FormItem/index.js +135 -141
  531. package/lib/form/components/FormItem/warpField.js +165 -149
  532. package/lib/form/components/List/ListContainer.js +100 -191
  533. package/lib/form/components/List/ListItem.js +153 -200
  534. package/lib/form/components/List/index.d.ts +1 -1
  535. package/lib/form/components/List/index.js +97 -107
  536. package/lib/form/components/List/style.d.ts +1 -1
  537. package/lib/form/components/List/style.js +71 -48
  538. package/lib/form/components/Money/index.js +28 -30
  539. package/lib/form/components/Radio/index.js +45 -49
  540. package/lib/form/components/Rate/index.js +17 -21
  541. package/lib/form/components/SchemaForm/index.js +54 -68
  542. package/lib/form/components/SchemaForm/layoutType/Embed.js +5 -6
  543. package/lib/form/components/SchemaForm/layoutType/StepsForm.js +22 -26
  544. package/lib/form/components/SchemaForm/layoutType/index.js +2 -2
  545. package/lib/form/components/SchemaForm/valueType/dependency.js +13 -12
  546. package/lib/form/components/SchemaForm/valueType/divider.js +6 -7
  547. package/lib/form/components/SchemaForm/valueType/field.js +47 -45
  548. package/lib/form/components/SchemaForm/valueType/formList.js +10 -9
  549. package/lib/form/components/SchemaForm/valueType/formSet.js +10 -8
  550. package/lib/form/components/SchemaForm/valueType/group.js +9 -10
  551. package/lib/form/components/SchemaForm/valueType/ignore.js +4 -3
  552. package/lib/form/components/SchemaForm/valueType/index.js +7 -6
  553. package/lib/form/components/Segmented/index.js +20 -24
  554. package/lib/form/components/Select/index.js +69 -73
  555. package/lib/form/components/Slider/index.js +33 -35
  556. package/lib/form/components/Switch/index.js +24 -26
  557. package/lib/form/components/Text/index.js +77 -86
  558. package/lib/form/components/TextArea/index.js +17 -21
  559. package/lib/form/components/TreeSelect/index.js +20 -23
  560. package/lib/form/components/UploadButton/index.js +56 -103
  561. package/lib/form/components/UploadDragger/index.js +37 -44
  562. package/lib/form/components/index.js +42 -42
  563. package/lib/form/helpers/grid.js +68 -69
  564. package/lib/form/helpers/index.js +1 -1
  565. package/lib/form/index.d.ts +1 -0
  566. package/lib/form/index.js +8 -8
  567. package/lib/form/layouts/DrawerForm/index.d.ts +1 -1
  568. package/lib/form/layouts/DrawerForm/index.js +151 -242
  569. package/lib/form/layouts/DrawerForm/style.d.ts +1 -1
  570. package/lib/form/layouts/DrawerForm/style.js +26 -26
  571. package/lib/form/layouts/LightFilter/index.d.ts +12 -1
  572. package/lib/form/layouts/LightFilter/index.js +158 -141
  573. package/lib/form/layouts/LightFilter/style.d.ts +1 -1
  574. package/lib/form/layouts/LightFilter/style.js +52 -49
  575. package/lib/form/layouts/LoginForm/index.d.ts +1 -1
  576. package/lib/form/layouts/LoginForm/index.js +44 -48
  577. package/lib/form/layouts/LoginForm/style.d.ts +1 -1
  578. package/lib/form/layouts/LoginForm/style.js +71 -68
  579. package/lib/form/layouts/LoginFormPage/index.d.ts +1 -1
  580. package/lib/form/layouts/LoginFormPage/index.js +45 -49
  581. package/lib/form/layouts/LoginFormPage/style.d.ts +1 -1
  582. package/lib/form/layouts/LoginFormPage/style.js +136 -127
  583. package/lib/form/layouts/ModalForm/index.js +119 -203
  584. package/lib/form/layouts/ProForm/index.d.ts +1 -1
  585. package/lib/form/layouts/ProForm/index.js +5 -5
  586. package/lib/form/layouts/QueryFilter/Actions.js +23 -22
  587. package/lib/form/layouts/QueryFilter/index.d.ts +2 -1
  588. package/lib/form/layouts/QueryFilter/index.js +177 -202
  589. package/lib/form/layouts/QueryFilter/style.d.ts +1 -1
  590. package/lib/form/layouts/QueryFilter/style.js +45 -38
  591. package/lib/form/layouts/StepsForm/StepForm.d.ts +2 -3
  592. package/lib/form/layouts/StepsForm/StepForm.js +50 -72
  593. package/lib/form/layouts/StepsForm/index.js +186 -215
  594. package/lib/form/layouts/StepsForm/style.d.ts +1 -1
  595. package/lib/form/layouts/StepsForm/style.js +30 -29
  596. package/lib/form/layouts/index.js +9 -9
  597. package/lib/index.js +11 -11
  598. package/lib/layout/ProLayout.js +281 -292
  599. package/lib/layout/WrapContent.js +18 -14
  600. package/lib/layout/assert/Logo.js +96 -97
  601. package/lib/layout/components/AppsLogoComponents/AppsLogo.js +11 -12
  602. package/lib/layout/components/AppsLogoComponents/DefaultContent.js +19 -17
  603. package/lib/layout/components/AppsLogoComponents/SimpleContent.js +22 -19
  604. package/lib/layout/components/AppsLogoComponents/index.js +37 -39
  605. package/lib/layout/components/AppsLogoComponents/style/default.js +4 -3
  606. package/lib/layout/components/AppsLogoComponents/style/index.d.ts +1 -1
  607. package/lib/layout/components/AppsLogoComponents/style/index.js +52 -51
  608. package/lib/layout/components/AppsLogoComponents/style/simple.js +3 -2
  609. package/lib/layout/components/CollapsedIcon/index.js +20 -17
  610. package/lib/layout/components/CollapsedIcon/style.d.ts +1 -1
  611. package/lib/layout/components/CollapsedIcon/style.js +40 -41
  612. package/lib/layout/components/Footer.js +23 -22
  613. package/lib/layout/components/FooterToolbar/index.js +59 -53
  614. package/lib/layout/components/FooterToolbar/style/index.d.ts +1 -1
  615. package/lib/layout/components/FooterToolbar/style/index.js +38 -38
  616. package/lib/layout/components/FooterToolbar/style/stylish.d.ts +1 -1
  617. package/lib/layout/components/FooterToolbar/style/stylish.js +11 -10
  618. package/lib/layout/components/GlobalFooter/index.d.ts +1 -1
  619. package/lib/layout/components/GlobalFooter/index.js +27 -27
  620. package/lib/layout/components/GlobalFooter/style.d.ts +1 -1
  621. package/lib/layout/components/GlobalFooter/style.js +31 -31
  622. package/lib/layout/components/GlobalHeader/ActionsContent.js +65 -81
  623. package/lib/layout/components/GlobalHeader/index.js +61 -49
  624. package/lib/layout/components/GlobalHeader/rightContentStyle.d.ts +1 -1
  625. package/lib/layout/components/GlobalHeader/rightContentStyle.js +49 -50
  626. package/lib/layout/components/GlobalHeader/style.d.ts +1 -1
  627. package/lib/layout/components/GlobalHeader/style.js +58 -55
  628. package/lib/layout/components/GridContent/index.js +26 -21
  629. package/lib/layout/components/GridContent/style.d.ts +1 -1
  630. package/lib/layout/components/GridContent/style.js +14 -14
  631. package/lib/layout/components/Header/index.js +65 -59
  632. package/lib/layout/components/Header/style/header.d.ts +1 -1
  633. package/lib/layout/components/Header/style/header.js +49 -48
  634. package/lib/layout/components/Header/style/stylish.d.ts +1 -1
  635. package/lib/layout/components/Header/style/stylish.js +15 -12
  636. package/lib/layout/components/Help/AsyncContentPanel.js +15 -20
  637. package/lib/layout/components/Help/HelpProvide.js +1 -1
  638. package/lib/layout/components/Help/ProHelpContentPanel.js +66 -85
  639. package/lib/layout/components/Help/ProHelpDrawer.d.ts +1 -1
  640. package/lib/layout/components/Help/ProHelpDrawer.js +27 -30
  641. package/lib/layout/components/Help/ProHelpModal.d.ts +1 -1
  642. package/lib/layout/components/Help/ProHelpModal.js +26 -28
  643. package/lib/layout/components/Help/ProHelpPanel.js +86 -94
  644. package/lib/layout/components/Help/ProHelpPopover.js +21 -19
  645. package/lib/layout/components/Help/RenderContentPanel.js +36 -26
  646. package/lib/layout/components/Help/Search.js +55 -80
  647. package/lib/layout/components/Help/index.js +19 -20
  648. package/lib/layout/components/Help/style.d.ts +1 -1
  649. package/lib/layout/components/Help/style.js +82 -76
  650. package/lib/layout/components/PageContainer/index.js +172 -151
  651. package/lib/layout/components/PageContainer/style/index.d.ts +1 -1
  652. package/lib/layout/components/PageContainer/style/index.js +95 -79
  653. package/lib/layout/components/PageContainer/style/stylish.d.ts +1 -1
  654. package/lib/layout/components/PageContainer/style/stylish.js +11 -10
  655. package/lib/layout/components/PageHeader/index.js +99 -99
  656. package/lib/layout/components/PageHeader/style/index.d.ts +1 -1
  657. package/lib/layout/components/PageHeader/style/index.js +142 -123
  658. package/lib/layout/components/PageLoading/index.js +18 -20
  659. package/lib/layout/components/SettingDrawer/BlockCheckbox.js +31 -34
  660. package/lib/layout/components/SettingDrawer/LayoutChange.js +25 -23
  661. package/lib/layout/components/SettingDrawer/RegionalChange.js +16 -16
  662. package/lib/layout/components/SettingDrawer/ThemeColor.js +34 -36
  663. package/lib/layout/components/SettingDrawer/index.js +140 -170
  664. package/lib/layout/components/SettingDrawer/style/index.d.ts +1 -1
  665. package/lib/layout/components/SettingDrawer/style/index.js +141 -138
  666. package/lib/layout/components/SiderMenu/BaseMenu.d.ts +1 -1
  667. package/lib/layout/components/SiderMenu/BaseMenu.js +236 -222
  668. package/lib/layout/components/SiderMenu/SiderMenu.js +130 -119
  669. package/lib/layout/components/SiderMenu/index.js +53 -45
  670. package/lib/layout/components/SiderMenu/style/index.d.ts +1 -1
  671. package/lib/layout/components/SiderMenu/style/index.js +179 -162
  672. package/lib/layout/components/SiderMenu/style/menu.d.ts +1 -1
  673. package/lib/layout/components/SiderMenu/style/menu.js +148 -111
  674. package/lib/layout/components/SiderMenu/style/stylish.d.ts +1 -1
  675. package/lib/layout/components/SiderMenu/style/stylish.js +15 -12
  676. package/lib/layout/components/TopNavHeader/index.js +73 -62
  677. package/lib/layout/components/TopNavHeader/style.d.ts +1 -1
  678. package/lib/layout/components/TopNavHeader/style.js +64 -64
  679. package/lib/layout/context/RouteContext.js +1 -1
  680. package/lib/layout/defaultSettings.d.ts +6 -0
  681. package/lib/layout/defaultSettings.js +1 -1
  682. package/lib/layout/getPageTitle.js +27 -26
  683. package/lib/layout/index.js +16 -16
  684. package/lib/layout/locales/en-US.js +3 -2
  685. package/lib/layout/locales/index.js +8 -6
  686. package/lib/layout/locales/it-IT.js +3 -2
  687. package/lib/layout/locales/ko-KR.js +3 -2
  688. package/lib/layout/locales/zh-CN.js +3 -2
  689. package/lib/layout/locales/zh-TW.js +3 -2
  690. package/lib/layout/style/index.d.ts +1 -1
  691. package/lib/layout/style/index.js +48 -43
  692. package/lib/layout/utils/getBreadcrumbProps.js +65 -62
  693. package/lib/layout/utils/getMenuData.js +9 -13
  694. package/lib/layout/utils/pathTools.js +2 -6
  695. package/lib/layout/utils/useCurrentMenuLayoutProps.js +6 -11
  696. package/lib/layout/utils/utils.js +16 -18
  697. package/lib/list/Item.js +155 -136
  698. package/lib/list/ListView.js +110 -119
  699. package/lib/list/constants.js +2 -2
  700. package/lib/list/index.js +72 -70
  701. package/lib/list/style/index.d.ts +1 -1
  702. package/lib/list/style/index.js +281 -214
  703. package/lib/provider/index.d.ts +1 -0
  704. package/lib/provider/index.js +132 -117
  705. package/lib/provider/intl.js +56 -56
  706. package/lib/provider/typing/layoutToken.js +28 -25
  707. package/lib/provider/useStyle/index.d.ts +2 -1
  708. package/lib/provider/useStyle/index.js +64 -61
  709. package/lib/provider/utils/merge.js +12 -14
  710. package/lib/skeleton/components/Descriptions/index.js +213 -229
  711. package/lib/skeleton/components/List/index.js +211 -221
  712. package/lib/skeleton/components/Result/index.js +45 -47
  713. package/lib/skeleton/index.js +23 -19
  714. package/lib/table/Store/Provide.d.ts +4 -4
  715. package/lib/table/Store/Provide.js +103 -117
  716. package/lib/table/Table.d.ts +5 -2
  717. package/lib/table/Table.js +592 -602
  718. package/lib/table/TableSearch.d.ts +24 -0
  719. package/lib/table/TableSearch.js +61 -0
  720. package/lib/table/TableToolbar.d.ts +22 -0
  721. package/lib/table/TableToolbar.js +55 -0
  722. package/lib/table/components/Alert/index.d.ts +1 -1
  723. package/lib/table/components/Alert/index.js +41 -40
  724. package/lib/table/components/Alert/style.d.ts +1 -1
  725. package/lib/table/components/Alert/style.js +28 -28
  726. package/lib/table/components/ColumnSetting/index.d.ts +1 -1
  727. package/lib/table/components/ColumnSetting/index.js +230 -224
  728. package/lib/table/components/ColumnSetting/style.d.ts +1 -1
  729. package/lib/table/components/ColumnSetting/style.js +86 -72
  730. package/lib/table/components/DragSortTable/index.d.ts +1 -1
  731. package/lib/table/components/DragSortTable/index.js +64 -78
  732. package/lib/table/components/DragSortTable/style.d.ts +1 -1
  733. package/lib/table/components/DragSortTable/style.js +20 -20
  734. package/lib/table/components/Dropdown/index.js +42 -48
  735. package/lib/table/components/EditableTable/CellEditorTable.js +24 -32
  736. package/lib/table/components/EditableTable/RowEditorTable.js +23 -28
  737. package/lib/table/components/EditableTable/index.js +598 -299
  738. package/lib/table/components/Form/FormRender.js +99 -104
  739. package/lib/table/components/Form/index.d.ts +4 -19
  740. package/lib/table/components/Form/index.js +113 -159
  741. package/lib/table/components/ListToolBar/HeaderMenu.js +42 -51
  742. package/lib/table/components/ListToolBar/index.js +123 -148
  743. package/lib/table/components/ListToolBar/style.d.ts +1 -1
  744. package/lib/table/components/ListToolBar/style.js +127 -118
  745. package/lib/table/components/ToolBar/DensityIcon.js +10 -9
  746. package/lib/table/components/ToolBar/FullscreenIcon.js +5 -10
  747. package/lib/table/components/ToolBar/index.d.ts +2 -8
  748. package/lib/table/components/ToolBar/index.js +154 -194
  749. package/lib/table/index.js +27 -27
  750. package/lib/table/style/index.d.ts +1 -1
  751. package/lib/table/style/index.js +144 -113
  752. package/lib/table/typing.d.ts +13 -6
  753. package/lib/table/useFetchData.js +202 -347
  754. package/lib/table/utils/cellRenderToFromItem.js +106 -120
  755. package/lib/table/utils/columnRender.js +65 -54
  756. package/lib/table/utils/columnSort.js +24 -23
  757. package/lib/table/utils/genProColumnToColumn.d.ts +13 -9
  758. package/lib/table/utils/genProColumnToColumn.js +121 -99
  759. package/lib/table/utils/index.d.ts +12 -0
  760. package/lib/table/utils/index.js +129 -181
  761. package/lib/table/utils/useDragSort.d.ts +1 -1
  762. package/lib/table/utils/useDragSort.js +99 -93
  763. package/lib/table/utils/usePageInfo.d.ts +6 -0
  764. package/lib/table/utils/usePageInfo.js +61 -0
  765. package/lib/utils/components/DropdownFooter/index.js +25 -23
  766. package/lib/utils/components/DropdownFooter/style.d.ts +1 -1
  767. package/lib/utils/components/DropdownFooter/style.js +16 -16
  768. package/lib/utils/components/ErrorBoundary/index.js +28 -50
  769. package/lib/utils/components/FieldLabel/index.js +70 -71
  770. package/lib/utils/components/FieldLabel/style.d.ts +1 -1
  771. package/lib/utils/components/FieldLabel/style.js +104 -82
  772. package/lib/utils/components/FilterDropdown/index.d.ts +11 -0
  773. package/lib/utils/components/FilterDropdown/index.js +44 -33
  774. package/lib/utils/components/FilterDropdown/style.d.ts +1 -1
  775. package/lib/utils/components/FilterDropdown/style.js +19 -17
  776. package/lib/utils/components/InlineErrorFormItem/index.js +80 -80
  777. package/lib/utils/components/InlineErrorFormItem/style.d.ts +1 -1
  778. package/lib/utils/components/InlineErrorFormItem/style.js +56 -50
  779. package/lib/utils/components/LabelIconTip/index.js +30 -32
  780. package/lib/utils/components/LabelIconTip/style.d.ts +1 -1
  781. package/lib/utils/components/LabelIconTip/style.js +36 -36
  782. package/lib/utils/components/ProFormContext/index.js +1 -1
  783. package/lib/utils/conversionMomentValue/index.js +22 -23
  784. package/lib/utils/dateArrayFormatter/index.js +11 -15
  785. package/lib/utils/genCopyable/index.js +75 -33
  786. package/lib/utils/getFieldPropsOrFormItemProps/index.js +3 -2
  787. package/lib/utils/hooks/useDebounceFn/index.js +18 -52
  788. package/lib/utils/hooks/useDebounceValue/index.js +7 -17
  789. package/lib/utils/hooks/useDeepCompareEffect/index.js +7 -19
  790. package/lib/utils/hooks/useDocumentTitle/index.js +2 -2
  791. package/lib/utils/hooks/useFetchData/index.js +36 -65
  792. package/lib/utils/hooks/useForceRender/index.js +2 -10
  793. package/lib/utils/hooks/useLatest/index.js +4 -3
  794. package/lib/utils/hooks/usePrevious/index.js +5 -4
  795. package/lib/utils/hooks/useReactiveRef/index.js +2 -2
  796. package/lib/utils/hooks/useRefCallback/index.js +3 -3
  797. package/lib/utils/hooks/useRefFunction/index.js +6 -11
  798. package/lib/utils/index.d.ts +1 -2
  799. package/lib/utils/index.js +57 -65
  800. package/lib/utils/isBrowser/index.js +4 -3
  801. package/lib/utils/isDeepEqualReact/index.js +9 -45
  802. package/lib/utils/isDropdownValueType/index.js +4 -3
  803. package/lib/utils/isNil/index.js +2 -3
  804. package/lib/utils/isUrl/index.js +4 -3
  805. package/lib/utils/merge/index.js +12 -14
  806. package/lib/utils/nanoid/index.js +7 -7
  807. package/lib/utils/omitBoolean/index.js +3 -2
  808. package/lib/utils/omitUndefined/index.js +5 -4
  809. package/lib/utils/omitUndefinedAndEmptyArr/index.js +6 -6
  810. package/lib/utils/parseValueToMoment/index.js +5 -8
  811. package/lib/utils/pickProFormItemProps/index.js +3 -3
  812. package/lib/utils/pickProProps/index.js +6 -7
  813. package/lib/utils/proFieldParsingText/index.js +90 -100
  814. package/lib/utils/runFunction/index.js +2 -5
  815. package/lib/utils/stringify/index.js +2 -2
  816. package/lib/utils/transformKeySubmitValue/index.js +101 -117
  817. package/lib/utils/typing.d.ts +1 -1
  818. package/lib/utils/useEditableArray/index.d.ts +9 -7
  819. package/lib/utils/useEditableArray/index.js +791 -700
  820. package/lib/utils/useEditableMap/index.d.ts +1 -1
  821. package/lib/utils/useEditableMap/index.js +147 -137
  822. package/lib/utils/useMediaQuery/index.js +19 -19
  823. package/lib/utils/useMediaQuery/query.js +14 -19
  824. package/lib/version.js +1 -1
  825. package/package.json +34 -45
  826. package/es/utils/useMountMergeState/index.d.ts +0 -2
  827. package/es/utils/useMountMergeState/index.js +0 -2
  828. package/lib/utils/useMountMergeState/index.d.ts +0 -2
  829. package/lib/utils/useMountMergeState/index.js +0 -12
@@ -6,12 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
9
  var _icons = require("@ant-design/icons");
16
10
  var _util = require("@rc-component/util");
17
11
  var _antd = require("antd");
@@ -19,55 +13,221 @@ var _react = _interopRequireWildcard(require("react"));
19
13
  var _form = _interopRequireWildcard(require("../../../form"));
20
14
  var _provider = require("../../../provider");
21
15
  var _utils = require("../../../utils");
16
+ var _useEditableArray = require("../../../utils/useEditableArray");
22
17
  var _Table = _interopRequireDefault(require("../../Table"));
23
18
  var _jsxRuntime = require("react/jsx-runtime");
24
- var _excluded = ["onTableChange", "maxLength", "formItemProps", "recordCreatorProps", "rowKey", "controlled", "defaultValue", "onChange", "editableFormRef"],
25
- _excluded2 = ["record", "position", "creatorButtonText", "newRecordType", "parentKey", "style"];
26
- var EditableTableActionContext = /*#__PURE__*/_react.default.createContext(undefined);
19
+ const EditableTableActionContext = /*#__PURE__*/_react.default.createContext(undefined);
27
20
 
28
21
  /** 可编辑表格的按钮 */
29
22
  function RecordCreator(props) {
30
- var children = props.children,
31
- record = props.record,
32
- position = props.position,
33
- newRecordType = props.newRecordType,
34
- parentKey = props.parentKey;
35
- var actionRef = (0, _react.useContext)(EditableTableActionContext);
36
- return /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), {}, {
37
- onClick: function () {
38
- var _onClick = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(e) {
39
- var _children$props$onCli, _children$props, _actionRef$current;
40
- var isOk;
41
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
42
- while (1) switch (_context.prev = _context.next) {
43
- case 0:
44
- _context.next = 2;
45
- return (_children$props$onCli = (_children$props = children.props).onClick) === null || _children$props$onCli === void 0 ? void 0 : _children$props$onCli.call(_children$props, e);
46
- case 2:
47
- isOk = _context.sent;
48
- if (!(isOk === false)) {
49
- _context.next = 5;
50
- break;
51
- }
52
- return _context.abrupt("return");
53
- case 5:
54
- actionRef === null || actionRef === void 0 || (_actionRef$current = actionRef.current) === null || _actionRef$current === void 0 || _actionRef$current.addEditRecord(record, {
55
- position: position,
56
- newRecordType: newRecordType,
57
- parentKey: parentKey
58
- });
59
- case 6:
60
- case "end":
61
- return _context.stop();
62
- }
63
- }, _callee);
64
- }));
65
- function onClick(_x) {
66
- return _onClick.apply(this, arguments);
23
+ const {
24
+ children,
25
+ record,
26
+ position,
27
+ newRecordType,
28
+ parentKey
29
+ } = props;
30
+ const actionRef = (0, _react.useContext)(EditableTableActionContext);
31
+ return /*#__PURE__*/_react.default.cloneElement(children, {
32
+ ...children.props,
33
+ onClick: async e => {
34
+ // 如果返回了false,接触掉默认行为
35
+ const isOk = await children.props.onClick?.(e);
36
+ if (isOk === false) return;
37
+ if (actionRef?.current) {
38
+ actionRef.current.addEditRecord(record, {
39
+ position,
40
+ newRecordType,
41
+ parentKey: parentKey
42
+ });
67
43
  }
68
- return onClick;
69
- }()
70
- }));
44
+ }
45
+ });
46
+ }
47
+
48
+ /**
49
+ * 处理嵌套行的新增
50
+ */
51
+ function handleNestedRowInsert(baseData, defaultValue, newLineOptions, getRowKey, childrenColumnName) {
52
+ if (!newLineOptions.recordKey) {
53
+ return baseData;
54
+ }
55
+ const actionProps = {
56
+ data: baseData,
57
+ getRowKey,
58
+ row: {
59
+ ...defaultValue,
60
+ map_row_parentKey: (0, _useEditableArray.recordKeyToString)(newLineOptions.parentKey)?.toString()
61
+ },
62
+ key: newLineOptions.recordKey,
63
+ childrenColumnName
64
+ };
65
+ return (0, _useEditableArray.editableRowByKey)(actionProps, newLineOptions.position === 'top' ? 'top' : 'update');
66
+ }
67
+
68
+ /**
69
+ * 处理分页场景下的新增
70
+ */
71
+ function handlePaginationInsert(baseData, defaultValue, pageConfig) {
72
+ if (pageConfig.pageSize > baseData.length) {
73
+ return [...baseData, defaultValue];
74
+ }
75
+ const insertIndex = pageConfig.current * pageConfig.pageSize - 1;
76
+ const result = [...baseData];
77
+ result.splice(insertIndex, 0, defaultValue);
78
+ return result;
79
+ }
80
+ function useEditableDataSource({
81
+ actionDataSource,
82
+ editableUtils,
83
+ pagination,
84
+ getRowKey,
85
+ childrenColumnName
86
+ }) {
87
+ return (0, _react.useMemo)(() => {
88
+ const newLineConfig = editableUtils?.newLineRecord;
89
+ const baseData = Array.isArray(actionDataSource) ? [...actionDataSource] : [];
90
+ if (!newLineConfig?.defaultValue) {
91
+ return baseData;
92
+ }
93
+ const {
94
+ options: newLineOptions,
95
+ defaultValue
96
+ } = newLineConfig;
97
+ if (newLineOptions?.parentKey) {
98
+ return handleNestedRowInsert(baseData, defaultValue, newLineOptions, getRowKey, childrenColumnName || 'children');
99
+ }
100
+ if (newLineOptions?.position === 'top') {
101
+ return [defaultValue, ...baseData];
102
+ }
103
+ const pageConfig = pagination && typeof pagination === 'object' ? pagination : undefined;
104
+ if (pageConfig?.current && pageConfig?.pageSize) {
105
+ return handlePaginationInsert(baseData, defaultValue, pageConfig);
106
+ }
107
+ return [...baseData, defaultValue];
108
+ }, [actionDataSource, childrenColumnName, editableUtils?.newLineRecord, getRowKey, pagination]);
109
+ }
110
+
111
+ /**
112
+ * 检查是否应该显示创建按钮
113
+ */
114
+ function shouldShowCreatorButton(maxLength, valueLength, recordCreatorProps) {
115
+ if (typeof maxLength === 'number' && maxLength <= valueLength) {
116
+ return false;
117
+ }
118
+ return recordCreatorProps !== false;
119
+ }
120
+
121
+ /**
122
+ * 创建按钮 DOM
123
+ */
124
+ function createButtonDom(recordCreatorProps, value, intl) {
125
+ const {
126
+ record,
127
+ position,
128
+ creatorButtonText,
129
+ newRecordType,
130
+ parentKey,
131
+ style,
132
+ ...restButtonProps
133
+ } = recordCreatorProps;
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RecordCreator, {
135
+ record: (0, _utils.runFunction)(record, value?.length, value) || {},
136
+ position: position,
137
+ parentKey: (0, _utils.runFunction)(parentKey, value?.length, value),
138
+ newRecordType: newRecordType,
139
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Button, {
140
+ type: "dashed",
141
+ style: {
142
+ display: 'block',
143
+ margin: '10px 0',
144
+ width: '100%',
145
+ ...style
146
+ },
147
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlusOutlined, {}),
148
+ ...restButtonProps,
149
+ children: creatorButtonText || intl.getMessage('editableTable.action.add', '添加一行数据')
150
+ })
151
+ });
152
+ }
153
+
154
+ /**
155
+ * 创建顶部按钮的渲染属性
156
+ */
157
+ function createTopButtonProps(creatorButtonDom, columnsLength) {
158
+ return {
159
+ components: {
160
+ header: {
161
+ wrapper: ({
162
+ className,
163
+ children
164
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("thead", {
165
+ className: className,
166
+ children: [children, /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
167
+ style: {
168
+ position: 'relative'
169
+ },
170
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
171
+ colSpan: 0,
172
+ style: {
173
+ visibility: 'hidden'
174
+ },
175
+ children: creatorButtonDom
176
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
177
+ style: {
178
+ position: 'absolute',
179
+ left: 0,
180
+ width: '100%'
181
+ },
182
+ colSpan: columnsLength,
183
+ children: creatorButtonDom
184
+ })]
185
+ })]
186
+ })
187
+ }
188
+ }
189
+ };
190
+ }
191
+
192
+ /**
193
+ * 创建底部按钮的渲染属性
194
+ */
195
+ function createBottomButtonProps(creatorButtonDom, tableViewRender) {
196
+ return {
197
+ tableViewRender: (_, dom) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
198
+ children: [tableViewRender?.(_, dom) ?? dom, creatorButtonDom]
199
+ })
200
+ };
201
+ }
202
+ function useCreatorButton({
203
+ recordCreatorProps,
204
+ maxLength,
205
+ value,
206
+ intl,
207
+ isTop,
208
+ columnsLength,
209
+ tableViewRender
210
+ }) {
211
+ const creatorButtonDom = (0, _react.useMemo)(() => {
212
+ if (!shouldShowCreatorButton(maxLength, value?.length || 0, recordCreatorProps)) {
213
+ return false;
214
+ }
215
+ if (!recordCreatorProps) {
216
+ return false;
217
+ }
218
+ return createButtonDom(recordCreatorProps, value, intl);
219
+ // eslint-disable-next-line react-hooks/exhaustive-deps
220
+ }, [maxLength, recordCreatorProps, value?.length, intl]);
221
+ const buttonRenderProps = (0, _react.useMemo)(() => {
222
+ if (!creatorButtonDom) {
223
+ return {};
224
+ }
225
+ return isTop ? createTopButtonProps(creatorButtonDom, columnsLength) : createBottomButtonProps(creatorButtonDom, tableViewRender);
226
+ }, [columnsLength, creatorButtonDom, isTop, tableViewRender]);
227
+ return {
228
+ creatorButtonDom,
229
+ buttonRenderProps
230
+ };
71
231
  }
72
232
 
73
233
  /**
@@ -76,294 +236,431 @@ function RecordCreator(props) {
76
236
  * @param props
77
237
  */
78
238
  function EditableTable(props) {
79
- var _props$editable2, _props$editable4;
80
- var intl = (0, _provider.useIntl)();
81
- var onTableChange = props.onTableChange,
82
- maxLength = props.maxLength,
83
- formItemProps = props.formItemProps,
84
- recordCreatorProps = props.recordCreatorProps,
85
- rowKey = props.rowKey,
86
- controlled = props.controlled,
87
- defaultValue = props.defaultValue,
88
- onChange = props.onChange,
89
- editableFormRef = props.editableFormRef,
90
- rest = (0, _objectWithoutProperties2.default)(props, _excluded);
91
- var preData = (0, _react.useRef)(undefined);
92
- var actionRef = (0, _react.useRef)();
93
- var formRef = (0, _react.useRef)();
239
+ const intl = (0, _provider.useIntl)();
240
+ const {
241
+ onTableChange,
242
+ maxLength,
243
+ formItemProps,
244
+ recordCreatorProps,
245
+ rowKey,
246
+ controlled,
247
+ defaultValue,
248
+ onChange,
249
+ editableFormRef,
250
+ // @ts-ignore
251
+ autoFocus,
252
+ ...rest
253
+ } = props;
254
+ const preData = (0, _react.useRef)(undefined);
255
+ const actionRef = (0, _react.useRef)();
256
+ const formRef = (0, _react.useRef)();
257
+ const form = _antd.Form.useFormInstance();
94
258
 
95
259
  // 设置 ref
96
- (0, _react.useImperativeHandle)(rest.actionRef, function () {
97
- return actionRef.current;
98
- }, [actionRef.current]);
99
- var _useMergedState = (0, _util.useMergedState)(function () {
100
- return props.value || defaultValue || [];
101
- }, {
102
- value: props.value,
103
- onChange: props.onChange
104
- }),
105
- _useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
106
- value = _useMergedState2[0],
107
- setValue = _useMergedState2[1];
108
- var getRowKey = _react.default.useMemo(function () {
260
+ (0, _react.useImperativeHandle)(rest.actionRef, () => actionRef.current, [actionRef.current]);
261
+
262
+ // 在 name 模式下,如果没有传递 value prop,尝试从表单值中获取初始值
263
+ const getInitialValue = () => {
264
+ if (props.value) {
265
+ return props.value;
266
+ }
267
+ if (defaultValue) {
268
+ return defaultValue;
269
+ }
270
+ // 如果使用了 name 且没有 value,尝试从表单获取初始值
271
+ if (props.name && form) {
272
+ const namePath = [props.name].flat(1).filter(Boolean);
273
+ const formValue = form.getFieldValue(namePath);
274
+ if (Array.isArray(formValue)) {
275
+ return formValue;
276
+ }
277
+ }
278
+ return [];
279
+ };
280
+ const [value, setValueInner] = (0, _util.useControlledState)(getInitialValue, props.value);
281
+ const onChangeFn = props.controlled ? props.onChange : undefined;
282
+ const setValue = (0, _react.useCallback)(updater => {
283
+ setValueInner(prev => {
284
+ const next = typeof updater === 'function' ? updater(prev) : updater;
285
+ // 在非受控模式下,onChange 应该在 onDataSourceChange 中触发
286
+ onChangeFn?.(next);
287
+ return next;
288
+ });
289
+ }, [onChangeFn]);
290
+ const getRowKey = _react.default.useMemo(() => {
109
291
  if (typeof rowKey === 'function') {
110
292
  return rowKey;
111
293
  }
112
- return function (record, index) {
113
- return record[rowKey] || index;
114
- };
294
+ return (record, index) => record[rowKey] || index;
115
295
  }, [rowKey]);
116
296
 
117
297
  /**
118
- * 根据不同的情况返回不同的 rowKey
119
- * @param finlayRowKey
120
- * @returns string | number
298
+ * 创建编辑 keys 的 Set,用于快速查找
121
299
  */
122
- var coverRowKey = (0, _utils.useRefFunction)(function (finlayRowKey) {
123
- /**
124
- * 如果是 prop.name 的模式,就需要把行号转化成具体的rowKey。
125
- */
126
- if (typeof finlayRowKey === 'number' && !props.name) {
127
- if (finlayRowKey >= value.length) return finlayRowKey;
128
- var rowData = value && value[finlayRowKey];
129
- return getRowKey === null || getRowKey === void 0 ? void 0 : getRowKey(rowData, finlayRowKey);
300
+ const createEditingKeysSet = (0, _utils.useRefFunction)(editingKeys => {
301
+ return new Set((editingKeys || []).map(key => String(key)));
302
+ });
303
+
304
+ /**
305
+ * 同步表单值,排除正在编辑的行
306
+ */
307
+ const syncFormValuesExcludingEditing = (0, _utils.useRefFunction)((dataSource, editingKeysSet, namePath) => {
308
+ if (!formRef.current) return;
309
+ try {
310
+ if (namePath && namePath.length > 0) {
311
+ // name 模式:需要保留正在编辑的行
312
+ const currentFormValues = formRef.current.getFieldsValue() || {};
313
+ const currentList = (0, _util.get)(currentFormValues, namePath);
314
+ if (currentList && Array.isArray(currentList)) {
315
+ // 构建新的表单值,保留正在编辑的行
316
+ // 使用 Map 优化查找性能,将 O(n²) 降低到 O(n)
317
+ const currentListMap = new Map();
318
+ currentList.forEach((item, idx) => {
319
+ const key = getRowKey(item, idx);
320
+ currentListMap.set(String(key), item);
321
+ });
322
+ const newList = dataSource.map((item, index) => {
323
+ const key = getRowKey(item, index);
324
+ const keyStr = String(key);
325
+
326
+ // 如果该行正在编辑,保留表单中的值
327
+ if (editingKeysSet.has(keyStr)) {
328
+ return currentListMap.get(keyStr) || item;
329
+ }
330
+ return item;
331
+ });
332
+ const newValue = (0, _util.set)({}, namePath, newList);
333
+ formRef.current.setFieldsValue(newValue);
334
+ } else {
335
+ const newValue = (0, _util.set)({}, namePath, dataSource);
336
+ formRef.current.setFieldsValue(newValue);
337
+ }
338
+ } else {
339
+ // 非 name 模式:直接设置值
340
+ const formValues = {};
341
+ dataSource.forEach((current, index) => {
342
+ const key = getRowKey(current, index);
343
+ const keyStr = String(key);
344
+ if (!editingKeysSet.has(keyStr)) {
345
+ formValues[keyStr] = current;
346
+ }
347
+ });
348
+ if (Object.keys(formValues).length > 0) {
349
+ formRef.current.setFieldsValue(formValues);
350
+ }
351
+ }
352
+ } catch (error) {
353
+ console.warn('Failed to sync form values:', error);
130
354
  }
355
+ });
131
356
 
132
- /**
133
- * 如果是 prop.name 的模式,就直接返回行号
134
- */
135
- if ((typeof finlayRowKey === 'string' || finlayRowKey >= value.length) && props.name) {
136
- var _rowIndex = value.findIndex(function (item, index) {
137
- var _getRowKey;
138
- return (getRowKey === null || getRowKey === void 0 || (_getRowKey = getRowKey(item, index)) === null || _getRowKey === void 0 ? void 0 : _getRowKey.toString()) === (finlayRowKey === null || finlayRowKey === void 0 ? void 0 : finlayRowKey.toString());
357
+ /**
358
+ * 将数字索引转换为实际的 rowKey(非 name 模式)
359
+ */
360
+ const convertIndexToRowKey = (0, _utils.useRefFunction)(index => {
361
+ const dataLength = value?.length ?? 0;
362
+ if (index >= dataLength) return index;
363
+ const rowData = value?.[index];
364
+ return getRowKey?.(rowData, index);
365
+ });
366
+
367
+ /**
368
+ * 将 rowKey 转换为数字索引(name 模式)
369
+ */
370
+ const convertRowKeyToIndex = (0, _utils.useRefFunction)(rowKey => {
371
+ const dataLength = value?.length ?? 0;
372
+ if (typeof rowKey === 'string' || rowKey >= dataLength) {
373
+ const rowIndex = value.findIndex((item, index) => {
374
+ return getRowKey?.(item, index)?.toString() === rowKey?.toString();
139
375
  });
140
- if (_rowIndex !== -1) return _rowIndex;
376
+ if (rowIndex !== -1) return rowIndex;
377
+ }
378
+ return rowKey;
379
+ });
380
+
381
+ /**
382
+ * 根据不同的情况返回不同的 rowKey
383
+ */
384
+ const coverRowKey = (0, _utils.useRefFunction)(finlayRowKey => {
385
+ if (typeof finlayRowKey === 'number' && !props.name) {
386
+ return convertIndexToRowKey(finlayRowKey);
387
+ }
388
+ if (props.name) {
389
+ return convertRowKeyToIndex(finlayRowKey);
141
390
  }
142
391
  return finlayRowKey;
143
392
  });
144
393
 
145
- // 设置 editableFormRef
146
- (0, _react.useImperativeHandle)(editableFormRef, function () {
147
- /**
148
- * 获取一行数据的
149
- * @param rowIndex
150
- * @returns T | undefined
151
- */
152
- var getRowData = function getRowData(rowIndex) {
153
- var _finlayRowKey$toStrin, _formRef$current;
154
- if (rowIndex == undefined) {
155
- throw new Error('rowIndex is required');
156
- }
157
- var finlayRowKey = coverRowKey(rowIndex);
158
- var rowKeyName = [props.name, (_finlayRowKey$toStrin = finlayRowKey === null || finlayRowKey === void 0 ? void 0 : finlayRowKey.toString()) !== null && _finlayRowKey$toStrin !== void 0 ? _finlayRowKey$toStrin : ''].flat(1).filter(Boolean);
159
- return (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.getFieldValue(rowKeyName);
160
- };
394
+ /**
395
+ * 构建表单字段路径
396
+ */
397
+ const buildFormFieldPath = (0, _utils.useRefFunction)(rowKey => {
398
+ return [props.name, rowKey?.toString() ?? ''].flat(1).filter(Boolean);
399
+ });
161
400
 
162
- /**
163
- * 获取整个 table 的数据
164
- * @returns T[] | undefined
165
- */
166
- var getRowsData = function getRowsData() {
167
- var _formRef$current3;
168
- var rowKeyName = [props.name].flat(1).filter(Boolean);
169
- if (Array.isArray(rowKeyName) && rowKeyName.length === 0) {
170
- var _formRef$current2;
171
- var rowData = (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.getFieldsValue();
172
- if (Array.isArray(rowData)) return rowData;
173
- return Object.keys(rowData).map(function (key) {
174
- return rowData[key];
175
- });
176
- }
177
- return (_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.getFieldValue(rowKeyName);
178
- };
179
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, formRef.current), {}, {
180
- getRowData: getRowData,
181
- getRowsData: getRowsData,
182
- /**
183
- * 设置一行的数据,会将数据进行简单的 merge
184
- * @param rowIndex
185
- * @param data
186
- * @returns void
187
- */
188
- setRowData: function setRowData(rowIndex, data) {
189
- var _finlayRowKey$toStrin2, _formRef$current4;
190
- if (rowIndex == undefined) {
191
- throw new Error('rowIndex is required');
192
- }
193
- var finlayRowKey = coverRowKey(rowIndex);
194
- var rowKeyName = [props.name, (_finlayRowKey$toStrin2 = finlayRowKey === null || finlayRowKey === void 0 ? void 0 : finlayRowKey.toString()) !== null && _finlayRowKey$toStrin2 !== void 0 ? _finlayRowKey$toStrin2 : ''].flat(1).filter(Boolean);
195
- var newRowData = Object.assign({}, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, getRowData(rowIndex)), data || {}));
196
- var updateValues = (0, _util.set)({}, rowKeyName, newRowData);
197
- (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 || _formRef$current4.setFieldsValue(updateValues);
198
- return true;
199
- }
200
- });
201
- }, [coverRowKey, props.name, formRef.current]);
202
- (0, _react.useEffect)(function () {
203
- if (!props.controlled) return;
204
- (value || []).forEach(function (current, index) {
205
- var _formRef$current5;
206
- (_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 || _formRef$current5.setFieldsValue((0, _defineProperty2.default)({}, "".concat(getRowKey(current, index)), current));
207
- }, {});
208
- // eslint-disable-next-line react-hooks/exhaustive-deps
209
- }, [(0, _utils.stringify)(value), props.controlled]);
210
- (0, _react.useEffect)(function () {
211
- if (props.name) {
212
- var _props$editable;
213
- formRef.current = props === null || props === void 0 || (_props$editable = props.editable) === null || _props$editable === void 0 ? void 0 : _props$editable.form;
401
+ /**
402
+ * 获取一行数据
403
+ */
404
+ const getRowData = (0, _utils.useRefFunction)(rowIndex => {
405
+ if (rowIndex == null) {
406
+ throw new Error('rowIndex is required');
214
407
  }
215
- }, [(_props$editable2 = props.editable) === null || _props$editable2 === void 0 ? void 0 : _props$editable2.form, props.name]);
216
- var _ref = recordCreatorProps || {},
217
- record = _ref.record,
218
- position = _ref.position,
219
- creatorButtonText = _ref.creatorButtonText,
220
- newRecordType = _ref.newRecordType,
221
- parentKey = _ref.parentKey,
222
- style = _ref.style,
223
- restButtonProps = (0, _objectWithoutProperties2.default)(_ref, _excluded2);
224
- var isTop = position === 'top';
225
- var creatorButtonDom = (0, _react.useMemo)(function () {
226
- if (typeof maxLength === 'number' && maxLength <= (value === null || value === void 0 ? void 0 : value.length)) {
227
- return false;
408
+ const finlayRowKey = coverRowKey(rowIndex);
409
+ const rowKeyName = buildFormFieldPath(finlayRowKey);
410
+ return formRef.current?.getFieldValue(rowKeyName);
411
+ });
412
+
413
+ /**
414
+ * 获取整个表格的数据
415
+ */
416
+ const getRowsData = (0, _utils.useRefFunction)(() => {
417
+ const rowKeyName = [props.name].flat(1).filter(Boolean);
418
+ if (Array.isArray(rowKeyName) && rowKeyName.length === 0) {
419
+ const rowData = formRef.current?.getFieldsValue();
420
+ if (Array.isArray(rowData)) return rowData;
421
+ return Object.keys(rowData).map(key => rowData[key]);
228
422
  }
229
- return recordCreatorProps !== false && /*#__PURE__*/(0, _jsxRuntime.jsx)(RecordCreator, {
230
- record: (0, _utils.runFunction)(record, value === null || value === void 0 ? void 0 : value.length, value) || {},
231
- position: position,
232
- parentKey: (0, _utils.runFunction)(parentKey, value === null || value === void 0 ? void 0 : value.length, value),
233
- newRecordType: newRecordType,
234
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Button, (0, _objectSpread2.default)((0, _objectSpread2.default)({
235
- type: "dashed",
236
- style: (0, _objectSpread2.default)({
237
- display: 'block',
238
- margin: '10px 0',
239
- width: '100%'
240
- }, style),
241
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlusOutlined, {})
242
- }, restButtonProps), {}, {
243
- children: creatorButtonText || intl.getMessage('editableTable.action.add', '添加一行数据')
244
- }))
245
- });
246
- // eslint-disable-next-line react-hooks/exhaustive-deps
247
- }, [recordCreatorProps, maxLength, value === null || value === void 0 ? void 0 : value.length]);
248
- var buttonRenderProps = (0, _react.useMemo)(function () {
249
- if (!creatorButtonDom) {
250
- return {};
423
+ return formRef.current?.getFieldValue(rowKeyName);
424
+ });
425
+
426
+ /**
427
+ * 设置一行数据
428
+ */
429
+ const setRowData = (0, _utils.useRefFunction)((rowIndex, data) => {
430
+ if (rowIndex == null) {
431
+ throw new Error('rowIndex is required');
251
432
  }
252
- if (isTop) {
253
- return {
254
- components: {
255
- header: {
256
- wrapper: function wrapper(_ref2) {
257
- var _rest$columns;
258
- var className = _ref2.className,
259
- children = _ref2.children;
260
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("thead", {
261
- className: className,
262
- children: [children, /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
263
- style: {
264
- position: 'relative'
265
- },
266
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
267
- colSpan: 0,
268
- style: {
269
- visibility: 'hidden'
270
- },
271
- children: creatorButtonDom
272
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
273
- style: {
274
- position: 'absolute',
275
- left: 0,
276
- width: '100%'
277
- },
278
- colSpan: (_rest$columns = rest.columns) === null || _rest$columns === void 0 ? void 0 : _rest$columns.length,
279
- children: creatorButtonDom
280
- })]
281
- })]
282
- });
283
- }
433
+ const finlayRowKey = coverRowKey(rowIndex);
434
+ const rowKeyName = buildFormFieldPath(finlayRowKey);
435
+ const currentRowData = getRowData(rowIndex);
436
+ const newRowData = {
437
+ ...currentRowData,
438
+ ...(data || {})
439
+ };
440
+
441
+ // name 模式下,需要更新整个数组
442
+ if (props.name) {
443
+ const tableName = [props.name].flat(1).filter(Boolean);
444
+ // 优先从 value prop 获取数据(受控模式),否则从表单值获取
445
+ let currentTableData = props.value || formRef.current?.getFieldValue(tableName);
446
+ if (Array.isArray(currentTableData)) {
447
+ // 找到要更新的行的索引
448
+ const rowIndexToUpdate = typeof finlayRowKey === 'number' ? finlayRowKey : currentTableData.findIndex((row, index) => {
449
+ const rowKey = getRowKey?.(row, index);
450
+ return rowKey === finlayRowKey || rowKey?.toString() === finlayRowKey?.toString();
451
+ });
452
+ if (rowIndexToUpdate >= 0 && rowIndexToUpdate < currentTableData.length) {
453
+ // 更新数组中的对应行
454
+ const updatedTableData = [...currentTableData];
455
+ updatedTableData[rowIndexToUpdate] = newRowData;
456
+
457
+ // 设置整个数组,使用 set 来构建正确的路径
458
+ // 使用与 syncFormValuesExcludingEditing 相同的路径格式(数组路径)
459
+ // 这样可以确保 getFieldValue 能正确获取值
460
+ const updateValues = (0, _util.set)({}, tableName, updatedTableData);
461
+ formRef.current?.setFieldsValue(updateValues);
462
+
463
+ // 在受控模式下,触发 onChange
464
+ if (props.controlled && props.onChange) {
465
+ props.onChange(updatedTableData);
284
466
  }
285
467
  }
286
- };
468
+ } else {
469
+ // 如果当前没有数据,直接设置单个字段
470
+ const updateValues = (0, _util.set)({}, rowKeyName, newRowData);
471
+ formRef.current?.setFieldsValue(updateValues);
472
+ }
473
+ } else {
474
+ // 非 name 模式下,直接设置单个字段
475
+ const updateValues = (0, _util.set)({}, rowKeyName, newRowData);
476
+ formRef.current?.setFieldsValue(updateValues);
287
477
  }
478
+ return true;
479
+ });
480
+
481
+ // 设置 editableFormRef
482
+ (0, _react.useImperativeHandle)(editableFormRef, () => {
288
483
  return {
289
- tableViewRender: function tableViewRender(_, dom) {
290
- var _props$tableViewRende, _props$tableViewRende2;
291
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
292
- children: [(_props$tableViewRende = (_props$tableViewRende2 = props.tableViewRender) === null || _props$tableViewRende2 === void 0 ? void 0 : _props$tableViewRende2.call(props, _, dom)) !== null && _props$tableViewRende !== void 0 ? _props$tableViewRende : dom, creatorButtonDom]
484
+ ...formRef.current,
485
+ getRowData,
486
+ getRowsData,
487
+ setRowData
488
+ };
489
+ }, [coverRowKey, props.name, getRowData, getRowsData, setRowData]);
490
+
491
+ /**
492
+ * 受控模式下同步表单值
493
+ * 在受控模式下,即使正在编辑的行也要同步更新,因为数据由外部完全控制
494
+ * 使用深度比较优化性能,避免频繁的序列化操作
495
+ * 注意:只有当 value 明确传递时才同步,避免覆盖表单中的初始值
496
+ */
497
+ (0, _utils.useDeepCompareEffect)(() => {
498
+ if (!props.controlled || !formRef.current) return;
499
+
500
+ // 在受控模式下,只有当 value 明确传递时才同步
501
+ // 避免在 value 为 undefined 时覆盖表单中的初始值
502
+ if (value === undefined) return;
503
+
504
+ // 在受控模式下,同步所有值(包括正在编辑的行)
505
+ // 因为数据由外部完全控制,应该同步更新
506
+ try {
507
+ if (props.name) {
508
+ // name 模式:直接设置整个数组
509
+ const namePath = [props.name].flat(1);
510
+ const newValue = (0, _util.set)({}, namePath, value);
511
+ formRef.current.setFieldsValue(newValue);
512
+ } else {
513
+ // 非 name 模式:直接设置值
514
+ const formValues = {};
515
+ value.forEach((item, index) => {
516
+ const key = getRowKey(item, index);
517
+ const keyStr = String(key);
518
+ formValues[keyStr] = item;
293
519
  });
520
+ if (Object.keys(formValues).length > 0) {
521
+ formRef.current.setFieldsValue(formValues);
522
+ }
294
523
  }
295
- };
296
- // eslint-disable-next-line react-hooks/exhaustive-deps
297
- }, [isTop, creatorButtonDom]);
298
- var editableProps = (0, _objectSpread2.default)({}, props.editable);
524
+ } catch (error) {
525
+ console.warn('Failed to sync form values in controlled mode:', error);
526
+ }
527
+ }, [value, props.controlled, props.name, getRowKey]);
299
528
 
300
529
  /**
301
- * 防止闭包的onchange
302
- *
303
- * >>>>>>为了性能好辛苦
530
+ * 同步表单实例引用
531
+ * 只在 name 模式下且 form 存在时更新
304
532
  */
305
- var newOnValueChange = (0, _utils.useRefFunction)(function (r, dataSource) {
306
- var _props$editable3, _props$editable3$onVa, _props$onValuesChange;
307
- (_props$editable3 = props.editable) === null || _props$editable3 === void 0 || (_props$editable3$onVa = _props$editable3.onValuesChange) === null || _props$editable3$onVa === void 0 || _props$editable3$onVa.call(_props$editable3, r, dataSource);
308
- (_props$onValuesChange = props.onValuesChange) === null || _props$onValuesChange === void 0 || _props$onValuesChange.call(props, dataSource, r);
309
- if (props.controlled) {
310
- var _props$onChange;
311
- props === null || props === void 0 || (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, dataSource);
533
+ (0, _react.useEffect)(() => {
534
+ if (props.name && props?.editable?.form) {
535
+ formRef.current = props.editable.form;
312
536
  }
537
+ }, [props.editable?.form, props.name]);
538
+ const {
539
+ position
540
+ } = recordCreatorProps || {};
541
+ const isTop = position === 'top';
542
+ const {
543
+ creatorButtonDom,
544
+ buttonRenderProps
545
+ } = useCreatorButton({
546
+ recordCreatorProps,
547
+ maxLength,
548
+ value,
549
+ intl,
550
+ isTop,
551
+ columnsLength: rest.columns?.length,
552
+ tableViewRender: props.tableViewRender
313
553
  });
314
- if (props !== null && props !== void 0 && props.onValuesChange || (_props$editable4 = props.editable) !== null && _props$editable4 !== void 0 && _props$editable4.onValuesChange ||
315
- // 受控模式需要触发 onchange
316
- props.controlled && props !== null && props !== void 0 && props.onChange) {
317
- editableProps.onValuesChange = newOnValueChange;
318
- }
554
+
555
+ /**
556
+ * 处理值变化回调
557
+ * 注意:受控模式下不调用 onChange,避免循环更新
558
+ * onChange 应该由外部控制,而不是在内部触发
559
+ */
560
+ const handleValuesChange = (0, _utils.useRefFunction)((r, dataSource) => {
561
+ props.editable?.onValuesChange?.(r, dataSource);
562
+ props.onValuesChange?.(dataSource, r);
563
+
564
+ // 在受控模式下,当表单值变化时也应该触发 onChange
565
+ // 这样外部可以同步更新 value,实现真正的受控
566
+ if (props.controlled && props?.onChange) {
567
+ props.onChange(dataSource);
568
+ }
569
+ // 非受控模式下,onChange 应该在 onDataSourceChange 中触发
570
+ // 这样可以确保数据已经正确更新
571
+ });
572
+
573
+ /**
574
+ * 构建可编辑属性
575
+ * 使用 useMemo 优化性能,避免不必要的重新创建
576
+ */
577
+ const editableProps = (0, _react.useMemo)(() => {
578
+ const baseProps = {
579
+ ...props.editable
580
+ };
581
+ const hasOnValuesChange = Boolean(props?.onValuesChange) || Boolean(props.editable?.onValuesChange) || Boolean(props.controlled && props?.onChange);
582
+ if (hasOnValuesChange) {
583
+ baseProps.onValuesChange = handleValuesChange;
584
+ }
585
+ return baseProps;
586
+ }, [props.editable, props.onValuesChange, props.controlled, props.onChange, handleValuesChange]);
319
587
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
320
588
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(EditableTableActionContext.Provider, {
321
589
  value: actionRef,
322
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.default, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
590
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Table.default, {
323
591
  search: false,
324
592
  options: false,
325
593
  pagination: false,
326
594
  rowKey: rowKey,
327
- revalidateOnFocus: false
328
- }, rest), buttonRenderProps), {}, {
595
+ revalidateOnFocus: false,
596
+ ...rest,
597
+ ...buttonRenderProps,
329
598
  tableLayout: "fixed",
330
599
  actionRef: actionRef,
331
600
  onChange: onTableChange,
332
- editable: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, editableProps), {}, {
333
- formProps: (0, _objectSpread2.default)({
334
- formRef: formRef
335
- }, editableProps.formProps)
336
- }),
601
+ editable: {
602
+ ...editableProps,
603
+ formProps: {
604
+ formRef,
605
+ ...editableProps.formProps
606
+ }
607
+ },
337
608
  dataSource: value,
338
- onDataSourceChange: function onDataSourceChange(dataSource) {
609
+ onDataSourceChange: dataSource => {
610
+ // setValue 会触发 onChange,但我们需要确保数据已经正确更新
611
+ // 所以先设置数据,然后手动触发 onChange
339
612
  setValue(dataSource);
613
+
340
614
  /**
341
- * 如果是top,需要重新设置一下 form,不然会导致 id 相同数据混淆
615
+ * 如果是 name 模式,需要同步表单值
616
+ * 避免表单值和数据源不一致
617
+ * 注意:不会覆盖正在编辑的行
342
618
  */
343
- if (props.name && position === 'top') {
344
- var _formRef$current6;
345
- var newValue = (0, _util.set)({}, [props.name].flat(1).filter(Boolean), dataSource);
346
- (_formRef$current6 = formRef.current) === null || _formRef$current6 === void 0 || _formRef$current6.setFieldsValue(newValue);
619
+ if (props.name && formRef.current) {
620
+ const editingKeys = props.editable?.editableKeys;
621
+ const editingKeysSet = createEditingKeysSet(editingKeys);
622
+ const namePath = [props.name].flat(1).filter(Boolean);
623
+ syncFormValuesExcludingEditing(dataSource, editingKeysSet, namePath);
624
+ }
625
+
626
+ // 在非受控模式下,通过 onDataSourceChange 触发 onChange
627
+ // 这样可以确保数据已经正确更新
628
+ if (!props.controlled && props.onChange) {
629
+ props.onChange(dataSource);
347
630
  }
348
631
  }
349
- }))
632
+ })
350
633
  }), props.name ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_form.ProFormDependency, {
351
634
  name: [props.name],
352
- children: function children(changeValue) {
353
- var _props$editable5, _props$editable5$onVa;
635
+ children: changeValue => {
636
+ // 初始化 preData
354
637
  if (!preData.current) {
355
638
  preData.current = value;
356
639
  return null;
357
640
  }
358
- var list = (0, _util.get)(changeValue, [props.name].flat(1));
359
- var changeItem = list === null || list === void 0 ? void 0 : list.find(function (item, index) {
360
- var _preData$current;
361
- return !(0, _utils.isDeepEqualReact)(item, (_preData$current = preData.current) === null || _preData$current === void 0 ? void 0 : _preData$current[index]);
641
+ const namePath = [props.name].flat(1);
642
+ const list = (0, _util.get)(changeValue, namePath);
643
+
644
+ // 添加空值检查,避免后续操作出错
645
+ if (!list || !Array.isArray(list)) {
646
+ preData.current = value;
647
+ return null;
648
+ }
649
+
650
+ // 在更新 preData 之前找到变化的项
651
+ // 使用 findIndex 可以同时获取变化的项和索引
652
+ const changeIndex = list.findIndex((item, index) => {
653
+ return !(0, _utils.isDeepEqualReact)(item, preData.current?.[index]);
362
654
  });
363
- preData.current = value;
364
- if (!changeItem) return null;
365
- // 如果不存在 preData 说明是初始化,此时不需要触发 onValuesChange
366
- props === null || props === void 0 || (_props$editable5 = props.editable) === null || _props$editable5 === void 0 || (_props$editable5$onVa = _props$editable5.onValuesChange) === null || _props$editable5$onVa === void 0 || _props$editable5$onVa.call(_props$editable5, changeItem, list);
655
+
656
+ // 只有在找到变化项时才触发回调
657
+ if (changeIndex !== -1) {
658
+ const changeItem = list[changeIndex];
659
+ props?.editable?.onValuesChange?.(changeItem, list);
660
+ }
661
+
662
+ // 在找到 changeItem 之后再更新 preData,确保后续比较正确
663
+ preData.current = list;
367
664
  return null;
368
665
  }
369
666
  }) : null]
@@ -376,38 +673,40 @@ function EditableTable(props) {
376
673
  * @param props
377
674
  */
378
675
  function FieldEditableTable(props) {
379
- var form = _form.default.useFormInstance();
380
- if (!props.name) return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditableTable, (0, _objectSpread2.default)({
676
+ const form = _form.default.useFormInstance();
677
+ if (!props.name) return /*#__PURE__*/(0, _jsxRuntime.jsx)(EditableTable, {
381
678
  tableLayout: "fixed",
382
679
  scroll: {
383
680
  x: 'max-content'
384
- }
385
- }, props));
386
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
681
+ },
682
+ ...props
683
+ });
684
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Form.Item, {
387
685
  style: {
388
686
  maxWidth: '100%'
389
687
  },
390
- shouldUpdate: function shouldUpdate(prev, next) {
391
- var name = [props.name].flat(1);
688
+ shouldUpdate: (prev, next) => {
689
+ const name = [props.name].flat(1);
392
690
  try {
393
691
  return JSON.stringify((0, _util.get)(prev, name)) !== JSON.stringify((0, _util.get)(next, name));
394
692
  } catch (error) {
395
693
  return true;
396
694
  }
397
- }
398
- }, props === null || props === void 0 ? void 0 : props.formItemProps), {}, {
695
+ },
696
+ ...props?.formItemProps,
399
697
  name: props.name,
400
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(EditableTable, (0, _objectSpread2.default)((0, _objectSpread2.default)({
698
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(EditableTable, {
401
699
  tableLayout: "fixed",
402
700
  scroll: {
403
701
  x: 'max-content'
404
- }
405
- }, props), {}, {
406
- editable: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props.editable), {}, {
702
+ },
703
+ ...props,
704
+ editable: {
705
+ ...props.editable,
407
706
  form: form
408
- })
409
- }))
410
- }));
707
+ }
708
+ })
709
+ });
411
710
  }
412
711
  FieldEditableTable.RecordCreator = RecordCreator;
413
712
  var _default = exports.default = FieldEditableTable;