@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,8 +1,4 @@
1
- /**
2
- * 检查描述dom是否部分隐藏
3
- * @param ele dom节点
4
- */
5
- export const checkDescribeItemsHidden = ele => {
1
+ const checkDescribeItemsHidden = (ele) => {
6
2
  const childElement = ele;
7
3
  if (!childElement) {
8
4
  return false;
@@ -12,25 +8,22 @@ export const checkDescribeItemsHidden = ele => {
12
8
  const itemsClientWidth = element.clientWidth;
13
9
  return itemsScrollWidth > itemsClientWidth;
14
10
  };
15
-
16
- /**
17
- * 将值转为可用于 React key 的字符串片段
18
- * 仅 string / number 有效,其余(含 ReactNode、对象、数组、boolean)返回 undefined
19
- */
20
- export const toKeyPart = value => {
21
- if (value == null || value === '') return undefined;
22
- if (typeof value === 'string' || typeof value === 'number') return String(value);
23
- return undefined;
11
+ const toKeyPart = (value) => {
12
+ if (value == null || value === "")
13
+ return void 0;
14
+ if (typeof value === "string" || typeof value === "number")
15
+ return String(value);
16
+ return void 0;
17
+ };
18
+ const getDescribeColumnKey = (item, index) => toKeyPart(item.label) ?? toKeyPart(item.value) ?? `describe-${index}`;
19
+ const getDescribeValueKey = (item, parentKey, index) => toKeyPart(item.link) ?? toKeyPart(item.value) ?? `${parentKey}-value-${index}`;
20
+ const getTagKey = (tagItem, parentKey, index) => toKeyPart(tagItem) ?? `${parentKey}-tag-${index}`;
21
+ const getSubDescribeKey = (item, index) => toKeyPart(item.label) ?? toKeyPart(item.code) ?? `sub-describe-${index}`;
22
+ export {
23
+ checkDescribeItemsHidden,
24
+ getDescribeColumnKey,
25
+ getDescribeValueKey,
26
+ getSubDescribeKey,
27
+ getTagKey,
28
+ toKeyPart
24
29
  };
25
-
26
- /** 主级描述项 key:label → value → describe-${index} */
27
- export const getDescribeColumnKey = (item, index) => toKeyPart(item.label) ?? toKeyPart(item.value) ?? `describe-${index}`;
28
-
29
- /** 描述值 key:link → value → ${parentKey}-value-${index} */
30
- export const getDescribeValueKey = (item, parentKey, index) => toKeyPart(item.link) ?? toKeyPart(item.value) ?? `${parentKey}-value-${index}`;
31
-
32
- /** 标签 key:tagItem → ${parentKey}-tag-${index} */
33
- export const getTagKey = (tagItem, parentKey, index) => toKeyPart(tagItem) ?? `${parentKey}-tag-${index}`;
34
-
35
- /** 次级描述项 key:label → code → sub-describe-${index} */
36
- export const getSubDescribeKey = (item, index) => toKeyPart(item.label) ?? toKeyPart(item.code) ?? `sub-describe-${index}`;
@@ -1,11 +1,7 @@
1
- import { useState, useCallback } from 'react';
2
- import { Dropdown } from 'antd';
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import { Dropdown } from "antd";
3
4
  import locale from "../../../../locale";
4
-
5
- /**
6
- * 右键菜单组件 - 兼容Antd 4.x和5.x
7
- */
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
5
  function TabContextMenu({
10
6
  tabId,
11
7
  children,
@@ -23,84 +19,95 @@ function TabContextMenu({
23
19
  tabs = []
24
20
  }) {
25
21
  const [visible, setVisible] = useState(false);
26
- const handleMenuClick = useCallback(key => {
27
- setVisible(false);
28
-
29
- // 优先调用自定义回调
30
- if (tabMenuClick && tab) {
31
- tabMenuClick({
32
- key,
33
- tab,
34
- tabs
35
- });
22
+ const handleMenuClick = useCallback(
23
+ (key) => {
24
+ setVisible(false);
25
+ if (tabMenuClick && tab) {
26
+ tabMenuClick({ key, tab, tabs });
27
+ }
28
+ switch (key) {
29
+ case "close":
30
+ if (!closable) {
31
+ return;
32
+ }
33
+ onClose(tabId);
34
+ break;
35
+ case "closeOthers":
36
+ onCloseOthers(tabId);
37
+ break;
38
+ case "closeRight":
39
+ onCloseRight(tabId);
40
+ break;
41
+ case "closeAll":
42
+ onCloseAll();
43
+ break;
44
+ case "togglePin":
45
+ if (pinDisabled) {
46
+ return;
47
+ }
48
+ onTogglePin == null ? void 0 : onTogglePin(tabId);
49
+ break;
50
+ }
51
+ },
52
+ [
53
+ tabId,
54
+ closable,
55
+ onClose,
56
+ onCloseOthers,
57
+ onCloseRight,
58
+ onCloseAll,
59
+ pinDisabled,
60
+ onTogglePin,
61
+ tabMenuClick,
62
+ tab,
63
+ tabs
64
+ ]
65
+ );
66
+ const defaultMenuItems = [
67
+ {
68
+ key: "close",
69
+ label: locale.ProLayout.tabMenuClose,
70
+ disabled: !closable
71
+ },
72
+ {
73
+ key: "closeOthers",
74
+ label: locale.ProLayout.tabMenuCloseOthers
75
+ },
76
+ {
77
+ key: "closeRight",
78
+ label: locale.ProLayout.tabMenuCloseRight
79
+ },
80
+ {
81
+ key: "closeAll",
82
+ label: locale.ProLayout.tabMenuCloseAll
83
+ },
84
+ {
85
+ type: "divider"
86
+ },
87
+ {
88
+ key: "togglePin",
89
+ label: pinned ? locale.ProLayout.tabMenuUnpin : locale.ProLayout.tabMenuPin,
90
+ disabled: pinDisabled
36
91
  }
37
-
38
- // 处理默认菜单项
39
- switch (key) {
40
- case 'close':
41
- if (!closable) {
42
- return;
43
- }
44
- onClose(tabId);
45
- break;
46
- case 'closeOthers':
47
- onCloseOthers(tabId);
48
- break;
49
- case 'closeRight':
50
- onCloseRight(tabId);
51
- break;
52
- case 'closeAll':
53
- onCloseAll();
54
- break;
55
- case 'togglePin':
56
- if (pinDisabled) {
57
- return;
58
- }
59
- onTogglePin?.(tabId);
60
- break;
92
+ ];
93
+ const menuItems = customMenuItems && customMenuItems.length > 0 ? [...defaultMenuItems, { type: "divider" }, ...customMenuItems] : defaultMenuItems;
94
+ return /* @__PURE__ */ jsx(
95
+ Dropdown,
96
+ {
97
+ menu: {
98
+ items: menuItems,
99
+ onClick: ({ key }) => handleMenuClick(key)
100
+ },
101
+ trigger: ["contextMenu"],
102
+ open: visible,
103
+ onOpenChange: setVisible,
104
+ placement: "bottomLeft",
105
+ children
61
106
  }
62
- }, [tabId, closable, onClose, onCloseOthers, onCloseRight, onCloseAll, pinDisabled, onTogglePin, tabMenuClick, tab, tabs]);
63
-
64
- // 默认右键菜单配置 - 统一使用items方式(antd 4.20+都支持)
65
- const defaultMenuItems = [{
66
- key: 'close',
67
- label: locale.ProLayout.tabMenuClose,
68
- disabled: !closable
69
- }, {
70
- key: 'closeOthers',
71
- label: locale.ProLayout.tabMenuCloseOthers
72
- }, {
73
- key: 'closeRight',
74
- label: locale.ProLayout.tabMenuCloseRight
75
- }, {
76
- key: 'closeAll',
77
- label: locale.ProLayout.tabMenuCloseAll
78
- }, {
79
- type: 'divider'
80
- }, {
81
- key: 'togglePin',
82
- label: pinned ? locale.ProLayout.tabMenuUnpin : locale.ProLayout.tabMenuPin,
83
- disabled: pinDisabled
84
- }];
85
-
86
- // 合并自定义菜单项和默认菜单项
87
- // 如果提供了自定义菜单项,则追加到默认菜单项后面;否则使用默认菜单项
88
- const menuItems = customMenuItems && customMenuItems.length > 0 ? [...defaultMenuItems, {
89
- type: 'divider'
90
- }, ...customMenuItems] : defaultMenuItems;
91
- return /*#__PURE__*/_jsx(Dropdown, {
92
- menu: {
93
- items: menuItems,
94
- onClick: ({
95
- key
96
- }) => handleMenuClick(key)
97
- },
98
- trigger: ['contextMenu'],
99
- open: visible,
100
- onOpenChange: setVisible,
101
- placement: "bottomLeft",
102
- children: children
103
- });
107
+ );
104
108
  }
105
- export default TabContextMenu;
106
- export { TabContextMenu };
109
+ var TabContextMenu_default = TabContextMenu;
110
+ export {
111
+ TabContextMenu,
112
+ TabContextMenu_default as default
113
+ };
@@ -1,18 +1,15 @@
1
- import React from 'react';
2
- import { CloseOutlined } from '@ant-design/icons';
3
- import { Tooltip } from 'antd';
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { CloseOutlined } from "@ant-design/icons";
3
+ import { Tooltip } from "antd";
4
4
  import { TabContextMenu } from "./TabContextMenu";
5
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
5
  const MAX_TAB_TITLE_LENGTH = 12;
7
- const getTabDisplayTitle = title => {
8
- const text = title || '';
6
+ const getTabDisplayTitle = (title) => {
7
+ const text = title || "";
9
8
  const chars = Array.from(text);
10
- if (chars.length <= MAX_TAB_TITLE_LENGTH) return text;
11
- return `${chars.slice(0, MAX_TAB_TITLE_LENGTH).join('')}...`;
9
+ if (chars.length <= MAX_TAB_TITLE_LENGTH)
10
+ return text;
11
+ return `${chars.slice(0, MAX_TAB_TITLE_LENGTH).join("")}...`;
12
12
  };
13
- /**
14
- * 单个标签页组件
15
- */
16
13
  const TabItemComponent = ({
17
14
  tab,
18
15
  active,
@@ -28,64 +25,56 @@ const TabItemComponent = ({
28
25
  menuItems,
29
26
  tabMenuClick
30
27
  }) => {
31
- const tabTitle = tab.title || tab.name || '';
28
+ const tabTitle = tab.title || tab.name || "";
32
29
  const displayTitle = getTabDisplayTitle(tabTitle);
33
30
  const isTitleOverflow = displayTitle !== tabTitle;
34
- const handleCloseClick = e => {
31
+ const handleCloseClick = (e) => {
35
32
  e.stopPropagation();
36
33
  onClose();
37
34
  };
38
-
39
- // 作为 antd Tabs label 使用时,不需要阻止事件冒泡
40
- // antd Tabs 会通过 onChange 处理切换,我们的 onClick 作为备用
41
- const handleLabelClick = e => {
42
- // 不阻止冒泡,让 antd Tabs 处理切换
43
- // 但我们也调用 onClick 以确保状态同步
35
+ const handleLabelClick = (e) => {
44
36
  onClick();
45
37
  };
46
- return /*#__PURE__*/_jsx(TabContextMenu, {
47
- tabId: tab.id,
48
- closable: tab.closable,
49
- onClose: () => onClose(),
50
- onCloseOthers: () => onCloseOthers(),
51
- onCloseRight: () => onCloseRight(),
52
- onCloseAll: onCloseAll,
53
- pinned: pinned,
54
- pinDisabled: pinDisabled,
55
- onTogglePin: onTogglePin ? () => onTogglePin() : undefined,
56
- tab: tab,
57
- tabs: tabsList,
58
- menuItems: menuItems,
59
- tabMenuClick: tabMenuClick,
60
- children: /*#__PURE__*/_jsx("div", {
61
- className: `pro-layout-tab-item ${active ? 'active' : ''} ${tab.closable ? 'closable' : ''}`,
62
- onClick: handleLabelClick,
63
- "data-testid": `tab-${tab.id}`,
64
- children: /*#__PURE__*/_jsxs("div", {
65
- className: "pro-layout-tab-content",
66
- children: [tab.icon && /*#__PURE__*/_jsx("span", {
67
- className: "pro-layout-tab-icon",
68
- children: typeof tab.icon === 'string' ? /*#__PURE__*/_jsx("i", {
69
- className: `iconfont ${tab.icon}`
70
- }) : tab.icon
71
- }), /*#__PURE__*/_jsx("div", {
72
- className: "pro-layout-tab-title",
73
- children: isTitleOverflow ? /*#__PURE__*/_jsx(Tooltip, {
74
- title: tabTitle,
75
- placement: "top",
76
- children: /*#__PURE__*/_jsx("span", {
77
- className: "pro-tooltip",
78
- children: displayTitle
79
- })
80
- }) : tabTitle
81
- }), tab.closable && /*#__PURE__*/_jsx("span", {
82
- className: "pro-layout-tab-close",
83
- onClick: handleCloseClick,
84
- "data-testid": `tab-close-${tab.id}`,
85
- children: /*#__PURE__*/_jsx(CloseOutlined, {})
86
- })]
87
- })
88
- })
89
- });
38
+ return /* @__PURE__ */ jsx(
39
+ TabContextMenu,
40
+ {
41
+ tabId: tab.id,
42
+ closable: tab.closable,
43
+ onClose: () => onClose(),
44
+ onCloseOthers: () => onCloseOthers(),
45
+ onCloseRight: () => onCloseRight(),
46
+ onCloseAll,
47
+ pinned,
48
+ pinDisabled,
49
+ onTogglePin: onTogglePin ? () => onTogglePin() : void 0,
50
+ tab,
51
+ tabs: tabsList,
52
+ menuItems,
53
+ tabMenuClick,
54
+ children: /* @__PURE__ */ jsx(
55
+ "div",
56
+ {
57
+ className: `pro-layout-tab-item ${active ? "active" : ""} ${tab.closable ? "closable" : ""}`,
58
+ onClick: handleLabelClick,
59
+ "data-testid": `tab-${tab.id}`,
60
+ children: /* @__PURE__ */ jsxs("div", { className: "pro-layout-tab-content", children: [
61
+ tab.icon && /* @__PURE__ */ jsx("span", { className: "pro-layout-tab-icon", children: typeof tab.icon === "string" ? /* @__PURE__ */ jsx("i", { className: `iconfont ${tab.icon}` }) : tab.icon }),
62
+ /* @__PURE__ */ jsx("div", { className: "pro-layout-tab-title", children: isTitleOverflow ? /* @__PURE__ */ jsx(Tooltip, { title: tabTitle, placement: "top", children: /* @__PURE__ */ jsx("span", { className: "pro-tooltip", children: displayTitle }) }) : tabTitle }),
63
+ tab.closable && /* @__PURE__ */ jsx(
64
+ "span",
65
+ {
66
+ className: "pro-layout-tab-close",
67
+ onClick: handleCloseClick,
68
+ "data-testid": `tab-close-${tab.id}`,
69
+ children: /* @__PURE__ */ jsx(CloseOutlined, {})
70
+ }
71
+ )
72
+ ] })
73
+ }
74
+ )
75
+ }
76
+ );
77
+ };
78
+ export {
79
+ TabItemComponent
90
80
  };
91
- export { TabItemComponent };
@@ -1,5 +1,5 @@
1
- import { createContext } from 'react';
2
- /**
3
- * 标签页实例 Context,用于在 ProLayout children 中访问标签页 API
4
- */
5
- export const TabsContext = /*#__PURE__*/createContext(null);
1
+ import { createContext } from "react";
2
+ const TabsContext = createContext(null);
3
+ export {
4
+ TabsContext
5
+ };
@@ -1,33 +1,28 @@
1
- import React, { createElement as _createElement } from 'react';
2
- import { Tabs } from 'antd';
3
- import { closestCenter, DndContext, PointerSensor, useSensor } from '@dnd-kit/core';
4
- import { horizontalListSortingStrategy, SortableContext, useSortable } from '@dnd-kit/sortable';
5
- import { CSS } from '@dnd-kit/utilities';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- const DraggableTabNode = props => {
8
- const {
9
- attributes,
10
- listeners,
11
- setNodeRef,
12
- transform,
13
- transition
14
- } = useSortable({
15
- id: props['data-node-key']
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createElement } from "react";
3
+ import React from "react";
4
+ import { Tabs } from "antd";
5
+ import { closestCenter, DndContext, PointerSensor, useSensor } from "@dnd-kit/core";
6
+ import { horizontalListSortingStrategy, SortableContext, useSortable } from "@dnd-kit/sortable";
7
+ import { CSS } from "@dnd-kit/utilities";
8
+ const DraggableTabNode = (props) => {
9
+ const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
10
+ id: props["data-node-key"]
16
11
  });
17
12
  const style = {
18
13
  ...props.style,
19
14
  transform: CSS.Translate.toString(transform),
20
15
  transition,
21
- cursor: 'move'
16
+ cursor: "move"
22
17
  };
23
- return /*#__PURE__*/React.cloneElement(props.children, {
18
+ return React.cloneElement(props.children, {
24
19
  ref: setNodeRef,
25
20
  style,
26
21
  ...attributes,
27
22
  ...listeners
28
23
  });
29
24
  };
30
- export function TabsHeader({
25
+ function TabsHeader({
31
26
  activeKey,
32
27
  tabsItems,
33
28
  onTabChange,
@@ -35,25 +30,17 @@ export function TabsHeader({
35
30
  draggable = true,
36
31
  onReorder
37
32
  }) {
38
- const sensor = useSensor(PointerSensor, {
39
- activationConstraint: {
40
- distance: 10
41
- }
42
- });
43
- const onDragEnd = ({
44
- active,
45
- over
46
- }) => {
33
+ const sensor = useSensor(PointerSensor, { activationConstraint: { distance: 10 } });
34
+ const onDragEnd = ({ active, over }) => {
47
35
  if (over && active.id !== over.id) {
48
- onReorder?.(String(active.id), String(over.id));
36
+ onReorder == null ? void 0 : onReorder(String(active.id), String(over.id));
49
37
  }
50
38
  };
51
- const tabKeys = (tabsItems ?? []).map(item => item.key);
52
- return /*#__PURE__*/_jsx("div", {
53
- className: "pro-layout-tabs-header",
54
- "data-pro-layout-tabs-measure": "true",
55
- children: /*#__PURE__*/_jsx(Tabs, {
56
- activeKey: activeKey,
39
+ const tabKeys = (tabsItems ?? []).map((item) => item.key);
40
+ return /* @__PURE__ */ jsx("div", { className: "pro-layout-tabs-header", "data-pro-layout-tabs-measure": "true", children: /* @__PURE__ */ jsx(
41
+ Tabs,
42
+ {
43
+ activeKey,
57
44
  onChange: onTabChange,
58
45
  onEdit: onTabEdit,
59
46
  type: "editable-card",
@@ -62,25 +49,28 @@ export function TabsHeader({
62
49
  className: "pro-layout-tabs-antd",
63
50
  classNames: {
64
51
  popup: {
65
- root: 'pro-layout-tabs-dropdown-menu'
52
+ root: "pro-layout-tabs-dropdown-menu"
66
53
  }
67
54
  },
68
- renderTabBar: draggable ? (tabBarProps, DefaultTabBar) => /*#__PURE__*/_jsx(DndContext, {
69
- sensors: [sensor],
70
- onDragEnd: onDragEnd,
71
- collisionDetection: closestCenter,
72
- children: /*#__PURE__*/_jsx(SortableContext, {
73
- items: tabKeys,
74
- strategy: horizontalListSortingStrategy,
75
- children: /*#__PURE__*/_jsx(DefaultTabBar, {
76
- ...tabBarProps,
77
- children: node => /*#__PURE__*/_createElement(DraggableTabNode, {
55
+ renderTabBar: draggable ? (tabBarProps, DefaultTabBar) => /* @__PURE__ */ jsx(
56
+ DndContext,
57
+ {
58
+ sensors: [sensor],
59
+ onDragEnd,
60
+ collisionDetection: closestCenter,
61
+ children: /* @__PURE__ */ jsx(SortableContext, { items: tabKeys, strategy: horizontalListSortingStrategy, children: /* @__PURE__ */ jsx(DefaultTabBar, { ...tabBarProps, children: (node) => /* @__PURE__ */ createElement(
62
+ DraggableTabNode,
63
+ {
78
64
  ...node.props,
79
65
  key: node.key
80
- }, node)
81
- })
82
- })
83
- }) : undefined
84
- })
85
- });
86
- }
66
+ },
67
+ node
68
+ ) }) })
69
+ }
70
+ ) : void 0
71
+ }
72
+ ) });
73
+ }
74
+ export {
75
+ TabsHeader
76
+ };
@@ -1,14 +1,13 @@
1
- import { useContext, useMemo } from 'react';
1
+ import { useContext, useMemo } from "react";
2
2
  import { TabsContext } from "../components/TabsContext";
3
-
4
- /**
5
- * 获取当前激活的 Tab 信息 Hook
6
- * @returns 当前激活的 Tab 对象,如果没有激活则返回 undefined
7
- */
8
- export const useActiveTab = () => {
3
+ const useActiveTab = () => {
9
4
  const tabsInstance = useContext(TabsContext);
10
5
  return useMemo(() => {
11
- if (!tabsInstance) return undefined;
6
+ if (!tabsInstance)
7
+ return void 0;
12
8
  return tabsInstance.getTabInfo().activeTabInfo;
13
9
  }, [tabsInstance]);
14
- };
10
+ };
11
+ export {
12
+ useActiveTab
13
+ };
@@ -1,44 +1,31 @@
1
- import { useEffect, useMemo, useRef } from 'react';
1
+ import { useEffect, useMemo, useRef } from "react";
2
2
  const detectIframe = () => {
3
- if (typeof window === 'undefined') return false;
4
- // URL 上带 ?isIframe(大小写不敏感)即视为 iframe 嵌入
3
+ if (typeof window === "undefined")
4
+ return false;
5
5
  const params = new URLSearchParams(window.location.search);
6
6
  for (const key of params.keys()) {
7
- if (key.toLowerCase() === 'isiframe') return true;
7
+ if (key.toLowerCase() === "isiframe")
8
+ return true;
8
9
  }
9
10
  return false;
10
11
  };
11
- const stripSlashes = s => s.replace(/^\/+|\/+$/g, '');
12
-
13
- /**
14
- * iframe 嵌入模式 hook
15
- * - 通过 URL query `?isIframe`(大小写不敏感)判定是否处于 iframe 嵌入场景
16
- * - 命中时按 routes 静态路径匹配 window.location.pathname,调用 addTab
17
- * - query string 自动作为 extra 透传给业务组件
18
- * - 暴露 pure 标志供外部 layout 决定渲染范围
19
- */
20
- export const useIframeRoute = options => {
21
- const {
22
- config,
23
- addTab
24
- } = options;
12
+ const stripSlashes = (s) => s.replace(/^\/+|\/+$/g, "");
13
+ const useIframeRoute = (options) => {
14
+ const { config, addTab } = options;
25
15
  const isIframe = useMemo(detectIframe, []);
26
- // pure 仅在显式配置 iframe 时才考虑;非 iframe 嵌入(URL 无 ?isIframe)始终为 false
27
16
  const pure = isIframe && config != null && config.pure !== false;
28
-
29
- // 用 ref 持有最新的 addTab/config,避免依赖变化触发副作用重跑
30
17
  const addTabRef = useRef(addTab);
31
18
  addTabRef.current = addTab;
32
19
  const configRef = useRef(config);
33
20
  configRef.current = config;
34
21
  useEffect(() => {
35
- if (!isIframe) return;
22
+ var _a;
23
+ if (!isIframe)
24
+ return;
36
25
  const cfg = configRef.current;
37
- if (!cfg?.routes?.length) return;
38
- const {
39
- pathname,
40
- search
41
- } = window.location;
26
+ if (!((_a = cfg == null ? void 0 : cfg.routes) == null ? void 0 : _a.length))
27
+ return;
28
+ const { pathname, search } = window.location;
42
29
  const searchParams = {};
43
30
  new URLSearchParams(search).forEach((value, key) => {
44
31
  searchParams[key] = value;
@@ -56,8 +43,8 @@ export const useIframeRoute = options => {
56
43
  }
57
44
  }
58
45
  }, [isIframe]);
59
- return {
60
- isIframe,
61
- pure
62
- };
63
- };
46
+ return { isIframe, pure };
47
+ };
48
+ export {
49
+ useIframeRoute
50
+ };
@@ -1,26 +1,12 @@
1
- import { useContext } from 'react';
1
+ import { useContext } from "react";
2
2
  import { TabsContext } from "../components/TabsContext";
3
-
4
- /**
5
- * @description 获取 ProLayout 标签页实例的 Hook(类似 Form.useForm)
6
- * @returns [ProLayoutTabsInstance] 标签页实例
7
- * @example
8
- * ```tsx
9
- * // 在 ProLayout children 中使用
10
- * const [layoutTabs] = useProLayoutTabs();
11
- *
12
- * // 使用实例方法
13
- * layoutTabs.addTab({
14
- * code: 'PolicyInput',
15
- * name: '投保单录入',
16
- * extra: { customData: '自定义数据' }
17
- * });
18
- * ```
19
- */
20
- export function useProLayoutTabs() {
3
+ function useProLayoutTabs() {
21
4
  const context = useContext(TabsContext);
22
5
  if (!context) {
23
6
  throw new Error('useProLayoutTabs must be used within ProLayout with mode="tabs"');
24
7
  }
25
8
  return [context];
26
- }
9
+ }
10
+ export {
11
+ useProLayoutTabs
12
+ };