@ant-design/pro-components 3.1.0-0 → 3.1.1-1

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 (714) 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 +8 -10
  6. package/es/card/components/Actions/index.js +25 -25
  7. package/es/card/components/Actions/style.js +79 -71
  8. package/es/card/components/Card/index.js +157 -142
  9. package/es/card/components/Card/style.js +249 -192
  10. package/es/card/components/CheckCard/Group.js +94 -115
  11. package/es/card/components/CheckCard/index.js +85 -79
  12. package/es/card/components/CheckCard/style.js +184 -168
  13. package/es/card/components/Divider/index.js +19 -15
  14. package/es/card/components/Divider/style.js +32 -29
  15. package/es/card/components/Loading/index.js +19 -16
  16. package/es/card/components/Loading/style.js +34 -31
  17. package/es/card/components/Operation/index.js +16 -13
  18. package/es/card/components/Operation/style.js +19 -18
  19. package/es/card/components/Statistic/index.js +46 -41
  20. package/es/card/components/Statistic/style.js +89 -70
  21. package/es/card/components/StatisticCard/index.js +46 -41
  22. package/es/card/components/StatisticCard/style.js +37 -35
  23. package/es/descriptions/index.js +214 -225
  24. package/es/descriptions/useFetchData.js +53 -91
  25. package/es/field/AllProField.js +265 -216
  26. package/es/field/FieldHOC/index.js +9 -14
  27. package/es/field/PureProField.js +82 -80
  28. package/es/field/ValueTypeToComponent.js +517 -618
  29. package/es/field/components/Cascader/index.d.ts +3 -3
  30. package/es/field/components/Cascader/index.js +66 -84
  31. package/es/field/components/Checkbox/index.d.ts +2 -2
  32. package/es/field/components/Checkbox/index.js +75 -72
  33. package/es/field/components/Code/index.js +40 -39
  34. package/es/field/components/ColorPicker/index.d.ts +2 -2
  35. package/es/field/components/ColorPicker/index.js +38 -32
  36. package/es/field/components/DatePicker/index.d.ts +2 -2
  37. package/es/field/components/DatePicker/index.js +49 -53
  38. package/es/field/components/Digit/index.js +41 -42
  39. package/es/field/components/DigitRange/index.js +71 -77
  40. package/es/field/components/FromNow/index.js +27 -25
  41. package/es/field/components/Image/index.js +28 -24
  42. package/es/field/components/IndexColumn/index.js +22 -16
  43. package/es/field/components/Money/index.js +107 -116
  44. package/es/field/components/Options/index.js +34 -33
  45. package/es/field/components/Password/index.js +35 -38
  46. package/es/field/components/Percent/index.js +40 -44
  47. package/es/field/components/Percent/util.js +3 -5
  48. package/es/field/components/Progress/index.js +29 -27
  49. package/es/field/components/Radio/index.d.ts +1 -1
  50. package/es/field/components/Radio/index.js +61 -62
  51. package/es/field/components/RangePicker/index.d.ts +2 -2
  52. package/es/field/components/RangePicker/index.js +52 -63
  53. package/es/field/components/Rate/index.js +24 -21
  54. package/es/field/components/Second/index.js +36 -33
  55. package/es/field/components/Segmented/index.d.ts +1 -1
  56. package/es/field/components/Segmented/index.js +37 -46
  57. package/es/field/components/Select/LightSelect/index.d.ts +1 -1
  58. package/es/field/components/Select/LightSelect/index.js +102 -109
  59. package/es/field/components/Select/SearchSelect/index.js +129 -155
  60. package/es/field/components/Select/index.d.ts +2 -2
  61. package/es/field/components/Select/index.js +193 -219
  62. package/es/field/components/Slider/index.js +25 -22
  63. package/es/field/components/Status/index.js +67 -78
  64. package/es/field/components/Switch/index.d.ts +1 -1
  65. package/es/field/components/Switch/index.js +32 -30
  66. package/es/field/components/Text/index.js +34 -37
  67. package/es/field/components/TextArea/index.js +26 -21
  68. package/es/field/components/TextArea/readonly.js +24 -21
  69. package/es/field/components/TimePicker/index.js +96 -105
  70. package/es/field/components/TreeSelect/index.d.ts +3 -3
  71. package/es/field/components/TreeSelect/index.js +107 -125
  72. package/es/form/BaseForm/BaseForm.js +416 -502
  73. package/es/form/BaseForm/EditOrReadOnlyContext.js +1 -1
  74. package/es/form/BaseForm/LightWrapper/index.js +56 -65
  75. package/es/form/BaseForm/LightWrapper/style.js +17 -13
  76. package/es/form/BaseForm/Submitter/index.js +44 -43
  77. package/es/form/FieldContext.js +1 -1
  78. package/es/form/components/Captcha/index.js +74 -134
  79. package/es/form/components/Cascader/index.d.ts +1 -1
  80. package/es/form/components/Cascader/index.js +26 -28
  81. package/es/form/components/Checkbox/index.js +60 -61
  82. package/es/form/components/ColorPicker/index.d.ts +1 -1
  83. package/es/form/components/ColorPicker/index.js +24 -26
  84. package/es/form/components/DatePicker/BaseDatePicker.js +32 -30
  85. package/es/form/components/DatePicker/DatePicker.js +14 -13
  86. package/es/form/components/DatePicker/DateTimePicker.js +11 -12
  87. package/es/form/components/DatePicker/MonthPicker.js +14 -13
  88. package/es/form/components/DatePicker/QuarterPicker.js +14 -13
  89. package/es/form/components/DatePicker/TimePicker.js +26 -27
  90. package/es/form/components/DatePicker/WeekPicker.js +14 -13
  91. package/es/form/components/DatePicker/YearPicker.js +14 -13
  92. package/es/form/components/DatePicker/index.js +1 -1
  93. package/es/form/components/DateRangePicker/BaseDateRanger.js +34 -34
  94. package/es/form/components/DateRangePicker/DateMonthRangePicker.js +15 -16
  95. package/es/form/components/DateRangePicker/DateQuarterRangePicker.js +15 -16
  96. package/es/form/components/DateRangePicker/DateTimeRangePicker.js +15 -16
  97. package/es/form/components/DateRangePicker/DateWeekRangePicker.js +15 -16
  98. package/es/form/components/DateRangePicker/DateYearRangePicker.js +15 -16
  99. package/es/form/components/DateRangePicker/TimeRangePicker.js +26 -29
  100. package/es/form/components/DateRangePicker/index.js +15 -16
  101. package/es/form/components/Dependency/index.js +31 -34
  102. package/es/form/components/Digit/DigitRange.d.ts +2 -2
  103. package/es/form/components/Digit/DigitRange.js +23 -24
  104. package/es/form/components/Digit/index.d.ts +1 -1
  105. package/es/form/components/Digit/index.js +27 -29
  106. package/es/form/components/Field/index.js +55 -63
  107. package/es/form/components/FieldSet/index.js +68 -76
  108. package/es/form/components/FormItem/FormItemRender/index.js +58 -48
  109. package/es/form/components/FormItem/Group/index.js +95 -95
  110. package/es/form/components/FormItem/Group/style.js +46 -40
  111. package/es/form/components/FormItem/index.js +135 -141
  112. package/es/form/components/FormItem/warpField.js +165 -149
  113. package/es/form/components/List/ListContainer.js +98 -189
  114. package/es/form/components/List/ListItem.js +151 -198
  115. package/es/form/components/List/index.js +97 -107
  116. package/es/form/components/List/style.js +71 -47
  117. package/es/form/components/Money/index.d.ts +1 -1
  118. package/es/form/components/Money/index.js +28 -30
  119. package/es/form/components/Radio/index.d.ts +2 -2
  120. package/es/form/components/Radio/index.js +45 -49
  121. package/es/form/components/Rate/index.d.ts +1 -1
  122. package/es/form/components/Rate/index.js +17 -20
  123. package/es/form/components/SchemaForm/index.js +58 -72
  124. package/es/form/components/SchemaForm/layoutType/Embed.js +5 -6
  125. package/es/form/components/SchemaForm/layoutType/StepsForm.js +22 -26
  126. package/es/form/components/SchemaForm/valueType/dependency.js +11 -11
  127. package/es/form/components/SchemaForm/valueType/divider.js +4 -5
  128. package/es/form/components/SchemaForm/valueType/field.js +45 -44
  129. package/es/form/components/SchemaForm/valueType/formList.js +8 -7
  130. package/es/form/components/SchemaForm/valueType/formSet.js +8 -7
  131. package/es/form/components/SchemaForm/valueType/group.js +7 -8
  132. package/es/form/components/SchemaForm/valueType/ignore.js +2 -2
  133. package/es/form/components/SchemaForm/valueType/index.js +5 -5
  134. package/es/form/components/Segmented/index.js +20 -23
  135. package/es/form/components/Select/index.js +69 -73
  136. package/es/form/components/Slider/index.d.ts +1 -1
  137. package/es/form/components/Slider/index.js +33 -35
  138. package/es/form/components/Switch/index.js +24 -26
  139. package/es/form/components/Text/index.js +75 -86
  140. package/es/form/components/TextArea/index.d.ts +1 -1
  141. package/es/form/components/TextArea/index.js +17 -20
  142. package/es/form/components/TreeSelect/index.js +20 -23
  143. package/es/form/components/UploadButton/index.js +56 -103
  144. package/es/form/components/UploadDragger/index.js +37 -44
  145. package/es/form/helpers/grid.js +65 -67
  146. package/es/form/layouts/DrawerForm/index.js +150 -241
  147. package/es/form/layouts/DrawerForm/style.js +26 -25
  148. package/es/form/layouts/LightFilter/index.d.ts +12 -1
  149. package/es/form/layouts/LightFilter/index.js +158 -140
  150. package/es/form/layouts/LightFilter/style.js +52 -48
  151. package/es/form/layouts/LoginForm/index.js +44 -47
  152. package/es/form/layouts/LoginForm/style.js +71 -67
  153. package/es/form/layouts/LoginFormPage/index.js +45 -48
  154. package/es/form/layouts/LoginFormPage/style.js +136 -126
  155. package/es/form/layouts/ModalForm/index.js +119 -203
  156. package/es/form/layouts/ProForm/index.d.ts +2 -2
  157. package/es/form/layouts/ProForm/index.js +5 -5
  158. package/es/form/layouts/QueryFilter/Actions.js +23 -22
  159. package/es/form/layouts/QueryFilter/index.js +178 -203
  160. package/es/form/layouts/QueryFilter/style.js +45 -37
  161. package/es/form/layouts/StepsForm/StepForm.d.ts +2 -3
  162. package/es/form/layouts/StepsForm/StepForm.js +50 -71
  163. package/es/form/layouts/StepsForm/index.js +175 -217
  164. package/es/form/layouts/StepsForm/style.js +30 -28
  165. package/es/form/layouts/index.js +1 -1
  166. package/es/layout/ProLayout.js +281 -292
  167. package/es/layout/WrapContent.js +16 -12
  168. package/es/layout/assert/Logo.js +95 -97
  169. package/es/layout/components/AppsLogoComponents/AppsLogo.js +10 -12
  170. package/es/layout/components/AppsLogoComponents/DefaultContent.js +17 -16
  171. package/es/layout/components/AppsLogoComponents/SimpleContent.js +19 -18
  172. package/es/layout/components/AppsLogoComponents/index.js +33 -38
  173. package/es/layout/components/AppsLogoComponents/style/default.js +2 -2
  174. package/es/layout/components/AppsLogoComponents/style/index.js +52 -50
  175. package/es/layout/components/AppsLogoComponents/style/simple.js +1 -1
  176. package/es/layout/components/CollapsedIcon/index.js +18 -15
  177. package/es/layout/components/CollapsedIcon/style.js +40 -40
  178. package/es/layout/components/Footer.js +22 -21
  179. package/es/layout/components/FooterToolbar/index.js +58 -52
  180. package/es/layout/components/FooterToolbar/style/index.js +38 -37
  181. package/es/layout/components/FooterToolbar/style/stylish.js +11 -9
  182. package/es/layout/components/GlobalFooter/index.js +25 -25
  183. package/es/layout/components/GlobalFooter/style.js +31 -30
  184. package/es/layout/components/GlobalHeader/ActionsContent.js +62 -78
  185. package/es/layout/components/GlobalHeader/index.js +59 -47
  186. package/es/layout/components/GlobalHeader/rightContentStyle.js +49 -49
  187. package/es/layout/components/GlobalHeader/style.js +58 -54
  188. package/es/layout/components/GridContent/index.js +24 -19
  189. package/es/layout/components/GridContent/style.js +14 -13
  190. package/es/layout/components/Header/index.js +63 -57
  191. package/es/layout/components/Header/style/header.js +49 -47
  192. package/es/layout/components/Header/style/stylish.js +15 -11
  193. package/es/layout/components/Help/AsyncContentPanel.js +13 -18
  194. package/es/layout/components/Help/HelpProvide.js +1 -1
  195. package/es/layout/components/Help/ProHelpContentPanel.js +64 -83
  196. package/es/layout/components/Help/ProHelpDrawer.js +25 -31
  197. package/es/layout/components/Help/ProHelpModal.d.ts +1 -1
  198. package/es/layout/components/Help/ProHelpModal.js +24 -27
  199. package/es/layout/components/Help/ProHelpPanel.js +86 -94
  200. package/es/layout/components/Help/ProHelpPopover.js +18 -16
  201. package/es/layout/components/Help/RenderContentPanel.js +34 -24
  202. package/es/layout/components/Help/Search.js +52 -78
  203. package/es/layout/components/Help/index.js +9 -11
  204. package/es/layout/components/Help/style.js +82 -75
  205. package/es/layout/components/PageContainer/index.js +168 -149
  206. package/es/layout/components/PageContainer/style/index.js +95 -78
  207. package/es/layout/components/PageContainer/style/stylish.js +11 -9
  208. package/es/layout/components/PageHeader/index.js +96 -97
  209. package/es/layout/components/PageHeader/style/index.js +142 -122
  210. package/es/layout/components/PageLoading/index.js +17 -20
  211. package/es/layout/components/SettingDrawer/BlockCheckbox.js +29 -32
  212. package/es/layout/components/SettingDrawer/LayoutChange.js +22 -22
  213. package/es/layout/components/SettingDrawer/RegionalChange.js +14 -15
  214. package/es/layout/components/SettingDrawer/ThemeColor.js +32 -35
  215. package/es/layout/components/SettingDrawer/index.js +137 -168
  216. package/es/layout/components/SettingDrawer/style/index.js +141 -137
  217. package/es/layout/components/SiderMenu/BaseMenu.js +235 -221
  218. package/es/layout/components/SiderMenu/SiderMenu.js +125 -115
  219. package/es/layout/components/SiderMenu/index.js +47 -42
  220. package/es/layout/components/SiderMenu/style/index.js +179 -161
  221. package/es/layout/components/SiderMenu/style/menu.js +148 -110
  222. package/es/layout/components/SiderMenu/style/stylish.js +15 -11
  223. package/es/layout/components/TopNavHeader/index.js +71 -60
  224. package/es/layout/components/TopNavHeader/style.js +64 -63
  225. package/es/layout/context/RouteContext.js +1 -1
  226. package/es/layout/defaultSettings.js +1 -1
  227. package/es/layout/getPageTitle.js +23 -24
  228. package/es/layout/locales/en-US.js +3 -2
  229. package/es/layout/locales/index.js +5 -5
  230. package/es/layout/locales/it-IT.js +3 -2
  231. package/es/layout/locales/ko-KR.js +3 -2
  232. package/es/layout/locales/zh-CN.js +3 -2
  233. package/es/layout/locales/zh-TW.js +3 -2
  234. package/es/layout/style/index.js +48 -42
  235. package/es/layout/utils/getBreadcrumbProps.js +60 -60
  236. package/es/layout/utils/getMenuData.js +7 -11
  237. package/es/layout/utils/pathTools.js +2 -6
  238. package/es/layout/utils/useCurrentMenuLayoutProps.js +4 -9
  239. package/es/layout/utils/utils.js +15 -17
  240. package/es/list/Item.js +157 -137
  241. package/es/list/ListView.js +106 -115
  242. package/es/list/constants.js +2 -2
  243. package/es/list/index.js +72 -70
  244. package/es/list/style/index.js +281 -213
  245. package/es/provider/index.js +122 -115
  246. package/es/provider/intl.js +53 -55
  247. package/es/provider/typing/layoutToken.js +26 -23
  248. package/es/provider/useStyle/index.js +51 -59
  249. package/es/provider/utils/merge.js +10 -12
  250. package/es/skeleton/components/Descriptions/index.js +211 -229
  251. package/es/skeleton/components/List/index.js +208 -223
  252. package/es/skeleton/components/Result/index.js +45 -47
  253. package/es/skeleton/index.js +13 -10
  254. package/es/table/Store/Provide.d.ts +4 -4
  255. package/es/table/Store/Provide.js +102 -117
  256. package/es/table/Table.d.ts +5 -2
  257. package/es/table/Table.js +526 -691
  258. package/es/table/TableSearch.d.ts +24 -0
  259. package/es/table/TableSearch.js +54 -0
  260. package/es/table/TableToolbar.d.ts +22 -0
  261. package/es/table/TableToolbar.js +47 -0
  262. package/es/table/components/Alert/index.js +41 -40
  263. package/es/table/components/Alert/style.js +28 -27
  264. package/es/table/components/ColumnSetting/index.js +228 -223
  265. package/es/table/components/ColumnSetting/style.js +86 -71
  266. package/es/table/components/DragSortTable/index.js +65 -79
  267. package/es/table/components/DragSortTable/style.js +20 -19
  268. package/es/table/components/Dropdown/index.js +42 -47
  269. package/es/table/components/EditableTable/CellEditorTable.js +24 -32
  270. package/es/table/components/EditableTable/RowEditorTable.js +23 -28
  271. package/es/table/components/EditableTable/index.js +295 -329
  272. package/es/table/components/Form/FormRender.js +99 -103
  273. package/es/table/components/Form/index.d.ts +4 -19
  274. package/es/table/components/Form/index.js +112 -159
  275. package/es/table/components/ListToolBar/HeaderMenu.js +44 -52
  276. package/es/table/components/ListToolBar/index.js +122 -147
  277. package/es/table/components/ListToolBar/style.js +127 -117
  278. package/es/table/components/ToolBar/DensityIcon.js +10 -9
  279. package/es/table/components/ToolBar/FullscreenIcon.js +5 -9
  280. package/es/table/components/ToolBar/index.d.ts +2 -8
  281. package/es/table/components/ToolBar/index.js +155 -195
  282. package/es/table/style/index.js +144 -112
  283. package/es/table/typing.d.ts +4 -0
  284. package/es/table/useFetchData.js +199 -338
  285. package/es/table/utils/cellRenderToFromItem.js +105 -119
  286. package/es/table/utils/columnRender.js +63 -54
  287. package/es/table/utils/columnSort.js +22 -22
  288. package/es/table/utils/genProColumnToColumn.d.ts +13 -9
  289. package/es/table/utils/genProColumnToColumn.js +121 -98
  290. package/es/table/utils/index.d.ts +10 -0
  291. package/es/table/utils/index.js +112 -178
  292. package/es/table/utils/useDragSort.d.ts +1 -1
  293. package/es/table/utils/useDragSort.js +99 -92
  294. package/es/table/utils/usePageInfo.d.ts +6 -0
  295. package/es/table/utils/usePageInfo.js +55 -0
  296. package/es/utils/components/DropdownFooter/index.js +23 -21
  297. package/es/utils/components/DropdownFooter/style.js +16 -15
  298. package/es/utils/components/ErrorBoundary/index.js +27 -50
  299. package/es/utils/components/FieldLabel/index.js +70 -70
  300. package/es/utils/components/FieldLabel/style.js +104 -81
  301. package/es/utils/components/FilterDropdown/index.d.ts +11 -0
  302. package/es/utils/components/FilterDropdown/index.js +43 -32
  303. package/es/utils/components/FilterDropdown/style.js +19 -16
  304. package/es/utils/components/InlineErrorFormItem/index.js +78 -78
  305. package/es/utils/components/InlineErrorFormItem/style.js +56 -49
  306. package/es/utils/components/LabelIconTip/index.js +30 -31
  307. package/es/utils/components/LabelIconTip/style.js +36 -35
  308. package/es/utils/components/ProFormContext/index.js +1 -1
  309. package/es/utils/conversionMomentValue/index.js +19 -22
  310. package/es/utils/dateArrayFormatter/index.js +9 -14
  311. package/es/utils/genCopyable/index.js +74 -32
  312. package/es/utils/getFieldPropsOrFormItemProps/index.js +1 -1
  313. package/es/utils/hooks/useDebounceFn/index.js +18 -51
  314. package/es/utils/hooks/useDebounceValue/index.js +7 -16
  315. package/es/utils/hooks/useDeepCompareEffect/index.js +6 -18
  316. package/es/utils/hooks/useDocumentTitle/index.js +2 -2
  317. package/es/utils/hooks/useFetchData/index.js +36 -65
  318. package/es/utils/hooks/useForceRender/index.js +2 -9
  319. package/es/utils/hooks/useLatest/index.js +2 -2
  320. package/es/utils/hooks/usePrevious/index.js +3 -3
  321. package/es/utils/hooks/useReactiveRef/index.js +2 -2
  322. package/es/utils/hooks/useRefCallback/index.js +3 -3
  323. package/es/utils/hooks/useRefFunction/index.js +4 -9
  324. package/es/utils/index.d.ts +1 -2
  325. package/es/utils/index.js +1 -2
  326. package/es/utils/isBrowser/index.js +2 -2
  327. package/es/utils/isDeepEqualReact/index.js +9 -44
  328. package/es/utils/isDropdownValueType/index.js +2 -2
  329. package/es/utils/isNil/index.js +1 -3
  330. package/es/utils/isUrl/index.js +2 -2
  331. package/es/utils/merge/index.js +10 -12
  332. package/es/utils/nanoid/index.js +5 -6
  333. package/es/utils/omitBoolean/index.js +1 -1
  334. package/es/utils/omitUndefined/index.js +3 -3
  335. package/es/utils/omitUndefinedAndEmptyArr/index.js +4 -5
  336. package/es/utils/parseValueToMoment/index.js +3 -7
  337. package/es/utils/pickProFormItemProps/index.js +3 -3
  338. package/es/utils/pickProProps/index.js +6 -7
  339. package/es/utils/proFieldParsingText/index.js +85 -98
  340. package/es/utils/runFunction/index.js +2 -5
  341. package/es/utils/stringify/index.js +1 -1
  342. package/es/utils/transformKeySubmitValue/index.js +99 -116
  343. package/es/utils/useEditableArray/index.d.ts +6 -1
  344. package/es/utils/useEditableArray/index.js +579 -735
  345. package/es/utils/useEditableMap/index.d.ts +1 -1
  346. package/es/utils/useEditableMap/index.js +89 -135
  347. package/es/utils/useMediaQuery/index.d.ts +2 -2
  348. package/es/utils/useMediaQuery/index.js +37 -34
  349. package/es/utils/useMediaQuery/query.js +7 -17
  350. package/es/version.js +1 -1
  351. package/guidelines/Guidelines.md +33 -0
  352. package/guidelines/components/drawer-form.md +90 -0
  353. package/guidelines/components/editable-pro-table.md +150 -0
  354. package/guidelines/components/modal-form.md +88 -0
  355. package/guidelines/components/pro-card.md +90 -0
  356. package/guidelines/components/pro-form.md +96 -0
  357. package/guidelines/components/pro-layout.md +84 -0
  358. package/guidelines/components/pro-table.md +142 -0
  359. package/guidelines/components/steps-form.md +105 -0
  360. package/guidelines/design-tokens/colors.md +58 -0
  361. package/guidelines/design-tokens/layout.md +53 -0
  362. package/guidelines/design-tokens/typography.md +49 -0
  363. package/guidelines/overview-components.md +55 -0
  364. package/guidelines/overview-icons.md +23 -0
  365. package/lib/card/ProCard.js +8 -10
  366. package/lib/card/components/Actions/index.js +25 -25
  367. package/lib/card/components/Actions/style.js +79 -72
  368. package/lib/card/components/Card/index.js +154 -139
  369. package/lib/card/components/Card/style.js +249 -193
  370. package/lib/card/components/CheckCard/Group.js +97 -115
  371. package/lib/card/components/CheckCard/index.js +85 -78
  372. package/lib/card/components/CheckCard/style.js +184 -169
  373. package/lib/card/components/Divider/index.js +20 -16
  374. package/lib/card/components/Divider/style.js +32 -30
  375. package/lib/card/components/Loading/index.js +19 -16
  376. package/lib/card/components/Loading/style.js +34 -32
  377. package/lib/card/components/Operation/index.js +16 -14
  378. package/lib/card/components/Operation/style.js +19 -19
  379. package/lib/card/components/Statistic/index.js +46 -42
  380. package/lib/card/components/Statistic/style.js +89 -71
  381. package/lib/card/components/StatisticCard/index.js +46 -41
  382. package/lib/card/components/StatisticCard/style.js +37 -36
  383. package/lib/card/index.js +4 -4
  384. package/lib/descriptions/index.js +219 -225
  385. package/lib/descriptions/useFetchData.js +51 -90
  386. package/lib/field/AllProField.js +267 -217
  387. package/lib/field/FieldHOC/index.js +9 -15
  388. package/lib/field/PureProField.js +84 -82
  389. package/lib/field/ValueTypeToComponent.js +517 -618
  390. package/lib/field/components/Cascader/index.d.ts +2 -2
  391. package/lib/field/components/Cascader/index.js +66 -85
  392. package/lib/field/components/Checkbox/index.d.ts +1 -1
  393. package/lib/field/components/Checkbox/index.js +75 -73
  394. package/lib/field/components/Code/index.js +40 -39
  395. package/lib/field/components/ColorPicker/index.js +38 -33
  396. package/lib/field/components/DatePicker/index.d.ts +1 -1
  397. package/lib/field/components/DatePicker/index.js +49 -53
  398. package/lib/field/components/Digit/index.js +41 -43
  399. package/lib/field/components/DigitRange/index.js +69 -76
  400. package/lib/field/components/FromNow/index.js +27 -25
  401. package/lib/field/components/Image/index.js +28 -24
  402. package/lib/field/components/IndexColumn/index.js +22 -17
  403. package/lib/field/components/Money/index.js +106 -116
  404. package/lib/field/components/Options/index.js +34 -34
  405. package/lib/field/components/Password/index.js +35 -38
  406. package/lib/field/components/Percent/index.js +40 -45
  407. package/lib/field/components/Percent/util.js +3 -6
  408. package/lib/field/components/Progress/index.js +29 -28
  409. package/lib/field/components/Radio/index.d.ts +1 -1
  410. package/lib/field/components/Radio/index.js +61 -63
  411. package/lib/field/components/RangePicker/index.d.ts +1 -1
  412. package/lib/field/components/RangePicker/index.js +52 -63
  413. package/lib/field/components/Rate/index.js +24 -21
  414. package/lib/field/components/Second/index.js +36 -33
  415. package/lib/field/components/Segmented/index.d.ts +1 -1
  416. package/lib/field/components/Segmented/index.js +37 -48
  417. package/lib/field/components/Select/LightSelect/index.d.ts +1 -1
  418. package/lib/field/components/Select/LightSelect/index.js +103 -110
  419. package/lib/field/components/Select/SearchSelect/index.js +133 -156
  420. package/lib/field/components/Select/index.d.ts +1 -1
  421. package/lib/field/components/Select/index.js +194 -218
  422. package/lib/field/components/Slider/index.js +25 -22
  423. package/lib/field/components/Status/index.js +69 -79
  424. package/lib/field/components/Switch/index.d.ts +1 -1
  425. package/lib/field/components/Switch/index.js +32 -31
  426. package/lib/field/components/Text/index.js +34 -38
  427. package/lib/field/components/TextArea/index.js +26 -21
  428. package/lib/field/components/TextArea/readonly.js +24 -22
  429. package/lib/field/components/TimePicker/index.js +96 -105
  430. package/lib/field/components/TreeSelect/index.d.ts +2 -2
  431. package/lib/field/components/TreeSelect/index.js +105 -124
  432. package/lib/field/index.js +34 -34
  433. package/lib/form/BaseForm/BaseForm.js +413 -499
  434. package/lib/form/BaseForm/EditOrReadOnlyContext.js +1 -1
  435. package/lib/form/BaseForm/LightWrapper/index.js +57 -66
  436. package/lib/form/BaseForm/LightWrapper/style.js +17 -14
  437. package/lib/form/BaseForm/Submitter/index.js +44 -44
  438. package/lib/form/BaseForm/index.js +3 -3
  439. package/lib/form/FieldContext.js +1 -1
  440. package/lib/form/components/Captcha/index.js +74 -135
  441. package/lib/form/components/Cascader/index.js +26 -29
  442. package/lib/form/components/Checkbox/index.js +60 -61
  443. package/lib/form/components/ColorPicker/index.js +24 -26
  444. package/lib/form/components/DatePicker/BaseDatePicker.js +32 -30
  445. package/lib/form/components/DatePicker/DatePicker.js +14 -13
  446. package/lib/form/components/DatePicker/DateTimePicker.js +11 -12
  447. package/lib/form/components/DatePicker/MonthPicker.js +14 -13
  448. package/lib/form/components/DatePicker/QuarterPicker.js +14 -13
  449. package/lib/form/components/DatePicker/TimePicker.js +26 -27
  450. package/lib/form/components/DatePicker/WeekPicker.js +14 -13
  451. package/lib/form/components/DatePicker/YearPicker.js +14 -13
  452. package/lib/form/components/DatePicker/index.js +1 -1
  453. package/lib/form/components/DateRangePicker/BaseDateRanger.js +34 -34
  454. package/lib/form/components/DateRangePicker/DateMonthRangePicker.js +15 -16
  455. package/lib/form/components/DateRangePicker/DateQuarterRangePicker.js +15 -16
  456. package/lib/form/components/DateRangePicker/DateTimeRangePicker.js +15 -16
  457. package/lib/form/components/DateRangePicker/DateWeekRangePicker.js +15 -16
  458. package/lib/form/components/DateRangePicker/DateYearRangePicker.js +15 -16
  459. package/lib/form/components/DateRangePicker/TimeRangePicker.js +26 -29
  460. package/lib/form/components/DateRangePicker/index.js +15 -16
  461. package/lib/form/components/Dependency/index.js +31 -35
  462. package/lib/form/components/Digit/DigitRange.js +23 -24
  463. package/lib/form/components/Digit/index.js +27 -29
  464. package/lib/form/components/Field/index.js +55 -63
  465. package/lib/form/components/FieldSet/index.js +68 -76
  466. package/lib/form/components/FormItem/FormItemRender/index.js +58 -48
  467. package/lib/form/components/FormItem/Group/index.js +95 -95
  468. package/lib/form/components/FormItem/Group/style.js +46 -41
  469. package/lib/form/components/FormItem/index.js +135 -141
  470. package/lib/form/components/FormItem/warpField.js +165 -149
  471. package/lib/form/components/List/ListContainer.js +100 -191
  472. package/lib/form/components/List/ListItem.js +153 -200
  473. package/lib/form/components/List/index.js +97 -107
  474. package/lib/form/components/List/style.js +71 -48
  475. package/lib/form/components/Money/index.js +28 -30
  476. package/lib/form/components/Radio/index.js +45 -49
  477. package/lib/form/components/Rate/index.js +17 -21
  478. package/lib/form/components/SchemaForm/index.js +54 -68
  479. package/lib/form/components/SchemaForm/layoutType/Embed.js +5 -6
  480. package/lib/form/components/SchemaForm/layoutType/StepsForm.js +22 -26
  481. package/lib/form/components/SchemaForm/layoutType/index.js +2 -2
  482. package/lib/form/components/SchemaForm/valueType/dependency.js +13 -12
  483. package/lib/form/components/SchemaForm/valueType/divider.js +6 -7
  484. package/lib/form/components/SchemaForm/valueType/field.js +47 -45
  485. package/lib/form/components/SchemaForm/valueType/formList.js +10 -9
  486. package/lib/form/components/SchemaForm/valueType/formSet.js +10 -8
  487. package/lib/form/components/SchemaForm/valueType/group.js +9 -10
  488. package/lib/form/components/SchemaForm/valueType/ignore.js +4 -3
  489. package/lib/form/components/SchemaForm/valueType/index.js +7 -6
  490. package/lib/form/components/Segmented/index.js +20 -24
  491. package/lib/form/components/Select/index.js +69 -73
  492. package/lib/form/components/Slider/index.js +33 -35
  493. package/lib/form/components/Switch/index.js +24 -26
  494. package/lib/form/components/Text/index.js +73 -84
  495. package/lib/form/components/TextArea/index.js +17 -21
  496. package/lib/form/components/TreeSelect/index.js +20 -23
  497. package/lib/form/components/UploadButton/index.js +56 -103
  498. package/lib/form/components/UploadDragger/index.js +37 -44
  499. package/lib/form/components/index.js +42 -42
  500. package/lib/form/helpers/grid.js +68 -69
  501. package/lib/form/helpers/index.js +1 -1
  502. package/lib/form/index.js +8 -8
  503. package/lib/form/layouts/DrawerForm/index.js +149 -241
  504. package/lib/form/layouts/DrawerForm/style.js +26 -26
  505. package/lib/form/layouts/LightFilter/index.d.ts +12 -1
  506. package/lib/form/layouts/LightFilter/index.js +158 -141
  507. package/lib/form/layouts/LightFilter/style.js +52 -49
  508. package/lib/form/layouts/LoginForm/index.js +44 -48
  509. package/lib/form/layouts/LoginForm/style.js +71 -68
  510. package/lib/form/layouts/LoginFormPage/index.js +45 -49
  511. package/lib/form/layouts/LoginFormPage/style.js +136 -127
  512. package/lib/form/layouts/ModalForm/index.js +118 -203
  513. package/lib/form/layouts/ProForm/index.d.ts +1 -1
  514. package/lib/form/layouts/ProForm/index.js +5 -5
  515. package/lib/form/layouts/QueryFilter/Actions.js +23 -22
  516. package/lib/form/layouts/QueryFilter/index.js +177 -202
  517. package/lib/form/layouts/QueryFilter/style.js +45 -38
  518. package/lib/form/layouts/StepsForm/StepForm.d.ts +2 -3
  519. package/lib/form/layouts/StepsForm/StepForm.js +50 -72
  520. package/lib/form/layouts/StepsForm/index.js +174 -216
  521. package/lib/form/layouts/StepsForm/style.js +30 -29
  522. package/lib/form/layouts/index.js +9 -9
  523. package/lib/index.js +11 -11
  524. package/lib/layout/ProLayout.js +281 -292
  525. package/lib/layout/WrapContent.js +18 -14
  526. package/lib/layout/assert/Logo.js +96 -97
  527. package/lib/layout/components/AppsLogoComponents/AppsLogo.js +11 -12
  528. package/lib/layout/components/AppsLogoComponents/DefaultContent.js +19 -17
  529. package/lib/layout/components/AppsLogoComponents/SimpleContent.js +22 -19
  530. package/lib/layout/components/AppsLogoComponents/index.js +36 -40
  531. package/lib/layout/components/AppsLogoComponents/style/default.js +4 -3
  532. package/lib/layout/components/AppsLogoComponents/style/index.js +52 -51
  533. package/lib/layout/components/AppsLogoComponents/style/simple.js +3 -2
  534. package/lib/layout/components/CollapsedIcon/index.js +20 -17
  535. package/lib/layout/components/CollapsedIcon/style.js +40 -41
  536. package/lib/layout/components/Footer.js +23 -22
  537. package/lib/layout/components/FooterToolbar/index.js +59 -53
  538. package/lib/layout/components/FooterToolbar/style/index.js +38 -38
  539. package/lib/layout/components/FooterToolbar/style/stylish.js +11 -10
  540. package/lib/layout/components/GlobalFooter/index.js +27 -27
  541. package/lib/layout/components/GlobalFooter/style.js +31 -31
  542. package/lib/layout/components/GlobalHeader/ActionsContent.js +65 -81
  543. package/lib/layout/components/GlobalHeader/index.js +61 -49
  544. package/lib/layout/components/GlobalHeader/rightContentStyle.js +49 -50
  545. package/lib/layout/components/GlobalHeader/style.js +58 -55
  546. package/lib/layout/components/GridContent/index.js +26 -21
  547. package/lib/layout/components/GridContent/style.js +14 -14
  548. package/lib/layout/components/Header/index.js +65 -59
  549. package/lib/layout/components/Header/style/header.js +49 -48
  550. package/lib/layout/components/Header/style/stylish.js +15 -12
  551. package/lib/layout/components/Help/AsyncContentPanel.js +15 -20
  552. package/lib/layout/components/Help/HelpProvide.js +1 -1
  553. package/lib/layout/components/Help/ProHelpContentPanel.js +66 -85
  554. package/lib/layout/components/Help/ProHelpDrawer.js +27 -32
  555. package/lib/layout/components/Help/ProHelpModal.d.ts +1 -1
  556. package/lib/layout/components/Help/ProHelpModal.js +26 -28
  557. package/lib/layout/components/Help/ProHelpPanel.js +86 -94
  558. package/lib/layout/components/Help/ProHelpPopover.js +20 -18
  559. package/lib/layout/components/Help/RenderContentPanel.js +36 -26
  560. package/lib/layout/components/Help/Search.js +55 -80
  561. package/lib/layout/components/Help/index.js +19 -20
  562. package/lib/layout/components/Help/style.js +82 -76
  563. package/lib/layout/components/PageContainer/index.js +172 -151
  564. package/lib/layout/components/PageContainer/style/index.js +95 -79
  565. package/lib/layout/components/PageContainer/style/stylish.js +11 -10
  566. package/lib/layout/components/PageHeader/index.js +99 -99
  567. package/lib/layout/components/PageHeader/style/index.js +142 -123
  568. package/lib/layout/components/PageLoading/index.js +18 -20
  569. package/lib/layout/components/SettingDrawer/BlockCheckbox.js +31 -34
  570. package/lib/layout/components/SettingDrawer/LayoutChange.js +25 -23
  571. package/lib/layout/components/SettingDrawer/RegionalChange.js +16 -16
  572. package/lib/layout/components/SettingDrawer/ThemeColor.js +34 -36
  573. package/lib/layout/components/SettingDrawer/index.js +138 -168
  574. package/lib/layout/components/SettingDrawer/style/index.js +141 -138
  575. package/lib/layout/components/SiderMenu/BaseMenu.js +235 -221
  576. package/lib/layout/components/SiderMenu/SiderMenu.js +128 -117
  577. package/lib/layout/components/SiderMenu/index.js +49 -44
  578. package/lib/layout/components/SiderMenu/style/index.js +179 -162
  579. package/lib/layout/components/SiderMenu/style/menu.js +148 -111
  580. package/lib/layout/components/SiderMenu/style/stylish.js +15 -12
  581. package/lib/layout/components/TopNavHeader/index.js +73 -62
  582. package/lib/layout/components/TopNavHeader/style.js +64 -64
  583. package/lib/layout/context/RouteContext.js +1 -1
  584. package/lib/layout/defaultSettings.js +1 -1
  585. package/lib/layout/getPageTitle.js +27 -26
  586. package/lib/layout/index.js +16 -16
  587. package/lib/layout/locales/en-US.js +3 -2
  588. package/lib/layout/locales/index.js +8 -6
  589. package/lib/layout/locales/it-IT.js +3 -2
  590. package/lib/layout/locales/ko-KR.js +3 -2
  591. package/lib/layout/locales/zh-CN.js +3 -2
  592. package/lib/layout/locales/zh-TW.js +3 -2
  593. package/lib/layout/style/index.js +48 -43
  594. package/lib/layout/utils/getBreadcrumbProps.js +65 -62
  595. package/lib/layout/utils/getMenuData.js +9 -13
  596. package/lib/layout/utils/pathTools.js +2 -6
  597. package/lib/layout/utils/useCurrentMenuLayoutProps.js +6 -11
  598. package/lib/layout/utils/utils.js +16 -18
  599. package/lib/list/Item.js +155 -136
  600. package/lib/list/ListView.js +110 -119
  601. package/lib/list/constants.js +2 -2
  602. package/lib/list/index.js +72 -70
  603. package/lib/list/style/index.js +281 -214
  604. package/lib/provider/index.js +128 -118
  605. package/lib/provider/intl.js +56 -56
  606. package/lib/provider/typing/layoutToken.js +28 -25
  607. package/lib/provider/useStyle/index.js +55 -60
  608. package/lib/provider/utils/merge.js +12 -14
  609. package/lib/skeleton/components/Descriptions/index.js +213 -229
  610. package/lib/skeleton/components/List/index.js +211 -221
  611. package/lib/skeleton/components/Result/index.js +45 -47
  612. package/lib/skeleton/index.js +23 -19
  613. package/lib/table/Store/Provide.d.ts +4 -4
  614. package/lib/table/Store/Provide.js +103 -117
  615. package/lib/table/Table.d.ts +5 -2
  616. package/lib/table/Table.js +524 -689
  617. package/lib/table/TableSearch.d.ts +24 -0
  618. package/lib/table/TableSearch.js +61 -0
  619. package/lib/table/TableToolbar.d.ts +22 -0
  620. package/lib/table/TableToolbar.js +55 -0
  621. package/lib/table/components/Alert/index.js +41 -40
  622. package/lib/table/components/Alert/style.js +28 -28
  623. package/lib/table/components/ColumnSetting/index.js +228 -224
  624. package/lib/table/components/ColumnSetting/style.js +86 -72
  625. package/lib/table/components/DragSortTable/index.js +64 -78
  626. package/lib/table/components/DragSortTable/style.js +20 -20
  627. package/lib/table/components/Dropdown/index.js +42 -48
  628. package/lib/table/components/EditableTable/CellEditorTable.js +24 -32
  629. package/lib/table/components/EditableTable/RowEditorTable.js +23 -28
  630. package/lib/table/components/EditableTable/index.js +293 -327
  631. package/lib/table/components/Form/FormRender.js +99 -104
  632. package/lib/table/components/Form/index.d.ts +4 -19
  633. package/lib/table/components/Form/index.js +113 -159
  634. package/lib/table/components/ListToolBar/HeaderMenu.js +42 -51
  635. package/lib/table/components/ListToolBar/index.js +123 -148
  636. package/lib/table/components/ListToolBar/style.js +127 -118
  637. package/lib/table/components/ToolBar/DensityIcon.js +10 -9
  638. package/lib/table/components/ToolBar/FullscreenIcon.js +5 -10
  639. package/lib/table/components/ToolBar/index.d.ts +2 -8
  640. package/lib/table/components/ToolBar/index.js +154 -194
  641. package/lib/table/index.js +27 -27
  642. package/lib/table/style/index.js +144 -113
  643. package/lib/table/typing.d.ts +4 -0
  644. package/lib/table/useFetchData.js +197 -337
  645. package/lib/table/utils/cellRenderToFromItem.js +106 -120
  646. package/lib/table/utils/columnRender.js +65 -54
  647. package/lib/table/utils/columnSort.js +24 -23
  648. package/lib/table/utils/genProColumnToColumn.d.ts +13 -9
  649. package/lib/table/utils/genProColumnToColumn.js +121 -99
  650. package/lib/table/utils/index.d.ts +10 -0
  651. package/lib/table/utils/index.js +127 -181
  652. package/lib/table/utils/useDragSort.d.ts +1 -1
  653. package/lib/table/utils/useDragSort.js +99 -93
  654. package/lib/table/utils/usePageInfo.d.ts +6 -0
  655. package/lib/table/utils/usePageInfo.js +61 -0
  656. package/lib/utils/components/DropdownFooter/index.js +25 -23
  657. package/lib/utils/components/DropdownFooter/style.js +16 -16
  658. package/lib/utils/components/ErrorBoundary/index.js +28 -50
  659. package/lib/utils/components/FieldLabel/index.js +70 -71
  660. package/lib/utils/components/FieldLabel/style.js +104 -82
  661. package/lib/utils/components/FilterDropdown/index.d.ts +11 -0
  662. package/lib/utils/components/FilterDropdown/index.js +44 -33
  663. package/lib/utils/components/FilterDropdown/style.js +19 -17
  664. package/lib/utils/components/InlineErrorFormItem/index.js +80 -80
  665. package/lib/utils/components/InlineErrorFormItem/style.js +56 -50
  666. package/lib/utils/components/LabelIconTip/index.js +30 -32
  667. package/lib/utils/components/LabelIconTip/style.js +36 -36
  668. package/lib/utils/components/ProFormContext/index.js +1 -1
  669. package/lib/utils/conversionMomentValue/index.js +22 -23
  670. package/lib/utils/dateArrayFormatter/index.js +11 -15
  671. package/lib/utils/genCopyable/index.js +75 -33
  672. package/lib/utils/getFieldPropsOrFormItemProps/index.js +3 -2
  673. package/lib/utils/hooks/useDebounceFn/index.js +18 -52
  674. package/lib/utils/hooks/useDebounceValue/index.js +7 -17
  675. package/lib/utils/hooks/useDeepCompareEffect/index.js +7 -19
  676. package/lib/utils/hooks/useDocumentTitle/index.js +2 -2
  677. package/lib/utils/hooks/useFetchData/index.js +36 -65
  678. package/lib/utils/hooks/useForceRender/index.js +2 -10
  679. package/lib/utils/hooks/useLatest/index.js +4 -3
  680. package/lib/utils/hooks/usePrevious/index.js +5 -4
  681. package/lib/utils/hooks/useReactiveRef/index.js +2 -2
  682. package/lib/utils/hooks/useRefCallback/index.js +3 -3
  683. package/lib/utils/hooks/useRefFunction/index.js +6 -11
  684. package/lib/utils/index.d.ts +1 -2
  685. package/lib/utils/index.js +57 -65
  686. package/lib/utils/isBrowser/index.js +4 -3
  687. package/lib/utils/isDeepEqualReact/index.js +9 -45
  688. package/lib/utils/isDropdownValueType/index.js +4 -3
  689. package/lib/utils/isNil/index.js +2 -3
  690. package/lib/utils/isUrl/index.js +4 -3
  691. package/lib/utils/merge/index.js +12 -14
  692. package/lib/utils/nanoid/index.js +7 -7
  693. package/lib/utils/omitBoolean/index.js +3 -2
  694. package/lib/utils/omitUndefined/index.js +5 -4
  695. package/lib/utils/omitUndefinedAndEmptyArr/index.js +6 -6
  696. package/lib/utils/parseValueToMoment/index.js +5 -8
  697. package/lib/utils/pickProFormItemProps/index.js +3 -3
  698. package/lib/utils/pickProProps/index.js +6 -7
  699. package/lib/utils/proFieldParsingText/index.js +89 -99
  700. package/lib/utils/runFunction/index.js +2 -5
  701. package/lib/utils/stringify/index.js +2 -2
  702. package/lib/utils/transformKeySubmitValue/index.js +101 -117
  703. package/lib/utils/useEditableArray/index.d.ts +6 -1
  704. package/lib/utils/useEditableArray/index.js +582 -735
  705. package/lib/utils/useEditableMap/index.d.ts +1 -1
  706. package/lib/utils/useEditableMap/index.js +88 -135
  707. package/lib/utils/useMediaQuery/index.js +40 -35
  708. package/lib/utils/useMediaQuery/query.js +7 -18
  709. package/lib/version.js +1 -1
  710. package/package.json +20 -31
  711. package/es/utils/useMountMergeState/index.d.ts +0 -2
  712. package/es/utils/useMountMergeState/index.js +0 -2
  713. package/lib/utils/useMountMergeState/index.d.ts +0 -2
  714. package/lib/utils/useMountMergeState/index.js +0 -12
package/es/table/Table.js CHANGED
@@ -1,183 +1,156 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- import _typeof from "@babel/runtime/helpers/esm/typeof";
7
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
8
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
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";
29
20
  import { genProColumnToColumn } from "./utils/genProColumnToColumn";
21
+ import { jsx as _jsx } from "react/jsx-runtime";
30
22
  import { createElement as _createElement } from "react";
31
23
  import { Fragment as _Fragment } from "react/jsx-runtime";
32
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
33
- import { jsx as _jsx } from "react/jsx-runtime";
34
- function useEditableDataSource(_ref) {
35
- var dataSource = _ref.dataSource,
36
- editableUtils = _ref.editableUtils,
37
- pagination = _ref.pagination,
38
- getRowKey = _ref.getRowKey,
39
- childrenColumnName = _ref.childrenColumnName;
40
- return useMemo(function () {
41
- var baseData = Array.isArray(dataSource) ? _toConsumableArray(dataSource) : [];
42
- var newLineConfig = editableUtils === null || editableUtils === void 0 ? void 0 : editableUtils.newLineRecord;
43
- var defaultValue = newLineConfig === null || newLineConfig === void 0 ? void 0 : newLineConfig.defaultValue;
44
- if (!newLineConfig || !defaultValue) {
45
- return baseData;
46
- }
47
- var newLineOptions = newLineConfig.options;
48
- var childrenName = childrenColumnName || 'children';
49
- if (newLineOptions !== null && newLineOptions !== void 0 && newLineOptions.parentKey) {
50
- var _recordKeyToString, _newLineOptions$recor;
51
- var newRow = _objectSpread(_objectSpread({}, defaultValue), {}, {
52
- map_row_parentKey: (_recordKeyToString = recordKeyToString(newLineOptions.parentKey)) === null || _recordKeyToString === void 0 ? void 0 : _recordKeyToString.toString()
53
- });
54
- var actionProps = {
55
- data: baseData,
56
- getRowKey: getRowKey,
57
- row: newRow,
58
- key: (_newLineOptions$recor = newLineOptions === null || newLineOptions === void 0 ? void 0 : newLineOptions.recordKey) !== null && _newLineOptions$recor !== void 0 ? _newLineOptions$recor : getRowKey(newRow, -1),
59
- childrenColumnName: childrenName
60
- };
61
- return editableRowByKey(actionProps, (newLineOptions === null || newLineOptions === void 0 ? void 0 : newLineOptions.position) === 'top' ? 'top' : 'update');
62
- }
63
- if ((newLineOptions === null || newLineOptions === void 0 ? void 0 : newLineOptions.position) === 'top') {
64
- return [defaultValue].concat(_toConsumableArray(baseData));
65
- }
66
- var pageConfig = pagination && _typeof(pagination) === 'object' ? pagination : undefined;
67
- if (pageConfig !== null && pageConfig !== void 0 && pageConfig.current && pageConfig !== null && pageConfig !== void 0 && pageConfig.pageSize) {
68
- if (pageConfig.pageSize > baseData.length) {
69
- baseData.push(defaultValue);
70
- return baseData;
71
- }
72
- var insertIndex = pageConfig.current * pageConfig.pageSize - 1;
73
- baseData.splice(insertIndex, 0, defaultValue);
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()
46
+ };
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);
74
63
  return baseData;
75
64
  }
76
- baseData.push(defaultValue);
65
+ const insertIndex = pageConfig.current * pageConfig.pageSize - 1;
66
+ baseData.splice(insertIndex, 0, defaultValue);
77
67
  return baseData;
78
- }, [childrenColumnName, dataSource, editableUtils === null || editableUtils === void 0 ? void 0 : editableUtils.newLineRecord, getRowKey, pagination]);
68
+ }
69
+ baseData.push(defaultValue);
70
+ return baseData;
79
71
  }
80
- function useTableCardBodyStyle(_ref2) {
81
- var propsCardProps = _ref2.propsCardProps,
82
- notNeedCardDom = _ref2.notNeedCardDom,
83
- name = _ref2.name,
84
- hideToolbar = _ref2.hideToolbar,
85
- toolbarDom = _ref2.toolbarDom,
86
- pagination = _ref2.pagination;
87
- return useMemo(function () {
88
- if (propsCardProps === false || notNeedCardDom || !!name) {
89
- return {};
90
- }
91
- if (hideToolbar) {
92
- return {
93
- padding: 0
94
- };
95
- }
96
- if (toolbarDom) {
97
- return {
98
- paddingBlockStart: 0
99
- };
100
- }
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
+ }
83
+
84
+ // 显式隐藏 toolbar 时,统一不留 padding(避免误用 paddingBlockStart)
85
+ if (hideToolbar) {
101
86
  return {
102
87
  padding: 0
103
88
  };
104
- }, [hideToolbar, name, notNeedCardDom, pagination, propsCardProps, toolbarDom]);
105
- }
106
- function useTableContent(_ref3) {
107
- var editable = _ref3.editable,
108
- name = _ref3.name,
109
- toolbarDom = _ref3.toolbarDom,
110
- alertDom = _ref3.alertDom,
111
- tableDom = _ref3.tableDom,
112
- dateFormatter = _ref3.dateFormatter,
113
- editableOnValuesChange = _ref3.editableOnValuesChange;
114
- return useMemo(function () {
115
- if (editable && !name) {
116
- var _editable$formProps;
117
- return /*#__PURE__*/_jsxs(_Fragment, {
118
- children: [toolbarDom, alertDom, /*#__PURE__*/_createElement(ProForm, _objectSpread(_objectSpread({}, editable.formProps), {}, {
119
- formRef: (_editable$formProps = editable.formProps) === null || _editable$formProps === void 0 ? void 0 : _editable$formProps.formRef,
120
- component: false,
121
- form: editable.form,
122
- onValuesChange: editableOnValuesChange,
123
- key: "table",
124
- submitter: false,
125
- omitNil: false,
126
- dateFormatter: dateFormatter
127
- }), tableDom)]
128
- });
129
- }
130
- return /*#__PURE__*/_jsxs(_Fragment, {
131
- children: [toolbarDom, alertDom, tableDom]
132
- });
133
- }, [alertDom, dateFormatter, editable, editableOnValuesChange, name, tableDom, toolbarDom]);
89
+ }
90
+
91
+ // toolbar 的场景,需要让 ProCard body 顶部与 toolbar 对齐
92
+ if (toolbarDom) {
93
+ return {
94
+ paddingBlockStart: 0
95
+ };
96
+ }
97
+ return {
98
+ padding: 0
99
+ };
134
100
  }
135
- function useRowKey(_ref4) {
136
- var rowKey = _ref4.rowKey,
137
- name = _ref4.name;
138
- return useMemo(function () {
101
+ function useRowKey({
102
+ rowKey,
103
+ name
104
+ }) {
105
+ return useMemo(() => {
139
106
  if (typeof rowKey === 'function') {
140
107
  return rowKey;
141
108
  }
142
- return function (record, index) {
143
- var _ref5;
109
+ return (record, index) => {
144
110
  if (index === -1) {
145
- return record === null || record === void 0 ? void 0 : record[rowKey];
111
+ return record?.[rowKey];
146
112
  }
147
113
  if (name) {
148
- return index === null || index === void 0 ? void 0 : index.toString();
114
+ return index?.toString();
149
115
  }
150
- return (_ref5 = record === null || record === void 0 ? void 0 : record[rowKey]) !== null && _ref5 !== void 0 ? _ref5 : index === null || index === void 0 ? void 0 : index.toString();
116
+ return record?.[rowKey] ?? index?.toString();
151
117
  };
152
118
  }, [name, rowKey]);
153
119
  }
154
- function useMergedPagination(_ref6) {
155
- var propsPagination = _ref6.propsPagination,
156
- action = _ref6.action,
157
- intl = _ref6.intl,
158
- request = _ref6.request,
159
- type = _ref6.type;
160
- return useMemo(function () {
161
- var newPropsPagination = propsPagination === false ? false : _objectSpread({}, propsPagination || {});
162
- var pageConfig = _objectSpread(_objectSpread({}, action.pageInfo), {}, {
163
- setPageInfo: function setPageInfo(_ref7) {
164
- var pageSize = _ref7.pageSize,
165
- current = _ref7.current;
166
- var pageInfo = action.pageInfo;
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;
167
140
  if (pageSize === pageInfo.pageSize || pageInfo.current === 1) {
168
141
  action.setPageInfo({
169
- pageSize: pageSize,
170
- current: current
142
+ pageSize,
143
+ current
171
144
  });
172
145
  return;
173
146
  }
174
147
  if (request) action.setDataSource([]);
175
148
  action.setPageInfo({
176
- pageSize: pageSize,
149
+ pageSize,
177
150
  current: type === 'list' ? current : 1
178
151
  });
179
152
  }
180
- });
153
+ };
181
154
  if (request && newPropsPagination) {
182
155
  delete newPropsPagination.onChange;
183
156
  delete newPropsPagination.onShowSizeChange;
@@ -185,101 +158,15 @@ function useMergedPagination(_ref6) {
185
158
  return mergePagination(newPropsPagination, pageConfig, intl);
186
159
  }, [action, intl, propsPagination, request, type]);
187
160
  }
188
- function useSearchNode(_ref8) {
189
- var search = _ref8.search,
190
- type = _ref8.type,
191
- pagination = _ref8.pagination,
192
- beforeSearchSubmit = _ref8.beforeSearchSubmit,
193
- actionRef = _ref8.actionRef,
194
- columns = _ref8.columns,
195
- _onFormSearchSubmit = _ref8.onFormSearchSubmit,
196
- ghost = _ref8.ghost,
197
- onReset = _ref8.onReset,
198
- onSubmit = _ref8.onSubmit,
199
- loading = _ref8.loading,
200
- manualRequest = _ref8.manualRequest,
201
- form = _ref8.form,
202
- formRef = _ref8.formRef,
203
- cardBordered = _ref8.cardBordered,
204
- dateFormatter = _ref8.dateFormatter,
205
- searchFormRender = _ref8.searchFormRender,
206
- proTableProps = _ref8.proTableProps;
207
- return useMemo(function () {
208
- var node = search === false && type !== 'form' ? null : /*#__PURE__*/_jsx(FormRender, {
209
- pagination: pagination,
210
- beforeSearchSubmit: beforeSearchSubmit,
211
- action: actionRef,
212
- columns: columns,
213
- onFormSearchSubmit: function onFormSearchSubmit(values) {
214
- _onFormSearchSubmit(values);
215
- },
216
- ghost: ghost,
217
- onReset: onReset,
218
- onSubmit: onSubmit,
219
- loading: loading,
220
- manualRequest: manualRequest,
221
- search: search,
222
- form: form,
223
- formRef: formRef,
224
- type: type || 'table',
225
- cardBordered: cardBordered,
226
- dateFormatter: dateFormatter
227
- });
228
- if (searchFormRender && node) {
229
- return /*#__PURE__*/_jsx(_Fragment, {
230
- children: searchFormRender(proTableProps, node)
231
- });
232
- }
233
- return node;
234
- }, [actionRef, beforeSearchSubmit, cardBordered, columns, dateFormatter, form, formRef, ghost, loading, manualRequest, _onFormSearchSubmit, onReset, onSubmit, pagination, proTableProps, search, searchFormRender, type]);
235
- }
236
- function useToolbarDom(context) {
237
- var toolBarRender = context.toolBarRender,
238
- headerTitle = context.headerTitle,
239
- hideToolbar = context.hideToolbar,
240
- selectedRows = context.selectedRows,
241
- selectedRowKeys = context.selectedRowKeys,
242
- tableColumn = context.tableColumn,
243
- tooltip = context.tooltip,
244
- toolbar = context.toolbar,
245
- isLightFilter = context.isLightFilter,
246
- searchNode = context.searchNode,
247
- options = context.options,
248
- optionsRender = context.optionsRender,
249
- actionRef = context.actionRef,
250
- setFormSearch = context.setFormSearch,
251
- formSearch = context.formSearch;
252
- return useMemo(function () {
253
- if (toolBarRender === false) {
254
- return null;
255
- }
256
- return /*#__PURE__*/_jsx(Toolbar, {
257
- headerTitle: headerTitle,
258
- hideToolbar: hideToolbar,
259
- selectedRows: selectedRows,
260
- selectedRowKeys: selectedRowKeys,
261
- tableColumn: tableColumn,
262
- tooltip: tooltip,
263
- toolbar: toolbar,
264
- onFormSearchSubmit: function onFormSearchSubmit(newValues) {
265
- setFormSearch(_objectSpread(_objectSpread({}, formSearch || {}), newValues));
266
- },
267
- searchNode: isLightFilter ? searchNode : null,
268
- options: options,
269
- optionsRender: optionsRender,
270
- actionRef: actionRef,
271
- toolBarRender: toolBarRender
272
- });
273
- }, [actionRef, formSearch, headerTitle, hideToolbar, isLightFilter, options, optionsRender, searchNode, selectedRowKeys, selectedRows, setFormSearch, tableColumn, toolBarRender, tooltip, toolbar]);
274
- }
275
- function useAlertDom(_ref9) {
276
- var propsRowSelection = _ref9.propsRowSelection,
277
- selectedRowKeys = _ref9.selectedRowKeys,
278
- selectedRows = _ref9.selectedRows,
279
- onCleanSelected = _ref9.onCleanSelected,
280
- tableAlertOptionRender = _ref9.tableAlertOptionRender,
281
- tableAlertRender = _ref9.tableAlertRender;
282
- return useMemo(function () {
161
+ function useAlertDom({
162
+ propsRowSelection,
163
+ selectedRowKeys,
164
+ selectedRows,
165
+ onCleanSelected,
166
+ tableAlertOptionRender,
167
+ tableAlertRender
168
+ }) {
169
+ return useMemo(() => {
283
170
  if (propsRowSelection === false) {
284
171
  return null;
285
172
  }
@@ -289,385 +176,195 @@ function useAlertDom(_ref9) {
289
176
  onCleanSelected: onCleanSelected,
290
177
  alertOptionRender: tableAlertOptionRender,
291
178
  alertInfoRender: tableAlertRender,
292
- alwaysShowAlert: propsRowSelection === null || propsRowSelection === void 0 ? void 0 : propsRowSelection.alwaysShowAlert
179
+ alwaysShowAlert: propsRowSelection?.alwaysShowAlert
293
180
  });
294
181
  }, [onCleanSelected, propsRowSelection, selectedRowKeys, selectedRows, tableAlertOptionRender, tableAlertRender]);
295
182
  }
296
- function TableRender(props) {
297
- var _props$expandable;
298
- var rowKey = props.rowKey,
299
- tableClassName = props.tableClassName,
300
- defaultClassName = props.defaultClassName,
301
- action = props.action,
302
- tableColumns = props.tableColumn,
303
- type = props.type,
304
- pagination = props.pagination,
305
- rowSelection = props.rowSelection,
306
- size = props.size,
307
- defaultSize = props.defaultSize,
308
- tableStyle = props.tableStyle,
309
- toolbarDom = props.toolbarDom,
310
- hideToolbar = props.hideToolbar,
311
- searchNode = props.searchNode,
312
- style = props.style,
313
- propsCardProps = props.cardProps,
314
- alertDom = props.alertDom,
315
- name = props.name,
316
- onSortChange = props.onSortChange,
317
- onFilterChange = props.onFilterChange,
318
- options = props.options,
319
- isLightFilter = props.isLightFilter,
320
- className = props.className,
321
- cardBordered = props.cardBordered,
322
- editableUtils = props.editableUtils,
323
- getRowKey = props.getRowKey,
324
- tableRef = props.tableRef,
325
- rest = _objectWithoutProperties(props, _excluded);
326
- var counter = useContext(TableContext);
327
- var mergedDataSource = useEditableDataSource({
328
- dataSource: action.dataSource,
329
- editableUtils: editableUtils,
330
- pagination: pagination,
331
- getRowKey: getRowKey,
332
- childrenColumnName: ((_props$expandable = props.expandable) === null || _props$expandable === void 0 ? void 0 : _props$expandable.childrenColumnName) || 'children'
333
- });
334
-
335
- /** 需要遍历一下,不然不支持嵌套表格 */
336
- var columns = useMemo(function () {
337
- var loopFilter = function loopFilter(column) {
338
- return column.map(function (item) {
339
- // 删掉不应该显示的
340
- var columnKey = genColumnKey(item.key, item.index);
341
- var config = counter.columnsMap[columnKey];
342
- if (config && config.show === false) {
343
- return false;
344
- }
345
- if (item.children) {
346
- return _objectSpread(_objectSpread({}, item), {}, {
347
- children: loopFilter(item.children)
348
- });
349
- }
350
- return item;
351
- }).filter(Boolean);
352
- };
353
- return loopFilter(tableColumns);
354
- }, [counter.columnsMap, tableColumns]);
355
-
356
- // 需要进行筛选的列
357
- var useFilterColumns = useMemo(function () {
358
- var _columns = flattenColumns(columns);
359
- return _columns.filter(function (column) {
360
- return !!column.filters;
361
- });
362
- }, [columns]);
363
- var getTableProps = function getTableProps() {
364
- return _objectSpread(_objectSpread({}, rest), {}, {
365
- size: size,
366
- rowSelection: rowSelection === false ? undefined : rowSelection,
367
- className: tableClassName,
368
- style: tableStyle,
369
- columns: columns,
370
- loading: action.loading,
371
- dataSource: mergedDataSource,
372
- pagination: pagination,
373
- onChange: function onChange(changePagination, filters, sorter, extra) {
374
- var _rest$onChange;
375
- (_rest$onChange = rest.onChange) === null || _rest$onChange === void 0 || _rest$onChange.call(rest, changePagination, filters, sorter, extra);
376
-
377
- // 传递服务端筛选数据
378
- var serverFilter = getServerFilterResult(filters, useFilterColumns);
379
- onFilterChange(omitUndefined(serverFilter));
380
-
381
- // 传递服务端排序数据
382
- var serverSorter = getServerSorterResult(sorter);
383
- onSortChange(omitUndefined(serverSorter));
384
- }
385
- });
386
- };
387
-
388
- /**
389
- * 是否需要 card 来包裹
390
- */
391
- var notNeedCardDom = useMemo(function () {
392
- if (props.search === false && !props.headerTitle && props.toolBarRender === false) {
393
- return true;
394
- }
395
- return false;
396
- }, []);
397
-
398
- /** 默认的 table dom,如果是编辑模式,外面还要包个 form */
399
- var baseTableDom = /*#__PURE__*/_jsx(GridContext.Provider, {
400
- value: {
401
- grid: false,
402
- colProps: undefined,
403
- rowProps: undefined
404
- },
405
- children: /*#__PURE__*/_jsx(Table, _objectSpread(_objectSpread({}, getTableProps()), {}, {
406
- rowKey: rowKey,
407
- ref: tableRef
408
- }))
409
- });
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);
410
229
 
411
- /** 自定义的 render */
412
- var tableDom = props.tableViewRender ? props.tableViewRender(_objectSpread(_objectSpread({}, getTableProps()), {}, {
413
- rowSelection: rowSelection !== false ? rowSelection : undefined
414
- }), baseTableDom) : baseTableDom;
415
- var tableContentDom = useTableContent({
416
- editable: props.editable,
417
- name: props.name,
418
- toolbarDom: toolbarDom,
419
- alertDom: alertDom,
420
- tableDom: tableDom,
421
- dateFormatter: props.dateFormatter,
422
- editableOnValuesChange: editableUtils.onValuesChange
423
- });
424
- var cardBodyStyle = useTableCardBodyStyle({
425
- propsCardProps: propsCardProps,
426
- notNeedCardDom: notNeedCardDom,
427
- name: props.name,
428
- hideToolbar: hideToolbar,
429
- toolbarDom: toolbarDom,
430
- pagination: pagination
431
- });
230
+ /** 通用的来操作子节点的工具类 */
231
+ const actionRef = useRef();
232
+ // antd Table 实例 ref(仅用于转发 scrollTo 能力)
233
+ const antTableRef = useRef(null);
234
+ const defaultFormRef = useRef();
235
+ const formRef = propRef || defaultFormRef;
236
+ useImperativeHandle(propsActionRef, () => actionRef.current);
432
237
 
433
- /** Table 区域的 dom,为了方便 render */
434
- var tableAreaDom =
435
- // cardProps 或者 有了name 就不需要这个padding了,不然会导致不好对齐
436
- propsCardProps === false || notNeedCardDom === true || !!props.name ? tableContentDom : /*#__PURE__*/_jsx(ProCard, _objectSpread(_objectSpread({
437
- ghost: props.ghost,
438
- variant: isBordered('table', cardBordered) ? 'outlined' : 'borderless',
439
- styles: {
440
- body: cardBodyStyle
441
- }
442
- }, propsCardProps), {}, {
443
- children: tableContentDom
444
- }));
445
- var renderTable = function renderTable() {
446
- if (props.tableRender) {
447
- return props.tableRender(props, tableAreaDom, {
448
- toolbar: toolbarDom || undefined,
449
- alert: alertDom || undefined,
450
- table: tableDom || undefined
451
- });
238
+ /** 单选多选的相关逻辑 */
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;
452
245
  }
453
- return tableAreaDom;
454
- };
455
- var proTableDom = /*#__PURE__*/_jsxs("div", {
456
- className: classNames(className, _defineProperty({}, "".concat(defaultClassName, "-polling"), action.pollingLoading)),
457
- style: style,
458
- ref: counter.rootDomRef,
459
- children: [isLightFilter ? null : searchNode, type !== 'form' && props.tableExtraRender && /*#__PURE__*/_jsx("div", {
460
- className: classNames(className, "".concat(defaultClassName, "-extra")),
461
- children: props.tableExtraRender(props, action.dataSource || [])
462
- }), type !== 'form' && renderTable()]
246
+ return {};
463
247
  });
464
248
 
465
- // 如果不需要的全屏,ConfigProvider 没有意义
466
- if (!options || !(options !== null && options !== void 0 && options.fullScreen)) {
467
- return proTableDom;
468
- }
469
- return /*#__PURE__*/_jsx(ConfigProvider, {
470
- getPopupContainer: function getPopupContainer() {
471
- return counter.rootDomRef.current || document.body;
472
- },
473
- children: proTableDom
474
- });
475
- }
476
- var emptyObj = {};
477
- var ProTable = function ProTable(props) {
478
- var _props$expandable2, _counter$rootDomRef;
479
- var cardBordered = props.cardBordered,
480
- request = props.request,
481
- propsClassName = props.className,
482
- _props$params = props.params,
483
- params = _props$params === void 0 ? emptyObj : _props$params,
484
- defaultData = props.defaultData,
485
- headerTitle = props.headerTitle,
486
- postData = props.postData,
487
- ghost = props.ghost,
488
- propsPagination = props.pagination,
489
- propsActionRef = props.actionRef,
490
- _props$columns = props.columns,
491
- propsColumns = _props$columns === void 0 ? [] : _props$columns,
492
- toolBarRender = props.toolBarRender,
493
- optionsRender = props.optionsRender,
494
- onLoad = props.onLoad,
495
- onRequestError = props.onRequestError,
496
- style = props.style,
497
- cardProps = props.cardProps,
498
- tableStyle = props.tableStyle,
499
- tableClassName = props.tableClassName,
500
- options = props.options,
501
- search = props.search,
502
- isEditorTable = props.name,
503
- onLoadingChange = props.onLoadingChange,
504
- _props$rowSelection = props.rowSelection,
505
- propsRowSelection = _props$rowSelection === void 0 ? false : _props$rowSelection,
506
- beforeSearchSubmit = props.beforeSearchSubmit,
507
- tableAlertRender = props.tableAlertRender,
508
- defaultClassName = props.defaultClassName,
509
- propRef = props.formRef,
510
- _props$type = props.type,
511
- type = _props$type === void 0 ? 'table' : _props$type,
512
- _props$columnEmptyTex = props.columnEmptyText,
513
- columnEmptyText = _props$columnEmptyTex === void 0 ? '-' : _props$columnEmptyTex,
514
- toolbar = props.toolbar,
515
- rowKey = props.rowKey,
516
- manualRequest = props.manualRequest,
517
- polling = props.polling,
518
- tooltip = props.tooltip,
519
- _props$revalidateOnFo = props.revalidateOnFocus,
520
- revalidateOnFocus = _props$revalidateOnFo === void 0 ? false : _props$revalidateOnFo,
521
- searchFormRender = props.searchFormRender,
522
- rest = _objectWithoutProperties(props, _excluded2);
523
- var _useStyle = useStyle(props.defaultClassName),
524
- wrapSSR = _useStyle.wrapSSR,
525
- hashId = _useStyle.hashId;
526
- var className = classNames(defaultClassName, propsClassName, hashId);
527
-
528
- /** 通用的来操作子节点的工具类 */
529
- var actionRef = useRef();
530
- // antd Table 实例 ref(仅用于转发 scrollTo 能力)
531
- var antTableRef = useRef(null);
532
- var defaultFormRef = useRef();
533
- var formRef = propRef || defaultFormRef;
534
- useImperativeHandle(propsActionRef, function () {
535
- return actionRef.current;
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);
536
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);
537
279
 
538
- /** 单选多选的相关逻辑 */
539
- var _useMountMergeState = useMountMergeState(propsRowSelection ? (propsRowSelection === null || propsRowSelection === void 0 ? void 0 : propsRowSelection.defaultSelectedRowKeys) || [] : undefined, {
540
- value: propsRowSelection ? propsRowSelection.selectedRowKeys : undefined
541
- }),
542
- _useMountMergeState2 = _slicedToArray(_useMountMergeState, 2),
543
- selectedRowKeys = _useMountMergeState2[0],
544
- setSelectedRowKeys = _useMountMergeState2[1];
545
- var _useMountMergeState3 = useMountMergeState(function () {
546
- // 如果手动模式,或者 search 不存在的时候设置为 undefined
547
- // undefined 就不会触发首次加载
548
- if (manualRequest || search !== false) {
549
- return undefined;
550
- }
551
- return {};
552
- }),
553
- _useMountMergeState4 = _slicedToArray(_useMountMergeState3, 2),
554
- formSearch = _useMountMergeState4[0],
555
- setFormSearch = _useMountMergeState4[1];
556
- var _useMemo = useMemo(function () {
557
- var _parseServerDefaultCo = parseServerDefaultColumnConfig(flattenColumns(propsColumns)),
558
- sort = _parseServerDefaultCo.sort,
559
- filter = _parseServerDefaultCo.filter;
560
- return {
561
- defaultProFilter: filter,
562
- defaultProSort: sort
563
- };
564
- }, [propsColumns]),
565
- defaultProFilter = _useMemo.defaultProFilter,
566
- defaultProSort = _useMemo.defaultProSort;
567
- var _useMountMergeState5 = useMountMergeState(defaultProFilter),
568
- _useMountMergeState6 = _slicedToArray(_useMountMergeState5, 2),
569
- proFilter = _useMountMergeState6[0],
570
- setProFilter = _useMountMergeState6[1];
571
- var _useMountMergeState7 = useMountMergeState(defaultProSort),
572
- _useMountMergeState8 = _slicedToArray(_useMountMergeState7, 2),
573
- proSort = _useMountMergeState8[0],
574
- setProSort = _useMountMergeState8[1];
575
- var intl = useIntl();
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();
576
289
 
577
290
  /** 需要初始化 不然默认可能报错 这里取了 defaultCurrent 和 current 为了保证不会重复刷新 */
578
- var fetchPagination = _typeof(propsPagination) === 'object' ? propsPagination : {
291
+ const fetchPagination = typeof propsPagination === 'object' ? propsPagination : {
579
292
  defaultCurrent: 1,
580
293
  defaultPageSize: 20,
581
294
  pageSize: 20,
582
295
  current: 1
583
296
  };
584
- var counter = useContext(TableContext);
297
+ const counter = useContext(TableContext);
585
298
 
586
299
  // ============================ useFetchData ============================
587
- var fetchData = useMemo(function () {
300
+ const fetchData = useMemo(() => {
588
301
  if (!request) return undefined;
589
- return /*#__PURE__*/function () {
590
- var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(pageParams) {
591
- var actionParams, response;
592
- return _regeneratorRuntime().wrap(function _callee$(_context) {
593
- while (1) switch (_context.prev = _context.next) {
594
- case 0:
595
- actionParams = _objectSpread(_objectSpread(_objectSpread({}, pageParams || {}), formSearch), params); // eslint-disable-next-line no-underscore-dangle
596
- delete actionParams._timestamp;
597
- _context.next = 4;
598
- return request(actionParams, proSort, proFilter);
599
- case 4:
600
- response = _context.sent;
601
- return _context.abrupt("return", response);
602
- case 6:
603
- case "end":
604
- return _context.stop();
605
- }
606
- }, _callee);
607
- }));
608
- return function (_x) {
609
- return _ref10.apply(this, arguments);
302
+ return async pageParams => {
303
+ const actionParams = {
304
+ ...(pageParams || {}),
305
+ ...(formSearchRef.current || {}),
306
+ ...params
610
307
  };
611
- }();
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
+ };
612
314
  }, [formSearch, params, proFilter, proSort, request]);
613
- var action = useFetchData(fetchData, defaultData, {
315
+ const action = useFetchData(fetchData, defaultData, {
614
316
  pageInfo: propsPagination === false ? false : fetchPagination,
615
317
  loading: props.loading,
616
318
  dataSource: props.dataSource,
617
319
  onDataSourceChange: props.onDataSourceChange,
618
- onLoad: onLoad,
619
- onLoadingChange: onLoadingChange,
620
- onRequestError: onRequestError,
621
- postData: postData,
622
- revalidateOnFocus: revalidateOnFocus,
320
+ onLoad,
321
+ onLoadingChange,
322
+ onRequestError,
323
+ postData,
324
+ revalidateOnFocus,
623
325
  manual: formSearch === undefined,
624
- polling: polling,
326
+ polling,
625
327
  effects: [stringify(params), stringify(formSearch), stringify(proFilter), stringify(proSort)],
626
328
  debounceTime: props.debounceTime,
627
- onPageInfoChange: function onPageInfoChange(pageInfo) {
628
- var _propsPagination$onCh, _propsPagination$onSh;
329
+ onPageInfoChange: pageInfo => {
629
330
  if (!propsPagination || !fetchData) return;
630
331
 
631
332
  // 总是触发一下 onChange 和 onShowSizeChange
632
333
  // 目前只有 List 和 Table 支持分页, List 有分页的时候打断 Table 的分页
633
- propsPagination === null || propsPagination === void 0 || (_propsPagination$onCh = propsPagination.onChange) === null || _propsPagination$onCh === void 0 || _propsPagination$onCh.call(propsPagination, pageInfo.current, pageInfo.pageSize);
634
- 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);
635
336
  }
636
337
  });
637
338
  // ============================ END ============================
638
339
 
639
340
  /** 聚焦的时候重新请求数据,这样可以保证数据都是最新的。 */
640
- useEffect(function () {
641
- var _props$form;
341
+ useEffect(() => {
642
342
  // 手动模式和 request 为空都不生效
643
- 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;
644
344
 
645
345
  // 聚焦时重新请求事件
646
- var visibilitychange = function visibilitychange() {
346
+ const visibilitychange = () => {
647
347
  if (document.visibilityState === 'visible') {
648
348
  action.reload();
649
349
  }
650
350
  };
651
351
  document.addEventListener('visibilitychange', visibilitychange);
652
- return function () {
653
- return document.removeEventListener('visibilitychange', visibilitychange);
654
- };
352
+ return () => document.removeEventListener('visibilitychange', visibilitychange);
655
353
  // eslint-disable-next-line react-hooks/exhaustive-deps
656
354
  }, []);
657
355
 
658
356
  /** SelectedRowKeys受控处理selectRows */
659
- var preserveRecordsRef = React.useRef(new Map());
357
+ const preserveRecordsRef = React.useRef(new Map());
660
358
 
661
359
  // ============================ RowKey ============================
662
- var getRowKey = useRowKey({
663
- rowKey: rowKey,
360
+ const getRowKey = useRowKey({
361
+ rowKey,
664
362
  name: props.name
665
363
  });
666
- useMemo(function () {
667
- var _action$dataSource;
668
- if ((_action$dataSource = action.dataSource) !== null && _action$dataSource !== void 0 && _action$dataSource.length) {
669
- var keys = action.dataSource.map(function (data) {
670
- var dataRowKey = getRowKey(data, -1);
364
+ useMemo(() => {
365
+ if (action.dataSource?.length) {
366
+ const keys = action.dataSource.map(data => {
367
+ const dataRowKey = getRowKey(data, -1);
671
368
  preserveRecordsRef.current.set(dataRowKey, data);
672
369
  return dataRowKey;
673
370
  });
@@ -677,17 +374,26 @@ var ProTable = function ProTable(props) {
677
374
  }, [action.dataSource, getRowKey]);
678
375
 
679
376
  /** 页面编辑的计算 */
680
- var pagination = useMergedPagination({
681
- propsPagination: propsPagination,
682
- action: action,
683
- intl: intl,
684
- request: request,
685
- type: type
377
+ const pagination = useMergedPagination({
378
+ propsPagination,
379
+ action,
380
+ intl,
381
+ request,
382
+ type
686
383
  });
687
- useDeepCompareEffect(function () {
688
- var _action$pageInfo;
384
+
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
+ });
392
+ }
393
+ }, [pagination]);
394
+ useDeepCompareEffect(() => {
689
395
  // request 存在且params不为空,且已经请求过数据才需要设置。
690
- 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) {
691
397
  action.setPageInfo({
692
398
  current: 1
693
399
  });
@@ -698,62 +404,66 @@ var ProTable = function ProTable(props) {
698
404
  // 设置 name 到 store 中,里面用了 ref ,所以不用担心直接 set
699
405
  counter.setPrefixName(props.name);
700
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
+
701
414
  /** 清空所有的选中项 */
702
- var _onCleanSelected = useCallback(function () {
415
+ const onCleanSelected = useRefFunction(() => {
703
416
  if (propsRowSelection && propsRowSelection.onChange) {
704
417
  propsRowSelection.onChange([], [], {
705
418
  type: 'none'
706
419
  });
707
420
  }
708
421
  setSelectedRowKeys([]);
709
- }, [propsRowSelection, setSelectedRowKeys]);
422
+ });
710
423
  counter.propsRef.current = props;
711
424
 
712
425
  /** 可编辑行的相关配置 */
713
- var editableUtils = useEditableArray(_objectSpread(_objectSpread({}, props.editable), {}, {
426
+ const editableUtils = useEditableArray({
427
+ ...props.editable,
714
428
  tableName: props.name,
715
- getRowKey: getRowKey,
716
- childrenColumnName: ((_props$expandable2 = props.expandable) === null || _props$expandable2 === void 0 ? void 0 : _props$expandable2.childrenColumnName) || 'children',
429
+ getRowKey,
430
+ childrenColumnName: props.expandable?.childrenColumnName || 'children',
717
431
  dataSource: action.dataSource || [],
718
- setDataSource: function setDataSource(data) {
719
- var _props$editable, _props$editable$onVal;
720
- (_props$editable = props.editable) === null || _props$editable === void 0 || (_props$editable$onVal = _props$editable.onValuesChange) === null || _props$editable$onVal === void 0 || _props$editable$onVal.call(_props$editable, undefined, data);
432
+ setDataSource: data => {
433
+ props.editable?.onValuesChange?.(undefined, data);
721
434
  action.setDataSource(data);
722
435
  }
723
- }));
436
+ });
724
437
 
725
438
  // ============================ Render ============================
726
- var _proTheme$useToken = proTheme === null || proTheme === void 0 ? void 0 : proTheme.useToken(),
727
- token = _proTheme$useToken.token;
439
+ const {
440
+ token
441
+ } = proTheme?.useToken();
728
442
 
729
443
  /** 绑定 action */
730
444
  useActionType(actionRef, action, {
731
- nativeElement: ((_counter$rootDomRef = counter.rootDomRef) === null || _counter$rootDomRef === void 0 ? void 0 : _counter$rootDomRef.current) || undefined,
732
- focus: function focus() {
733
- var _counter$rootDomRef2;
445
+ nativeElement: counter.rootDomRef?.current || undefined,
446
+ focus: () => {
734
447
  // 聚焦到表格根元素
735
- (_counter$rootDomRef2 = counter.rootDomRef) === null || _counter$rootDomRef2 === void 0 || (_counter$rootDomRef2 = _counter$rootDomRef2.current) === null || _counter$rootDomRef2 === void 0 || _counter$rootDomRef2.focus();
448
+ counter.rootDomRef?.current?.focus();
736
449
  },
737
- fullScreen: function fullScreen() {
738
- var _counter$rootDomRef3;
739
- if (!((_counter$rootDomRef3 = counter.rootDomRef) !== null && _counter$rootDomRef3 !== void 0 && _counter$rootDomRef3.current) || !document.fullscreenEnabled) {
450
+ fullScreen: () => {
451
+ if (!counter.rootDomRef?.current || !document.fullscreenEnabled) {
740
452
  return;
741
453
  }
742
454
  if (document.fullscreenElement) {
743
455
  document.exitFullscreen();
744
456
  } else {
745
- var _counter$rootDomRef4;
746
- (_counter$rootDomRef4 = counter.rootDomRef) === null || _counter$rootDomRef4 === void 0 || _counter$rootDomRef4.current.requestFullscreen();
457
+ counter.rootDomRef?.current.requestFullscreen();
747
458
  }
748
459
  },
749
- onCleanSelected: function onCleanSelected() {
460
+ onCleanSelected: () => {
750
461
  // 清空选中行
751
- _onCleanSelected();
462
+ onCleanSelected();
752
463
  },
753
- resetAll: function resetAll() {
754
- var _formRef$current;
464
+ resetAll: () => {
755
465
  // 清空选中行
756
- _onCleanSelected();
466
+ onCleanSelected();
757
467
 
758
468
  // 清空 toolbar 搜索
759
469
  counter.setKeyWords(undefined);
@@ -768,58 +478,61 @@ var ProTable = function ProTable(props) {
768
478
  setProSort(defaultProSort);
769
479
 
770
480
  // 重置表单
771
- 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 ?? {});
772
487
  },
773
- editableUtils: editableUtils,
774
- scrollTo: function scrollTo(arg) {
775
- var _current, _current$scrollTo;
776
- 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);
777
- }
488
+ editableUtils,
489
+ scrollTo: arg => antTableRef?.current?.scrollTo?.(arg)
778
490
  });
779
491
 
780
492
  /** 同步 action */
781
493
  counter.setAction(actionRef.current);
782
494
 
783
495
  // ---------- 列计算相关 start -----------------
784
- var tableColumn = useMemo(function () {
785
- 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
+ };
786
508
  return genProColumnToColumn({
787
509
  columns: propsColumns,
788
- counter: counter,
789
- columnEmptyText: columnEmptyText,
790
- type: type,
791
- marginSM: token.marginSM,
792
- editableUtils: editableUtils,
793
- rowKey: rowKey,
794
- childrenColumnName: (_props$expandable3 = props.expandable) === null || _props$expandable3 === void 0 ? void 0 : _props$expandable3.childrenColumnName,
795
- proFilter: proFilter,
796
- proSort: proSort
797
- }).sort(columnSort(counter.columnsMap));
510
+ context: columnContext
511
+ }).sort(columnSort(counter.columnsMap ?? {}));
798
512
  // eslint-disable-next-line react-hooks/exhaustive-deps
799
- }, [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,
800
514
  // eslint-disable-next-line react-hooks/exhaustive-deps
801
515
  editableUtils.editableKeys && editableUtils.editableKeys.join(','), proFilter, proSort]);
802
516
 
803
517
  /** Table Column 变化的时候更新一下,这个参数将会用于渲染 */
804
- useDeepCompareEffectDebounce(function () {
518
+ useDeepCompareEffectDebounce(() => {
805
519
  if (tableColumn && tableColumn.length > 0) {
806
520
  // 重新生成key的字符串用于排序
807
- var columnKeys = tableColumn.map(function (item) {
808
- return genColumnKey(item.key, item.index);
809
- });
521
+ const columnKeys = tableColumn.map(item => genColumnKey(item.key, item.index));
810
522
  counter.setSortKeyColumns(columnKeys);
811
523
  }
812
524
  }, [tableColumn], ['render', 'formItemRender'], 100);
813
525
 
814
526
  /** 同步 Pagination,支持受控的 页码 和 pageSize */
815
- useDeepCompareEffect(function () {
816
- var pageInfo = action.pageInfo;
817
- var _ref11 = propsPagination || {},
818
- _ref11$current = _ref11.current,
819
- current = _ref11$current === void 0 ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.current : _ref11$current,
820
- _ref11$pageSize = _ref11.pageSize,
821
- pageSize = _ref11$pageSize === void 0 ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.pageSize : _ref11$pageSize;
822
- 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)) {
823
536
  action.setPageInfo({
824
537
  pageSize: pageSize || pageInfo.pageSize,
825
538
  current: current || pageInfo.current
@@ -828,44 +541,45 @@ var ProTable = function ProTable(props) {
828
541
  }, [propsPagination && propsPagination.pageSize, propsPagination && propsPagination.current]);
829
542
 
830
543
  /** 行选择相关的问题 */
831
- var rowSelection = _objectSpread(_objectSpread({
832
- selectedRowKeys: selectedRowKeys
833
- }, propsRowSelection), {}, {
834
- onChange: function onChange(keys, rows, info) {
544
+ const rowSelection = {
545
+ selectedRowKeys,
546
+ ...propsRowSelection,
547
+ onChange: (keys, rows, info) => {
835
548
  if (propsRowSelection && propsRowSelection.onChange) {
836
549
  propsRowSelection.onChange(keys, rows, info);
837
550
  }
838
551
  setSelectedRowKeys(keys);
839
552
  }
840
- });
553
+ };
841
554
 
842
555
  /** 是不是 LightFilter, LightFilter 有一些特殊的处理 */
843
- var isLightFilter = search !== false && (search === null || search === void 0 ? void 0 : search.filterType) === 'light';
844
- var onFormSearchSubmit = useCallback(function (values) {
556
+ const isLightFilter = search !== false && search?.filterType === 'light';
557
+ const onFormSearchSubmit = useRefFunction(values => {
845
558
  // 判断search.onSearch返回值决定是否更新formSearch
846
559
  if (options && options.search) {
847
- var _options$search, _options$search$onSea;
848
- var _ref12 = options.search === true ? {} : options.search,
849
- _ref12$name = _ref12.name,
850
- name = _ref12$name === void 0 ? 'keyword' : _ref12$name;
560
+ const {
561
+ name = 'keyword'
562
+ } = options.search === true ? {} : options.search;
851
563
 
852
564
  /** 如果传入的 onSearch 返回值为 false,则不要把options.search.name对应的值set到formSearch */
853
- 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);
854
566
  if (success !== false) {
855
- setFormSearch(_objectSpread(_objectSpread({}, values), {}, _defineProperty({}, name, counter.keyWords)));
567
+ setFormSearchWithRef({
568
+ ...values,
569
+ [name]: counter.keyWords
570
+ });
856
571
  return;
857
572
  }
858
573
  }
859
- setFormSearch(values);
860
- }, [counter.keyWords, options, setFormSearch]);
861
- var loading = useMemo(function () {
862
- if (_typeof(action.loading) === 'object') {
863
- var _action$loading;
864
- 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;
865
579
  }
866
580
  return action.loading;
867
581
  }, [action.loading]);
868
- var searchNode = useSearchNode({
582
+ const searchNode = /*#__PURE__*/_jsx(TableSearch, {
869
583
  search: search,
870
584
  type: type,
871
585
  pagination: pagination,
@@ -885,16 +599,9 @@ var ProTable = function ProTable(props) {
885
599
  searchFormRender: searchFormRender,
886
600
  proTableProps: props
887
601
  });
888
- var selectedRows = useMemo(function () {
889
- return selectedRowKeys === null || selectedRowKeys === void 0 ? void 0 : selectedRowKeys.map(function (key) {
890
- var _preserveRecordsRef$c;
891
- return (_preserveRecordsRef$c = preserveRecordsRef.current) === null || _preserveRecordsRef$c === void 0 ? void 0 : _preserveRecordsRef$c.get(key);
892
- });
893
- }, [action.dataSource, selectedRowKeys]);
894
- var hideToolbar = useMemo(function () {
895
- return options === false && !headerTitle && !toolBarRender && !toolbar && !isLightFilter;
896
- }, [options, headerTitle, toolBarRender, toolbar, isLightFilter]);
897
- var toolbarDom = useToolbarDom({
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, {
898
605
  toolBarRender: toolBarRender,
899
606
  headerTitle: headerTitle,
900
607
  hideToolbar: hideToolbar,
@@ -908,44 +615,159 @@ var ProTable = function ProTable(props) {
908
615
  options: options,
909
616
  optionsRender: optionsRender,
910
617
  actionRef: actionRef,
911
- setFormSearch: setFormSearch,
618
+ setFormSearch: setFormSearchWithRef,
912
619
  formSearch: formSearch
913
620
  });
914
- var alertDom = useAlertDom({
915
- propsRowSelection: propsRowSelection,
916
- selectedRowKeys: selectedRowKeys,
917
- selectedRows: selectedRows,
918
- onCleanSelected: _onCleanSelected,
621
+ const alertDom = useAlertDom({
622
+ propsRowSelection,
623
+ selectedRowKeys,
624
+ selectedRows,
625
+ onCleanSelected,
919
626
  tableAlertOptionRender: rest.tableAlertOptionRender,
920
- tableAlertRender: tableAlertRender
627
+ tableAlertRender
921
628
  });
922
- return wrapSSR( /*#__PURE__*/_jsx(TableRender, _objectSpread(_objectSpread({}, props), {}, {
923
- name: isEditorTable,
924
- defaultClassName: defaultClassName,
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,
925
671
  size: counter.tableSize,
926
- onSizeChange: counter.setTableSize,
927
- pagination: pagination,
928
- searchNode: searchNode,
929
- rowSelection: propsRowSelection !== false ? rowSelection : undefined,
930
- className: className,
931
- tableColumn: tableColumn,
932
- isLightFilter: isLightFilter,
933
- action: action,
934
- alertDom: alertDom,
935
- toolbarDom: toolbarDom,
936
- hideToolbar: hideToolbar,
937
- onSortChange: function onSortChange(sortConfig) {
938
- if (isEqual(sortConfig, proSort)) return;
939
- 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
940
693
  },
941
- onFilterChange: function onFilterChange(filterConfig) {
942
- if (isEqual(filterConfig, proFilter)) return;
943
- setProFilter(filterConfig !== null && filterConfig !== void 0 ? filterConfig : {});
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
+ } : {})
737
+ },
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;
944
768
  },
945
- editableUtils: editableUtils,
946
- getRowKey: getRowKey,
947
- tableRef: antTableRef
948
- })));
769
+ children: proTableDom
770
+ }));
949
771
  };
950
772
 
951
773
  /**
@@ -953,20 +775,33 @@ var ProTable = function ProTable(props) {
953
775
  *
954
776
  * @param props
955
777
  */
956
- var ProviderTableContainer = function ProviderTableContainer(props) {
957
- var _useContext = useContext(ConfigProvider.ConfigContext),
958
- getPrefixCls = _useContext.getPrefixCls;
959
- var ErrorComponent = props.ErrorBoundary === false ? React.Fragment : props.ErrorBoundary || ErrorBoundary;
960
- 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);
961
784
  return /*#__PURE__*/_jsx(Container, {
962
- 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
+ },
963
794
  children: /*#__PURE__*/_jsx(ProConfigProvider, {
964
- valueTypeMap: _objectSpread(_objectSpread({}, context.valueTypeMap), ValueTypeToComponent),
795
+ valueTypeMap: {
796
+ ...context.valueTypeMap,
797
+ ...ValueTypeToComponent
798
+ },
965
799
  needDeps: true,
966
800
  children: /*#__PURE__*/_jsx(ErrorComponent, {
967
- children: /*#__PURE__*/_jsx(ProTable, _objectSpread({
968
- defaultClassName: "".concat(getPrefixCls('pro-table'))
969
- }, props))
801
+ children: /*#__PURE__*/_jsx(ProTable, {
802
+ defaultClassName: `${getPrefixCls('pro-table')}`,
803
+ ...props
804
+ })
970
805
  })
971
806
  })
972
807
  });