@ant-design/pro-components 3.1.12-0 → 3.1.13-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/README.es-PR.md +12 -0
  2. package/README.md +12 -0
  3. package/README.zh-CN.md +12 -0
  4. package/dist/pro-components.min.js +1 -1
  5. package/es/card/ProCard.d.ts +2 -2
  6. package/es/card/ProCard.js +7 -2
  7. package/es/card/components/Card/index.js +33 -25
  8. package/es/card/components/Card/style.js +44 -14
  9. package/es/card/components/CheckCard/Group.d.ts +22 -42
  10. package/es/card/components/CheckCard/Group.js +57 -47
  11. package/es/card/components/CheckCard/index.d.ts +3 -4
  12. package/es/card/components/CheckCard/index.js +19 -7
  13. package/es/card/components/CheckCard/style.d.ts +1 -1
  14. package/es/card/components/CheckCard/style.js +28 -27
  15. package/es/card/components/Loading/style.js +4 -3
  16. package/es/card/components/Operation/index.d.ts +1 -1
  17. package/es/card/components/Operation/style.js +4 -3
  18. package/es/card/components/Statistic/index.d.ts +1 -1
  19. package/es/card/components/Statistic/style.d.ts +1 -1
  20. package/es/card/components/Statistic/style.js +9 -6
  21. package/es/card/components/StatisticCard/style.d.ts +1 -1
  22. package/es/card/components/StatisticCard/style.js +5 -5
  23. package/es/card/typing.d.ts +1 -1
  24. package/es/descriptions/FieldRender.d.ts +16 -0
  25. package/es/descriptions/FieldRender.js +134 -0
  26. package/es/descriptions/ProDescriptions.d.ts +5 -0
  27. package/es/descriptions/ProDescriptions.js +139 -0
  28. package/es/descriptions/getDataFromConfig.d.ts +5 -0
  29. package/es/descriptions/getDataFromConfig.js +16 -0
  30. package/es/descriptions/index.d.ts +6 -98
  31. package/es/descriptions/index.js +4 -430
  32. package/es/descriptions/resolveValueType.d.ts +6 -0
  33. package/es/descriptions/resolveValueType.js +9 -0
  34. package/es/descriptions/schemaToDescriptionsItem.d.ts +8 -0
  35. package/es/descriptions/schemaToDescriptionsItem.js +90 -0
  36. package/es/descriptions/typing.d.ts +70 -0
  37. package/es/descriptions/typing.js +27 -0
  38. package/es/descriptions/useFetchData.d.ts +13 -12
  39. package/es/descriptions/useFetchData.js +23 -13
  40. package/es/field/AllProField.d.ts +8 -34
  41. package/es/field/AllProField.js +172 -274
  42. package/es/field/ProFieldCore.d.ts +23 -0
  43. package/es/field/ProFieldCore.js +74 -0
  44. package/es/field/PureProField.d.ts +9 -39
  45. package/es/field/PureProField.js +56 -110
  46. package/es/field/ValueTypeToComponent.d.ts +4 -1
  47. package/es/field/ValueTypeToComponent.js +257 -673
  48. package/es/field/components/Cascader/FieldCascaderEdit.d.ts +17 -0
  49. package/es/field/components/Cascader/FieldCascaderEdit.js +45 -0
  50. package/es/field/components/Cascader/FieldCascaderLightEdit.d.ts +17 -0
  51. package/es/field/components/Cascader/FieldCascaderLightEdit.js +68 -0
  52. package/es/field/components/Cascader/FieldCascaderRead.d.ts +6 -0
  53. package/es/field/components/Cascader/FieldCascaderRead.js +21 -0
  54. package/es/field/components/Cascader/index.d.ts +7 -13
  55. package/es/field/components/Cascader/index.js +40 -76
  56. package/es/field/components/Cascader/types.d.ts +8 -0
  57. package/es/field/components/Cascader/types.js +1 -0
  58. package/es/field/components/Checkbox/FieldCheckboxEdit.d.ts +16 -0
  59. package/es/field/components/Checkbox/FieldCheckboxEdit.js +41 -0
  60. package/es/field/components/Checkbox/FieldCheckboxRead.d.ts +6 -0
  61. package/es/field/components/Checkbox/FieldCheckboxRead.js +37 -0
  62. package/es/field/components/Checkbox/index.d.ts +5 -9
  63. package/es/field/components/Checkbox/index.js +33 -66
  64. package/es/field/components/Checkbox/types.d.ts +6 -0
  65. package/es/field/components/Checkbox/types.js +1 -0
  66. package/es/field/components/Code/FieldCodeEdit.d.ts +10 -0
  67. package/es/field/components/Code/FieldCodeEdit.js +28 -0
  68. package/es/field/components/Code/FieldCodeRead.d.ts +14 -0
  69. package/es/field/components/Code/FieldCodeRead.js +38 -0
  70. package/es/field/components/Code/index.js +22 -63
  71. package/es/field/components/Code/utils.d.ts +1 -0
  72. package/es/field/components/Code/utils.js +13 -0
  73. package/es/field/components/ColorPicker/FieldColorPickerEdit.d.ts +9 -0
  74. package/es/field/components/ColorPicker/FieldColorPickerEdit.js +41 -0
  75. package/es/field/components/ColorPicker/FieldColorPickerRead.d.ts +9 -0
  76. package/es/field/components/ColorPicker/FieldColorPickerRead.js +30 -0
  77. package/es/field/components/ColorPicker/index.d.ts +1 -1
  78. package/es/field/components/ColorPicker/index.js +11 -61
  79. package/es/field/components/DatePicker/FieldDatePickerEdit.d.ts +15 -0
  80. package/es/field/components/DatePicker/FieldDatePickerEdit.js +40 -0
  81. package/es/field/components/DatePicker/FieldDatePickerLightEdit.d.ts +17 -0
  82. package/es/field/components/DatePicker/FieldDatePickerLightEdit.js +63 -0
  83. package/es/field/components/DatePicker/FieldDatePickerRead.d.ts +13 -0
  84. package/es/field/components/DatePicker/FieldDatePickerRead.js +26 -0
  85. package/es/field/components/DatePicker/datePickerUtils.d.ts +3 -0
  86. package/es/field/components/DatePicker/datePickerUtils.js +32 -0
  87. package/es/field/components/DatePicker/index.d.ts +3 -3
  88. package/es/field/components/DatePicker/index.js +39 -91
  89. package/es/field/components/Digit/FieldDigitEdit.d.ts +8 -0
  90. package/es/field/components/Digit/FieldDigitEdit.js +25 -0
  91. package/es/field/components/Digit/FieldDigitRead.d.ts +4 -0
  92. package/es/field/components/Digit/FieldDigitRead.js +34 -0
  93. package/es/field/components/Digit/index.d.ts +2 -4
  94. package/es/field/components/Digit/index.js +23 -101
  95. package/es/field/components/Digit/types.d.ts +4 -0
  96. package/es/field/components/Digit/types.js +1 -0
  97. package/es/field/components/DigitRange/FieldDigitRangeEdit.d.ts +16 -0
  98. package/es/field/components/DigitRange/FieldDigitRangeEdit.js +87 -0
  99. package/es/field/components/DigitRange/FieldDigitRangeRead.d.ts +4 -0
  100. package/es/field/components/DigitRange/FieldDigitRangeRead.js +29 -0
  101. package/es/field/components/DigitRange/index.d.ts +2 -8
  102. package/es/field/components/DigitRange/index.js +30 -90
  103. package/es/field/components/DigitRange/types.d.ts +8 -0
  104. package/es/field/components/DigitRange/types.js +1 -0
  105. package/es/field/components/FromNow/FieldFromNowEdit.d.ts +12 -0
  106. package/es/field/components/FromNow/FieldFromNowEdit.js +32 -0
  107. package/es/field/components/FromNow/FieldFromNowRead.d.ts +9 -0
  108. package/es/field/components/FromNow/FieldFromNowRead.js +28 -0
  109. package/es/field/components/FromNow/index.d.ts +1 -1
  110. package/es/field/components/FromNow/index.js +15 -49
  111. package/es/field/components/Image/FieldImageEdit.d.ts +8 -0
  112. package/es/field/components/Image/FieldImageEdit.js +24 -0
  113. package/es/field/components/Image/FieldImageRead.d.ts +4 -0
  114. package/es/field/components/Image/FieldImageRead.js +25 -0
  115. package/es/field/components/Image/index.d.ts +3 -6
  116. package/es/field/components/Image/index.js +25 -34
  117. package/es/field/components/Image/types.d.ts +5 -0
  118. package/es/field/components/Image/types.js +1 -0
  119. package/es/field/components/Money/FieldMoneyEdit.d.ts +13 -0
  120. package/es/field/components/Money/FieldMoneyEdit.js +64 -0
  121. package/es/field/components/Money/FieldMoneyRead.d.ts +9 -0
  122. package/es/field/components/Money/FieldMoneyRead.js +26 -0
  123. package/es/field/components/Money/InputNumberPopover.d.ts +11 -0
  124. package/es/field/components/Money/InputNumberPopover.js +92 -0
  125. package/es/field/components/Money/index.d.ts +2 -69
  126. package/es/field/components/Money/index.js +43 -286
  127. package/es/field/components/Money/moneyFormat.d.ts +13 -0
  128. package/es/field/components/Money/moneyFormat.js +102 -0
  129. package/es/field/components/Money/types.d.ts +37 -0
  130. package/es/field/components/Money/types.js +1 -0
  131. package/es/field/components/Password/FieldPasswordEdit.d.ts +12 -0
  132. package/es/field/components/Password/FieldPasswordEdit.js +24 -0
  133. package/es/field/components/Password/FieldPasswordRead.d.ts +12 -0
  134. package/es/field/components/Password/FieldPasswordRead.js +37 -0
  135. package/es/field/components/Password/index.js +23 -43
  136. package/es/field/components/Percent/FieldPercentEdit.d.ts +8 -0
  137. package/es/field/components/Percent/FieldPercentEdit.js +32 -0
  138. package/es/field/components/Percent/FieldPercentRead.d.ts +9 -0
  139. package/es/field/components/Percent/FieldPercentRead.js +41 -0
  140. package/es/field/components/Percent/index.d.ts +2 -10
  141. package/es/field/components/Percent/index.js +26 -65
  142. package/es/field/components/Percent/types.d.ts +10 -0
  143. package/es/field/components/Percent/types.js +1 -0
  144. package/es/field/components/Percent/util.d.ts +1 -1
  145. package/es/field/components/Progress/FieldProgressEdit.d.ts +10 -0
  146. package/es/field/components/Progress/FieldProgressEdit.js +24 -0
  147. package/es/field/components/Progress/FieldProgressRead.d.ts +10 -0
  148. package/es/field/components/Progress/FieldProgressRead.js +31 -0
  149. package/es/field/components/Progress/index.d.ts +2 -1
  150. package/es/field/components/Progress/index.js +21 -57
  151. package/es/field/components/Progress/utils.d.ts +1 -0
  152. package/es/field/components/Progress/utils.js +12 -0
  153. package/es/field/components/Radio/FieldRadioEdit.d.ts +16 -0
  154. package/es/field/components/Radio/FieldRadioEdit.js +38 -0
  155. package/es/field/components/Radio/FieldRadioRead.d.ts +6 -0
  156. package/es/field/components/Radio/FieldRadioRead.js +21 -0
  157. package/es/field/components/Radio/index.d.ts +4 -8
  158. package/es/field/components/Radio/index.js +34 -49
  159. package/es/field/components/Radio/types.d.ts +6 -0
  160. package/es/field/components/Radio/types.js +1 -0
  161. package/es/field/components/RangePicker/FieldRangePickerEdit.d.ts +15 -0
  162. package/es/field/components/RangePicker/FieldRangePickerEdit.js +35 -0
  163. package/es/field/components/RangePicker/FieldRangePickerLightEdit.d.ts +17 -0
  164. package/es/field/components/RangePicker/FieldRangePickerLightEdit.js +67 -0
  165. package/es/field/components/RangePicker/FieldRangePickerRead.d.ts +14 -0
  166. package/es/field/components/RangePicker/FieldRangePickerRead.js +28 -0
  167. package/es/field/components/RangePicker/index.d.ts +3 -3
  168. package/es/field/components/RangePicker/index.js +47 -94
  169. package/es/field/components/Rate/FieldRateEdit.d.ts +5 -0
  170. package/es/field/components/Rate/FieldRateEdit.js +23 -0
  171. package/es/field/components/Rate/FieldRateRead.d.ts +5 -0
  172. package/es/field/components/Rate/FieldRateRead.js +28 -0
  173. package/es/field/components/Rate/index.js +12 -42
  174. package/es/field/components/Second/FieldSecondEdit.d.ts +8 -0
  175. package/es/field/components/Second/FieldSecondEdit.js +28 -0
  176. package/es/field/components/Second/FieldSecondRead.d.ts +4 -0
  177. package/es/field/components/Second/FieldSecondRead.js +23 -0
  178. package/es/field/components/Second/index.d.ts +4 -11
  179. package/es/field/components/Second/index.js +17 -77
  180. package/es/field/components/Second/types.d.ts +6 -0
  181. package/es/field/components/Second/types.js +1 -0
  182. package/es/field/components/Second/utils.d.ts +4 -0
  183. package/es/field/components/Second/utils.js +30 -0
  184. package/es/field/components/Segmented/FieldSegmentedEdit.d.ts +13 -0
  185. package/es/field/components/Segmented/FieldSegmentedEdit.js +29 -0
  186. package/es/field/components/Segmented/FieldSegmentedRead.d.ts +12 -0
  187. package/es/field/components/Segmented/FieldSegmentedRead.js +27 -0
  188. package/es/field/components/Segmented/index.d.ts +4 -4
  189. package/es/field/components/Segmented/index.js +22 -40
  190. package/es/field/components/Select/FieldSelectEdit.d.ts +2 -0
  191. package/es/field/components/Select/FieldSelectEdit.js +1 -0
  192. package/es/field/components/Select/FieldSelectLightEdit.d.ts +17 -0
  193. package/es/field/components/Select/FieldSelectLightEdit.js +46 -0
  194. package/es/field/components/Select/FieldSelectRead.d.ts +10 -0
  195. package/es/field/components/Select/FieldSelectRead.js +23 -0
  196. package/es/field/components/Select/FieldSelectSearchEdit.d.ts +17 -0
  197. package/es/field/components/Select/FieldSelectSearchEdit.js +50 -0
  198. package/es/field/components/Select/LightSelect/index.d.ts +3 -3
  199. package/es/field/components/Select/SearchSelect/index.d.ts +0 -8
  200. package/es/field/components/Select/SearchSelect/index.js +8 -22
  201. package/es/field/components/Select/index.d.ts +6 -28
  202. package/es/field/components/Select/index.js +49 -142
  203. package/es/field/components/Select/types.d.ts +19 -0
  204. package/es/field/components/Select/types.js +1 -0
  205. package/es/field/components/Slider/FieldSliderEdit.d.ts +5 -0
  206. package/es/field/components/Slider/FieldSliderEdit.js +26 -0
  207. package/es/field/components/Slider/FieldSliderRead.d.ts +5 -0
  208. package/es/field/components/Slider/FieldSliderRead.js +22 -0
  209. package/es/field/components/Slider/index.js +12 -41
  210. package/es/field/components/Switch/FieldSwitchEdit.d.ts +12 -0
  211. package/es/field/components/Switch/FieldSwitchEdit.js +24 -0
  212. package/es/field/components/Switch/FieldSwitchLightEdit.d.ts +12 -0
  213. package/es/field/components/Switch/FieldSwitchLightEdit.js +41 -0
  214. package/es/field/components/Switch/FieldSwitchRead.d.ts +10 -0
  215. package/es/field/components/Switch/FieldSwitchRead.js +21 -0
  216. package/es/field/components/Switch/index.d.ts +1 -1
  217. package/es/field/components/Switch/index.js +30 -56
  218. package/es/field/components/Text/FieldTextEdit.d.ts +12 -0
  219. package/es/field/components/Text/FieldTextEdit.js +27 -0
  220. package/es/field/components/Text/FieldTextRead.d.ts +10 -0
  221. package/es/field/components/Text/FieldTextRead.js +26 -0
  222. package/es/field/components/Text/index.js +25 -41
  223. package/es/field/components/TextArea/FieldTextAreaEdit.d.ts +10 -0
  224. package/es/field/components/TextArea/FieldTextAreaEdit.js +30 -0
  225. package/es/field/components/TextArea/FieldTextAreaRead.d.ts +7 -0
  226. package/es/field/components/TextArea/FieldTextAreaRead.js +24 -0
  227. package/es/field/components/TextArea/index.js +11 -43
  228. package/es/field/components/TimePicker/FieldTimePickerEdit.d.ts +12 -0
  229. package/es/field/components/TimePicker/FieldTimePickerEdit.js +33 -0
  230. package/es/field/components/TimePicker/FieldTimePickerLightEdit.d.ts +16 -0
  231. package/es/field/components/TimePicker/FieldTimePickerLightEdit.js +62 -0
  232. package/es/field/components/TimePicker/FieldTimePickerRead.d.ts +11 -0
  233. package/es/field/components/TimePicker/FieldTimePickerRead.js +26 -0
  234. package/es/field/components/TimePicker/FieldTimeRangePickerEdit.d.ts +12 -0
  235. package/es/field/components/TimePicker/FieldTimeRangePickerEdit.js +30 -0
  236. package/es/field/components/TimePicker/FieldTimeRangePickerLightEdit.d.ts +16 -0
  237. package/es/field/components/TimePicker/FieldTimeRangePickerLightEdit.js +63 -0
  238. package/es/field/components/TimePicker/FieldTimeRangePickerRead.d.ts +12 -0
  239. package/es/field/components/TimePicker/FieldTimeRangePickerRead.js +28 -0
  240. package/es/field/components/TimePicker/index.d.ts +3 -3
  241. package/es/field/components/TimePicker/index.js +77 -151
  242. package/es/field/components/TreeSelect/FieldTreeSelectEdit.d.ts +38 -0
  243. package/es/field/components/TreeSelect/FieldTreeSelectEdit.js +86 -0
  244. package/es/field/components/TreeSelect/FieldTreeSelectLightEdit.d.ts +35 -0
  245. package/es/field/components/TreeSelect/FieldTreeSelectLightEdit.js +121 -0
  246. package/es/field/components/TreeSelect/FieldTreeSelectRead.d.ts +7 -0
  247. package/es/field/components/TreeSelect/FieldTreeSelectRead.js +24 -0
  248. package/es/field/components/TreeSelect/index.d.ts +6 -13
  249. package/es/field/components/TreeSelect/index.js +50 -106
  250. package/es/field/components/TreeSelect/types.d.ts +9 -0
  251. package/es/field/components/TreeSelect/types.js +1 -0
  252. package/es/field/initDayjs.d.ts +1 -0
  253. package/es/field/initDayjs.js +13 -0
  254. package/es/field/internal/ProFieldLightWrapper.d.ts +16 -0
  255. package/es/field/{FieldHOC/index.js → internal/ProFieldLightWrapper.js} +20 -5
  256. package/es/field/internal/fieldMode.d.ts +14 -0
  257. package/es/field/internal/fieldMode.js +21 -0
  258. package/es/field/types.d.ts +30 -0
  259. package/es/field/types.js +1 -0
  260. package/es/form/BaseForm/BaseForm.d.ts +2 -2
  261. package/es/form/BaseForm/BaseForm.js +116 -257
  262. package/es/form/BaseForm/Submitter/index.d.ts +5 -6
  263. package/es/form/BaseForm/Submitter/index.js +27 -29
  264. package/es/form/BaseForm/index.d.ts +0 -1
  265. package/es/form/BaseForm/index.js +1 -2
  266. package/es/form/BaseForm/useUrlSync.d.ts +42 -0
  267. package/es/form/BaseForm/useUrlSync.js +92 -0
  268. package/es/form/FieldContext.d.ts +4 -3
  269. package/es/form/components/Checkbox/index.js +0 -20
  270. package/es/form/components/ColorPicker/index.d.ts +3 -22
  271. package/es/form/components/ColorPicker/index.js +2 -1
  272. package/es/form/components/DatePicker/BaseDatePicker.js +29 -1
  273. package/es/form/components/DateRangePicker/BaseDateRanger.js +30 -2
  274. package/es/form/components/DateRangePicker/DateMonthRangePicker.js +0 -6
  275. package/es/form/components/DateRangePicker/DateQuarterRangePicker.js +0 -6
  276. package/es/form/components/DateRangePicker/DateTimeRangePicker.js +0 -6
  277. package/es/form/components/DateRangePicker/DateWeekRangePicker.js +0 -6
  278. package/es/form/components/DateRangePicker/DateYearRangePicker.d.ts +1 -1
  279. package/es/form/components/DateRangePicker/DateYearRangePicker.js +1 -7
  280. package/es/form/components/DateRangePicker/index.js +0 -6
  281. package/es/form/components/Dependency/index.d.ts +1 -1
  282. package/es/form/components/Digit/DigitRange.d.ts +1 -1
  283. package/es/form/components/Field/index.js +1 -1
  284. package/es/form/components/FieldSet/index.d.ts +0 -2
  285. package/es/form/components/FieldSet/index.js +0 -1
  286. package/es/form/components/FormItem/FormItemRender/index.d.ts +1 -2
  287. package/es/form/components/FormItem/index.d.ts +4 -5
  288. package/es/form/components/FormItem/index.js +83 -100
  289. package/es/form/components/FormItem/warpField.js +38 -24
  290. package/es/form/components/List/ListContainer.js +18 -35
  291. package/es/form/components/List/ListItem.d.ts +2 -2
  292. package/es/form/components/List/ListItem.js +90 -90
  293. package/es/form/components/List/index.js +8 -8
  294. package/es/form/components/SchemaForm/index.d.ts +2 -1
  295. package/es/form/components/SchemaForm/index.js +1 -1
  296. package/es/form/components/SchemaForm/layoutType/StepsForm.d.ts +1 -1
  297. package/es/form/components/SchemaForm/valueType/dependency.d.ts +2 -1
  298. package/es/form/components/SchemaForm/valueType/divider.d.ts +2 -1
  299. package/es/form/components/Select/index.d.ts +0 -2
  300. package/es/form/components/UploadButton/index.d.ts +1 -1
  301. package/es/form/index.d.ts +5 -3
  302. package/es/form/index.js +2 -1
  303. package/es/form/layouts/DrawerForm/index.js +57 -173
  304. package/{lib/form/BaseForm → es/form/layouts/LightFilter}/LightWrapper/index.d.ts +1 -1
  305. package/es/form/{BaseForm → layouts/LightFilter}/LightWrapper/index.js +39 -21
  306. package/es/form/{BaseForm → layouts/LightFilter}/LightWrapper/style.d.ts +1 -1
  307. package/es/form/{BaseForm → layouts/LightFilter}/LightWrapper/style.js +1 -1
  308. package/es/form/layouts/LightFilter/index.d.ts +7 -33
  309. package/es/form/layouts/LightFilter/index.js +15 -14
  310. package/es/form/layouts/LightFilter/lightFilterFieldComponents.d.ts +104 -0
  311. package/es/form/layouts/LightFilter/lightFilterFieldComponents.js +69 -0
  312. package/es/form/layouts/LightFilter/style.js +2 -3
  313. package/es/form/layouts/LoginForm/index.js +8 -28
  314. package/es/form/layouts/LoginFormPage/index.js +8 -28
  315. package/es/form/layouts/ModalForm/index.d.ts +1 -1
  316. package/es/form/layouts/ModalForm/index.js +36 -142
  317. package/es/form/layouts/ProForm/index.d.ts +3 -3
  318. package/es/form/layouts/ProForm/index.js +5 -6
  319. package/es/form/layouts/QueryFilter/Actions.js +1 -12
  320. package/es/form/layouts/QueryFilter/index.js +26 -99
  321. package/es/form/layouts/QueryFilter/processQueryFilterItems.d.ts +63 -0
  322. package/es/form/layouts/QueryFilter/processQueryFilterItems.js +123 -0
  323. package/es/form/layouts/StepsForm/StepForm.d.ts +2 -1
  324. package/es/form/layouts/StepsForm/index.d.ts +60 -1
  325. package/es/form/layouts/StepsForm/index.js +97 -37
  326. package/es/form/layouts/_shared/LoginFormHeader.d.ts +16 -0
  327. package/es/form/layouts/_shared/LoginFormHeader.js +45 -0
  328. package/es/form/layouts/_shared/useOverlayForm.d.ts +60 -0
  329. package/es/form/layouts/_shared/useOverlayForm.js +155 -0
  330. package/es/form/layouts/index.d.ts +3 -2
  331. package/es/form/layouts/index.js +2 -1
  332. package/es/form/typing.d.ts +4 -1
  333. package/es/form/typing.js +7 -1
  334. package/es/layout/assert/Logo.d.ts +2 -1
  335. package/es/layout/components/AppsLogoComponents/AppsLogo.d.ts +2 -1
  336. package/es/layout/components/Help/index.d.ts +1 -1
  337. package/es/layout/components/PageContainer/index.d.ts +1 -1
  338. package/es/layout/components/PageHeader/style/index.d.ts +1 -1
  339. package/es/layout/components/SettingDrawer/LayoutChange.d.ts +1 -1
  340. package/es/layout/components/SettingDrawer/icon/group.d.ts +2 -1
  341. package/es/layout/components/SettingDrawer/icon/sub.d.ts +2 -1
  342. package/es/layout/components/SettingDrawer/index.js +1 -2
  343. package/es/layout/components/SiderMenu/Arrow.d.ts +2 -1
  344. package/es/list/Item.d.ts +3 -2
  345. package/es/list/Item.js +7 -5
  346. package/es/list/ListView.d.ts +2 -3
  347. package/es/list/ListView.js +79 -67
  348. package/es/list/ProListBase.d.ts +4 -0
  349. package/es/list/ProListBase.js +6 -2
  350. package/es/list/index.d.ts +4 -5
  351. package/es/list/index.js +35 -35
  352. package/es/provider/index.d.ts +7 -5
  353. package/es/provider/index.js +53 -15
  354. package/es/provider/intl.d.ts +47 -69
  355. package/es/provider/intl.js +128 -84
  356. package/es/provider/locale/ar_EG.d.ts +3 -72
  357. package/es/provider/locale/ar_EG.js +8 -3
  358. package/es/provider/locale/ca_ES.d.ts +3 -72
  359. package/es/provider/locale/ca_ES.js +7 -2
  360. package/es/provider/locale/cs_CZ.d.ts +3 -75
  361. package/es/provider/locale/cs_CZ.js +4 -2
  362. package/es/provider/locale/de_DE.d.ts +3 -72
  363. package/es/provider/locale/de_DE.js +8 -3
  364. package/es/provider/locale/en_GB.d.ts +3 -74
  365. package/es/provider/locale/en_GB.js +5 -2
  366. package/es/provider/locale/en_US.d.ts +3 -76
  367. package/es/provider/locale/en_US.js +3 -2
  368. package/es/provider/locale/es_ES.d.ts +3 -72
  369. package/es/provider/locale/es_ES.js +7 -2
  370. package/es/provider/locale/fa_IR.d.ts +3 -72
  371. package/es/provider/locale/fa_IR.js +8 -3
  372. package/es/provider/locale/fr_FR.d.ts +3 -72
  373. package/es/provider/locale/fr_FR.js +11 -6
  374. package/es/provider/locale/he_IL.d.ts +3 -75
  375. package/es/provider/locale/he_IL.js +4 -2
  376. package/es/provider/locale/hr_HR.d.ts +3 -72
  377. package/es/provider/locale/hr_HR.js +7 -2
  378. package/es/provider/locale/id_ID.d.ts +3 -72
  379. package/es/provider/locale/id_ID.js +7 -2
  380. package/es/provider/locale/it_IT.d.ts +3 -72
  381. package/es/provider/locale/it_IT.js +13 -8
  382. package/es/provider/locale/ja_JP.d.ts +3 -72
  383. package/es/provider/locale/ja_JP.js +8 -3
  384. package/es/provider/locale/ko_KR.d.ts +3 -72
  385. package/es/provider/locale/ko_KR.js +9 -4
  386. package/es/provider/locale/mn_MN.d.ts +3 -72
  387. package/es/provider/locale/mn_MN.js +7 -2
  388. package/es/provider/locale/ms_MY.d.ts +3 -72
  389. package/es/provider/locale/ms_MY.js +10 -5
  390. package/es/provider/locale/nl_NL.d.ts +3 -75
  391. package/es/provider/locale/nl_NL.js +4 -2
  392. package/es/provider/locale/pl_PL.d.ts +3 -72
  393. package/es/provider/locale/pl_PL.js +12 -7
  394. package/es/provider/locale/pt_BR.d.ts +3 -72
  395. package/es/provider/locale/pt_BR.js +7 -2
  396. package/es/provider/locale/ro_RO.d.ts +3 -75
  397. package/es/provider/locale/ro_RO.js +4 -2
  398. package/es/provider/locale/ru_RU.d.ts +3 -72
  399. package/es/provider/locale/ru_RU.js +9 -4
  400. package/es/provider/locale/sk_SK.d.ts +3 -75
  401. package/es/provider/locale/sk_SK.js +4 -2
  402. package/es/provider/locale/sr_RS.d.ts +3 -72
  403. package/es/provider/locale/sr_RS.js +9 -4
  404. package/es/provider/locale/sv_SE.d.ts +3 -75
  405. package/es/provider/locale/sv_SE.js +4 -2
  406. package/es/provider/locale/th_TH.d.ts +3 -75
  407. package/es/provider/locale/th_TH.js +4 -2
  408. package/es/provider/locale/tr_TR.d.ts +3 -72
  409. package/es/provider/locale/tr_TR.js +9 -4
  410. package/es/provider/locale/uk_UA.d.ts +3 -75
  411. package/es/provider/locale/uk_UA.js +6 -4
  412. package/es/provider/locale/uz_UZ.d.ts +3 -72
  413. package/es/provider/locale/uz_UZ.js +7 -2
  414. package/es/provider/locale/vi_VN.d.ts +3 -72
  415. package/es/provider/locale/vi_VN.js +10 -5
  416. package/es/provider/locale/zh_CN.d.ts +76 -62
  417. package/es/provider/locale/zh_CN.js +14 -2
  418. package/es/provider/locale/zh_HK.d.ts +3 -75
  419. package/es/provider/locale/zh_HK.js +4 -2
  420. package/es/provider/locale/zh_TW.d.ts +3 -75
  421. package/es/provider/locale/zh_TW.js +4 -2
  422. package/es/provider/typing/layoutToken.js +0 -1
  423. package/es/provider/useStyle/index.d.ts +5 -0
  424. package/es/provider/useStyle/index.js +30 -10
  425. package/es/provider/utils/merge.d.ts +22 -1
  426. package/es/provider/utils/merge.js +38 -19
  427. package/es/skeleton/components/Descriptions/index.d.ts +2 -2
  428. package/es/skeleton/components/List/index.d.ts +3 -3
  429. package/es/table/Store/Provide.d.ts +19 -12
  430. package/es/table/Store/Provide.js +90 -44
  431. package/es/table/Table.d.ts +1 -1
  432. package/es/table/Table.js +101 -75
  433. package/es/table/TableSearch.js +26 -28
  434. package/es/table/TableToolbar.d.ts +4 -1
  435. package/es/table/TableToolbar.js +24 -26
  436. package/es/table/components/Alert/index.js +9 -5
  437. package/es/table/components/ColumnSetting/index.d.ts +3 -1
  438. package/es/table/components/ColumnSetting/index.js +58 -21
  439. package/es/table/components/DragSortTable/index.js +27 -20
  440. package/es/table/components/Dropdown/index.d.ts +3 -6
  441. package/es/table/components/Dropdown/index.js +27 -26
  442. package/es/table/components/EditableTable/CellEditorTable.d.ts +2 -1
  443. package/es/table/components/EditableTable/CellEditorTable.js +60 -35
  444. package/es/table/components/EditableTable/RowEditorTable.d.ts +2 -1
  445. package/es/table/components/EditableTable/RowEditorTable.js +47 -33
  446. package/es/table/components/EditableTable/index.d.ts +1 -1
  447. package/es/table/components/EditableTable/index.js +130 -121
  448. package/es/table/components/Form/FormRender.d.ts +1 -1
  449. package/es/table/components/Form/FormRender.js +14 -23
  450. package/es/table/components/Form/index.d.ts +1 -1
  451. package/es/table/components/Form/index.js +20 -42
  452. package/es/table/components/ListToolBar/HeaderMenu.js +7 -8
  453. package/es/table/components/ListToolBar/index.js +79 -105
  454. package/es/table/components/ToolBar/DensityIcon.d.ts +3 -3
  455. package/es/table/components/ToolBar/DensityIcon.js +5 -7
  456. package/es/table/components/ToolBar/FullscreenIcon.d.ts +2 -2
  457. package/es/table/components/ToolBar/FullscreenIcon.js +18 -17
  458. package/es/table/components/ToolBar/index.d.ts +4 -2
  459. package/es/table/components/ToolBar/index.js +34 -40
  460. package/es/table/index.d.ts +3 -8
  461. package/es/table/index.js +2 -3
  462. package/es/table/typing.d.ts +5 -5
  463. package/es/table/useFetchData.js +72 -26
  464. package/es/table/utils/cellRenderToFromItem.d.ts +6 -0
  465. package/es/table/utils/cellRenderToFromItem.js +52 -27
  466. package/es/table/utils/columnRender.d.ts +1 -1
  467. package/es/table/utils/genProColumnToColumn.js +1 -1
  468. package/es/table/utils/index.d.ts +23 -1
  469. package/es/table/utils/index.js +59 -1
  470. package/es/table/utils/useDragSort.d.ts +1 -1
  471. package/es/table/utils/usePageInfo.js +2 -3
  472. package/es/utils/components/DropdownFooter/index.d.ts +1 -1
  473. package/es/utils/components/ErrorBoundary/index.d.ts +1 -1
  474. package/es/utils/components/InlineErrorFormItem/index.d.ts +2 -1
  475. package/es/utils/conversionMomentValue/index.d.ts +9 -4
  476. package/es/utils/conversionMomentValue/index.js +56 -21
  477. package/es/utils/dateArrayFormatter/index.js +12 -2
  478. package/es/utils/genCopyable/index.d.ts +1 -1
  479. package/es/utils/hooks/useUrlSearchParams/index.d.ts +6 -0
  480. package/es/utils/hooks/useUrlSearchParams/index.js +146 -0
  481. package/es/utils/index.d.ts +3 -2
  482. package/es/utils/index.js +4 -3
  483. package/es/utils/nanoid/index.js +3 -2
  484. package/es/utils/parseValueToMoment/index.d.ts +6 -1
  485. package/es/utils/parseValueToMoment/index.js +73 -6
  486. package/es/utils/proFieldParsingText/index.d.ts +7 -1
  487. package/es/utils/proFieldParsingText/index.js +8 -5
  488. package/es/utils/transformKeySubmitValue/index.d.ts +3 -1
  489. package/es/utils/transformKeySubmitValue/index.js +109 -81
  490. package/es/utils/typing.d.ts +29 -62
  491. package/es/utils/typing.js +88 -1
  492. package/es/utils/useEditableArray/index.d.ts +21 -5
  493. package/es/utils/useEditableArray/index.js +187 -106
  494. package/es/utils/useEditableMap/index.d.ts +10 -3
  495. package/es/utils/useEditableMap/index.js +133 -72
  496. package/es/utils/useMediaQuery/index.d.ts +29 -36
  497. package/es/utils/useMediaQuery/index.js +106 -91
  498. package/es/utils/useMediaQuery/query.d.ts +7 -0
  499. package/es/utils/useMediaQuery/query.js +33 -15
  500. package/lib/card/ProCard.d.ts +2 -2
  501. package/lib/card/ProCard.js +7 -2
  502. package/lib/card/components/Card/index.js +33 -25
  503. package/lib/card/components/Card/style.js +44 -14
  504. package/lib/card/components/CheckCard/Group.d.ts +22 -42
  505. package/lib/card/components/CheckCard/Group.js +57 -48
  506. package/lib/card/components/CheckCard/index.d.ts +3 -4
  507. package/lib/card/components/CheckCard/index.js +18 -6
  508. package/lib/card/components/CheckCard/style.d.ts +1 -1
  509. package/lib/card/components/CheckCard/style.js +28 -27
  510. package/lib/card/components/Loading/style.js +4 -3
  511. package/lib/card/components/Operation/index.d.ts +1 -1
  512. package/lib/card/components/Operation/style.js +4 -3
  513. package/lib/card/components/Statistic/index.d.ts +1 -1
  514. package/lib/card/components/Statistic/style.d.ts +1 -1
  515. package/lib/card/components/Statistic/style.js +9 -6
  516. package/lib/card/components/StatisticCard/style.d.ts +1 -1
  517. package/lib/card/components/StatisticCard/style.js +5 -5
  518. package/lib/card/typing.d.ts +1 -1
  519. package/lib/descriptions/FieldRender.d.ts +16 -0
  520. package/lib/descriptions/FieldRender.js +142 -0
  521. package/lib/descriptions/ProDescriptions.d.ts +5 -0
  522. package/lib/descriptions/ProDescriptions.js +146 -0
  523. package/lib/descriptions/getDataFromConfig.d.ts +5 -0
  524. package/lib/descriptions/getDataFromConfig.js +22 -0
  525. package/lib/descriptions/index.d.ts +6 -98
  526. package/lib/descriptions/index.js +23 -427
  527. package/lib/descriptions/resolveValueType.d.ts +6 -0
  528. package/lib/descriptions/resolveValueType.js +15 -0
  529. package/lib/descriptions/schemaToDescriptionsItem.d.ts +8 -0
  530. package/lib/descriptions/schemaToDescriptionsItem.js +95 -0
  531. package/lib/descriptions/typing.d.ts +70 -0
  532. package/lib/descriptions/typing.js +12 -0
  533. package/lib/descriptions/useFetchData.d.ts +13 -12
  534. package/lib/descriptions/useFetchData.js +21 -12
  535. package/lib/field/AllProField.d.ts +8 -34
  536. package/lib/field/AllProField.js +175 -275
  537. package/lib/field/ProFieldCore.d.ts +23 -0
  538. package/lib/field/ProFieldCore.js +83 -0
  539. package/lib/field/PureProField.d.ts +9 -39
  540. package/lib/field/PureProField.js +60 -112
  541. package/lib/field/ValueTypeToComponent.d.ts +4 -1
  542. package/lib/field/ValueTypeToComponent.js +255 -673
  543. package/lib/field/components/Cascader/FieldCascaderEdit.d.ts +17 -0
  544. package/lib/field/components/Cascader/FieldCascaderEdit.js +52 -0
  545. package/lib/field/components/Cascader/FieldCascaderLightEdit.d.ts +17 -0
  546. package/lib/field/components/Cascader/FieldCascaderLightEdit.js +75 -0
  547. package/lib/field/components/Cascader/FieldCascaderRead.d.ts +6 -0
  548. package/lib/field/components/Cascader/FieldCascaderRead.js +26 -0
  549. package/lib/field/components/Cascader/index.d.ts +7 -13
  550. package/lib/field/components/Cascader/index.js +39 -74
  551. package/lib/field/components/Cascader/types.d.ts +8 -0
  552. package/lib/field/components/Cascader/types.js +5 -0
  553. package/lib/field/components/Checkbox/FieldCheckboxEdit.d.ts +16 -0
  554. package/lib/field/components/Checkbox/FieldCheckboxEdit.js +48 -0
  555. package/lib/field/components/Checkbox/FieldCheckboxRead.d.ts +6 -0
  556. package/lib/field/components/Checkbox/FieldCheckboxRead.js +42 -0
  557. package/lib/field/components/Checkbox/index.d.ts +5 -9
  558. package/lib/field/components/Checkbox/index.js +31 -63
  559. package/lib/field/components/Checkbox/types.d.ts +6 -0
  560. package/lib/field/components/Checkbox/types.js +5 -0
  561. package/lib/field/components/Code/FieldCodeEdit.d.ts +10 -0
  562. package/lib/field/components/Code/FieldCodeEdit.js +35 -0
  563. package/lib/field/components/Code/FieldCodeRead.d.ts +14 -0
  564. package/lib/field/components/Code/FieldCodeRead.js +45 -0
  565. package/lib/field/components/Code/index.js +23 -65
  566. package/lib/field/components/Code/utils.d.ts +1 -0
  567. package/lib/field/components/Code/utils.js +19 -0
  568. package/lib/field/components/ColorPicker/FieldColorPickerEdit.d.ts +9 -0
  569. package/lib/field/components/ColorPicker/FieldColorPickerEdit.js +47 -0
  570. package/lib/field/components/ColorPicker/FieldColorPickerRead.d.ts +9 -0
  571. package/lib/field/components/ColorPicker/FieldColorPickerRead.js +36 -0
  572. package/lib/field/components/ColorPicker/index.d.ts +1 -1
  573. package/lib/field/components/ColorPicker/index.js +12 -63
  574. package/lib/field/components/DatePicker/FieldDatePickerEdit.d.ts +15 -0
  575. package/lib/field/components/DatePicker/FieldDatePickerEdit.js +47 -0
  576. package/lib/field/components/DatePicker/FieldDatePickerLightEdit.d.ts +17 -0
  577. package/lib/field/components/DatePicker/FieldDatePickerLightEdit.js +70 -0
  578. package/lib/field/components/DatePicker/FieldDatePickerRead.d.ts +13 -0
  579. package/lib/field/components/DatePicker/FieldDatePickerRead.js +31 -0
  580. package/lib/field/components/DatePicker/datePickerUtils.d.ts +3 -0
  581. package/lib/field/components/DatePicker/datePickerUtils.js +39 -0
  582. package/lib/field/components/DatePicker/index.d.ts +3 -3
  583. package/lib/field/components/DatePicker/index.js +39 -90
  584. package/lib/field/components/Digit/FieldDigitEdit.d.ts +8 -0
  585. package/lib/field/components/Digit/FieldDigitEdit.js +32 -0
  586. package/lib/field/components/Digit/FieldDigitRead.d.ts +4 -0
  587. package/lib/field/components/Digit/FieldDigitRead.js +41 -0
  588. package/lib/field/components/Digit/index.d.ts +2 -4
  589. package/lib/field/components/Digit/index.js +24 -102
  590. package/lib/field/components/Digit/types.d.ts +4 -0
  591. package/lib/field/components/Digit/types.js +5 -0
  592. package/lib/field/components/DigitRange/FieldDigitRangeEdit.d.ts +16 -0
  593. package/lib/field/components/DigitRange/FieldDigitRangeEdit.js +93 -0
  594. package/lib/field/components/DigitRange/FieldDigitRangeRead.d.ts +4 -0
  595. package/lib/field/components/DigitRange/FieldDigitRangeRead.js +36 -0
  596. package/lib/field/components/DigitRange/index.d.ts +2 -8
  597. package/lib/field/components/DigitRange/index.js +30 -89
  598. package/lib/field/components/DigitRange/types.d.ts +8 -0
  599. package/lib/field/components/DigitRange/types.js +5 -0
  600. package/lib/field/components/FromNow/FieldFromNowEdit.d.ts +12 -0
  601. package/lib/field/components/FromNow/FieldFromNowEdit.js +39 -0
  602. package/lib/field/components/FromNow/FieldFromNowRead.d.ts +9 -0
  603. package/lib/field/components/FromNow/FieldFromNowRead.js +34 -0
  604. package/lib/field/components/FromNow/index.d.ts +1 -1
  605. package/lib/field/components/FromNow/index.js +15 -48
  606. package/lib/field/components/Image/FieldImageEdit.d.ts +8 -0
  607. package/lib/field/components/Image/FieldImageEdit.js +31 -0
  608. package/lib/field/components/Image/FieldImageRead.d.ts +4 -0
  609. package/lib/field/components/Image/FieldImageRead.js +32 -0
  610. package/lib/field/components/Image/index.d.ts +3 -6
  611. package/lib/field/components/Image/index.js +25 -34
  612. package/lib/field/components/Image/types.d.ts +5 -0
  613. package/lib/field/components/Image/types.js +5 -0
  614. package/lib/field/components/Money/FieldMoneyEdit.d.ts +13 -0
  615. package/lib/field/components/Money/FieldMoneyEdit.js +71 -0
  616. package/lib/field/components/Money/FieldMoneyRead.d.ts +9 -0
  617. package/lib/field/components/Money/FieldMoneyRead.js +33 -0
  618. package/lib/field/components/Money/InputNumberPopover.d.ts +11 -0
  619. package/lib/field/components/Money/InputNumberPopover.js +99 -0
  620. package/lib/field/components/Money/index.d.ts +2 -69
  621. package/lib/field/components/Money/index.js +45 -288
  622. package/lib/field/components/Money/moneyFormat.d.ts +13 -0
  623. package/lib/field/components/Money/moneyFormat.js +109 -0
  624. package/lib/field/components/Money/types.d.ts +37 -0
  625. package/lib/field/components/Money/types.js +5 -0
  626. package/lib/field/components/Password/FieldPasswordEdit.d.ts +12 -0
  627. package/lib/field/components/Password/FieldPasswordEdit.js +31 -0
  628. package/lib/field/components/Password/FieldPasswordRead.d.ts +12 -0
  629. package/lib/field/components/Password/FieldPasswordRead.js +42 -0
  630. package/lib/field/components/Password/index.js +22 -41
  631. package/lib/field/components/Percent/FieldPercentEdit.d.ts +8 -0
  632. package/lib/field/components/Percent/FieldPercentEdit.js +39 -0
  633. package/lib/field/components/Percent/FieldPercentRead.d.ts +9 -0
  634. package/lib/field/components/Percent/FieldPercentRead.js +47 -0
  635. package/lib/field/components/Percent/index.d.ts +2 -10
  636. package/lib/field/components/Percent/index.js +24 -62
  637. package/lib/field/components/Percent/types.d.ts +10 -0
  638. package/lib/field/components/Percent/types.js +5 -0
  639. package/lib/field/components/Percent/util.d.ts +1 -1
  640. package/lib/field/components/Progress/FieldProgressEdit.d.ts +10 -0
  641. package/lib/field/components/Progress/FieldProgressEdit.js +31 -0
  642. package/lib/field/components/Progress/FieldProgressRead.d.ts +10 -0
  643. package/lib/field/components/Progress/FieldProgressRead.js +38 -0
  644. package/lib/field/components/Progress/index.d.ts +2 -1
  645. package/lib/field/components/Progress/index.js +26 -59
  646. package/lib/field/components/Progress/utils.d.ts +1 -0
  647. package/lib/field/components/Progress/utils.js +18 -0
  648. package/lib/field/components/Radio/FieldRadioEdit.d.ts +16 -0
  649. package/lib/field/components/Radio/FieldRadioEdit.js +45 -0
  650. package/lib/field/components/Radio/FieldRadioRead.d.ts +6 -0
  651. package/lib/field/components/Radio/FieldRadioRead.js +26 -0
  652. package/lib/field/components/Radio/index.d.ts +4 -8
  653. package/lib/field/components/Radio/index.js +32 -46
  654. package/lib/field/components/Radio/types.d.ts +6 -0
  655. package/lib/field/components/Radio/types.js +5 -0
  656. package/lib/field/components/RangePicker/FieldRangePickerEdit.d.ts +15 -0
  657. package/lib/field/components/RangePicker/FieldRangePickerEdit.js +42 -0
  658. package/lib/field/components/RangePicker/FieldRangePickerLightEdit.d.ts +17 -0
  659. package/lib/field/components/RangePicker/FieldRangePickerLightEdit.js +74 -0
  660. package/lib/field/components/RangePicker/FieldRangePickerRead.d.ts +14 -0
  661. package/lib/field/components/RangePicker/FieldRangePickerRead.js +35 -0
  662. package/lib/field/components/RangePicker/index.d.ts +3 -3
  663. package/lib/field/components/RangePicker/index.js +46 -94
  664. package/lib/field/components/Rate/FieldRateEdit.d.ts +5 -0
  665. package/lib/field/components/Rate/FieldRateEdit.js +30 -0
  666. package/lib/field/components/Rate/FieldRateRead.d.ts +5 -0
  667. package/lib/field/components/Rate/FieldRateRead.js +34 -0
  668. package/lib/field/components/Rate/index.js +11 -41
  669. package/lib/field/components/Second/FieldSecondEdit.d.ts +8 -0
  670. package/lib/field/components/Second/FieldSecondEdit.js +35 -0
  671. package/lib/field/components/Second/FieldSecondRead.d.ts +4 -0
  672. package/lib/field/components/Second/FieldSecondRead.js +30 -0
  673. package/lib/field/components/Second/index.d.ts +4 -11
  674. package/lib/field/components/Second/index.js +22 -78
  675. package/lib/field/components/Second/types.d.ts +6 -0
  676. package/lib/field/components/Second/types.js +5 -0
  677. package/lib/field/components/Second/utils.d.ts +4 -0
  678. package/lib/field/components/Second/utils.js +36 -0
  679. package/lib/field/components/Segmented/FieldSegmentedEdit.d.ts +13 -0
  680. package/lib/field/components/Segmented/FieldSegmentedEdit.js +36 -0
  681. package/lib/field/components/Segmented/FieldSegmentedRead.d.ts +12 -0
  682. package/lib/field/components/Segmented/FieldSegmentedRead.js +33 -0
  683. package/lib/field/components/Segmented/index.d.ts +4 -4
  684. package/lib/field/components/Segmented/index.js +21 -38
  685. package/lib/field/components/Select/FieldSelectEdit.d.ts +2 -0
  686. package/lib/field/components/Select/FieldSelectEdit.js +12 -0
  687. package/lib/field/components/Select/FieldSelectLightEdit.d.ts +17 -0
  688. package/lib/field/components/Select/FieldSelectLightEdit.js +53 -0
  689. package/lib/field/components/Select/FieldSelectRead.d.ts +10 -0
  690. package/lib/field/components/Select/FieldSelectRead.js +28 -0
  691. package/lib/field/components/Select/FieldSelectSearchEdit.d.ts +17 -0
  692. package/lib/field/components/Select/FieldSelectSearchEdit.js +57 -0
  693. package/lib/field/components/Select/LightSelect/index.d.ts +3 -3
  694. package/lib/field/components/Select/SearchSelect/index.d.ts +0 -8
  695. package/lib/field/components/Select/SearchSelect/index.js +8 -22
  696. package/lib/field/components/Select/index.d.ts +6 -28
  697. package/lib/field/components/Select/index.js +46 -138
  698. package/lib/field/components/Select/types.d.ts +19 -0
  699. package/lib/field/components/Select/types.js +5 -0
  700. package/lib/field/components/Slider/FieldSliderEdit.d.ts +5 -0
  701. package/lib/field/components/Slider/FieldSliderEdit.js +33 -0
  702. package/lib/field/components/Slider/FieldSliderRead.d.ts +5 -0
  703. package/lib/field/components/Slider/FieldSliderRead.js +27 -0
  704. package/lib/field/components/Slider/index.js +11 -40
  705. package/lib/field/components/Switch/FieldSwitchEdit.d.ts +12 -0
  706. package/lib/field/components/Switch/FieldSwitchEdit.js +31 -0
  707. package/lib/field/components/Switch/FieldSwitchLightEdit.d.ts +12 -0
  708. package/lib/field/components/Switch/FieldSwitchLightEdit.js +48 -0
  709. package/lib/field/components/Switch/FieldSwitchRead.d.ts +10 -0
  710. package/lib/field/components/Switch/FieldSwitchRead.js +27 -0
  711. package/lib/field/components/Switch/index.d.ts +1 -1
  712. package/lib/field/components/Switch/index.js +29 -56
  713. package/lib/field/components/Text/FieldTextEdit.d.ts +12 -0
  714. package/lib/field/components/Text/FieldTextEdit.js +34 -0
  715. package/lib/field/components/Text/FieldTextRead.d.ts +10 -0
  716. package/lib/field/components/Text/FieldTextRead.js +32 -0
  717. package/lib/field/components/Text/index.js +24 -40
  718. package/lib/field/components/TextArea/FieldTextAreaEdit.d.ts +10 -0
  719. package/lib/field/components/TextArea/FieldTextAreaEdit.js +37 -0
  720. package/lib/field/components/TextArea/FieldTextAreaRead.d.ts +7 -0
  721. package/lib/field/components/TextArea/FieldTextAreaRead.js +31 -0
  722. package/lib/field/components/TextArea/index.js +13 -44
  723. package/lib/field/components/TimePicker/FieldTimePickerEdit.d.ts +12 -0
  724. package/lib/field/components/TimePicker/FieldTimePickerEdit.js +40 -0
  725. package/lib/field/components/TimePicker/FieldTimePickerLightEdit.d.ts +16 -0
  726. package/lib/field/components/TimePicker/FieldTimePickerLightEdit.js +69 -0
  727. package/lib/field/components/TimePicker/FieldTimePickerRead.d.ts +11 -0
  728. package/lib/field/components/TimePicker/FieldTimePickerRead.js +33 -0
  729. package/lib/field/components/TimePicker/FieldTimeRangePickerEdit.d.ts +12 -0
  730. package/lib/field/components/TimePicker/FieldTimeRangePickerEdit.js +37 -0
  731. package/lib/field/components/TimePicker/FieldTimeRangePickerLightEdit.d.ts +16 -0
  732. package/lib/field/components/TimePicker/FieldTimeRangePickerLightEdit.js +70 -0
  733. package/lib/field/components/TimePicker/FieldTimeRangePickerRead.d.ts +12 -0
  734. package/lib/field/components/TimePicker/FieldTimeRangePickerRead.js +35 -0
  735. package/lib/field/components/TimePicker/index.d.ts +3 -3
  736. package/lib/field/components/TimePicker/index.js +76 -150
  737. package/lib/field/components/TreeSelect/FieldTreeSelectEdit.d.ts +38 -0
  738. package/lib/field/components/TreeSelect/FieldTreeSelectEdit.js +93 -0
  739. package/lib/field/components/TreeSelect/FieldTreeSelectLightEdit.d.ts +35 -0
  740. package/lib/field/components/TreeSelect/FieldTreeSelectLightEdit.js +126 -0
  741. package/lib/field/components/TreeSelect/FieldTreeSelectRead.d.ts +7 -0
  742. package/lib/field/components/TreeSelect/FieldTreeSelectRead.js +29 -0
  743. package/lib/field/components/TreeSelect/index.d.ts +6 -13
  744. package/lib/field/components/TreeSelect/index.js +49 -103
  745. package/lib/field/components/TreeSelect/types.d.ts +9 -0
  746. package/lib/field/components/TreeSelect/types.js +5 -0
  747. package/lib/field/initDayjs.d.ts +1 -0
  748. package/lib/field/initDayjs.js +16 -0
  749. package/lib/field/internal/ProFieldLightWrapper.d.ts +16 -0
  750. package/lib/field/{FieldHOC/index.js → internal/ProFieldLightWrapper.js} +21 -5
  751. package/lib/field/internal/fieldMode.d.ts +14 -0
  752. package/lib/field/internal/fieldMode.js +29 -0
  753. package/lib/field/types.d.ts +30 -0
  754. package/lib/field/types.js +5 -0
  755. package/lib/form/BaseForm/BaseForm.d.ts +2 -2
  756. package/lib/form/BaseForm/BaseForm.js +114 -255
  757. package/lib/form/BaseForm/Submitter/index.d.ts +5 -6
  758. package/lib/form/BaseForm/Submitter/index.js +27 -29
  759. package/lib/form/BaseForm/index.d.ts +0 -1
  760. package/lib/form/BaseForm/index.js +0 -11
  761. package/lib/form/BaseForm/useUrlSync.d.ts +42 -0
  762. package/lib/form/BaseForm/useUrlSync.js +100 -0
  763. package/lib/form/FieldContext.d.ts +4 -3
  764. package/lib/form/components/Checkbox/index.js +0 -20
  765. package/lib/form/components/ColorPicker/index.d.ts +3 -22
  766. package/lib/form/components/ColorPicker/index.js +2 -1
  767. package/lib/form/components/DatePicker/BaseDatePicker.js +29 -1
  768. package/lib/form/components/DateRangePicker/BaseDateRanger.js +30 -2
  769. package/lib/form/components/DateRangePicker/DateMonthRangePicker.js +0 -6
  770. package/lib/form/components/DateRangePicker/DateQuarterRangePicker.js +0 -6
  771. package/lib/form/components/DateRangePicker/DateTimeRangePicker.js +0 -6
  772. package/lib/form/components/DateRangePicker/DateWeekRangePicker.js +0 -6
  773. package/lib/form/components/DateRangePicker/DateYearRangePicker.d.ts +1 -1
  774. package/lib/form/components/DateRangePicker/DateYearRangePicker.js +1 -7
  775. package/lib/form/components/DateRangePicker/index.js +0 -6
  776. package/lib/form/components/Dependency/index.d.ts +1 -1
  777. package/lib/form/components/Digit/DigitRange.d.ts +1 -1
  778. package/lib/form/components/Field/index.js +1 -1
  779. package/lib/form/components/FieldSet/index.d.ts +0 -2
  780. package/lib/form/components/FieldSet/index.js +0 -1
  781. package/lib/form/components/FormItem/FormItemRender/index.d.ts +1 -2
  782. package/lib/form/components/FormItem/index.d.ts +4 -5
  783. package/lib/form/components/FormItem/index.js +81 -98
  784. package/lib/form/components/FormItem/warpField.js +37 -23
  785. package/lib/form/components/List/ListContainer.js +16 -35
  786. package/lib/form/components/List/ListItem.d.ts +2 -2
  787. package/lib/form/components/List/ListItem.js +90 -90
  788. package/lib/form/components/List/index.js +8 -8
  789. package/lib/form/components/SchemaForm/index.d.ts +2 -1
  790. package/lib/form/components/SchemaForm/index.js +2 -2
  791. package/lib/form/components/SchemaForm/layoutType/StepsForm.d.ts +1 -1
  792. package/lib/form/components/SchemaForm/valueType/dependency.d.ts +2 -1
  793. package/lib/form/components/SchemaForm/valueType/divider.d.ts +2 -1
  794. package/lib/form/components/Select/index.d.ts +0 -2
  795. package/lib/form/components/UploadButton/index.d.ts +1 -1
  796. package/lib/form/index.d.ts +5 -3
  797. package/lib/form/index.js +11 -3
  798. package/lib/form/layouts/DrawerForm/index.js +53 -169
  799. package/{es/form/BaseForm → lib/form/layouts/LightFilter}/LightWrapper/index.d.ts +1 -1
  800. package/lib/form/{BaseForm → layouts/LightFilter}/LightWrapper/index.js +38 -20
  801. package/lib/form/{BaseForm → layouts/LightFilter}/LightWrapper/style.d.ts +1 -1
  802. package/lib/form/{BaseForm → layouts/LightFilter}/LightWrapper/style.js +1 -1
  803. package/lib/form/layouts/LightFilter/index.d.ts +7 -33
  804. package/lib/form/layouts/LightFilter/index.js +16 -15
  805. package/lib/form/layouts/LightFilter/lightFilterFieldComponents.d.ts +104 -0
  806. package/lib/form/layouts/LightFilter/lightFilterFieldComponents.js +76 -0
  807. package/lib/form/layouts/LightFilter/style.js +2 -3
  808. package/lib/form/layouts/LoginForm/index.js +7 -27
  809. package/lib/form/layouts/LoginFormPage/index.js +7 -27
  810. package/lib/form/layouts/ModalForm/index.d.ts +1 -1
  811. package/lib/form/layouts/ModalForm/index.js +34 -140
  812. package/lib/form/layouts/ProForm/index.d.ts +3 -3
  813. package/lib/form/layouts/ProForm/index.js +6 -7
  814. package/lib/form/layouts/QueryFilter/Actions.js +1 -12
  815. package/lib/form/layouts/QueryFilter/index.js +26 -99
  816. package/lib/form/layouts/QueryFilter/processQueryFilterItems.d.ts +63 -0
  817. package/lib/form/layouts/QueryFilter/processQueryFilterItems.js +133 -0
  818. package/lib/form/layouts/StepsForm/StepForm.d.ts +2 -1
  819. package/lib/form/layouts/StepsForm/index.d.ts +60 -1
  820. package/lib/form/layouts/StepsForm/index.js +99 -38
  821. package/lib/form/layouts/_shared/LoginFormHeader.d.ts +16 -0
  822. package/lib/form/layouts/_shared/LoginFormHeader.js +52 -0
  823. package/lib/form/layouts/_shared/useOverlayForm.d.ts +60 -0
  824. package/lib/form/layouts/_shared/useOverlayForm.js +160 -0
  825. package/lib/form/layouts/index.d.ts +3 -2
  826. package/lib/form/layouts/index.js +9 -2
  827. package/lib/form/typing.d.ts +4 -1
  828. package/lib/form/typing.js +8 -1
  829. package/lib/layout/assert/Logo.d.ts +2 -1
  830. package/lib/layout/components/AppsLogoComponents/AppsLogo.d.ts +2 -1
  831. package/lib/layout/components/Help/index.d.ts +1 -1
  832. package/lib/layout/components/PageContainer/index.d.ts +1 -1
  833. package/lib/layout/components/PageHeader/style/index.d.ts +1 -1
  834. package/lib/layout/components/SettingDrawer/LayoutChange.d.ts +1 -1
  835. package/lib/layout/components/SettingDrawer/icon/group.d.ts +2 -1
  836. package/lib/layout/components/SettingDrawer/icon/sub.d.ts +2 -1
  837. package/lib/layout/components/SettingDrawer/index.js +1 -2
  838. package/lib/layout/components/SiderMenu/Arrow.d.ts +2 -1
  839. package/lib/list/Item.d.ts +3 -2
  840. package/lib/list/Item.js +6 -4
  841. package/lib/list/ListView.d.ts +2 -3
  842. package/lib/list/ListView.js +79 -67
  843. package/lib/list/ProListBase.d.ts +4 -0
  844. package/lib/list/ProListBase.js +6 -2
  845. package/lib/list/index.d.ts +4 -5
  846. package/lib/list/index.js +35 -35
  847. package/lib/provider/index.d.ts +7 -5
  848. package/lib/provider/index.js +55 -15
  849. package/lib/provider/intl.d.ts +47 -69
  850. package/lib/provider/intl.js +129 -85
  851. package/lib/provider/locale/ar_EG.d.ts +3 -72
  852. package/lib/provider/locale/ar_EG.js +8 -3
  853. package/lib/provider/locale/ca_ES.d.ts +3 -72
  854. package/lib/provider/locale/ca_ES.js +7 -2
  855. package/lib/provider/locale/cs_CZ.d.ts +3 -75
  856. package/lib/provider/locale/cs_CZ.js +4 -2
  857. package/lib/provider/locale/de_DE.d.ts +3 -72
  858. package/lib/provider/locale/de_DE.js +8 -3
  859. package/lib/provider/locale/en_GB.d.ts +3 -74
  860. package/lib/provider/locale/en_GB.js +5 -2
  861. package/lib/provider/locale/en_US.d.ts +3 -76
  862. package/lib/provider/locale/en_US.js +3 -2
  863. package/lib/provider/locale/es_ES.d.ts +3 -72
  864. package/lib/provider/locale/es_ES.js +7 -2
  865. package/lib/provider/locale/fa_IR.d.ts +3 -72
  866. package/lib/provider/locale/fa_IR.js +8 -3
  867. package/lib/provider/locale/fr_FR.d.ts +3 -72
  868. package/lib/provider/locale/fr_FR.js +11 -6
  869. package/lib/provider/locale/he_IL.d.ts +3 -75
  870. package/lib/provider/locale/he_IL.js +4 -2
  871. package/lib/provider/locale/hr_HR.d.ts +3 -72
  872. package/lib/provider/locale/hr_HR.js +7 -2
  873. package/lib/provider/locale/id_ID.d.ts +3 -72
  874. package/lib/provider/locale/id_ID.js +7 -2
  875. package/lib/provider/locale/it_IT.d.ts +3 -72
  876. package/lib/provider/locale/it_IT.js +13 -8
  877. package/lib/provider/locale/ja_JP.d.ts +3 -72
  878. package/lib/provider/locale/ja_JP.js +8 -3
  879. package/lib/provider/locale/ko_KR.d.ts +3 -72
  880. package/lib/provider/locale/ko_KR.js +9 -4
  881. package/lib/provider/locale/mn_MN.d.ts +3 -72
  882. package/lib/provider/locale/mn_MN.js +7 -2
  883. package/lib/provider/locale/ms_MY.d.ts +3 -72
  884. package/lib/provider/locale/ms_MY.js +10 -5
  885. package/lib/provider/locale/nl_NL.d.ts +3 -75
  886. package/lib/provider/locale/nl_NL.js +4 -2
  887. package/lib/provider/locale/pl_PL.d.ts +3 -72
  888. package/lib/provider/locale/pl_PL.js +12 -7
  889. package/lib/provider/locale/pt_BR.d.ts +3 -72
  890. package/lib/provider/locale/pt_BR.js +7 -2
  891. package/lib/provider/locale/ro_RO.d.ts +3 -75
  892. package/lib/provider/locale/ro_RO.js +4 -2
  893. package/lib/provider/locale/ru_RU.d.ts +3 -72
  894. package/lib/provider/locale/ru_RU.js +9 -4
  895. package/lib/provider/locale/sk_SK.d.ts +3 -75
  896. package/lib/provider/locale/sk_SK.js +4 -2
  897. package/lib/provider/locale/sr_RS.d.ts +3 -72
  898. package/lib/provider/locale/sr_RS.js +9 -4
  899. package/lib/provider/locale/sv_SE.d.ts +3 -75
  900. package/lib/provider/locale/sv_SE.js +4 -2
  901. package/lib/provider/locale/th_TH.d.ts +3 -75
  902. package/lib/provider/locale/th_TH.js +4 -2
  903. package/lib/provider/locale/tr_TR.d.ts +3 -72
  904. package/lib/provider/locale/tr_TR.js +9 -4
  905. package/lib/provider/locale/uk_UA.d.ts +3 -75
  906. package/lib/provider/locale/uk_UA.js +6 -4
  907. package/lib/provider/locale/uz_UZ.d.ts +3 -72
  908. package/lib/provider/locale/uz_UZ.js +7 -2
  909. package/lib/provider/locale/vi_VN.d.ts +3 -72
  910. package/lib/provider/locale/vi_VN.js +10 -5
  911. package/lib/provider/locale/zh_CN.d.ts +76 -62
  912. package/lib/provider/locale/zh_CN.js +13 -2
  913. package/lib/provider/locale/zh_HK.d.ts +3 -75
  914. package/lib/provider/locale/zh_HK.js +4 -2
  915. package/lib/provider/locale/zh_TW.d.ts +3 -75
  916. package/lib/provider/locale/zh_TW.js +4 -2
  917. package/lib/provider/typing/layoutToken.js +0 -1
  918. package/lib/provider/useStyle/index.d.ts +5 -0
  919. package/lib/provider/useStyle/index.js +29 -9
  920. package/lib/provider/utils/merge.d.ts +22 -1
  921. package/lib/provider/utils/merge.js +39 -20
  922. package/lib/skeleton/components/Descriptions/index.d.ts +2 -2
  923. package/lib/skeleton/components/List/index.d.ts +3 -3
  924. package/lib/table/Store/Provide.d.ts +19 -12
  925. package/lib/table/Store/Provide.js +90 -44
  926. package/lib/table/Table.d.ts +1 -1
  927. package/lib/table/Table.js +100 -74
  928. package/lib/table/TableSearch.js +26 -29
  929. package/lib/table/TableToolbar.d.ts +4 -1
  930. package/lib/table/TableToolbar.js +24 -27
  931. package/lib/table/components/Alert/index.js +9 -5
  932. package/lib/table/components/ColumnSetting/index.d.ts +3 -1
  933. package/lib/table/components/ColumnSetting/index.js +57 -20
  934. package/lib/table/components/DragSortTable/index.js +26 -19
  935. package/lib/table/components/Dropdown/index.d.ts +3 -6
  936. package/lib/table/components/Dropdown/index.js +27 -26
  937. package/lib/table/components/EditableTable/CellEditorTable.d.ts +2 -1
  938. package/lib/table/components/EditableTable/CellEditorTable.js +59 -35
  939. package/lib/table/components/EditableTable/RowEditorTable.d.ts +2 -1
  940. package/lib/table/components/EditableTable/RowEditorTable.js +48 -33
  941. package/lib/table/components/EditableTable/index.d.ts +1 -1
  942. package/lib/table/components/EditableTable/index.js +129 -120
  943. package/lib/table/components/Form/FormRender.d.ts +1 -1
  944. package/lib/table/components/Form/FormRender.js +14 -23
  945. package/lib/table/components/Form/index.d.ts +1 -1
  946. package/lib/table/components/Form/index.js +20 -42
  947. package/lib/table/components/ListToolBar/HeaderMenu.js +6 -7
  948. package/lib/table/components/ListToolBar/index.js +78 -104
  949. package/lib/table/components/ToolBar/DensityIcon.d.ts +3 -3
  950. package/lib/table/components/ToolBar/DensityIcon.js +5 -7
  951. package/lib/table/components/ToolBar/FullscreenIcon.d.ts +2 -2
  952. package/lib/table/components/ToolBar/FullscreenIcon.js +18 -17
  953. package/lib/table/components/ToolBar/index.d.ts +4 -2
  954. package/lib/table/components/ToolBar/index.js +33 -39
  955. package/lib/table/index.d.ts +3 -8
  956. package/lib/table/index.js +3 -112
  957. package/lib/table/typing.d.ts +5 -5
  958. package/lib/table/useFetchData.js +71 -25
  959. package/lib/table/utils/cellRenderToFromItem.d.ts +6 -0
  960. package/lib/table/utils/cellRenderToFromItem.js +54 -28
  961. package/lib/table/utils/columnRender.d.ts +1 -1
  962. package/lib/table/utils/genProColumnToColumn.js +1 -1
  963. package/lib/table/utils/index.d.ts +23 -1
  964. package/lib/table/utils/index.js +62 -1
  965. package/lib/table/utils/useDragSort.d.ts +1 -1
  966. package/lib/table/utils/usePageInfo.js +2 -3
  967. package/lib/utils/components/DropdownFooter/index.d.ts +1 -1
  968. package/lib/utils/components/ErrorBoundary/index.d.ts +1 -1
  969. package/lib/utils/components/InlineErrorFormItem/index.d.ts +2 -1
  970. package/lib/utils/conversionMomentValue/index.d.ts +9 -4
  971. package/lib/utils/conversionMomentValue/index.js +57 -21
  972. package/lib/utils/dateArrayFormatter/index.js +12 -2
  973. package/lib/utils/genCopyable/index.d.ts +1 -1
  974. package/lib/utils/hooks/useUrlSearchParams/index.d.ts +6 -0
  975. package/lib/utils/hooks/useUrlSearchParams/index.js +151 -0
  976. package/lib/utils/index.d.ts +3 -2
  977. package/lib/utils/index.js +15 -0
  978. package/lib/utils/nanoid/index.js +3 -2
  979. package/lib/utils/parseValueToMoment/index.d.ts +6 -1
  980. package/lib/utils/parseValueToMoment/index.js +74 -6
  981. package/lib/utils/proFieldParsingText/index.d.ts +7 -1
  982. package/lib/utils/proFieldParsingText/index.js +8 -5
  983. package/lib/utils/transformKeySubmitValue/index.d.ts +3 -1
  984. package/lib/utils/transformKeySubmitValue/index.js +108 -80
  985. package/lib/utils/typing.d.ts +29 -62
  986. package/lib/utils/typing.js +90 -1
  987. package/lib/utils/useEditableArray/index.d.ts +21 -5
  988. package/lib/utils/useEditableArray/index.js +189 -107
  989. package/lib/utils/useEditableMap/index.d.ts +10 -3
  990. package/lib/utils/useEditableMap/index.js +133 -71
  991. package/lib/utils/useMediaQuery/index.d.ts +29 -36
  992. package/lib/utils/useMediaQuery/index.js +104 -90
  993. package/lib/utils/useMediaQuery/query.d.ts +7 -0
  994. package/lib/utils/useMediaQuery/query.js +32 -15
  995. package/package.json +45 -54
  996. package/es/field/FieldHOC/index.d.ts +0 -7
  997. package/lib/field/FieldHOC/index.d.ts +0 -7
@@ -1,82 +1,140 @@
1
1
  import { get, useControlledState } from '@rc-component/util';
2
2
  import { message } from 'antd';
3
- import { useCallback, useMemo, useRef } from 'react';
3
+ import set from 'lodash-es/set';
4
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
4
5
  import { useRefFunction } from '..';
5
6
  import { useIntl } from "../../provider";
6
7
  import { defaultActionRender, recordKeyToString } from "../useEditableArray";
7
8
 
8
9
  /**
9
- * 显示警告信息
10
- * @param messageStr
10
+ * 把 RecordKey 规范成统一的 string 形式 key(用于 Map 索引 / Set 成员判断)。
11
+ * RecordKey = React.Key | React.Key[],统一转 string 避免 number/string 不一致。
12
+ */
13
+ const normalizeKeyToString = recordKey => String(recordKeyToString(recordKey));
14
+
15
+ /**
16
+ * 把 RecordKey 转成 lodash set/get 用的路径数组,统一为 string 段。
17
+ * 例如:'name' → ['name'],['address','city'] → ['address','city'],123 → ['123']
18
+ */
19
+ const recordKeyToPath = recordKey => {
20
+ return Array.isArray(recordKey) ? recordKey.map(segment => String(segment)) : [String(recordKey)];
21
+ };
22
+
23
+ /**
24
+ * 显示警告信息(仅在 single 模式拦截重复编辑时调用)。
25
+ * NOTE: 使用 antd `message` 静态方法在 antd 5 下无法消费 ConfigProvider 的主题,
26
+ * 但替换为 `App.useApp()` 需要业务方在外层包裹 `<App />`,会有破坏性。
27
+ * 这里保留静态方法兼容历史调用,建议消费方自行包裹 `<App />` 以获得正确主题。
11
28
  */
12
29
  const warning = messageStr => {
13
- return message.warning(messageStr);
30
+ message.warning(messageStr);
14
31
  };
32
+
15
33
  /**
16
- * 使用map 来删除数据,性能一般 但是准确率比较高
17
- *
18
- * @param params
19
- * @param action
34
+ * recordKey 路径深度合并到 data 上:
35
+ * - 顶层 key(如 'name'):等价于 `{ ...data, ...{ name: row.name } }`,但只取该路径
36
+ * - 嵌套数组 key(如 ['address','city']):仅更新 data.address.city,不会把 data.address 整个替换掉
37
+ * 这避免了之前 `{ ...data, ...row }` 顶层合并导致兄弟字段(如 data.address.zipcode)被丢失的问题。
20
38
  */
21
39
  function editableRowByKey({
22
40
  data,
23
- row
41
+ row,
42
+ key
24
43
  }) {
25
- return {
26
- ...data,
27
- ...row
28
- };
44
+ const path = recordKeyToPath(key);
45
+ const value = get(row, path);
46
+ // 当 row 路径上没有目标值时(典型场景:受控外部 form 直接 setFieldsValue),
47
+ // 退回到顶层合并语义,保持向后兼容。
48
+ if (value === undefined) {
49
+ return {
50
+ ...data,
51
+ ...row
52
+ };
53
+ }
54
+ // lodash set 会原地修改对象,先做浅拷贝避免污染调用方的引用。
55
+ return set({
56
+ ...data
57
+ }, path, value);
29
58
  }
30
59
  /**
31
- * 一个方便的hooks 用于维护编辑的状态
60
+ * 单条记录场景下的"行内编辑"状态管理 hook(与 useEditableArray 平行设计,
61
+ * useEditableArray 服务于数组场景如 ProTable,本 hook 服务于 ProDescriptions 等单记录场景)。
62
+ *
63
+ * 设计要点:
64
+ * 1. `type='single'`(默认)下,已有任意字段处于编辑态时,再次发起 startEditable 会被拒绝并弹 toast,
65
+ * 用户必须先 cancel/save 当前编辑行才能编辑别的字段。这是产品刻意设计(受测试 `📝 单行模式下应该阻止同时编辑多个字段` 锁定),
66
+ * 与某些同类组件"切换式"行为不同;如需切换,需显式传 `type='multiple'` 并自行约束最多一行。
67
+ * 2. 多行模式(`type='multiple'`)支持任意多个字段同时编辑,每个字段进入编辑态前的快照按 key 存到 `preEditRowRefs` Map 中。
32
68
  *
33
69
  * @param props
34
70
  */
35
71
  export function useEditableMap(props) {
36
72
  /**
37
- * 点击开始编辑之前的保存数据用的
73
+ * 多行编辑场景下,按 recordKey 缓存每一行进入编辑前的快照(允许 null 表示新建行)。
74
+ * NOTE: 旧版同时维护了 `preEditRowRef`(单引用),但在 multiple 模式下会被新行覆盖,
75
+ * 导致取消时还原成别人的数据,已删除。actionRender 透传 `preEditRowRef` 时按当前 key
76
+ * 从 Map 取最新快照临时构造一个 ref,保证 defaultActionRender 拿到的是正确的快照。
38
77
  */
39
- const preEditRowRef = useRef(null);
40
78
  const preEditRowRefs = useRef(new Map());
41
- const editableType = props.type || 'single';
79
+
80
+ // 用 ?? 而非 ||,更准确表达"undefined 时取默认"的语义(type 不会传 falsy 但合法的值)
81
+ const editableType = props.type ?? 'single';
42
82
 
43
83
  // Internationalization
44
84
  const intl = useIntl();
45
85
  const [editableKeys, setEditableRowKeysInner] = useControlledState([], props.editableKeys);
86
+
87
+ /**
88
+ * 影子 ref,存放当前最新的 editableKeys。
89
+ * NOTE: 配合 useRefFunction 使用——后者保证函数引用稳定但闭包永远是渲染时最新的,
90
+ * 但我们需要"调用时最新"(例如 onSave 内连续调用 cancelEditable 时 React 还没 commit),
91
+ * 所以用 ref 保留同步影子。
92
+ */
93
+ const editableKeysRef = useRef(editableKeys);
94
+ useEffect(() => {
95
+ editableKeysRef.current = editableKeys;
96
+ }, [editableKeys]);
97
+
98
+ /**
99
+ * 把 onChange/dataSource 锁进 ref,避免每次 prop 变化都让 setEditableRowKeys 重建引用。
100
+ * 同时修正 onChange 第二参数语义:旧版直接传 props.dataSource(整条记录),
101
+ * 现在按 next keys 取出真正在编辑的字段值数组(与 useEditableArray 行为对齐)。
102
+ */
103
+ const triggerOnChange = useRefFunction(nextKeys => {
104
+ if (!props.onChange) return;
105
+ const editingRows = nextKeys.map(key => get(props.dataSource, [String(key)]));
106
+ props.onChange(nextKeys, editingRows);
107
+ });
46
108
  const setEditableRowKeys = useCallback(updater => {
47
109
  setEditableRowKeysInner(prev => {
48
- const next = typeof updater === 'function' ? updater(prev) : updater;
49
- props?.onChange?.(next, props.dataSource);
110
+ let next = typeof updater === 'function' ? updater(prev) : updater;
111
+ // single 模式下统一在入口截断,保证 state 与 editableKeysSet 一致。
112
+ // 旧版只在 editableKeysSet 里 slice(0,1),导致 state 里残留多余 key 但 isEditable 看不到。
113
+ if (editableType === 'single' && next.length > 1) {
114
+ next = next.slice(0, 1);
115
+ }
116
+ triggerOnChange(next);
50
117
  return next;
51
118
  });
52
- }, [props.onChange, props.dataSource]);
119
+ }, [setEditableRowKeysInner, triggerOnChange, editableType]);
53
120
 
54
121
  /** 一个用来标志的set 提供了方便的 api 来去重什么的 */
55
122
  const editableKeysSet = useMemo(() => {
56
- const keys = editableType === 'single' ? editableKeys?.slice(0, 1) || [] : editableKeys || [];
57
- return new Set(keys.map(key => String(key)));
58
- }, [editableKeys, editableType]);
123
+ return new Set((editableKeys || []).map(key => String(key)));
124
+ }, [editableKeys]);
59
125
 
60
- /**
61
- * 检查 key 是否在编辑列表中
62
- * 使用 editableKeysSet 进行快速查找,性能更好
63
- */
64
- const checkKeyInEditableList = useRefFunction(recordKey => {
65
- const keyStr = String(recordKeyToString(recordKey));
66
- return editableKeysSet.has(keyStr);
126
+ /** 这行是不是编辑状态。useRefFunction 保证引用稳定且闭包永远最新。 */
127
+ const isEditable = useRefFunction(recordKey => {
128
+ return editableKeysSet.has(normalizeKeyToString(recordKey));
67
129
  });
68
130
 
69
- /** 这行是不是编辑状态 */
70
- const isEditable = useCallback(recordKey => {
71
- return checkKeyInEditableList(recordKey);
72
- }, [checkKeyInEditableList]);
73
-
74
131
  /**
75
- * 验证是否可以开始编辑
132
+ * 验证是否可以开始编辑(仅 single 模式下生效)。
133
+ * 用 editableKeysRef 读最新值,避免连续调用时拿到陈旧快照。
76
134
  */
77
135
  const validateCanStartEdit = useRefFunction(() => {
78
- // 如果是单行模式,检查是否已有编辑中的行
79
- if (editableType === 'single' && editableKeys && editableKeys.length > 0) {
136
+ const currentKeys = editableKeysRef.current;
137
+ if (editableType === 'single' && currentKeys && currentKeys.length > 0) {
80
138
  warning(props.onlyOneLineEditorAlertMessage || intl.getMessage('editableTable.onlyOneLineEditor', '只能同时编辑一行'));
81
139
  return false;
82
140
  }
@@ -87,26 +145,24 @@ export function useEditableMap(props) {
87
145
  * 进入编辑状态
88
146
  *
89
147
  * @param recordKey
90
- * @param recordValue
148
+ * @param recordValue 显式传入的"编辑前快照",未传则从 dataSource 按 key 路径取
91
149
  */
92
150
  const startEditable = useRefFunction((recordKey, recordValue) => {
93
- // 验证是否可以开始编辑
94
151
  if (!validateCanStartEdit()) {
95
152
  return false;
96
153
  }
97
- const keyStr = String(recordKeyToString(recordKey));
154
+ const keyStr = normalizeKeyToString(recordKey);
98
155
 
99
- // 检查是否已经在编辑列表中,避免重复添加
100
- if (checkKeyInEditableList(recordKey)) {
156
+ // 已经在编辑列表中,幂等返回成功
157
+ if (isEditable(recordKey)) {
101
158
  return true;
102
159
  }
103
160
 
104
- // 保存编辑前的数据
105
- preEditRowRef.current = recordValue ?? get(props.dataSource, Array.isArray(recordKey) ? recordKey : [recordKey]) ?? null;
106
- preEditRowRefs.current.set(String(recordKeyToString(recordKey)), preEditRowRef.current);
107
-
108
- // 更新编辑 keys(不直接修改 editableKeysSet)
109
- const newKeys = editableType === 'single' ? [keyStr] : [...(editableKeys || []), keyStr];
161
+ // 保存编辑前的数据到 Map(按 recordKey 索引,多行场景互不干扰)
162
+ const snapshot = recordValue ?? get(props.dataSource, recordKeyToPath(recordKey)) ?? null;
163
+ preEditRowRefs.current.set(keyStr, snapshot);
164
+ const currentKeys = editableKeysRef.current;
165
+ const newKeys = editableType === 'single' ? [keyStr] : [...(currentKeys || []), keyStr];
110
166
  setEditableRowKeys(newKeys);
111
167
  return true;
112
168
  });
@@ -117,32 +173,30 @@ export function useEditableMap(props) {
117
173
  * @param recordKey
118
174
  */
119
175
  const cancelEditable = useRefFunction(recordKey => {
120
- const keyStr = String(recordKeyToString(recordKey));
121
-
122
- // 检查是否在编辑列表中
123
- if (!checkKeyInEditableList(recordKey)) {
176
+ const keyStr = normalizeKeyToString(recordKey);
177
+ if (!isEditable(recordKey)) {
124
178
  return true;
125
179
  }
126
180
 
127
- // 更新编辑 keys(不直接修改 editableKeysSet)
128
- const newKeys = (editableKeys || []).filter(key => String(key) !== keyStr);
181
+ // editableKeysRef 读最新值,避免快速连续调用时基于陈旧 editableKeys 计算
182
+ const newKeys = (editableKeysRef.current || []).filter(key => String(key) !== keyStr);
129
183
  setEditableRowKeys(newKeys);
130
184
  return true;
131
185
  });
132
186
 
133
187
  /**
134
- * 取消编辑的回调
188
+ * 取消编辑的回调(透传给 props.onCancel,后者返回 false 视为失败、其他视为成功)。
189
+ * NOTE: "false 即失败" 是与 RowEditableConfig 共用的隐式协议,类型上是 `Promise<any | void>`,
190
+ * 这里在文档里显式说明便于消费方理解。
135
191
  */
136
192
  const onCancel = useRefFunction(async (recordKey, editRow, originRow, newLine) => {
137
193
  const success = await props?.onCancel?.(recordKey, editRow, originRow, newLine);
138
- if (success === false) {
139
- return false;
140
- }
141
- return true;
194
+ return success !== false;
142
195
  });
143
196
 
144
197
  /**
145
- * 保存编辑的回调
198
+ * 保存编辑的回调(透传给 props.onSave,后者返回 false 视为失败、其他视为成功)。
199
+ * 成功后:1) 退出编辑态 2) 清掉 preEditRowRefs Map 缓存 3) 按 recordKey 路径更新 dataSource。
146
200
  */
147
201
  const onSave = useRefFunction(async (recordKey, editRow, originRow) => {
148
202
  const success = await props?.onSave?.(recordKey, editRow, originRow);
@@ -152,26 +206,33 @@ export function useEditableMap(props) {
152
206
 
153
207
  // 先退出编辑状态
154
208
  await cancelEditable(recordKey);
155
- preEditRowRefs.current.delete(String(recordKeyToString(recordKey)));
209
+ preEditRowRefs.current.delete(normalizeKeyToString(recordKey));
156
210
 
157
- // 更新数据源
158
- const actionProps = {
211
+ // 按 key 路径深度合并到 dataSource,避免顶层合并把兄弟字段冲掉
212
+ props.setDataSource(editableRowByKey({
159
213
  data: props.dataSource,
160
214
  row: editRow,
161
- key: recordKey,
162
- childrenColumnName: props.childrenColumnName || 'children'
163
- };
164
- props.setDataSource(editableRowByKey(actionProps));
215
+ key: recordKey
216
+ }));
165
217
  return true;
166
218
  });
167
219
  const saveText = intl.getMessage('editableTable.action.save', '保存');
168
220
  const deleteText = intl.getMessage('editableTable.action.delete', '删除');
169
221
  const cancelText = intl.getMessage('editableTable.action.cancel', '取消');
222
+ // 提到外部,避免每次 actionRender 都重新拼模板字符串
223
+ const deletePopconfirmMessage = `${intl.getMessage('deleteThisLine', '删除此项')}?`;
170
224
 
171
225
  /**
172
- * 渲染操作按钮
226
+ * 渲染操作按钮。
227
+ * useCallback 依赖只列真正会变的:editableKeys / dataSource / props.actionRender / 文案 token。
228
+ * cancelEditable / onCancel / onSave 都是 useRefFunction 引用永远稳定,不必列。
173
229
  */
174
230
  const actionRender = useCallback((key, config) => {
231
+ // 按当前 recordKey 从 Map 取真正的快照,构造一个临时 ref 透传给 defaultActionRender。
232
+ // 这避免了旧版用全局单引用 preEditRowRef 在多行场景被覆盖的 bug。
233
+ const snapshotRef = {
234
+ current: preEditRowRefs.current.get(normalizeKeyToString(key)) ?? null
235
+ };
175
236
  const renderConfig = {
176
237
  recordKey: key,
177
238
  cancelEditable,
@@ -181,10 +242,10 @@ export function useEditableMap(props) {
181
242
  setEditableRowKeys,
182
243
  saveText,
183
244
  cancelText,
184
- preEditRowRef,
245
+ preEditRowRef: snapshotRef,
185
246
  preEditRowRefs,
186
247
  deleteText,
187
- deletePopconfirmMessage: `${intl.getMessage('deleteThisLine', '删除此项')}?`,
248
+ deletePopconfirmMessage,
188
249
  editorType: 'Map',
189
250
  ...config
190
251
  };
@@ -197,7 +258,7 @@ export function useEditableMap(props) {
197
258
  });
198
259
  }
199
260
  return [renderResult.save, renderResult.delete, renderResult.cancel];
200
- }, [editableKeys, props.dataSource, cancelEditable, onCancel, onSave]);
261
+ }, [editableKeys, props.dataSource, props.actionRender, setEditableRowKeys, saveText, cancelText, deleteText, deletePopconfirmMessage, cancelEditable, onCancel, onSave]);
201
262
  return {
202
263
  editableKeys,
203
264
  setEditableRowKeys,
@@ -1,40 +1,33 @@
1
- export declare const MediaQueryEnum: {
2
- xs: {
3
- maxWidth: number;
4
- matchMedia: string;
5
- };
6
- sm: {
7
- minWidth: number;
8
- maxWidth: number;
9
- matchMedia: string;
10
- };
11
- md: {
12
- minWidth: number;
13
- maxWidth: number;
14
- matchMedia: string;
15
- };
16
- lg: {
17
- minWidth: number;
18
- maxWidth: number;
19
- matchMedia: string;
20
- };
21
- xl: {
22
- minWidth: number;
23
- maxWidth: number;
24
- matchMedia: string;
25
- };
26
- xxl: {
27
- minWidth: number;
28
- matchMedia: string;
29
- };
1
+ /**
2
+ * 单个断点描述:可选的 minWidth/maxWidth + 必须的 matchMedia 字符串。
3
+ */
4
+ type MediaQueryItem = {
5
+ minWidth?: number;
6
+ maxWidth?: number;
7
+ matchMedia: string;
30
8
  };
31
- export type MediaQueryKey = keyof typeof MediaQueryEnum;
9
+ type MediaQueryEnumShape = {
10
+ xs: MediaQueryItem;
11
+ sm: MediaQueryItem;
12
+ md: MediaQueryItem;
13
+ lg: MediaQueryItem;
14
+ xl: MediaQueryItem;
15
+ xxl: MediaQueryItem;
16
+ };
17
+ export type MediaQueryKey = keyof MediaQueryEnumShape;
18
+ /**
19
+ * 历史导出:保留 `MediaQueryEnum.xx.matchMedia` 直接访问的形状,但底层走懒初始化。
20
+ * 用 Proxy 把每次属性访问都转发到 `getMediaQueryEnum()`,外部代码无需感知。
21
+ */
22
+ export declare const MediaQueryEnum: MediaQueryEnumShape;
23
+ /**
24
+ * 同步读取当前屏幕命中的最大断点。SSR 下返回 undefined(无 window)。
25
+ * 仅用于类组件 / 非 React 环境的一次性查询;React 函数组件请使用 `useBreakpoint`。
26
+ */
27
+ export declare const getScreenClassName: () => MediaQueryKey | undefined;
32
28
  /**
33
- * loop query screen className
34
- * Array.find will throw a error
35
- * `Rendered more hooks than during the previous render.`
36
- * So should use Array.forEach
29
+ * 订阅当前屏幕的断点。返回 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl',
30
+ * 在所有断点都未命中(理论上不会发生)的兜底场景下返回 'md'。
37
31
  */
38
- export declare const getScreenClassName: () => "xxl" | "xl" | "lg" | "md" | "sm" | "xs" | undefined;
39
- declare const useBreakpoint: () => "xxl" | "xl" | "lg" | "md" | "sm" | "xs" | undefined;
32
+ declare const useBreakpoint: () => MediaQueryKey;
40
33
  export { useBreakpoint };
@@ -1,103 +1,118 @@
1
1
  import { theme } from 'antd';
2
- import { useEffect, useState } from 'react';
2
+ import { useMemo } from 'react';
3
3
  import useMediaQuery from "./query";
4
- const {
5
- getDesignToken
6
- } = theme;
7
- const token = getDesignToken();
8
- export const MediaQueryEnum = {
9
- xs: {
10
- maxWidth: token.screenXSMax,
11
- matchMedia: `(max-width: ${token.screenXSMax}px)`
12
- },
13
- sm: {
14
- minWidth: token.screenSMMin,
15
- maxWidth: token.screenSMMax,
16
- matchMedia: `(min-width: ${token.screenSMMin}px) and (max-width: ${token.screenSMMax}px)`
17
- },
18
- md: {
19
- minWidth: token.screenMDMin,
20
- maxWidth: token.screenMDMax,
21
- matchMedia: `(min-width: ${token.screenMDMin}px) and (max-width: ${token.screenMDMax}px)`
22
- },
23
- lg: {
24
- minWidth: token.screenLGMin,
25
- maxWidth: token.screenLGMax,
26
- matchMedia: `(min-width: ${token.screenLGMin}px) and (max-width: ${token.screenLGMax}px)`
4
+
5
+ /**
6
+ * 单个断点描述:可选的 minWidth/maxWidth + 必须的 matchMedia 字符串。
7
+ */
8
+
9
+ /**
10
+ * 按断点优先级从大到小排列,方便 useBreakpoint / getScreenClassName 用同一份顺序匹配。
11
+ */
12
+ const BREAKPOINT_PRIORITY = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];
13
+ let cachedMediaQueryEnum;
14
+
15
+ /**
16
+ * 懒求值的 MediaQueryEnum 工厂。
17
+ *
18
+ * 不能再像旧实现那样 `const token = theme.getDesignToken()` 写在模块顶层 ——
19
+ * 1. SSR 环境下模块 import 即触发 antd cssinjs 计算,可能产生 SSR warning;
20
+ * 2. 用户用 ConfigProvider 自定义 token 时,外层 token 修改后 MediaQueryEnum
21
+ * 仍是模块加载时的旧值,断点完全失效;
22
+ * 3. 测试环境下若 antd 还未初始化(mock 时序问题)会直接抛错。
23
+ *
24
+ * 改成首次访问时才求值并缓存:浏览器一次会话一般不会改 ConfigProvider token
25
+ * 缓存命中即等价于模块顶层常量;SSR 也只会在真正用到时才触发求值。
26
+ */
27
+ const getMediaQueryEnum = () => {
28
+ if (cachedMediaQueryEnum) return cachedMediaQueryEnum;
29
+ const token = theme.getDesignToken();
30
+ cachedMediaQueryEnum = {
31
+ xs: {
32
+ maxWidth: token.screenXSMax,
33
+ matchMedia: `(max-width: ${token.screenXSMax}px)`
34
+ },
35
+ sm: {
36
+ minWidth: token.screenSMMin,
37
+ maxWidth: token.screenSMMax,
38
+ matchMedia: `(min-width: ${token.screenSMMin}px) and (max-width: ${token.screenSMMax}px)`
39
+ },
40
+ md: {
41
+ minWidth: token.screenMDMin,
42
+ maxWidth: token.screenMDMax,
43
+ matchMedia: `(min-width: ${token.screenMDMin}px) and (max-width: ${token.screenMDMax}px)`
44
+ },
45
+ lg: {
46
+ minWidth: token.screenLGMin,
47
+ maxWidth: token.screenLGMax,
48
+ matchMedia: `(min-width: ${token.screenLGMin}px) and (max-width: ${token.screenLGMax}px)`
49
+ },
50
+ xl: {
51
+ minWidth: token.screenXLMin,
52
+ maxWidth: token.screenXLMax,
53
+ matchMedia: `(min-width: ${token.screenXLMin}px) and (max-width: ${token.screenXLMax}px)`
54
+ },
55
+ xxl: {
56
+ minWidth: token.screenXXLMin,
57
+ matchMedia: `(min-width: ${token.screenXXLMin}px)`
58
+ }
59
+ };
60
+ return cachedMediaQueryEnum;
61
+ };
62
+
63
+ /**
64
+ * 历史导出:保留 `MediaQueryEnum.xx.matchMedia` 直接访问的形状,但底层走懒初始化。
65
+ * 用 Proxy 把每次属性访问都转发到 `getMediaQueryEnum()`,外部代码无需感知。
66
+ */
67
+ export const MediaQueryEnum = new Proxy({}, {
68
+ get(_target, prop) {
69
+ return getMediaQueryEnum()[prop];
27
70
  },
28
- xl: {
29
- minWidth: token.screenXLMin,
30
- maxWidth: token.screenXLMax,
31
- matchMedia: `(min-width: ${token.screenXLMin}px) and (max-width: ${token.screenXLMax}px)`
71
+ ownKeys() {
72
+ return Object.keys(getMediaQueryEnum());
32
73
  },
33
- xxl: {
34
- minWidth: token.screenXXLMin,
35
- matchMedia: `(min-width: ${token.screenXXLMin}px)`
74
+ getOwnPropertyDescriptor(_target, prop) {
75
+ const value = getMediaQueryEnum()[prop];
76
+ return value ? {
77
+ configurable: true,
78
+ enumerable: true,
79
+ value,
80
+ writable: false
81
+ } : undefined;
36
82
  }
37
- };
83
+ });
84
+
38
85
  /**
39
- * loop query screen className
40
- * Array.find will throw a error
41
- * `Rendered more hooks than during the previous render.`
42
- * So should use Array.forEach
86
+ * 同步读取当前屏幕命中的最大断点。SSR 下返回 undefined(无 window)。
87
+ * 仅用于类组件 / React 环境的一次性查询;React 函数组件请使用 `useBreakpoint`。
43
88
  */
44
89
  export const getScreenClassName = () => {
45
- let queryKey = undefined;
46
- // support ssr
47
- if (typeof window === 'undefined') {
48
- return queryKey;
49
- }
50
- const mediaQueryKey = Object.keys(MediaQueryEnum).find(key => {
51
- const {
52
- matchMedia
53
- } = MediaQueryEnum[key];
54
- if (window.matchMedia(matchMedia).matches) {
55
- return true;
56
- }
57
- return false;
58
- });
59
- queryKey = mediaQueryKey;
60
- return queryKey;
90
+ if (typeof window === 'undefined') return undefined;
91
+ const enumValue = getMediaQueryEnum();
92
+ return BREAKPOINT_PRIORITY.find(key => window.matchMedia(enumValue[key].matchMedia).matches);
61
93
  };
94
+
95
+ /**
96
+ * 订阅当前屏幕的断点。返回 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl',
97
+ * 在所有断点都未命中(理论上不会发生)的兜底场景下返回 'md'。
98
+ */
62
99
  const useBreakpoint = () => {
63
- const isMd = useMediaQuery(MediaQueryEnum.md.matchMedia);
64
- const isLg = useMediaQuery(MediaQueryEnum.lg.matchMedia);
65
- const isXxl = useMediaQuery(MediaQueryEnum.xxl.matchMedia);
66
- const isXl = useMediaQuery(MediaQueryEnum.xl.matchMedia);
67
- const isSm = useMediaQuery(MediaQueryEnum.sm.matchMedia);
68
- const isXs = useMediaQuery(MediaQueryEnum.xs.matchMedia);
69
- const [colSpan, setColSpan] = useState(getScreenClassName());
70
- useEffect(() => {
71
- if (process.env.NODE_ENV === 'TEST') {
72
- setColSpan(process.env.USE_MEDIA || 'md');
73
- return;
74
- }
75
- if (isXxl) {
76
- setColSpan('xxl');
77
- return;
78
- }
79
- if (isXl) {
80
- setColSpan('xl');
81
- return;
82
- }
83
- if (isLg) {
84
- setColSpan('lg');
85
- return;
86
- }
87
- if (isMd) {
88
- setColSpan('md');
89
- return;
90
- }
91
- if (isSm) {
92
- setColSpan('sm');
93
- return;
94
- }
95
- if (isXs) {
96
- setColSpan('xs');
97
- return;
98
- }
99
- setColSpan('md');
100
- }, [isMd, isLg, isXxl, isXl, isSm, isXs]);
101
- return colSpan;
100
+ const enumValue = getMediaQueryEnum();
101
+ // 6 useMediaQuery 调用顺序必须稳定,不能放到循环/条件里
102
+ const isXs = useMediaQuery(enumValue.xs.matchMedia);
103
+ const isSm = useMediaQuery(enumValue.sm.matchMedia);
104
+ const isMd = useMediaQuery(enumValue.md.matchMedia);
105
+ const isLg = useMediaQuery(enumValue.lg.matchMedia);
106
+ const isXl = useMediaQuery(enumValue.xl.matchMedia);
107
+ const isXxl = useMediaQuery(enumValue.xxl.matchMedia);
108
+ return useMemo(() => {
109
+ if (isXxl) return 'xxl';
110
+ if (isXl) return 'xl';
111
+ if (isLg) return 'lg';
112
+ if (isMd) return 'md';
113
+ if (isSm) return 'sm';
114
+ if (isXs) return 'xs';
115
+ return 'md';
116
+ }, [isXxl, isXl, isLg, isMd, isSm, isXs]);
102
117
  };
103
118
  export { useBreakpoint };
@@ -1 +1,8 @@
1
+ /**
2
+ * 订阅一个 CSS media query,返回当前是否匹配。
3
+ *
4
+ * SSR 行为:
5
+ * - 服务端首次渲染恒定返回 false(避免 hydration mismatch,但首屏可能闪一下)。
6
+ * - 客户端 mount 后立即拿到真实值并触发一次 setState 更新。
7
+ */
1
8
  export default function useMediaQuery(mediaQuery: string): boolean;
@@ -1,21 +1,39 @@
1
1
  import { useEffect, useLayoutEffect, useState } from 'react';
2
+
3
+ /**
4
+ * SSR 友好的 layoutEffect:模块加载时一次性决定走 useLayoutEffect 还是 useEffect。
5
+ * 不能写成 `isSsr ? useEffect : useLayoutEffect` 放在组件函数里 —— 虽然
6
+ * `typeof window` 在同一进程中恒定不变实际不会触发 hooks 顺序问题,但会被
7
+ * `react-hooks/rules-of-hooks` lint 误报,且阅读时令人困惑。
8
+ */
9
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
10
+
11
+ /**
12
+ * 订阅一个 CSS media query,返回当前是否匹配。
13
+ *
14
+ * SSR 行为:
15
+ * - 服务端首次渲染恒定返回 false(避免 hydration mismatch,但首屏可能闪一下)。
16
+ * - 客户端 mount 后立即拿到真实值并触发一次 setState 更新。
17
+ */
2
18
  export default function useMediaQuery(mediaQuery) {
3
- const isSsr = typeof window === 'undefined';
4
- const [matches, setMatches] = useState(() => isSsr ? false : window.matchMedia(mediaQuery).matches);
19
+ // SSR 期间 window 不存在,恒定 false;放弃在 useState 初始值里读
20
+ // window.matchMedia,否则客户端 hydration 时会与服务端 false 渲染冲突。
21
+ const [matches, setMatches] = useState(false);
22
+ useIsomorphicLayoutEffect(() => {
23
+ if (typeof window === 'undefined') return;
24
+ const mediaQueryList = window.matchMedia(mediaQuery);
5
25
 
6
- // SSR 环境中使用 useEffect,在客户端使用 useLayoutEffect
7
- // 这样可以避免 SSR 警告,同时在客户端保持同步更新
8
- // 使用条件表达式确保 hooks 调用顺序一致
9
- const EffectHook = isSsr ? useEffect : useLayoutEffect;
10
- EffectHook(() => {
11
- if (isSsr) {
12
- return;
26
+ // mount 后立刻同步一次真实值,弥补 SSR 期间初值恒为 false 的偏差
27
+ setMatches(mediaQueryList.matches);
28
+ const listener = event => setMatches(event.matches);
29
+
30
+ // 优先用现代 addEventListener;老 Safari (<14) / Edge Legacy 仅有 addListener
31
+ if (typeof mediaQueryList.addEventListener === 'function') {
32
+ mediaQueryList.addEventListener('change', listener);
33
+ return () => mediaQueryList.removeEventListener('change', listener);
13
34
  }
14
- const mediaQueryList = window.matchMedia(mediaQuery);
15
- const listener = e => setMatches(e.matches);
16
- // 使用最新的 addEventListener API
17
- mediaQueryList.addEventListener('change', listener);
18
- return () => mediaQueryList.removeEventListener('change', listener);
19
- }, [mediaQuery, isSsr]);
35
+ mediaQueryList.addListener(listener);
36
+ return () => mediaQueryList.removeListener(listener);
37
+ }, [mediaQuery]);
20
38
  return matches;
21
39
  }