@zat-design/sisyphus-react 4.5.10-beta.1 → 4.5.10-beta.2

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 (266) hide show
  1. package/es/FormsProvider/index.js +14 -21
  2. package/es/ProAction/components/CheckModalContent/index.js +12 -26
  3. package/es/ProAction/index.js +79 -83
  4. package/es/ProAction/propsType.js +0 -1
  5. package/es/ProConfigProvider/index.js +63 -110
  6. package/es/ProConfigProvider/propsType.js +0 -1
  7. package/es/ProDownload/index.js +55 -65
  8. package/es/ProDownload/propsType.js +0 -1
  9. package/es/ProDownload/utils.js +61 -95
  10. package/es/ProDrawerForm/components/ProDrawer/index.js +83 -113
  11. package/es/ProDrawerForm/components/ProModal/index.js +77 -108
  12. package/es/ProDrawerForm/components/index.js +6 -2
  13. package/es/ProDrawerForm/hooks/useConfirmClose.js +20 -39
  14. package/es/ProDrawerForm/index.js +29 -38
  15. package/es/ProDrawerForm/propsType.js +0 -1
  16. package/es/ProDrawerForm/utils/index.js +18 -36
  17. package/es/ProEditLabel/components/RenderProForm.js +45 -49
  18. package/es/ProEditLabel/index.js +126 -163
  19. package/es/ProEditLabel/propsType.js +0 -1
  20. package/es/ProEditLabel/utils/index.js +5 -8
  21. package/es/ProEditTable/components/ActionButton/index.js +111 -119
  22. package/es/ProEditTable/components/RcTable/BaseTable.js +38 -51
  23. package/es/ProEditTable/components/RcTable/DraggableTable.js +97 -129
  24. package/es/ProEditTable/components/RcTable/index.js +6 -4
  25. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +77 -95
  26. package/es/ProEditTable/components/RenderField/index.js +490 -587
  27. package/es/ProEditTable/components/RenderField/propsType.js +0 -1
  28. package/es/ProEditTable/components/RenderField/tools.js +115 -112
  29. package/es/ProEditTable/components/RenderToolbar/index.js +47 -73
  30. package/es/ProEditTable/components/Summary/index.js +38 -64
  31. package/es/ProEditTable/components/Validator/index.js +46 -46
  32. package/es/ProEditTable/components/index.js +12 -5
  33. package/es/ProEditTable/index.js +456 -378
  34. package/es/ProEditTable/propsType.js +0 -1
  35. package/es/ProEditTable/utils/config.js +60 -122
  36. package/es/ProEditTable/utils/diffOriginal.js +45 -82
  37. package/es/ProEditTable/utils/getDefaultProps.js +19 -24
  38. package/es/ProEditTable/utils/index.js +150 -236
  39. package/es/ProEditTable/utils/tools.js +149 -286
  40. package/es/ProEditTable/utils/transform.js +25 -30
  41. package/es/ProEditTable/utils/useEditTableError.js +30 -43
  42. package/es/ProEditTable/utils/useShouldUpdateForTable.js +42 -72
  43. package/es/ProEditTable/utils/validateAll.js +87 -154
  44. package/es/ProEnum/components/Group.js +38 -30
  45. package/es/ProEnum/components/Tag.js +22 -26
  46. package/es/ProEnum/hooks/useEnum.js +48 -116
  47. package/es/ProEnum/hooks/useEnumRequest.js +128 -179
  48. package/es/ProEnum/hooks/useFrequentEnumRequest.js +40 -48
  49. package/es/ProEnum/index.js +162 -172
  50. package/es/ProEnum/propsType.js +0 -1
  51. package/es/ProEnum/utils/eventCenter.js +10 -12
  52. package/es/ProEnum/utils/frequentEnum.js +35 -92
  53. package/es/ProEnum/utils/getEnum.js +32 -90
  54. package/es/ProEnum/utils/getEnumLabel.js +44 -49
  55. package/es/ProEnum/utils/index.js +93 -207
  56. package/es/ProForm/components/Container.js +13 -28
  57. package/es/ProForm/components/FormFooter/index.js +36 -44
  58. package/es/ProForm/components/FormFooter/propsType.js +0 -1
  59. package/es/ProForm/components/base/Checkbox/index.js +32 -59
  60. package/es/ProForm/components/base/DatePicker/index.js +49 -71
  61. package/es/ProForm/components/base/Input/index.js +63 -97
  62. package/es/ProForm/components/base/Input/propsType.js +0 -1
  63. package/es/ProForm/components/base/InputNumber/index.js +118 -172
  64. package/es/ProForm/components/base/Radio/index.js +39 -52
  65. package/es/ProForm/components/base/RangePicker/index.js +109 -127
  66. package/es/ProForm/components/base/RangePicker/useDateRange.js +20 -17
  67. package/es/ProForm/components/base/Select/index.js +63 -89
  68. package/es/ProForm/components/base/Switch/index.js +27 -35
  69. package/es/ProForm/components/base/SwitchCheckbox/index.js +36 -54
  70. package/es/ProForm/components/base/TextArea/index.js +30 -41
  71. package/es/ProForm/components/base/TimePicker/index.js +27 -37
  72. package/es/ProForm/components/combination/Container/index.js +37 -47
  73. package/es/ProForm/components/combination/Container/propsType.js +0 -1
  74. package/es/ProForm/components/combination/FormList/components/ActionButton.js +165 -237
  75. package/es/ProForm/components/combination/FormList/components/BlockFields.js +98 -103
  76. package/es/ProForm/components/combination/FormList/components/Empty.js +27 -54
  77. package/es/ProForm/components/combination/FormList/components/LineFields.js +57 -54
  78. package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +61 -109
  79. package/es/ProForm/components/combination/FormList/index.js +151 -161
  80. package/es/ProForm/components/combination/FormList/propsType.js +0 -1
  81. package/es/ProForm/components/combination/FormList/utils.js +22 -38
  82. package/es/ProForm/components/combination/Group/component/AddonWrapper/index.js +12 -28
  83. package/es/ProForm/components/combination/Group/component/ComRender.js +50 -111
  84. package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +105 -206
  85. package/es/ProForm/components/combination/Group/hooks/index.js +68 -128
  86. package/es/ProForm/components/combination/Group/index.js +87 -126
  87. package/es/ProForm/components/combination/Group/propsType.js +0 -1
  88. package/es/ProForm/components/combination/Group/utils/index.js +124 -239
  89. package/es/ProForm/components/combination/ProCascader/index.js +156 -199
  90. package/es/ProForm/components/combination/ProCascader/propsType.js +0 -1
  91. package/es/ProForm/components/combination/ProCascader/utils/index.js +12 -21
  92. package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +63 -75
  93. package/es/ProForm/components/combination/ProModalSelect/index.js +290 -348
  94. package/es/ProForm/components/combination/ProModalSelect/propsType.js +0 -1
  95. package/es/ProForm/components/combination/ProModalSelect/utils/index.js +32 -39
  96. package/es/ProForm/components/combination/ProNumberRange/index.js +100 -156
  97. package/es/ProForm/components/combination/ProNumberRange/propsType.js +0 -1
  98. package/es/ProForm/components/combination/ProRangeLimit/index.js +104 -115
  99. package/es/ProForm/components/combination/ProRangeLimit/propsType.js +0 -1
  100. package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +16 -16
  101. package/es/ProForm/components/combination/ProTimeLimit/index.js +75 -109
  102. package/es/ProForm/components/index.js +56 -34
  103. package/es/ProForm/components/render/ChangedWrapper.js +85 -94
  104. package/es/ProForm/components/render/ConfirmWrapper.js +27 -39
  105. package/es/ProForm/components/render/CustomComponentViewWrapper.js +65 -82
  106. package/es/ProForm/components/render/Render.js +223 -329
  107. package/es/ProForm/components/render/RenderFields.js +76 -113
  108. package/es/ProForm/components/render/propsType.js +0 -1
  109. package/es/ProForm/hooks/useControlled.js +8 -10
  110. package/es/ProForm/hooks/useDeepCompareMemo.js +11 -11
  111. package/es/ProForm/hooks/useFieldProps.js +8 -4
  112. package/es/ProForm/hooks/useForm.js +50 -110
  113. package/es/ProForm/hooks/useRules.js +17 -33
  114. package/es/ProForm/hooks/useShouldUpdate.js +77 -152
  115. package/es/ProForm/hooks/useWatch.js +58 -129
  116. package/es/ProForm/index.js +157 -194
  117. package/es/ProForm/propsType.js +15 -7
  118. package/es/ProForm/utils/buildFormItemProps.js +51 -58
  119. package/es/ProForm/utils/diffOriginal.js +43 -73
  120. package/es/ProForm/utils/getDefaultProps.js +18 -24
  121. package/es/ProForm/utils/index.js +159 -234
  122. package/es/ProForm/utils/processDependencies.js +21 -60
  123. package/es/ProForm/utils/reactiveValues.js +20 -34
  124. package/es/ProForm/utils/rulesCreator.js +42 -40
  125. package/es/ProForm/utils/transformNames.js +10 -13
  126. package/es/ProForm/utils/transformValue.js +16 -29
  127. package/es/ProForm/utils/valueType.js +96 -178
  128. package/es/ProIcon/config/index.js +340 -274
  129. package/es/ProIcon/index.js +135 -209
  130. package/es/ProIcon/propsTypes.js +0 -1
  131. package/es/ProIcon/utils/index.js +24 -39
  132. package/es/ProLayout/components/Layout/Header/index.js +108 -141
  133. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +134 -190
  134. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +111 -137
  135. package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.js +0 -1
  136. package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +23 -31
  137. package/es/ProLayout/components/Layout/Menu/index.js +92 -89
  138. package/es/ProLayout/components/Layout/Notice/index.js +13 -27
  139. package/es/ProLayout/components/Layout/index.js +8 -3
  140. package/es/ProLayout/components/ProCollapse/PropTypes.js +0 -1
  141. package/es/ProLayout/components/ProCollapse/index.js +89 -111
  142. package/es/ProLayout/components/ProFooter/PropTypes.js +0 -1
  143. package/es/ProLayout/components/ProFooter/index.js +27 -25
  144. package/es/ProLayout/components/ProHeader/PropTypes.js +0 -1
  145. package/es/ProLayout/components/ProHeader/components/Copy/index.js +23 -21
  146. package/es/ProLayout/components/ProHeader/components/Describe/index.js +67 -86
  147. package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +18 -21
  148. package/es/ProLayout/components/ProHeader/components/ProBackBtn/propsType.js +0 -1
  149. package/es/ProLayout/components/ProHeader/components/index.js +6 -2
  150. package/es/ProLayout/components/ProHeader/index.js +216 -356
  151. package/es/ProLayout/components/ProHeader/utils/index.js +19 -26
  152. package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +92 -85
  153. package/es/ProLayout/components/TabsManager/components/TabItem.js +53 -64
  154. package/es/ProLayout/components/TabsManager/components/TabsContext.js +5 -5
  155. package/es/ProLayout/components/TabsManager/components/TabsHeader.js +42 -52
  156. package/es/ProLayout/components/TabsManager/hooks/useActiveTab.js +8 -9
  157. package/es/ProLayout/components/TabsManager/hooks/useIframeRoute.js +19 -32
  158. package/es/ProLayout/components/TabsManager/hooks/useProLayoutTabs.js +6 -20
  159. package/es/ProLayout/components/TabsManager/hooks/useTabsCache.js +25 -42
  160. package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +290 -408
  161. package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.js +132 -95
  162. package/es/ProLayout/components/TabsManager/index.js +406 -390
  163. package/es/ProLayout/components/TabsManager/propTypes.js +7 -15
  164. package/es/ProLayout/components/TabsManager/utils/historyObserver.js +26 -23
  165. package/es/ProLayout/components/TabsManager/utils/index.js +127 -184
  166. package/es/ProLayout/components/index.js +8 -3
  167. package/es/ProLayout/index.js +171 -229
  168. package/es/ProLayout/propTypes.js +12 -52
  169. package/es/ProLayout/utils/index.js +48 -128
  170. package/es/ProSelect/components/AdaptiveTooltip.js +26 -25
  171. package/es/ProSelect/index.js +184 -229
  172. package/es/ProSelect/propsType.js +0 -1
  173. package/es/ProSelect/utils/index.js +100 -146
  174. package/es/ProStep/components/Anchor/index.js +71 -82
  175. package/es/ProStep/components/Item/index.js +49 -56
  176. package/es/ProStep/components/LazyLoad/index.js +23 -29
  177. package/es/ProStep/components/Listener/index.js +20 -33
  178. package/es/ProStep/components/Step/index.js +31 -38
  179. package/es/ProStep/constants.js +4 -1
  180. package/es/ProStep/index.js +166 -153
  181. package/es/ProStep/propsType.js +0 -1
  182. package/es/ProStep/utils/index.js +29 -55
  183. package/es/ProStepTab/index.js +83 -138
  184. package/es/ProStepTab/propsType.js +0 -1
  185. package/es/ProTable/components/EditableCell/EditIcon.js +10 -14
  186. package/es/ProTable/components/EditableCell/index.js +37 -71
  187. package/es/ProTable/components/EditableCell/propsType.js +0 -1
  188. package/es/ProTable/components/FormatColumn/index.js +209 -340
  189. package/es/ProTable/components/FormatColumn/propsType.js +0 -1
  190. package/es/ProTable/components/RcTable/components/BaseTable/index.js +35 -39
  191. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +80 -107
  192. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +54 -48
  193. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/propsType.js +0 -1
  194. package/es/ProTable/components/RcTable/components/DraggableTable/index.js +47 -54
  195. package/es/ProTable/components/RcTable/index.js +6 -4
  196. package/es/ProTable/components/RenderColumn/index.js +158 -186
  197. package/es/ProTable/components/RenderEmptyText/index.js +12 -21
  198. package/es/ProTable/components/RenderFooter/index.js +15 -15
  199. package/es/ProTable/components/RenderSummary/index.js +33 -50
  200. package/es/ProTable/components/RenderTableHeader/index.js +44 -46
  201. package/es/ProTable/components/RenderTabs/index.js +47 -51
  202. package/es/ProTable/components/TableResizable/index.js +56 -72
  203. package/es/ProTable/components/TooltipTitle/index.js +13 -21
  204. package/es/ProTable/components/index.js +16 -36
  205. package/es/ProTable/hooks/useAntdTable.js +185 -219
  206. package/es/ProTable/index.js +232 -249
  207. package/es/ProTable/propsType.js +0 -1
  208. package/es/ProTable/utils/columnStorage.js +63 -88
  209. package/es/ProTable/utils/index.js +57 -90
  210. package/es/ProTabs/components/Card/index.js +20 -48
  211. package/es/ProTabs/components/index.js +4 -1
  212. package/es/ProTabs/index.js +39 -56
  213. package/es/ProTabs/propType.js +0 -1
  214. package/es/ProThemeTools/component/ProTools/index.js +106 -158
  215. package/es/ProThemeTools/component/index.js +4 -1
  216. package/es/ProThemeTools/context/ThemeContext.js +67 -146
  217. package/es/ProThemeTools/index.js +103 -156
  218. package/es/ProThemeTools/propsType.js +0 -1
  219. package/es/ProThemeTools/utils/index.js +60 -109
  220. package/es/ProTooltip/index.js +132 -165
  221. package/es/ProTooltip/propsType.js +0 -1
  222. package/es/ProTree/components/AdaptiveTooltip.js +15 -17
  223. package/es/ProTree/components/CloseIcon.js +18 -26
  224. package/es/ProTree/components/List.js +28 -47
  225. package/es/ProTree/components/ProTree.js +152 -211
  226. package/es/ProTree/components/ProTreeSelect/index.js +254 -458
  227. package/es/ProTree/components/ProTreeSelect/propsType.js +0 -1
  228. package/es/ProTree/components/SearchTitle.js +23 -42
  229. package/es/ProTree/components/Tree.js +147 -195
  230. package/es/ProTree/components/index.js +10 -5
  231. package/es/ProTree/index.js +12 -16
  232. package/es/ProTree/propsType.js +0 -1
  233. package/es/ProTree/utils.js +46 -118
  234. package/es/ProTreeModal/components/Cascader.js +56 -64
  235. package/es/ProTreeModal/components/CloseIcon.js +18 -26
  236. package/es/ProTreeModal/components/List.js +114 -180
  237. package/es/ProTreeModal/components/SearchTitle.js +15 -18
  238. package/es/ProTreeModal/components/SortableItem.js +29 -58
  239. package/es/ProTreeModal/components/Tree.js +99 -113
  240. package/es/ProTreeModal/components/Trigger.js +87 -121
  241. package/es/ProTreeModal/components/index.js +14 -6
  242. package/es/ProTreeModal/index.js +397 -435
  243. package/es/ProTreeModal/propsType.js +0 -1
  244. package/es/ProTreeModal/utils.js +52 -95
  245. package/es/ProUpload/components/ButtonRender.js +44 -54
  246. package/es/ProUpload/components/DragRender.js +94 -134
  247. package/es/ProUpload/components/DraggableUploadListItem.js +12 -25
  248. package/es/ProUpload/components/Example.js +27 -31
  249. package/es/ProUpload/components/FileItem.js +69 -163
  250. package/es/ProUpload/components/ImageRender.js +134 -170
  251. package/es/ProUpload/index.js +68 -100
  252. package/es/ProUpload/propsType.js +0 -1
  253. package/es/ProUpload/uitls.js +8 -4
  254. package/es/ProUtils/utils/index.js +17 -13
  255. package/es/ProViewer/index.js +154 -175
  256. package/es/ProViewer/propsType.js +0 -5
  257. package/es/ProWaterMark/index.js +9 -16
  258. package/es/ProWaterMark/propsType.js +0 -1
  259. package/es/hooks/useDraggableRow.js +25 -53
  260. package/es/index.js +57 -77
  261. package/es/locale/en_US.js +153 -142
  262. package/es/locale/index.js +23 -36
  263. package/es/locale/zh_CN.js +145 -142
  264. package/es/tokens.js +84 -83
  265. package/es/utils/index.js +24 -51
  266. package/package.json +4 -3
@@ -1,41 +1,29 @@
1
- import _cloneDeep from "lodash/cloneDeep";
2
- import _isEqual from "lodash/isEqual";
3
- import _debounce from "lodash/debounce";
4
- import warning from 'rc-util/lib/warning';
5
- import { useState, useEffect, useRef, useMemo } from 'react';
1
+ import debounce from "lodash/debounce";
2
+ import isEqual from "lodash/isEqual";
3
+ import cloneDeep from "lodash/cloneDeep";
4
+ import warning from "rc-util/lib/warning";
5
+ import { useState, useEffect, useRef, useMemo } from "react";
6
6
  import { toArray } from "../utils";
7
-
8
- // 从一个对象或Form值中获取特定路径的值
9
7
  function get(source, path) {
10
8
  if (!source || path.length === 0) {
11
9
  return source;
12
10
  }
13
11
  let current = source;
14
12
  for (let i = 0; i < path.length; i++) {
15
- if (current === undefined || current === null) {
16
- return undefined;
13
+ if (current === void 0 || current === null) {
14
+ return void 0;
17
15
  }
18
16
  current = current[path[i]];
19
17
  }
20
18
  return current;
21
19
  }
22
-
23
- /**
24
- * 将值设置到指定路径的嵌套对象中
25
- * @param obj 目标对象
26
- * @param path 路径数组
27
- * @param value 要设置的值
28
- */
29
20
  function setValueByPath(obj, path, value) {
30
- if (path.length === 0) return;
31
-
32
- // 处理单层路径
21
+ if (path.length === 0)
22
+ return;
33
23
  if (path.length === 1) {
34
24
  obj[path[0]] = value;
35
25
  return;
36
26
  }
37
-
38
- // 处理多层嵌套路径
39
27
  let current = obj;
40
28
  for (let i = 0; i < path.length - 1; i++) {
41
29
  const key = path[i];
@@ -46,116 +34,73 @@ function setValueByPath(obj, path, value) {
46
34
  }
47
35
  current[path[path.length - 1]] = value;
48
36
  }
49
-
50
- // 创建之后namepath就不可变的警告
51
- // selector 模式(dependencies 为函数)下跳过:函数引用每次渲染不同,无法稳定 stringify
52
- // warning 在 production 下本身为空操作;始终走同一实现,避免 Jest 下 production 空函数不可达
53
- const useWatchWarning = dependencies => {
54
- const isSelector = typeof dependencies === 'function';
55
- const depsStr = isSelector ? '__selector__' : JSON.stringify(dependencies);
37
+ const useWatchWarning = (dependencies) => {
38
+ const isSelector = typeof dependencies === "function";
39
+ const depsStr = isSelector ? "__selector__" : JSON.stringify(dependencies);
56
40
  const depsStrRef = useRef(depsStr);
57
41
  if (!isSelector) {
58
- warning(depsStrRef.current === depsStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');
42
+ warning(
43
+ depsStrRef.current === depsStr,
44
+ "`useWatch` is not support dynamic `namePath`. Please provide static instead."
45
+ );
59
46
  }
60
47
  };
61
-
62
- /**
63
- * selector 函数:接收所有表单值,返回派生值
64
- * 与 antd 5.12.0+ Form.useWatch selector 行为一致
65
- */
66
-
67
- /**
68
- * ProForm的useWatch hook,用于监听表单字段变化
69
- * 支持三种依赖形式:
70
- * 1. 字符串路径:useWatch('fieldName', form)
71
- * 2. 路径数组:useWatch(['a', 'b'], form) 或 useWatch([['a', 'b'], 'c'], form)
72
- * 3. selector 函数:useWatch((values) => values.a + values.b, form)
73
- *
74
- * @param dependencies 监听的字段路径或 selector 函数
75
- * @param form 表单实例
76
- * @param wait 防抖等待时间
77
- * @returns 表单值或 selector 返回的派生值
78
- */
79
-
80
48
  function useWatch(dependencies, form, wait) {
81
- const isSelector = typeof dependencies === 'function';
82
-
83
- // 无条件调用,内部按 isSelector 决定是否真正执行警告逻辑,保证 Hook 顺序稳定
49
+ const isSelector = typeof dependencies === "function";
84
50
  useWatchWarning(dependencies);
85
-
86
- // 获取表单实例
87
51
  const formInstance = form;
88
-
89
- // 用于存储最终结果(selector 模式下值类型由 selector 决定)
90
- const [state, setState] = useState(isSelector ? undefined : {});
91
-
92
- // 使用ref存储中间状态,避免不必要的渲染
93
- const valueRef = useRef(isSelector ? undefined : {});
94
- const prevStateRef = useRef(isSelector ? undefined : {});
95
-
96
- // 标准化依赖为路径数组的数组(selector 模式下为空数组,不参与)
97
- const namePaths = useMemo(() => {
98
- const paths = [];
99
- if (isSelector) {
100
- return paths;
101
- }
102
-
103
- // 字符串形式: 'fieldName'
104
- if (typeof dependencies === 'string') {
105
- paths.push(dependencies);
106
- // 数组形式
107
- } else if (Array.isArray(dependencies)) {
108
- // 检查是否是路径数组的集合,例如:[['a', 'number'], 'fieldName']
109
- const isPathsCollection = dependencies.length > 0 && (typeof dependencies[0] === 'string' || Array.isArray(dependencies[0]));
110
- if (isPathsCollection) {
111
- // 每个元素都是一个路径
112
- dependencies.forEach(path => {
113
- paths.push(path);
114
- });
115
- } else {
116
- // 整个数组是一个单一路径
52
+ const [state, setState] = useState(isSelector ? void 0 : {});
53
+ const valueRef = useRef(isSelector ? void 0 : {});
54
+ const prevStateRef = useRef(isSelector ? void 0 : {});
55
+ const namePaths = useMemo(
56
+ () => {
57
+ const paths = [];
58
+ if (isSelector) {
59
+ return paths;
60
+ }
61
+ if (typeof dependencies === "string") {
117
62
  paths.push(dependencies);
63
+ } else if (Array.isArray(dependencies)) {
64
+ const isPathsCollection = dependencies.length > 0 && (typeof dependencies[0] === "string" || Array.isArray(dependencies[0]));
65
+ if (isPathsCollection) {
66
+ dependencies.forEach((path) => {
67
+ paths.push(path);
68
+ });
69
+ } else {
70
+ paths.push(dependencies);
71
+ }
118
72
  }
119
- }
120
- return paths;
121
- }, [
122
- /* dependencies 故意忽略,与原实现一致 */
123
- ]);
124
-
125
- // selector 函数 ref:使最新 selector 始终被调用,但不触发 useEffect 重订阅
73
+ return paths;
74
+ },
75
+ [
76
+ /* dependencies 故意忽略,与原实现一致 */
77
+ ]
78
+ );
126
79
  const selectorRef = useRef(null);
127
80
  if (isSelector) {
128
81
  selectorRef.current = dependencies;
129
82
  }
130
-
131
- // 保存防抖函数引用,避免重复创建
132
83
  const debouncedFn = useMemo(() => {
133
84
  if (wait) {
134
- return _debounce(value => {
135
- // 只在值真正变化时才更新状态
136
- if (!_isEqual(prevStateRef.current, value)) {
137
- prevStateRef.current = _cloneDeep(value);
85
+ return debounce((value) => {
86
+ if (!isEqual(prevStateRef.current, value)) {
87
+ prevStateRef.current = cloneDeep(value);
138
88
  setState(value);
139
89
  }
140
90
  }, wait);
141
91
  }
142
-
143
- // 非防抖版本
144
- return value => {
145
- if (!_isEqual(prevStateRef.current, value)) {
146
- prevStateRef.current = _cloneDeep(value);
92
+ return (value) => {
93
+ if (!isEqual(prevStateRef.current, value)) {
94
+ prevStateRef.current = cloneDeep(value);
147
95
  setState(value);
148
96
  }
149
97
  };
150
98
  }, [wait]);
151
99
  useEffect(() => {
152
- if (!formInstance) return undefined;
153
-
154
- // 创建更新状态的函数
155
- const updateState = watchValues => {
100
+ if (!formInstance)
101
+ return void 0;
102
+ const updateState = (watchValues) => {
156
103
  const values = watchValues ?? formInstance.getFieldsValue(true);
157
-
158
- // selector 模式:直接调用 selector 计算派生值
159
104
  if (isSelector && selectorRef.current) {
160
105
  const next = selectorRef.current(values);
161
106
  valueRef.current = next;
@@ -163,39 +108,20 @@ function useWatch(dependencies, form, wait) {
163
108
  return;
164
109
  }
165
110
  const newState = {};
166
-
167
- // 处理每个监听路径
168
- namePaths.forEach(path => {
169
- // 将路径转换为数组形式
111
+ namePaths.forEach((path) => {
170
112
  const namePath = toArray(path);
171
-
172
- // 获取路径对应的值
173
113
  const value = get(values, namePath);
174
-
175
- // 将值设置到正确的嵌套结构中
176
114
  setValueByPath(newState, namePath, value);
177
115
  });
178
-
179
- // 存储并更新状态
180
116
  valueRef.current = newState;
181
117
  debouncedFn(newState);
182
118
  };
183
-
184
- // 初始调用一次
185
119
  updateState();
186
-
187
- // 注册表单变化监听
188
- const {
189
- getInternalHooks
190
- } = formInstance;
191
- const {
192
- registerWatch
193
- } = getInternalHooks('RC_FORM_INTERNAL_HOOKS');
120
+ const { getInternalHooks } = formInstance;
121
+ const { registerWatch } = getInternalHooks("RC_FORM_INTERNAL_HOOKS");
194
122
  const cancelWatch = registerWatch((values, allValues) => {
195
123
  updateState(allValues ?? values);
196
124
  });
197
-
198
- // 清理订阅
199
125
  return () => {
200
126
  if (wait) {
201
127
  debouncedFn.cancel();
@@ -205,4 +131,7 @@ function useWatch(dependencies, form, wait) {
205
131
  }, [formInstance, namePaths, debouncedFn, wait]);
206
132
  return state;
207
133
  }
208
- export default useWatch;
134
+ var useWatch_default = useWatch;
135
+ export {
136
+ useWatch_default as default
137
+ };