@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,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 ProTooltip from "../../../../ProTooltip";
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,63 +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(ProTooltip, {
74
- text: displayTitle,
75
- title: tabTitle,
76
- line: 1,
77
- placement: "top",
78
- scrollFollowParent: false
79
- }) : tabTitle
80
- }), tab.closable && /*#__PURE__*/_jsx("span", {
81
- className: "pro-layout-tab-close",
82
- onClick: handleCloseClick,
83
- "data-testid": `tab-close-${tab.id}`,
84
- children: /*#__PURE__*/_jsx(CloseOutlined, {})
85
- })]
86
- })
87
- })
88
- });
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
89
80
  };
90
- 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
+ };