@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
package/es/table/Table.js CHANGED
@@ -1,28 +1,19 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _typeof from "@babel/runtime/helpers/esm/typeof";
4
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
7
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
8
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
9
- var _excluded = ["rowKey", "tableClassName", "defaultClassName", "action", "tableColumn", "type", "pagination", "rowSelection", "size", "defaultSize", "tableStyle", "toolbarDom", "hideToolbar", "searchNode", "style", "cardProps", "alertDom", "name", "onSortChange", "onFilterChange", "options", "isLightFilter", "className", "cardBordered", "editableUtils", "getRowKey", "tableRef"],
10
- _excluded2 = ["cardBordered", "request", "className", "params", "defaultData", "headerTitle", "postData", "ghost", "pagination", "actionRef", "columns", "toolBarRender", "optionsRender", "onLoad", "onRequestError", "style", "cardProps", "tableStyle", "tableClassName", "options", "search", "name", "onLoadingChange", "rowSelection", "beforeSearchSubmit", "tableAlertRender", "defaultClassName", "formRef", "type", "columnEmptyText", "toolbar", "rowKey", "manualRequest", "polling", "tooltip", "revalidateOnFocus", "searchFormRender"];
1
+ import { useControlledState } from '@rc-component/util';
11
2
  import { ConfigProvider, Table } from 'antd';
12
- import classNames from 'classnames';
3
+ import { clsx } from 'clsx';
13
4
  import isEmpty from 'lodash-es/isEmpty';
14
5
  import isEqual from 'lodash-es/isEqual';
15
- import React, { useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
6
+ import React, { useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
16
7
  import ProCard from "../card";
17
8
  import ValueTypeToComponent from "../field/ValueTypeToComponent";
18
9
  import ProForm, { GridContext } from "../form";
19
10
  import ProConfigContext, { ProConfigProvider, proTheme, useIntl } from "../provider";
20
- import { ErrorBoundary, editableRowByKey, omitUndefined, recordKeyToString, stringify, useDeepCompareEffect, useDeepCompareEffectDebounce, useEditableArray, useMountMergeState } from "../utils";
11
+ import { editableRowByKey, ErrorBoundary, omitUndefined, recordKeyToString, stringify, useDeepCompareEffect, useDeepCompareEffectDebounce, useEditableArray, useRefFunction } from "../utils";
21
12
  import Alert from "./components/Alert";
22
- import FormRender from "./components/Form";
23
- import Toolbar from "./components/ToolBar";
24
13
  import { Container, TableContext } from "./Store/Provide";
25
14
  import { useStyle } from "./style";
15
+ import { TableSearch } from "./TableSearch";
16
+ import { TableToolbar } from "./TableToolbar";
26
17
  import useFetchData from "./useFetchData";
27
18
  import { flattenColumns, genColumnKey, getServerFilterResult, getServerSorterResult, isBordered, mergePagination, parseServerDefaultColumnConfig, useActionType } from "./utils";
28
19
  import { columnSort } from "./utils/columnSort";
@@ -31,454 +22,349 @@ import { jsx as _jsx } from "react/jsx-runtime";
31
22
  import { createElement as _createElement } from "react";
32
23
  import { Fragment as _Fragment } from "react/jsx-runtime";
33
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
34
- function TableRender(props) {
35
- var rowKey = props.rowKey,
36
- tableClassName = props.tableClassName,
37
- defaultClassName = props.defaultClassName,
38
- action = props.action,
39
- tableColumns = props.tableColumn,
40
- type = props.type,
41
- pagination = props.pagination,
42
- rowSelection = props.rowSelection,
43
- size = props.size,
44
- defaultSize = props.defaultSize,
45
- tableStyle = props.tableStyle,
46
- toolbarDom = props.toolbarDom,
47
- hideToolbar = props.hideToolbar,
48
- searchNode = props.searchNode,
49
- style = props.style,
50
- propsCardProps = props.cardProps,
51
- alertDom = props.alertDom,
52
- name = props.name,
53
- onSortChange = props.onSortChange,
54
- onFilterChange = props.onFilterChange,
55
- options = props.options,
56
- isLightFilter = props.isLightFilter,
57
- className = props.className,
58
- cardBordered = props.cardBordered,
59
- editableUtils = props.editableUtils,
60
- getRowKey = props.getRowKey,
61
- tableRef = props.tableRef,
62
- rest = _objectWithoutProperties(props, _excluded);
63
- var counter = useContext(TableContext);
64
-
65
- /** 需要遍历一下,不然不支持嵌套表格 */
66
- var columns = useMemo(function () {
67
- var loopFilter = function loopFilter(column) {
68
- return column.map(function (item) {
69
- // 删掉不应该显示的
70
- var columnKey = genColumnKey(item.key, item.index);
71
- var config = counter.columnsMap[columnKey];
72
- if (config && config.show === false) {
73
- return false;
74
- }
75
- if (item.children) {
76
- return _objectSpread(_objectSpread({}, item), {}, {
77
- children: loopFilter(item.children)
78
- });
79
- }
80
- return item;
81
- }).filter(Boolean);
25
+ function getEditableDataSource({
26
+ dataSource,
27
+ editableUtils,
28
+ pagination,
29
+ getRowKey,
30
+ childrenColumnName
31
+ }) {
32
+ const baseData = Array.isArray(dataSource) ? [...dataSource] : [];
33
+ const newLineConfig = editableUtils?.newLineRecord;
34
+ const defaultValue = newLineConfig?.defaultValue;
35
+ if (!newLineConfig || !defaultValue) {
36
+ return baseData;
37
+ }
38
+ const {
39
+ options: newLineOptions
40
+ } = newLineConfig;
41
+ const childrenName = childrenColumnName || 'children';
42
+ if (newLineOptions?.parentKey) {
43
+ const newRow = {
44
+ ...defaultValue,
45
+ map_row_parentKey: recordKeyToString(newLineOptions.parentKey)?.toString()
82
46
  };
83
- return loopFilter(tableColumns);
84
- }, [counter.columnsMap, tableColumns]);
85
-
86
- // 需要进行筛选的列
87
- var useFilterColumns = useMemo(function () {
88
- var _columns = flattenColumns(columns);
89
- return _columns.filter(function (column) {
90
- return !!column.filters;
91
- });
92
- }, [columns]);
93
-
94
- /**
95
- * 如果是分页的新增,总是加到最后一行
96
- *
97
- * @returns
98
- */
99
- var editableDataSource = function editableDataSource(dataSource) {
100
- var _ref = editableUtils.newLineRecord || {},
101
- newLineOptions = _ref.options,
102
- row = _ref.defaultValue;
103
- var isNewLineRecordAtTop = (newLineOptions === null || newLineOptions === void 0 ? void 0 : newLineOptions.position) === 'top';
104
- if (newLineOptions !== null && newLineOptions !== void 0 && newLineOptions.parentKey) {
105
- var _recordKeyToString, _props$expandable;
106
- var actionProps = {
107
- data: dataSource,
108
- getRowKey: getRowKey,
109
- row: _objectSpread(_objectSpread({}, row), {}, {
110
- map_row_parentKey: (_recordKeyToString = recordKeyToString(newLineOptions.parentKey)) === null || _recordKeyToString === void 0 ? void 0 : _recordKeyToString.toString()
111
- }),
112
- key: newLineOptions === null || newLineOptions === void 0 ? void 0 : newLineOptions.recordKey,
113
- childrenColumnName: ((_props$expandable = props.expandable) === null || _props$expandable === void 0 ? void 0 : _props$expandable.childrenColumnName) || 'children'
114
- };
115
- return editableRowByKey(actionProps, isNewLineRecordAtTop ? 'top' : 'update');
116
- }
117
- if (isNewLineRecordAtTop) {
118
- return [row].concat(_toConsumableArray(action.dataSource));
119
- }
120
- // 如果有分页的功能,我们加到这一页的末尾
121
- if (pagination && pagination !== null && pagination !== void 0 && pagination.current && pagination !== null && pagination !== void 0 && pagination.pageSize) {
122
- var newDataSource = _toConsumableArray(action.dataSource);
123
- if ((pagination === null || pagination === void 0 ? void 0 : pagination.pageSize) > newDataSource.length) {
124
- newDataSource.push(row);
125
- return newDataSource;
126
- }
127
- newDataSource.splice((pagination === null || pagination === void 0 ? void 0 : pagination.current) * (pagination === null || pagination === void 0 ? void 0 : pagination.pageSize) - 1, 0, row);
128
- return newDataSource;
129
- }
130
- return [].concat(_toConsumableArray(action.dataSource), [row]);
131
- };
132
- var getTableProps = function getTableProps() {
133
- return _objectSpread(_objectSpread({}, rest), {}, {
134
- size: size,
135
- rowSelection: rowSelection === false ? undefined : rowSelection,
136
- className: tableClassName,
137
- style: tableStyle,
138
- columns: columns,
139
- loading: action.loading,
140
- dataSource: editableUtils.newLineRecord ? editableDataSource(action.dataSource) : action.dataSource,
141
- pagination: pagination,
142
- onChange: function onChange(changePagination, filters, sorter, extra) {
143
- var _rest$onChange;
144
- (_rest$onChange = rest.onChange) === null || _rest$onChange === void 0 || _rest$onChange.call(rest, changePagination, filters, sorter, extra);
145
-
146
- // 传递服务端筛选数据
147
- var serverFilter = getServerFilterResult(filters, useFilterColumns);
148
- onFilterChange(omitUndefined(serverFilter));
149
-
150
- // 传递服务端排序数据
151
- var serverSorter = getServerSorterResult(sorter);
152
- onSortChange(omitUndefined(serverSorter));
153
- }
154
- });
155
- };
156
-
157
- /**
158
- * 是否需要 card 来包裹
159
- */
160
- var notNeedCardDom = useMemo(function () {
161
- if (props.search === false && !props.headerTitle && props.toolBarRender === false) {
162
- return true;
47
+ const actionProps = {
48
+ data: baseData,
49
+ getRowKey,
50
+ row: newRow,
51
+ key: newLineOptions?.recordKey ?? getRowKey(newRow, -1),
52
+ childrenColumnName: childrenName
53
+ };
54
+ return editableRowByKey(actionProps, newLineOptions?.position === 'top' ? 'top' : 'update');
55
+ }
56
+ if (newLineOptions?.position === 'top') {
57
+ return [defaultValue, ...baseData];
58
+ }
59
+ const pageConfig = pagination && typeof pagination === 'object' ? pagination : undefined;
60
+ if (pageConfig?.current && pageConfig?.pageSize) {
61
+ if (pageConfig.pageSize > baseData.length) {
62
+ baseData.push(defaultValue);
63
+ return baseData;
163
64
  }
164
- return false;
165
- }, []);
166
-
167
- /** 默认的 table dom,如果是编辑模式,外面还要包个 form */
168
- var baseTableDom = /*#__PURE__*/_jsx(GridContext.Provider, {
169
- value: {
170
- grid: false,
171
- colProps: undefined,
172
- rowProps: undefined
173
- },
174
- children: /*#__PURE__*/_jsx(Table, _objectSpread(_objectSpread({}, getTableProps()), {}, {
175
- rowKey: rowKey,
176
- ref: tableRef
177
- }))
178
- });
179
-
180
- /** 自定义的 render */
181
- var tableDom = props.tableViewRender ? props.tableViewRender(_objectSpread(_objectSpread({}, getTableProps()), {}, {
182
- rowSelection: rowSelection !== false ? rowSelection : undefined
183
- }), baseTableDom) : baseTableDom;
65
+ const insertIndex = pageConfig.current * pageConfig.pageSize - 1;
66
+ baseData.splice(insertIndex, 0, defaultValue);
67
+ return baseData;
68
+ }
69
+ baseData.push(defaultValue);
70
+ return baseData;
71
+ }
72
+ function getTableCardBodyStyle({
73
+ propsCardProps,
74
+ notNeedCardDom,
75
+ name,
76
+ hideToolbar,
77
+ toolbarDom
78
+ }) {
79
+ // cardProps === false 或存在 name 的场景不需要额外 padding 处理
80
+ if (propsCardProps === false || notNeedCardDom || !!name) {
81
+ return {};
82
+ }
184
83
 
185
- /**
186
- * 这段代码使用了 useMemo 进行了性能优化,根据 props.editable 和 props.name 的不同情况,渲染不同的页面组件。
187
- * 当 props.editable 为 true 并且 props.name 不存在时,渲染一个带有表单和工具栏的页面组件,否则只渲染工具栏和表格组件。
188
- * renderContent 函数会在 alertDom、props.loading、props.editable、tableDom、toolbarDom 发生变化时重新执行。
189
- * */
190
- var tableContentDom = useMemo(function () {
191
- if (props.editable && !props.name) {
192
- var _props$editable, _props$editable2, _props$editable3;
193
- return /*#__PURE__*/_jsxs(_Fragment, {
194
- children: [toolbarDom, alertDom, /*#__PURE__*/_createElement(ProForm, _objectSpread(_objectSpread({}, (_props$editable = props.editable) === null || _props$editable === void 0 ? void 0 : _props$editable.formProps), {}, {
195
- formRef: (_props$editable2 = props.editable) === null || _props$editable2 === void 0 || (_props$editable2 = _props$editable2.formProps) === null || _props$editable2 === void 0 ? void 0 : _props$editable2.formRef,
196
- component: false,
197
- form: (_props$editable3 = props.editable) === null || _props$editable3 === void 0 ? void 0 : _props$editable3.form,
198
- onValuesChange: editableUtils.onValuesChange,
199
- key: "table",
200
- submitter: false,
201
- omitNil: false,
202
- dateFormatter: props.dateFormatter
203
- }), tableDom)]
204
- });
205
- }
206
- return /*#__PURE__*/_jsxs(_Fragment, {
207
- children: [toolbarDom, alertDom, tableDom]
208
- });
209
- // eslint-disable-next-line react-hooks/exhaustive-deps
210
- }, [alertDom, props.loading, !!props.editable, tableDom, toolbarDom]);
211
- var cardBodyStyle = useMemo(function () {
212
- if (propsCardProps === false || notNeedCardDom === true || !!props.name) return {};
213
- if (hideToolbar) {
214
- return {
215
- padding: 0
216
- };
217
- }
218
- if (toolbarDom) {
219
- return {
220
- paddingBlockStart: 0
221
- };
222
- }
223
- if (toolbarDom && pagination === false) {
224
- return {
225
- paddingBlockStart: 0
226
- };
227
- }
228
- // if (!toolbarDom)
84
+ // 显式隐藏 toolbar 时,统一不留 padding(避免误用 paddingBlockStart)
85
+ if (hideToolbar) {
229
86
  return {
230
87
  padding: 0
231
88
  };
232
- }, [notNeedCardDom, pagination, props.name, propsCardProps, toolbarDom, hideToolbar]);
233
-
234
- /** Table 区域的 dom,为了方便 render */
235
- var tableAreaDom =
236
- // cardProps 或者 有了name 就不需要这个padding了,不然会导致不好对齐
237
- propsCardProps === false || notNeedCardDom === true || !!props.name ? tableContentDom : /*#__PURE__*/_jsx(ProCard, _objectSpread(_objectSpread({
238
- ghost: props.ghost,
239
- variant: isBordered('table', cardBordered) ? 'outlined' : 'borderless',
240
- bodyStyle: cardBodyStyle
241
- }, propsCardProps), {}, {
242
- children: tableContentDom
243
- }));
244
- var renderTable = function renderTable() {
245
- if (props.tableRender) {
246
- return props.tableRender(props, tableAreaDom, {
247
- toolbar: toolbarDom || undefined,
248
- alert: alertDom || undefined,
249
- table: tableDom || undefined
250
- });
251
- }
252
- return tableAreaDom;
253
- };
254
- var proTableDom = /*#__PURE__*/_jsxs("div", {
255
- className: classNames(className, _defineProperty({}, "".concat(defaultClassName, "-polling"), action.pollingLoading)),
256
- style: style,
257
- ref: counter.rootDomRef,
258
- children: [isLightFilter ? null : searchNode, type !== 'form' && props.tableExtraRender && /*#__PURE__*/_jsx("div", {
259
- className: classNames(className, "".concat(defaultClassName, "-extra")),
260
- children: props.tableExtraRender(props, action.dataSource || [])
261
- }), type !== 'form' && renderTable()]
262
- });
89
+ }
263
90
 
264
- // 如果不需要的全屏,ConfigProvider 没有意义
265
- if (!options || !(options !== null && options !== void 0 && options.fullScreen)) {
266
- return proTableDom;
91
+ // toolbar 的场景,需要让 ProCard body 顶部与 toolbar 对齐
92
+ if (toolbarDom) {
93
+ return {
94
+ paddingBlockStart: 0
95
+ };
267
96
  }
268
- return /*#__PURE__*/_jsx(ConfigProvider, {
269
- getPopupContainer: function getPopupContainer() {
270
- return counter.rootDomRef.current || document.body;
271
- },
272
- children: proTableDom
273
- });
97
+ return {
98
+ padding: 0
99
+ };
100
+ }
101
+ function useRowKey({
102
+ rowKey,
103
+ name
104
+ }) {
105
+ return useMemo(() => {
106
+ if (typeof rowKey === 'function') {
107
+ return rowKey;
108
+ }
109
+ return (record, index) => {
110
+ if (index === -1) {
111
+ return record?.[rowKey];
112
+ }
113
+ if (name) {
114
+ return index?.toString();
115
+ }
116
+ return record?.[rowKey] ?? index?.toString();
117
+ };
118
+ }, [name, rowKey]);
119
+ }
120
+ function useMergedPagination({
121
+ propsPagination,
122
+ action,
123
+ intl,
124
+ request,
125
+ type
126
+ }) {
127
+ return useMemo(() => {
128
+ const newPropsPagination = propsPagination === false ? false : {
129
+ ...(propsPagination || {})
130
+ };
131
+ const pageConfig = {
132
+ ...action.pageInfo,
133
+ setPageInfo: ({
134
+ pageSize,
135
+ current
136
+ }) => {
137
+ const {
138
+ pageInfo
139
+ } = action;
140
+ if (pageSize === pageInfo.pageSize || pageInfo.current === 1) {
141
+ action.setPageInfo({
142
+ pageSize,
143
+ current
144
+ });
145
+ return;
146
+ }
147
+ if (request) action.setDataSource([]);
148
+ action.setPageInfo({
149
+ pageSize,
150
+ current: type === 'list' ? current : 1
151
+ });
152
+ }
153
+ };
154
+ if (request && newPropsPagination) {
155
+ delete newPropsPagination.onChange;
156
+ delete newPropsPagination.onShowSizeChange;
157
+ }
158
+ return mergePagination(newPropsPagination, pageConfig, intl);
159
+ }, [action, intl, propsPagination, request, type]);
160
+ }
161
+ function useAlertDom({
162
+ propsRowSelection,
163
+ selectedRowKeys,
164
+ selectedRows,
165
+ onCleanSelected,
166
+ tableAlertOptionRender,
167
+ tableAlertRender
168
+ }) {
169
+ return useMemo(() => {
170
+ if (propsRowSelection === false) {
171
+ return null;
172
+ }
173
+ return /*#__PURE__*/_jsx(Alert, {
174
+ selectedRowKeys: selectedRowKeys,
175
+ selectedRows: selectedRows,
176
+ onCleanSelected: onCleanSelected,
177
+ alertOptionRender: tableAlertOptionRender,
178
+ alertInfoRender: tableAlertRender,
179
+ alwaysShowAlert: propsRowSelection?.alwaysShowAlert
180
+ });
181
+ }, [onCleanSelected, propsRowSelection, selectedRowKeys, selectedRows, tableAlertOptionRender, tableAlertRender]);
274
182
  }
275
- var emptyObj = {};
276
- var ProTable = function ProTable(props) {
277
- var _props$expandable2;
278
- var cardBordered = props.cardBordered,
279
- request = props.request,
280
- propsClassName = props.className,
281
- _props$params = props.params,
282
- params = _props$params === void 0 ? emptyObj : _props$params,
283
- defaultData = props.defaultData,
284
- headerTitle = props.headerTitle,
285
- postData = props.postData,
286
- ghost = props.ghost,
287
- propsPagination = props.pagination,
288
- propsActionRef = props.actionRef,
289
- _props$columns = props.columns,
290
- propsColumns = _props$columns === void 0 ? [] : _props$columns,
291
- toolBarRender = props.toolBarRender,
292
- optionsRender = props.optionsRender,
293
- onLoad = props.onLoad,
294
- onRequestError = props.onRequestError,
295
- style = props.style,
296
- cardProps = props.cardProps,
297
- tableStyle = props.tableStyle,
298
- tableClassName = props.tableClassName,
299
- options = props.options,
300
- search = props.search,
301
- isEditorTable = props.name,
302
- onLoadingChange = props.onLoadingChange,
303
- _props$rowSelection = props.rowSelection,
304
- propsRowSelection = _props$rowSelection === void 0 ? false : _props$rowSelection,
305
- beforeSearchSubmit = props.beforeSearchSubmit,
306
- tableAlertRender = props.tableAlertRender,
307
- defaultClassName = props.defaultClassName,
308
- propRef = props.formRef,
309
- _props$type = props.type,
310
- type = _props$type === void 0 ? 'table' : _props$type,
311
- _props$columnEmptyTex = props.columnEmptyText,
312
- columnEmptyText = _props$columnEmptyTex === void 0 ? '-' : _props$columnEmptyTex,
313
- toolbar = props.toolbar,
314
- rowKey = props.rowKey,
315
- manualRequest = props.manualRequest,
316
- polling = props.polling,
317
- tooltip = props.tooltip,
318
- _props$revalidateOnFo = props.revalidateOnFocus,
319
- revalidateOnFocus = _props$revalidateOnFo === void 0 ? false : _props$revalidateOnFo,
320
- searchFormRender = props.searchFormRender,
321
- rest = _objectWithoutProperties(props, _excluded2);
322
- var _useStyle = useStyle(props.defaultClassName),
323
- wrapSSR = _useStyle.wrapSSR,
324
- hashId = _useStyle.hashId;
325
- var className = classNames(defaultClassName, propsClassName, hashId);
183
+ const emptyObj = {};
184
+ const ProTable = props => {
185
+ const {
186
+ cardBordered,
187
+ request,
188
+ className: propsClassName,
189
+ params = emptyObj,
190
+ defaultData,
191
+ headerTitle,
192
+ postData,
193
+ ghost,
194
+ pagination: propsPagination,
195
+ actionRef: propsActionRef,
196
+ toolBarRender,
197
+ optionsRender,
198
+ onLoad,
199
+ onRequestError,
200
+ style,
201
+ cardProps,
202
+ tableStyle,
203
+ tableClassName,
204
+ options,
205
+ search,
206
+ name: isEditorTable,
207
+ onLoadingChange,
208
+ rowSelection: propsRowSelection = false,
209
+ beforeSearchSubmit,
210
+ tableAlertRender,
211
+ defaultClassName,
212
+ formRef: propRef,
213
+ type = 'table',
214
+ columnEmptyText = '-',
215
+ toolbar,
216
+ rowKey,
217
+ manualRequest,
218
+ polling,
219
+ tooltip,
220
+ revalidateOnFocus = false,
221
+ searchFormRender,
222
+ ...rest
223
+ } = props;
224
+ const {
225
+ wrapSSR,
226
+ hashId
227
+ } = useStyle(props.defaultClassName);
228
+ const className = clsx(defaultClassName, propsClassName, hashId);
326
229
 
327
230
  /** 通用的来操作子节点的工具类 */
328
- var actionRef = useRef();
231
+ const actionRef = useRef();
329
232
  // antd Table 实例 ref(仅用于转发 scrollTo 能力)
330
- var antTableRef = useRef(null);
331
- var defaultFormRef = useRef();
332
- var formRef = propRef || defaultFormRef;
333
- useImperativeHandle(propsActionRef, function () {
334
- return actionRef.current;
335
- });
233
+ const antTableRef = useRef(null);
234
+ const defaultFormRef = useRef();
235
+ const formRef = propRef || defaultFormRef;
236
+ useImperativeHandle(propsActionRef, () => actionRef.current);
336
237
 
337
238
  /** 单选多选的相关逻辑 */
338
- var _useMountMergeState = useMountMergeState(propsRowSelection ? (propsRowSelection === null || propsRowSelection === void 0 ? void 0 : propsRowSelection.defaultSelectedRowKeys) || [] : undefined, {
339
- value: propsRowSelection ? propsRowSelection.selectedRowKeys : undefined
340
- }),
341
- _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),
342
- selectedRowKeys = _useMountMergeState2[0],
343
- setSelectedRowKeys = _useMountMergeState2[1];
344
- var _useMountMergeState3 = useMountMergeState(function () {
345
- // 如果手动模式,或者 search 不存在的时候设置为 undefined
346
- // undefined 就不会触发首次加载
347
- if (manualRequest || search !== false) {
348
- return undefined;
349
- }
350
- return {};
351
- }),
352
- _useMountMergeState4 = _slicedToArray(_useMountMergeState3, 2),
353
- formSearch = _useMountMergeState4[0],
354
- setFormSearch = _useMountMergeState4[1];
355
- var _useMemo = useMemo(function () {
356
- var _parseServerDefaultCo = parseServerDefaultColumnConfig(propsColumns),
357
- sort = _parseServerDefaultCo.sort,
358
- filter = _parseServerDefaultCo.filter;
359
- return {
360
- defaultProFilter: filter,
361
- defaultProSort: sort
362
- };
363
- }, [propsColumns]),
364
- defaultProFilter = _useMemo.defaultProFilter,
365
- defaultProSort = _useMemo.defaultProSort;
366
- var _useMountMergeState5 = useMountMergeState(defaultProFilter),
367
- _useMountMergeState6 = _slicedToArray(_useMountMergeState5, 2),
368
- proFilter = _useMountMergeState6[0],
369
- setProFilter = _useMountMergeState6[1];
370
- var _useMountMergeState7 = useMountMergeState(defaultProSort),
371
- _useMountMergeState8 = _slicedToArray(_useMountMergeState7, 2),
372
- proSort = _useMountMergeState8[0],
373
- setProSort = _useMountMergeState8[1];
374
- var intl = useIntl();
239
+ const [selectedRowKeys, setSelectedRowKeys] = useControlledState(propsRowSelection ? propsRowSelection?.defaultSelectedRowKeys || [] : undefined, propsRowSelection ? propsRowSelection.selectedRowKeys : undefined);
240
+ const [formSearch, setFormSearch] = useState(() => {
241
+ // 如果手动模式,或者 search 不存在的时候设置为 undefined
242
+ // undefined 就不会触发首次加载
243
+ if (manualRequest || search !== false) {
244
+ return undefined;
245
+ }
246
+ return {};
247
+ });
248
+
249
+ /**
250
+ * `actionRef.current?.reset()` 会在同一事件循环里同步调用 `action.reload()`。
251
+ * 由于 React state 更新是异步的,如果仅 setState,reload 可能仍读取到旧的 formSearch。
252
+ * 使用 ref 作为请求参数的同步来源,保证 reset/toolbar 等场景下参数与表单展示一致。
253
+ */
254
+ const formSearchRef = useRef(formSearch);
255
+ const setFormSearchWithRef = useRefFunction(next => {
256
+ const nextValue = typeof next === 'function' ? next(formSearchRef.current) : next;
257
+ formSearchRef.current = nextValue;
258
+ setFormSearch(nextValue);
259
+ });
260
+ const {
261
+ columns: propsColumns = [],
262
+ columnsState
263
+ } = props;
264
+ const {
265
+ defaultProFilter,
266
+ defaultProSort
267
+ } = useMemo(() => {
268
+ const {
269
+ sort,
270
+ filter
271
+ } = parseServerDefaultColumnConfig(flattenColumns(propsColumns));
272
+ return {
273
+ defaultProFilter: filter,
274
+ defaultProSort: sort
275
+ };
276
+ }, [propsColumns]);
277
+ const [proFilter, setProFilter] = useState(defaultProFilter);
278
+ const [proSort, setProSort] = useState(defaultProSort);
279
+
280
+ /**
281
+ * 只有在 proColumns 变化的时候,才会重新更新 proFilter 和 proSort
282
+ * 这样可以避免 columns 变化的时候,filter 和 sort 被重置
283
+ */
284
+ useDeepCompareEffect(() => {
285
+ setProFilter(defaultProFilter);
286
+ setProSort(defaultProSort);
287
+ }, [defaultProFilter, defaultProSort]);
288
+ const intl = useIntl();
375
289
 
376
290
  /** 需要初始化 不然默认可能报错 这里取了 defaultCurrent 和 current 为了保证不会重复刷新 */
377
- var fetchPagination = _typeof(propsPagination) === 'object' ? propsPagination : {
291
+ const fetchPagination = typeof propsPagination === 'object' ? propsPagination : {
378
292
  defaultCurrent: 1,
379
293
  defaultPageSize: 20,
380
294
  pageSize: 20,
381
295
  current: 1
382
296
  };
383
- var counter = useContext(TableContext);
297
+ const counter = useContext(TableContext);
384
298
 
385
299
  // ============================ useFetchData ============================
386
- var fetchData = useMemo(function () {
300
+ const fetchData = useMemo(() => {
387
301
  if (!request) return undefined;
388
- return /*#__PURE__*/function () {
389
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(pageParams) {
390
- var actionParams, response;
391
- return _regeneratorRuntime().wrap(function _callee$(_context) {
392
- while (1) switch (_context.prev = _context.next) {
393
- case 0:
394
- actionParams = _objectSpread(_objectSpread(_objectSpread({}, pageParams || {}), formSearch), params); // eslint-disable-next-line no-underscore-dangle
395
- delete actionParams._timestamp;
396
- _context.next = 4;
397
- return request(actionParams, proSort, proFilter);
398
- case 4:
399
- response = _context.sent;
400
- return _context.abrupt("return", response);
401
- case 6:
402
- case "end":
403
- return _context.stop();
404
- }
405
- }, _callee);
406
- }));
407
- return function (_x) {
408
- return _ref2.apply(this, arguments);
302
+ return async pageParams => {
303
+ const actionParams = {
304
+ ...(pageParams || {}),
305
+ ...(formSearchRef.current || {}),
306
+ ...params
409
307
  };
410
- }();
308
+
309
+ // eslint-disable-next-line no-underscore-dangle
310
+ delete actionParams._timestamp;
311
+ const response = await request(actionParams, proSort, proFilter);
312
+ return response;
313
+ };
411
314
  }, [formSearch, params, proFilter, proSort, request]);
412
- var action = useFetchData(fetchData, defaultData, {
315
+ const action = useFetchData(fetchData, defaultData, {
413
316
  pageInfo: propsPagination === false ? false : fetchPagination,
414
317
  loading: props.loading,
415
318
  dataSource: props.dataSource,
416
319
  onDataSourceChange: props.onDataSourceChange,
417
- onLoad: onLoad,
418
- onLoadingChange: onLoadingChange,
419
- onRequestError: onRequestError,
420
- postData: postData,
421
- revalidateOnFocus: revalidateOnFocus,
320
+ onLoad,
321
+ onLoadingChange,
322
+ onRequestError,
323
+ postData,
324
+ revalidateOnFocus,
422
325
  manual: formSearch === undefined,
423
- polling: polling,
326
+ polling,
424
327
  effects: [stringify(params), stringify(formSearch), stringify(proFilter), stringify(proSort)],
425
328
  debounceTime: props.debounceTime,
426
- onPageInfoChange: function onPageInfoChange(pageInfo) {
427
- var _propsPagination$onCh, _propsPagination$onSh;
329
+ onPageInfoChange: pageInfo => {
428
330
  if (!propsPagination || !fetchData) return;
429
331
 
430
332
  // 总是触发一下 onChange 和 onShowSizeChange
431
333
  // 目前只有 List 和 Table 支持分页, List 有分页的时候打断 Table 的分页
432
- propsPagination === null || propsPagination === void 0 || (_propsPagination$onCh = propsPagination.onChange) === null || _propsPagination$onCh === void 0 || _propsPagination$onCh.call(propsPagination, pageInfo.current, pageInfo.pageSize);
433
- propsPagination === null || propsPagination === void 0 || (_propsPagination$onSh = propsPagination.onShowSizeChange) === null || _propsPagination$onSh === void 0 || _propsPagination$onSh.call(propsPagination, pageInfo.current, pageInfo.pageSize);
334
+ propsPagination?.onChange?.(pageInfo.current, pageInfo.pageSize);
335
+ propsPagination?.onShowSizeChange?.(pageInfo.current, pageInfo.pageSize);
434
336
  }
435
337
  });
436
338
  // ============================ END ============================
437
339
 
438
340
  /** 聚焦的时候重新请求数据,这样可以保证数据都是最新的。 */
439
- useEffect(function () {
440
- var _props$form;
341
+ useEffect(() => {
441
342
  // 手动模式和 request 为空都不生效
442
- if (props.manualRequest || !props.request || !revalidateOnFocus || (_props$form = props.form) !== null && _props$form !== void 0 && _props$form.ignoreRules) return;
343
+ if (props.manualRequest || !props.request || !revalidateOnFocus || props.form?.ignoreRules) return;
443
344
 
444
345
  // 聚焦时重新请求事件
445
- var visibilitychange = function visibilitychange() {
346
+ const visibilitychange = () => {
446
347
  if (document.visibilityState === 'visible') {
447
348
  action.reload();
448
349
  }
449
350
  };
450
351
  document.addEventListener('visibilitychange', visibilitychange);
451
- return function () {
452
- return document.removeEventListener('visibilitychange', visibilitychange);
453
- };
352
+ return () => document.removeEventListener('visibilitychange', visibilitychange);
454
353
  // eslint-disable-next-line react-hooks/exhaustive-deps
455
354
  }, []);
456
355
 
457
356
  /** SelectedRowKeys受控处理selectRows */
458
- var preserveRecordsRef = React.useRef(new Map());
357
+ const preserveRecordsRef = React.useRef(new Map());
459
358
 
460
359
  // ============================ RowKey ============================
461
- var getRowKey = React.useMemo(function () {
462
- if (typeof rowKey === 'function') {
463
- return rowKey;
464
- }
465
- return function (record, index) {
466
- var _ref3;
467
- if (index === -1) {
468
- return record === null || record === void 0 ? void 0 : record[rowKey];
469
- }
470
- // 如果 props 中有name 的话,用index 来做行号,这样方便转化为 index
471
- if (props.name) {
472
- return index === null || index === void 0 ? void 0 : index.toString();
473
- }
474
- return (_ref3 = record === null || record === void 0 ? void 0 : record[rowKey]) !== null && _ref3 !== void 0 ? _ref3 : index === null || index === void 0 ? void 0 : index.toString();
475
- };
476
- }, [props.name, rowKey]);
477
- useMemo(function () {
478
- var _action$dataSource;
479
- if ((_action$dataSource = action.dataSource) !== null && _action$dataSource !== void 0 && _action$dataSource.length) {
480
- var keys = action.dataSource.map(function (data) {
481
- var dataRowKey = getRowKey(data, -1);
360
+ const getRowKey = useRowKey({
361
+ rowKey,
362
+ name: props.name
363
+ });
364
+ useMemo(() => {
365
+ if (action.dataSource?.length) {
366
+ const keys = action.dataSource.map(data => {
367
+ const dataRowKey = getRowKey(data, -1);
482
368
  preserveRecordsRef.current.set(dataRowKey, data);
483
369
  return dataRowKey;
484
370
  });
@@ -488,44 +374,26 @@ var ProTable = function ProTable(props) {
488
374
  }, [action.dataSource, getRowKey]);
489
375
 
490
376
  /** 页面编辑的计算 */
491
- var pagination = useMemo(function () {
492
- var newPropsPagination = propsPagination === false ? false : _objectSpread({}, propsPagination);
493
- var pageConfig = _objectSpread(_objectSpread({}, action.pageInfo), {}, {
494
- setPageInfo: function setPageInfo(_ref4) {
495
- var pageSize = _ref4.pageSize,
496
- current = _ref4.current;
497
- var pageInfo = action.pageInfo;
498
-
499
- // pageSize 发生改变,并且你不是在第一页,切回到第一页
500
- // 这样可以防止出现 跳转到一个空的数据页的问题
501
- if (pageSize === pageInfo.pageSize || pageInfo.current === 1) {
502
- action.setPageInfo({
503
- pageSize: pageSize,
504
- current: current
505
- });
506
- return;
507
- }
377
+ const pagination = useMergedPagination({
378
+ propsPagination,
379
+ action,
380
+ intl,
381
+ request,
382
+ type
383
+ });
508
384
 
509
- // 通过request的时候清空数据,然后刷新不然可能会导致 pageSize 没有数据多
510
- if (request) action.setDataSource([]);
511
- action.setPageInfo({
512
- pageSize: pageSize,
513
- // 目前只有 List 和 Table 支持分页, List 有分页的时候 还是使用之前的当前页码
514
- current: type === 'list' ? current : 1
515
- });
516
- }
517
- });
518
- if (request && newPropsPagination) {
519
- delete newPropsPagination.onChange;
520
- delete newPropsPagination.onShowSizeChange;
385
+ // 监听 pagination 的变化,修正 pageSize
386
+ useDeepCompareEffect(() => {
387
+ if (pagination && (pagination.current !== action.pageInfo.current || pagination.pageSize !== action.pageInfo.pageSize)) {
388
+ action.setPageInfo({
389
+ current: pagination.current,
390
+ pageSize: pagination.pageSize
391
+ });
521
392
  }
522
- return mergePagination(newPropsPagination, pageConfig, intl);
523
- // eslint-disable-next-line react-hooks/exhaustive-deps
524
- }, [propsPagination, action, intl]);
525
- useDeepCompareEffect(function () {
526
- var _action$pageInfo;
393
+ }, [pagination]);
394
+ useDeepCompareEffect(() => {
527
395
  // request 存在且params不为空,且已经请求过数据才需要设置。
528
- if (props.request && !isEmpty(params) && action.dataSource && !isEqual(action.dataSource, defaultData) && (action === null || action === void 0 || (_action$pageInfo = action.pageInfo) === null || _action$pageInfo === void 0 ? void 0 : _action$pageInfo.current) !== 1) {
396
+ if (props.request && !isEmpty(params) && action.dataSource && !isEqual(action.dataSource, defaultData) && action?.pageInfo?.current !== 1) {
529
397
  action.setPageInfo({
530
398
  current: 1
531
399
  });
@@ -536,56 +404,66 @@ var ProTable = function ProTable(props) {
536
404
  // 设置 name 到 store 中,里面用了 ref ,所以不用担心直接 set
537
405
  counter.setPrefixName(props.name);
538
406
 
407
+ // 设置 columnsState 到 store 中(仅在受控 value 时同步,避免在仅传 onChange 时用 {} 覆盖默认 state 导致多余 onChange)
408
+ useEffect(() => {
409
+ if (columnsState?.value !== undefined) {
410
+ counter.setColumnsMap(columnsState.value);
411
+ }
412
+ }, [columnsState?.value]);
413
+
539
414
  /** 清空所有的选中项 */
540
- var _onCleanSelected = useCallback(function () {
415
+ const onCleanSelected = useRefFunction(() => {
541
416
  if (propsRowSelection && propsRowSelection.onChange) {
542
417
  propsRowSelection.onChange([], [], {
543
418
  type: 'none'
544
419
  });
545
420
  }
546
421
  setSelectedRowKeys([]);
547
- }, [propsRowSelection, setSelectedRowKeys]);
422
+ });
548
423
  counter.propsRef.current = props;
549
424
 
550
425
  /** 可编辑行的相关配置 */
551
- var editableUtils = useEditableArray(_objectSpread(_objectSpread({}, props.editable), {}, {
426
+ const editableUtils = useEditableArray({
427
+ ...props.editable,
552
428
  tableName: props.name,
553
- getRowKey: getRowKey,
554
- childrenColumnName: ((_props$expandable2 = props.expandable) === null || _props$expandable2 === void 0 ? void 0 : _props$expandable2.childrenColumnName) || 'children',
429
+ getRowKey,
430
+ childrenColumnName: props.expandable?.childrenColumnName || 'children',
555
431
  dataSource: action.dataSource || [],
556
- setDataSource: function setDataSource(data) {
557
- var _props$editable4, _props$editable4$onVa;
558
- (_props$editable4 = props.editable) === null || _props$editable4 === void 0 || (_props$editable4$onVa = _props$editable4.onValuesChange) === null || _props$editable4$onVa === void 0 || _props$editable4$onVa.call(_props$editable4, undefined, data);
432
+ setDataSource: data => {
433
+ props.editable?.onValuesChange?.(undefined, data);
559
434
  action.setDataSource(data);
560
435
  }
561
- }));
436
+ });
562
437
 
563
438
  // ============================ Render ============================
564
- var _proTheme$useToken = proTheme === null || proTheme === void 0 ? void 0 : proTheme.useToken(),
565
- token = _proTheme$useToken.token;
439
+ const {
440
+ token
441
+ } = proTheme?.useToken();
566
442
 
567
443
  /** 绑定 action */
568
444
  useActionType(actionRef, action, {
569
- fullScreen: function fullScreen() {
570
- var _counter$rootDomRef;
571
- if (!((_counter$rootDomRef = counter.rootDomRef) !== null && _counter$rootDomRef !== void 0 && _counter$rootDomRef.current) || !document.fullscreenEnabled) {
445
+ nativeElement: counter.rootDomRef?.current || undefined,
446
+ focus: () => {
447
+ // 聚焦到表格根元素
448
+ counter.rootDomRef?.current?.focus();
449
+ },
450
+ fullScreen: () => {
451
+ if (!counter.rootDomRef?.current || !document.fullscreenEnabled) {
572
452
  return;
573
453
  }
574
454
  if (document.fullscreenElement) {
575
455
  document.exitFullscreen();
576
456
  } else {
577
- var _counter$rootDomRef2;
578
- (_counter$rootDomRef2 = counter.rootDomRef) === null || _counter$rootDomRef2 === void 0 || _counter$rootDomRef2.current.requestFullscreen();
457
+ counter.rootDomRef?.current.requestFullscreen();
579
458
  }
580
459
  },
581
- onCleanSelected: function onCleanSelected() {
460
+ onCleanSelected: () => {
582
461
  // 清空选中行
583
- _onCleanSelected();
462
+ onCleanSelected();
584
463
  },
585
- resetAll: function resetAll() {
586
- var _formRef$current;
464
+ resetAll: () => {
587
465
  // 清空选中行
588
- _onCleanSelected();
466
+ onCleanSelected();
589
467
 
590
468
  // 清空 toolbar 搜索
591
469
  counter.setKeyWords(undefined);
@@ -600,58 +478,61 @@ var ProTable = function ProTable(props) {
600
478
  setProSort(defaultProSort);
601
479
 
602
480
  // 重置表单
603
- formRef === null || formRef === void 0 || (_formRef$current = formRef.current) === null || _formRef$current === void 0 || _formRef$current.resetFields();
481
+ formRef?.current?.resetFields();
482
+
483
+ // 同步更新请求参数,避免 resetFields 后请求仍使用旧的 formSearch
484
+ const resetValues = formRef?.current?.getFieldsFormatValue?.(true) ?? formRef?.current?.getFieldsValue?.(true) ?? {};
485
+ const nextSearch = beforeSearchSubmit ? beforeSearchSubmit(resetValues) : resetValues;
486
+ setFormSearchWithRef(nextSearch ?? {});
604
487
  },
605
- editableUtils: editableUtils,
606
- scrollTo: function scrollTo(arg) {
607
- var _current, _current$scrollTo;
608
- return antTableRef === null || antTableRef === void 0 || (_current = antTableRef.current) === null || _current === void 0 || (_current$scrollTo = _current.scrollTo) === null || _current$scrollTo === void 0 ? void 0 : _current$scrollTo.call(_current, arg);
609
- }
488
+ editableUtils,
489
+ scrollTo: arg => antTableRef?.current?.scrollTo?.(arg)
610
490
  });
611
491
 
612
492
  /** 同步 action */
613
493
  counter.setAction(actionRef.current);
614
494
 
615
495
  // ---------- 列计算相关 start -----------------
616
- var tableColumn = useMemo(function () {
617
- var _props$expandable3;
496
+ const tableColumn = useMemo(() => {
497
+ const columnContext = {
498
+ counter,
499
+ columnEmptyText,
500
+ type,
501
+ editableUtils,
502
+ marginSM: token.marginSM,
503
+ rowKey: rowKey ?? 'id',
504
+ childrenColumnName: props.expandable?.childrenColumnName ?? 'children',
505
+ proFilter,
506
+ proSort
507
+ };
618
508
  return genProColumnToColumn({
619
509
  columns: propsColumns,
620
- counter: counter,
621
- columnEmptyText: columnEmptyText,
622
- type: type,
623
- marginSM: token.marginSM,
624
- editableUtils: editableUtils,
625
- rowKey: rowKey,
626
- childrenColumnName: (_props$expandable3 = props.expandable) === null || _props$expandable3 === void 0 ? void 0 : _props$expandable3.childrenColumnName,
627
- proFilter: proFilter,
628
- proSort: proSort
629
- }).sort(columnSort(counter.columnsMap));
510
+ context: columnContext
511
+ }).sort(columnSort(counter.columnsMap ?? {}));
630
512
  // eslint-disable-next-line react-hooks/exhaustive-deps
631
- }, [propsColumns, counter === null || counter === void 0 ? void 0 : counter.sortKeyColumns, counter === null || counter === void 0 ? void 0 : counter.columnsMap, columnEmptyText, type,
513
+ }, [propsColumns, counter?.sortKeyColumns, counter?.columnsMap, columnEmptyText, type,
632
514
  // eslint-disable-next-line react-hooks/exhaustive-deps
633
515
  editableUtils.editableKeys && editableUtils.editableKeys.join(','), proFilter, proSort]);
634
516
 
635
517
  /** Table Column 变化的时候更新一下,这个参数将会用于渲染 */
636
- useDeepCompareEffectDebounce(function () {
518
+ useDeepCompareEffectDebounce(() => {
637
519
  if (tableColumn && tableColumn.length > 0) {
638
520
  // 重新生成key的字符串用于排序
639
- var columnKeys = tableColumn.map(function (item) {
640
- return genColumnKey(item.key, item.index);
641
- });
521
+ const columnKeys = tableColumn.map(item => genColumnKey(item.key, item.index));
642
522
  counter.setSortKeyColumns(columnKeys);
643
523
  }
644
524
  }, [tableColumn], ['render', 'formItemRender'], 100);
645
525
 
646
526
  /** 同步 Pagination,支持受控的 页码 和 pageSize */
647
- useDeepCompareEffect(function () {
648
- var pageInfo = action.pageInfo;
649
- var _ref5 = propsPagination || {},
650
- _ref5$current = _ref5.current,
651
- current = _ref5$current === void 0 ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.current : _ref5$current,
652
- _ref5$pageSize = _ref5.pageSize,
653
- pageSize = _ref5$pageSize === void 0 ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.pageSize : _ref5$pageSize;
654
- if (propsPagination && (current || pageSize) && (pageSize !== (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.pageSize) || current !== (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.current))) {
527
+ useDeepCompareEffect(() => {
528
+ const {
529
+ pageInfo
530
+ } = action;
531
+ const {
532
+ current = pageInfo?.current,
533
+ pageSize = pageInfo?.pageSize
534
+ } = propsPagination || {};
535
+ if (propsPagination && (current || pageSize) && (pageSize !== pageInfo?.pageSize || current !== pageInfo?.current)) {
655
536
  action.setPageInfo({
656
537
  pageSize: pageSize || pageInfo.pageSize,
657
538
  current: current || pageInfo.current
@@ -660,84 +541,68 @@ var ProTable = function ProTable(props) {
660
541
  }, [propsPagination && propsPagination.pageSize, propsPagination && propsPagination.current]);
661
542
 
662
543
  /** 行选择相关的问题 */
663
- var rowSelection = _objectSpread(_objectSpread({
664
- selectedRowKeys: selectedRowKeys
665
- }, propsRowSelection), {}, {
666
- onChange: function onChange(keys, rows, info) {
544
+ const rowSelection = {
545
+ selectedRowKeys,
546
+ ...propsRowSelection,
547
+ onChange: (keys, rows, info) => {
667
548
  if (propsRowSelection && propsRowSelection.onChange) {
668
549
  propsRowSelection.onChange(keys, rows, info);
669
550
  }
670
551
  setSelectedRowKeys(keys);
671
552
  }
672
- });
553
+ };
673
554
 
674
555
  /** 是不是 LightFilter, LightFilter 有一些特殊的处理 */
675
- var isLightFilter = search !== false && (search === null || search === void 0 ? void 0 : search.filterType) === 'light';
676
- var _onFormSearchSubmit = useCallback(function (values) {
556
+ const isLightFilter = search !== false && search?.filterType === 'light';
557
+ const onFormSearchSubmit = useRefFunction(values => {
677
558
  // 判断search.onSearch返回值决定是否更新formSearch
678
559
  if (options && options.search) {
679
- var _options$search, _options$search$onSea;
680
- var _ref6 = options.search === true ? {} : options.search,
681
- _ref6$name = _ref6.name,
682
- name = _ref6$name === void 0 ? 'keyword' : _ref6$name;
560
+ const {
561
+ name = 'keyword'
562
+ } = options.search === true ? {} : options.search;
683
563
 
684
564
  /** 如果传入的 onSearch 返回值为 false,则不要把options.search.name对应的值set到formSearch */
685
- var success = (_options$search = options.search) === null || _options$search === void 0 || (_options$search$onSea = _options$search.onSearch) === null || _options$search$onSea === void 0 ? void 0 : _options$search$onSea.call(_options$search, counter.keyWords);
565
+ const success = options.search?.onSearch?.(counter.keyWords);
686
566
  if (success !== false) {
687
- setFormSearch(_objectSpread(_objectSpread({}, values), {}, _defineProperty({}, name, counter.keyWords)));
567
+ setFormSearchWithRef({
568
+ ...values,
569
+ [name]: counter.keyWords
570
+ });
688
571
  return;
689
572
  }
690
573
  }
691
- setFormSearch(values);
692
- }, [counter.keyWords, options, setFormSearch]);
693
- var loading = useMemo(function () {
694
- if (_typeof(action.loading) === 'object') {
695
- var _action$loading;
696
- return ((_action$loading = action.loading) === null || _action$loading === void 0 ? void 0 : _action$loading.spinning) || false;
574
+ setFormSearchWithRef(values);
575
+ });
576
+ const loading = useMemo(() => {
577
+ if (typeof action.loading === 'object') {
578
+ return action.loading?.spinning || false;
697
579
  }
698
580
  return action.loading;
699
581
  }, [action.loading]);
700
- var searchNode = useMemo(function () {
701
- var node = search === false && type !== 'form' ? null : /*#__PURE__*/_jsx(FormRender, {
702
- pagination: pagination,
703
- beforeSearchSubmit: beforeSearchSubmit,
704
- action: actionRef,
705
- columns: propsColumns,
706
- onFormSearchSubmit: function onFormSearchSubmit(values) {
707
- _onFormSearchSubmit(values);
708
- },
709
- ghost: ghost,
710
- onReset: props.onReset,
711
- onSubmit: props.onSubmit,
712
- loading: !!loading,
713
- manualRequest: manualRequest,
714
- search: search,
715
- form: props.form,
716
- formRef: formRef,
717
- type: props.type || 'table',
718
- cardBordered: props.cardBordered,
719
- dateFormatter: props.dateFormatter
720
- });
721
- if (searchFormRender && node) {
722
- return /*#__PURE__*/_jsx(_Fragment, {
723
- children: searchFormRender(props, node)
724
- });
725
- } else {
726
- return node;
727
- }
728
- }, [beforeSearchSubmit, formRef, ghost, loading, manualRequest, _onFormSearchSubmit, pagination, props, propsColumns, search, searchFormRender, type]);
729
- var selectedRows = useMemo(function () {
730
- return selectedRowKeys === null || selectedRowKeys === void 0 ? void 0 : selectedRowKeys.map(function (key) {
731
- var _preserveRecordsRef$c;
732
- return (_preserveRecordsRef$c = preserveRecordsRef.current) === null || _preserveRecordsRef$c === void 0 ? void 0 : _preserveRecordsRef$c.get(key);
733
- });
734
- }, [action.dataSource, selectedRowKeys]);
735
- var hideToolbar = useMemo(function () {
736
- return options === false && !headerTitle && !toolBarRender && !toolbar && !isLightFilter;
737
- }, [options, headerTitle, toolBarRender, toolbar, isLightFilter]);
738
-
739
- /** 内置的工具栏 */
740
- var toolbarDom = toolBarRender === false ? null : /*#__PURE__*/_jsx(Toolbar, {
582
+ const searchNode = /*#__PURE__*/_jsx(TableSearch, {
583
+ search: search,
584
+ type: type,
585
+ pagination: pagination,
586
+ beforeSearchSubmit: beforeSearchSubmit,
587
+ actionRef: actionRef,
588
+ columns: propsColumns,
589
+ onFormSearchSubmit: onFormSearchSubmit,
590
+ ghost: ghost,
591
+ onReset: props.onReset,
592
+ onSubmit: props.onSubmit,
593
+ loading: !!loading,
594
+ manualRequest: manualRequest,
595
+ form: props.form,
596
+ formRef: formRef,
597
+ cardBordered: props.cardBordered,
598
+ dateFormatter: props.dateFormatter,
599
+ searchFormRender: searchFormRender,
600
+ proTableProps: props
601
+ });
602
+ const selectedRows = useMemo(() => selectedRowKeys?.map(key => preserveRecordsRef.current?.get(key)), [action.dataSource, selectedRowKeys]);
603
+ const hideToolbar = useMemo(() => options === false && !headerTitle && !toolBarRender && !toolbar && !isLightFilter, [options, headerTitle, toolBarRender, toolbar, isLightFilter]);
604
+ const toolbarDom = /*#__PURE__*/_jsx(TableToolbar, {
605
+ toolBarRender: toolBarRender,
741
606
  headerTitle: headerTitle,
742
607
  hideToolbar: hideToolbar,
743
608
  selectedRows: selectedRows,
@@ -745,52 +610,164 @@ var ProTable = function ProTable(props) {
745
610
  tableColumn: tableColumn,
746
611
  tooltip: tooltip,
747
612
  toolbar: toolbar,
748
- onFormSearchSubmit: function onFormSearchSubmit(newValues) {
749
- setFormSearch(_objectSpread(_objectSpread({}, formSearch), newValues));
750
- },
751
- searchNode: isLightFilter ? searchNode : null,
613
+ isLightFilter: isLightFilter,
614
+ searchNode: searchNode,
752
615
  options: options,
753
616
  optionsRender: optionsRender,
754
617
  actionRef: actionRef,
755
- toolBarRender: toolBarRender
618
+ setFormSearch: setFormSearchWithRef,
619
+ formSearch: formSearch
756
620
  });
757
-
758
- /** 内置的多选操作栏 */
759
- var alertDom = propsRowSelection !== false ? /*#__PURE__*/_jsx(Alert, {
760
- selectedRowKeys: selectedRowKeys,
761
- selectedRows: selectedRows,
762
- onCleanSelected: _onCleanSelected,
763
- alertOptionRender: rest.tableAlertOptionRender,
764
- alertInfoRender: tableAlertRender,
765
- alwaysShowAlert: propsRowSelection === null || propsRowSelection === void 0 ? void 0 : propsRowSelection.alwaysShowAlert
766
- }) : null;
767
- return wrapSSR( /*#__PURE__*/_jsx(TableRender, _objectSpread(_objectSpread({}, props), {}, {
768
- name: isEditorTable,
769
- defaultClassName: defaultClassName,
621
+ const alertDom = useAlertDom({
622
+ propsRowSelection,
623
+ selectedRowKeys,
624
+ selectedRows,
625
+ onCleanSelected,
626
+ tableAlertOptionRender: rest.tableAlertOptionRender,
627
+ tableAlertRender
628
+ });
629
+ const mergedDataSource = useMemo(() => {
630
+ return getEditableDataSource({
631
+ dataSource: action.dataSource,
632
+ editableUtils,
633
+ pagination,
634
+ getRowKey,
635
+ childrenColumnName: props.expandable?.childrenColumnName || 'children'
636
+ });
637
+ }, [action.dataSource, editableUtils?.newLineRecord, getRowKey, pagination, props.expandable?.childrenColumnName]);
638
+ const columns = useMemo(() => {
639
+ const loopFilter = column => {
640
+ return column.map(item => {
641
+ const columnKey = genColumnKey(item.key, item.index);
642
+ const config = counter.columnsMap?.[columnKey];
643
+ if (config && config.show === false) {
644
+ return false;
645
+ }
646
+ if (item.children) {
647
+ return {
648
+ ...item,
649
+ children: loopFilter(item.children)
650
+ };
651
+ }
652
+ return item;
653
+ }).filter(Boolean);
654
+ };
655
+ return loopFilter(tableColumn);
656
+ }, [counter.columnsMap, tableColumn]);
657
+ const useFilterColumns = useMemo(() => {
658
+ const _columns = flattenColumns(columns);
659
+ return _columns.filter(column => !!column.filters);
660
+ }, [columns]);
661
+ const onSortChange = sortConfig => {
662
+ if (isEqual(sortConfig, proSort)) return;
663
+ setProSort(sortConfig ?? {});
664
+ };
665
+ const onFilterChange = filterConfig => {
666
+ if (isEqual(filterConfig, proFilter)) return;
667
+ setProFilter(filterConfig ?? {});
668
+ };
669
+ const getTableProps = () => ({
670
+ ...rest,
770
671
  size: counter.tableSize,
771
- onSizeChange: counter.setTableSize,
772
- pagination: pagination,
773
- searchNode: searchNode,
774
- rowSelection: propsRowSelection !== false ? rowSelection : undefined,
775
- className: className,
776
- tableColumn: tableColumn,
777
- isLightFilter: isLightFilter,
778
- action: action,
779
- alertDom: alertDom,
780
- toolbarDom: toolbarDom,
781
- hideToolbar: hideToolbar,
782
- onSortChange: function onSortChange(sortConfig) {
783
- if (isEqual(sortConfig, proSort)) return;
784
- setProSort(sortConfig !== null && sortConfig !== void 0 ? sortConfig : {});
672
+ rowSelection: propsRowSelection === false ? undefined : rowSelection,
673
+ className: tableClassName,
674
+ style: tableStyle,
675
+ columns,
676
+ loading: action.loading,
677
+ dataSource: mergedDataSource,
678
+ pagination,
679
+ onChange: (changePagination, filters, sorter, extra) => {
680
+ rest.onChange?.(changePagination, filters, sorter, extra);
681
+ const serverFilter = getServerFilterResult(filters, useFilterColumns);
682
+ onFilterChange(omitUndefined(serverFilter));
683
+ const serverSorter = getServerSorterResult(sorter);
684
+ onSortChange(omitUndefined(serverSorter));
685
+ }
686
+ });
687
+ const notNeedCardDom = search === false && !headerTitle && !toolBarRender;
688
+ const baseTableDom = /*#__PURE__*/_jsx(GridContext.Provider, {
689
+ value: {
690
+ grid: false,
691
+ colProps: undefined,
692
+ rowProps: undefined
693
+ },
694
+ children: /*#__PURE__*/_jsx(Table, {
695
+ ...getTableProps(),
696
+ rowKey: rowKey,
697
+ ref: antTableRef
698
+ })
699
+ });
700
+ const tableDom = props.tableViewRender ? props.tableViewRender({
701
+ ...getTableProps(),
702
+ rowSelection: propsRowSelection !== false ? rowSelection : undefined
703
+ }, baseTableDom) : baseTableDom;
704
+ const tableContentDom = props.editable && !isEditorTable ? /*#__PURE__*/_jsxs(_Fragment, {
705
+ children: [toolbarDom, alertDom, /*#__PURE__*/_createElement(ProForm, {
706
+ ...props.editable.formProps,
707
+ formRef: props.editable.formProps?.formRef,
708
+ component: false,
709
+ form: props.editable.form,
710
+ onValuesChange: editableUtils.onValuesChange,
711
+ key: "table",
712
+ submitter: false,
713
+ omitNil: false,
714
+ dateFormatter: props.dateFormatter
715
+ }, tableDom)]
716
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
717
+ children: [toolbarDom, alertDom, tableDom]
718
+ });
719
+ const cardBodyStyle = getTableCardBodyStyle({
720
+ propsCardProps: cardProps,
721
+ notNeedCardDom,
722
+ name: props.name,
723
+ hideToolbar,
724
+ toolbarDom
725
+ });
726
+ const tableAreaDom = cardProps === false || notNeedCardDom || !!props.name ? tableContentDom : /*#__PURE__*/_jsx(ProCard, {
727
+ ghost: ghost,
728
+ variant: isBordered('table', cardBordered) ? 'outlined' : 'borderless',
729
+ styles: {
730
+ body: {
731
+ ...cardBodyStyle,
732
+ ...(cardProps && typeof cardProps === 'object' ? cardProps.styles?.body || cardProps.bodyStyle : {})
733
+ },
734
+ ...(cardProps && typeof cardProps === 'object' && (cardProps.styles?.header || cardProps.headStyle) ? {
735
+ header: cardProps.styles?.header || cardProps.headStyle
736
+ } : {})
785
737
  },
786
- onFilterChange: function onFilterChange(filterConfig) {
787
- if (isEqual(filterConfig, proFilter)) return;
788
- setProFilter(filterConfig !== null && filterConfig !== void 0 ? filterConfig : {});
738
+ ...cardProps,
739
+ children: tableContentDom
740
+ });
741
+ const renderTable = () => {
742
+ if (props.tableRender) {
743
+ return props.tableRender(props, tableAreaDom, {
744
+ toolbar: toolbarDom || undefined,
745
+ alert: alertDom || undefined,
746
+ table: tableDom || undefined
747
+ });
748
+ }
749
+ return tableAreaDom;
750
+ };
751
+ const proTableDom = /*#__PURE__*/_jsxs("div", {
752
+ className: clsx(className, {
753
+ [`${defaultClassName}-polling`]: action.pollingLoading
754
+ }),
755
+ style: style,
756
+ ref: counter.rootDomRef,
757
+ children: [isLightFilter ? null : searchNode, type !== 'form' && props.tableExtraRender && /*#__PURE__*/_jsx("div", {
758
+ className: clsx(className, `${defaultClassName}-extra`),
759
+ children: props.tableExtraRender(props, action.dataSource || [])
760
+ }), type !== 'form' && renderTable()]
761
+ });
762
+ if (!options || !options?.fullScreen) {
763
+ return wrapSSR(proTableDom);
764
+ }
765
+ return wrapSSR( /*#__PURE__*/_jsx(ConfigProvider, {
766
+ getPopupContainer: () => {
767
+ return counter.rootDomRef.current || document.body;
789
768
  },
790
- editableUtils: editableUtils,
791
- getRowKey: getRowKey,
792
- tableRef: antTableRef
793
- })));
769
+ children: proTableDom
770
+ }));
794
771
  };
795
772
 
796
773
  /**
@@ -798,20 +775,33 @@ var ProTable = function ProTable(props) {
798
775
  *
799
776
  * @param props
800
777
  */
801
- var ProviderTableContainer = function ProviderTableContainer(props) {
802
- var _useContext = useContext(ConfigProvider.ConfigContext),
803
- getPrefixCls = _useContext.getPrefixCls;
804
- var ErrorComponent = props.ErrorBoundary === false ? React.Fragment : props.ErrorBoundary || ErrorBoundary;
805
- var context = useContext(ProConfigContext);
778
+ const ProviderTableContainer = props => {
779
+ const {
780
+ getPrefixCls
781
+ } = useContext(ConfigProvider.ConfigContext);
782
+ const ErrorComponent = props.ErrorBoundary === false ? React.Fragment : props.ErrorBoundary || ErrorBoundary;
783
+ const context = useContext(ProConfigContext);
806
784
  return /*#__PURE__*/_jsx(Container, {
807
- initValue: props,
785
+ initValue: {
786
+ ...props,
787
+ columnsState: props.columnsState,
788
+ columns: props.columns,
789
+ onColumnsStateChange: props.onColumnsStateChange,
790
+ onSizeChange: props.onSizeChange,
791
+ size: props.size,
792
+ defaultSize: props.defaultSize
793
+ },
808
794
  children: /*#__PURE__*/_jsx(ProConfigProvider, {
809
- valueTypeMap: _objectSpread(_objectSpread({}, context.valueTypeMap), ValueTypeToComponent),
795
+ valueTypeMap: {
796
+ ...context.valueTypeMap,
797
+ ...ValueTypeToComponent
798
+ },
810
799
  needDeps: true,
811
800
  children: /*#__PURE__*/_jsx(ErrorComponent, {
812
- children: /*#__PURE__*/_jsx(ProTable, _objectSpread({
813
- defaultClassName: "".concat(getPrefixCls('pro-table'))
814
- }, props))
801
+ children: /*#__PURE__*/_jsx(ProTable, {
802
+ defaultClassName: `${getPrefixCls('pro-table')}`,
803
+ ...props
804
+ })
815
805
  })
816
806
  })
817
807
  });