react-public-components 1.2.3 → 1.2.5

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 (238) hide show
  1. package/README.md +5 -2
  2. package/dist/AnnouncementBar/index.cjs +3 -2
  3. package/dist/AnnouncementBar/index.css +102 -11
  4. package/dist/AnnouncementBar/index.css.map +1 -1
  5. package/dist/AnnouncementBar/index.d.ts +22 -3
  6. package/dist/AnnouncementBar/index.js +2 -1
  7. package/dist/AudioPlayer/index.cjs +3 -3
  8. package/dist/AudioPlayer/index.js +2 -2
  9. package/dist/CeilingBox/index.cjs +9 -0
  10. package/dist/CeilingBox/index.cjs.map +1 -0
  11. package/dist/CeilingBox/index.css +25 -0
  12. package/dist/CeilingBox/index.css.map +1 -0
  13. package/dist/CeilingBox/index.d.ts +28 -0
  14. package/dist/CeilingBox/index.js +3 -0
  15. package/dist/CeilingBox/index.js.map +1 -0
  16. package/dist/CodeSnippet/index.cjs +3 -2
  17. package/dist/CodeSnippet/index.css +157 -0
  18. package/dist/CodeSnippet/index.css.map +1 -1
  19. package/dist/CodeSnippet/index.d.ts +40 -4
  20. package/dist/CodeSnippet/index.js +2 -1
  21. package/dist/CodeSnippet/sandbox.d.ts +26 -0
  22. package/dist/CollapseBox/index.cjs +3 -3
  23. package/dist/CollapseBox/index.js +2 -2
  24. package/dist/ColorPicker/index.cjs +5 -5
  25. package/dist/ColorPicker/index.js +2 -2
  26. package/dist/ContextMenu/index.cjs +3 -3
  27. package/dist/ContextMenu/index.js +2 -2
  28. package/dist/CopyButton/index.cjs +3 -3
  29. package/dist/CopyButton/index.js +2 -2
  30. package/dist/CronPicker/index.cjs +4 -4
  31. package/dist/CronPicker/index.js +3 -3
  32. package/dist/DebounceSelect/index.cjs +3 -3
  33. package/dist/DebounceSelect/index.js +2 -2
  34. package/dist/DisabledBox/index.cjs +3 -3
  35. package/dist/DisabledBox/index.js +2 -2
  36. package/dist/DragSortList/index.cjs +3 -2
  37. package/dist/DragSortList/index.css +82 -13
  38. package/dist/DragSortList/index.css.map +1 -1
  39. package/dist/DragSortList/index.d.ts +8 -2
  40. package/dist/DragSortList/index.js +2 -1
  41. package/dist/FilePreviewer/index.cjs +4 -4
  42. package/dist/FilePreviewer/index.js +2 -2
  43. package/dist/Fullscreen/index.cjs +3 -3
  44. package/dist/Fullscreen/index.js +2 -2
  45. package/dist/GuidedTour/index.cjs +3 -3
  46. package/dist/GuidedTour/index.js +2 -2
  47. package/dist/ImageCropper/index.cjs +3 -3
  48. package/dist/ImageCropper/index.js +2 -2
  49. package/dist/InfiniteScrollList/index.cjs +3 -3
  50. package/dist/InfiniteScrollList/index.js +2 -2
  51. package/dist/JsonEditor/index.cjs +4 -4
  52. package/dist/JsonEditor/index.js +3 -3
  53. package/dist/KeyValEditor/index.cjs +3 -3
  54. package/dist/KeyValEditor/index.js +2 -2
  55. package/dist/LazyLoadBox/index.cjs +18 -0
  56. package/dist/LazyLoadBox/index.cjs.map +1 -0
  57. package/dist/LazyLoadBox/index.css +57 -0
  58. package/dist/LazyLoadBox/index.css.map +1 -0
  59. package/dist/LazyLoadBox/index.d.ts +104 -0
  60. package/dist/LazyLoadBox/index.js +3 -0
  61. package/dist/LazyLoadBox/index.js.map +1 -0
  62. package/dist/PasswordStrength/index.cjs +4 -4
  63. package/dist/PasswordStrength/index.js +2 -2
  64. package/dist/PdfViewer/index.cjs +3 -3
  65. package/dist/PdfViewer/index.js +2 -2
  66. package/dist/PeriodSelect/index.cjs +22 -0
  67. package/dist/PeriodSelect/index.cjs.map +1 -0
  68. package/dist/PeriodSelect/index.css +88 -0
  69. package/dist/PeriodSelect/index.css.map +1 -0
  70. package/dist/PeriodSelect/index.d.ts +36 -0
  71. package/dist/PeriodSelect/index.js +3 -0
  72. package/dist/PeriodSelect/index.js.map +1 -0
  73. package/dist/QrCodeCard/index.cjs +3 -3
  74. package/dist/QrCodeCard/index.css +122 -32
  75. package/dist/QrCodeCard/index.css.map +1 -1
  76. package/dist/QrCodeCard/index.d.ts +10 -2
  77. package/dist/QrCodeCard/index.js +2 -2
  78. package/dist/SensitiveMask/index.cjs +5 -5
  79. package/dist/SensitiveMask/index.js +3 -3
  80. package/dist/Splitter/index.cjs +3 -3
  81. package/dist/Splitter/index.js +2 -2
  82. package/dist/TagInput/index.cjs +3 -3
  83. package/dist/TagInput/index.js +2 -2
  84. package/dist/TextEllipsis/index.cjs +4 -4
  85. package/dist/TextEllipsis/index.js +3 -3
  86. package/dist/TreeTransfer/index.cjs +3 -3
  87. package/dist/TreeTransfer/index.js +2 -2
  88. package/dist/VideoPlayer/index.cjs +3 -3
  89. package/dist/VideoPlayer/index.js +2 -2
  90. package/dist/{chunk-GV2RRQ2S.cjs → chunk-2EIAWXFA.cjs} +5 -5
  91. package/dist/{chunk-GV2RRQ2S.cjs.map → chunk-2EIAWXFA.cjs.map} +1 -1
  92. package/dist/{chunk-ISUXPTLV.js → chunk-2IDVNTKR.js} +93 -3
  93. package/dist/chunk-2IDVNTKR.js.map +1 -0
  94. package/dist/{chunk-6FVAQECF.js → chunk-2INP6NM4.js} +3 -3
  95. package/dist/{chunk-6FVAQECF.js.map → chunk-2INP6NM4.js.map} +1 -1
  96. package/dist/chunk-4KMVABTM.js +419 -0
  97. package/dist/chunk-4KMVABTM.js.map +1 -0
  98. package/dist/{chunk-VS2YVJOB.cjs → chunk-4TMBGQQE.cjs} +5 -5
  99. package/dist/{chunk-VS2YVJOB.cjs.map → chunk-4TMBGQQE.cjs.map} +1 -1
  100. package/dist/{chunk-PJB7ADK6.js → chunk-56VELHCH.js} +3 -3
  101. package/dist/{chunk-PJB7ADK6.js.map → chunk-56VELHCH.js.map} +1 -1
  102. package/dist/chunk-5Q7THN6M.js +115 -0
  103. package/dist/chunk-5Q7THN6M.js.map +1 -0
  104. package/dist/{chunk-4BDO5TJH.cjs → chunk-77ANKL4K.cjs} +8 -8
  105. package/dist/{chunk-4BDO5TJH.cjs.map → chunk-77ANKL4K.cjs.map} +1 -1
  106. package/dist/{chunk-OCN7L2ID.cjs → chunk-7ZBA4NHH.cjs} +4 -4
  107. package/dist/{chunk-OCN7L2ID.cjs.map → chunk-7ZBA4NHH.cjs.map} +1 -1
  108. package/dist/{chunk-MY4M7HVW.cjs → chunk-AHTRLNYK.cjs} +5 -5
  109. package/dist/{chunk-MY4M7HVW.cjs.map → chunk-AHTRLNYK.cjs.map} +1 -1
  110. package/dist/{chunk-WEOMKZC6.js → chunk-ANTFNDH4.js} +3 -3
  111. package/dist/{chunk-WEOMKZC6.js.map → chunk-ANTFNDH4.js.map} +1 -1
  112. package/dist/{chunk-EGZSSZBX.js → chunk-AXPVN2OO.js} +3 -3
  113. package/dist/{chunk-EGZSSZBX.js.map → chunk-AXPVN2OO.js.map} +1 -1
  114. package/dist/{chunk-LLWK5VKA.js → chunk-CURWX7OY.js} +3 -3
  115. package/dist/{chunk-LLWK5VKA.js.map → chunk-CURWX7OY.js.map} +1 -1
  116. package/dist/{chunk-WZRUBHS3.cjs → chunk-ED3ZG2VX.cjs} +5 -5
  117. package/dist/{chunk-WZRUBHS3.cjs.map → chunk-ED3ZG2VX.cjs.map} +1 -1
  118. package/dist/{chunk-BZXMWKD2.js → chunk-EDNBPLUS.js} +3 -3
  119. package/dist/{chunk-BZXMWKD2.js.map → chunk-EDNBPLUS.js.map} +1 -1
  120. package/dist/{chunk-MC3NERDH.js → chunk-EJYTTSW6.js} +3 -3
  121. package/dist/{chunk-MC3NERDH.js.map → chunk-EJYTTSW6.js.map} +1 -1
  122. package/dist/{chunk-3UNZXPOT.cjs → chunk-EKDJPOA3.cjs} +5 -5
  123. package/dist/{chunk-3UNZXPOT.cjs.map → chunk-EKDJPOA3.cjs.map} +1 -1
  124. package/dist/{chunk-XWXFENGT.js → chunk-EMT4NUI5.js} +3 -3
  125. package/dist/{chunk-XWXFENGT.js.map → chunk-EMT4NUI5.js.map} +1 -1
  126. package/dist/{chunk-HFPWBZID.js → chunk-ETFLLRTO.js} +3 -3
  127. package/dist/{chunk-HFPWBZID.js.map → chunk-ETFLLRTO.js.map} +1 -1
  128. package/dist/chunk-FZH5FL7X.cjs +167 -0
  129. package/dist/chunk-FZH5FL7X.cjs.map +1 -0
  130. package/dist/{chunk-6UKUAYN3.cjs → chunk-HKALWFWZ.cjs} +5 -5
  131. package/dist/{chunk-6UKUAYN3.cjs.map → chunk-HKALWFWZ.cjs.map} +1 -1
  132. package/dist/{chunk-IBOCJ2ZS.js → chunk-IF4XAUV3.js} +3 -3
  133. package/dist/{chunk-IBOCJ2ZS.js.map → chunk-IF4XAUV3.js.map} +1 -1
  134. package/dist/{chunk-MNY5P5EG.cjs → chunk-IPS7PC3M.cjs} +13 -13
  135. package/dist/{chunk-MNY5P5EG.cjs.map → chunk-IPS7PC3M.cjs.map} +1 -1
  136. package/dist/{chunk-V4O325BX.cjs → chunk-JHVPDKBM.cjs} +6 -6
  137. package/dist/{chunk-V4O325BX.cjs.map → chunk-JHVPDKBM.cjs.map} +1 -1
  138. package/dist/{chunk-6IXVUD2M.js → chunk-JNA5AQ2K.js} +3 -3
  139. package/dist/{chunk-6IXVUD2M.js.map → chunk-JNA5AQ2K.js.map} +1 -1
  140. package/dist/{chunk-NJIYP6SC.cjs → chunk-LFGBZXQH.cjs} +4 -4
  141. package/dist/{chunk-NJIYP6SC.cjs.map → chunk-LFGBZXQH.cjs.map} +1 -1
  142. package/dist/{chunk-ZLWY7QS2.cjs → chunk-M3GQ7RCV.cjs} +4 -4
  143. package/dist/{chunk-ZLWY7QS2.cjs.map → chunk-M3GQ7RCV.cjs.map} +1 -1
  144. package/dist/{chunk-AFR7V4A4.js → chunk-M4FZJALR.js} +4 -4
  145. package/dist/{chunk-AFR7V4A4.js.map → chunk-M4FZJALR.js.map} +1 -1
  146. package/dist/{chunk-CT66HLZ5.js → chunk-MQJBUHDB.js} +3 -3
  147. package/dist/{chunk-CT66HLZ5.js.map → chunk-MQJBUHDB.js.map} +1 -1
  148. package/dist/chunk-O4EABET3.js +89 -0
  149. package/dist/chunk-O4EABET3.js.map +1 -0
  150. package/dist/{chunk-V7IUSCQS.js → chunk-OLLVIQPL.js} +3 -3
  151. package/dist/{chunk-V7IUSCQS.js.map → chunk-OLLVIQPL.js.map} +1 -1
  152. package/dist/{chunk-2DIU347W.cjs → chunk-OONBZRPV.cjs} +4 -4
  153. package/dist/{chunk-2DIU347W.cjs.map → chunk-OONBZRPV.cjs.map} +1 -1
  154. package/dist/{chunk-56TD4LDC.js → chunk-P5CS7V4W.js} +3 -3
  155. package/dist/{chunk-56TD4LDC.js.map → chunk-P5CS7V4W.js.map} +1 -1
  156. package/dist/{chunk-HUXPCMNP.js → chunk-PTFKE67K.js} +3 -3
  157. package/dist/{chunk-HUXPCMNP.js.map → chunk-PTFKE67K.js.map} +1 -1
  158. package/dist/{chunk-PUTAVQJZ.js → chunk-PUMVD7CP.js} +3 -3
  159. package/dist/{chunk-PUTAVQJZ.js.map → chunk-PUMVD7CP.js.map} +1 -1
  160. package/dist/{chunk-KXZM322K.cjs → chunk-PYCSRJSF.cjs} +7 -7
  161. package/dist/{chunk-KXZM322K.cjs.map → chunk-PYCSRJSF.cjs.map} +1 -1
  162. package/dist/{chunk-PUJJHD22.js → chunk-Q7OVUH5K.js} +3 -3
  163. package/dist/{chunk-PUJJHD22.js.map → chunk-Q7OVUH5K.js.map} +1 -1
  164. package/dist/{chunk-2UCTE6YN.cjs → chunk-QP3RKA4J.cjs} +4 -4
  165. package/dist/{chunk-2UCTE6YN.cjs.map → chunk-QP3RKA4J.cjs.map} +1 -1
  166. package/dist/{chunk-OKCQZO5E.js → chunk-QRZ2GVVJ.js} +3 -3
  167. package/dist/{chunk-OKCQZO5E.js.map → chunk-QRZ2GVVJ.js.map} +1 -1
  168. package/dist/chunk-QU33CY3M.cjs +83 -0
  169. package/dist/chunk-QU33CY3M.cjs.map +1 -0
  170. package/dist/{chunk-MBOWSS4B.cjs → chunk-R4V3EJVP.cjs} +98 -2
  171. package/dist/chunk-R4V3EJVP.cjs.map +1 -0
  172. package/dist/chunk-RFTYEXKU.js +79 -0
  173. package/dist/chunk-RFTYEXKU.js.map +1 -0
  174. package/dist/{chunk-4OXVTRYV.cjs → chunk-RN5WU7KA.cjs} +7 -7
  175. package/dist/{chunk-4OXVTRYV.cjs.map → chunk-RN5WU7KA.cjs.map} +1 -1
  176. package/dist/{chunk-WWXBH57R.cjs → chunk-TNZ2OLGW.cjs} +4 -4
  177. package/dist/{chunk-WWXBH57R.cjs.map → chunk-TNZ2OLGW.cjs.map} +1 -1
  178. package/dist/chunk-TUDLE3RT.cjs +429 -0
  179. package/dist/chunk-TUDLE3RT.cjs.map +1 -0
  180. package/dist/{chunk-B7NN6SZD.cjs → chunk-TUEVILTA.cjs} +5 -5
  181. package/dist/{chunk-B7NN6SZD.cjs.map → chunk-TUEVILTA.cjs.map} +1 -1
  182. package/dist/{chunk-ZUW3XLZQ.cjs → chunk-U2EBNBGK.cjs} +4 -4
  183. package/dist/{chunk-ZUW3XLZQ.cjs.map → chunk-U2EBNBGK.cjs.map} +1 -1
  184. package/dist/{chunk-JAW7Q2YC.cjs → chunk-UAUP5TJK.cjs} +5 -5
  185. package/dist/{chunk-JAW7Q2YC.cjs.map → chunk-UAUP5TJK.cjs.map} +1 -1
  186. package/dist/chunk-UIU6VCEQ.cjs +117 -0
  187. package/dist/chunk-UIU6VCEQ.cjs.map +1 -0
  188. package/dist/{chunk-2MDYHFLH.cjs → chunk-UZB7GOEI.cjs} +4 -4
  189. package/dist/{chunk-2MDYHFLH.cjs.map → chunk-UZB7GOEI.cjs.map} +1 -1
  190. package/dist/chunk-V55FEQYU.cjs +196 -0
  191. package/dist/chunk-V55FEQYU.cjs.map +1 -0
  192. package/dist/{chunk-ZNFW6L3E.cjs → chunk-VJOO2DG3.cjs} +8 -8
  193. package/dist/{chunk-ZNFW6L3E.cjs.map → chunk-VJOO2DG3.cjs.map} +1 -1
  194. package/dist/chunk-VYPIRVL4.js +193 -0
  195. package/dist/chunk-VYPIRVL4.js.map +1 -0
  196. package/dist/{chunk-JECYRODB.js → chunk-W5JA3YTT.js} +3 -3
  197. package/dist/{chunk-JECYRODB.js.map → chunk-W5JA3YTT.js.map} +1 -1
  198. package/dist/{chunk-QZZGBUW4.js → chunk-WKF4C6TJ.js} +3 -3
  199. package/dist/{chunk-QZZGBUW4.js.map → chunk-WKF4C6TJ.js.map} +1 -1
  200. package/dist/{chunk-64LBDDZU.js → chunk-XLOGMDAQ.js} +3 -3
  201. package/dist/{chunk-64LBDDZU.js.map → chunk-XLOGMDAQ.js.map} +1 -1
  202. package/dist/chunk-XUAHWX6B.js +153 -0
  203. package/dist/chunk-XUAHWX6B.js.map +1 -0
  204. package/dist/chunk-Y54KVULF.js +161 -0
  205. package/dist/chunk-Y54KVULF.js.map +1 -0
  206. package/dist/{chunk-NUTVJGVT.cjs → chunk-YP4XTMK3.cjs} +4 -4
  207. package/dist/{chunk-NUTVJGVT.cjs.map → chunk-YP4XTMK3.cjs.map} +1 -1
  208. package/dist/{chunk-MGUNFP6P.js → chunk-ZCBT56AG.js} +3 -3
  209. package/dist/{chunk-MGUNFP6P.js.map → chunk-ZCBT56AG.js.map} +1 -1
  210. package/dist/chunk-ZWKUHYTV.cjs +155 -0
  211. package/dist/chunk-ZWKUHYTV.cjs.map +1 -0
  212. package/dist/chunk-ZXMFWVE4.cjs +91 -0
  213. package/dist/chunk-ZXMFWVE4.cjs.map +1 -0
  214. package/dist/index.cjs +139 -104
  215. package/dist/index.css +633 -56
  216. package/dist/index.css.map +1 -1
  217. package/dist/index.js +40 -37
  218. package/dist/src/icons.d.ts +18 -0
  219. package/dist/src/index.d.ts +10 -2
  220. package/package.json +1 -1
  221. package/dist/chunk-5VSEUDVY.js +0 -45
  222. package/dist/chunk-5VSEUDVY.js.map +0 -1
  223. package/dist/chunk-5YQVSOHK.js +0 -44
  224. package/dist/chunk-5YQVSOHK.js.map +0 -1
  225. package/dist/chunk-B3HZIYQQ.cjs +0 -46
  226. package/dist/chunk-B3HZIYQQ.cjs.map +0 -1
  227. package/dist/chunk-EOGYWPX7.cjs +0 -47
  228. package/dist/chunk-EOGYWPX7.cjs.map +0 -1
  229. package/dist/chunk-EQ7S5SYM.js +0 -67
  230. package/dist/chunk-EQ7S5SYM.js.map +0 -1
  231. package/dist/chunk-FYFL4PFD.cjs +0 -69
  232. package/dist/chunk-FYFL4PFD.cjs.map +0 -1
  233. package/dist/chunk-ISUXPTLV.js.map +0 -1
  234. package/dist/chunk-JEDW76LI.cjs +0 -107
  235. package/dist/chunk-JEDW76LI.cjs.map +0 -1
  236. package/dist/chunk-MBOWSS4B.cjs.map +0 -1
  237. package/dist/chunk-XOMV26WS.js +0 -105
  238. package/dist/chunk-XOMV26WS.js.map +0 -1
@@ -0,0 +1,167 @@
1
+ 'use strict';
2
+
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
+ var react = require('react');
5
+ var ReactDOM = require('react-dom');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
11
+
12
+ function arrayMove(array, from, to) {
13
+ const next = [...array];
14
+ const [item] = next.splice(from, 1);
15
+ next.splice(to, 0, item);
16
+ return next;
17
+ }
18
+ function DragSortList({
19
+ items,
20
+ onReorder,
21
+ keyExtractor,
22
+ renderItem,
23
+ handleOnly = false,
24
+ showHandle = true,
25
+ disabled = false,
26
+ className = "",
27
+ style
28
+ }) {
29
+ const containerRef = react.useRef(null);
30
+ const [dragIndex, setDragIndex] = react.useState(null);
31
+ const [hoverIndex, setHoverIndex] = react.useState(null);
32
+ const [pointerCoord, setPointerCoord] = react.useState(null);
33
+ const [grabOffset, setGrabOffset] = react.useState({ x: 0, y: 0 });
34
+ const [dragItemRect, setDragItemRect] = react.useState(null);
35
+ const dragIndexRef = react.useRef(null);
36
+ const hoverIndexRef = react.useRef(null);
37
+ const itemsRef = react.useRef(items);
38
+ dragIndexRef.current = dragIndex;
39
+ hoverIndexRef.current = hoverIndex;
40
+ itemsRef.current = items;
41
+ const handlePointerDown = (e, index, fromHandle) => {
42
+ if (disabled || e.button !== 0) return;
43
+ if (handleOnly && !fromHandle) return;
44
+ const targetItemEl = e.currentTarget.closest(".rpc_drag_sort_list_item");
45
+ if (!targetItemEl) return;
46
+ const rect = targetItemEl.getBoundingClientRect();
47
+ const offsetX = e.clientX - rect.left;
48
+ const offsetY = e.clientY - rect.top;
49
+ setGrabOffset({ x: offsetX, y: offsetY });
50
+ setDragItemRect({ width: rect.width, height: rect.height });
51
+ setPointerCoord({ x: e.clientX, y: e.clientY });
52
+ setDragIndex(index);
53
+ setHoverIndex(index);
54
+ const handlePointerMove = (moveEvent) => {
55
+ var _a;
56
+ setPointerCoord({ x: moveEvent.clientX, y: moveEvent.clientY });
57
+ if (!containerRef.current) return;
58
+ const itemElements = Array.from(
59
+ containerRef.current.querySelectorAll(".rpc_drag_sort_list_item")
60
+ );
61
+ if (itemElements.length === 0) return;
62
+ const pointerY = moveEvent.clientY;
63
+ let newHoverIndex = (_a = dragIndexRef.current) != null ? _a : 0;
64
+ for (let i = 0; i < itemElements.length; i++) {
65
+ const elRect = itemElements[i].getBoundingClientRect();
66
+ if (pointerY >= elRect.top && pointerY <= elRect.bottom) {
67
+ newHoverIndex = i;
68
+ break;
69
+ } else if (pointerY < itemElements[0].getBoundingClientRect().top) {
70
+ newHoverIndex = 0;
71
+ break;
72
+ } else if (pointerY > itemElements[itemElements.length - 1].getBoundingClientRect().bottom) {
73
+ newHoverIndex = itemElements.length - 1;
74
+ break;
75
+ }
76
+ }
77
+ if (newHoverIndex !== hoverIndexRef.current) {
78
+ setHoverIndex(newHoverIndex);
79
+ }
80
+ };
81
+ const handlePointerUp = () => {
82
+ window.removeEventListener("pointermove", handlePointerMove);
83
+ window.removeEventListener("pointerup", handlePointerUp);
84
+ const from = dragIndexRef.current;
85
+ const to = hoverIndexRef.current;
86
+ const currentList = itemsRef.current;
87
+ if (from !== null && to !== null && from !== to && from >= 0 && to >= 0 && from < currentList.length && to < currentList.length) {
88
+ const reorderedList = arrayMove(currentList, from, to);
89
+ onReorder(reorderedList, from, to);
90
+ }
91
+ setDragIndex(null);
92
+ setHoverIndex(null);
93
+ setPointerCoord(null);
94
+ setDragItemRect(null);
95
+ };
96
+ window.addEventListener("pointermove", handlePointerMove);
97
+ window.addEventListener("pointerup", handlePointerUp);
98
+ };
99
+ const displayItems = dragIndex !== null && hoverIndex !== null && dragIndex !== hoverIndex ? arrayMove(items, dragIndex, hoverIndex) : items;
100
+ const draggedItemData = dragIndex !== null ? items[dragIndex] : null;
101
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
+ /* @__PURE__ */ jsxRuntime.jsx(
103
+ "div",
104
+ {
105
+ ref: containerRef,
106
+ className: `rpc_drag_sort_list ${disabled ? "rpc_drag_sort_list_disabled" : ""} ${className}`,
107
+ style,
108
+ children: displayItems.map((item, idx) => {
109
+ const key = keyExtractor(item, idx);
110
+ const isCurrentPlaceholder = dragIndex !== null && hoverIndex === idx;
111
+ return /* @__PURE__ */ jsxRuntime.jsx(
112
+ "div",
113
+ {
114
+ onPointerDown: (e) => handlePointerDown(e, idx, false),
115
+ className: `rpc_drag_sort_list_item ${isCurrentPlaceholder ? "rpc_drag_sort_list_item_placeholder" : ""}`,
116
+ style: {
117
+ height: isCurrentPlaceholder && dragItemRect ? dragItemRect.height : void 0
118
+ },
119
+ children: isCurrentPlaceholder ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_drag_sort_list_placeholder_inner", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_drag_sort_list_placeholder_line" }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
120
+ showHandle && /* @__PURE__ */ jsxRuntime.jsx(
121
+ "span",
122
+ {
123
+ className: "rpc_drag_sort_list_handle",
124
+ onPointerDown: (e) => {
125
+ if (handleOnly) {
126
+ e.stopPropagation();
127
+ handlePointerDown(e, idx, true);
128
+ }
129
+ },
130
+ title: disabled ? void 0 : "\u6309\u4F4F\u62D6\u52A8\u4EE5\u91CD\u6392\u5E8F",
131
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.HolderOutlined, {})
132
+ }
133
+ ),
134
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_drag_sort_list_content", children: renderItem(item, idx, false) })
135
+ ] })
136
+ },
137
+ key
138
+ );
139
+ })
140
+ }
141
+ ),
142
+ dragIndex !== null && pointerCoord && dragItemRect && draggedItemData && typeof document !== "undefined" && ReactDOM__default.default.createPortal(
143
+ /* @__PURE__ */ jsxRuntime.jsxs(
144
+ "div",
145
+ {
146
+ className: "rpc_drag_sort_list_floating_ghost",
147
+ style: {
148
+ left: pointerCoord.x - grabOffset.x,
149
+ top: pointerCoord.y - grabOffset.y,
150
+ width: dragItemRect.width,
151
+ height: dragItemRect.height
152
+ },
153
+ children: [
154
+ showHandle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_drag_sort_list_handle", style: { cursor: "grabbing", color: "#1677ff" }, children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.HolderOutlined, {}) }),
155
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_drag_sort_list_content", style: { flex: 1 }, children: renderItem(draggedItemData, dragIndex, true) })
156
+ ]
157
+ }
158
+ ),
159
+ document.body
160
+ )
161
+ ] });
162
+ }
163
+ var DragSortList_default = DragSortList;
164
+
165
+ exports.DragSortList_default = DragSortList_default;
166
+ //# sourceMappingURL=chunk-FZH5FL7X.cjs.map
167
+ //# sourceMappingURL=chunk-FZH5FL7X.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../DragSortList/index.tsx"],"names":["useRef","useState","jsxs","Fragment","jsx","HolderOutlined","ReactDOM"],"mappings":"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","file":"chunk-FZH5FL7X.cjs","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { HolderOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface DragSortListProps<T> {\n\t/** 数据列表 */\n\titems: T[];\n\t/** 拖拽排序完成后的新列表回调 */\n\tonReorder: (newItems: T[], fromIndex: number, toIndex: number) => void;\n\t/** 提取唯一 Key */\n\tkeyExtractor: (item: T, index: number) => string | number;\n\t/** 自定义渲染单个列表项内容 */\n\trenderItem: (item: T, index: number, isDragging: boolean) => ReactNode;\n\t/** 是否仅允许通过左侧把手图标拖动,默认为 false */\n\thandleOnly?: boolean;\n\t/** 是否展示左侧拖拽把手图标,默认为 true */\n\tshowHandle?: boolean;\n\t/** 是否禁用拖拽排序,默认为 false */\n\tdisabled?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nfunction arrayMove<T>(array: T[], from: number, to: number): T[] {\n\tconst next = [...array];\n\tconst [item] = next.splice(from, 1);\n\tnext.splice(to, 0, item);\n\treturn next;\n}\n\nfunction DragSortList<T>({\n\titems,\n\tonReorder,\n\tkeyExtractor,\n\trenderItem,\n\thandleOnly = false,\n\tshowHandle = true,\n\tdisabled = false,\n\tclassName = '',\n\tstyle,\n}: DragSortListProps<T>) {\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\n\t// 拖拽核心状态\n\tconst [dragIndex, setDragIndex] = useState<number | null>(null);\n\tconst [hoverIndex, setHoverIndex] = useState<number | null>(null);\n\tconst [pointerCoord, setPointerCoord] = useState<{ x: number; y: number } | null>(null);\n\tconst [grabOffset, setGrabOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\tconst [dragItemRect, setDragItemRect] = useState<{ width: number; height: number } | null>(null);\n\n\tconst dragIndexRef = useRef<number | null>(null);\n\tconst hoverIndexRef = useRef<number | null>(null);\n\tconst itemsRef = useRef<T[]>(items);\n\n\tdragIndexRef.current = dragIndex;\n\thoverIndexRef.current = hoverIndex;\n\titemsRef.current = items;\n\n\t// 处理鼠标按下发起拖拽\n\tconst handlePointerDown = (e: React.PointerEvent<HTMLElement>, index: number, fromHandle: boolean) => {\n\t\tif (disabled || e.button !== 0) return;\n\t\tif (handleOnly && !fromHandle) return;\n\n\t\tconst targetItemEl = e.currentTarget.closest('.rpc_drag_sort_list_item') as HTMLElement;\n\t\tif (!targetItemEl) return;\n\n\t\tconst rect = targetItemEl.getBoundingClientRect();\n\t\tconst offsetX = e.clientX - rect.left;\n\t\tconst offsetY = e.clientY - rect.top;\n\n\t\tsetGrabOffset({ x: offsetX, y: offsetY });\n\t\tsetDragItemRect({ width: rect.width, height: rect.height });\n\t\tsetPointerCoord({ x: e.clientX, y: e.clientY });\n\t\tsetDragIndex(index);\n\t\tsetHoverIndex(index);\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tsetPointerCoord({ x: moveEvent.clientX, y: moveEvent.clientY });\n\n\t\t\tif (!containerRef.current) return;\n\t\t\tconst itemElements = Array.from(\n\t\t\t\tcontainerRef.current.querySelectorAll('.rpc_drag_sort_list_item'),\n\t\t\t) as HTMLElement[];\n\n\t\t\tif (itemElements.length === 0) return;\n\n\t\t\tconst pointerY = moveEvent.clientY;\n\t\t\tlet newHoverIndex = dragIndexRef.current ?? 0;\n\n\t\t\t// 精确检测鼠标当前所处的列表项插槽\n\t\t\tfor (let i = 0; i < itemElements.length; i++) {\n\t\t\t\tconst elRect = itemElements[i].getBoundingClientRect();\n\t\t\t\tif (pointerY >= elRect.top && pointerY <= elRect.bottom) {\n\t\t\t\t\tnewHoverIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (pointerY < itemElements[0].getBoundingClientRect().top) {\n\t\t\t\t\tnewHoverIndex = 0;\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (pointerY > itemElements[itemElements.length - 1].getBoundingClientRect().bottom) {\n\t\t\t\t\tnewHoverIndex = itemElements.length - 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHoverIndex !== hoverIndexRef.current) {\n\t\t\t\tsetHoverIndex(newHoverIndex);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\twindow.removeEventListener('pointermove', handlePointerMove);\n\t\t\twindow.removeEventListener('pointerup', handlePointerUp);\n\n\t\t\tconst from = dragIndexRef.current;\n\t\t\tconst to = hoverIndexRef.current;\n\t\t\tconst currentList = itemsRef.current;\n\n\t\t\tif (from !== null && to !== null && from !== to && from >= 0 && to >= 0 && from < currentList.length && to < currentList.length) {\n\t\t\t\tconst reorderedList = arrayMove(currentList, from, to);\n\t\t\t\tonReorder(reorderedList, from, to);\n\t\t\t}\n\n\t\t\tsetDragIndex(null);\n\t\t\tsetHoverIndex(null);\n\t\t\tsetPointerCoord(null);\n\t\t\tsetDragItemRect(null);\n\t\t};\n\n\t\twindow.addEventListener('pointermove', handlePointerMove);\n\t\twindow.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\t// 动态计算实时预览重排后的列表\n\tconst displayItems =\n\t\tdragIndex !== null && hoverIndex !== null && dragIndex !== hoverIndex\n\t\t\t? arrayMove(items, dragIndex, hoverIndex)\n\t\t\t: items;\n\n\tconst draggedItemData = dragIndex !== null ? items[dragIndex] : null;\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={`rpc_drag_sort_list ${disabled ? 'rpc_drag_sort_list_disabled' : ''} ${className}`}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t{displayItems.map((item, idx) => {\n\t\t\t\t\tconst key = keyExtractor(item, idx);\n\t\t\t\t\tconst isCurrentPlaceholder = dragIndex !== null && hoverIndex === idx;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\tonPointerDown={(e) => handlePointerDown(e, idx, false)}\n\t\t\t\t\t\t\tclassName={`rpc_drag_sort_list_item ${\n\t\t\t\t\t\t\t\tisCurrentPlaceholder ? 'rpc_drag_sort_list_item_placeholder' : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\theight: isCurrentPlaceholder && dragItemRect ? dragItemRect.height : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* 当作为占位槽展示时,显示虚线卡槽 */}\n\t\t\t\t\t\t\t{isCurrentPlaceholder ? (\n\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_placeholder_inner\">\n\t\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_placeholder_line\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{showHandle && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_handle\"\n\t\t\t\t\t\t\t\t\t\t\tonPointerDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (handleOnly) {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\thandlePointerDown(e, idx, true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttitle={disabled ? undefined : '按住拖动以重排序'}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<HolderOutlined />\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_content\">\n\t\t\t\t\t\t\t\t\t\t{renderItem(item, idx, false)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{/* 浮动随动幽灵卡片(全局悬浮脱离文档流,100% 顺畅跟手,绝对 0 跳动) */}\n\t\t\t{dragIndex !== null && pointerCoord && dragItemRect && draggedItemData && typeof document !== 'undefined' && (\n\t\t\t\tReactDOM.createPortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"rpc_drag_sort_list_floating_ghost\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: pointerCoord.x - grabOffset.x,\n\t\t\t\t\t\t\ttop: pointerCoord.y - grabOffset.y,\n\t\t\t\t\t\t\twidth: dragItemRect.width,\n\t\t\t\t\t\t\theight: dragItemRect.height,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showHandle && (\n\t\t\t\t\t\t\t<span className=\"rpc_drag_sort_list_handle\" style={{ cursor: 'grabbing', color: '#1677ff' }}>\n\t\t\t\t\t\t\t\t<HolderOutlined />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className=\"rpc_drag_sort_list_content\" style={{ flex: 1 }}>\n\t\t\t\t\t\t\t{renderItem(draggedItemData, dragIndex, true)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport default DragSortList;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.cjs');
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
4
  var React = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -327,7 +327,7 @@ var CustomSplitter = (props) => {
327
327
  if (isCollapsed || isNeighborCollapsed) {
328
328
  return null;
329
329
  }
330
- const Icon = resolvedOrientation === "horizontal" ? direction === "start" ? chunkMBOWSS4B_cjs.LeftOutlined : chunkMBOWSS4B_cjs.RightOutlined : direction === "start" ? chunkMBOWSS4B_cjs.UpOutlined : chunkMBOWSS4B_cjs.DownOutlined;
330
+ const Icon = resolvedOrientation === "horizontal" ? direction === "start" ? chunkR4V3EJVP_cjs.LeftOutlined : chunkR4V3EJVP_cjs.RightOutlined : direction === "start" ? chunkR4V3EJVP_cjs.UpOutlined : chunkR4V3EJVP_cjs.DownOutlined;
331
331
  const isHorizontal = resolvedOrientation === "horizontal";
332
332
  const isAlwaysShow = config.showCollapsibleIcon === true;
333
333
  const isHoveredOrDragging = hoveredIndex === draggerIndex || draggingIndex === draggerIndex;
@@ -562,7 +562,7 @@ var CustomSplitter = (props) => {
562
562
  if (!isAllowed || config.showCollapsibleIcon === false) {
563
563
  return null;
564
564
  }
565
- const ExpandIcon = resolvedOrientation === "horizontal" ? isLeftOrTopCollapsed ? chunkMBOWSS4B_cjs.RightOutlined : chunkMBOWSS4B_cjs.LeftOutlined : isLeftOrTopCollapsed ? chunkMBOWSS4B_cjs.DownOutlined : chunkMBOWSS4B_cjs.UpOutlined;
565
+ const ExpandIcon = resolvedOrientation === "horizontal" ? isLeftOrTopCollapsed ? chunkR4V3EJVP_cjs.RightOutlined : chunkR4V3EJVP_cjs.LeftOutlined : isLeftOrTopCollapsed ? chunkR4V3EJVP_cjs.DownOutlined : chunkR4V3EJVP_cjs.UpOutlined;
566
566
  const neighborIndex = isLeftOrTopCollapsed ? index + 1 : index;
567
567
  const isHorizontal = resolvedOrientation === "horizontal";
568
568
  const expandTitle = resolvedOrientation === "horizontal" ? isLeftOrTopCollapsed ? "\u5C55\u5F00\u5DE6\u4FA7\u9762\u677F" : "\u5C55\u5F00\u53F3\u4FA7\u9762\u677F" : isLeftOrTopCollapsed ? "\u5C55\u5F00\u4E0A\u65B9\u9762\u677F" : "\u5C55\u5F00\u4E0B\u65B9\u9762\u677F";
@@ -621,5 +621,5 @@ CustomSplitter.Panel = SplitterPanel;
621
621
  var Splitter_default = CustomSplitter;
622
622
 
623
623
  exports.Splitter_default = Splitter_default;
624
- //# sourceMappingURL=chunk-6UKUAYN3.cjs.map
625
- //# sourceMappingURL=chunk-6UKUAYN3.cjs.map
624
+ //# sourceMappingURL=chunk-HKALWFWZ.cjs.map
625
+ //# sourceMappingURL=chunk-HKALWFWZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../Splitter/index.tsx"],"names":["useRef","useState","useMemo","React","useCallback","useEffect","LeftOutlined","RightOutlined","UpOutlined","DownOutlined","jsx","jsxs"],"mappings":"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","file":"chunk-6UKUAYN3.cjs","sourcesContent":["import { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport type {\n\tCSSProperties,\n\tReactElement,\n\tReactNode,\n\tPointerEvent as ReactPointerEvent,\n} from 'react';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport type SplitterSize = number | `${number}%`;\nexport type SplitterOrientation = 'horizontal' | 'vertical';\n\nexport type SplitterCollapsible =\n\t| boolean\n\t| {\n\t\t\tstart?: boolean;\n\t\t\tend?: boolean;\n\t\t\tshowCollapsibleIcon?: boolean | 'auto';\n\t };\n\n/**\n * Splitter.Panel 子面板组件属性\n */\nexport type SplitterPanelProps = {\n\t/** 面板内容节点 */\n\tchildren?: ReactNode;\n\t/** 面板自定义类名 */\n\tclassName?: string;\n\t/**\n\t * 折叠配置:\n\t * - `boolean`: 是否允许两端折叠\n\t * - `Object`: `{ start?: boolean; end?: boolean; showCollapsibleIcon?: boolean | 'auto' }`\n\t */\n\tcollapsible?: SplitterCollapsible;\n\t/** 面板初始默认尺寸(支持数字 px 或百分比字符串如 '40%') */\n\tdefaultSize?: SplitterSize;\n\t/** 折叠/隐藏时是否销毁面板内容节点(可覆盖 Splitter 根容器上的 destroyOnHidden 属性) */\n\tdestroyOnHidden?: boolean;\n\t/** 面板最大允许尺寸限制 */\n\tmax?: SplitterSize;\n\t/** 面板最小允许尺寸限制 */\n\tmin?: SplitterSize;\n\t/** 是否允许通过分隔条拖拽调整大小(默认 true) */\n\tresizable?: boolean;\n\t/** 面板受控尺寸 */\n\tsize?: SplitterSize;\n\t/** 面板自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n};\n\nexport type SplitterSemanticDOM = 'root' | 'panel' | 'dragger';\n/** 语义化 DOM 结构标识 */\nexport type SemanticDOM = SplitterSemanticDOM;\n\nexport type SplitterStyles =\n\t| Partial<Record<SplitterSemanticDOM, CSSProperties>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, CSSProperties>>);\n\nexport type SplitterClassNames =\n\t| Partial<Record<SplitterSemanticDOM, string>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, string>>);\n\n/**\n * Splitter 根容器组件属性\n */\nexport type SplitterProps = {\n\t/** 面板集合(建议传入 Splitter.Panel) */\n\tchildren?: ReactNode;\n\t/** 容器根节点自定义类名 */\n\tclassName?: string;\n\t/** 用于自定义组件内部各语义化结构(root、panel、dragger)的 class,支持对象或函数 */\n\tclassNames?: SplitterClassNames;\n\t/** 折叠/隐藏时是否销毁面板内容节点(默认 false,保留组件状态) */\n\tdestroyOnHidden?: boolean;\n\t/** 拖拽分隔条的宽度/高度(单位 px,默认 4) */\n\tdraggerSize?: number;\n\t/** 是否在拖拽结束时才更新视图(默认 false) */\n\tlazy?: boolean;\n\t/** 面板展开或折叠状态改变时的回调 */\n\tonCollapse?: (collapsed: boolean[], sizes: number[]) => void;\n\t/** 拖拽过程中的实时尺寸变化回调 */\n\tonResize?: (sizes: number[]) => void;\n\t/** 拖拽结束、重置尺寸或折叠完成时的回调 */\n\tonResizeEnd?: (sizes: number[]) => void;\n\t/** 开始拖拽分隔条时的回调 */\n\tonResizeStart?: (sizes: number[]) => void;\n\t/** 双击拖拽条回调 */\n\tonDraggerDoubleClick?: (index: number) => void;\n\t/** 分屏方向:'horizontal'(水平分屏)| 'vertical'(垂直分屏),默认 'horizontal' */\n\torientation?: SplitterOrientation;\n\t/** 容器根节点自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n\t/** 容器根节点及各语义化结构(root、panel、dragger)自定义 CSS 样式,支持对象或函数 */\n\tstyles?: SplitterStyles;\n\t/** 是否垂直分屏(orientation=\"vertical\" 的简写形式) 排列方向,与 orientation 同时存在,以 orientation 优先 */\n\tvertical?: boolean;\n\t/** 自定义拖拽手柄图标/节点 */\n\tdraggerIcon?: ReactNode;\n};\n\nexport interface ResolvedCollapsible {\n\tstart: boolean;\n\tend: boolean;\n\tshowCollapsibleIcon: boolean | 'auto';\n}\n\nconst getCollapsibleConfig = (collapsible?: SplitterCollapsible): ResolvedCollapsible => {\n\tif (!collapsible) {\n\t\treturn { start: false, end: false, showCollapsibleIcon: 'auto' };\n\t}\n\tif (typeof collapsible === 'boolean') {\n\t\treturn {\n\t\t\tstart: collapsible,\n\t\t\tend: collapsible,\n\t\t\tshowCollapsibleIcon: collapsible ? true : 'auto',\n\t\t};\n\t}\n\treturn {\n\t\tstart: collapsible.start ?? false,\n\t\tend: collapsible.end ?? false,\n\t\tshowCollapsibleIcon: collapsible.showCollapsibleIcon ?? true,\n\t};\n};\n\ntype SplitterComponent = React.FC<SplitterProps> & {\n\tPanel: React.FC<SplitterPanelProps>;\n};\n\nconst DEFAULT_DRAGGER_SIZE = 4;\nconst MIN_DRAG_SIZE = 40; // 手动拖拽调整大小时的默认最小限制 (px)\n\nconst SplitterPanel: React.FC<SplitterPanelProps> = ({ children }) => <>{children}</>;\n\nconst isPercentSize = (value: SplitterSize): value is `${number}%` =>\n\ttypeof value === 'string' && value.endsWith('%');\n\nconst parseSize = (value: SplitterSize | undefined, total: number, fallback: number) => {\n\tif (value === undefined) {\n\t\treturn fallback;\n\t}\n\n\tif (isPercentSize(value)) {\n\t\treturn (Number.parseFloat(value) / 100) * total;\n\t}\n\n\treturn Number(value);\n};\n\nconst roundSizes = (sizes: number[]) => sizes.map((size) => Math.round(size));\n\nconst getPointerPosition = (\n\tevent: PointerEvent | ReactPointerEvent,\n\torientation: SplitterOrientation,\n) => (orientation === 'horizontal' ? event.clientX : event.clientY);\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\nconst resolveSemanticStyles = (\n\tstyles: SplitterStyles | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, CSSProperties>> => {\n\tif (!styles) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof styles === 'function' ? styles({ props: infoProps }) : styles;\n\treturn resolved || {};\n};\n\nconst resolveSemanticClassNames = (\n\tclassNames: SplitterClassNames | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, string>> => {\n\tif (!classNames) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof classNames === 'function' ? classNames({ props: infoProps }) : classNames;\n\treturn resolved || {};\n};\n\nconst CustomSplitter: SplitterComponent = (props) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tdestroyOnHidden = false,\n\t\tdraggerIcon,\n\t\tdraggerSize = DEFAULT_DRAGGER_SIZE,\n\t\tlazy = false,\n\t\tonResize,\n\t\tonResizeEnd,\n\t\tonResizeStart,\n\t\tonCollapse,\n\t\tonDraggerDoubleClick,\n\t\torientation,\n\t\tstyle,\n\t\tstyles,\n\t\tvertical = false,\n\t} = props;\n\tconst resolvedOrientation = orientation ?? (vertical ? 'vertical' : 'horizontal');\n\tconst rootRef = useRef<HTMLDivElement>(null);\n\tconst sizesRef = useRef<number[]>([]);\n\tconst [containerSize, setContainerSize] = useState(0);\n\tconst [draggingIndex, setDraggingIndex] = useState<number | null>(null);\n\tconst [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\tconst [hoveredCollapsePanelIndex, setHoveredCollapsePanelIndex] = useState<number | null>(null);\n\tconst [sizes, setSizes] = useState<number[]>([]);\n\n\tconst semanticStyles = useMemo(() => resolveSemanticStyles(styles, props), [styles, props]);\n\tconst semanticClassNames = useMemo(\n\t\t() => resolveSemanticClassNames(classNames, props),\n\t\t[classNames, props],\n\t);\n\n\tconst panels = useMemo(\n\t\t() =>\n\t\t\tReact.Children.toArray(children).filter(\n\t\t\t\tReact.isValidElement,\n\t\t\t) as ReactElement<SplitterPanelProps>[],\n\t\t[children],\n\t);\n\n\tconst trackSize = Math.max(0, containerSize - Math.max(0, panels.length - 1) * draggerSize);\n\n\tconst getPanelMin = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.min, trackSize, 0),\n\t\t[panels, trackSize],\n\t);\n\n\tconst getPanelMax = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.max, trackSize, trackSize),\n\t\t[panels, trackSize],\n\t);\n\n\tconst normalizeToTrack = useCallback(\n\t\t(nextSizes: number[]) => {\n\t\t\tif (!trackSize || !nextSizes.length) {\n\t\t\t\treturn nextSizes;\n\t\t\t}\n\n\t\t\tconst normalized = [...nextSizes];\n\t\t\tconst diff = trackSize - normalized.reduce((sum, size) => sum + size, 0);\n\t\t\tconst flexibleIndex = normalized.findIndex((size) => size > 0);\n\t\t\tif (flexibleIndex !== -1) {\n\t\t\t\tnormalized[flexibleIndex] += diff;\n\t\t\t}\n\n\t\t\treturn normalized.map((size, index) => {\n\t\t\t\t// 折叠状态(size <= 1)保持为 0,不受 min 限制干扰\n\t\t\t\tif (size <= 1) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\t// 拖拽过程从 0 拖出时,允许在 0 到 min 之间平滑过渡,不被强行跳变到 min\n\t\t\t\tif (size < getPanelMin(index)) {\n\t\t\t\t\treturn size;\n\t\t\t\t}\n\t\t\t\treturn clamp(size, getPanelMin(index), getPanelMax(index));\n\t\t\t});\n\t\t},\n\t\t[getPanelMax, getPanelMin, trackSize],\n\t);\n\n\tconst buildInitialSizes = useCallback(\n\t\t(previous?: number[]) => {\n\t\t\tif (!trackSize || !panels.length) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tif (previous?.length === panels.length) {\n\t\t\t\tconst previousTotal = previous.reduce((sum, size) => sum + size, 0);\n\t\t\t\tif (previousTotal > 0) {\n\t\t\t\t\treturn normalizeToTrack(previous.map((size) => (size / previousTotal) * trackSize));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst explicitSizes = panels.map((panel) =>\n\t\t\t\tparseSize(panel.props.size ?? panel.props.defaultSize, trackSize, -1),\n\t\t\t);\n\t\t\tconst usedSize = explicitSizes\n\t\t\t\t.filter((size) => size >= 0)\n\t\t\t\t.reduce((sum, size) => sum + size, 0);\n\t\t\tconst unsetCount = explicitSizes.filter((size) => size < 0).length;\n\t\t\tconst fallbackSize = unsetCount ? Math.max(0, (trackSize - usedSize) / unsetCount) : 0;\n\n\t\t\treturn normalizeToTrack(\n\t\t\t\texplicitSizes.map((size, index) =>\n\t\t\t\t\tclamp(size >= 0 ? size : fallbackSize, getPanelMin(index), getPanelMax(index)),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack, panels, trackSize],\n\t);\n\n\tconst updateSizes = useCallback(\n\t\t(nextSizes: number[], notify = true) => {\n\t\t\tconst normalized = normalizeToTrack(nextSizes);\n\t\t\tsetSizes(normalized);\n\t\t\tsizesRef.current = normalized;\n\t\t\tif (notify) {\n\t\t\t\tonResize?.(roundSizes(normalized));\n\t\t\t}\n\t\t},\n\t\t[normalizeToTrack, onResize],\n\t);\n\n\tuseEffect(() => {\n\t\tconst node = rootRef.current;\n\t\tif (!node) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst syncSize = () => {\n\t\t\tsetContainerSize(resolvedOrientation === 'horizontal' ? node.clientWidth : node.clientHeight);\n\t\t};\n\t\tsyncSize();\n\n\t\tconst observer = new ResizeObserver(syncSize);\n\t\tobserver.observe(node);\n\t\treturn () => observer.disconnect();\n\t}, [resolvedOrientation]);\n\n\tuseEffect(() => {\n\t\tsetSizes((previous) => {\n\t\t\tconst nextSizes = buildInitialSizes(previous);\n\t\t\tsizesRef.current = nextSizes;\n\t\t\treturn nextSizes;\n\t\t});\n\t}, [buildInitialSizes]);\n\n\tconst getResizedPair = useCallback(\n\t\t(sourceSizes: number[], index: number, delta: number) => {\n\t\t\tconst nextSizes = [...sourceSizes];\n\t\t\tconst isLeftCollapsed = sourceSizes[index] <= 1;\n\t\t\tconst isRightCollapsed = sourceSizes[index + 1] <= 1;\n\n\t\t\tconst leftMin = isLeftCollapsed ? 0 : getPanelMin(index);\n\t\t\tconst rightMin = isRightCollapsed ? 0 : getPanelMin(index + 1);\n\t\t\tconst leftMax = getPanelMax(index);\n\t\t\tconst rightMax = getPanelMax(index + 1);\n\n\t\t\tconst minDelta = Math.max(leftMin - sourceSizes[index], sourceSizes[index + 1] - rightMax);\n\t\t\tconst maxDelta = Math.min(leftMax - sourceSizes[index], sourceSizes[index + 1] - rightMin);\n\t\t\tconst safeDelta = clamp(delta, minDelta, maxDelta);\n\n\t\t\tnextSizes[index] = sourceSizes[index] + safeDelta;\n\t\t\tnextSizes[index + 1] = sourceSizes[index + 1] - safeDelta;\n\t\t\treturn normalizeToTrack(nextSizes);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack],\n\t);\n\n\tconst getInitialLockedIndex = useCallback(\n\t\t(sourceSizes: number[], startIndex: number, delta: number) => {\n\t\t\tif (sourceSizes[startIndex] <= 1 && delta < 0 && startIndex > 0) {\n\t\t\t\treturn startIndex - 1;\n\t\t\t}\n\t\t\tif (sourceSizes[startIndex + 1] <= 1 && delta > 0 && startIndex < sourceSizes.length - 2) {\n\t\t\t\treturn startIndex + 1;\n\t\t\t}\n\t\t\treturn startIndex;\n\t\t},\n\t\t[],\n\t);\n\n\tconst resizePair = useCallback(\n\t\t(index: number, delta: number, notify = true) => {\n\t\t\tconst targetIndex = getInitialLockedIndex(sizesRef.current, index, delta);\n\t\t\tupdateSizes(getResizedPair(sizesRef.current, targetIndex, delta), notify);\n\t\t},\n\t\t[getInitialLockedIndex, getResizedPair, updateSizes],\n\t);\n\n\tconst startResize = (index: number, event: ReactPointerEvent<HTMLDivElement>) => {\n\t\tif (panels[index].props.resizable === false || panels[index + 1].props.resizable === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tconst startPosition = getPointerPosition(event, resolvedOrientation);\n\t\tconst startSizes = [...sizesRef.current];\n\t\tlet latestSizes = startSizes;\n\t\tlet lockedIndex: number | null = null;\n\n\t\tsetDraggingIndex(index);\n\t\tonResizeStart?.(roundSizes(startSizes));\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tconst delta = getPointerPosition(moveEvent, resolvedOrientation) - startPosition;\n\t\t\tif (delta === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (lockedIndex === null) {\n\t\t\t\tlockedIndex = getInitialLockedIndex(startSizes, index, delta);\n\t\t\t}\n\n\t\t\tlatestSizes = getResizedPair(startSizes, lockedIndex, delta);\n\t\t\tif (!lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\tdocument.removeEventListener('pointermove', handlePointerMove);\n\t\t\tdocument.removeEventListener('pointerup', handlePointerUp);\n\t\t\tsetDraggingIndex(null);\n\t\t\tif (lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\t\tconst startCollapsed = startSizes.map((size) => size <= 1);\n\t\t\tif (currentCollapsed.some((c, i) => c !== startCollapsed[i])) {\n\t\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t\t}\n\t\t\tonResizeEnd?.(currentSizes);\n\t\t};\n\n\t\tdocument.addEventListener('pointermove', handlePointerMove);\n\t\tdocument.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\tconst toggleCollapse = (index: number, neighborIndex: number) => {\n\t\tconst nextSizes = [...sizesRef.current];\n\n\t\tif (nextSizes[index] > 1) {\n\t\t\tnextSizes[neighborIndex] += nextSizes[index];\n\t\t\tnextSizes[index] = 0;\n\t\t} else {\n\t\t\tconst initialSizes = buildInitialSizes();\n\t\t\tconst initialSize =\n\t\t\t\tinitialSizes[index] ??\n\t\t\t\tparseSize(panels[index].props.defaultSize, trackSize, trackSize / panels.length);\n\t\t\tconst restoredSize = clamp(initialSize, getPanelMin(index), getPanelMax(index));\n\t\t\tnextSizes[index] = restoredSize;\n\t\t\tnextSizes[neighborIndex] = Math.max(0, nextSizes[neighborIndex] - nextSizes[index]);\n\t\t}\n\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst resetSizes = () => {\n\t\tconst previousCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tconst nextSizes = buildInitialSizes();\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tif (currentCollapsed.some((c, i) => c !== previousCollapsed[i])) {\n\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t}\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst rootStyle: CSSProperties = {\n\t\tborder: '1px solid #f0f0f0',\n\t\tborderRadius: 8,\n\t\tboxSizing: 'border-box',\n\t\tdisplay: 'flex',\n\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\theight: '100%',\n\t\tminHeight: 0,\n\t\toverflow: 'hidden',\n\t\tposition: 'relative',\n\t\twidth: '100%',\n\t\t...semanticStyles.root,\n\t\t...style,\n\t};\n\n\tconst renderCollapseButton = (\n\t\tdraggerIndex: number,\n\t\tpanelIndex: number,\n\t\tdirection: 'start' | 'end',\n\t) => {\n\t\tconst panel = panels[panelIndex];\n\t\tconst config = getCollapsibleConfig(panel?.props.collapsible);\n\t\tconst isAllowed = direction === 'start' ? config.start : config.end;\n\n\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst neighborIndex = direction === 'start' ? panelIndex + 1 : panelIndex - 1;\n\t\tconst isCollapsed = (sizes[panelIndex] ?? 0) <= 1;\n\t\tconst isNeighborCollapsed = (sizes[neighborIndex] ?? 0) <= 1;\n\n\t\t// 自己折叠后隐藏;对侧面板折叠后也隐藏(避免与展开按钮重复/语义冲突)\n\t\tif (isCollapsed || isNeighborCollapsed) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// 展开时箭头指向面板将被折叠到的方向\n\t\tconst Icon =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? LeftOutlined\n\t\t\t\t\t: RightOutlined\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? UpOutlined\n\t\t\t\t\t: DownOutlined;\n\n\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\t\tconst isAlwaysShow = config.showCollapsibleIcon === true;\n\t\tconst isHoveredOrDragging = hoveredIndex === draggerIndex || draggingIndex === draggerIndex;\n\t\tconst opacity = isAlwaysShow || isHoveredOrDragging ? 1 : 0;\n\t\tconst pointerEvents = isAlwaysShow || isHoveredOrDragging ? 'auto' : 'none';\n\n\t\tconst buttonTitle =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? '折叠左侧面板'\n\t\t\t\t\t: '折叠右侧面板'\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? '折叠上方面板'\n\t\t\t\t\t: '折叠下方面板';\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\taria-label={buttonTitle}\n\t\t\t\ttitle={buttonTitle}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\ttoggleCollapse(panelIndex, neighborIndex);\n\t\t\t\t}}\n\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}}\n\t\t\t\tstyle={{\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tbackground: '#fff',\n\t\t\t\t\tborder: '1px solid #d9d9d9',\n\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tfontSize: 10,\n\t\t\t\t\tboxShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\topacity,\n\t\t\t\t\tpointerEvents,\n\t\t\t\t}}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(panelIndex);\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#fff';\n\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Icon />\n\t\t\t</button>\n\t\t);\n\t};\n\n\tconst rootClassName = [className, semanticClassNames.root].filter(Boolean).join(' ') || undefined;\n\n\treturn (\n\t\t<div className={rootClassName} ref={rootRef} style={rootStyle}>\n\t\t\t{panels.map((panel, index) => {\n\t\t\t\tconst isHidden = sizes[index] <= 1;\n\t\t\t\tconst isLeftOrTopCollapsed = (sizes[index] ?? 0) <= 1;\n\t\t\t\tconst isRightOrBottomCollapsed = (sizes[index + 1] ?? 0) <= 1;\n\t\t\t\tconst isAnyCollapsed = isLeftOrTopCollapsed || isRightOrBottomCollapsed;\n\t\t\t\tconst panelDestroyOnHidden = panel.props.destroyOnHidden ?? destroyOnHidden;\n\t\t\t\tconst shouldRenderContent = !isHidden || !panelDestroyOnHidden;\n\n\t\t\t\treturn (\n\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t[semanticClassNames.panel, panel.props.className].filter(Boolean).join(' ') ||\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackground: index % 2 ? '#fff' : '#fafafa',\n\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\tflex: `0 0 ${sizes[index] ?? 0}px`,\n\t\t\t\t\t\t\t\tminHeight: 0,\n\t\t\t\t\t\t\t\tminWidth: 0,\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\tboxShadow:\n\t\t\t\t\t\t\t\t\thoveredCollapsePanelIndex === index ? 'inset 0 0 0 2px #1677ff' : undefined,\n\t\t\t\t\t\t\t\ttransition:\n\t\t\t\t\t\t\t\t\tdraggingIndex === null ? 'box-shadow 0.2s ease, flex-basis 0.2s ease' : undefined,\n\t\t\t\t\t\t\t\t...semanticStyles.panel,\n\t\t\t\t\t\t\t\t...panel.props.style,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{shouldRenderContent && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\t\tdisplay: isHidden ? 'none' : 'block',\n\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\toverflowX: 'hidden',\n\t\t\t\t\t\t\t\t\t\toverflowY: 'auto',\n\t\t\t\t\t\t\t\t\t\tpadding: (sizes[index] ?? 0) < 32 ? 0 : 16,\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{panel.props.children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{index < panels.length - 1 && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\taria-orientation={resolvedOrientation}\n\t\t\t\t\t\t\t\tclassName={semanticClassNames.dragger}\n\t\t\t\t\t\t\t\tonDoubleClick={() => {\n\t\t\t\t\t\t\t\t\tonDraggerDoubleClick?.(index);\n\t\t\t\t\t\t\t\t\tresetSizes();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t\tconst step = event.shiftKey ? 40 : 10;\n\t\t\t\t\t\t\t\t\tconst directionMap =\n\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? { ArrowLeft: -step, ArrowRight: step }\n\t\t\t\t\t\t\t\t\t\t\t: { ArrowUp: -step, ArrowDown: step };\n\t\t\t\t\t\t\t\t\tconst delta = directionMap[event.key as keyof typeof directionMap];\n\t\t\t\t\t\t\t\t\tif (delta !== undefined) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tresizePair(index, delta);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonPointerDown={(event) => startResize(index, event)}\n\t\t\t\t\t\t\t\tonPointerEnter={() => setHoveredIndex(index)}\n\t\t\t\t\t\t\t\tonPointerLeave={() => setHoveredIndex(null)}\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\ttitle=\"拖动调整大小,双击重置\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#e6f4ff' : '#f5f5f5',\n\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\tcursor: resolvedOrientation === 'horizontal' ? 'col-resize' : 'row-resize',\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflex: `0 0 ${draggerSize}px`,\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\tmarginLeft:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\tmarginTop:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'vertical'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\toutline: 'none',\n\t\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\tzIndex: isAnyCollapsed ? 2 : 1,\n\t\t\t\t\t\t\t\t\t...semanticStyles.dragger,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* 呈现拖拽指示线/图标 */}\n\t\t\t\t\t\t\t\t{draggerIcon ? (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#8c8c8c',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'color 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{draggerIcon}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#d9d9d9',\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: 2,\n\t\t\t\t\t\t\t\t\t\t\theight: resolvedOrientation === 'horizontal' ? 40 : 2,\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'background 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\twidth: resolvedOrientation === 'horizontal' ? 2 : 40,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 未折叠状态下呈现折叠按钮 */}\n\t\t\t\t\t\t\t\t{!isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop: '50%',\n\t\t\t\t\t\t\t\t\t\t\tleft: '50%',\n\t\t\t\t\t\t\t\t\t\t\ttransform: 'translate(-50%, -50%)',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tgap: 2,\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index, 'start')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index + 1, 'end')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 折叠状态下呈现展开按钮(必须包含 collapsible 允许方可渲染) */}\n\t\t\t\t\t\t\t\t{isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '50%'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tbottom:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '50%',\n\t\t\t\t\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'auto',\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t\ttransform:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `translate(${isLeftOrTopCollapsed ? '4px' : '-4px'}, -50%)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `translate(-50%, ${isLeftOrTopCollapsed ? '4px' : '-4px'})`,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\t\tconst isStart = isLeftOrTopCollapsed;\n\t\t\t\t\t\t\t\t\t\t\tconst targetIndex = isStart ? index : index + 1;\n\t\t\t\t\t\t\t\t\t\t\tconst targetPanel = panels[targetIndex];\n\t\t\t\t\t\t\t\t\t\t\tconst config = getCollapsibleConfig(targetPanel?.props.collapsible);\n\t\t\t\t\t\t\t\t\t\t\tconst isAllowed = isStart ? config.start : config.end;\n\n\t\t\t\t\t\t\t\t\t\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tconst ExpandIcon =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? RightOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: LeftOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? DownOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: UpOutlined;\n\n\t\t\t\t\t\t\t\t\t\t\tconst neighborIndex = isLeftOrTopCollapsed ? index + 1 : index;\n\t\t\t\t\t\t\t\t\t\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\n\t\t\t\t\t\t\t\t\t\t\tconst expandTitle =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开左侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开右侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开上方面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开下方面板';\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCollapse(targetIndex, neighborIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: '#f3f4f6',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: '1px solid #e5e7eb',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 1px 3px rgba(0, 0, 0, 0.08)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(targetIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#f3f4f6';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ExpandIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})()}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCustomSplitter.Panel = SplitterPanel;\n\nexport default CustomSplitter;\n"]}
1
+ {"version":3,"sources":["../Splitter/index.tsx"],"names":["useRef","useState","useMemo","React","useCallback","useEffect","LeftOutlined","RightOutlined","UpOutlined","DownOutlined","jsx","jsxs"],"mappings":"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","file":"chunk-HKALWFWZ.cjs","sourcesContent":["import { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport type {\n\tCSSProperties,\n\tReactElement,\n\tReactNode,\n\tPointerEvent as ReactPointerEvent,\n} from 'react';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport type SplitterSize = number | `${number}%`;\nexport type SplitterOrientation = 'horizontal' | 'vertical';\n\nexport type SplitterCollapsible =\n\t| boolean\n\t| {\n\t\t\tstart?: boolean;\n\t\t\tend?: boolean;\n\t\t\tshowCollapsibleIcon?: boolean | 'auto';\n\t };\n\n/**\n * Splitter.Panel 子面板组件属性\n */\nexport type SplitterPanelProps = {\n\t/** 面板内容节点 */\n\tchildren?: ReactNode;\n\t/** 面板自定义类名 */\n\tclassName?: string;\n\t/**\n\t * 折叠配置:\n\t * - `boolean`: 是否允许两端折叠\n\t * - `Object`: `{ start?: boolean; end?: boolean; showCollapsibleIcon?: boolean | 'auto' }`\n\t */\n\tcollapsible?: SplitterCollapsible;\n\t/** 面板初始默认尺寸(支持数字 px 或百分比字符串如 '40%') */\n\tdefaultSize?: SplitterSize;\n\t/** 折叠/隐藏时是否销毁面板内容节点(可覆盖 Splitter 根容器上的 destroyOnHidden 属性) */\n\tdestroyOnHidden?: boolean;\n\t/** 面板最大允许尺寸限制 */\n\tmax?: SplitterSize;\n\t/** 面板最小允许尺寸限制 */\n\tmin?: SplitterSize;\n\t/** 是否允许通过分隔条拖拽调整大小(默认 true) */\n\tresizable?: boolean;\n\t/** 面板受控尺寸 */\n\tsize?: SplitterSize;\n\t/** 面板自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n};\n\nexport type SplitterSemanticDOM = 'root' | 'panel' | 'dragger';\n/** 语义化 DOM 结构标识 */\nexport type SemanticDOM = SplitterSemanticDOM;\n\nexport type SplitterStyles =\n\t| Partial<Record<SplitterSemanticDOM, CSSProperties>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, CSSProperties>>);\n\nexport type SplitterClassNames =\n\t| Partial<Record<SplitterSemanticDOM, string>>\n\t| ((info: { props: SplitterProps }) => Partial<Record<SplitterSemanticDOM, string>>);\n\n/**\n * Splitter 根容器组件属性\n */\nexport type SplitterProps = {\n\t/** 面板集合(建议传入 Splitter.Panel) */\n\tchildren?: ReactNode;\n\t/** 容器根节点自定义类名 */\n\tclassName?: string;\n\t/** 用于自定义组件内部各语义化结构(root、panel、dragger)的 class,支持对象或函数 */\n\tclassNames?: SplitterClassNames;\n\t/** 折叠/隐藏时是否销毁面板内容节点(默认 false,保留组件状态) */\n\tdestroyOnHidden?: boolean;\n\t/** 拖拽分隔条的宽度/高度(单位 px,默认 4) */\n\tdraggerSize?: number;\n\t/** 是否在拖拽结束时才更新视图(默认 false) */\n\tlazy?: boolean;\n\t/** 面板展开或折叠状态改变时的回调 */\n\tonCollapse?: (collapsed: boolean[], sizes: number[]) => void;\n\t/** 拖拽过程中的实时尺寸变化回调 */\n\tonResize?: (sizes: number[]) => void;\n\t/** 拖拽结束、重置尺寸或折叠完成时的回调 */\n\tonResizeEnd?: (sizes: number[]) => void;\n\t/** 开始拖拽分隔条时的回调 */\n\tonResizeStart?: (sizes: number[]) => void;\n\t/** 双击拖拽条回调 */\n\tonDraggerDoubleClick?: (index: number) => void;\n\t/** 分屏方向:'horizontal'(水平分屏)| 'vertical'(垂直分屏),默认 'horizontal' */\n\torientation?: SplitterOrientation;\n\t/** 容器根节点自定义 CSS 样式 */\n\tstyle?: CSSProperties;\n\t/** 容器根节点及各语义化结构(root、panel、dragger)自定义 CSS 样式,支持对象或函数 */\n\tstyles?: SplitterStyles;\n\t/** 是否垂直分屏(orientation=\"vertical\" 的简写形式) 排列方向,与 orientation 同时存在,以 orientation 优先 */\n\tvertical?: boolean;\n\t/** 自定义拖拽手柄图标/节点 */\n\tdraggerIcon?: ReactNode;\n};\n\nexport interface ResolvedCollapsible {\n\tstart: boolean;\n\tend: boolean;\n\tshowCollapsibleIcon: boolean | 'auto';\n}\n\nconst getCollapsibleConfig = (collapsible?: SplitterCollapsible): ResolvedCollapsible => {\n\tif (!collapsible) {\n\t\treturn { start: false, end: false, showCollapsibleIcon: 'auto' };\n\t}\n\tif (typeof collapsible === 'boolean') {\n\t\treturn {\n\t\t\tstart: collapsible,\n\t\t\tend: collapsible,\n\t\t\tshowCollapsibleIcon: collapsible ? true : 'auto',\n\t\t};\n\t}\n\treturn {\n\t\tstart: collapsible.start ?? false,\n\t\tend: collapsible.end ?? false,\n\t\tshowCollapsibleIcon: collapsible.showCollapsibleIcon ?? true,\n\t};\n};\n\ntype SplitterComponent = React.FC<SplitterProps> & {\n\tPanel: React.FC<SplitterPanelProps>;\n};\n\nconst DEFAULT_DRAGGER_SIZE = 4;\nconst MIN_DRAG_SIZE = 40; // 手动拖拽调整大小时的默认最小限制 (px)\n\nconst SplitterPanel: React.FC<SplitterPanelProps> = ({ children }) => <>{children}</>;\n\nconst isPercentSize = (value: SplitterSize): value is `${number}%` =>\n\ttypeof value === 'string' && value.endsWith('%');\n\nconst parseSize = (value: SplitterSize | undefined, total: number, fallback: number) => {\n\tif (value === undefined) {\n\t\treturn fallback;\n\t}\n\n\tif (isPercentSize(value)) {\n\t\treturn (Number.parseFloat(value) / 100) * total;\n\t}\n\n\treturn Number(value);\n};\n\nconst roundSizes = (sizes: number[]) => sizes.map((size) => Math.round(size));\n\nconst getPointerPosition = (\n\tevent: PointerEvent | ReactPointerEvent,\n\torientation: SplitterOrientation,\n) => (orientation === 'horizontal' ? event.clientX : event.clientY);\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\nconst resolveSemanticStyles = (\n\tstyles: SplitterStyles | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, CSSProperties>> => {\n\tif (!styles) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof styles === 'function' ? styles({ props: infoProps }) : styles;\n\treturn resolved || {};\n};\n\nconst resolveSemanticClassNames = (\n\tclassNames: SplitterClassNames | undefined,\n\tinfoProps: SplitterProps,\n): Partial<Record<SplitterSemanticDOM, string>> => {\n\tif (!classNames) {\n\t\treturn {};\n\t}\n\n\tconst resolved = typeof classNames === 'function' ? classNames({ props: infoProps }) : classNames;\n\treturn resolved || {};\n};\n\nconst CustomSplitter: SplitterComponent = (props) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tdestroyOnHidden = false,\n\t\tdraggerIcon,\n\t\tdraggerSize = DEFAULT_DRAGGER_SIZE,\n\t\tlazy = false,\n\t\tonResize,\n\t\tonResizeEnd,\n\t\tonResizeStart,\n\t\tonCollapse,\n\t\tonDraggerDoubleClick,\n\t\torientation,\n\t\tstyle,\n\t\tstyles,\n\t\tvertical = false,\n\t} = props;\n\tconst resolvedOrientation = orientation ?? (vertical ? 'vertical' : 'horizontal');\n\tconst rootRef = useRef<HTMLDivElement>(null);\n\tconst sizesRef = useRef<number[]>([]);\n\tconst [containerSize, setContainerSize] = useState(0);\n\tconst [draggingIndex, setDraggingIndex] = useState<number | null>(null);\n\tconst [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\tconst [hoveredCollapsePanelIndex, setHoveredCollapsePanelIndex] = useState<number | null>(null);\n\tconst [sizes, setSizes] = useState<number[]>([]);\n\n\tconst semanticStyles = useMemo(() => resolveSemanticStyles(styles, props), [styles, props]);\n\tconst semanticClassNames = useMemo(\n\t\t() => resolveSemanticClassNames(classNames, props),\n\t\t[classNames, props],\n\t);\n\n\tconst panels = useMemo(\n\t\t() =>\n\t\t\tReact.Children.toArray(children).filter(\n\t\t\t\tReact.isValidElement,\n\t\t\t) as ReactElement<SplitterPanelProps>[],\n\t\t[children],\n\t);\n\n\tconst trackSize = Math.max(0, containerSize - Math.max(0, panels.length - 1) * draggerSize);\n\n\tconst getPanelMin = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.min, trackSize, 0),\n\t\t[panels, trackSize],\n\t);\n\n\tconst getPanelMax = useCallback(\n\t\t(index: number) => parseSize(panels[index]?.props.max, trackSize, trackSize),\n\t\t[panels, trackSize],\n\t);\n\n\tconst normalizeToTrack = useCallback(\n\t\t(nextSizes: number[]) => {\n\t\t\tif (!trackSize || !nextSizes.length) {\n\t\t\t\treturn nextSizes;\n\t\t\t}\n\n\t\t\tconst normalized = [...nextSizes];\n\t\t\tconst diff = trackSize - normalized.reduce((sum, size) => sum + size, 0);\n\t\t\tconst flexibleIndex = normalized.findIndex((size) => size > 0);\n\t\t\tif (flexibleIndex !== -1) {\n\t\t\t\tnormalized[flexibleIndex] += diff;\n\t\t\t}\n\n\t\t\treturn normalized.map((size, index) => {\n\t\t\t\t// 折叠状态(size <= 1)保持为 0,不受 min 限制干扰\n\t\t\t\tif (size <= 1) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\t// 拖拽过程从 0 拖出时,允许在 0 到 min 之间平滑过渡,不被强行跳变到 min\n\t\t\t\tif (size < getPanelMin(index)) {\n\t\t\t\t\treturn size;\n\t\t\t\t}\n\t\t\t\treturn clamp(size, getPanelMin(index), getPanelMax(index));\n\t\t\t});\n\t\t},\n\t\t[getPanelMax, getPanelMin, trackSize],\n\t);\n\n\tconst buildInitialSizes = useCallback(\n\t\t(previous?: number[]) => {\n\t\t\tif (!trackSize || !panels.length) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tif (previous?.length === panels.length) {\n\t\t\t\tconst previousTotal = previous.reduce((sum, size) => sum + size, 0);\n\t\t\t\tif (previousTotal > 0) {\n\t\t\t\t\treturn normalizeToTrack(previous.map((size) => (size / previousTotal) * trackSize));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst explicitSizes = panels.map((panel) =>\n\t\t\t\tparseSize(panel.props.size ?? panel.props.defaultSize, trackSize, -1),\n\t\t\t);\n\t\t\tconst usedSize = explicitSizes\n\t\t\t\t.filter((size) => size >= 0)\n\t\t\t\t.reduce((sum, size) => sum + size, 0);\n\t\t\tconst unsetCount = explicitSizes.filter((size) => size < 0).length;\n\t\t\tconst fallbackSize = unsetCount ? Math.max(0, (trackSize - usedSize) / unsetCount) : 0;\n\n\t\t\treturn normalizeToTrack(\n\t\t\t\texplicitSizes.map((size, index) =>\n\t\t\t\t\tclamp(size >= 0 ? size : fallbackSize, getPanelMin(index), getPanelMax(index)),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack, panels, trackSize],\n\t);\n\n\tconst updateSizes = useCallback(\n\t\t(nextSizes: number[], notify = true) => {\n\t\t\tconst normalized = normalizeToTrack(nextSizes);\n\t\t\tsetSizes(normalized);\n\t\t\tsizesRef.current = normalized;\n\t\t\tif (notify) {\n\t\t\t\tonResize?.(roundSizes(normalized));\n\t\t\t}\n\t\t},\n\t\t[normalizeToTrack, onResize],\n\t);\n\n\tuseEffect(() => {\n\t\tconst node = rootRef.current;\n\t\tif (!node) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst syncSize = () => {\n\t\t\tsetContainerSize(resolvedOrientation === 'horizontal' ? node.clientWidth : node.clientHeight);\n\t\t};\n\t\tsyncSize();\n\n\t\tconst observer = new ResizeObserver(syncSize);\n\t\tobserver.observe(node);\n\t\treturn () => observer.disconnect();\n\t}, [resolvedOrientation]);\n\n\tuseEffect(() => {\n\t\tsetSizes((previous) => {\n\t\t\tconst nextSizes = buildInitialSizes(previous);\n\t\t\tsizesRef.current = nextSizes;\n\t\t\treturn nextSizes;\n\t\t});\n\t}, [buildInitialSizes]);\n\n\tconst getResizedPair = useCallback(\n\t\t(sourceSizes: number[], index: number, delta: number) => {\n\t\t\tconst nextSizes = [...sourceSizes];\n\t\t\tconst isLeftCollapsed = sourceSizes[index] <= 1;\n\t\t\tconst isRightCollapsed = sourceSizes[index + 1] <= 1;\n\n\t\t\tconst leftMin = isLeftCollapsed ? 0 : getPanelMin(index);\n\t\t\tconst rightMin = isRightCollapsed ? 0 : getPanelMin(index + 1);\n\t\t\tconst leftMax = getPanelMax(index);\n\t\t\tconst rightMax = getPanelMax(index + 1);\n\n\t\t\tconst minDelta = Math.max(leftMin - sourceSizes[index], sourceSizes[index + 1] - rightMax);\n\t\t\tconst maxDelta = Math.min(leftMax - sourceSizes[index], sourceSizes[index + 1] - rightMin);\n\t\t\tconst safeDelta = clamp(delta, minDelta, maxDelta);\n\n\t\t\tnextSizes[index] = sourceSizes[index] + safeDelta;\n\t\t\tnextSizes[index + 1] = sourceSizes[index + 1] - safeDelta;\n\t\t\treturn normalizeToTrack(nextSizes);\n\t\t},\n\t\t[getPanelMax, getPanelMin, normalizeToTrack],\n\t);\n\n\tconst getInitialLockedIndex = useCallback(\n\t\t(sourceSizes: number[], startIndex: number, delta: number) => {\n\t\t\tif (sourceSizes[startIndex] <= 1 && delta < 0 && startIndex > 0) {\n\t\t\t\treturn startIndex - 1;\n\t\t\t}\n\t\t\tif (sourceSizes[startIndex + 1] <= 1 && delta > 0 && startIndex < sourceSizes.length - 2) {\n\t\t\t\treturn startIndex + 1;\n\t\t\t}\n\t\t\treturn startIndex;\n\t\t},\n\t\t[],\n\t);\n\n\tconst resizePair = useCallback(\n\t\t(index: number, delta: number, notify = true) => {\n\t\t\tconst targetIndex = getInitialLockedIndex(sizesRef.current, index, delta);\n\t\t\tupdateSizes(getResizedPair(sizesRef.current, targetIndex, delta), notify);\n\t\t},\n\t\t[getInitialLockedIndex, getResizedPair, updateSizes],\n\t);\n\n\tconst startResize = (index: number, event: ReactPointerEvent<HTMLDivElement>) => {\n\t\tif (panels[index].props.resizable === false || panels[index + 1].props.resizable === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tconst startPosition = getPointerPosition(event, resolvedOrientation);\n\t\tconst startSizes = [...sizesRef.current];\n\t\tlet latestSizes = startSizes;\n\t\tlet lockedIndex: number | null = null;\n\n\t\tsetDraggingIndex(index);\n\t\tonResizeStart?.(roundSizes(startSizes));\n\n\t\tconst handlePointerMove = (moveEvent: PointerEvent) => {\n\t\t\tconst delta = getPointerPosition(moveEvent, resolvedOrientation) - startPosition;\n\t\t\tif (delta === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (lockedIndex === null) {\n\t\t\t\tlockedIndex = getInitialLockedIndex(startSizes, index, delta);\n\t\t\t}\n\n\t\t\tlatestSizes = getResizedPair(startSizes, lockedIndex, delta);\n\t\t\tif (!lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePointerUp = () => {\n\t\t\tdocument.removeEventListener('pointermove', handlePointerMove);\n\t\t\tdocument.removeEventListener('pointerup', handlePointerUp);\n\t\t\tsetDraggingIndex(null);\n\t\t\tif (lazy) {\n\t\t\t\tupdateSizes(latestSizes, true);\n\t\t\t}\n\t\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\t\tconst startCollapsed = startSizes.map((size) => size <= 1);\n\t\t\tif (currentCollapsed.some((c, i) => c !== startCollapsed[i])) {\n\t\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t\t}\n\t\t\tonResizeEnd?.(currentSizes);\n\t\t};\n\n\t\tdocument.addEventListener('pointermove', handlePointerMove);\n\t\tdocument.addEventListener('pointerup', handlePointerUp);\n\t};\n\n\tconst toggleCollapse = (index: number, neighborIndex: number) => {\n\t\tconst nextSizes = [...sizesRef.current];\n\n\t\tif (nextSizes[index] > 1) {\n\t\t\tnextSizes[neighborIndex] += nextSizes[index];\n\t\t\tnextSizes[index] = 0;\n\t\t} else {\n\t\t\tconst initialSizes = buildInitialSizes();\n\t\t\tconst initialSize =\n\t\t\t\tinitialSizes[index] ??\n\t\t\t\tparseSize(panels[index].props.defaultSize, trackSize, trackSize / panels.length);\n\t\t\tconst restoredSize = clamp(initialSize, getPanelMin(index), getPanelMax(index));\n\t\t\tnextSizes[index] = restoredSize;\n\t\t\tnextSizes[neighborIndex] = Math.max(0, nextSizes[neighborIndex] - nextSizes[index]);\n\t\t}\n\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst resetSizes = () => {\n\t\tconst previousCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tconst nextSizes = buildInitialSizes();\n\t\tupdateSizes(nextSizes);\n\t\tconst currentSizes = roundSizes(sizesRef.current);\n\t\tconst currentCollapsed = sizesRef.current.map((size) => size <= 1);\n\t\tif (currentCollapsed.some((c, i) => c !== previousCollapsed[i])) {\n\t\t\tonCollapse?.(currentCollapsed, currentSizes);\n\t\t}\n\t\tonResizeEnd?.(currentSizes);\n\t};\n\n\tconst rootStyle: CSSProperties = {\n\t\tborder: '1px solid #f0f0f0',\n\t\tborderRadius: 8,\n\t\tboxSizing: 'border-box',\n\t\tdisplay: 'flex',\n\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\theight: '100%',\n\t\tminHeight: 0,\n\t\toverflow: 'hidden',\n\t\tposition: 'relative',\n\t\twidth: '100%',\n\t\t...semanticStyles.root,\n\t\t...style,\n\t};\n\n\tconst renderCollapseButton = (\n\t\tdraggerIndex: number,\n\t\tpanelIndex: number,\n\t\tdirection: 'start' | 'end',\n\t) => {\n\t\tconst panel = panels[panelIndex];\n\t\tconst config = getCollapsibleConfig(panel?.props.collapsible);\n\t\tconst isAllowed = direction === 'start' ? config.start : config.end;\n\n\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst neighborIndex = direction === 'start' ? panelIndex + 1 : panelIndex - 1;\n\t\tconst isCollapsed = (sizes[panelIndex] ?? 0) <= 1;\n\t\tconst isNeighborCollapsed = (sizes[neighborIndex] ?? 0) <= 1;\n\n\t\t// 自己折叠后隐藏;对侧面板折叠后也隐藏(避免与展开按钮重复/语义冲突)\n\t\tif (isCollapsed || isNeighborCollapsed) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// 展开时箭头指向面板将被折叠到的方向\n\t\tconst Icon =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? LeftOutlined\n\t\t\t\t\t: RightOutlined\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? UpOutlined\n\t\t\t\t\t: DownOutlined;\n\n\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\t\tconst isAlwaysShow = config.showCollapsibleIcon === true;\n\t\tconst isHoveredOrDragging = hoveredIndex === draggerIndex || draggingIndex === draggerIndex;\n\t\tconst opacity = isAlwaysShow || isHoveredOrDragging ? 1 : 0;\n\t\tconst pointerEvents = isAlwaysShow || isHoveredOrDragging ? 'auto' : 'none';\n\n\t\tconst buttonTitle =\n\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t? direction === 'start'\n\t\t\t\t\t? '折叠左侧面板'\n\t\t\t\t\t: '折叠右侧面板'\n\t\t\t\t: direction === 'start'\n\t\t\t\t\t? '折叠上方面板'\n\t\t\t\t\t: '折叠下方面板';\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\taria-label={buttonTitle}\n\t\t\t\ttitle={buttonTitle}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\ttoggleCollapse(panelIndex, neighborIndex);\n\t\t\t\t}}\n\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}}\n\t\t\t\tstyle={{\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tbackground: '#fff',\n\t\t\t\t\tborder: '1px solid #d9d9d9',\n\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tfontSize: 10,\n\t\t\t\t\tboxShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\topacity,\n\t\t\t\t\tpointerEvents,\n\t\t\t\t}}\n\t\t\t\ttype=\"button\"\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(panelIndex);\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\te.currentTarget.style.background = '#fff';\n\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Icon />\n\t\t\t</button>\n\t\t);\n\t};\n\n\tconst rootClassName = [className, semanticClassNames.root].filter(Boolean).join(' ') || undefined;\n\n\treturn (\n\t\t<div className={rootClassName} ref={rootRef} style={rootStyle}>\n\t\t\t{panels.map((panel, index) => {\n\t\t\t\tconst isHidden = sizes[index] <= 1;\n\t\t\t\tconst isLeftOrTopCollapsed = (sizes[index] ?? 0) <= 1;\n\t\t\t\tconst isRightOrBottomCollapsed = (sizes[index + 1] ?? 0) <= 1;\n\t\t\t\tconst isAnyCollapsed = isLeftOrTopCollapsed || isRightOrBottomCollapsed;\n\t\t\t\tconst panelDestroyOnHidden = panel.props.destroyOnHidden ?? destroyOnHidden;\n\t\t\t\tconst shouldRenderContent = !isHidden || !panelDestroyOnHidden;\n\n\t\t\t\treturn (\n\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t[semanticClassNames.panel, panel.props.className].filter(Boolean).join(' ') ||\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackground: index % 2 ? '#fff' : '#fafafa',\n\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\tflex: `0 0 ${sizes[index] ?? 0}px`,\n\t\t\t\t\t\t\t\tminHeight: 0,\n\t\t\t\t\t\t\t\tminWidth: 0,\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\tboxShadow:\n\t\t\t\t\t\t\t\t\thoveredCollapsePanelIndex === index ? 'inset 0 0 0 2px #1677ff' : undefined,\n\t\t\t\t\t\t\t\ttransition:\n\t\t\t\t\t\t\t\t\tdraggingIndex === null ? 'box-shadow 0.2s ease, flex-basis 0.2s ease' : undefined,\n\t\t\t\t\t\t\t\t...semanticStyles.panel,\n\t\t\t\t\t\t\t\t...panel.props.style,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{shouldRenderContent && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\t\tdisplay: isHidden ? 'none' : 'block',\n\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\toverflowX: 'hidden',\n\t\t\t\t\t\t\t\t\t\toverflowY: 'auto',\n\t\t\t\t\t\t\t\t\t\tpadding: (sizes[index] ?? 0) < 32 ? 0 : 16,\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{panel.props.children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{index < panels.length - 1 && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\taria-orientation={resolvedOrientation}\n\t\t\t\t\t\t\t\tclassName={semanticClassNames.dragger}\n\t\t\t\t\t\t\t\tonDoubleClick={() => {\n\t\t\t\t\t\t\t\t\tonDraggerDoubleClick?.(index);\n\t\t\t\t\t\t\t\t\tresetSizes();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\t\tconst step = event.shiftKey ? 40 : 10;\n\t\t\t\t\t\t\t\t\tconst directionMap =\n\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? { ArrowLeft: -step, ArrowRight: step }\n\t\t\t\t\t\t\t\t\t\t\t: { ArrowUp: -step, ArrowDown: step };\n\t\t\t\t\t\t\t\t\tconst delta = directionMap[event.key as keyof typeof directionMap];\n\t\t\t\t\t\t\t\t\tif (delta !== undefined) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tresizePair(index, delta);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonPointerDown={(event) => startResize(index, event)}\n\t\t\t\t\t\t\t\tonPointerEnter={() => setHoveredIndex(index)}\n\t\t\t\t\t\t\t\tonPointerLeave={() => setHoveredIndex(null)}\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\ttitle=\"拖动调整大小,双击重置\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#e6f4ff' : '#f5f5f5',\n\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t\tcursor: resolvedOrientation === 'horizontal' ? 'col-resize' : 'row-resize',\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflex: `0 0 ${draggerSize}px`,\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\tmarginLeft:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\tmarginTop:\n\t\t\t\t\t\t\t\t\t\tindex > 0 && (sizes[index] ?? 0) <= 1 && resolvedOrientation === 'vertical'\n\t\t\t\t\t\t\t\t\t\t\t? -draggerSize\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\toutline: 'none',\n\t\t\t\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\tzIndex: isAnyCollapsed ? 2 : 1,\n\t\t\t\t\t\t\t\t\t...semanticStyles.dragger,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* 呈现拖拽指示线/图标 */}\n\t\t\t\t\t\t\t\t{draggerIcon ? (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#8c8c8c',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'color 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{draggerIcon}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\thoveredIndex === index || draggingIndex === index ? '#1677ff' : '#d9d9d9',\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: 2,\n\t\t\t\t\t\t\t\t\t\t\theight: resolvedOrientation === 'horizontal' ? 40 : 2,\n\t\t\t\t\t\t\t\t\t\t\ttransition: 'background 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\twidth: resolvedOrientation === 'horizontal' ? 2 : 40,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 未折叠状态下呈现折叠按钮 */}\n\t\t\t\t\t\t\t\t{!isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop: '50%',\n\t\t\t\t\t\t\t\t\t\t\tleft: '50%',\n\t\t\t\t\t\t\t\t\t\t\ttransform: 'translate(-50%, -50%)',\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: resolvedOrientation === 'horizontal' ? 'row' : 'column',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\tgap: 2,\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index, 'start')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t\t\tminHeight: resolvedOrientation === 'horizontal' ? undefined : 14,\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth: resolvedOrientation === 'horizontal' ? 14 : undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{renderCollapseButton(index, index + 1, 'end')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* 折叠状态下呈现展开按钮(必须包含 collapsible 允许方可渲染) */}\n\t\t\t\t\t\t\t\t{isAnyCollapsed && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '50%'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tbottom:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '50%',\n\t\t\t\t\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isRightOrBottomCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'auto',\n\t\t\t\t\t\t\t\t\t\t\tzIndex: 5,\n\t\t\t\t\t\t\t\t\t\t\ttransform:\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `translate(${isLeftOrTopCollapsed ? '4px' : '-4px'}, -50%)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: `translate(-50%, ${isLeftOrTopCollapsed ? '4px' : '-4px'})`,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\t\tconst isStart = isLeftOrTopCollapsed;\n\t\t\t\t\t\t\t\t\t\t\tconst targetIndex = isStart ? index : index + 1;\n\t\t\t\t\t\t\t\t\t\t\tconst targetPanel = panels[targetIndex];\n\t\t\t\t\t\t\t\t\t\t\tconst config = getCollapsibleConfig(targetPanel?.props.collapsible);\n\t\t\t\t\t\t\t\t\t\t\tconst isAllowed = isStart ? config.start : config.end;\n\n\t\t\t\t\t\t\t\t\t\t\tif (!isAllowed || config.showCollapsibleIcon === false) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tconst ExpandIcon =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? RightOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: LeftOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? DownOutlined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: UpOutlined;\n\n\t\t\t\t\t\t\t\t\t\t\tconst neighborIndex = isLeftOrTopCollapsed ? index + 1 : index;\n\t\t\t\t\t\t\t\t\t\t\tconst isHorizontal = resolvedOrientation === 'horizontal';\n\n\t\t\t\t\t\t\t\t\t\t\tconst expandTitle =\n\t\t\t\t\t\t\t\t\t\t\t\tresolvedOrientation === 'horizontal'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开左侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开右侧面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isLeftOrTopCollapsed\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '展开上方面板'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '展开下方面板';\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={expandTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCollapse(targetIndex, neighborIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonDoubleClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: '#f3f4f6',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: '1px solid #e5e7eb',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: '#595959',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: isHorizontal ? 40 : 14,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: isHorizontal ? 14 : 40,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: '0 1px 3px rgba(0, 0, 0, 0.08)',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease',\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#e5e7eb';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#1f2937';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(targetIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = '#f3f4f6';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = '#595959';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHoveredCollapsePanelIndex(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ExpandIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})()}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCustomSplitter.Panel = SplitterPanel;\n\nexport default CustomSplitter;\n"]}
@@ -1,4 +1,4 @@
1
- import { CloseOutlined } from './chunk-ISUXPTLV.js';
1
+ import { CloseOutlined } from './chunk-2IDVNTKR.js';
2
2
  import { useState, useEffect } from 'react';
3
3
  import ReactDOM from 'react-dom';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -143,5 +143,5 @@ var GuidedTour = ({
143
143
  var GuidedTour_default = GuidedTour;
144
144
 
145
145
  export { GuidedTour_default };
146
- //# sourceMappingURL=chunk-IBOCJ2ZS.js.map
147
- //# sourceMappingURL=chunk-IBOCJ2ZS.js.map
146
+ //# sourceMappingURL=chunk-IF4XAUV3.js.map
147
+ //# sourceMappingURL=chunk-IF4XAUV3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../GuidedTour/index.tsx"],"names":["currentStep"],"mappings":"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","file":"chunk-IBOCJ2ZS.js","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport type TourPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface TourStep {\n\t/** 目标 DOM 节点选择器、DOM 对象或获取函数 */\n\ttarget: string | HTMLElement | (() => HTMLElement | null) | null;\n\t/** 引导步骤标题 */\n\ttitle: ReactNode;\n\t/** 引导步骤详细说明 */\n\tdescription: ReactNode;\n\t/** 气泡对齐方向,默认为 'bottom' */\n\tplacement?: TourPlacement;\n}\n\nexport interface GuidedTourProps {\n\t/** 引导步骤列表 */\n\tsteps: TourStep[];\n\t/** 是否开启引导 */\n\topen: boolean;\n\t/** 当前步数(受控,可选) */\n\tcurrent?: number;\n\t/** 步数改变回调 */\n\tonChange?: (current: number) => void;\n\t/** 关闭/跳过引导回调 */\n\tonClose?: () => void;\n\t/** 全部引导完成回调 */\n\tonFinish?: () => void;\n\t/** LocalStorage 存储已完成状态的 Key(若提供则完成或跳过后自动持久化记录) */\n\tstorageKey?: string;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst GuidedTour: React.FC<GuidedTourProps> = ({\n\tsteps = [],\n\topen,\n\tcurrent: controlledCurrent,\n\tonChange,\n\tonClose,\n\tonFinish,\n\tstorageKey,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalCurrent, setInternalCurrent] = useState<number>(0);\n\tconst currentStepIndex = controlledCurrent !== undefined ? controlledCurrent : internalCurrent;\n\n\tconst [targetRect, setTargetRect] = useState<DOMRect | null>(null);\n\n\t// 获取当前步骤的目标 DOM\n\tconst getTargetElement = (step: TourStep): HTMLElement | null => {\n\t\tif (!step || !step.target) return null;\n\t\tif (typeof step.target === 'function') {\n\t\t\treturn step.target();\n\t\t}\n\t\tif (typeof step.target === 'string') {\n\t\t\treturn document.querySelector(step.target);\n\t\t}\n\t\treturn step.target;\n\t};\n\n\t// 计算目标节点坐标\n\tuseEffect(() => {\n\t\tif (!open || steps.length === 0) return;\n\n\t\tconst currentStep = steps[currentStepIndex];\n\t\tif (!currentStep) return;\n\n\t\tconst el = getTargetElement(currentStep);\n\t\tif (el) {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetTargetRect(rect);\n\t\t\t// 自动平滑滚动到可见区域\n\t\t\tel.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\t\t} else {\n\t\t\tsetTargetRect(null);\n\t\t}\n\t}, [open, steps, currentStepIndex]);\n\n\tif (!open || steps.length === 0) return null;\n\n\tconst currentStep = steps[currentStepIndex];\n\tif (!currentStep) return null;\n\n\tconst handleNext = () => {\n\t\tif (currentStepIndex < steps.length - 1) {\n\t\t\tconst next = currentStepIndex + 1;\n\t\t\tif (controlledCurrent === undefined) setInternalCurrent(next);\n\t\t\tonChange?.(next);\n\t\t} else {\n\t\t\tif (storageKey) localStorage.setItem(storageKey, 'true');\n\t\t\tonFinish?.();\n\t\t\tonClose?.();\n\t\t}\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (currentStepIndex > 0) {\n\t\t\tconst prev = currentStepIndex - 1;\n\t\t\tif (controlledCurrent === undefined) setInternalCurrent(prev);\n\t\t\tonChange?.(prev);\n\t\t}\n\t};\n\n\tconst handleSkip = () => {\n\t\tif (storageKey) localStorage.setItem(storageKey, 'true');\n\t\tonClose?.();\n\t};\n\n\t// 气泡卡片定位计算\n\tlet popoverTop = 100;\n\tlet popoverLeft = 100;\n\n\tif (targetRect) {\n\t\tconst placement = currentStep.placement || 'bottom';\n\t\tconst padding = 12;\n\n\t\tif (placement === 'bottom') {\n\t\t\tpopoverTop = targetRect.bottom + padding;\n\t\t\tpopoverLeft = targetRect.left;\n\t\t} else if (placement === 'top') {\n\t\t\tpopoverTop = targetRect.top - 180 - padding;\n\t\t\tpopoverLeft = targetRect.left;\n\t\t} else if (placement === 'left') {\n\t\t\tpopoverTop = targetRect.top;\n\t\t\tpopoverLeft = targetRect.left - 320 - padding;\n\t\t} else if (placement === 'right') {\n\t\t\tpopoverTop = targetRect.top;\n\t\t\tpopoverLeft = targetRect.right + padding;\n\t\t}\n\n\t\t// 视口防溢出修正\n\t\tpopoverLeft = Math.max(16, Math.min(window.innerWidth - 340, popoverLeft));\n\t\tpopoverTop = Math.max(16, Math.min(window.innerHeight - 200, popoverTop));\n\t}\n\n\treturn ReactDOM.createPortal(\n\t\t<div className={`rpc_guided_tour ${className}`} style={style}>\n\t\t\t{/* 镂空高亮遮罩层 */}\n\t\t\t{targetRect && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"rpc_guided_tour_highlight_box\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tleft: `${targetRect.left - 4}px`,\n\t\t\t\t\t\ttop: `${targetRect.top - 4}px`,\n\t\t\t\t\t\twidth: `${targetRect.width + 8}px`,\n\t\t\t\t\t\theight: `${targetRect.height + 8}px`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{/* 引导卡片 */}\n\t\t\t<div\n\t\t\t\tclassName=\"rpc_guided_tour_popover\"\n\t\t\t\tstyle={{\n\t\t\t\t\tleft: `${popoverLeft}px`,\n\t\t\t\t\ttop: `${popoverTop}px`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"rpc_guided_tour_header\">\n\t\t\t\t\t<span className=\"rpc_guided_tour_title\">{currentStep.title}</span>\n\t\t\t\t\t<CloseOutlined style={{ cursor: 'pointer', color: '#8c8c8c' }} onClick={handleSkip} />\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"rpc_guided_tour_description\">{currentStep.description}</div>\n\n\t\t\t\t<div className=\"rpc_guided_tour_footer\">\n\t\t\t\t\t<span className=\"rpc_guided_tour_progress\">\n\t\t\t\t\t\t{currentStepIndex + 1} / {steps.length}\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<div className=\"rpc_guided_tour_actions\">\n\t\t\t\t\t\t{currentStepIndex > 0 && (\n\t\t\t\t\t\t\t<button type=\"button\" className=\"rpc_guided_tour_btn\" onClick={handlePrev}>\n\t\t\t\t\t\t\t\t上一步\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_guided_tour_btn rpc_guided_tour_btn_primary\"\n\t\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{currentStepIndex === steps.length - 1 ? '完成' : '下一步'}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body,\n\t);\n};\n\nexport default GuidedTour;\n"]}
1
+ {"version":3,"sources":["../GuidedTour/index.tsx"],"names":["currentStep"],"mappings":"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","file":"chunk-IF4XAUV3.js","sourcesContent":["import React, { useState, useEffect, ReactNode, CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport type TourPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface TourStep {\n\t/** 目标 DOM 节点选择器、DOM 对象或获取函数 */\n\ttarget: string | HTMLElement | (() => HTMLElement | null) | null;\n\t/** 引导步骤标题 */\n\ttitle: ReactNode;\n\t/** 引导步骤详细说明 */\n\tdescription: ReactNode;\n\t/** 气泡对齐方向,默认为 'bottom' */\n\tplacement?: TourPlacement;\n}\n\nexport interface GuidedTourProps {\n\t/** 引导步骤列表 */\n\tsteps: TourStep[];\n\t/** 是否开启引导 */\n\topen: boolean;\n\t/** 当前步数(受控,可选) */\n\tcurrent?: number;\n\t/** 步数改变回调 */\n\tonChange?: (current: number) => void;\n\t/** 关闭/跳过引导回调 */\n\tonClose?: () => void;\n\t/** 全部引导完成回调 */\n\tonFinish?: () => void;\n\t/** LocalStorage 存储已完成状态的 Key(若提供则完成或跳过后自动持久化记录) */\n\tstorageKey?: string;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst GuidedTour: React.FC<GuidedTourProps> = ({\n\tsteps = [],\n\topen,\n\tcurrent: controlledCurrent,\n\tonChange,\n\tonClose,\n\tonFinish,\n\tstorageKey,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalCurrent, setInternalCurrent] = useState<number>(0);\n\tconst currentStepIndex = controlledCurrent !== undefined ? controlledCurrent : internalCurrent;\n\n\tconst [targetRect, setTargetRect] = useState<DOMRect | null>(null);\n\n\t// 获取当前步骤的目标 DOM\n\tconst getTargetElement = (step: TourStep): HTMLElement | null => {\n\t\tif (!step || !step.target) return null;\n\t\tif (typeof step.target === 'function') {\n\t\t\treturn step.target();\n\t\t}\n\t\tif (typeof step.target === 'string') {\n\t\t\treturn document.querySelector(step.target);\n\t\t}\n\t\treturn step.target;\n\t};\n\n\t// 计算目标节点坐标\n\tuseEffect(() => {\n\t\tif (!open || steps.length === 0) return;\n\n\t\tconst currentStep = steps[currentStepIndex];\n\t\tif (!currentStep) return;\n\n\t\tconst el = getTargetElement(currentStep);\n\t\tif (el) {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetTargetRect(rect);\n\t\t\t// 自动平滑滚动到可见区域\n\t\t\tel.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\t\t} else {\n\t\t\tsetTargetRect(null);\n\t\t}\n\t}, [open, steps, currentStepIndex]);\n\n\tif (!open || steps.length === 0) return null;\n\n\tconst currentStep = steps[currentStepIndex];\n\tif (!currentStep) return null;\n\n\tconst handleNext = () => {\n\t\tif (currentStepIndex < steps.length - 1) {\n\t\t\tconst next = currentStepIndex + 1;\n\t\t\tif (controlledCurrent === undefined) setInternalCurrent(next);\n\t\t\tonChange?.(next);\n\t\t} else {\n\t\t\tif (storageKey) localStorage.setItem(storageKey, 'true');\n\t\t\tonFinish?.();\n\t\t\tonClose?.();\n\t\t}\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (currentStepIndex > 0) {\n\t\t\tconst prev = currentStepIndex - 1;\n\t\t\tif (controlledCurrent === undefined) setInternalCurrent(prev);\n\t\t\tonChange?.(prev);\n\t\t}\n\t};\n\n\tconst handleSkip = () => {\n\t\tif (storageKey) localStorage.setItem(storageKey, 'true');\n\t\tonClose?.();\n\t};\n\n\t// 气泡卡片定位计算\n\tlet popoverTop = 100;\n\tlet popoverLeft = 100;\n\n\tif (targetRect) {\n\t\tconst placement = currentStep.placement || 'bottom';\n\t\tconst padding = 12;\n\n\t\tif (placement === 'bottom') {\n\t\t\tpopoverTop = targetRect.bottom + padding;\n\t\t\tpopoverLeft = targetRect.left;\n\t\t} else if (placement === 'top') {\n\t\t\tpopoverTop = targetRect.top - 180 - padding;\n\t\t\tpopoverLeft = targetRect.left;\n\t\t} else if (placement === 'left') {\n\t\t\tpopoverTop = targetRect.top;\n\t\t\tpopoverLeft = targetRect.left - 320 - padding;\n\t\t} else if (placement === 'right') {\n\t\t\tpopoverTop = targetRect.top;\n\t\t\tpopoverLeft = targetRect.right + padding;\n\t\t}\n\n\t\t// 视口防溢出修正\n\t\tpopoverLeft = Math.max(16, Math.min(window.innerWidth - 340, popoverLeft));\n\t\tpopoverTop = Math.max(16, Math.min(window.innerHeight - 200, popoverTop));\n\t}\n\n\treturn ReactDOM.createPortal(\n\t\t<div className={`rpc_guided_tour ${className}`} style={style}>\n\t\t\t{/* 镂空高亮遮罩层 */}\n\t\t\t{targetRect && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"rpc_guided_tour_highlight_box\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tleft: `${targetRect.left - 4}px`,\n\t\t\t\t\t\ttop: `${targetRect.top - 4}px`,\n\t\t\t\t\t\twidth: `${targetRect.width + 8}px`,\n\t\t\t\t\t\theight: `${targetRect.height + 8}px`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{/* 引导卡片 */}\n\t\t\t<div\n\t\t\t\tclassName=\"rpc_guided_tour_popover\"\n\t\t\t\tstyle={{\n\t\t\t\t\tleft: `${popoverLeft}px`,\n\t\t\t\t\ttop: `${popoverTop}px`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"rpc_guided_tour_header\">\n\t\t\t\t\t<span className=\"rpc_guided_tour_title\">{currentStep.title}</span>\n\t\t\t\t\t<CloseOutlined style={{ cursor: 'pointer', color: '#8c8c8c' }} onClick={handleSkip} />\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"rpc_guided_tour_description\">{currentStep.description}</div>\n\n\t\t\t\t<div className=\"rpc_guided_tour_footer\">\n\t\t\t\t\t<span className=\"rpc_guided_tour_progress\">\n\t\t\t\t\t\t{currentStepIndex + 1} / {steps.length}\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<div className=\"rpc_guided_tour_actions\">\n\t\t\t\t\t\t{currentStepIndex > 0 && (\n\t\t\t\t\t\t\t<button type=\"button\" className=\"rpc_guided_tour_btn\" onClick={handlePrev}>\n\t\t\t\t\t\t\t\t上一步\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_guided_tour_btn rpc_guided_tour_btn_primary\"\n\t\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{currentStepIndex === steps.length - 1 ? '完成' : '下一步'}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body,\n\t);\n};\n\nexport default GuidedTour;\n"]}