@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,23 +1,40 @@
1
- import _isNumber from "lodash/isNumber";
2
- import _omit from "lodash/omit";
3
- import _isFunction from "lodash/isFunction";
4
- import { useDeepCompareEffect, useRequest as useRequestFunc } from 'ahooks';
5
- import { message, Select, Space, Tooltip } from 'antd';
6
- import React, { useImperativeHandle, useState, forwardRef, isValidElement, useCallback, useEffect, useMemo, useRef } from 'react';
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { useDeepCompareEffect, useRequest as useRequestFunc } from "ahooks";
3
+ import { message, Select, Space, Tooltip } from "antd";
4
+ import React, {
5
+ useImperativeHandle,
6
+ useState,
7
+ forwardRef,
8
+ isValidElement,
9
+ useCallback,
10
+ useEffect,
11
+ useMemo,
12
+ useRef
13
+ } from "react";
14
+ import isFunction from "lodash/isFunction";
15
+ import omit from "lodash/omit";
16
+ import isNumber from "lodash/isNumber";
7
17
  import { useProConfig } from "../ProConfigProvider";
8
18
  import Container from "../ProForm/components/Container";
9
19
  import AdaptiveTooltip from "./components/AdaptiveTooltip";
10
- import { ProForm } from '..';
20
+ import { ProForm } from "..";
11
21
  import locale from "../locale";
12
- import { getSelectList, flattenOptions, findValueObject, defaultFilterOption as defaultFilterOptionFn, getInnerRecord, buildSelectOptions, resolveChangeOption, computeChangeValue, computeTransformValue } from "./utils";
13
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
- export const ProSelect = (props, ref) => {
15
- const {
16
- fieldNames: proSelectFieldNames = {},
17
- showCodeName
18
- } = useProConfig('ProSelect') || {};
19
- let label = 'label';
20
- let code = 'value';
22
+ import {
23
+ getSelectList,
24
+ flattenOptions,
25
+ findValueObject,
26
+ defaultFilterOption as defaultFilterOptionFn,
27
+ getInnerRecord,
28
+ buildSelectOptions,
29
+ resolveChangeOption,
30
+ computeChangeValue,
31
+ computeTransformValue
32
+ } from "./utils";
33
+ const ProSelect = (props, ref) => {
34
+ var _a, _b, _c, _d, _e, _f, _g;
35
+ const { fieldNames: proSelectFieldNames = {}, showCodeName } = useProConfig("ProSelect") || {};
36
+ let label = "label";
37
+ let code = "value";
21
38
  if (proSelectFieldNames && Object.keys(proSelectFieldNames).length) {
22
39
  code = proSelectFieldNames.value;
23
40
  label = proSelectFieldNames.label;
@@ -45,179 +62,146 @@ export const ProSelect = (props, ref) => {
45
62
  } = props;
46
63
  selectProps.showCodeName = selectProps.showCodeName ?? showCodeName;
47
64
  const value = getValueProps && props.value ? getValueProps(props.value) : props.value;
48
- const {
49
- isView: isViewCon,
50
- viewEmpty
51
- } = ProForm?.useFieldProps?.() || {};
52
- const isView = typeof props.isView === 'boolean' ? props.isView : isViewCon; // 组件可直接接收isView参数, 优先级高
53
-
65
+ const { isView: isViewCon, viewEmpty } = ((_b = (_a = ProForm) == null ? void 0 : _a.useFieldProps) == null ? void 0 : _b.call(_a)) || {};
66
+ const isView = typeof props.isView === "boolean" ? props.isView : isViewCon;
54
67
  if (fieldNames && Object.keys(fieldNames).length) {
55
68
  code = fieldNames.value;
56
69
  label = fieldNames.label;
57
70
  }
58
71
  const [selectList, setSelectList] = useState(dataSource || []);
59
-
60
- // 用来控制只有第一次才会设置 defaultOne 属性、🔒
61
72
  const [isDefaultOne, setIsDefaultOne] = useState(false);
62
73
  const [innerPopupOpen, setInnerPopupOpen] = useState(selectProps.defaultOpen ?? false);
63
74
  const popupOpen = selectProps.open ?? innerPopupOpen;
64
- const handleOpenChange = useCallback(open => {
65
- setInnerPopupOpen(open);
66
- onOpenChange?.(open);
67
- }, [onOpenChange]);
75
+ const handleOpenChange = useCallback(
76
+ (open) => {
77
+ setInnerPopupOpen(open);
78
+ onOpenChange == null ? void 0 : onOpenChange(open);
79
+ },
80
+ [onOpenChange]
81
+ );
68
82
  const OptionRender = optionRender;
69
- const defaultOnSuccessFun = res => {
70
- const {
71
- status = 200,
72
- message: msg,
73
- data
74
- } = res;
83
+ const defaultOnSuccessFun = (res) => {
84
+ const { status = 200, message: msg, data } = res;
75
85
  if (status !== 200) {
76
86
  message.error(msg);
77
87
  return;
78
88
  }
79
89
  setSelectList(data || []);
80
90
  };
81
- const successTransformDataHandle = useCallback(res => {
82
- if (transformResponse && typeof transformResponse === 'function') {
91
+ const successTransformDataHandle = useCallback((res) => {
92
+ if (transformResponse && typeof transformResponse === "function") {
83
93
  return transformResponse(res);
84
94
  }
85
- const {
86
- status = 200,
87
- message: msg,
88
- data
89
- } = res || {};
95
+ const { status = 200, message: msg, data } = res || {};
90
96
  if (status !== 200) {
91
97
  message.error(msg);
92
98
  return;
93
99
  }
94
100
  return data;
95
101
  }, []);
96
- const fetchFunction = useRequestFunc(useRequest?.service, {
102
+ const fetchFunction = useRequestFunc(useRequest == null ? void 0 : useRequest.service, {
97
103
  manual: true,
98
104
  debounceWait: 300,
99
- ...useRequest?.options,
100
- onSuccess: data => {
101
- if (transformResponse && typeof transformResponse === 'function') {
105
+ ...useRequest == null ? void 0 : useRequest.options,
106
+ onSuccess: (data) => {
107
+ var _a2, _b2, _c2;
108
+ if (transformResponse && typeof transformResponse === "function") {
102
109
  const responseData = transformResponse(data);
103
110
  setSelectList(responseData);
104
111
  } else {
105
112
  defaultOnSuccessFun(data);
106
113
  }
107
- // 执行传入onSuccess
108
- useRequest?.options?.onSuccess?.(data, useRequest?.options?.defaultParams);
114
+ (_c2 = (_a2 = useRequest == null ? void 0 : useRequest.options) == null ? void 0 : _a2.onSuccess) == null ? void 0 : _c2.call(_a2, data, (_b2 = useRequest == null ? void 0 : useRequest.options) == null ? void 0 : _b2.defaultParams);
109
115
  }
110
116
  });
111
117
  const fetchFunctionRef = useRef(fetchFunction);
112
118
  useEffect(() => {
113
119
  fetchFunctionRef.current = fetchFunction;
114
120
  }, [fetchFunction]);
115
- const cacheList = useRequest?.options?.cacheKey ? successTransformDataHandle(fetchFunction?.data) : [];
116
-
117
- // 展平结果仅随 selectList 变化;滚动重挂载/无关 rerender 时复用,避免重复展平
121
+ const cacheList = ((_c = useRequest == null ? void 0 : useRequest.options) == null ? void 0 : _c.cacheKey) ? successTransformDataHandle(fetchFunction == null ? void 0 : fetchFunction.data) : [];
118
122
  const flatOptions = useMemo(() => flattenOptions(selectList), [selectList]);
119
- const getValueObject = input => findValueObject(flatOptions, code, input);
120
- useImperativeHandle(ref, () => ({
121
- getValueObject,
122
- useRequestRef: fetchFunction
123
- }));
124
-
125
- // 实现maxTagPlaceholder功能,支持hover显示完整标签 (必须在条件渲染之前)
126
- const maxTagPlaceholder = useCallback(omittedValues => {
127
- // 提取被省略的标签文本
128
- const omittedLabels = omittedValues.map(value => {
129
- // 在ProSelect中,value可能是各种格式
130
- const targetValue = typeof value === 'object' ? value.value || value[code] : value;
131
- const item = flatOptions.find(item => item[code] === targetValue);
132
- return item?.[label] || targetValue;
133
- });
134
- const tooltipContent = omittedLabels.join('、');
135
- return /*#__PURE__*/_jsx(Tooltip, {
136
- title: tooltipContent,
137
- placement: "topLeft",
138
- children: /*#__PURE__*/_jsxs("span", {
139
- children: ["+ ", /*#__PURE__*/_jsx("b", {
140
- className: "pro-select-more-count",
141
- children: omittedValues.length
142
- }), " ..."]
143
- })
144
- });
145
- }, [flatOptions, code, label]);
123
+ const getValueObject = (input) => findValueObject(flatOptions, code, input);
124
+ useImperativeHandle(
125
+ ref,
126
+ () => ({
127
+ getValueObject,
128
+ useRequestRef: fetchFunction
129
+ })
130
+ );
131
+ const maxTagPlaceholder = useCallback(
132
+ (omittedValues) => {
133
+ const omittedLabels = omittedValues.map((value2) => {
134
+ const targetValue = typeof value2 === "object" ? value2.value || value2[code] : value2;
135
+ const item = flatOptions.find((item2) => item2[code] === targetValue);
136
+ return (item == null ? void 0 : item[label]) || targetValue;
137
+ });
138
+ const tooltipContent = omittedLabels.join("、");
139
+ return /* @__PURE__ */ jsx(Tooltip, { title: tooltipContent, placement: "topLeft", children: /* @__PURE__ */ jsxs("span", { children: [
140
+ "+ ",
141
+ /* @__PURE__ */ jsx("b", { className: "pro-select-more-count", children: omittedValues.length }),
142
+ " ..."
143
+ ] }) });
144
+ },
145
+ [flatOptions, code, label]
146
+ );
146
147
  useDeepCompareEffect(() => {
147
148
  setSelectList(dataSource);
148
149
  }, [dataSource]);
149
150
  useDeepCompareEffect(() => {
150
- // 设置cacheKey后使用缓存的数据
151
- if (!selectList?.length && useRequest?.options?.cacheKey) {
152
- if (cacheList?.length) {
151
+ var _a2;
152
+ if (!(selectList == null ? void 0 : selectList.length) && ((_a2 = useRequest == null ? void 0 : useRequest.options) == null ? void 0 : _a2.cacheKey)) {
153
+ if (cacheList == null ? void 0 : cacheList.length) {
153
154
  setSelectList(cacheList);
154
155
  }
155
156
  }
156
- }, [fetchFunction?.data]);
157
+ }, [fetchFunction == null ? void 0 : fetchFunction.data]);
157
158
  useDeepCompareEffect(() => {
158
159
  if (!useRequest) {
159
160
  return;
160
161
  }
161
- const {
162
- defaultParams,
163
- manual
164
- } = useRequest?.options || {};
165
- if (manual || cacheList?.length) {
162
+ const { defaultParams, manual } = (useRequest == null ? void 0 : useRequest.options) || {};
163
+ if (manual || (cacheList == null ? void 0 : cacheList.length)) {
166
164
  return;
167
165
  }
168
- const params = Array.isArray(defaultParams) ? defaultParams?.[0] : defaultParams || {};
166
+ const params = Array.isArray(defaultParams) ? defaultParams == null ? void 0 : defaultParams[0] : defaultParams || {};
169
167
  fetchFunction.run(params);
170
- }, [useRequest?.options]);
171
-
172
- // 处理 defaultOne 逻辑:当 dataSource 只有一个值且没有 value 时,自动设置默认值
168
+ }, [useRequest == null ? void 0 : useRequest.options]);
173
169
  useEffect(() => {
174
- if (defaultOne && !value && !isDefaultOne && selectList?.length === 1) {
175
- const option = selectList?.[0];
176
- if (option && option[code] !== undefined && option[code] !== null) {
170
+ if (defaultOne && !value && !isDefaultOne && (selectList == null ? void 0 : selectList.length) === 1) {
171
+ const option = selectList == null ? void 0 : selectList[0];
172
+ if (option && option[code] !== void 0 && option[code] !== null) {
177
173
  setIsDefaultOne(true);
178
- // 使用 setTimeout 确保在下一个事件循环中调用,避免在渲染过程中更新状态
179
174
  setTimeout(() => {
180
- onChange?.(option[code], option);
175
+ onChange == null ? void 0 : onChange(option[code], option);
181
176
  }, 0);
182
177
  }
183
178
  }
184
179
  }, [defaultOne, value, isDefaultOne, selectList, code, onChange]);
185
- const transToLabel = value => {
180
+ const transToLabel = (value2) => {
186
181
  if (!flatOptions.length) {
187
182
  return viewEmpty;
188
183
  }
189
- const findOption = v => flatOptions.find(item => labelInValue ? item[code] === v[code] : item[code] === v);
190
- const record = value.map(findOption).filter(v => !!v);
191
-
192
- // 自定义 option 时,默认取 optionRender 的值
193
- if (_isFunction(props.optionRender) && record.length) {
194
- return /*#__PURE__*/_jsx(Space, {
195
- orientation: "vertical",
196
- size: 4,
197
- children: record.map(item => /*#__PURE__*/_jsx(React.Fragment, {
198
- children: props.optionRender(item)
199
- }, item[code]))
200
- });
184
+ const findOption = (v) => flatOptions.find((item) => labelInValue ? item[code] === v[code] : item[code] === v);
185
+ const record = value2.map(findOption).filter((v) => !!v);
186
+ if (isFunction(props.optionRender) && record.length) {
187
+ return /* @__PURE__ */ jsx(Space, { orientation: "vertical", size: 4, children: record.map((item) => /* @__PURE__ */ jsx(React.Fragment, { children: props.optionRender(item) }, item[code])) });
201
188
  }
202
- const labelList = value.map(v => {
189
+ const labelList = value2.map((v) => {
203
190
  const option = findOption(v);
204
- if (!option) return '-';
205
- return selectProps.showCodeName ? `${option[code]}-${option[label]}` : option?.[label];
191
+ if (!option)
192
+ return "-";
193
+ return selectProps.showCodeName ? `${option[code]}-${option[label]}` : option == null ? void 0 : option[label];
206
194
  });
207
- return labelList?.join('、');
195
+ return labelList == null ? void 0 : labelList.join("、");
208
196
  };
209
-
210
- // 必须在早期 return 之前声明,确保每次渲染 hooks 调用数量一致(React Rules of Hooks)
211
197
  const defaultFilterOption = useCallback(defaultFilterOptionFn, []);
212
198
  const mergedShowSearch = useMemo(() => {
213
199
  const defaultConfig = {
214
200
  enabled: true,
215
- filterOption: _isFunction(_onSearch) ? false : defaultFilterOption,
216
- optionFilterProp: 'label',
217
- onSearch: searchValue => {
218
- _onSearch?.(searchValue, {
219
- ...fetchFunctionRef.current
220
- });
201
+ filterOption: isFunction(_onSearch) ? false : defaultFilterOption,
202
+ optionFilterProp: "label",
203
+ onSearch: (searchValue) => {
204
+ _onSearch == null ? void 0 : _onSearch(searchValue, { ...fetchFunctionRef.current });
221
205
  }
222
206
  };
223
207
  const customShowSearch = selectProps.showSearch;
@@ -230,7 +214,7 @@ export const ProSelect = (props, ref) => {
230
214
  if (customShowSearch === true || customShowSearch == null) {
231
215
  return defaultConfig;
232
216
  }
233
- if (typeof customShowSearch === 'object' && customShowSearch !== null) {
217
+ if (typeof customShowSearch === "object" && customShowSearch !== null) {
234
218
  return {
235
219
  ...defaultConfig,
236
220
  ...customShowSearch,
@@ -243,7 +227,7 @@ export const ProSelect = (props, ref) => {
243
227
  return defaultConfig;
244
228
  }, [_onSearch, defaultFilterOption, selectProps.showSearch]);
245
229
  let newSelectList = selectList;
246
- if (otherProps?.listName && filterInList) {
230
+ if ((otherProps == null ? void 0 : otherProps.listName) && filterInList) {
247
231
  newSelectList = getSelectList({
248
232
  otherProps,
249
233
  value,
@@ -253,115 +237,74 @@ export const ProSelect = (props, ref) => {
253
237
  mode: selectProps.mode
254
238
  });
255
239
  }
256
-
257
- // antd Select 的 options 仅随数据源/字段映射/展示配置变化;滚动重挂载与无关 rerender 时复用,
258
- // 避免每次渲染全量重建 option 对象(落在虚拟表格挂载热路径上)。
259
- // 依赖用 buildSelectOptions 实际消费的原始值(code/label/showCodeName/OptionRender),
260
- // 而非每次新建的函数引用,避免缓存失效。
261
- // 必须在 isView 早期 return 之前声明,确保每次渲染 hooks 调用数量一致(React Rules of Hooks)。
262
- const selectOptions = useMemo(() => buildSelectOptions(newSelectList, {
263
- code,
264
- label,
265
- showCodeName: selectProps.showCodeName,
266
- optionRender: OptionRender
267
- }), [newSelectList, code, label, selectProps.showCodeName, OptionRender]);
240
+ const selectOptions = useMemo(
241
+ () => buildSelectOptions(newSelectList, {
242
+ code,
243
+ label,
244
+ showCodeName: selectProps.showCodeName,
245
+ optionRender: OptionRender
246
+ }),
247
+ [newSelectList, code, label, selectProps.showCodeName, OptionRender]
248
+ );
268
249
  if (isView || props.isView) {
269
250
  if (Array.isArray(value)) {
270
- // 如果设置了maxTagCount且超出数量,需要截断显示
271
- const shouldTruncate = typeof selectProps.maxTagCount === 'number' && value.length > selectProps.maxTagCount;
251
+ const shouldTruncate = typeof selectProps.maxTagCount === "number" && value.length > selectProps.maxTagCount;
272
252
  if (shouldTruncate) {
273
- // 截断显示:显示前N项 + "更多N项..."
274
- const maxCount = typeof selectProps.maxTagCount === 'number' ? selectProps.maxTagCount : 0;
253
+ const maxCount = typeof selectProps.maxTagCount === "number" ? selectProps.maxTagCount : 0;
275
254
  const visibleItems = value.slice(0, maxCount);
276
255
  const hiddenItems = value.slice(maxCount);
277
256
  const hiddenCount = value.length - maxCount;
278
257
  const visibleText = transToLabel(visibleItems);
279
- const hiddenText = transToLabel(hiddenItems); // 只显示被隐藏的标签
280
- const moreText = locale?.ProForm?.moreItems ? /*#__PURE__*/_jsxs(_Fragment, {
281
- children: [locale.ProForm.moreItems.split('{count}')[0], /*#__PURE__*/_jsx("b", {
282
- className: "pro-select-more-count",
283
- children: hiddenCount
284
- }), locale.ProForm.moreItems.split('{count}')[1]]
285
- }) : /*#__PURE__*/_jsxs(_Fragment, {
286
- children: [/*#__PURE__*/_jsx("b", {
287
- className: "pro-select-more-count",
288
- children: hiddenCount
289
- }), " more..."]
290
- });
291
- return /*#__PURE__*/_jsxs(Container, {
292
- viewEmpty: viewEmpty,
293
- children: [visibleText, "\u3001", /*#__PURE__*/_jsx(Tooltip, {
294
- title: hiddenText,
295
- children: /*#__PURE__*/_jsx("span", {
296
- children: moreText
297
- })
298
- })]
299
- });
258
+ const hiddenText = transToLabel(hiddenItems);
259
+ const moreText = ((_e = (_d = locale) == null ? void 0 : _d.ProForm) == null ? void 0 : _e.moreItems) ? /* @__PURE__ */ jsxs(Fragment, { children: [
260
+ locale.ProForm.moreItems.split("{count}")[0],
261
+ /* @__PURE__ */ jsx("b", { className: "pro-select-more-count", children: hiddenCount }),
262
+ locale.ProForm.moreItems.split("{count}")[1]
263
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
264
+ /* @__PURE__ */ jsx("b", { className: "pro-select-more-count", children: hiddenCount }),
265
+ " more..."
266
+ ] });
267
+ return /* @__PURE__ */ jsxs(Container, { viewEmpty, children: [
268
+ visibleText,
269
+ "、",
270
+ /* @__PURE__ */ jsx(Tooltip, { title: hiddenText, children: /* @__PURE__ */ jsx("span", { children: moreText }) })
271
+ ] });
300
272
  }
301
-
302
- // 不需要截断,正常显示
303
- return /*#__PURE__*/_jsx(Container, {
304
- viewEmpty: viewEmpty,
305
- children: transToLabel(value)
306
- });
273
+ return /* @__PURE__ */ jsx(Container, { viewEmpty, children: transToLabel(value) });
307
274
  }
308
- return /*#__PURE__*/_jsx(Container, {
309
- viewEmpty: viewEmpty,
310
- children: value || _isNumber(value) ? transToLabel([value]) : null
311
- });
275
+ return /* @__PURE__ */ jsx(Container, { viewEmpty, children: value || isNumber(value) ? transToLabel([value]) : null });
312
276
  }
313
- const TooltipOption = props => {
277
+ const TooltipOption = (props2) => {
314
278
  if (tooltip) {
315
- return /*#__PURE__*/_jsx(AdaptiveTooltip, {
316
- children: props.children
317
- });
279
+ return /* @__PURE__ */ jsx(AdaptiveTooltip, { children: props2.children });
318
280
  }
319
- return props.children;
281
+ return props2.children;
320
282
  };
321
- const isReactElement = element => /*#__PURE__*/isValidElement(element);
322
- const selectOptionRender = option => {
323
- const currentRecord = option?.data?.record || option?.record;
324
- const text = option?.data?.searchText ?? option?.data?.title ?? option?.label ?? '';
283
+ const isReactElement = (element) => isValidElement(element);
284
+ const selectOptionRender = (option) => {
285
+ var _a2, _b2, _c2;
286
+ const currentRecord = ((_a2 = option == null ? void 0 : option.data) == null ? void 0 : _a2.record) || (option == null ? void 0 : option.record);
287
+ const text = ((_b2 = option == null ? void 0 : option.data) == null ? void 0 : _b2.searchText) ?? ((_c2 = option == null ? void 0 : option.data) == null ? void 0 : _c2.title) ?? (option == null ? void 0 : option.label) ?? "";
325
288
  if (!currentRecord) {
326
- return /*#__PURE__*/_jsx(TooltipOption, {
327
- title: String(text),
328
- children: String(text)
329
- });
289
+ return /* @__PURE__ */ jsx(TooltipOption, { title: String(text), children: String(text) });
330
290
  }
331
- return /*#__PURE__*/_jsx(TooltipOption, {
332
- title: String(text),
333
- children: OptionRender ? /*#__PURE__*/_jsx("span", {
334
- children: OptionRender(currentRecord)
335
- }) : /*#__PURE__*/_jsx("span", {
336
- children: String(text)
337
- })
338
- });
291
+ return /* @__PURE__ */ jsx(TooltipOption, { title: String(text), children: OptionRender ? /* @__PURE__ */ jsx("span", { children: OptionRender(currentRecord) }) : /* @__PURE__ */ jsx("span", { children: String(text) }) });
339
292
  };
340
293
  const mode = selectProps.mode;
341
- const handleChange = (value, rawOption) => {
342
- // 仅多选、或单选 labelInValue 需要加工 option;其余直接取原始节点上的 record
343
- if (mode !== 'multiple' && !(labelInValue && !mode)) {
344
- onChange?.(computeChangeValue(value, {
345
- mode,
346
- getChangeValue,
347
- flatOptions,
348
- code
349
- }), getInnerRecord(rawOption));
294
+ const handleChange = (value2, rawOption) => {
295
+ if (mode !== "multiple" && !(labelInValue && !mode)) {
296
+ onChange == null ? void 0 : onChange(
297
+ computeChangeValue(value2, { mode, getChangeValue, flatOptions, code }),
298
+ getInnerRecord(rawOption)
299
+ );
350
300
  return;
351
301
  }
352
- // labelInValue 下,option/其首层子节点是 React 节点时取挂载的 record
353
- const isReactNode = labelInValue && (isReactElement(rawOption) || isReactElement(rawOption?.children));
354
- const option = resolveChangeOption(rawOption, {
355
- mode,
356
- isReactNode
357
- });
358
- onChange?.(computeChangeValue(value, {
359
- labelInValue,
360
- mode,
361
- getChangeValue,
362
- flatOptions,
363
- code
364
- }), option);
302
+ const isReactNode = labelInValue && (isReactElement(rawOption) || isReactElement(rawOption == null ? void 0 : rawOption.children));
303
+ const option = resolveChangeOption(rawOption, { mode, isReactNode });
304
+ onChange == null ? void 0 : onChange(
305
+ computeChangeValue(value2, { labelInValue, mode, getChangeValue, flatOptions, code }),
306
+ option
307
+ );
365
308
  };
366
309
  const transformValue = () => computeTransformValue({
367
310
  value,
@@ -373,33 +316,45 @@ export const ProSelect = (props, ref) => {
373
316
  flatOptions,
374
317
  code
375
318
  });
376
- return /*#__PURE__*/_jsx("div", {
377
- style: props.style,
378
- className: `pro-select${popupOpen ? ' pro-select-popup-open' : ''}`,
379
- children: /*#__PURE__*/_jsx(Select, {
380
- placeholder: locale?.ProSelect?.select,
319
+ return /* @__PURE__ */ jsx("div", { style: props.style, className: `pro-select${popupOpen ? " pro-select-popup-open" : ""}`, children: /* @__PURE__ */ jsx(
320
+ Select,
321
+ {
322
+ placeholder: (_g = (_f = locale) == null ? void 0 : _f.ProSelect) == null ? void 0 : _g.select,
381
323
  allowClear: true,
382
- loading: fetchFunction?.loading,
324
+ loading: fetchFunction == null ? void 0 : fetchFunction.loading,
383
325
  onChange: handleChange,
384
326
  showSearch: mergedShowSearch.enabled ? {
385
327
  filterOption: mergedShowSearch.filterOption,
386
328
  optionFilterProp: mergedShowSearch.optionFilterProp,
387
329
  onSearch: mergedShowSearch.onSearch
388
330
  } : false,
389
- getPopupContainer: trigger => {
331
+ getPopupContainer: (trigger) => {
390
332
  return scrollFollowParent ? trigger.parentElement : document.body;
391
333
  },
392
- ..._omit({
393
- ...selectProps
394
- }, ['isView', 'showCodeName', 'form', 'name', 'style', 'onFieldChange', 'getChangeValue', 'viewportReady', 'showSearch', 'filterOption', 'optionFilterProp', 'searchValue']),
395
- onOpenChange: handleOpenChange
396
- // 如果是多选模式且用户没有自定义maxTagPlaceholder,使用我们的hover版本
397
- ,
398
- maxTagPlaceholder: selectProps.mode === 'multiple' && !selectProps.maxTagPlaceholder ? maxTagPlaceholder : selectProps.maxTagPlaceholder,
334
+ ...omit({ ...selectProps }, [
335
+ "isView",
336
+ "showCodeName",
337
+ "form",
338
+ "name",
339
+ "style",
340
+ "onFieldChange",
341
+ "getChangeValue",
342
+ "viewportReady",
343
+ "showSearch",
344
+ "filterOption",
345
+ "optionFilterProp",
346
+ "searchValue"
347
+ ]),
348
+ onOpenChange: handleOpenChange,
349
+ maxTagPlaceholder: selectProps.mode === "multiple" && !selectProps.maxTagPlaceholder ? maxTagPlaceholder : selectProps.maxTagPlaceholder,
399
350
  optionRender: selectOptionRender,
400
351
  value: transformValue(),
401
352
  options: selectOptions
402
- })
403
- });
353
+ }
354
+ ) });
355
+ };
356
+ var ProSelect_default = forwardRef(ProSelect);
357
+ export {
358
+ ProSelect,
359
+ ProSelect_default as default
404
360
  };
405
- export default /*#__PURE__*/forwardRef(ProSelect);
@@ -1 +0,0 @@
1
- export {};