@zat-design/sisyphus-react 4.5.9 → 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 (280) hide show
  1. package/dist/index.esm.css +1 -1
  2. package/dist/less.esm.css +1 -1
  3. package/es/FormsProvider/index.js +14 -21
  4. package/es/ProAction/components/CheckModalContent/index.js +12 -26
  5. package/es/ProAction/index.js +79 -83
  6. package/es/ProAction/propsType.js +0 -1
  7. package/es/ProConfigProvider/index.js +63 -110
  8. package/es/ProConfigProvider/propsType.js +0 -1
  9. package/es/ProDownload/index.d.ts +2 -1
  10. package/es/ProDownload/index.js +74 -69
  11. package/es/ProDownload/propsType.js +0 -1
  12. package/es/ProDownload/utils.d.ts +10 -5
  13. package/es/ProDownload/utils.js +63 -95
  14. package/es/ProDrawerForm/components/ProDrawer/index.js +83 -113
  15. package/es/ProDrawerForm/components/ProModal/index.js +77 -108
  16. package/es/ProDrawerForm/components/index.js +6 -2
  17. package/es/ProDrawerForm/hooks/useConfirmClose.js +20 -39
  18. package/es/ProDrawerForm/index.js +29 -38
  19. package/es/ProDrawerForm/propsType.js +0 -1
  20. package/es/ProDrawerForm/utils/index.js +18 -36
  21. package/es/ProEditLabel/components/RenderProForm.js +45 -49
  22. package/es/ProEditLabel/index.js +126 -163
  23. package/es/ProEditLabel/propsType.js +0 -1
  24. package/es/ProEditLabel/utils/index.js +5 -8
  25. package/es/ProEditTable/components/ActionButton/index.js +111 -119
  26. package/es/ProEditTable/components/RcTable/BaseTable.js +38 -51
  27. package/es/ProEditTable/components/RcTable/DraggableTable.js +97 -129
  28. package/es/ProEditTable/components/RcTable/index.js +6 -4
  29. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +77 -95
  30. package/es/ProEditTable/components/RenderField/index.js +490 -587
  31. package/es/ProEditTable/components/RenderField/propsType.js +0 -1
  32. package/es/ProEditTable/components/RenderField/tools.js +115 -112
  33. package/es/ProEditTable/components/RenderToolbar/index.js +47 -73
  34. package/es/ProEditTable/components/Summary/index.js +38 -64
  35. package/es/ProEditTable/components/Validator/index.js +46 -46
  36. package/es/ProEditTable/components/index.js +12 -5
  37. package/es/ProEditTable/index.js +456 -378
  38. package/es/ProEditTable/propsType.js +0 -1
  39. package/es/ProEditTable/utils/config.js +60 -122
  40. package/es/ProEditTable/utils/diffOriginal.js +45 -82
  41. package/es/ProEditTable/utils/getDefaultProps.js +19 -24
  42. package/es/ProEditTable/utils/index.js +154 -235
  43. package/es/ProEditTable/utils/tools.js +149 -286
  44. package/es/ProEditTable/utils/transform.js +25 -30
  45. package/es/ProEditTable/utils/useEditTableError.js +30 -43
  46. package/es/ProEditTable/utils/useShouldUpdateForTable.js +42 -72
  47. package/es/ProEditTable/utils/validateAll.js +87 -154
  48. package/es/ProEnum/components/Group.js +38 -30
  49. package/es/ProEnum/components/Tag.js +22 -26
  50. package/es/ProEnum/hooks/useEnum.js +48 -116
  51. package/es/ProEnum/hooks/useEnumRequest.js +182 -212
  52. package/es/ProEnum/hooks/useFrequentEnumRequest.js +40 -48
  53. package/es/ProEnum/index.js +162 -172
  54. package/es/ProEnum/propsType.js +0 -1
  55. package/es/ProEnum/utils/eventCenter.js +10 -12
  56. package/es/ProEnum/utils/frequentEnum.js +35 -92
  57. package/es/ProEnum/utils/getEnum.js +32 -90
  58. package/es/ProEnum/utils/getEnumLabel.js +44 -49
  59. package/es/ProEnum/utils/index.js +93 -207
  60. package/es/ProForm/components/Container.js +13 -28
  61. package/es/ProForm/components/FormFooter/index.js +36 -44
  62. package/es/ProForm/components/FormFooter/propsType.js +0 -1
  63. package/es/ProForm/components/base/Checkbox/index.js +32 -59
  64. package/es/ProForm/components/base/DatePicker/index.js +49 -71
  65. package/es/ProForm/components/base/Input/index.js +63 -97
  66. package/es/ProForm/components/base/Input/propsType.js +0 -1
  67. package/es/ProForm/components/base/InputNumber/index.js +118 -172
  68. package/es/ProForm/components/base/Radio/index.js +39 -52
  69. package/es/ProForm/components/base/RangePicker/index.js +109 -127
  70. package/es/ProForm/components/base/RangePicker/useDateRange.js +20 -17
  71. package/es/ProForm/components/base/Select/index.js +63 -89
  72. package/es/ProForm/components/base/Switch/index.js +27 -35
  73. package/es/ProForm/components/base/SwitchCheckbox/index.js +36 -54
  74. package/es/ProForm/components/base/TextArea/index.js +30 -41
  75. package/es/ProForm/components/base/TimePicker/index.js +27 -37
  76. package/es/ProForm/components/combination/Container/index.js +37 -47
  77. package/es/ProForm/components/combination/Container/propsType.js +0 -1
  78. package/es/ProForm/components/combination/FormList/components/ActionButton.js +165 -237
  79. package/es/ProForm/components/combination/FormList/components/BlockFields.js +98 -102
  80. package/es/ProForm/components/combination/FormList/components/Empty.js +28 -55
  81. package/es/ProForm/components/combination/FormList/components/LineFields.js +57 -54
  82. package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +61 -109
  83. package/es/ProForm/components/combination/FormList/index.js +151 -161
  84. package/es/ProForm/components/combination/FormList/propsType.js +0 -1
  85. package/es/ProForm/components/combination/FormList/style/index.less +6 -0
  86. package/es/ProForm/components/combination/FormList/utils.js +22 -38
  87. package/es/ProForm/components/combination/Group/component/AddonWrapper/index.js +12 -28
  88. package/es/ProForm/components/combination/Group/component/ComRender.js +50 -111
  89. package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +106 -213
  90. package/es/ProForm/components/combination/Group/hooks/index.js +69 -129
  91. package/es/ProForm/components/combination/Group/index.js +87 -126
  92. package/es/ProForm/components/combination/Group/propsType.js +0 -1
  93. package/es/ProForm/components/combination/Group/utils/index.js +124 -239
  94. package/es/ProForm/components/combination/ProCascader/index.js +156 -199
  95. package/es/ProForm/components/combination/ProCascader/propsType.js +0 -1
  96. package/es/ProForm/components/combination/ProCascader/utils/index.js +12 -21
  97. package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +72 -70
  98. package/es/ProForm/components/combination/ProModalSelect/index.js +309 -347
  99. package/es/ProForm/components/combination/ProModalSelect/propsType.js +0 -1
  100. package/es/ProForm/components/combination/ProModalSelect/utils/index.js +32 -39
  101. package/es/ProForm/components/combination/ProNumberRange/index.js +100 -156
  102. package/es/ProForm/components/combination/ProNumberRange/propsType.js +0 -1
  103. package/es/ProForm/components/combination/ProRangeLimit/index.js +104 -115
  104. package/es/ProForm/components/combination/ProRangeLimit/propsType.js +0 -1
  105. package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +16 -16
  106. package/es/ProForm/components/combination/ProTimeLimit/index.js +75 -109
  107. package/es/ProForm/components/index.js +56 -34
  108. package/es/ProForm/components/render/ChangedWrapper.js +85 -94
  109. package/es/ProForm/components/render/ConfirmWrapper.js +27 -39
  110. package/es/ProForm/components/render/CustomComponentViewWrapper.js +65 -82
  111. package/es/ProForm/components/render/Render.js +223 -329
  112. package/es/ProForm/components/render/RenderFields.js +76 -113
  113. package/es/ProForm/components/render/propsType.js +0 -1
  114. package/es/ProForm/hooks/useControlled.js +8 -10
  115. package/es/ProForm/hooks/useDeepCompareMemo.js +11 -11
  116. package/es/ProForm/hooks/useFieldProps.js +8 -4
  117. package/es/ProForm/hooks/useForm.js +50 -110
  118. package/es/ProForm/hooks/useRules.js +17 -33
  119. package/es/ProForm/hooks/useShouldUpdate.js +77 -152
  120. package/es/ProForm/hooks/useWatch.js +62 -134
  121. package/es/ProForm/index.js +157 -194
  122. package/es/ProForm/propsType.js +15 -7
  123. package/es/ProForm/utils/buildFormItemProps.js +51 -58
  124. package/es/ProForm/utils/diffOriginal.js +43 -73
  125. package/es/ProForm/utils/getDefaultProps.js +18 -24
  126. package/es/ProForm/utils/index.js +160 -235
  127. package/es/ProForm/utils/processDependencies.js +21 -60
  128. package/es/ProForm/utils/reactiveValues.js +20 -34
  129. package/es/ProForm/utils/rulesCreator.js +42 -40
  130. package/es/ProForm/utils/transformNames.js +10 -13
  131. package/es/ProForm/utils/transformValue.js +16 -29
  132. package/es/ProForm/utils/valueType.js +96 -178
  133. package/es/ProIcon/config/index.js +340 -274
  134. package/es/ProIcon/index.js +135 -209
  135. package/es/ProIcon/propsTypes.js +0 -1
  136. package/es/ProIcon/utils/index.js +24 -39
  137. package/es/ProLayout/components/Layout/Header/index.js +108 -141
  138. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +134 -190
  139. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +113 -139
  140. package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.js +0 -1
  141. package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +23 -31
  142. package/es/ProLayout/components/Layout/Menu/index.js +92 -89
  143. package/es/ProLayout/components/Layout/Notice/index.js +13 -27
  144. package/es/ProLayout/components/Layout/index.js +8 -3
  145. package/es/ProLayout/components/ProCollapse/PropTypes.js +0 -1
  146. package/es/ProLayout/components/ProCollapse/index.js +89 -111
  147. package/es/ProLayout/components/ProFooter/PropTypes.js +0 -1
  148. package/es/ProLayout/components/ProFooter/index.js +27 -24
  149. package/es/ProLayout/components/ProHeader/PropTypes.js +0 -1
  150. package/es/ProLayout/components/ProHeader/components/Copy/index.js +23 -21
  151. package/es/ProLayout/components/ProHeader/components/Describe/index.js +67 -84
  152. package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +18 -21
  153. package/es/ProLayout/components/ProHeader/components/ProBackBtn/propsType.js +0 -1
  154. package/es/ProLayout/components/ProHeader/components/index.js +6 -2
  155. package/es/ProLayout/components/ProHeader/index.js +216 -356
  156. package/es/ProLayout/components/ProHeader/utils/index.js +19 -26
  157. package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +92 -85
  158. package/es/ProLayout/components/TabsManager/components/TabItem.js +53 -63
  159. package/es/ProLayout/components/TabsManager/components/TabsContext.js +5 -5
  160. package/es/ProLayout/components/TabsManager/components/TabsHeader.js +42 -52
  161. package/es/ProLayout/components/TabsManager/hooks/useActiveTab.js +8 -9
  162. package/es/ProLayout/components/TabsManager/hooks/useIframeRoute.js +19 -32
  163. package/es/ProLayout/components/TabsManager/hooks/useProLayoutTabs.js +6 -20
  164. package/es/ProLayout/components/TabsManager/hooks/useTabsCache.js +25 -42
  165. package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +320 -350
  166. package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.d.ts +19 -0
  167. package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.js +332 -0
  168. package/es/ProLayout/components/TabsManager/index.js +407 -351
  169. package/es/ProLayout/components/TabsManager/propTypes.d.ts +4 -0
  170. package/es/ProLayout/components/TabsManager/propTypes.js +7 -15
  171. package/es/ProLayout/components/TabsManager/style/index.less +1 -1
  172. package/es/ProLayout/components/TabsManager/utils/historyObserver.d.ts +7 -0
  173. package/es/ProLayout/components/TabsManager/utils/historyObserver.js +65 -0
  174. package/es/ProLayout/components/TabsManager/utils/index.d.ts +15 -2
  175. package/es/ProLayout/components/TabsManager/utils/index.js +156 -159
  176. package/es/ProLayout/components/index.js +8 -3
  177. package/es/ProLayout/index.js +173 -228
  178. package/es/ProLayout/propTypes.d.ts +28 -1
  179. package/es/ProLayout/propTypes.js +12 -52
  180. package/es/ProLayout/utils/index.js +48 -128
  181. package/es/ProSelect/components/AdaptiveTooltip.js +26 -25
  182. package/es/ProSelect/index.js +187 -223
  183. package/es/ProSelect/propsType.js +0 -1
  184. package/es/ProSelect/style/index.less +13 -0
  185. package/es/ProSelect/utils/index.js +100 -146
  186. package/es/ProStep/components/Anchor/index.js +71 -82
  187. package/es/ProStep/components/Item/index.js +49 -56
  188. package/es/ProStep/components/LazyLoad/index.js +23 -29
  189. package/es/ProStep/components/Listener/index.js +20 -33
  190. package/es/ProStep/components/Step/index.js +31 -38
  191. package/es/ProStep/constants.js +4 -1
  192. package/es/ProStep/index.js +166 -153
  193. package/es/ProStep/propsType.js +0 -1
  194. package/es/ProStep/style/index.less +1 -1
  195. package/es/ProStep/utils/index.js +29 -55
  196. package/es/ProStepTab/index.js +83 -138
  197. package/es/ProStepTab/propsType.js +0 -1
  198. package/es/ProTable/components/EditableCell/EditIcon.js +10 -14
  199. package/es/ProTable/components/EditableCell/index.js +37 -71
  200. package/es/ProTable/components/EditableCell/propsType.js +0 -1
  201. package/es/ProTable/components/FormatColumn/index.js +209 -340
  202. package/es/ProTable/components/FormatColumn/propsType.js +0 -1
  203. package/es/ProTable/components/RcTable/components/BaseTable/index.js +35 -39
  204. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +80 -107
  205. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +54 -48
  206. package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/propsType.js +0 -1
  207. package/es/ProTable/components/RcTable/components/DraggableTable/index.js +47 -54
  208. package/es/ProTable/components/RcTable/index.js +6 -4
  209. package/es/ProTable/components/RenderColumn/index.js +158 -186
  210. package/es/ProTable/components/RenderEmptyText/index.js +12 -21
  211. package/es/ProTable/components/RenderFooter/index.js +15 -15
  212. package/es/ProTable/components/RenderSummary/index.js +33 -50
  213. package/es/ProTable/components/RenderTableHeader/index.js +44 -46
  214. package/es/ProTable/components/RenderTabs/index.js +47 -51
  215. package/es/ProTable/components/TableResizable/index.js +56 -72
  216. package/es/ProTable/components/TooltipTitle/index.js +13 -21
  217. package/es/ProTable/components/index.js +16 -36
  218. package/es/ProTable/hooks/useAntdTable.js +191 -224
  219. package/es/ProTable/index.js +232 -249
  220. package/es/ProTable/propsType.js +0 -1
  221. package/es/ProTable/utils/columnStorage.js +63 -88
  222. package/es/ProTable/utils/index.js +57 -90
  223. package/es/ProTabs/components/Card/index.js +20 -48
  224. package/es/ProTabs/components/index.js +4 -1
  225. package/es/ProTabs/index.js +41 -58
  226. package/es/ProTabs/propType.js +0 -1
  227. package/es/ProThemeTools/component/ProTools/index.js +106 -158
  228. package/es/ProThemeTools/component/index.js +4 -1
  229. package/es/ProThemeTools/context/ThemeContext.js +67 -146
  230. package/es/ProThemeTools/index.js +103 -156
  231. package/es/ProThemeTools/propsType.js +0 -1
  232. package/es/ProThemeTools/utils/index.js +60 -109
  233. package/es/ProTooltip/index.js +132 -168
  234. package/es/ProTooltip/propsType.js +0 -1
  235. package/es/ProTree/components/AdaptiveTooltip.js +15 -17
  236. package/es/ProTree/components/CloseIcon.js +18 -26
  237. package/es/ProTree/components/List.js +28 -47
  238. package/es/ProTree/components/ProTree.js +152 -211
  239. package/es/ProTree/components/ProTreeSelect/index.js +255 -459
  240. package/es/ProTree/components/ProTreeSelect/propsType.js +0 -1
  241. package/es/ProTree/components/SearchTitle.js +23 -42
  242. package/es/ProTree/components/Tree.js +147 -195
  243. package/es/ProTree/components/index.js +10 -5
  244. package/es/ProTree/index.js +12 -16
  245. package/es/ProTree/propsType.js +0 -1
  246. package/es/ProTree/utils.js +46 -118
  247. package/es/ProTreeModal/components/Cascader.js +56 -64
  248. package/es/ProTreeModal/components/CloseIcon.js +18 -26
  249. package/es/ProTreeModal/components/List.js +114 -180
  250. package/es/ProTreeModal/components/SearchTitle.js +15 -18
  251. package/es/ProTreeModal/components/SortableItem.js +29 -58
  252. package/es/ProTreeModal/components/Tree.js +99 -113
  253. package/es/ProTreeModal/components/Trigger.js +87 -121
  254. package/es/ProTreeModal/components/index.js +14 -6
  255. package/es/ProTreeModal/index.js +397 -438
  256. package/es/ProTreeModal/propsType.js +0 -1
  257. package/es/ProTreeModal/utils.js +52 -95
  258. package/es/ProUpload/components/ButtonRender.js +44 -54
  259. package/es/ProUpload/components/DragRender.js +94 -148
  260. package/es/ProUpload/components/DraggableUploadListItem.js +12 -25
  261. package/es/ProUpload/components/Example.js +27 -31
  262. package/es/ProUpload/components/FileItem.js +69 -163
  263. package/es/ProUpload/components/ImageRender.js +134 -170
  264. package/es/ProUpload/index.js +68 -100
  265. package/es/ProUpload/propsType.js +0 -1
  266. package/es/ProUpload/uitls.js +8 -4
  267. package/es/ProUtils/utils/index.js +17 -13
  268. package/es/ProViewer/index.js +154 -175
  269. package/es/ProViewer/propsType.js +0 -5
  270. package/es/ProWaterMark/index.js +9 -16
  271. package/es/ProWaterMark/propsType.js +0 -1
  272. package/es/hooks/useDraggableRow.js +25 -53
  273. package/es/index.js +57 -77
  274. package/es/locale/en_US.js +153 -142
  275. package/es/locale/index.js +23 -36
  276. package/es/locale/zh_CN.js +145 -142
  277. package/es/tokens.js +84 -83
  278. package/es/utils/index.js +24 -51
  279. package/package.json +4 -2
  280. package/es/ProConfigProvider/demo/locale.js +0 -58
@@ -1,28 +1,16 @@
1
- import _isString from "lodash/isString";
2
- import _isBoolean from "lodash/isBoolean";
3
- import { useEffect, useMemo } from 'react';
1
+ import { useEffect, useMemo } from "react";
2
+ import isBoolean from "lodash/isBoolean";
3
+ import isString from "lodash/isString";
4
4
  import { rulesCreator } from "../utils/rulesCreator";
5
5
  import { isNotFullArray, isNullArray } from "../utils";
6
6
  import locale from "../../locale";
7
- const useRules = props => {
8
- const {
9
- rules,
10
- required,
11
- isSelect,
12
- label,
13
- names,
14
- labelRequired,
15
- type
16
- } = props;
17
- const _label = _isString(label) ? label : '';
18
- const requiredRule = Array.isArray(rules) && rules?.find(rule => rule.required === true);
19
- const allRequired = required === true || Array.isArray(required) && required.every(item => item === true);
20
-
21
- // 根据 required 添加 rules, names 字段会添加数组的必填校验
7
+ const useRules = (props) => {
8
+ const { rules, required, isSelect, label, names, labelRequired, type } = props;
9
+ const _label = isString(label) ? label : "";
10
+ const requiredRule = Array.isArray(rules) && (rules == null ? void 0 : rules.find((rule) => rule.required === true));
11
+ const allRequired = required === true || Array.isArray(required) && required.every((item) => item === true);
22
12
  const internalRule = useMemo(() => {
23
- const result = {
24
- rules: rules || []
25
- };
13
+ const result = { rules: rules || [] };
26
14
  if (allRequired) {
27
15
  if (!requiredRule) {
28
16
  const message = isSelect ? `${locale.ProForm.selectPlaceHolder}${_label}` : `${locale.ProForm.inputPlaceholder}${_label}`;
@@ -30,9 +18,7 @@ const useRules = props => {
30
18
  required: allRequired,
31
19
  message
32
20
  };
33
-
34
- // names字段的必填校验
35
- if (names?.length) {
21
+ if (names == null ? void 0 : names.length) {
36
22
  rule.validator = (_, value) => {
37
23
  if (!value || isNullArray(value)) {
38
24
  return Promise.reject(new Error(`${locale.ProForm.inputPlaceholder}${_label}`));
@@ -42,8 +28,7 @@ const useRules = props => {
42
28
  }
43
29
  result.rules = Array.isArray(rules) ? [...rules, rule] : [rule];
44
30
  }
45
- } else if (requiredRule && names?.length) {
46
- // names字段 修改必填规则校验
31
+ } else if (requiredRule && (names == null ? void 0 : names.length)) {
47
32
  requiredRule.validator = (_, value) => {
48
33
  if (!value || isNullArray(value)) {
49
34
  return Promise.reject(new Error(`${locale.ProForm.inputPlaceholder}${_label}`));
@@ -53,8 +38,6 @@ const useRules = props => {
53
38
  }
54
39
  return result;
55
40
  }, [rules, required]);
56
-
57
- // type转换为内置rules
58
41
  internalRule.rules = internalRule.rules && rulesCreator({
59
42
  rules: internalRule.rules,
60
43
  label: _label,
@@ -63,11 +46,9 @@ const useRules = props => {
63
46
  required
64
47
  });
65
48
  useEffect(() => {
66
- // 添加完整性校验
67
- if (names && !_isBoolean(labelRequired)) {
49
+ if (names && !isBoolean(labelRequired)) {
68
50
  const customRequired = {
69
- validator: (rules, value) => {
70
- // 完整性校验, 空数组不校验, 数组有值且值不完整则校验不通过
51
+ validator: (rules2, value) => {
71
52
  if (Array.isArray(value) && !isNullArray(value) && isNotFullArray(value, names.length, required)) {
72
53
  return Promise.reject(new Error(`${locale.ProForm.completeText}${_label}`));
73
54
  }
@@ -79,4 +60,7 @@ const useRules = props => {
79
60
  }, [internalRule]);
80
61
  return internalRule;
81
62
  };
82
- export default useRules;
63
+ var useRules_default = useRules;
64
+ export {
65
+ useRules_default as default
66
+ };
@@ -1,24 +1,22 @@
1
- import _debounce from "lodash/debounce";
2
- import _get from "lodash/get";
3
- import _isEqualWith from "lodash/isEqualWith";
4
- import _isFunction from "lodash/isFunction";
5
- import { useRef, useState, useEffect } from 'react';
1
+ import { useRef, useState, useEffect } from "react";
2
+ import isFunction from "lodash/isFunction";
3
+ import isEqualWith from "lodash/isEqualWith";
4
+ import get from "lodash/get";
5
+ import debounce from "lodash/debounce";
6
6
  import { customEqualForFunction } from "../../utils";
7
- import { resolveReactiveValues, hasReactiveDiff, commitReactiveValues } from "../utils/reactiveValues";
8
- /** FormList中被删除的行也会再触发一次响应式函数 排除这种场景 */
7
+ import {
8
+ resolveReactiveValues,
9
+ hasReactiveDiff,
10
+ commitReactiveValues
11
+ } from "../utils/reactiveValues";
9
12
  const isDeleteLine = (form, namePath) => {
10
13
  if (namePath) {
11
14
  const line = form.getFieldValue(namePath);
12
- return line === undefined;
15
+ return line === void 0;
13
16
  }
14
17
  return false;
15
18
  };
16
-
17
- /**
18
- * 执行清值逻辑
19
- * @param params 清值所需参数
20
- */
21
- const executeClearValue = params => {
19
+ const executeClearValue = (params) => {
22
20
  const {
23
21
  form,
24
22
  name,
@@ -31,38 +29,31 @@ const executeClearValue = params => {
31
29
  needClear,
32
30
  timerRef
33
31
  } = params;
34
-
35
- // 提前返回:不满足清值条件
36
32
  const shouldClear = clearNotShow !== false && (name || names) && !isDeleteLine(form, namePath);
37
33
  if (!shouldClear) {
38
34
  return;
39
35
  }
40
-
41
- // 当show从其他值变为false时,标记需要清值
42
36
  const showChangedToFalse = currentShow !== previousShow && currentShow === false;
43
37
  if (showChangedToFalse) {
44
38
  needClear.current = true;
45
39
  }
46
-
47
- // show为false时,执行清值操作(带防抖)
48
40
  if (currentShow === false) {
49
41
  clearTimeout(timerRef.current);
50
42
  timerRef.current = setTimeout(() => {
51
- if (needClear.current !== true) return;
52
- const fieldsToReset = Array.isArray(names) ? names : [formItemProps.namePath ? formItemProps.namePath.slice(0, -1).concat(formItemProps.name) : formItemProps.name];
43
+ if (needClear.current !== true)
44
+ return;
45
+ const fieldsToReset = Array.isArray(names) ? names : [
46
+ formItemProps.namePath ? formItemProps.namePath.slice(0, -1).concat(formItemProps.name) : formItemProps.name
47
+ ];
53
48
  form.resetFields(fieldsToReset);
54
49
  needClear.current = false;
55
50
  }, 300);
56
51
  return;
57
52
  }
58
-
59
- // show不为false时,清除清值标记和定时器
60
53
  needClear.current = false;
61
54
  clearTimeout(timerRef.current);
62
55
  };
63
-
64
- // 代理shouldUpdate事件, 执行函数值的[show, disabled], 当[show, disabled]与上一次值不相同时更新状态
65
- const useShouldUpdate = props => {
56
+ const useShouldUpdate = (props) => {
66
57
  const {
67
58
  show,
68
59
  formItemProps,
@@ -77,20 +68,11 @@ const useShouldUpdate = props => {
77
68
  desensitization,
78
69
  shouldUpdateDebounce
79
70
  } = props;
80
- const {
81
- shouldUpdate,
82
- name,
83
- clearNotShow,
84
- index,
85
- namePath,
86
- names,
87
- dependNames
88
- } = formItemProps;
89
- const timerRef = useRef(null); // 清值防抖
90
- const debouncedShouldUpdateRef = useRef(null); // shouldUpdate防抖函数
91
- const pendingValuesRef = useRef(null); // 待处理的表单值
92
-
93
- const needClear = useRef(false); // 是否需要执行清值操作
71
+ const { shouldUpdate, name, clearNotShow, index, namePath, names, dependNames } = formItemProps;
72
+ const timerRef = useRef(null);
73
+ const debouncedShouldUpdateRef = useRef(null);
74
+ const pendingValuesRef = useRef(null);
75
+ const needClear = useRef(false);
94
76
  const showRef = useRef(false);
95
77
  const disabledRef = useRef(false);
96
78
  const requiredRef = useRef(false);
@@ -99,11 +81,9 @@ const useShouldUpdate = props => {
99
81
  const originComponentRef = useRef(null);
100
82
  const dependNamesRef = useRef([]);
101
83
  const desensitizationRef = useRef([0, 0]);
102
- const newComponent = originComponent || component; // 解决component默认赋值污染问题,需要使用originComponent
84
+ const newComponent = originComponent || component;
103
85
  const [, reRender] = useState({});
104
86
  let values = {};
105
-
106
- // 响应式配置与 ref 集合,供纯函数复用
107
87
  const reactiveProps = {
108
88
  show,
109
89
  disabled,
@@ -120,18 +100,10 @@ const useShouldUpdate = props => {
120
100
  fieldPropsRef,
121
101
  desensitizationRef
122
102
  };
123
-
124
- // 处理表单值更新的函数
125
- const processValuesUpdate = currentValues => {
103
+ const processValuesUpdate = (currentValues) => {
126
104
  const _currentValues = namePath ? form.getFieldValue(namePath) || {} : currentValues;
127
- const ctx = {
128
- form,
129
- index,
130
- namePath
131
- };
105
+ const ctx = { form, index, namePath };
132
106
  const next = resolveReactiveValues(reactiveProps, _currentValues, ctx);
133
-
134
- // 在防抖函数中也执行清值逻辑,确保清值功能在防抖场景下也能正常工作
135
107
  executeClearValue({
136
108
  form,
137
109
  name,
@@ -149,27 +121,32 @@ const useShouldUpdate = props => {
149
121
  reRender({});
150
122
  }
151
123
  };
152
-
153
- // 创建防抖函数
154
124
  useEffect(() => {
155
- if (shouldUpdateDebounce > 0 && (dependNames?.length || _isFunction(show) || _isFunction(disabled) || _isFunction(required) || _isFunction(rules) || _isFunction(fieldProps) || _isFunction(originComponent) || _isFunction(desensitization))) {
156
- debouncedShouldUpdateRef.current = _debounce(() => {
125
+ if (shouldUpdateDebounce > 0 && ((dependNames == null ? void 0 : dependNames.length) || isFunction(show) || isFunction(disabled) || isFunction(required) || isFunction(rules) || isFunction(fieldProps) || isFunction(originComponent) || isFunction(desensitization))) {
126
+ debouncedShouldUpdateRef.current = debounce(() => {
157
127
  if (pendingValuesRef.current) {
158
128
  const currentValues = pendingValuesRef.current;
159
129
  pendingValuesRef.current = null;
160
-
161
- // 使用最新的values重新计算状态
162
130
  processValuesUpdate(currentValues);
163
131
  }
164
132
  }, shouldUpdateDebounce);
165
133
  }
166
134
  return () => {
167
- debouncedShouldUpdateRef.current?.cancel();
135
+ var _a;
136
+ (_a = debouncedShouldUpdateRef.current) == null ? void 0 : _a.cancel();
168
137
  };
169
- }, [shouldUpdateDebounce, dependNames?.length, show, disabled, required, rules, fieldProps, originComponent, desensitization]);
170
-
171
- // 不是动态函数直接返回
172
- if (!dependNames?.length && !_isFunction(show) && !_isFunction(disabled) && !_isFunction(required) && !_isFunction(rules) && !_isFunction(fieldProps) && !_isFunction(originComponent) && !_isFunction(desensitization)) {
138
+ }, [
139
+ shouldUpdateDebounce,
140
+ dependNames == null ? void 0 : dependNames.length,
141
+ show,
142
+ disabled,
143
+ required,
144
+ rules,
145
+ fieldProps,
146
+ originComponent,
147
+ desensitization
148
+ ]);
149
+ if (!(dependNames == null ? void 0 : dependNames.length) && !isFunction(show) && !isFunction(disabled) && !isFunction(required) && !isFunction(rules) && !isFunction(fieldProps) && !isFunction(originComponent) && !isFunction(desensitization)) {
173
150
  return {
174
151
  shouldUpdate,
175
152
  show,
@@ -182,117 +159,72 @@ const useShouldUpdate = props => {
182
159
  };
183
160
  }
184
161
  if (namePath) {
185
- // formList场景values取当前行数据
186
162
  values = form.getFieldValue(namePath) || {};
187
163
  } else {
188
164
  values = form.getFieldsValue(true);
189
165
  }
190
- if (_isFunction(show)) {
191
- showRef.current = Boolean(show(values, {
192
- form,
193
- index,
194
- namePath
195
- }));
166
+ if (isFunction(show)) {
167
+ showRef.current = Boolean(show(values, { form, index, namePath }));
196
168
  } else {
197
169
  showRef.current = show;
198
170
  }
199
- if (_isFunction(desensitization)) {
200
- desensitizationRef.current = desensitization(values, {
201
- form,
202
- index,
203
- namePath
204
- });
171
+ if (isFunction(desensitization)) {
172
+ desensitizationRef.current = desensitization(values, { form, index, namePath });
205
173
  } else {
206
174
  desensitizationRef.current = desensitization;
207
175
  }
208
- if (_isFunction(disabled)) {
209
- // RangePicker返回数组时,特殊处理
210
- if (['Group', 'RangePicker', 'ProCascader'].includes(type) && Array.isArray(disabled(values, {
211
- form,
212
- index,
213
- namePath
214
- }))) {
215
- disabledRef.current = disabled(values, {
216
- form,
217
- index,
218
- namePath
219
- });
176
+ if (isFunction(disabled)) {
177
+ if (["Group", "RangePicker", "ProCascader"].includes(type) && Array.isArray(disabled(values, { form, index, namePath }))) {
178
+ disabledRef.current = disabled(values, { form, index, namePath });
220
179
  } else {
221
- disabledRef.current = Boolean(disabled(values, {
222
- form,
223
- index,
224
- namePath
225
- }));
180
+ disabledRef.current = Boolean(disabled(values, { form, index, namePath }));
226
181
  }
227
182
  } else {
228
183
  disabledRef.current = disabled;
229
184
  }
230
- if (_isFunction(required)) {
231
- requiredRef.current = required(values, {
232
- form,
233
- index,
234
- namePath
235
- });
185
+ if (isFunction(required)) {
186
+ requiredRef.current = required(values, { form, index, namePath });
236
187
  } else {
237
188
  requiredRef.current = required;
238
189
  }
239
- if (_isFunction(rules)) {
240
- rulesRef.current = rules(values, {
241
- form,
242
- index,
243
- namePath
244
- });
190
+ if (isFunction(rules)) {
191
+ rulesRef.current = rules(values, { form, index, namePath });
245
192
  } else {
246
193
  rulesRef.current = rules;
247
194
  }
248
- if (_isFunction(originComponent)) {
249
- originComponentRef.current = originComponent(values, {
250
- form,
251
- index,
252
- namePath
253
- });
195
+ if (isFunction(originComponent)) {
196
+ originComponentRef.current = originComponent(values, { form, index, namePath });
254
197
  } else {
255
198
  originComponentRef.current = newComponent;
256
199
  }
257
- if (_isFunction(fieldProps)) {
258
- fieldPropsRef.current = fieldProps(values, {
259
- form,
260
- index,
261
- namePath
262
- }); // index, namePath FormList才会有
200
+ if (isFunction(fieldProps)) {
201
+ fieldPropsRef.current = fieldProps(values, { form, index, namePath });
263
202
  } else {
264
203
  fieldPropsRef.current = fieldProps;
265
204
  }
266
- if (dependNames?.length) {
267
- dependNamesRef.current = dependNames.map(name => _get(values, name));
205
+ if (dependNames == null ? void 0 : dependNames.length) {
206
+ dependNamesRef.current = dependNames.map((name2) => get(values, name2));
268
207
  }
269
208
  return {
270
209
  shouldUpdate: (prevValues, currentValues, ...rest) => {
271
- // @ts-ignore formList场景取当前行数据,不取shouldUpdate变更后值
272
- if (dependNames?.length) {
273
- const curDependNamesValue = dependNames.map(name => _get(currentValues, name));
274
- const dependNamesChanged = !_isEqualWith(dependNamesRef.current, curDependNamesValue, customEqualForFunction);
210
+ if (dependNames == null ? void 0 : dependNames.length) {
211
+ const curDependNamesValue = dependNames.map((name2) => get(currentValues, name2));
212
+ const dependNamesChanged = !isEqualWith(
213
+ dependNamesRef.current,
214
+ curDependNamesValue,
215
+ customEqualForFunction
216
+ );
275
217
  dependNamesRef.current = curDependNamesValue;
276
- if (!dependNamesChanged) return false;
218
+ if (!dependNamesChanged)
219
+ return false;
277
220
  }
278
-
279
- // 先获取当前表单值,用于判断是否需要清值
280
221
  let _currentValues;
281
222
  if (namePath) {
282
- // formList场景values取当前行数据
283
223
  _currentValues = form.getFieldValue(namePath) || {};
284
224
  } else {
285
225
  _currentValues = form.getFieldsValue(true);
286
226
  }
287
-
288
- // 计算当前的 show 值
289
- const _show = _isFunction(show) ? Boolean(show(_currentValues, {
290
- form,
291
- index,
292
- namePath
293
- })) : show;
294
-
295
- // 在防抖判断之前先执行清值逻辑检查,确保清值逻辑不受防抖影响
227
+ const _show = isFunction(show) ? Boolean(show(_currentValues, { form, index, namePath })) : show;
296
228
  executeClearValue({
297
229
  form,
298
230
  name,
@@ -305,28 +237,18 @@ const useShouldUpdate = props => {
305
237
  needClear,
306
238
  timerRef
307
239
  });
308
-
309
- // 如果启用了防抖且存在防抖函数
310
240
  if (shouldUpdateDebounce > 0 && debouncedShouldUpdateRef.current) {
311
- // 缓存最新的表单值
312
241
  pendingValuesRef.current = currentValues;
313
- // 触发防抖函数
314
242
  debouncedShouldUpdateRef.current();
315
- return false; // 暂时不更新,由防抖函数控制
243
+ return false;
316
244
  }
317
-
318
- // 原有的非防抖逻辑
319
- const next = resolveReactiveValues(reactiveProps, _currentValues, {
320
- form,
321
- index,
322
- namePath
323
- });
245
+ const next = resolveReactiveValues(reactiveProps, _currentValues, { form, index, namePath });
324
246
  if (hasReactiveDiff(reactiveRefs, next)) {
325
247
  commitReactiveValues(reactiveRefs, next);
326
248
  reRender({});
327
249
  return false;
328
250
  }
329
- if (typeof shouldUpdate === 'function') {
251
+ if (typeof shouldUpdate === "function") {
330
252
  return shouldUpdate(prevValues, currentValues, ...rest);
331
253
  }
332
254
  return !!shouldUpdate;
@@ -340,4 +262,7 @@ const useShouldUpdate = props => {
340
262
  desensitization: desensitizationRef.current
341
263
  };
342
264
  };
343
- export default useShouldUpdate;
265
+ var useShouldUpdate_default = useShouldUpdate;
266
+ export {
267
+ useShouldUpdate_default as default
268
+ };