react-resize-demo 2.0.3 → 3.0.0

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 (138) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/README.md +115 -66
  3. package/dist/core/PanelManager.js +2 -0
  4. package/dist/core/PanelManager.js.map +1 -0
  5. package/dist/core/virtualNode.js +2 -0
  6. package/dist/core/virtualNode.js.map +1 -0
  7. package/dist/esm/core/PanelManager.js +2 -0
  8. package/dist/esm/core/PanelManager.js.map +1 -0
  9. package/dist/esm/core/virtualNode.js +2 -0
  10. package/dist/esm/core/virtualNode.js.map +1 -0
  11. package/dist/esm/index.d.ts +14 -3
  12. package/dist/esm/index.js +1 -1
  13. package/dist/esm/strategies/basic/components/ResizeHandle/index.d.ts +18 -0
  14. package/dist/esm/strategies/basic/components/ResizeHandle/index.js +2 -0
  15. package/dist/esm/strategies/basic/components/ResizeHandle/index.js.map +1 -0
  16. package/dist/esm/{components → strategies/basic/components}/ResizePanel/index.d.ts +2 -1
  17. package/dist/esm/strategies/basic/components/ResizePanel/index.js +2 -0
  18. package/dist/esm/strategies/basic/components/ResizePanel/index.js.map +1 -0
  19. package/dist/{components → esm/strategies/basic/components}/ResizePanelGroup/index.d.ts +3 -3
  20. package/dist/esm/strategies/basic/components/ResizePanelGroup/index.js +2 -0
  21. package/dist/esm/strategies/basic/components/ResizePanelGroup/index.js.map +1 -0
  22. package/dist/esm/strategies/basic/context.d.ts +28 -0
  23. package/dist/esm/{components/shared → strategies/basic}/context.js +1 -1
  24. package/dist/esm/strategies/basic/context.js.map +1 -0
  25. package/dist/esm/strategies/basic/resizeAble.js +2 -0
  26. package/dist/esm/strategies/basic/resizeAble.js.map +1 -0
  27. package/dist/esm/strategies/flex/components/ResizeHandleFlex/index.d.ts +18 -0
  28. package/dist/esm/strategies/flex/components/ResizeHandleFlex/index.js +2 -0
  29. package/dist/esm/strategies/flex/components/ResizeHandleFlex/index.js.map +1 -0
  30. package/dist/esm/strategies/flex/components/ResizePanelGroupFlex/index.d.ts +21 -0
  31. package/dist/esm/strategies/flex/components/ResizePanelGroupFlex/index.js +2 -0
  32. package/dist/esm/strategies/flex/components/ResizePanelGroupFlex/index.js.map +1 -0
  33. package/dist/esm/strategies/flex/resizeAble.js +2 -0
  34. package/dist/esm/strategies/flex/resizeAble.js.map +1 -0
  35. package/dist/esm/strategies/flex-linked/components/ResizeHandleFlexLinked/index.d.ts +17 -0
  36. package/dist/esm/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js +2 -0
  37. package/dist/esm/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js.map +1 -0
  38. package/dist/esm/strategies/flex-linked/components/ResizePanelFlexLinked/index.d.ts +17 -0
  39. package/dist/esm/strategies/flex-linked/components/ResizePanelFlexLinked/index.js +2 -0
  40. package/dist/esm/strategies/flex-linked/components/ResizePanelFlexLinked/index.js.map +1 -0
  41. package/dist/esm/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.d.ts +20 -0
  42. package/dist/esm/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js +2 -0
  43. package/dist/esm/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js.map +1 -0
  44. package/dist/esm/strategies/flex-linked/context.js +2 -0
  45. package/dist/esm/strategies/flex-linked/context.js.map +1 -0
  46. package/dist/esm/strategies/flex-linked/resizeAble.js +2 -0
  47. package/dist/esm/strategies/flex-linked/resizeAble.js.map +1 -0
  48. package/dist/esm/strategies/linked/components/ResizeHandleLinked/index.d.ts +18 -0
  49. package/dist/esm/strategies/linked/components/ResizeHandleLinked/index.js +2 -0
  50. package/dist/esm/strategies/linked/components/ResizeHandleLinked/index.js.map +1 -0
  51. package/dist/esm/strategies/linked/components/ResizePanelGroupLinked/index.d.ts +19 -0
  52. package/dist/esm/strategies/linked/components/ResizePanelGroupLinked/index.js +2 -0
  53. package/dist/esm/strategies/linked/components/ResizePanelGroupLinked/index.js.map +1 -0
  54. package/dist/esm/strategies/linked/components/ResizePanelLinked/index.d.ts +17 -0
  55. package/dist/esm/strategies/linked/components/ResizePanelLinked/index.js +2 -0
  56. package/dist/esm/strategies/linked/components/ResizePanelLinked/index.js.map +1 -0
  57. package/dist/esm/strategies/linked/context.d.ts +29 -0
  58. package/dist/esm/strategies/linked/context.js +2 -0
  59. package/dist/esm/strategies/linked/context.js.map +1 -0
  60. package/dist/esm/strategies/linked/resizeAble.js +2 -0
  61. package/dist/esm/strategies/linked/resizeAble.js.map +1 -0
  62. package/dist/esm/types/index.d.ts +36 -2
  63. package/dist/index.d.ts +14 -3
  64. package/dist/index.js +1 -1
  65. package/dist/strategies/basic/components/ResizeHandle/index.d.ts +18 -0
  66. package/dist/strategies/basic/components/ResizeHandle/index.js +2 -0
  67. package/dist/strategies/basic/components/ResizeHandle/index.js.map +1 -0
  68. package/dist/{components → strategies/basic/components}/ResizePanel/index.d.ts +2 -1
  69. package/dist/strategies/basic/components/ResizePanel/index.js +2 -0
  70. package/dist/strategies/basic/components/ResizePanel/index.js.map +1 -0
  71. package/dist/{esm → strategies/basic}/components/ResizePanelGroup/index.d.ts +3 -3
  72. package/dist/strategies/basic/components/ResizePanelGroup/index.js +2 -0
  73. package/dist/strategies/basic/components/ResizePanelGroup/index.js.map +1 -0
  74. package/dist/strategies/basic/context.d.ts +28 -0
  75. package/dist/strategies/basic/context.js +2 -0
  76. package/dist/strategies/basic/context.js.map +1 -0
  77. package/dist/strategies/basic/resizeAble.js +2 -0
  78. package/dist/strategies/basic/resizeAble.js.map +1 -0
  79. package/dist/strategies/flex/components/ResizeHandleFlex/index.d.ts +18 -0
  80. package/dist/strategies/flex/components/ResizeHandleFlex/index.js +2 -0
  81. package/dist/strategies/flex/components/ResizeHandleFlex/index.js.map +1 -0
  82. package/dist/strategies/flex/components/ResizePanelGroupFlex/index.d.ts +21 -0
  83. package/dist/strategies/flex/components/ResizePanelGroupFlex/index.js +2 -0
  84. package/dist/strategies/flex/components/ResizePanelGroupFlex/index.js.map +1 -0
  85. package/dist/strategies/flex/resizeAble.js +2 -0
  86. package/dist/strategies/flex/resizeAble.js.map +1 -0
  87. package/dist/strategies/flex-linked/components/ResizeHandleFlexLinked/index.d.ts +17 -0
  88. package/dist/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js +2 -0
  89. package/dist/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js.map +1 -0
  90. package/dist/strategies/flex-linked/components/ResizePanelFlexLinked/index.d.ts +17 -0
  91. package/dist/strategies/flex-linked/components/ResizePanelFlexLinked/index.js +2 -0
  92. package/dist/strategies/flex-linked/components/ResizePanelFlexLinked/index.js.map +1 -0
  93. package/dist/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.d.ts +20 -0
  94. package/dist/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js +2 -0
  95. package/dist/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js.map +1 -0
  96. package/dist/strategies/flex-linked/context.js +2 -0
  97. package/dist/strategies/flex-linked/context.js.map +1 -0
  98. package/dist/strategies/flex-linked/resizeAble.js +2 -0
  99. package/dist/strategies/flex-linked/resizeAble.js.map +1 -0
  100. package/dist/strategies/linked/components/ResizeHandleLinked/index.d.ts +18 -0
  101. package/dist/strategies/linked/components/ResizeHandleLinked/index.js +2 -0
  102. package/dist/strategies/linked/components/ResizeHandleLinked/index.js.map +1 -0
  103. package/dist/strategies/linked/components/ResizePanelGroupLinked/index.d.ts +19 -0
  104. package/dist/strategies/linked/components/ResizePanelGroupLinked/index.js +2 -0
  105. package/dist/strategies/linked/components/ResizePanelGroupLinked/index.js.map +1 -0
  106. package/dist/strategies/linked/components/ResizePanelLinked/index.d.ts +17 -0
  107. package/dist/strategies/linked/components/ResizePanelLinked/index.js +2 -0
  108. package/dist/strategies/linked/components/ResizePanelLinked/index.js.map +1 -0
  109. package/dist/strategies/linked/context.d.ts +29 -0
  110. package/dist/strategies/linked/context.js +2 -0
  111. package/dist/strategies/linked/context.js.map +1 -0
  112. package/dist/strategies/linked/resizeAble.js +2 -0
  113. package/dist/strategies/linked/resizeAble.js.map +1 -0
  114. package/dist/types/index.d.ts +36 -2
  115. package/package.json +38 -7
  116. package/dist/components/ResizeHandle/index.js +0 -2
  117. package/dist/components/ResizeHandle/index.js.map +0 -1
  118. package/dist/components/ResizePanel/index.js +0 -2
  119. package/dist/components/ResizePanel/index.js.map +0 -1
  120. package/dist/components/ResizePanelGroup/index.js +0 -2
  121. package/dist/components/ResizePanelGroup/index.js.map +0 -1
  122. package/dist/components/shared/context.js +0 -2
  123. package/dist/components/shared/context.js.map +0 -1
  124. package/dist/esm/components/ResizeHandle/index.js +0 -2
  125. package/dist/esm/components/ResizeHandle/index.js.map +0 -1
  126. package/dist/esm/components/ResizePanel/index.js +0 -2
  127. package/dist/esm/components/ResizePanel/index.js.map +0 -1
  128. package/dist/esm/components/ResizePanelGroup/index.js +0 -2
  129. package/dist/esm/components/ResizePanelGroup/index.js.map +0 -1
  130. package/dist/esm/components/shared/context.js.map +0 -1
  131. package/dist/esm/utils/resizeAble.js +0 -2
  132. package/dist/esm/utils/resizeAble.js.map +0 -1
  133. package/dist/esm/utils/virtualNode.js +0 -2
  134. package/dist/esm/utils/virtualNode.js.map +0 -1
  135. package/dist/utils/resizeAble.js +0 -2
  136. package/dist/utils/resizeAble.js.map +0 -1
  137. package/dist/utils/virtualNode.js +0 -2
  138. package/dist/utils/virtualNode.js.map +0 -1
@@ -27,7 +27,16 @@ interface VirtualNodeConfig {
27
27
  */
28
28
  type ResizeDirection = 'horizontal' | 'vertical';
29
29
  /**
30
- * ResizeAbleCore 选项接口
30
+ * 优化策略类型
31
+ */
32
+ type OptimizationStrategy = 'normal' | 'linked';
33
+ /**
34
+ * 面板变化回调函数类型
35
+ * @param changedIndices - 发生变化的面板索引集合
36
+ */
37
+ type OnPanelsChangeCallback = (changedIndices: Set<number>) => void;
38
+ /**
39
+ * ResizeAbleCore 选项接口(常规策略)
31
40
  */
32
41
  interface ResizeAbleCoreOptions {
33
42
  prePanelEl: HTMLElement;
@@ -39,6 +48,31 @@ interface ResizeAbleCoreOptions {
39
48
  virtualEnabled?: boolean;
40
49
  virtualConfig?: VirtualNodeConfig;
41
50
  handleSize?: number;
51
+ onPanelsChange?: OnPanelsChangeCallback;
52
+ }
53
+ /**
54
+ * ResizeAbleCoreLinked 选项接口(链表优化策略)
55
+ */
56
+ interface ResizeAbleCoreLinkedOptions {
57
+ prePanelEl: HTMLElement;
58
+ nextPanelEl: HTMLElement;
59
+ getPanelInfo: (index: number) => PanelInfo | null;
60
+ getPanelNode: (index: number) => PanelNode | null;
61
+ prePanelIndex: number;
62
+ nextPanelIndex: number;
63
+ direction: ResizeDirection;
64
+ virtualEnabled?: boolean;
65
+ virtualConfig?: VirtualNodeConfig;
66
+ handleSize?: number;
67
+ }
68
+ /**
69
+ * 链表结构
70
+ */
71
+ interface PanelNode {
72
+ index: number;
73
+ info: PanelInfo;
74
+ prev: PanelNode | null;
75
+ next: PanelNode | null;
42
76
  }
43
77
 
44
- export type { PanelInfo, ResizeAbleCoreOptions, ResizeDirection, VirtualConfig, VirtualNodeConfig };
78
+ export type { OnPanelsChangeCallback, OptimizationStrategy, PanelInfo, PanelNode, ResizeAbleCoreLinkedOptions, ResizeAbleCoreOptions, ResizeDirection, VirtualConfig, VirtualNodeConfig };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,14 @@
1
- export { ResizePanelGroup as ResizablePanelGroup, ResizePanelGroup as ResizeablePanelGroup } from './components/ResizePanelGroup/index.js';
2
- export { ResizePanel as ResizablePanel, ResizePanel as ResizeablePanel } from './components/ResizePanel/index.js';
3
- export { PanelInfo, ResizeAbleCoreOptions, ResizeDirection, VirtualConfig, VirtualNodeConfig } from './types/index.js';
1
+ export { ResizePanelGroup as ResizablePanelGroup, ResizePanelGroup, ResizePanelGroupProps, ResizePanelGroup as ResizeablePanelGroup } from './strategies/basic/components/ResizePanelGroup/index.js';
2
+ export { ResizePanel as ResizablePanel, ResizePanel, ResizePanelProps, ResizePanel as ResizeablePanel } from './strategies/basic/components/ResizePanel/index.js';
3
+ export { ResizeHandle, ResizeHandleProps } from './strategies/basic/components/ResizeHandle/index.js';
4
+ export { ResizableContext, ResizableContextValue, useResizableContext } from './strategies/basic/context.js';
5
+ export { ResizePanelGroupLinked, ResizePanelGroupLinkedProps } from './strategies/linked/components/ResizePanelGroupLinked/index.js';
6
+ export { ResizePanelLinked, ResizePanelLinkedProps } from './strategies/linked/components/ResizePanelLinked/index.js';
7
+ export { ResizeHandleLinked, ResizeHandleLinkedProps } from './strategies/linked/components/ResizeHandleLinked/index.js';
8
+ export { ResizableContextLinked, ResizableContextLinkedValue, useResizableContextLinked } from './strategies/linked/context.js';
9
+ export { ResizePanelGroupFlex, ResizePanelGroupFlexProps } from './strategies/flex/components/ResizePanelGroupFlex/index.js';
10
+ export { ResizeHandleFlex, ResizeHandleFlexProps } from './strategies/flex/components/ResizeHandleFlex/index.js';
11
+ export { ResizePanelGroupFlexLinked, ResizePanelGroupFlexLinkedProps } from './strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js';
12
+ export { ResizePanelFlexLinked, ResizePanelFlexLinkedProps } from './strategies/flex-linked/components/ResizePanelFlexLinked/index.js';
13
+ export { ResizeHandleFlexLinked, ResizeHandleFlexLinkedProps } from './strategies/flex-linked/components/ResizeHandleFlexLinked/index.js';
14
+ export { OptimizationStrategy, PanelInfo, PanelNode, ResizeAbleCoreLinkedOptions, ResizeAbleCoreOptions, ResizeDirection, VirtualConfig, VirtualNodeConfig } from './types/index.js';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./components/ResizePanelGroup/index.js"),s=require("./components/ResizePanel/index.js");exports.ResizablePanelGroup=e.ResizePanelGroup,exports.ResizeablePanelGroup=e.ResizePanelGroup,exports.ResizablePanel=s.ResizePanel,exports.ResizeablePanel=s.ResizePanel;
1
+ "use strict";const e=require("./strategies/basic/components/ResizePanelGroup/index.js"),s=require("./strategies/basic/components/ResizePanel/index.js"),i=require("./strategies/basic/components/ResizeHandle/index.js"),n=require("./strategies/linked/components/ResizePanelGroupLinked/index.js"),l=require("./strategies/linked/components/ResizePanelLinked/index.js"),t=require("./strategies/linked/components/ResizeHandleLinked/index.js"),r=require("./strategies/flex/components/ResizePanelGroupFlex/index.js"),a=require("./strategies/flex/components/ResizeHandleFlex/index.js"),o=require("./strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js"),x=require("./strategies/flex-linked/components/ResizePanelFlexLinked/index.js"),d=require("./strategies/flex-linked/components/ResizeHandleFlexLinked/index.js"),z=require("./strategies/basic/context.js"),R=require("./strategies/linked/context.js");exports.ResizablePanelGroup=e.ResizePanelGroup,exports.ResizePanelGroup=e.ResizePanelGroup,exports.ResizeablePanelGroup=e.ResizePanelGroup,exports.ResizablePanel=s.ResizePanel,exports.ResizePanel=s.ResizePanel,exports.ResizeablePanel=s.ResizePanel,exports.ResizeHandle=i.ResizeHandle,exports.ResizePanelGroupLinked=n.ResizePanelGroupLinked,exports.ResizePanelLinked=l.ResizePanelLinked,exports.ResizeHandleLinked=t.ResizeHandleLinked,exports.ResizePanelGroupFlex=r.ResizePanelGroupFlex,exports.ResizeHandleFlex=a.ResizeHandleFlex,exports.ResizePanelGroupFlexLinked=o.ResizePanelGroupFlexLinked,exports.ResizePanelFlexLinked=x.ResizePanelFlexLinked,exports.ResizeHandleFlexLinked=d.ResizeHandleFlexLinked,exports.ResizableContext=z.ResizableContext,exports.useResizableContext=z.useResizableContext,exports.ResizableContextLinked=R.ResizableContextLinked,exports.useResizableContextLinked=R.useResizableContextLinked;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { ResizeDirection } from '../../../../types/index.js';
3
+
4
+ /**
5
+ * 拖拽手柄组件(常规策略)
6
+ * 负责处理面板之间的拖拽调整功能
7
+ * 使用 ResizeAbleCore(常规策略)
8
+ */
9
+
10
+ interface ResizeHandleProps {
11
+ prePanelIndex: number;
12
+ nextPanelIndex: number;
13
+ direction: ResizeDirection;
14
+ }
15
+ declare const ResizeHandle: React.FC<ResizeHandleProps>;
16
+
17
+ export { ResizeHandle };
18
+ export type { ResizeHandleProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),n=require("react"),t=require("../../resizeAble.js"),r=require("../../context.js");exports.ResizeHandle=({prePanelIndex:o,nextPanelIndex:s,direction:u})=>{const i=n.useRef(null),l=n.useRef(null),{getPanelInfo:c,panelCount:a,virtualConfig:d}=r.useResizableContext();n.useEffect(()=>{if(!i.current)return;const e=c(o),n=c(s);if(!e||!n)return;const r=i.current?"horizontal"===u?i.current.offsetWidth:i.current.offsetHeight:10;l.current=new t.default({prePanelEl:e.panelEl,nextPanelEl:n.panelEl,getPanelInfo:c,prePanelIndex:o,nextPanelIndex:s,direction:u,virtualEnabled:d.enabled||!1,virtualConfig:{style:d.style,className:d.className},handleSize:r});const a=i.current;if(!a)return;let f=!1,m=0;const v=e=>{e.preventDefault(),e.stopPropagation(),f=!0,m="horizontal"===u?e.clientX:e.clientY,l.current&&l.current.startResize()},x=e=>{if(!f||!l.current)return;const n=("horizontal"===u?e.clientX:e.clientY)-m;l.current.onResize(n)},p=()=>{f&&l.current&&(f=!1,l.current.endResize())};return a.addEventListener("mousedown",v),document.addEventListener("mousemove",x),document.addEventListener("mouseup",p),()=>{a.removeEventListener("mousedown",v),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",p),l.current&&(l.current.destroy(),l.current=null)}},[o,s,u,c,a,d]);const f="horizontal"===u;return e.jsx("div",{ref:i,style:{position:"relative",width:f?"10px":"100%",height:f?"100%":"10px",backgroundColor:"#000",cursor:f?"ew-resize":"ns-resize",zIndex:1e3,flexShrink:0}})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/basic/components/ResizeHandle/index.tsx"],"sourcesContent":[null],"names":["prePanelIndex","nextPanelIndex","direction","handleRef","useRef","coreInstanceRef","getPanelInfo","panelCount","virtualConfig","useResizableContext","useEffect","current","prePanelInfo","nextPanelInfo","handleSize","offsetWidth","offsetHeight","ResizeAbleCore","prePanelEl","panelEl","nextPanelEl","virtualEnabled","enabled","style","className","handleEl","isResizing","startPos","startResize","e","preventDefault","stopPropagation","clientX","clientY","onResizeMove","delta","onResize","endResize","addEventListener","document","removeEventListener","destroy","isHorizontal","_jsx","ref","position","width","height","backgroundColor","cursor","zIndex","flexShrink"],"mappings":"yJAgByD,EACrDA,gBACAC,iBACAC,gBAEA,MAAMC,EAAYC,EAAAA,OAAuB,MACnCC,EAAkBD,EAAAA,OAAmD,OACrEE,aAAEA,EAAYC,WAAEA,EAAUC,cAAEA,GAAkBC,EAAAA,sBAEpDC,EAAAA,UAAU,KACN,IAAKP,EAAUQ,QACX,OAIJ,MAAMC,EAAeN,EAAaN,GAC5Ba,EAAgBP,EAAaL,GACnC,IAAIW,IAAiBC,EAEjB,OAIJ,MAAMC,EAAaX,EAAUQ,QACR,eAAdT,EACGC,EAAUQ,QAAQI,YAClBZ,EAAUQ,QAAQK,aACQ,GAGpCX,EAAgBM,QAAU,IAAIM,UAAe,CACzCC,WAAYN,EAAaO,QACzBC,YAAaP,EAAcM,QAC3Bb,eACAN,gBACAC,iBACAC,YACAmB,eAAgBb,EAAcc,UAAW,EACzCd,cAAe,CACXe,MAAOf,EAAce,MACrBC,UAAWhB,EAAcgB,WAE7BV,eAIJ,MAAMW,EAAWtB,EAAUQ,QAC3B,IAAKc,EAAU,OAEf,IAAIC,GAAa,EACbC,EAAW,EAEf,MAAMC,EAAeC,IACjBA,EAAEC,iBACFD,EAAEE,kBACFL,GAAa,EACbC,EAAyB,eAAdzB,EAA6B2B,EAAEG,QAAUH,EAAEI,QAClD5B,EAAgBM,SAChBN,EAAgBM,QAAQiB,eAI1BM,EAAgBL,IAClB,IAAIH,IAAerB,EAAgBM,QAAS,OAC5C,MACMwB,GAD2B,eAAdjC,EAA6B2B,EAAEG,QAAUH,EAAEI,SACnCN,EAE3BtB,EAAgBM,QAAQyB,SAASD,IAG/BE,EAAY,KACXX,GAAcrB,EAAgBM,UAC7Be,GAAa,EACbrB,EAAgBM,QAAQ0B,cAQhC,OAJAZ,EAASa,iBAAiB,YAAaV,GACvCW,SAASD,iBAAiB,YAAaJ,GACvCK,SAASD,iBAAiB,UAAWD,GAE9B,KACHZ,EAASe,oBAAoB,YAAaZ,GAC1CW,SAASC,oBAAoB,YAAaN,GAC1CK,SAASC,oBAAoB,UAAWH,GACrChC,EAAgBM,UACfN,EAAgBM,QAAQ8B,UACxBpC,EAAgBM,QAAU,QAGnC,CAACX,EAAeC,EAAgBC,EAAWI,EAAcC,EAAYC,IAExE,MAAMkC,EAA6B,eAAdxC,EACrB,OACIyC,EAAAA,IAAA,MAAA,CACIC,IAAKzC,EACLoB,MAAO,CACHsB,SAAU,WACVC,MAAOJ,EAAe,OAAS,OAC/BK,OAAQL,EAAe,OAAS,OAChCM,gBAAiB,OACjBC,OAAQP,EAAe,YAAc,YACrCQ,OAAQ,IACRC,WAAY"}
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
2
 
3
3
  /**
4
- * 可调整大小的面板组件
4
+ * 可调整大小的面板组件(常规策略)
5
5
  * 负责展示面板内容和管理面板的注册/注销
6
+ * 使用数组存储,适合面板数量较少的场景
6
7
  */
7
8
 
8
9
  interface ResizePanelProps {
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),r=require("react"),i=require("../../context.js");exports.ResizePanel=({children:t,minSize:n=100})=>{const s=r.useRef(null),u=r.useRef(-1),{registerPanel:c,unregisterPanel:l,direction:o}=i.useResizableContext();return r.useEffect(()=>{if(!s.current)return;const e=s.current;return u.current=c(e,n),()=>{l(e)}},[n,c,l]),e.jsx("div",{ref:s,style:{flex:1,minWidth:"horizontal"===o?n:void 0,minHeight:"vertical"===o?n:void 0,width:"auto",overflow:"hidden",position:"relative"},children:e.jsx("div",{style:{height:"100%",padding:16},children:t})})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/basic/components/ResizePanel/index.tsx"],"sourcesContent":[null],"names":["children","minSize","panelRef","useRef","panelIndexRef","registerPanel","unregisterPanel","direction","useResizableContext","useEffect","current","panelEl","_jsx","ref","style","flex","minWidth","undefined","minHeight","width","overflow","position","height","padding"],"mappings":"uHAcuD,EACnDA,WACAC,UAAU,QAGV,MAAMC,EAAWC,EAAAA,OAAuB,MAClCC,EAAgBD,EAAAA,YAChBE,cAAEA,EAAaC,gBAAEA,EAAeC,UAAEA,GAAcC,EAAAA,sBAWtD,OATAC,EAAAA,UAAU,KACN,IAAIP,EAASQ,QAAS,OACtB,MAAMC,EAAUT,EAASQ,QAEzB,OADAN,EAAcM,QAAUL,EAAcM,EAASV,GACxC,KACHK,EAAgBK,KAErB,CAACV,EAASI,EAAeC,IAGxBM,EAAAA,IAAA,MAAA,CACIC,IAAKX,EACLY,MAAO,CACHC,KAAM,EACNC,SAAwB,eAAdT,EAA6BN,OAAUgB,EACjDC,UAAyB,aAAdX,EAA2BN,OAAUgB,EAChDE,MAAO,OACPC,SAAU,SACVC,SAAU,YACbrB,SAEDY,EAAAA,WAAKE,MAAO,CAACQ,OAAQ,OAAQC,QAAS,IAAGvB,SACpCA"}
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { ResizeDirection, VirtualConfig } from '../../types/index.js';
2
+ import { ResizeDirection, VirtualConfig } from '../../../../types/index.js';
3
3
 
4
4
  /**
5
- * 可调整大小的面板组容器组件
6
- * 负责管理多个面板的布局和拖拽手柄的插入
5
+ * 可调整大小的面板组容器组件(常规策略)
6
+ * 使用数组存储面板信息,适合面板数量较少的场景
7
7
  */
8
8
 
9
9
  interface ResizePanelGroupProps {
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),r=require("react"),n=require("../../context.js"),t=require("../ResizeHandle/index.js");exports.ResizePanelGroup=({children:l,direction:i="horizontal",style:u,virtual:a=!1,virtualConfig:c={}})=>{const s=r.useRef([]),o=r.useRef(new Map),[d,h]=r.useState(0),f=r.useCallback((e,r)=>{const n=o.current.get(e);if(void 0!==n)return s.current[n]={panelEl:e,minSize:r},n;let t=-1;for(let e=0;e<s.current.length;e++)if(!s.current[e]){t=e;break}return-1===t?(t=s.current.length,s.current.push({panelEl:e,minSize:r})):s.current[t]={panelEl:e,minSize:r},o.current.set(e,t),h(s.current.filter(e=>null!=e).length),t},[]),g=r.useCallback(e=>{const r=o.current.get(e);void 0!==r&&(s.current[r]=null,o.current.delete(e),h(s.current.filter(e=>null!=e).length))},[]),p=r.useCallback(e=>{if(e<0||e>=s.current.length)return null;const r=s.current[e];return r&&r.panelEl?r:null},[]),x=r.useCallback(e=>o.current.get(e)??-1,[]),v=r.Children.toArray(l),z=[];v.forEach((r,n)=>{z.push(r),n<v.length-1&&z.push(e.jsx(t.ResizeHandle,{prePanelIndex:n,nextPanelIndex:n+1,direction:i},`handle-${n}`))});const C={enabled:a,...c},P={panelCount:d,registerPanel:f,unregisterPanel:g,getPanelInfo:p,getPanelIndex:x,direction:i,panelInfos:s.current.filter(e=>null!=e),virtualConfig:C};return e.jsx(n.ResizableContext.Provider,{value:P,children:e.jsx("div",{style:{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",position:"relative",...u},children:z})})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/basic/components/ResizePanelGroup/index.tsx"],"sourcesContent":[null],"names":["children","direction","style","virtual","virtualConfig","panelInfosRef","useRef","elementToIndexMapRef","Map","panelCount","setPanelCount","useState","registerPanel","useCallback","panelEl","minSize","existingIndex","current","get","undefined","index","i","length","push","set","filter","p","unregisterPanel","delete","getPanelInfo","info","getPanelIndex","childrenArray","React","Children","toArray","panelsWithHandles","forEach","child","_jsx","ResizeHandle","prePanelIndex","nextPanelIndex","mergedVirtualConfig","enabled","contextValue","panelInfos","ResizableContext","Provider","value","display","flexDirection","height","position"],"mappings":"kKAiBiE,EAC7DA,WACAC,YAAY,aACZC,QACAC,WAAU,EACVC,gBAAgB,CAAA,MAKhB,MAAMC,EAAgBC,EAAAA,OAA6B,IAC7CC,EAAuBD,EAAAA,OAAiC,IAAIE,MAC3DC,EAAYC,GAAiBC,EAAAA,SAAS,GAEvCC,EAAgBC,EAAAA,YAAY,CAACC,EAAsBC,KAErD,MAAMC,EAAgBT,EAAqBU,QAAQC,IAAIJ,GACvD,QAAsBK,IAAlBH,EAGA,OADAX,EAAcY,QAAQD,GAAiB,CAAEF,UAASC,WAC3CC,EAIX,IAAII,GAAQ,EACZ,IAAK,IAAIC,EAAI,EAAGA,EAAIhB,EAAcY,QAAQK,OAAQD,IAC9C,IAAKhB,EAAcY,QAAQI,GAAI,CAC3BD,EAAQC,EACR,KACJ,CAcJ,OAXc,IAAVD,GAEAA,EAAQf,EAAcY,QAAQK,OAC9BjB,EAAcY,QAAQM,KAAK,CAAET,UAASC,aAGtCV,EAAcY,QAAQG,GAAS,CAAEN,UAASC,WAG9CR,EAAqBU,QAAQO,IAAIV,EAASM,GAC1CV,EAAcL,EAAcY,QAAQQ,OAAOC,GAAKA,SAA+BJ,QACxEF,GACR,IAEGO,EAAkBd,cAAaC,IACjC,MAAMM,EAAQb,EAAqBU,QAAQC,IAAIJ,QACjCK,IAAVC,IAGAf,EAAcY,QAAQG,GAAS,KAC/Bb,EAAqBU,QAAQW,OAAOd,GACpCJ,EAAcL,EAAcY,QAAQQ,OAAOC,GAAKA,SAA+BJ,UAEpF,IAEGO,EAAehB,cAAaO,IAC9B,GAAIA,EAAQ,GAAKA,GAASf,EAAcY,QAAQK,OAC5C,OAAO,KAEX,MAAMQ,EAAOzB,EAAcY,QAAQG,GAEnC,OAAQU,GAAQA,EAAKhB,QAAWgB,EAAO,MACxC,IAEGC,EAAgBlB,cAAaC,GACxBP,EAAqBU,QAAQC,IAAIJ,KAAY,EACrD,IAEGkB,EAAgBC,EAAMC,SAASC,QAAQnC,GACvCoC,EAAuC,GAE7CJ,EAAcK,QAAQ,CAACC,EAAOlB,KAC1BgB,EAAkBb,KAAKe,GAGnBlB,EAAQY,EAAcV,OAAS,GAC/Bc,EAAkBb,KACdgB,EAAAA,IAACC,EAAAA,cAEGC,cAAerB,EACfsB,eAAgBtB,EAAQ,EACxBnB,UAAWA,GAHN,UAAUmB,QAU/B,MAAMuB,EAAqC,CACvCC,QAASzC,KACNC,GAGDyC,EAAsC,CACxCpC,WAAYA,EACZG,gBACAe,kBACAE,eACAE,gBACA9B,YACA6C,WAAYzC,EAAcY,QAAQQ,OAAOC,GAAKA,SAC9CtB,cAAeuC,GAGnB,OACIJ,MAACQ,EAAAA,iBAAiBC,SAAQ,CAACC,MAAOJ,EAAY7C,SAC1CuC,EAAAA,IAAA,MAAA,CAAKrC,MAAO,CACJgD,QAAS,OACTC,cAA6B,eAAdlD,EAA6B,MAAQ,SACpDmD,OAAQ,OACRC,SAAU,cACPnD,GACVF,SACIoC"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { PanelInfo, ResizeDirection, VirtualConfig } from '../../types/index.js';
3
+
4
+ /**
5
+ * Resizable Context 接口定义(常规策略)
6
+ */
7
+ interface ResizableContextValue {
8
+ panelCount: number;
9
+ registerPanel: (panelEl: HTMLElement, minSize: number) => number;
10
+ unregisterPanel: (panelEl: HTMLElement) => void;
11
+ getPanelInfo: (index: number) => PanelInfo | null;
12
+ getPanelIndex: (panelEl: HTMLElement) => number;
13
+ direction: ResizeDirection;
14
+ panelInfos: PanelInfo[];
15
+ virtualConfig: VirtualConfig;
16
+ onPanelsChange?: (changedIndices: Set<number>) => void;
17
+ }
18
+ /**
19
+ * Resizable Context
20
+ */
21
+ declare const ResizableContext: React.Context<ResizableContextValue>;
22
+ /**
23
+ * 使用 Resizable Context 的 Hook
24
+ */
25
+ declare const useResizableContext: () => ResizableContextValue;
26
+
27
+ export { ResizableContext, useResizableContext };
28
+ export type { ResizableContextValue };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react"),n=e.createContext({panelCount:0,registerPanel:()=>0,unregisterPanel:()=>{},getPanelInfo:()=>null,getPanelIndex:()=>-1,direction:"horizontal",panelInfos:[],virtualConfig:{enabled:!1},onPanelsChange:void 0});exports.ResizableContext=n,exports.useResizableContext=()=>{const t=e.useContext(n);if(!t)throw new Error("useResizableContext must be used within ResizablePanelGroup");return t};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../src/strategies/basic/context.tsx"],"sourcesContent":[null],"names":["ResizableContext","React","createContext","panelCount","registerPanel","unregisterPanel","getPanelInfo","getPanelIndex","direction","panelInfos","virtualConfig","enabled","onPanelsChange","undefined","context","useContext","Error"],"mappings":"sCAoCaA,EAAmBC,EAAMC,cAfa,CAC/CC,WAAY,EACZC,cAAe,IAAM,EACrBC,gBAAiB,OACjBC,aAAc,IAAM,KACpBC,cAAe,KAAM,EACrBC,UAAW,aACXC,WAAY,GACZC,cAAe,CAAEC,SAAS,GAC1BC,oBAAgBC,2DAWe,KAC/B,MAAMC,EAAUb,EAAMc,WAAWf,GACjC,IAAKc,EACD,MAAM,IAAIE,MAAM,+DAEpB,OAAOF"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../../core/virtualNode.js");exports.default=class{constructor(t){Object.defineProperty(this,"prePanelEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nextPanelEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getPanelInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"prePanelIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nextPanelIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"direction",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isResizing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"prePanelStartSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"nextPanelStartSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"allPanelsStartSizes",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsStartPositions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsCurrentSizes",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"handleSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualNodeManager",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.prePanelEl=t.prePanelEl,this.nextPanelEl=t.nextPanelEl,this.getPanelInfo=t.getPanelInfo,this.prePanelIndex=t.prePanelIndex,this.nextPanelIndex=t.nextPanelIndex,this.direction=t.direction,this.virtualEnabled=t.virtualEnabled||!1,this.virtualConfig=t.virtualConfig||{},this.handleSize=t.handleSize||0,this.virtualEnabled&&(this.virtualNodeManager=new e.default)}startResize(){this.isResizing=!0,this.allPanelsCurrentSizes.clear(),this.prePanelStartSize=this.getSize(this.prePanelEl),this.allPanelsStartSizes.set(this.prePanelIndex,this.prePanelStartSize),this.allPanelsCurrentSizes.set(this.prePanelIndex,this.prePanelStartSize),this.nextPanelStartSize=this.getSize(this.nextPanelEl),this.allPanelsStartSizes.set(this.nextPanelIndex,this.nextPanelStartSize),this.allPanelsCurrentSizes.set(this.nextPanelIndex,this.nextPanelStartSize);const e="horizontal"===this.direction?"width":"height";if(this.virtualEnabled&&this.virtualNodeManager){const e=this.getPosition(this.prePanelEl);this.allPanelsStartPositions.set(this.prePanelIndex,e),this.virtualNodeManager.createVirtualNode(this.prePanelEl,this.virtualConfig);const t=this.getPosition(this.nextPanelEl);this.allPanelsStartPositions.set(this.nextPanelIndex,t),this.virtualNodeManager.createVirtualNode(this.nextPanelEl,this.virtualConfig);let i=this.prePanelIndex-1;for(;i>=0;){const e=this.getPanelInfo(i);if(!e)break;const t=this.getSize(e.panelEl),l=this.getPosition(e.panelEl);this.allPanelsStartSizes.set(i,t),this.allPanelsCurrentSizes.set(i,t),this.allPanelsStartPositions.set(i,l),this.virtualNodeManager.createVirtualNode(e.panelEl,this.virtualConfig),i--}let l=this.nextPanelIndex+1,a=this.getPanelInfo(l);for(;a;){const e=this.getSize(a.panelEl),t=this.getPosition(a.panelEl);this.allPanelsStartSizes.set(l,e),this.allPanelsCurrentSizes.set(l,e),this.allPanelsStartPositions.set(l,t),this.virtualNodeManager.createVirtualNode(a.panelEl,this.virtualConfig),l++,a=this.getPanelInfo(l)}}else{this.prePanelEl.style.flex="none",this.prePanelEl.style[e]=`${this.prePanelStartSize}px`,this.nextPanelEl.style.flex="none",this.nextPanelEl.style[e]=`${this.nextPanelStartSize}px`;let t=this.prePanelIndex-1;for(;t>=0;){const i=this.getPanelInfo(t);if(!i)break;const l=this.getSize(i.panelEl);this.allPanelsStartSizes.set(t,l),this.allPanelsCurrentSizes.set(t,l),i.panelEl.style.flex="none",i.panelEl.style[e]=`${l}px`,t--}let i=this.nextPanelIndex+1,l=this.getPanelInfo(i);for(;l;){const t=this.getSize(l.panelEl);this.allPanelsStartSizes.set(i,t),this.allPanelsCurrentSizes.set(i,t),l.panelEl.style.flex="none",l.panelEl.style[e]=`${t}px`,i++,l=this.getPanelInfo(i)}}}onResize(e){this.isResizing&&(e>0?this.adjustPanelsNext(e):this.adjustPanelsPre(-e))}adjustPanelsNext(e){let t=e;const i="horizontal"===this.direction?"width":"height",l=this.getPanelInfo(this.nextPanelIndex);if(l){const e=this.allPanelsStartSizes.get(this.nextPanelIndex)||0,a=e-t,n=Math.max(l.minSize,a),s=e-n;this.allPanelsCurrentSizes.set(this.nextPanelIndex,n),this.virtualEnabled&&this.virtualNodeManager?this.virtualNodeManager.updateVirtualNode(this.nextPanelEl,n,this.direction):this.nextPanelEl.style[i]=`${n}px`,t-=s}if(t>0){let e=this.nextPanelIndex+1;for(;t>0;){const l=this.getPanelInfo(e);if(!l)break;const a=this.allPanelsStartSizes.get(e)||0,n=a-t,s=Math.max(l.minSize,n),r=a-s;if(this.allPanelsCurrentSizes.set(e,s),this.virtualEnabled&&this.virtualNodeManager?this.virtualNodeManager.updateVirtualNode(l.panelEl,s,this.direction):l.panelEl.style[i]=`${s}px`,t-=r,!(s<=l.minSize&&t>0))break;e++}}if(this.getPanelInfo(this.prePanelIndex)){const l=(this.allPanelsStartSizes.get(this.prePanelIndex)||0)+(e-t);this.allPanelsCurrentSizes.set(this.prePanelIndex,l),this.virtualEnabled&&this.virtualNodeManager?(this.virtualNodeManager.updateVirtualNode(this.prePanelEl,l,this.direction),this.recalculateAllPanelsPositions()):this.prePanelEl.style[i]=`${l}px`}}adjustPanelsPre(e){let t=e,i=0;const l="horizontal"===this.direction?"width":"height",a=this.getPanelInfo(this.prePanelIndex);if(a){const e=this.allPanelsStartSizes.get(this.prePanelIndex)||0,n=e-t,s=Math.max(a.minSize,n),r=e-s;this.allPanelsCurrentSizes.set(this.prePanelIndex,s),this.virtualEnabled&&this.virtualNodeManager?this.virtualNodeManager.updateVirtualNode(this.prePanelEl,s,this.direction):this.prePanelEl.style[l]=`${s}px`,i+=r,t-=r}if(t>0){let e=this.prePanelIndex-1;for(;t>0&&e>=0;){const a=this.getPanelInfo(e);if(!a)break;const n=this.allPanelsStartSizes.get(e);if(void 0===n)break;const s=n-t,r=Math.max(a.minSize,s),o=n-r;if(this.allPanelsCurrentSizes.set(e,r),this.virtualEnabled&&this.virtualNodeManager?this.virtualNodeManager.updateVirtualNode(a.panelEl,r,this.direction):a.panelEl.style[l]=`${r}px`,i+=o,t-=o,!(r<=a.minSize&&t>0))break;e--}}if(this.getPanelInfo(this.nextPanelIndex)){const e=(this.allPanelsStartSizes.get(this.nextPanelIndex)||0)+i;this.allPanelsCurrentSizes.set(this.nextPanelIndex,e),this.virtualEnabled&&this.virtualNodeManager?(this.virtualNodeManager.updateVirtualNode(this.nextPanelEl,e,this.direction),this.recalculateAllPanelsPositions()):this.nextPanelEl.style[l]=`${e}px`}}recalculateAllPanelsPositions(){if(!this.virtualEnabled||!this.virtualNodeManager)return;const e=Array.from(this.allPanelsStartPositions.keys()).sort((e,t)=>e-t);if(0===e.length)return;const t=e[0];let i=this.allPanelsStartPositions.get(t)||0,l=null;for(const t of e){const e=this.getPanelInfo(t);if(!e)continue;const a=this.allPanelsStartPositions.get(t);void 0!==a&&(this.virtualNodeManager.getVirtualNode(e.panelEl)&&(null===l?i=a:i+=(this.allPanelsCurrentSizes.get(l)||0)+this.handleSize,this.virtualNodeManager.updateVirtualNodePosition(e.panelEl,i,this.direction),l=t))}}getSize(e){return"horizontal"===this.direction?e.offsetWidth:e.offsetHeight}getPosition(e){return"horizontal"===this.direction?e.offsetLeft:e.offsetTop}endResize(){if(this.isResizing=!1,this.virtualEnabled&&this.virtualNodeManager){const e="horizontal"===this.direction?"width":"height";this.allPanelsStartSizes.forEach((t,i)=>{const l=this.getPanelInfo(i);if(!l)return;const a=this.virtualNodeManager.getVirtualNode(l.panelEl);if(a){const t="horizontal"===this.direction?a.offsetWidth:a.offsetHeight;l.panelEl.style.flex="none",l.panelEl.style[e]=`${t}px`}}),this.virtualNodeManager.removeAllVirtualNodes(),requestAnimationFrame(()=>{this.allPanelsStartSizes.forEach((e,t)=>{const i=this.getPanelInfo(t);i&&(i.panelEl.style.flex="")})})}else requestAnimationFrame(()=>{this.allPanelsStartSizes.forEach((e,t)=>{const i=this.getPanelInfo(t);i&&(i.panelEl.style.flex="")})});this.allPanelsStartSizes.clear()}destroy(){this.endResize(),this.virtualNodeManager&&this.virtualNodeManager.destroy()}};
2
+ //# sourceMappingURL=resizeAble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizeAble.js","sources":["../../../src/strategies/basic/resizeAble.ts"],"sourcesContent":[null],"names":["constructor","options","Object","defineProperty","this","value","Map","prePanelEl","nextPanelEl","getPanelInfo","prePanelIndex","nextPanelIndex","direction","virtualEnabled","virtualConfig","handleSize","virtualNodeManager","VirtualNodeManager","startResize","isResizing","allPanelsCurrentSizes","clear","prePanelStartSize","getSize","allPanelsStartSizes","set","nextPanelStartSize","sizeProperty","prePos","getPosition","allPanelsStartPositions","createVirtualNode","nextPos","prevIndex","panelInfo","size","panelEl","pos","nextIndex","nextPanelInfo","style","flex","onResize","delta","adjustPanelsNext","adjustPanelsPre","remainingDelta","nextStartSize","get","targetNextSize","newNextSize","Math","max","minSize","actualReduction","updateVirtualNode","newPreSize","recalculateAllPanelsPositions","totalReduced","prePanelInfo","preStartSize","targetPreSize","prevPanelInfo","prevStartSize","undefined","targetPrevSize","newPrevSize","recordedIndices","Array","from","keys","sort","a","b","length","firstIndex","cumulativePosition","index","startPos","getVirtualNode","updateVirtualNodePosition","el","offsetWidth","offsetHeight","offsetLeft","offsetTop","endResize","forEach","_","virtualEl","finalSize","removeAllVirtualNodes","requestAnimationFrame","destroy"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { ResizeDirection } from '../../../../types/index.js';
3
+
4
+ /**
5
+ * 拖拽手柄组件(Flex 布局策略)
6
+ * 使用 flex-basis 而不是直接设置 width/height
7
+ * 参考 react-resizable-panels 的实现方式
8
+ */
9
+
10
+ interface ResizeHandleFlexProps {
11
+ prePanelIndex: number;
12
+ nextPanelIndex: number;
13
+ direction: ResizeDirection;
14
+ }
15
+ declare const ResizeHandleFlex: React.FC<ResizeHandleFlexProps>;
16
+
17
+ export { ResizeHandleFlex };
18
+ export type { ResizeHandleFlexProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),n=require("react"),t=require("../../resizeAble.js"),r=require("../../../basic/context.js");exports.ResizeHandleFlex=({prePanelIndex:o,nextPanelIndex:s,direction:u})=>{const i=n.useRef(null),l=n.useRef(null),{getPanelInfo:a,panelCount:c,virtualConfig:d,onPanelsChange:f}=r.useResizableContext();n.useEffect(()=>{if(!i.current)return;const e=a(o),n=a(s);if(!e||!n)return;const r=i.current?"horizontal"===u?i.current.offsetWidth:i.current.offsetHeight:10;l.current=new t.default({prePanelEl:e.panelEl,nextPanelEl:n.panelEl,getPanelInfo:a,prePanelIndex:o,nextPanelIndex:s,direction:u,virtualEnabled:d.enabled||!1,virtualConfig:{style:d.style,className:d.className},handleSize:r,onPanelsChange:f});const c=i.current;if(!c)return;let m=!1,v=0;const x=e=>{e.preventDefault(),e.stopPropagation(),m=!0,v="horizontal"===u?e.clientX:e.clientY,l.current&&l.current.startResize()},p=e=>{if(!m||!l.current)return;const n=("horizontal"===u?e.clientX:e.clientY)-v;l.current.onResize(n)},z=()=>{m&&l.current&&(m=!1,l.current.endResize())};return c.addEventListener("mousedown",x),document.addEventListener("mousemove",p),document.addEventListener("mouseup",z),()=>{c.removeEventListener("mousedown",x),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",z),l.current&&(l.current.destroy(),l.current=null)}},[o,s,u,a,c,d,f]);const m="horizontal"===u;return e.jsx("div",{ref:i,style:{position:"relative",width:m?"10px":"100%",height:m?"100%":"10px",backgroundColor:"#000",cursor:m?"ew-resize":"ns-resize",zIndex:1e3,flexShrink:0}})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/flex/components/ResizeHandleFlex/index.tsx"],"sourcesContent":[null],"names":["prePanelIndex","nextPanelIndex","direction","handleRef","useRef","coreInstanceRef","getPanelInfo","panelCount","virtualConfig","onPanelsChange","useResizableContext","useEffect","current","prePanelInfo","nextPanelInfo","handleSize","offsetWidth","offsetHeight","ResizeAbleCoreFlex","prePanelEl","panelEl","nextPanelEl","virtualEnabled","enabled","style","className","handleEl","isResizing","startPos","startResize","e","preventDefault","stopPropagation","clientX","clientY","onResizeMove","delta","onResize","endResize","addEventListener","document","removeEventListener","destroy","isHorizontal","_jsx","ref","position","width","height","backgroundColor","cursor","zIndex","flexShrink"],"mappings":"sKAgBiE,EAC7DA,gBACAC,iBACAC,gBAEA,MAAMC,EAAYC,EAAAA,OAAuB,MACnCC,EAAkBD,EAAAA,OAAuD,OACzEE,aAAEA,EAAYC,WAAEA,EAAUC,cAAEA,EAAaC,eAAEA,GAAmBC,EAAAA,sBAEpEC,EAAAA,UAAU,KACN,IAAKR,EAAUS,QACX,OAIJ,MAAMC,EAAeP,EAAaN,GAC5Bc,EAAgBR,EAAaL,GACnC,IAAIY,IAAiBC,EAEjB,OAIJ,MAAMC,EAAaZ,EAAUS,QACR,eAAdV,EACGC,EAAUS,QAAQI,YAClBb,EAAUS,QAAQK,aACQ,GAGpCZ,EAAgBO,QAAU,IAAIM,UAAmB,CAC7CC,WAAYN,EAAaO,QACzBC,YAAaP,EAAcM,QAC3Bd,eACAN,gBACAC,iBACAC,YACAoB,eAAgBd,EAAce,UAAW,EACzCf,cAAe,CACXgB,MAAOhB,EAAcgB,MACrBC,UAAWjB,EAAciB,WAE7BV,aACAN,mBAIJ,MAAMiB,EAAWvB,EAAUS,QAC3B,IAAKc,EAAU,OAEf,IAAIC,GAAa,EACbC,EAAW,EAEf,MAAMC,EAAeC,IACjBA,EAAEC,iBACFD,EAAEE,kBACFL,GAAa,EACbC,EAAyB,eAAd1B,EAA6B4B,EAAEG,QAAUH,EAAEI,QAClD7B,EAAgBO,SAChBP,EAAgBO,QAAQiB,eAI1BM,EAAgBL,IAClB,IAAIH,IAAetB,EAAgBO,QAAS,OAC5C,MACMwB,GAD2B,eAAdlC,EAA6B4B,EAAEG,QAAUH,EAAEI,SACnCN,EAE3BvB,EAAgBO,QAAQyB,SAASD,IAG/BE,EAAY,KACXX,GAActB,EAAgBO,UAC7Be,GAAa,EACbtB,EAAgBO,QAAQ0B,cAQhC,OAJAZ,EAASa,iBAAiB,YAAaV,GACvCW,SAASD,iBAAiB,YAAaJ,GACvCK,SAASD,iBAAiB,UAAWD,GAE9B,KACHZ,EAASe,oBAAoB,YAAaZ,GAC1CW,SAASC,oBAAoB,YAAaN,GAC1CK,SAASC,oBAAoB,UAAWH,GACrCjC,EAAgBO,UACfP,EAAgBO,QAAQ8B,UACxBrC,EAAgBO,QAAU,QAGnC,CAACZ,EAAeC,EAAgBC,EAAWI,EAAcC,EAAYC,EAAeC,IAEvF,MAAMkC,EAA6B,eAAdzC,EACrB,OACI0C,EAAAA,IAAA,MAAA,CACIC,IAAK1C,EACLqB,MAAO,CACHsB,SAAU,WACVC,MAAOJ,EAAe,OAAS,OAC/BK,OAAQL,EAAe,OAAS,OAChCM,gBAAiB,OACjBC,OAAQP,EAAe,YAAc,YACrCQ,OAAQ,IACRC,WAAY"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { ResizeDirection, VirtualConfig } from '../../../../types/index.js';
3
+
4
+ /**
5
+ * 可调整大小的面板组容器组件(Flex 布局策略)
6
+ * 使用 flex-basis 而不是直接设置 width/height
7
+ * 参考 react-resizable-panels 的实现方式
8
+ */
9
+
10
+ interface ResizePanelGroupFlexProps {
11
+ children: React.ReactNode;
12
+ direction?: ResizeDirection;
13
+ virtual?: boolean;
14
+ virtualConfig?: VirtualConfig;
15
+ style?: React.CSSProperties;
16
+ onPanelsChange?: (changedIndices: Set<number>) => void;
17
+ }
18
+ declare const ResizePanelGroupFlex: React.FC<ResizePanelGroupFlexProps>;
19
+
20
+ export { ResizePanelGroupFlex };
21
+ export type { ResizePanelGroupFlexProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),n=require("react"),r=require("../../../basic/context.js"),t=require("../ResizeHandleFlex/index.js");exports.ResizePanelGroupFlex=({children:l,direction:i="horizontal",style:u,virtual:a=!1,virtualConfig:c={},onPanelsChange:s})=>{const o=n.useRef([]),d=n.useRef(new Map),[h,g]=n.useState(0),x=n.useCallback((e,n)=>{const r=d.current.get(e);if(void 0!==r)return o.current[r]={panelEl:e,minSize:n},r;let t=-1;for(let e=0;e<o.current.length;e++)if(!o.current[e]){t=e;break}return-1===t?(t=o.current.length,o.current.push({panelEl:e,minSize:n})):o.current[t]={panelEl:e,minSize:n},d.current.set(e,t),g(o.current.filter(e=>null!=e).length),t},[]),f=n.useCallback(e=>{const n=d.current.get(e);void 0!==n&&(o.current[n]=null,d.current.delete(e),g(o.current.filter(e=>null!=e).length))},[]),p=n.useCallback(e=>{if(e<0||e>=o.current.length)return null;const n=o.current[e];return n&&n.panelEl?n:null},[]),C=n.useCallback(e=>d.current.get(e)??-1,[]),P=n.Children.toArray(l),v=[];P.forEach((n,r)=>{v.push(n),r<P.length-1&&v.push(e.jsx(t.ResizeHandleFlex,{prePanelIndex:r,nextPanelIndex:r+1,direction:i},`handle-${r}`))});const z={enabled:a,...c},b={panelCount:h,registerPanel:x,unregisterPanel:f,getPanelInfo:p,getPanelIndex:C,direction:i,panelInfos:o.current.filter(e=>null!=e),virtualConfig:z,onPanelsChange:s};return e.jsx(r.ResizableContext.Provider,{value:b,children:e.jsx("div",{style:{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",position:"relative",...u},children:v})})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/flex/components/ResizePanelGroupFlex/index.tsx"],"sourcesContent":[null],"names":["children","direction","style","virtual","virtualConfig","onPanelsChange","panelInfosRef","useRef","elementToIndexMapRef","Map","panelCount","setPanelCount","useState","registerPanel","useCallback","panelEl","minSize","existingIndex","current","get","undefined","index","i","length","push","set","filter","p","unregisterPanel","delete","getPanelInfo","info","getPanelIndex","childrenArray","React","Children","toArray","panelsWithHandles","forEach","child","_jsx","ResizeHandleFlex","prePanelIndex","nextPanelIndex","mergedVirtualConfig","enabled","contextValue","panelInfos","ResizableContext","Provider","value","display","flexDirection","height","position"],"mappings":"mLAmByE,EACrEA,WACAC,YAAY,aACZC,QACAC,WAAU,EACVC,gBAAgB,CAAA,EAChBC,qBAGA,MAAMC,EAAgBC,EAAAA,OAA6B,IAC7CC,EAAuBD,EAAAA,OAAiC,IAAIE,MAC3DC,EAAYC,GAAiBC,EAAAA,SAAS,GAEvCC,EAAgBC,EAAAA,YAAY,CAACC,EAAsBC,KAErD,MAAMC,EAAgBT,EAAqBU,QAAQC,IAAIJ,GACvD,QAAsBK,IAAlBH,EAGA,OADAX,EAAcY,QAAQD,GAAiB,CAAEF,UAASC,WAC3CC,EAIX,IAAII,GAAQ,EACZ,IAAK,IAAIC,EAAI,EAAGA,EAAIhB,EAAcY,QAAQK,OAAQD,IAC9C,IAAKhB,EAAcY,QAAQI,GAAI,CAC3BD,EAAQC,EACR,KACJ,CAcJ,OAXc,IAAVD,GAEAA,EAAQf,EAAcY,QAAQK,OAC9BjB,EAAcY,QAAQM,KAAK,CAAET,UAASC,aAGtCV,EAAcY,QAAQG,GAAS,CAAEN,UAASC,WAG9CR,EAAqBU,QAAQO,IAAIV,EAASM,GAC1CV,EAAcL,EAAcY,QAAQQ,OAAOC,GAAKA,SAA+BJ,QACxEF,GACR,IAEGO,EAAkBd,cAAaC,IACjC,MAAMM,EAAQb,EAAqBU,QAAQC,IAAIJ,QACjCK,IAAVC,IAEAf,EAAcY,QAAQG,GAAS,KAC/Bb,EAAqBU,QAAQW,OAAOd,GACpCJ,EAAcL,EAAcY,QAAQQ,OAAOC,GAAKA,SAA+BJ,UAEpF,IAEGO,EAAehB,cAAaO,IAC9B,GAAIA,EAAQ,GAAKA,GAASf,EAAcY,QAAQK,OAC5C,OAAO,KAEX,MAAMQ,EAAOzB,EAAcY,QAAQG,GAEnC,OAAQU,GAAQA,EAAKhB,QAAWgB,EAAO,MACxC,IAEGC,EAAgBlB,cAAaC,GACxBP,EAAqBU,QAAQC,IAAIJ,KAAY,EACrD,IAEGkB,EAAgBC,EAAMC,SAASC,QAAQpC,GACvCqC,EAAuC,GAE7CJ,EAAcK,QAAQ,CAACC,EAAOlB,KAC1BgB,EAAkBb,KAAKe,GAGnBlB,EAAQY,EAAcV,OAAS,GAC/Bc,EAAkBb,KACdgB,EAAAA,IAACC,EAAAA,kBAEGC,cAAerB,EACfsB,eAAgBtB,EAAQ,EACxBpB,UAAWA,GAHN,UAAUoB,QAU/B,MAAMuB,EAAqC,CACvCC,QAAS1C,KACNC,GAGD0C,EAAsC,CACxCpC,WAAYA,EACZG,gBACAe,kBACAE,eACAE,gBACA/B,YACA8C,WAAYzC,EAAcY,QAAQQ,OAAOC,GAAKA,SAC9CvB,cAAewC,EACfvC,kBAGJ,OACImC,MAACQ,EAAAA,iBAAiBC,SAAQ,CAACC,MAAOJ,EAAY9C,SAC1CwC,EAAAA,IAAA,MAAA,CAAKtC,MAAO,CACJiD,QAAS,OACTC,cAA6B,eAAdnD,EAA6B,MAAQ,SACpDoD,OAAQ,OACRC,SAAU,cACPpD,GACVF,SACIqC"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../../core/virtualNode.js");exports.default=class{constructor(t){Object.defineProperty(this,"prePanelEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nextPanelEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getPanelInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"prePanelIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nextPanelIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"direction",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isResizing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"containerEl",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"containerStartSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"allPanelsStartGrow",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsCurrentGrow",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsStartSizes",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsStartPositions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelIndices",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"handleSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"virtualNodeManager",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onPanelsChange",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"frozenPanels",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),this.prePanelEl=t.prePanelEl,this.nextPanelEl=t.nextPanelEl,this.getPanelInfo=t.getPanelInfo,this.prePanelIndex=t.prePanelIndex,this.nextPanelIndex=t.nextPanelIndex,this.direction=t.direction,this.virtualEnabled=t.virtualEnabled||!1,this.virtualConfig=t.virtualConfig||{},this.handleSize=t.handleSize||0,this.onPanelsChange=t.onPanelsChange,this.containerEl=this.prePanelEl.parentElement,this.virtualEnabled&&(this.virtualNodeManager=new e.default)}startResize(){this.isResizing=!0,this.allPanelsStartGrow.clear(),this.allPanelsCurrentGrow.clear(),this.allPanelsStartSizes.clear();const e=this.getContainerSize();if(0===e)return void console.warn("Container size is 0, cannot calculate flex grow values");this.allPanelIndices=[];let t=0,n=this.getPanelInfo(t);for(;n;)this.allPanelIndices.push(t),t++,n=this.getPanelInfo(t);const l=Math.max(0,this.allPanelIndices.length-1),a=l*this.handleSize,i=e-a;this.containerStartSize=i>0?i:e,console.log("=== startResize ==="),console.log("rawContainerSize:",e),console.log("handleCount:",l),console.log("totalHandleSize:",a),console.log("containerStartSize:",this.containerStartSize);const r=[];let s=0;this.allPanelIndices.forEach(e=>{const t=this.getPanelInfo(e);if(!t)return;const n=this.getSize(t.panelEl);this.allPanelsStartSizes.set(e,n),r.push(n),s+=n}),console.log("panelSizes:",r),console.log("totalSize:",s);const o=[];this.allPanelIndices.forEach((e,t)=>{const n=r[t],l=s>0?n/s*100:1,a=Math.round(1e3*l)/1e3;if(this.allPanelsStartGrow.set(e,a),this.allPanelsCurrentGrow.set(e,a),o.push(a),this.virtualEnabled){const t=this.getPanelInfo(e);if(t){const n=this.getPosition(t.panelEl);this.allPanelsStartPositions.set(e,n)}}});const h=o.reduce((e,t)=>e+t,0);console.log("growValues:",o),console.log("totalGrow (initial):",h),console.log("=== startResize 结束 ==="),this.virtualEnabled&&this.virtualNodeManager&&this.allPanelIndices.forEach(e=>{const t=this.getPanelInfo(e);t&&this.virtualNodeManager.createVirtualNode(t.panelEl,this.virtualConfig,this.direction)})}onResize(e){this.isResizing&&(Math.abs(e)<.1||(e>0?(console.log(e,"delta"),this.adjustPanelsNext(e)):this.adjustPanelsPre(-e)))}adjustPanelsNext(e){if(0===this.containerStartSize)return;const t=this.getTotalGrow();if(0===t)return;if(console.log("=== adjustPanelsNext ==="),console.log("delta:",e),console.log("containerStartSize:",this.containerStartSize),console.log("totalGrow:",t),console.log("nextPanelIndex:",this.nextPanelIndex),!this.getPanelInfo(this.nextPanelIndex))return;const n=this.allPanelsStartSizes.get(this.nextPanelIndex)||0,l=this.allPanelsStartGrow.get(this.nextPanelIndex)||0;if(console.log("nextStartSize:",n),console.log("nextStartGrow:",l),0===l)return;const a=Math.max(0,n-e);console.log("newNextSize (from start):",a);const i=a/this.containerStartSize,r=i*t;console.log("newNextRatio:",i),console.log("newNextGrow:",r);const s=l-Math.max(0,r);console.log("actualReductionGrow:",s),this.allPanelsCurrentGrow.set(this.nextPanelIndex,Math.max(0,r));let o=e-(n-a);console.log("remainingDelta:",o);let h=s;if(o>0){console.log("需要从后续面板获取空间,remainingDelta:",o);let e=this.nextPanelIndex+1;for(;o>0&&this.getPanelInfo(e);){const n=this.allPanelsStartSizes.get(e)||0,l=this.allPanelsStartGrow.get(e)||0;if(0===l)break;const a=Math.max(0,n-o),i=a/this.containerStartSize*t,r=l-Math.max(0,i);if(console.log(`后续面板 ${e}:`,{nextStartSize:n,nextStartGrow:l,newNextSize:a,newNextGrow:i,actualReductionGrow:r}),this.allPanelsCurrentGrow.set(e,Math.max(0,i)),h+=r,o-=n-a,!(i<=0&&o>0))break;e++}}if(this.getPanelInfo(this.prePanelIndex)){const e=this.allPanelsStartGrow.get(this.prePanelIndex)||0,t=e+h;console.log("前一个面板:",{prePanelIndex:this.prePanelIndex,preStartGrow:e,totalReducedGrow:h,newPreGrow:t}),this.allPanelsCurrentGrow.set(this.prePanelIndex,t)}console.log("=== adjustPanelsNext 结束 ==="),this.updateAllPanelsFlexGrow()}adjustPanelsPre(e){if(0===this.containerStartSize)return;const t=this.getTotalGrow();if(0===t)return;if(!this.getPanelInfo(this.prePanelIndex))return;const n=this.allPanelsStartSizes.get(this.prePanelIndex)||0,l=this.allPanelsStartGrow.get(this.prePanelIndex)||0;if(0===l)return;const a=Math.max(0,n-e),i=a/this.containerStartSize*t,r=l-Math.max(0,i);this.allPanelsCurrentGrow.set(this.prePanelIndex,Math.max(0,i));let s=e-(n-a),o=r;if(s>0){let e=this.prePanelIndex-1;for(;s>0&&this.getPanelInfo(e);){const n=this.allPanelsStartSizes.get(e)||0,l=this.allPanelsStartGrow.get(e)||0;if(0===l)break;const a=Math.max(0,n-s),i=a/this.containerStartSize*t,r=l-Math.max(0,i);if(this.allPanelsCurrentGrow.set(e,Math.max(0,i)),o+=r,s-=n-a,!(i<=0&&s>0))break;e--}}if(this.getPanelInfo(this.nextPanelIndex)){const e=(this.allPanelsStartGrow.get(this.nextPanelIndex)||0)+o;this.allPanelsCurrentGrow.set(this.nextPanelIndex,e)}this.updateAllPanelsFlexGrow()}updateAllPanelsFlexGrow(){const e=new Set;this.virtualEnabled&&this.virtualNodeManager?this.allPanelIndices.forEach(t=>{const n=this.allPanelsCurrentGrow.get(t);if(void 0===n)return;const l=this.getPanelInfo(t);if(!l)return;const a=this.allPanelsStartGrow.get(t);void 0!==a&&Math.abs(n-a)>1e-4&&(e.add(t),this.frozenPanels.has(t)&&this.unfreezePanel(t)),this.virtualNodeManager&&this.virtualNodeManager.updateVirtualNodeFlexGrow(l.panelEl,n,this.direction)}):this.allPanelIndices.forEach(t=>{const n=this.allPanelsCurrentGrow.get(t);if(void 0===n)return;const l=this.getPanelInfo(t);if(!l)return;const a=this.allPanelsStartGrow.get(t);void 0!==a&&Math.abs(n-a)>1e-4?(e.add(t),this.frozenPanels.has(t)&&this.unfreezePanel(t),this.setFlexGrow(l.panelEl,n)):this.frozenPanels.has(t)||this.freezePanel(t)}),e.size>0&&this.onPanelsChange&&this.onPanelsChange(e)}freezePanel(e){const t=this.getPanelInfo(e);if(!t)return;const n=t.panelEl,l=this.allPanelsStartSizes.get(e);if(void 0===l)return;const a=n.style.flex||"";n.dataset.originalFlex=a;const i="horizontal"===this.direction?"width":"height";n.style.flex="none",n.style[i]=`${l}px`,this.frozenPanels.add(e)}unfreezePanel(e){const t=this.getPanelInfo(e);if(!t)return;const n=t.panelEl,l=n.dataset.originalFlex||"";n.style.flex=l;const a="horizontal"===this.direction?"width":"height";n.style[a]="",this.frozenPanels.delete(e),delete n.dataset.originalFlex}unfreezeAllPanels(){Array.from(this.frozenPanels).forEach(e=>{this.unfreezePanel(e)})}getTotalGrow(){let e=0;return this.allPanelIndices.forEach(t=>{e+=this.allPanelsCurrentGrow.get(t)||0}),e}endResize(){this.isResizing=!1,this.unfreezeAllPanels(),this.virtualEnabled&&this.virtualNodeManager&&(this.allPanelsCurrentGrow.forEach((e,t)=>{const n=this.getPanelInfo(t);n&&this.setFlexGrow(n.panelEl,e)}),this.virtualNodeManager.removeAllVirtualNodes()),this.allPanelsStartGrow.clear(),this.allPanelsCurrentGrow.clear(),this.allPanelsStartSizes.clear(),this.allPanelsStartPositions.clear(),this.allPanelIndices=[],this.frozenPanels.clear()}destroy(){this.isResizing=!1,this.unfreezeAllPanels(),this.virtualNodeManager&&this.virtualNodeManager.removeAllVirtualNodes(),this.allPanelsStartGrow.clear(),this.allPanelsCurrentGrow.clear(),this.allPanelsStartSizes.clear(),this.allPanelsStartPositions.clear(),this.allPanelIndices=[],this.frozenPanels.clear()}getSize(e){return"horizontal"===this.direction?e.offsetWidth:e.offsetHeight}getContainerSize(){return this.containerEl?"horizontal"===this.direction?this.containerEl.offsetWidth:this.containerEl.offsetHeight:0}getPosition(e){if(!e.parentElement)return 0;const t=e.getBoundingClientRect(),n=e.parentElement.getBoundingClientRect();return"horizontal"===this.direction?t.left-n.left+(e.parentElement.scrollLeft||0):t.top-n.top+(e.parentElement.scrollTop||0)}setFlexGrow(e,t){const n=Math.max(0,Math.round(100*t)/100);e.style.flex=`${n} 1 0`}};
2
+ //# sourceMappingURL=resizeAble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizeAble.js","sources":["../../../src/strategies/flex/resizeAble.ts"],"sourcesContent":[null],"names":["constructor","options","Object","defineProperty","this","value","Map","Set","prePanelEl","nextPanelEl","getPanelInfo","prePanelIndex","nextPanelIndex","direction","virtualEnabled","virtualConfig","handleSize","onPanelsChange","containerEl","parentElement","virtualNodeManager","VirtualNodeManager","startResize","isResizing","allPanelsStartGrow","clear","allPanelsCurrentGrow","allPanelsStartSizes","rawContainerSize","getContainerSize","console","warn","allPanelIndices","index","panelInfo","push","handleCount","Math","max","length","totalHandleSize","availableSpace","containerStartSize","log","panelSizes","totalSize","forEach","panelIndex","panel","size","getSize","panelEl","set","growValues","idx","grow","roundedGrow","round","position","getPosition","allPanelsStartPositions","totalGrow","reduce","sum","val","createVirtualNode","onResize","delta","abs","adjustPanelsNext","adjustPanelsPre","getTotalGrow","nextStartSize","get","nextStartGrow","newNextSize","newNextRatio","newNextGrow","actualReductionGrow","remainingDelta","totalReducedGrow","nextIndex","preStartGrow","newPreGrow","updateAllPanelsFlexGrow","preStartSize","newPreSize","prevIndex","prevStartSize","prevStartGrow","newPrevSize","newPrevGrow","changedIndices","undefined","startGrow","add","frozenPanels","has","unfreezePanel","updateVirtualNodeFlexGrow","setFlexGrow","freezePanel","el","startSize","originalFlex","style","flex","dataset","sizeProperty","delete","unfreezeAllPanels","Array","from","total","_index","endResize","removeAllVirtualNodes","destroy","offsetWidth","offsetHeight","rect","getBoundingClientRect","parentRect","left","scrollLeft","top","scrollTop"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ResizeDirection } from '../../../../types/index.js';
3
+
4
+ /**
5
+ * 拖拽手柄组件(Flex + 链表优化策略)
6
+ * 结合了 Flex 布局策略和链表遍历优化
7
+ */
8
+
9
+ interface ResizeHandleFlexLinkedProps {
10
+ prePanelIndex: number;
11
+ nextPanelIndex: number;
12
+ direction: ResizeDirection;
13
+ }
14
+ declare const ResizeHandleFlexLinked: React.FC<ResizeHandleFlexLinkedProps>;
15
+
16
+ export { ResizeHandleFlexLinked };
17
+ export type { ResizeHandleFlexLinkedProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),n=require("react"),t=require("../../resizeAble.js"),r=require("../../context.js");exports.ResizeHandleFlexLinked=({prePanelIndex:o,nextPanelIndex:i,direction:s})=>{const l=n.useRef(null),u=n.useRef(null),{getPanelInfo:a,panelCount:c,virtualConfig:d,getPanelNode:f,onPanelsChange:m}=r.useResizableContextLinked();n.useEffect(()=>{if(!l.current)return;const e=a(o),n=a(i);if(!e||!n)return;if(!f)return void console.error("getPanelNode is required for flex-linked optimization strategy");const r=l.current?"horizontal"===s?l.current.offsetWidth:l.current.offsetHeight:10;u.current=new t.default({prePanelEl:e.panelEl,nextPanelEl:n.panelEl,getPanelInfo:a,getPanelNode:f,prePanelIndex:o,nextPanelIndex:i,direction:s,virtualEnabled:d.enabled||!1,virtualConfig:{style:d.style,className:d.className},handleSize:r,onPanelsChange:m});const c=l.current;if(!c)return;let v=!1,x=0;const p=e=>{e.preventDefault(),e.stopPropagation(),v=!0,x="horizontal"===s?e.clientX:e.clientY,u.current&&u.current.startResize()},z=e=>{if(!v||!u.current)return;const n=("horizontal"===s?e.clientX:e.clientY)-x;u.current.onResize(n)},g=()=>{v&&u.current&&(v=!1,u.current.endResize())};return c.addEventListener("mousedown",p),document.addEventListener("mousemove",z),document.addEventListener("mouseup",g),()=>{c.removeEventListener("mousedown",p),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",g),u.current&&(u.current.destroy(),u.current=null)}},[o,i,s,a,c,d,f,m]);const v="horizontal"===s;return e.jsx("div",{ref:l,style:{position:"relative",width:v?"10px":"100%",height:v?"100%":"10px",backgroundColor:"#000",cursor:v?"ew-resize":"ns-resize",zIndex:1e3,flexShrink:0}})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/flex-linked/components/ResizeHandleFlexLinked/index.tsx"],"sourcesContent":[null],"names":["prePanelIndex","nextPanelIndex","direction","handleRef","useRef","coreInstanceRef","getPanelInfo","panelCount","virtualConfig","getPanelNode","onPanelsChange","useResizableContextLinked","useEffect","current","prePanelInfo","nextPanelInfo","console","error","handleSize","offsetWidth","offsetHeight","ResizeAbleCoreFlexLinked","prePanelEl","panelEl","nextPanelEl","virtualEnabled","enabled","style","className","handleEl","isResizing","startPos","startResize","e","preventDefault","stopPropagation","clientX","clientY","onResizeMove","delta","onResize","endResize","addEventListener","document","removeEventListener","destroy","isHorizontal","_jsx","ref","position","width","height","backgroundColor","cursor","zIndex","flexShrink"],"mappings":"mKAe6E,EACzEA,gBACAC,iBACAC,gBAEA,MAAMC,EAAYC,EAAAA,OAAuB,MACnCC,EAAkBD,EAAAA,OAA6D,OAC/EE,aAAEA,EAAYC,WAAEA,EAAUC,cAAEA,EAAaC,aAAEA,EAAYC,eAAEA,GAAmBC,8BAElFC,EAAAA,UAAU,KACN,IAAKT,EAAUU,QACX,OAGJ,MAAMC,EAAeR,EAAaN,GAC5Be,EAAgBT,EAAaL,GACnC,IAAIa,IAAiBC,EACjB,OAGJ,IAAKN,EAED,YADAO,QAAQC,MAAM,kEAIlB,MAAMC,EAAaf,EAAUU,QACR,eAAdX,EACGC,EAAUU,QAAQM,YAClBhB,EAAUU,QAAQO,aACQ,GAEpCf,EAAgBQ,QAAU,IAAIQ,UAAyB,CACnDC,WAAYR,EAAaS,QACzBC,YAAaT,EAAcQ,QAC3BjB,eACAG,eACAT,gBACAC,iBACAC,YACAuB,eAAgBjB,EAAckB,UAAW,EACzClB,cAAe,CACXmB,MAAOnB,EAAcmB,MACrBC,UAAWpB,EAAcoB,WAE7BV,aACAR,mBAGJ,MAAMmB,EAAW1B,EAAUU,QAC3B,IAAKgB,EAAU,OAEf,IAAIC,GAAa,EACbC,EAAW,EAEf,MAAMC,EAAeC,IACjBA,EAAEC,iBACFD,EAAEE,kBACFL,GAAa,EACbC,EAAyB,eAAd7B,EAA6B+B,EAAEG,QAAUH,EAAEI,QAClDhC,EAAgBQ,SAChBR,EAAgBQ,QAAQmB,eAI1BM,EAAgBL,IAClB,IAAIH,IAAezB,EAAgBQ,QAAS,OAC5C,MACM0B,GAD2B,eAAdrC,EAA6B+B,EAAEG,QAAUH,EAAEI,SACnCN,EAC3B1B,EAAgBQ,QAAQ2B,SAASD,IAG/BE,EAAY,KACXX,GAAczB,EAAgBQ,UAC7BiB,GAAa,EACbzB,EAAgBQ,QAAQ4B,cAQhC,OAJAZ,EAASa,iBAAiB,YAAaV,GACvCW,SAASD,iBAAiB,YAAaJ,GACvCK,SAASD,iBAAiB,UAAWD,GAE9B,KACHZ,EAASe,oBAAoB,YAAaZ,GAC1CW,SAASC,oBAAoB,YAAaN,GAC1CK,SAASC,oBAAoB,UAAWH,GACrCpC,EAAgBQ,UACfR,EAAgBQ,QAAQgC,UACxBxC,EAAgBQ,QAAU,QAGnC,CAACb,EAAeC,EAAgBC,EAAWI,EAAcC,EAAYC,EAAeC,EAAcC,IAErG,MAAMoC,EAA6B,eAAd5C,EACrB,OACI6C,EAAAA,IAAA,MAAA,CACIC,IAAK7C,EACLwB,MAAO,CACHsB,SAAU,WACVC,MAAOJ,EAAe,OAAS,OAC/BK,OAAQL,EAAe,OAAS,OAChCM,gBAAiB,OACjBC,OAAQP,EAAe,YAAc,YACrCQ,OAAQ,IACRC,WAAY"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * 可调整大小的面板组件(Flex + 链表优化策略)
5
+ * 负责展示面板内容和管理面板的注册/注销
6
+ * 使用 flex-linked 策略的 Context
7
+ */
8
+
9
+ interface ResizePanelFlexLinkedProps {
10
+ children: React.ReactNode;
11
+ minSize?: number;
12
+ onResize?: (width: number) => void;
13
+ }
14
+ declare const ResizePanelFlexLinked: React.FC<ResizePanelFlexLinkedProps>;
15
+
16
+ export { ResizePanelFlexLinked };
17
+ export type { ResizePanelFlexLinkedProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),i=require("react"),r=require("../../context.js");exports.ResizePanelFlexLinked=({children:t,minSize:n=100})=>{const s=i.useRef(null),u=i.useRef(-1),{registerPanel:l,unregisterPanel:c,direction:d}=r.useResizableContextLinked();return i.useEffect(()=>{if(!s.current)return;const e=s.current;return u.current=l(e,n),()=>{c(e)}},[n,l,c]),e.jsx("div",{ref:s,style:{flex:1,minWidth:"horizontal"===d?n:void 0,minHeight:"vertical"===d?n:void 0,width:"auto",overflow:"hidden",position:"relative"},children:e.jsx("div",{style:{height:"100%",padding:16},children:t})})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/flex-linked/components/ResizePanelFlexLinked/index.tsx"],"sourcesContent":[null],"names":["children","minSize","panelRef","useRef","panelIndexRef","registerPanel","unregisterPanel","direction","useResizableContextLinked","useEffect","current","panelEl","_jsx","ref","style","flex","minWidth","undefined","minHeight","width","overflow","position","height","padding"],"mappings":"iIAc2E,EACvEA,WACAC,UAAU,QAGV,MAAMC,EAAWC,EAAAA,OAAuB,MAClCC,EAAgBD,EAAAA,YAChBE,cAAEA,EAAaC,gBAAEA,EAAeC,UAAEA,GAAcC,EAAAA,4BAWtD,OATAC,EAAAA,UAAU,KACN,IAAIP,EAASQ,QAAS,OACtB,MAAMC,EAAUT,EAASQ,QAEzB,OADAN,EAAcM,QAAUL,EAAcM,EAASV,GACxC,KACHK,EAAgBK,KAErB,CAACV,EAASI,EAAeC,IAGxBM,EAAAA,IAAA,MAAA,CACIC,IAAKX,EACLY,MAAO,CACHC,KAAM,EACNC,SAAwB,eAAdT,EAA6BN,OAAUgB,EACjDC,UAAyB,aAAdX,EAA2BN,OAAUgB,EAChDE,MAAO,OACPC,SAAU,SACVC,SAAU,YACbrB,SAEDY,EAAAA,WAAKE,MAAO,CAACQ,OAAQ,OAAQC,QAAS,IAAGvB,SACpCA"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ResizeDirection, VirtualConfig } from '../../../../types/index.js';
3
+
4
+ /**
5
+ * 可调整大小的面板组容器组件(Flex + 链表优化策略)
6
+ * 结合了 Flex 布局策略和链表遍历优化
7
+ */
8
+
9
+ interface ResizePanelGroupFlexLinkedProps {
10
+ children: React.ReactNode;
11
+ direction?: ResizeDirection;
12
+ virtual?: boolean;
13
+ virtualConfig?: VirtualConfig;
14
+ style?: React.CSSProperties;
15
+ onPanelsChange?: (changedIndices: Set<number>) => void;
16
+ }
17
+ declare const ResizePanelGroupFlexLinked: React.FC<ResizePanelGroupFlexLinkedProps>;
18
+
19
+ export { ResizePanelGroupFlexLinked };
20
+ export type { ResizePanelGroupFlexLinkedProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),n=require("react"),r=require("../../context.js"),t=require("../ResizeHandleFlexLinked/index.js"),l=require("../../../../core/PanelManager.js");exports.ResizePanelGroupFlexLinked=({children:a,direction:i="horizontal",style:s,virtual:u=!1,virtualConfig:o={},onPanelsChange:c})=>{const d=n.useRef(new l.PanelManager),[g,x]=n.useState(0),h=n.useCallback((e,n)=>{const r=d.current.register(e,n);return x(d.current.getCount()),r},[]),C=n.useCallback(e=>{d.current.unregister(e),x(d.current.getCount())},[]),P=n.useCallback(e=>d.current.getByIndex(e),[]),k=n.useCallback(e=>d.current.getIndex(e),[]),p=n.useCallback(e=>d.current.getNodeByIndex(e),[]),f=n.Children.toArray(a),I=[];f.forEach((n,r)=>{I.push(n),r<f.length-1&&I.push(e.jsx(t.ResizeHandleFlexLinked,{prePanelIndex:r,nextPanelIndex:r+1,direction:i},`handle-${r}`))});const b={enabled:u,...o},j={panelCount:g,registerPanel:h,unregisterPanel:C,getPanelInfo:P,getPanelIndex:k,direction:i,panelInfos:d.current.getAllPanels()||[],virtualConfig:b,getPanelNode:p,onPanelsChange:c};return e.jsx(r.ResizableContextLinked.Provider,{value:j,children:e.jsx("div",{style:{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",position:"relative",...s},children:I})})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.tsx"],"sourcesContent":[null],"names":["children","direction","style","virtual","virtualConfig","onPanelsChange","panelManager","useRef","PanelManager","panelCount","setPanelCount","useState","registerPanel","useCallback","panelEl","minSize","index","current","register","getCount","unregisterPanel","unregister","getPanelInfo","getByIndex","getPanelIndex","getIndex","getPanelNode","getNodeByIndex","childrenArray","React","Children","toArray","panelsWithHandles","forEach","child","push","length","_jsx","ResizeHandleFlexLinked","prePanelIndex","nextPanelIndex","mergedVirtualConfig","enabled","contextValue","panelInfos","getAllPanels","ResizableContextLinked","Provider","value","display","flexDirection","height","position"],"mappings":"oOAmBqF,EACjFA,WACAC,YAAY,aACZC,QACAC,WAAU,EACVC,gBAAgB,CAAA,EAChBC,qBAEA,MAAMC,EAAeC,EAAAA,OAAqB,IAAIC,EAAAA,eACvCC,EAAYC,GAAiBC,EAAAA,SAAS,GAEvCC,EAAgBC,EAAAA,YAAY,CAACC,EAAsBC,KACrD,MAAMC,EAAQV,EAAaW,QAAQC,SAASJ,EAASC,GAErD,OADAL,EAAcJ,EAAaW,QAAQE,YAC5BH,GACR,IAEGI,EAAkBP,cAAaC,IACjCR,EAAaW,QAAQI,WAAWP,GAChCJ,EAAcJ,EAAaW,QAAQE,aACpC,IAEGG,EAAeT,cAAaG,GACvBV,EAAaW,QAAQM,WAAWP,GACxC,IAEGQ,EAAgBX,cAAaC,GACxBR,EAAaW,QAAQQ,SAASX,GACtC,IAEGY,EAAeb,cAAaG,GACvBV,EAAaW,QAAQU,eAAeX,GAC5C,IAEGY,EAAgBC,EAAMC,SAASC,QAAQ/B,GACvCgC,EAAuC,GAE7CJ,EAAcK,QAAQ,CAACC,EAAOlB,KAC1BgB,EAAkBG,KAAKD,GAEnBlB,EAAQY,EAAcQ,OAAS,GAC/BJ,EAAkBG,KACdE,EAAAA,IAACC,EAAAA,wBAEGC,cAAevB,EACfwB,eAAgBxB,EAAQ,EACxBf,UAAWA,GAHN,UAAUe,QAS/B,MAAMyB,EAAqC,CACvCC,QAASvC,KACNC,GAGDuC,EAA4C,CAC9ClC,WAAYA,EACZG,gBACAQ,kBACAE,eACAE,gBACAvB,YACA2C,WAAYtC,EAAaW,QAAQ4B,gBAAkB,GACnDzC,cAAeqC,EACff,eACArB,kBAGJ,OACIgC,MAACS,EAAAA,uBAAuBC,SAAQ,CAACC,MAAOL,EAAY3C,SAChDqC,EAAAA,IAAA,MAAA,CAAKnC,MAAO,CACJ+C,QAAS,OACTC,cAA6B,eAAdjD,EAA6B,MAAQ,SACpDkD,OAAQ,OACRC,SAAU,cACPlD,GACVF,SACIgC"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react"),n=e.createContext({panelCount:0,registerPanel:()=>0,unregisterPanel:()=>{},getPanelInfo:()=>null,getPanelIndex:()=>-1,direction:"horizontal",panelInfos:[],virtualConfig:{enabled:!1},getPanelNode:()=>null,onPanelsChange:void 0});exports.ResizableContextLinked=n,exports.useResizableContextLinked=()=>{const t=e.useContext(n);if(!t)throw new Error("useResizableContextLinked must be used within ResizablePanelGroupLinked");return t};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../src/strategies/flex-linked/context.tsx"],"sourcesContent":[null],"names":["ResizableContextLinked","React","createContext","panelCount","registerPanel","unregisterPanel","getPanelInfo","getPanelIndex","direction","panelInfos","virtualConfig","enabled","getPanelNode","onPanelsChange","undefined","context","useContext","Error"],"mappings":"sCAsCaA,EAAyBC,EAAMC,cAhBa,CACrDC,WAAY,EACZC,cAAe,IAAM,EACrBC,gBAAiB,OACjBC,aAAc,IAAM,KACpBC,cAAe,KAAM,EACrBC,UAAW,aACXC,WAAY,GACZC,cAAe,CAAEC,SAAS,GAC1BC,aAAc,IAAM,KACpBC,oBAAgBC,uEAWqB,KACrC,MAAMC,EAAUd,EAAMe,WAAWhB,GACjC,IAAKe,EACD,MAAM,IAAIE,MAAM,2EAEpB,OAAOF"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../../core/virtualNode.js");exports.default=class{constructor(t){Object.defineProperty(this,"prePanelEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nextPanelEl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getPanelInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getPanelNode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"prePanelIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nextPanelIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"direction",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"virtualConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isResizing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"containerEl",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"containerStartSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"allPanelsStartGrow",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsCurrentGrow",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsStartSizes",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelsStartPositions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"allPanelIndices",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"handleSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"virtualNodeManager",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onPanelsChange",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"frozenPanels",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),this.prePanelEl=t.prePanelEl,this.nextPanelEl=t.nextPanelEl,this.getPanelInfo=t.getPanelInfo,this.getPanelNode=t.getPanelNode,this.prePanelIndex=t.prePanelIndex,this.nextPanelIndex=t.nextPanelIndex,this.direction=t.direction,this.virtualEnabled=t.virtualEnabled||!1,this.virtualConfig=t.virtualConfig||{},this.handleSize=t.handleSize||0,this.onPanelsChange=t.onPanelsChange,this.containerEl=this.prePanelEl.parentElement,this.virtualEnabled&&(this.virtualNodeManager=new e.default)}startResize(){this.isResizing=!0,this.allPanelsStartGrow.clear(),this.allPanelsCurrentGrow.clear(),this.allPanelsStartSizes.clear(),this.allPanelIndices=[];const e=this.getContainerSize();if(0===e)return void console.warn("Container size is 0, cannot calculate flex grow values");this.collectAllPanels();const t=e-Math.max(0,this.allPanelIndices.length-1)*this.handleSize;this.containerStartSize=t>0?t:e;const n=[];let a=0;this.allPanelIndices.forEach(e=>{const t=this.getPanelInfo(e);if(!t)return;const l=this.getSize(t.panelEl);this.allPanelsStartSizes.set(e,l),n.push(l),a+=l}),this.allPanelIndices.forEach((e,t)=>{const l=n[t],i=a>0?l/a*100:1,r=Math.round(1e3*i)/1e3;if(this.allPanelsStartGrow.set(e,r),this.allPanelsCurrentGrow.set(e,r),this.virtualEnabled){const t=this.getPanelInfo(e);if(t){const n=this.getPosition(t.panelEl);this.allPanelsStartPositions.set(e,n)}}}),this.virtualEnabled&&this.virtualNodeManager&&this.allPanelIndices.forEach(e=>{const t=this.getPanelInfo(e);t&&this.virtualNodeManager.createVirtualNode(t.panelEl,this.virtualConfig,this.direction)})}collectAllPanels(){let e=this.getPanelNode(this.prePanelIndex);const t=new Set;for(;e;)t.has(e.index)||(this.allPanelIndices.push(e.index),t.add(e.index)),e=e.prev;for(e=this.getPanelNode(this.nextPanelIndex);e;)t.has(e.index)||(this.allPanelIndices.push(e.index),t.add(e.index)),e=e.next;this.allPanelIndices.sort((e,t)=>e-t)}onResize(e){this.isResizing&&(Math.abs(e)<.1||(e>0?this.adjustPanelsNext(e):this.adjustPanelsPre(-e)))}adjustPanelsNext(e){if(0===this.containerStartSize)return;const t=this.getTotalGrow();if(0===t)return;const n=this.getPanelInfo(this.nextPanelIndex);if(!n)return;const a=this.allPanelsStartSizes.get(this.nextPanelIndex)||0;if(0===(this.allPanelsStartGrow.get(this.nextPanelIndex)||0))return;const l=n.minSize||0,i=l>0?l/this.containerStartSize*t:0,r=Math.max(l,a-e),s=r/this.containerStartSize,o=Math.max(i,s*t),h=a-r,P=h/this.containerStartSize*t;this.allPanelsCurrentGrow.set(this.nextPanelIndex,o);let c=e-h,d=P;if(c>0){let e=this.getPanelNode(this.nextPanelIndex);for(;c>0&&e&&e.next;){e=e.next;const n=e.index,a=this.getPanelInfo(n);if(!a)break;const l=this.allPanelsStartSizes.get(n)||0,i=this.allPanelsStartGrow.get(n)||0,r=a.minSize||0,s=r>0?r/this.containerStartSize*t:0;if(0===i||i<=s)break;const o=Math.max(r,l-c),h=o/this.containerStartSize,P=Math.max(s,h*t),u=l-o,f=u/this.containerStartSize*t;if(this.allPanelsCurrentGrow.set(n,P),d+=f,c-=u,!(P<=s&&c>0))break}}if(d>0&&this.getPanelInfo(this.prePanelIndex)){const e=(this.allPanelsStartGrow.get(this.prePanelIndex)||0)+d;this.allPanelsCurrentGrow.set(this.prePanelIndex,e)}this.updateAllPanelsFlexGrow()}adjustPanelsPre(e){if(0===this.containerStartSize)return;const t=this.getTotalGrow();if(0===t)return;const n=this.getPanelInfo(this.prePanelIndex);if(!n)return;const a=this.allPanelsStartSizes.get(this.prePanelIndex)||0;if(0===(this.allPanelsStartGrow.get(this.prePanelIndex)||0))return;const l=n.minSize||0,i=l>0?l/this.containerStartSize*t:0,r=Math.max(l,a-e),s=r/this.containerStartSize,o=Math.max(i,s*t),h=a-r,P=h/this.containerStartSize*t;this.allPanelsCurrentGrow.set(this.prePanelIndex,o);let c=e-h,d=P;if(c>0){let e=this.getPanelNode(this.prePanelIndex);for(;c>0&&e&&e.prev;){e=e.prev;const n=e.index,a=this.getPanelInfo(n);if(!a)break;const l=this.allPanelsStartSizes.get(n)||0,i=this.allPanelsStartGrow.get(n)||0,r=a.minSize||0,s=r>0?r/this.containerStartSize*t:0;if(0===i||i<=s)break;const o=Math.max(r,l-c),h=o/this.containerStartSize,P=Math.max(s,h*t),u=l-o,f=u/this.containerStartSize*t;if(this.allPanelsCurrentGrow.set(n,P),d+=f,c-=u,!(P<=s&&c>0))break}}if(d>0&&this.getPanelInfo(this.nextPanelIndex)){const e=(this.allPanelsStartGrow.get(this.nextPanelIndex)||0)+d;this.allPanelsCurrentGrow.set(this.nextPanelIndex,e)}this.updateAllPanelsFlexGrow()}updateAllPanelsFlexGrow(){const e=new Set;this.virtualEnabled&&this.virtualNodeManager?this.allPanelIndices.forEach(t=>{const n=this.allPanelsCurrentGrow.get(t);if(void 0===n)return;const a=this.getPanelInfo(t);if(!a)return;const l=this.allPanelsStartGrow.get(t);void 0!==l&&Math.abs(n-l)>1e-4&&(e.add(t),this.frozenPanels.has(t)&&this.unfreezePanel(t)),this.virtualNodeManager&&this.virtualNodeManager.updateVirtualNodeFlexGrow(a.panelEl,n,this.direction)}):this.allPanelIndices.forEach(t=>{const n=this.allPanelsCurrentGrow.get(t);if(void 0===n)return;const a=this.getPanelInfo(t);if(!a)return;const l=this.allPanelsStartGrow.get(t);void 0!==l&&Math.abs(n-l)>1e-4?(e.add(t),this.frozenPanels.has(t)&&this.unfreezePanel(t),this.setFlexGrow(a.panelEl,n)):this.frozenPanels.has(t)||this.freezePanel(t)}),e.size>0&&this.onPanelsChange&&this.onPanelsChange(e)}freezePanel(e){const t=this.getPanelInfo(e);if(!t)return;const n=t.panelEl,a=this.allPanelsStartSizes.get(e);if(void 0===a)return;const l=n.style.flex||"";n.dataset.originalFlex=l;const i="horizontal"===this.direction?"width":"height";n.style.flex="none",n.style[i]=`${a}px`,this.frozenPanels.add(e)}unfreezePanel(e){const t=this.getPanelInfo(e);if(!t)return;const n=t.panelEl,a=n.dataset.originalFlex||"";n.style.flex=a;const l="horizontal"===this.direction?"width":"height";n.style[l]="",this.frozenPanels.delete(e),delete n.dataset.originalFlex}unfreezeAllPanels(){Array.from(this.frozenPanels).forEach(e=>{this.unfreezePanel(e)})}getTotalGrow(){let e=0;return this.allPanelIndices.forEach(t=>{e+=this.allPanelsCurrentGrow.get(t)||0}),e}setFlexGrow(e,t){const n=Math.max(0,Math.round(100*t)/100);e.style.flex=`${n} 1 0`}getContainerSize(){return this.containerEl?"horizontal"===this.direction?this.containerEl.offsetWidth:this.containerEl.offsetHeight:0}getSize(e){return"horizontal"===this.direction?e.offsetWidth:e.offsetHeight}getPosition(e){return"horizontal"===this.direction?e.offsetLeft+(e.parentElement?.scrollLeft||0):e.offsetTop+(e.parentElement?.scrollTop||0)}endResize(){this.isResizing=!1,this.unfreezeAllPanels(),this.virtualEnabled&&this.virtualNodeManager&&(this.allPanelsCurrentGrow.forEach((e,t)=>{const n=this.getPanelInfo(t);n&&this.setFlexGrow(n.panelEl,e)}),this.virtualNodeManager.removeAllVirtualNodes()),this.allPanelsStartGrow.clear(),this.allPanelsCurrentGrow.clear(),this.allPanelsStartSizes.clear(),this.allPanelsStartPositions.clear(),this.allPanelIndices=[],this.frozenPanels.clear()}destroy(){this.isResizing=!1,this.unfreezeAllPanels(),this.virtualNodeManager&&this.virtualNodeManager.removeAllVirtualNodes(),this.allPanelsStartGrow.clear(),this.allPanelsCurrentGrow.clear(),this.allPanelsStartSizes.clear(),this.allPanelsStartPositions.clear(),this.allPanelIndices=[],this.frozenPanels.clear()}};
2
+ //# sourceMappingURL=resizeAble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizeAble.js","sources":["../../../src/strategies/flex-linked/resizeAble.ts"],"sourcesContent":[null],"names":["constructor","options","Object","defineProperty","this","value","Map","Set","prePanelEl","nextPanelEl","getPanelInfo","getPanelNode","prePanelIndex","nextPanelIndex","direction","virtualEnabled","virtualConfig","handleSize","onPanelsChange","containerEl","parentElement","virtualNodeManager","VirtualNodeManager","startResize","isResizing","allPanelsStartGrow","clear","allPanelsCurrentGrow","allPanelsStartSizes","allPanelIndices","rawContainerSize","getContainerSize","console","warn","collectAllPanels","availableSpace","Math","max","length","containerStartSize","panelSizes","totalSize","forEach","panelIndex","panel","size","getSize","panelEl","set","push","idx","grow","roundedGrow","round","position","getPosition","allPanelsStartPositions","createVirtualNode","currentNode","visited","has","index","add","prev","next","sort","a","b","onResize","delta","abs","adjustPanelsNext","adjustPanelsPre","totalGrow","getTotalGrow","nextPanelInfo","nextStartSize","get","nextMinSize","minSize","nextMinGrow","newNextSize","newNextRatio","newNextGrow","actualReducedSize","actualReductionGrow","remainingDelta","totalReducedGrow","nextIndex","nextStartGrow","newPreGrow","updateAllPanelsFlexGrow","prePanelInfo","preStartSize","preMinSize","preMinGrow","newPreSize","newPreRatio","prevIndex","prevPanelInfo","prevStartSize","prevStartGrow","prevMinSize","prevMinGrow","newPrevSize","newPrevRatio","newPrevGrow","changedIndices","undefined","panelInfo","startGrow","frozenPanels","unfreezePanel","updateVirtualNodeFlexGrow","setFlexGrow","freezePanel","el","startSize","originalFlex","style","flex","dataset","sizeProperty","delete","unfreezeAllPanels","Array","from","total","_index","offsetWidth","offsetHeight","offsetLeft","scrollLeft","offsetTop","scrollTop","endResize","removeAllVirtualNodes","destroy"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { ResizeDirection } from '../../../../types/index.js';
3
+
4
+ /**
5
+ * 拖拽手柄组件(链表策略)
6
+ * 负责处理面板之间的拖拽调整功能
7
+ * 使用 ResizeAbleCoreLinked(链表优化策略)
8
+ */
9
+
10
+ interface ResizeHandleLinkedProps {
11
+ prePanelIndex: number;
12
+ nextPanelIndex: number;
13
+ direction: ResizeDirection;
14
+ }
15
+ declare const ResizeHandleLinked: React.FC<ResizeHandleLinkedProps>;
16
+
17
+ export { ResizeHandleLinked };
18
+ export type { ResizeHandleLinkedProps };
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),n=require("react"),t=require("../../resizeAble.js"),r=require("../../context.js");exports.ResizeHandleLinked=({prePanelIndex:o,nextPanelIndex:i,direction:s})=>{const u=n.useRef(null),l=n.useRef(null),{getPanelInfo:a,panelCount:c,virtualConfig:d,getPanelNode:f}=r.useResizableContextLinked();n.useEffect(()=>{if(!u.current)return;const e=a(o),n=a(i);if(!e||!n)return;if(!f)return void console.error("getPanelNode is required for linked optimization strategy");const r=u.current?"horizontal"===s?u.current.offsetWidth:u.current.offsetHeight:10;l.current=new t.default({prePanelEl:e.panelEl,nextPanelEl:n.panelEl,getPanelInfo:a,getPanelNode:f,prePanelIndex:o,nextPanelIndex:i,direction:s,virtualEnabled:d.enabled||!1,virtualConfig:{style:d.style,className:d.className},handleSize:r});const c=u.current;if(!c)return;let m=!1,v=0;const p=e=>{e.preventDefault(),e.stopPropagation(),m=!0,v="horizontal"===s?e.clientX:e.clientY,l.current&&l.current.startResize()},x=e=>{if(!m||!l.current)return;const n=("horizontal"===s?e.clientX:e.clientY)-v;l.current.onResize(n)},z=()=>{m&&l.current&&(m=!1,l.current.endResize())};return c.addEventListener("mousedown",p),document.addEventListener("mousemove",x),document.addEventListener("mouseup",z),()=>{c.removeEventListener("mousedown",p),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",z),l.current&&(l.current.destroy(),l.current=null)}},[o,i,s,a,c,d,f]);const m="horizontal"===s;return e.jsx("div",{ref:u,style:{position:"relative",width:m?"10px":"100%",height:m?"100%":"10px",backgroundColor:"#000",cursor:m?"ew-resize":"ns-resize",zIndex:1e3,flexShrink:0}})};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/strategies/linked/components/ResizeHandleLinked/index.tsx"],"sourcesContent":[null],"names":["prePanelIndex","nextPanelIndex","direction","handleRef","useRef","coreInstanceRef","getPanelInfo","panelCount","virtualConfig","getPanelNode","useResizableContextLinked","useEffect","current","prePanelInfo","nextPanelInfo","console","error","handleSize","offsetWidth","offsetHeight","ResizeAbleCoreLinked","prePanelEl","panelEl","nextPanelEl","virtualEnabled","enabled","style","className","handleEl","isResizing","startPos","startResize","e","preventDefault","stopPropagation","clientX","clientY","onResizeMove","delta","onResize","endResize","addEventListener","document","removeEventListener","destroy","isHorizontal","_jsx","ref","position","width","height","backgroundColor","cursor","zIndex","flexShrink"],"mappings":"+JAgBqE,EACjEA,gBACAC,iBACAC,gBAEA,MAAMC,EAAYC,EAAAA,OAAuB,MACnCC,EAAkBD,EAAAA,OAAyD,OAC3EE,aAAEA,EAAYC,WAAEA,EAAUC,cAAEA,EAAaC,aAAEA,GAAiBC,EAAAA,4BAElEC,EAAAA,UAAU,KACN,IAAKR,EAAUS,QACX,OAIJ,MAAMC,EAAeP,EAAaN,GAC5Bc,EAAgBR,EAAaL,GACnC,IAAIY,IAAiBC,EAEjB,OAIJ,IAAKL,EAED,YADAM,QAAQC,MAAM,6DAKlB,MAAMC,EAAad,EAAUS,QACR,eAAdV,EACGC,EAAUS,QAAQM,YAClBf,EAAUS,QAAQO,aACQ,GAGpCd,EAAgBO,QAAU,IAAIQ,UAAqB,CAC/CC,WAAYR,EAAaS,QACzBC,YAAaT,EAAcQ,QAC3BhB,eACAG,eACAT,gBACAC,iBACAC,YACAsB,eAAgBhB,EAAciB,UAAW,EACzCjB,cAAe,CACXkB,MAAOlB,EAAckB,MACrBC,UAAWnB,EAAcmB,WAE7BV,eAIJ,MAAMW,EAAWzB,EAAUS,QAC3B,IAAKgB,EAAU,OAEf,IAAIC,GAAa,EACbC,EAAW,EAEf,MAAMC,EAAeC,IACjBA,EAAEC,iBACFD,EAAEE,kBACFL,GAAa,EACbC,EAAyB,eAAd5B,EAA6B8B,EAAEG,QAAUH,EAAEI,QAClD/B,EAAgBO,SAChBP,EAAgBO,QAAQmB,eAI1BM,EAAgBL,IAClB,IAAIH,IAAexB,EAAgBO,QAAS,OAC5C,MACM0B,GAD2B,eAAdpC,EAA6B8B,EAAEG,QAAUH,EAAEI,SACnCN,EAE3BzB,EAAgBO,QAAQ2B,SAASD,IAG/BE,EAAY,KACXX,GAAcxB,EAAgBO,UAC7BiB,GAAa,EACbxB,EAAgBO,QAAQ4B,cAQhC,OAJAZ,EAASa,iBAAiB,YAAaV,GACvCW,SAASD,iBAAiB,YAAaJ,GACvCK,SAASD,iBAAiB,UAAWD,GAE9B,KACHZ,EAASe,oBAAoB,YAAaZ,GAC1CW,SAASC,oBAAoB,YAAaN,GAC1CK,SAASC,oBAAoB,UAAWH,GACrCnC,EAAgBO,UACfP,EAAgBO,QAAQgC,UACxBvC,EAAgBO,QAAU,QAGnC,CAACZ,EAAeC,EAAgBC,EAAWI,EAAcC,EAAYC,EAAeC,IAEvF,MAAMoC,EAA6B,eAAd3C,EACrB,OACI4C,EAAAA,IAAA,MAAA,CACIC,IAAK5C,EACLuB,MAAO,CACHsB,SAAU,WACVC,MAAOJ,EAAe,OAAS,OAC/BK,OAAQL,EAAe,OAAS,OAChCM,gBAAiB,OACjBC,OAAQP,EAAe,YAAc,YACrCQ,OAAQ,IACRC,WAAY"}