react-resize-demo 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  一个现代化的 React 可调整大小面板组件库,支持水平和垂直方向的布局调整,具备完整的 TypeScript 支持和模块化架构。
4
4
 
5
+ **源码地址**: [https://gitee.com/zugechen/react-resize-demo](https://gitee.com/zugechen/react-resize-demo)
6
+
5
7
  ## ✨ 特性
6
8
 
7
9
  - ✅ **双向布局**:支持水平和垂直方向的布局
@@ -120,6 +122,42 @@ import { ResizeAbleCore } from 'react-resize-demo/utils';
120
122
  import type { VirtualConfig, ResizeDirection } from 'react-resize-demo/types';
121
123
  ```
122
124
 
125
+ ## 🎮 运行 Demo
126
+
127
+ 要查看和体验完整的 demo 示例(包括虚拟化模式、性能对比等),请从源码运行:
128
+
129
+ ### 步骤
130
+
131
+ 1. **Clone 源码仓库**
132
+
133
+ ```bash
134
+ git clone https://gitee.com/zugechen/react-resize-demo.git
135
+ cd react-resize-demo
136
+ ```
137
+
138
+ 2. **安装依赖**
139
+
140
+ ```bash
141
+ npm install
142
+ # 或
143
+ pnpm install
144
+ ```
145
+
146
+ 3. **启动 Demo**
147
+
148
+ ```bash
149
+ npm run demo
150
+ ```
151
+
152
+ 这将启动一个开发服务器(默认端口 3000),你可以在浏览器中查看和测试所有功能示例。
153
+
154
+ ### Demo 包含的内容
155
+
156
+ - ✅ 基础用法示例(水平/垂直布局)
157
+ - ✅ 虚拟化模式演示
158
+ - ✅ 性能对比测试
159
+ - ✅ 复杂内容场景演示
160
+
123
161
  ## 📖 API 文档
124
162
 
125
163
  ### ResizablePanelGroup
@@ -221,7 +259,7 @@ pnpm install
221
259
  npm run build
222
260
  ```
223
261
 
224
- ### 运行本地Demo
262
+ ### 运行 Demo(开发模式)
225
263
 
226
264
  ```bash
227
265
  npm run demo
@@ -229,7 +267,7 @@ npm run demo
229
267
 
230
268
  这将启动一个开发服务器,你可以在浏览器中查看和测试组件。
231
269
 
232
- ### 构建Demo
270
+ ### 构建 Demo(生产模式)
233
271
 
234
272
  ```bash
235
273
  npm run demo:build
@@ -247,6 +285,12 @@ npm run type-check
247
285
  npm run lint
248
286
  ```
249
287
 
288
+ ### 监听模式构建
289
+
290
+ ```bash
291
+ npm run build:watch
292
+ ```
293
+
250
294
  ## 💡 工作原理
251
295
 
252
296
  组件通过拖拽器(ResizeHandle)来调整相邻面板的尺寸:
@@ -302,3 +346,5 @@ MIT
302
346
  ## 🤝 贡献
303
347
 
304
348
  欢迎提交 Issue 和 Pull Request!
349
+
350
+ **源码仓库**: [https://gitee.com/zugechen/react-resize-demo](https://gitee.com/zugechen/react-resize-demo)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ResizeHandle/index.tsx"],"sourcesContent":["/**\r\n * 拖拽手柄组件\r\n * 负责处理面板之间的拖拽调整功能\r\n */\r\nimport React, { useRef, useEffect } from 'react';\r\nimport ResizeAbleCore from '../../utils/resizeAble';\r\nimport { useResizableContext } from '../shared/context';\r\nimport { ResizeDirection } from '../../types';\r\n\r\nexport interface ResizeHandleProps {\r\n prePanelIndex: number;\r\n nextPanelIndex: number;\r\n direction: ResizeDirection;\r\n}\r\n\r\nexport const ResizeHandle: React.FC<ResizeHandleProps> = ({\r\n prePanelIndex,\r\n nextPanelIndex,\r\n direction,\r\n}) => {\r\n const handleRef = useRef<HTMLDivElement>(null);\r\n const coreInstanceRef = useRef<InstanceType<typeof ResizeAbleCore> | null>(null);\r\n const { getPanelInfo, panelCount, virtualConfig } = useResizableContext();\r\n\r\n useEffect(() => {\r\n // 确保所需的面板索引都已注册\r\n // 需要确保 nextPanelIndex 对应的面板已经注册(因为索引从0开始,所以需要 >= nextPanelIndex + 1)\r\n if (panelCount <= nextPanelIndex || !handleRef.current) {\r\n return;\r\n }\r\n \r\n const prePanelInfo = getPanelInfo(prePanelIndex);\r\n const nextPanelInfo = getPanelInfo(nextPanelIndex);\r\n if(!prePanelInfo || !nextPanelInfo) return;\r\n \r\n // 获取拖拽器的尺寸\r\n const handleSize = handleRef.current \r\n ? (direction === 'horizontal' \r\n ? handleRef.current.offsetWidth \r\n : handleRef.current.offsetHeight)\r\n : (direction === 'horizontal' ? 10 : 10); // 默认10px\r\n \r\n coreInstanceRef.current = new ResizeAbleCore({\r\n prePanelEl: prePanelInfo.panelEl,\r\n nextPanelEl: nextPanelInfo.panelEl,\r\n getPanelInfo,\r\n prePanelIndex,\r\n nextPanelIndex,\r\n direction,\r\n virtualEnabled: virtualConfig.enabled || false,\r\n virtualConfig: {\r\n style: virtualConfig.style,\r\n className: virtualConfig.className,\r\n },\r\n handleSize, // 传递拖拽器尺寸\r\n });\r\n\r\n // 将拖拽器的开始/移动/结束事件绑定至核心类\r\n const handleEl = handleRef.current;\r\n let isResizing = false;\r\n let startPos = 0;\r\n\r\n const startResize = (e: MouseEvent) => {\r\n e.preventDefault();\r\n isResizing = true;\r\n startPos = direction === 'horizontal' ? e.clientX : e.clientY;\r\n if (coreInstanceRef.current) {\r\n coreInstanceRef.current.startResize();\r\n }\r\n };\r\n \r\n const onResizeMove = (e: MouseEvent) => {\r\n if(!isResizing || !coreInstanceRef.current) return;\r\n const currentPos = direction === 'horizontal' ? e.clientX : e.clientY;\r\n const delta = currentPos - startPos;\r\n coreInstanceRef.current.onResize(delta);\r\n };\r\n \r\n const endResize = () => {\r\n if(isResizing && coreInstanceRef.current) {\r\n isResizing = false;\r\n coreInstanceRef.current.endResize();\r\n }\r\n }\r\n \r\n handleEl.addEventListener('mousedown', startResize);\r\n document.addEventListener('mousemove', onResizeMove);\r\n document.addEventListener('mouseup', endResize);\r\n \r\n return () => {\r\n handleEl.removeEventListener('mousedown', startResize);\r\n document.removeEventListener('mousemove', onResizeMove);\r\n document.removeEventListener('mouseup', endResize);\r\n if(coreInstanceRef.current) {\r\n coreInstanceRef.current.destroy();\r\n }\r\n }\r\n }, [prePanelIndex, nextPanelIndex, direction, getPanelInfo, panelCount, virtualConfig]);\r\n\r\n const isHorizontal = direction === 'horizontal';\r\n return (\r\n <div\r\n ref={handleRef}\r\n style={{\r\n position: 'relative',\r\n width: isHorizontal ? '10px' : '100%',\r\n height: isHorizontal ? '100%' : '10px',\r\n backgroundColor: '#000',\r\n cursor: isHorizontal ? 'ew-resize' : 'ns-resize',\r\n zIndex: 1000,\r\n flexShrink: 0,\r\n }}\r\n />\r\n )\r\n};\r\n\r\n"],"names":["useRef","useResizableContext","useEffect","ResizeAbleCore","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ResizeHandle/index.tsx"],"sourcesContent":[null],"names":["useRef","useResizableContext","useEffect","ResizeAbleCore","_jsx"],"mappings":";;;;;;;AAeO,MAAM,YAAY,GAAgC,CAAC,EACtD,aAAa,EACb,cAAc,EACd,SAAS,GACZ,KAAI;AACD,IAAA,MAAM,SAAS,GAAGA,YAAM,CAAiB,IAAI,CAAC;AAC9C,IAAA,MAAM,eAAe,GAAGA,YAAM,CAA6C,IAAI,CAAC;IAChF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,GAAGC,2BAAmB,EAAE;IAEzEC,eAAS,CAAC,MAAK;;;QAGX,IAAI,UAAU,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACpD;QACJ;AAEA,QAAA,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC;AAChD,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC;AAClD,QAAA,IAAG,CAAC,YAAY,IAAI,CAAC,aAAa;YAAE;;AAGpC,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC;AACzB,eAAG,SAAS,KAAK;AACb,kBAAE,SAAS,CAAC,OAAO,CAAC;AACpB,kBAAE,SAAS,CAAC,OAAO,CAAC,YAAY;AACpC,eAAG,SAAS,KAAK,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAE7C,QAAA,eAAe,CAAC,OAAO,GAAG,IAAIC,kBAAc,CAAC;YACzC,UAAU,EAAE,YAAY,CAAC,OAAO;YAChC,WAAW,EAAE,aAAa,CAAC,OAAO;YAClC,YAAY;YACZ,aAAa;YACb,cAAc;YACd,SAAS;AACT,YAAA,cAAc,EAAE,aAAa,CAAC,OAAO,IAAI,KAAK;AAC9C,YAAA,aAAa,EAAE;gBACX,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,SAAS,EAAE,aAAa,CAAC,SAAS;AACrC,aAAA;AACD,YAAA,UAAU;AACb,SAAA,CAAC;;AAGF,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO;QAClC,IAAI,UAAU,GAAG,KAAK;QACtB,IAAI,QAAQ,GAAG,CAAC;AAEhB,QAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;YAClC,CAAC,CAAC,cAAc,EAAE;YAClB,UAAU,GAAG,IAAI;AACjB,YAAA,QAAQ,GAAG,SAAS,KAAK,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;AAC7D,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,gBAAA,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE;YACzC;AACJ,QAAA,CAAC;AAED,QAAA,MAAM,YAAY,GAAG,CAAC,CAAa,KAAI;AACnC,YAAA,IAAG,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAE;AAC5C,YAAA,MAAM,UAAU,GAAG,SAAS,KAAK,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;AACrE,YAAA,MAAM,KAAK,GAAG,UAAU,GAAG,QAAQ;AACnC,YAAA,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3C,QAAA,CAAC;QAED,MAAM,SAAS,GAAG,MAAK;AACnB,YAAA,IAAG,UAAU,IAAI,eAAe,CAAC,OAAO,EAAE;gBACtC,UAAU,GAAG,KAAK;AAClB,gBAAA,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE;YACvC;AACJ,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;AACnD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC;AACpD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;AAE/C,QAAA,OAAO,MAAK;AACR,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC;AACvD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;AAClD,YAAA,IAAG,eAAe,CAAC,OAAO,EAAE;AACxB,gBAAA,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE;YACrC;AACJ,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAEvF,IAAA,MAAM,YAAY,GAAG,SAAS,KAAK,YAAY;AAC/C,IAAA,QACIC,cAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM;YACrC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM;AACtC,YAAA,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,WAAW;AAChD,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,UAAU,EAAE,CAAC;AAChB,SAAA,EAAA,CACH;AAEV;;;;"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * 可调整大小的面板组件
5
+ * 负责展示面板内容和管理面板的注册/注销
6
+ */
7
+
8
+ interface ResizePanelProps {
9
+ children: React.ReactNode;
10
+ minSize?: number;
11
+ onResize?: (width: number) => void;
12
+ }
13
+ declare const ResizePanel: React.FC<ResizePanelProps>;
14
+
15
+ export { ResizePanel };
16
+ export type { ResizePanelProps };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ResizePanel/index.tsx"],"sourcesContent":["/**\r\n * 可调整大小的面板组件\r\n * 负责展示面板内容和管理面板的注册/注销\r\n */\r\nimport React, { useRef, useEffect } from 'react';\r\nimport { useResizableContext } from '../shared/context';\r\n\r\nexport interface ResizePanelProps {\r\n children: React.ReactNode;\r\n minSize?: number;\r\n onResize?: (width: number) => void;\r\n}\r\n\r\nexport const ResizePanel: React.FC<ResizePanelProps> = ({\r\n children,\r\n minSize = 100,\r\n // onResize, // 暂时未使用,保留以备将来使用\r\n}) => {\r\n const panelRef = useRef<HTMLDivElement>(null);\r\n const panelIndexRef = useRef<number>(-1);\r\n const { registerPanel, unregisterPanel, direction } = useResizableContext();\r\n \r\n useEffect(() => {\r\n if(!panelRef.current) return;\r\n const panelEl = panelRef.current;\r\n panelIndexRef.current = registerPanel(panelEl, minSize);\r\n return () => {\r\n unregisterPanel(panelEl);\r\n }\r\n }, [minSize, registerPanel, unregisterPanel]);\r\n\r\n return (\r\n <div\r\n ref={panelRef}\r\n style={{\r\n flex: 1,\r\n minWidth: direction === 'horizontal' ? minSize : undefined,\r\n minHeight: direction === 'vertical' ? minSize : undefined,\r\n width: 'auto',\r\n overflow: 'hidden',\r\n position: 'relative',\r\n }}\r\n >\r\n <div style={{height: '100%', padding: 16}}>\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n};\r\n"],"names":["useRef","useResizableContext","useEffect","_jsx"],"mappings":";;;;;;AAaO,MAAM,WAAW,GAA+B,CAAC,EACpD,QAAQ,EACR,OAAO,GAAG,GAAG;AACb;AACH,EAAA,KAAI;AACD,IAAA,MAAM,QAAQ,GAAGA,YAAM,CAAiB,IAAI,CAAC;AAC7C,IAAA,MAAM,aAAa,GAAGA,YAAM,CAAS,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,GAAGC,2BAAmB,EAAE;IAE3EC,eAAS,CAAC,MAAK;QACX,IAAG,CAAC,QAAQ,CAAC,OAAO;YAAE;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;QAChC,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;AACvD,QAAA,OAAO,MAAK;YACR,eAAe,CAAC,OAAO,CAAC;AAC5B,QAAA,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE7C,IAAA,QACIC,cAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,SAAS;YAC1D,SAAS,EAAE,SAAS,KAAK,UAAU,GAAG,OAAO,GAAG,SAAS;AACzD,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,UAAU;AACvB,SAAA,EAAA,QAAA,EAEDA,wBAAK,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAC,EAAA,QAAA,EACpC,QAAQ,EAAA,CACP,EAAA,CACJ;AAEd;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ResizePanel/index.tsx"],"sourcesContent":[null],"names":["useRef","useResizableContext","useEffect","_jsx"],"mappings":";;;;;;AAaO,MAAM,WAAW,GAA+B,CAAC,EACpD,QAAQ,EACR,OAAO,GAAG,GAAG;AACb;AACH,EAAA,KAAI;AACD,IAAA,MAAM,QAAQ,GAAGA,YAAM,CAAiB,IAAI,CAAC;AAC7C,IAAA,MAAM,aAAa,GAAGA,YAAM,CAAS,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,GAAGC,2BAAmB,EAAE;IAE3EC,eAAS,CAAC,MAAK;QACX,IAAG,CAAC,QAAQ,CAAC,OAAO;YAAE;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;QAChC,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;AACvD,QAAA,OAAO,MAAK;YACR,eAAe,CAAC,OAAO,CAAC;AAC5B,QAAA,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE7C,IAAA,QACIC,cAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,SAAS;YAC1D,SAAS,EAAE,SAAS,KAAK,UAAU,GAAG,OAAO,GAAG,SAAS;AACzD,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,UAAU;AACvB,SAAA,EAAA,QAAA,EAEDA,wBAAK,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAC,EAAA,QAAA,EACpC,QAAQ,EAAA,CACP,EAAA,CACJ;AAEd;;;;"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { ResizeDirection, VirtualConfig } from '../../types/index.js';
3
+
4
+ /**
5
+ * 可调整大小的面板组容器组件
6
+ * 负责管理多个面板的布局和拖拽手柄的插入
7
+ */
8
+
9
+ interface ResizePanelGroupProps {
10
+ children: React.ReactNode;
11
+ direction?: ResizeDirection;
12
+ virtual?: boolean;
13
+ virtualConfig?: VirtualConfig;
14
+ style?: React.CSSProperties;
15
+ }
16
+ declare const ResizePanelGroup: React.FC<ResizePanelGroupProps>;
17
+
18
+ export { ResizePanelGroup };
19
+ export type { ResizePanelGroupProps };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ResizePanelGroup/index.tsx"],"sourcesContent":["/**\r\n * 可调整大小的面板组容器组件\r\n * 负责管理多个面板的布局和拖拽手柄的插入\r\n */\r\nimport React, { useRef, useState, useCallback } from 'react';\r\nimport { ResizableContext, ResizableContextValue } from '../shared/context';\r\nimport { ResizeHandle } from '../ResizeHandle';\r\nimport { PanelInfo, VirtualConfig, ResizeDirection } from '../../types';\r\n\r\nexport interface ResizePanelGroupProps {\r\n children: React.ReactNode;\r\n direction?: ResizeDirection;\r\n virtual?: boolean; // 是否启用虚拟化,默认false\r\n virtualConfig?: VirtualConfig; // 虚拟化配置\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const ResizePanelGroup: React.FC<ResizePanelGroupProps> = ({\r\n children,\r\n direction = 'horizontal',\r\n style,\r\n virtual = false,\r\n virtualConfig = {},\r\n}) => {\r\n const panelInfos = useRef<PanelInfo[]>([]);\r\n const [panelCount, setPanelCount] = useState(0);\r\n \r\n const registerPanel = useCallback((panelEl: HTMLElement, minSize: number): number => {\r\n const index = panelInfos.current.length;\r\n panelInfos.current.push({ panelEl, minSize });\r\n setPanelCount(panelInfos.current.length);\r\n return index;\r\n }, []);\r\n \r\n const unregisterPanel = useCallback((panelEl: HTMLElement) => {\r\n panelInfos.current = panelInfos.current.filter(info => info.panelEl !== panelEl);\r\n setPanelCount(panelInfos.current.length);\r\n }, []);\r\n \r\n const getPanelInfo = useCallback((index: number): PanelInfo | null => {\r\n return panelInfos.current[index] || null;\r\n }, []);\r\n \r\n const getPanelIndex = useCallback((panelEl: HTMLElement): number => {\r\n return panelInfos.current.findIndex(info => info.panelEl === panelEl);\r\n }, []);\r\n\r\n const childrenArray = React.Children.toArray(children);\r\n const panelsWithHandles: React.ReactNode[] = [];\r\n\r\n childrenArray.forEach((child, index) => {\r\n panelsWithHandles.push(child);\r\n \r\n // 在面板之间插入拖拽器(最后一个面板后不插入)\r\n if (index < childrenArray.length - 1) {\r\n panelsWithHandles.push(\r\n <ResizeHandle\r\n key={`handle-${index}`}\r\n prePanelIndex={index}\r\n nextPanelIndex={index + 1}\r\n direction={direction}\r\n />\r\n );\r\n }\r\n });\r\n\r\n // 合并虚拟化配置\r\n const mergedVirtualConfig: VirtualConfig = {\r\n enabled: virtual,\r\n ...virtualConfig,\r\n };\r\n\r\n const contextValue: ResizableContextValue = {\r\n panelCount: panelCount,\r\n registerPanel, \r\n unregisterPanel,\r\n getPanelInfo,\r\n getPanelIndex,\r\n direction,\r\n panelInfos: panelInfos.current,\r\n virtualConfig: mergedVirtualConfig,\r\n };\r\n\r\n return (\r\n <ResizableContext.Provider value={contextValue}>\r\n <div style={{\r\n display: 'flex',\r\n flexDirection: direction === 'horizontal' ? 'row' : 'column',\r\n height: '100%',\r\n position: 'relative', // 为虚拟节点定位提供参考\r\n ...style,\r\n }}>\r\n {panelsWithHandles}\r\n </div>\r\n </ResizableContext.Provider>\r\n )\r\n};\r\n\r\n"],"names":["useRef","useState","useCallback","index","_jsx","ResizeHandle","ResizableContext"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ResizePanelGroup/index.tsx"],"sourcesContent":[null],"names":["useRef","useState","useCallback","index","_jsx","ResizeHandle","ResizableContext"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../src/components/shared/context.tsx"],"sourcesContent":["import React from 'react';\r\nimport { PanelInfo, VirtualConfig, ResizeDirection } from '../../types';\r\n\r\n/**\r\n * Resizable Context 接口定义\r\n */\r\nexport interface ResizableContextValue {\r\n panelCount: number;\r\n registerPanel: (panelEl: HTMLElement, minSize: number) => number; // 返回索引\r\n unregisterPanel: (panelEl: HTMLElement) => void;\r\n getPanelInfo: (index: number) => PanelInfo | null;\r\n getPanelIndex: (panelEl: HTMLElement) => number;\r\n direction: ResizeDirection;\r\n panelInfos: PanelInfo[];\r\n virtualConfig: VirtualConfig;\r\n}\r\n\r\n/**\r\n * Resizable Context 默认值\r\n */\r\nconst defaultContextValue: ResizableContextValue = {\r\n panelCount: 0,\r\n registerPanel: () => 0,\r\n unregisterPanel: () => {},\r\n getPanelInfo: () => null,\r\n getPanelIndex: () => -1,\r\n direction: 'horizontal',\r\n panelInfos: [],\r\n virtualConfig: { enabled: false },\r\n};\r\n\r\n/**\r\n * Resizable Context\r\n */\r\nexport const ResizableContext = React.createContext<ResizableContextValue>(defaultContextValue);\r\n\r\n/**\r\n * 使用 Resizable Context 的 Hook\r\n */\r\nexport const useResizableContext = () => {\r\n const context = React.useContext(ResizableContext);\r\n if (!context) {\r\n throw new Error('useResizableContext must be used within ResizablePanelGroup');\r\n }\r\n return context;\r\n};\r\n\r\n"],"names":[],"mappings":";;;;AAiBA;;AAEG;AACH,MAAM,mBAAmB,GAA0B;AAC/C,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,aAAa,EAAE,MAAM,CAAC;AACtB,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;AACzB,IAAA,YAAY,EAAE,MAAM,IAAI;AACxB,IAAA,aAAa,EAAE,MAAM,EAAE;AACvB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;CACpC;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAwB,mBAAmB;AAE9F;;AAEG;AACI,MAAM,mBAAmB,GAAG,MAAK;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAClF;AACA,IAAA,OAAO,OAAO;AAClB;;;;;"}
1
+ {"version":3,"file":"context.js","sources":["../../../src/components/shared/context.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;AAiBA;;AAEG;AACH,MAAM,mBAAmB,GAA0B;AAC/C,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,aAAa,EAAE,MAAM,CAAC;AACtB,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;AACzB,IAAA,YAAY,EAAE,MAAM,IAAI;AACxB,IAAA,aAAa,EAAE,MAAM,EAAE;AACvB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;CACpC;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAwB,mBAAmB;AAE9F;;AAEG;AACI,MAAM,mBAAmB,GAAG,MAAK;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAClF;AACA,IAAA,OAAO,OAAO;AAClB;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ResizeHandle/index.tsx"],"sourcesContent":["/**\r\n * 拖拽手柄组件\r\n * 负责处理面板之间的拖拽调整功能\r\n */\r\nimport React, { useRef, useEffect } from 'react';\r\nimport ResizeAbleCore from '../../utils/resizeAble';\r\nimport { useResizableContext } from '../shared/context';\r\nimport { ResizeDirection } from '../../types';\r\n\r\nexport interface ResizeHandleProps {\r\n prePanelIndex: number;\r\n nextPanelIndex: number;\r\n direction: ResizeDirection;\r\n}\r\n\r\nexport const ResizeHandle: React.FC<ResizeHandleProps> = ({\r\n prePanelIndex,\r\n nextPanelIndex,\r\n direction,\r\n}) => {\r\n const handleRef = useRef<HTMLDivElement>(null);\r\n const coreInstanceRef = useRef<InstanceType<typeof ResizeAbleCore> | null>(null);\r\n const { getPanelInfo, panelCount, virtualConfig } = useResizableContext();\r\n\r\n useEffect(() => {\r\n // 确保所需的面板索引都已注册\r\n // 需要确保 nextPanelIndex 对应的面板已经注册(因为索引从0开始,所以需要 >= nextPanelIndex + 1)\r\n if (panelCount <= nextPanelIndex || !handleRef.current) {\r\n return;\r\n }\r\n \r\n const prePanelInfo = getPanelInfo(prePanelIndex);\r\n const nextPanelInfo = getPanelInfo(nextPanelIndex);\r\n if(!prePanelInfo || !nextPanelInfo) return;\r\n \r\n // 获取拖拽器的尺寸\r\n const handleSize = handleRef.current \r\n ? (direction === 'horizontal' \r\n ? handleRef.current.offsetWidth \r\n : handleRef.current.offsetHeight)\r\n : (direction === 'horizontal' ? 10 : 10); // 默认10px\r\n \r\n coreInstanceRef.current = new ResizeAbleCore({\r\n prePanelEl: prePanelInfo.panelEl,\r\n nextPanelEl: nextPanelInfo.panelEl,\r\n getPanelInfo,\r\n prePanelIndex,\r\n nextPanelIndex,\r\n direction,\r\n virtualEnabled: virtualConfig.enabled || false,\r\n virtualConfig: {\r\n style: virtualConfig.style,\r\n className: virtualConfig.className,\r\n },\r\n handleSize, // 传递拖拽器尺寸\r\n });\r\n\r\n // 将拖拽器的开始/移动/结束事件绑定至核心类\r\n const handleEl = handleRef.current;\r\n let isResizing = false;\r\n let startPos = 0;\r\n\r\n const startResize = (e: MouseEvent) => {\r\n e.preventDefault();\r\n isResizing = true;\r\n startPos = direction === 'horizontal' ? e.clientX : e.clientY;\r\n if (coreInstanceRef.current) {\r\n coreInstanceRef.current.startResize();\r\n }\r\n };\r\n \r\n const onResizeMove = (e: MouseEvent) => {\r\n if(!isResizing || !coreInstanceRef.current) return;\r\n const currentPos = direction === 'horizontal' ? e.clientX : e.clientY;\r\n const delta = currentPos - startPos;\r\n coreInstanceRef.current.onResize(delta);\r\n };\r\n \r\n const endResize = () => {\r\n if(isResizing && coreInstanceRef.current) {\r\n isResizing = false;\r\n coreInstanceRef.current.endResize();\r\n }\r\n }\r\n \r\n handleEl.addEventListener('mousedown', startResize);\r\n document.addEventListener('mousemove', onResizeMove);\r\n document.addEventListener('mouseup', endResize);\r\n \r\n return () => {\r\n handleEl.removeEventListener('mousedown', startResize);\r\n document.removeEventListener('mousemove', onResizeMove);\r\n document.removeEventListener('mouseup', endResize);\r\n if(coreInstanceRef.current) {\r\n coreInstanceRef.current.destroy();\r\n }\r\n }\r\n }, [prePanelIndex, nextPanelIndex, direction, getPanelInfo, panelCount, virtualConfig]);\r\n\r\n const isHorizontal = direction === 'horizontal';\r\n return (\r\n <div\r\n ref={handleRef}\r\n style={{\r\n position: 'relative',\r\n width: isHorizontal ? '10px' : '100%',\r\n height: isHorizontal ? '100%' : '10px',\r\n backgroundColor: '#000',\r\n cursor: isHorizontal ? 'ew-resize' : 'ns-resize',\r\n zIndex: 1000,\r\n flexShrink: 0,\r\n }}\r\n />\r\n )\r\n};\r\n\r\n"],"names":["_jsx"],"mappings":";;;;;AAeO,MAAM,YAAY,GAAgC,CAAC,EACtD,aAAa,EACb,cAAc,EACd,SAAS,GACZ,KAAI;AACD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC9C,IAAA,MAAM,eAAe,GAAG,MAAM,CAA6C,IAAI,CAAC;IAChF,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE;IAEzE,SAAS,CAAC,MAAK;;;QAGX,IAAI,UAAU,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACpD;QACJ;AAEA,QAAA,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC;AAChD,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC;AAClD,QAAA,IAAG,CAAC,YAAY,IAAI,CAAC,aAAa;YAAE;;AAGpC,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC;AACzB,eAAG,SAAS,KAAK;AACb,kBAAE,SAAS,CAAC,OAAO,CAAC;AACpB,kBAAE,SAAS,CAAC,OAAO,CAAC,YAAY;AACpC,eAAG,SAAS,KAAK,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAE7C,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC;YACzC,UAAU,EAAE,YAAY,CAAC,OAAO;YAChC,WAAW,EAAE,aAAa,CAAC,OAAO;YAClC,YAAY;YACZ,aAAa;YACb,cAAc;YACd,SAAS;AACT,YAAA,cAAc,EAAE,aAAa,CAAC,OAAO,IAAI,KAAK;AAC9C,YAAA,aAAa,EAAE;gBACX,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,SAAS,EAAE,aAAa,CAAC,SAAS;AACrC,aAAA;AACD,YAAA,UAAU;AACb,SAAA,CAAC;;AAGF,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO;QAClC,IAAI,UAAU,GAAG,KAAK;QACtB,IAAI,QAAQ,GAAG,CAAC;AAEhB,QAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;YAClC,CAAC,CAAC,cAAc,EAAE;YAClB,UAAU,GAAG,IAAI;AACjB,YAAA,QAAQ,GAAG,SAAS,KAAK,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;AAC7D,YAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AACzB,gBAAA,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE;YACzC;AACJ,QAAA,CAAC;AAED,QAAA,MAAM,YAAY,GAAG,CAAC,CAAa,KAAI;AACnC,YAAA,IAAG,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAE;AAC5C,YAAA,MAAM,UAAU,GAAG,SAAS,KAAK,YAAY,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;AACrE,YAAA,MAAM,KAAK,GAAG,UAAU,GAAG,QAAQ;AACnC,YAAA,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3C,QAAA,CAAC;QAED,MAAM,SAAS,GAAG,MAAK;AACnB,YAAA,IAAG,UAAU,IAAI,eAAe,CAAC,OAAO,EAAE;gBACtC,UAAU,GAAG,KAAK;AAClB,gBAAA,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE;YACvC;AACJ,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;AACnD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC;AACpD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;AAE/C,QAAA,OAAO,MAAK;AACR,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC;AACvD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;AAClD,YAAA,IAAG,eAAe,CAAC,OAAO,EAAE;AACxB,gBAAA,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE;YACrC;AACJ,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAEvF,IAAA,MAAM,YAAY,GAAG,SAAS,KAAK,YAAY;AAC/C,IAAA,QACIA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM;YACrC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM;AACtC,YAAA,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,WAAW;AAChD,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,UAAU,EAAE,CAAC;AAChB,SAAA,EAAA,CACH;AAEV;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ResizeHandle/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * 可调整大小的面板组件
5
+ * 负责展示面板内容和管理面板的注册/注销
6
+ */
7
+
8
+ interface ResizePanelProps {
9
+ children: React.ReactNode;
10
+ minSize?: number;
11
+ onResize?: (width: number) => void;
12
+ }
13
+ declare const ResizePanel: React.FC<ResizePanelProps>;
14
+
15
+ export { ResizePanel };
16
+ export type { ResizePanelProps };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ResizePanel/index.tsx"],"sourcesContent":["/**\r\n * 可调整大小的面板组件\r\n * 负责展示面板内容和管理面板的注册/注销\r\n */\r\nimport React, { useRef, useEffect } from 'react';\r\nimport { useResizableContext } from '../shared/context';\r\n\r\nexport interface ResizePanelProps {\r\n children: React.ReactNode;\r\n minSize?: number;\r\n onResize?: (width: number) => void;\r\n}\r\n\r\nexport const ResizePanel: React.FC<ResizePanelProps> = ({\r\n children,\r\n minSize = 100,\r\n // onResize, // 暂时未使用,保留以备将来使用\r\n}) => {\r\n const panelRef = useRef<HTMLDivElement>(null);\r\n const panelIndexRef = useRef<number>(-1);\r\n const { registerPanel, unregisterPanel, direction } = useResizableContext();\r\n \r\n useEffect(() => {\r\n if(!panelRef.current) return;\r\n const panelEl = panelRef.current;\r\n panelIndexRef.current = registerPanel(panelEl, minSize);\r\n return () => {\r\n unregisterPanel(panelEl);\r\n }\r\n }, [minSize, registerPanel, unregisterPanel]);\r\n\r\n return (\r\n <div\r\n ref={panelRef}\r\n style={{\r\n flex: 1,\r\n minWidth: direction === 'horizontal' ? minSize : undefined,\r\n minHeight: direction === 'vertical' ? minSize : undefined,\r\n width: 'auto',\r\n overflow: 'hidden',\r\n position: 'relative',\r\n }}\r\n >\r\n <div style={{height: '100%', padding: 16}}>\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n};\r\n"],"names":["_jsx"],"mappings":";;;;AAaO,MAAM,WAAW,GAA+B,CAAC,EACpD,QAAQ,EACR,OAAO,GAAG,GAAG;AACb;AACH,EAAA,KAAI;AACD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC7C,IAAA,MAAM,aAAa,GAAG,MAAM,CAAS,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE;IAE3E,SAAS,CAAC,MAAK;QACX,IAAG,CAAC,QAAQ,CAAC,OAAO;YAAE;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;QAChC,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;AACvD,QAAA,OAAO,MAAK;YACR,eAAe,CAAC,OAAO,CAAC;AAC5B,QAAA,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE7C,IAAA,QACIA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,SAAS;YAC1D,SAAS,EAAE,SAAS,KAAK,UAAU,GAAG,OAAO,GAAG,SAAS;AACzD,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,UAAU;AACvB,SAAA,EAAA,QAAA,EAEDA,aAAK,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAC,EAAA,QAAA,EACpC,QAAQ,EAAA,CACP,EAAA,CACJ;AAEd;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ResizePanel/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;AAaO,MAAM,WAAW,GAA+B,CAAC,EACpD,QAAQ,EACR,OAAO,GAAG,GAAG;AACb;AACH,EAAA,KAAI;AACD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC7C,IAAA,MAAM,aAAa,GAAG,MAAM,CAAS,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE;IAE3E,SAAS,CAAC,MAAK;QACX,IAAG,CAAC,QAAQ,CAAC,OAAO;YAAE;AACtB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;QAChC,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;AACvD,QAAA,OAAO,MAAK;YACR,eAAe,CAAC,OAAO,CAAC;AAC5B,QAAA,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE7C,IAAA,QACIA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,SAAS;YAC1D,SAAS,EAAE,SAAS,KAAK,UAAU,GAAG,OAAO,GAAG,SAAS;AACzD,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,UAAU;AACvB,SAAA,EAAA,QAAA,EAEDA,aAAK,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAC,EAAA,QAAA,EACpC,QAAQ,EAAA,CACP,EAAA,CACJ;AAEd;;;;"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { ResizeDirection, VirtualConfig } from '../../types/index.js';
3
+
4
+ /**
5
+ * 可调整大小的面板组容器组件
6
+ * 负责管理多个面板的布局和拖拽手柄的插入
7
+ */
8
+
9
+ interface ResizePanelGroupProps {
10
+ children: React.ReactNode;
11
+ direction?: ResizeDirection;
12
+ virtual?: boolean;
13
+ virtualConfig?: VirtualConfig;
14
+ style?: React.CSSProperties;
15
+ }
16
+ declare const ResizePanelGroup: React.FC<ResizePanelGroupProps>;
17
+
18
+ export { ResizePanelGroup };
19
+ export type { ResizePanelGroupProps };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ResizePanelGroup/index.tsx"],"sourcesContent":["/**\r\n * 可调整大小的面板组容器组件\r\n * 负责管理多个面板的布局和拖拽手柄的插入\r\n */\r\nimport React, { useRef, useState, useCallback } from 'react';\r\nimport { ResizableContext, ResizableContextValue } from '../shared/context';\r\nimport { ResizeHandle } from '../ResizeHandle';\r\nimport { PanelInfo, VirtualConfig, ResizeDirection } from '../../types';\r\n\r\nexport interface ResizePanelGroupProps {\r\n children: React.ReactNode;\r\n direction?: ResizeDirection;\r\n virtual?: boolean; // 是否启用虚拟化,默认false\r\n virtualConfig?: VirtualConfig; // 虚拟化配置\r\n style?: React.CSSProperties;\r\n}\r\n\r\nexport const ResizePanelGroup: React.FC<ResizePanelGroupProps> = ({\r\n children,\r\n direction = 'horizontal',\r\n style,\r\n virtual = false,\r\n virtualConfig = {},\r\n}) => {\r\n const panelInfos = useRef<PanelInfo[]>([]);\r\n const [panelCount, setPanelCount] = useState(0);\r\n \r\n const registerPanel = useCallback((panelEl: HTMLElement, minSize: number): number => {\r\n const index = panelInfos.current.length;\r\n panelInfos.current.push({ panelEl, minSize });\r\n setPanelCount(panelInfos.current.length);\r\n return index;\r\n }, []);\r\n \r\n const unregisterPanel = useCallback((panelEl: HTMLElement) => {\r\n panelInfos.current = panelInfos.current.filter(info => info.panelEl !== panelEl);\r\n setPanelCount(panelInfos.current.length);\r\n }, []);\r\n \r\n const getPanelInfo = useCallback((index: number): PanelInfo | null => {\r\n return panelInfos.current[index] || null;\r\n }, []);\r\n \r\n const getPanelIndex = useCallback((panelEl: HTMLElement): number => {\r\n return panelInfos.current.findIndex(info => info.panelEl === panelEl);\r\n }, []);\r\n\r\n const childrenArray = React.Children.toArray(children);\r\n const panelsWithHandles: React.ReactNode[] = [];\r\n\r\n childrenArray.forEach((child, index) => {\r\n panelsWithHandles.push(child);\r\n \r\n // 在面板之间插入拖拽器(最后一个面板后不插入)\r\n if (index < childrenArray.length - 1) {\r\n panelsWithHandles.push(\r\n <ResizeHandle\r\n key={`handle-${index}`}\r\n prePanelIndex={index}\r\n nextPanelIndex={index + 1}\r\n direction={direction}\r\n />\r\n );\r\n }\r\n });\r\n\r\n // 合并虚拟化配置\r\n const mergedVirtualConfig: VirtualConfig = {\r\n enabled: virtual,\r\n ...virtualConfig,\r\n };\r\n\r\n const contextValue: ResizableContextValue = {\r\n panelCount: panelCount,\r\n registerPanel, \r\n unregisterPanel,\r\n getPanelInfo,\r\n getPanelIndex,\r\n direction,\r\n panelInfos: panelInfos.current,\r\n virtualConfig: mergedVirtualConfig,\r\n };\r\n\r\n return (\r\n <ResizableContext.Provider value={contextValue}>\r\n <div style={{\r\n display: 'flex',\r\n flexDirection: direction === 'horizontal' ? 'row' : 'column',\r\n height: '100%',\r\n position: 'relative', // 为虚拟节点定位提供参考\r\n ...style,\r\n }}>\r\n {panelsWithHandles}\r\n </div>\r\n </ResizableContext.Provider>\r\n )\r\n};\r\n\r\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ResizePanelGroup/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../src/components/shared/context.tsx"],"sourcesContent":["import React from 'react';\r\nimport { PanelInfo, VirtualConfig, ResizeDirection } from '../../types';\r\n\r\n/**\r\n * Resizable Context 接口定义\r\n */\r\nexport interface ResizableContextValue {\r\n panelCount: number;\r\n registerPanel: (panelEl: HTMLElement, minSize: number) => number; // 返回索引\r\n unregisterPanel: (panelEl: HTMLElement) => void;\r\n getPanelInfo: (index: number) => PanelInfo | null;\r\n getPanelIndex: (panelEl: HTMLElement) => number;\r\n direction: ResizeDirection;\r\n panelInfos: PanelInfo[];\r\n virtualConfig: VirtualConfig;\r\n}\r\n\r\n/**\r\n * Resizable Context 默认值\r\n */\r\nconst defaultContextValue: ResizableContextValue = {\r\n panelCount: 0,\r\n registerPanel: () => 0,\r\n unregisterPanel: () => {},\r\n getPanelInfo: () => null,\r\n getPanelIndex: () => -1,\r\n direction: 'horizontal',\r\n panelInfos: [],\r\n virtualConfig: { enabled: false },\r\n};\r\n\r\n/**\r\n * Resizable Context\r\n */\r\nexport const ResizableContext = React.createContext<ResizableContextValue>(defaultContextValue);\r\n\r\n/**\r\n * 使用 Resizable Context 的 Hook\r\n */\r\nexport const useResizableContext = () => {\r\n const context = React.useContext(ResizableContext);\r\n if (!context) {\r\n throw new Error('useResizableContext must be used within ResizablePanelGroup');\r\n }\r\n return context;\r\n};\r\n\r\n"],"names":[],"mappings":";;AAiBA;;AAEG;AACH,MAAM,mBAAmB,GAA0B;AAC/C,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,aAAa,EAAE,MAAM,CAAC;AACtB,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;AACzB,IAAA,YAAY,EAAE,MAAM,IAAI;AACxB,IAAA,aAAa,EAAE,MAAM,EAAE;AACvB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;CACpC;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAwB,mBAAmB;AAE9F;;AAEG;AACI,MAAM,mBAAmB,GAAG,MAAK;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAClF;AACA,IAAA,OAAO,OAAO;AAClB;;;;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../src/components/shared/context.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAiBA;;AAEG;AACH,MAAM,mBAAmB,GAA0B;AAC/C,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,aAAa,EAAE,MAAM,CAAC;AACtB,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;AACzB,IAAA,YAAY,EAAE,MAAM,IAAI;AACxB,IAAA,aAAa,EAAE,MAAM,EAAE;AACvB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;CACpC;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAwB,mBAAmB;AAE9F;;AAEG;AACI,MAAM,mBAAmB,GAAG,MAAK;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAClF;AACA,IAAA,OAAO,OAAO;AAClB;;;;"}
@@ -0,0 +1,3 @@
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';
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * 面板信息接口
5
+ */
6
+ interface PanelInfo {
7
+ panelEl: HTMLElement;
8
+ minSize: number;
9
+ }
10
+ /**
11
+ * 虚拟化配置接口
12
+ */
13
+ interface VirtualConfig {
14
+ enabled?: boolean;
15
+ style?: React.CSSProperties;
16
+ className?: string;
17
+ }
18
+ /**
19
+ * 虚拟节点配置接口(用于虚拟节点管理器)
20
+ */
21
+ interface VirtualNodeConfig {
22
+ style?: React.CSSProperties;
23
+ className?: string;
24
+ }
25
+ /**
26
+ * 调整方向类型
27
+ */
28
+ type ResizeDirection = 'horizontal' | 'vertical';
29
+ /**
30
+ * ResizeAbleCore 选项接口
31
+ */
32
+ interface ResizeAbleCoreOptions {
33
+ prePanelEl: HTMLElement;
34
+ nextPanelEl: HTMLElement;
35
+ getPanelInfo: (index: number) => PanelInfo | null;
36
+ prePanelIndex: number;
37
+ nextPanelIndex: number;
38
+ direction: ResizeDirection;
39
+ virtualEnabled?: boolean;
40
+ virtualConfig?: VirtualNodeConfig;
41
+ handleSize?: number;
42
+ }
43
+
44
+ export type { PanelInfo, ResizeAbleCoreOptions, ResizeDirection, VirtualConfig, VirtualNodeConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"resizeAble.js","sources":["../../../src/utils/resizeAble.ts"],"sourcesContent":["import VirtualNodeManager from './virtualNode';\r\nimport { PanelInfo, ResizeAbleCoreOptions, VirtualNodeConfig, ResizeDirection } from '../types';\r\n\r\nclass ResizeAbleCore {\r\n private prePanelEl: HTMLElement;\r\n private nextPanelEl: HTMLElement;\r\n private getPanelInfo: (index: number) => PanelInfo | null;\r\n private prePanelIndex: number;\r\n private nextPanelIndex: number;\r\n private direction: ResizeDirection;\r\n private virtualEnabled: boolean;\r\n private virtualConfig: VirtualNodeConfig;\r\n private isResizing: boolean = false;\r\n private prePanelStartSize: number = 0;\r\n private nextPanelStartSize: number = 0;\r\n private allPanelsStartSizes: Map<number, number> = new Map();\r\n private allPanelsStartPositions: Map<number, number> = new Map(); // 记录面板初始位置(虚拟化模式使用)\r\n private handleSize: number; // 拖拽器尺寸(宽度或高度,根据方向)\r\n private virtualNodeManager: VirtualNodeManager | null = null;\r\n\r\n constructor(options: ResizeAbleCoreOptions) {\r\n this.prePanelEl = options.prePanelEl;\r\n this.nextPanelEl = options.nextPanelEl;\r\n this.getPanelInfo = options.getPanelInfo;\r\n this.prePanelIndex = options.prePanelIndex;\r\n this.nextPanelIndex = options.nextPanelIndex;\r\n this.direction = options.direction;\r\n this.virtualEnabled = options.virtualEnabled || false;\r\n this.virtualConfig = options.virtualConfig || {};\r\n this.handleSize = options.handleSize || 0;\r\n \r\n // 如果启用虚拟化,创建虚拟节点管理器\r\n if (this.virtualEnabled) {\r\n this.virtualNodeManager = new VirtualNodeManager();\r\n }\r\n }\r\n\r\n startResize(): void {\r\n // 设置开始拖拽\r\n this.isResizing = true;\r\n\r\n // 记录前一个面板的开始大小\r\n this.prePanelStartSize = this.getSize(this.prePanelEl);\r\n this.allPanelsStartSizes.set(this.prePanelIndex, this.prePanelStartSize);\r\n // 记录后一个面板的开始大小\r\n this.nextPanelStartSize = this.getSize(this.nextPanelEl);\r\n this.allPanelsStartSizes.set(this.nextPanelIndex, this.nextPanelStartSize);\r\n \r\n // 根据方向设置尺寸属性\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n \r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n // 虚拟化模式:创建虚拟节点并记录初始位置\r\n const prePos = this.getPosition(this.prePanelEl);\r\n this.allPanelsStartPositions.set(this.prePanelIndex, prePos);\r\n this.virtualNodeManager.createVirtualNode(this.prePanelEl, this.virtualConfig);\r\n \r\n const nextPos = this.getPosition(this.nextPanelEl);\r\n this.allPanelsStartPositions.set(this.nextPanelIndex, nextPos);\r\n this.virtualNodeManager.createVirtualNode(this.nextPanelEl, this.virtualConfig);\r\n\r\n // 记录前面面板的初始尺寸和位置并创建虚拟节点\r\n let prevIndex = this.prePanelIndex - 1;\r\n while (prevIndex >= 0) {\r\n const panelInfo = this.getPanelInfo(prevIndex);\r\n if (!panelInfo) break;\r\n\r\n const size = this.getSize(panelInfo.panelEl);\r\n const pos = this.getPosition(panelInfo.panelEl);\r\n this.allPanelsStartSizes.set(prevIndex, size);\r\n this.allPanelsStartPositions.set(prevIndex, pos);\r\n this.virtualNodeManager.createVirtualNode(panelInfo.panelEl, this.virtualConfig);\r\n prevIndex--;\r\n }\r\n\r\n // 记录后续面板的初始尺寸和位置并创建虚拟节点\r\n let nextIndex = this.nextPanelIndex + 1;\r\n let nextPanelInfo = this.getPanelInfo(nextIndex);\r\n while (nextPanelInfo) {\r\n const size = this.getSize(nextPanelInfo.panelEl);\r\n const pos = this.getPosition(nextPanelInfo.panelEl);\r\n this.allPanelsStartSizes.set(nextIndex, size);\r\n this.allPanelsStartPositions.set(nextIndex, pos);\r\n this.virtualNodeManager.createVirtualNode(nextPanelInfo.panelEl, this.virtualConfig);\r\n nextIndex++;\r\n nextPanelInfo = this.getPanelInfo(nextIndex);\r\n }\r\n } else {\r\n // 非虚拟化模式:直接操作真实节点\r\n // 禁用flex\r\n this.prePanelEl.style.flex = 'none';\r\n this.prePanelEl.style[sizeProperty] = `${this.prePanelStartSize}px`;\r\n this.nextPanelEl.style.flex = 'none';\r\n this.nextPanelEl.style[sizeProperty] = `${this.nextPanelStartSize}px`;\r\n\r\n // 记录前面面板的初始尺寸(用于向前拖拽时的级联调整)\r\n let prevIndex = this.prePanelIndex - 1;\r\n while (prevIndex >= 0) {\r\n const panelInfo = this.getPanelInfo(prevIndex);\r\n if (!panelInfo) break;\r\n\r\n const size = this.getSize(panelInfo.panelEl);\r\n this.allPanelsStartSizes.set(prevIndex, size);\r\n panelInfo.panelEl.style.flex = 'none';\r\n panelInfo.panelEl.style[sizeProperty] = `${size}px`;\r\n prevIndex--;\r\n }\r\n\r\n // 记录后续面板的初始尺寸(用于向后拖拽时的级联调整)\r\n let nextIndex = this.nextPanelIndex + 1;\r\n let nextPanelInfo = this.getPanelInfo(nextIndex);\r\n while (nextPanelInfo) {\r\n const size = this.getSize(nextPanelInfo.panelEl);\r\n this.allPanelsStartSizes.set(nextIndex, size);\r\n nextPanelInfo.panelEl.style.flex = 'none';\r\n nextPanelInfo.panelEl.style[sizeProperty] = `${size}px`;\r\n nextIndex++;\r\n nextPanelInfo = this.getPanelInfo(nextIndex);\r\n }\r\n }\r\n }\r\n\r\n onResize(delta: number): void {\r\n if (!this.isResizing) return;\r\n\r\n if (delta > 0) {\r\n // 向后拖拽(水平布局向右,垂直布局向下):扩大前一个面板,缩小后一个面板\r\n this.adjustPanelsNext(delta);\r\n } else {\r\n // 向前拖拽(水平布局向左,垂直布局向上):缩小前一个面板,扩大后一个面板\r\n // 将负数转为正数处理\r\n this.adjustPanelsPre(-delta);\r\n }\r\n }\r\n\r\n private adjustPanelsNext(delta: number): void {\r\n let remainingDelta = delta;\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n\r\n // 尝试从后一个面板获取空间\r\n const nextPanelInfo = this.getPanelInfo(this.nextPanelIndex);\r\n if (nextPanelInfo) {\r\n const nextStartSize = this.allPanelsStartSizes.get(this.nextPanelIndex) || 0;\r\n const targetNextSize = nextStartSize - remainingDelta;\r\n const newNextSize = Math.max(nextPanelInfo.minSize, targetNextSize);\r\n const actualReduction = nextStartSize - newNextSize;\r\n\r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.nextPanelEl, newNextSize, this.direction);\r\n } else {\r\n this.nextPanelEl.style[sizeProperty] = `${newNextSize}px`;\r\n }\r\n remainingDelta -= actualReduction;\r\n }\r\n\r\n // 如果后一个面板达到了最小值,继续从后续的面板中获取空间\r\n if (remainingDelta > 0) {\r\n let nextIndex = this.nextPanelIndex + 1;\r\n while (remainingDelta > 0) {\r\n const nextPanelInfo = this.getPanelInfo(nextIndex);\r\n if (!nextPanelInfo) break;\r\n const nextStartSize = this.allPanelsStartSizes.get(nextIndex) || 0;\r\n const targetNextSize = nextStartSize - remainingDelta;\r\n const newNextSize = Math.max(nextPanelInfo.minSize, targetNextSize);\r\n const actualReduction = nextStartSize - newNextSize;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(nextPanelInfo.panelEl, newNextSize, this.direction);\r\n } else {\r\n nextPanelInfo.panelEl.style[sizeProperty] = `${newNextSize}px`;\r\n }\r\n remainingDelta -= actualReduction;\r\n if (newNextSize <= nextPanelInfo.minSize && remainingDelta > 0) {\r\n nextIndex++;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // 扩大前一个面板\r\n const prePanelInfo = this.getPanelInfo(this.prePanelIndex);\r\n if (prePanelInfo) {\r\n const preStartSize = this.allPanelsStartSizes.get(this.prePanelIndex) || 0;\r\n const actualGained = delta - remainingDelta; // 实际获得的尺寸\r\n const newPreSize = preStartSize + actualGained;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.prePanelEl, newPreSize, this.direction);\r\n \r\n // 重新计算所有面板的位置(基于尺寸变化)\r\n this.recalculateAllPanelsPositions();\r\n } else {\r\n this.prePanelEl.style[sizeProperty] = `${newPreSize}px`;\r\n }\r\n }\r\n }\r\n\r\n private adjustPanelsPre(delta: number): void {\r\n // 向前拖拽(水平布局向左,垂直布局向上):缩小前一个面板,扩大后一个面板\r\n // delta 此时是正数(表示向前拖拽的距离)\r\n let remainingDelta = delta;\r\n let totalReduced = 0; // 记录从前一个面板实际减少的尺寸总和\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n \r\n // 先尝试缩小前一个面板\r\n const prePanelInfo = this.getPanelInfo(this.prePanelIndex);\r\n if (prePanelInfo) {\r\n const preStartSize = this.allPanelsStartSizes.get(this.prePanelIndex) || 0;\r\n const targetPreSize = preStartSize - remainingDelta;\r\n const newPreSize = Math.max(prePanelInfo.minSize, targetPreSize);\r\n const actualReduction = preStartSize - newPreSize;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.prePanelEl, newPreSize, this.direction);\r\n } else {\r\n this.prePanelEl.style[sizeProperty] = `${newPreSize}px`;\r\n }\r\n totalReduced += actualReduction;\r\n remainingDelta -= actualReduction;\r\n }\r\n \r\n // 如果前一个面板达到最小值,继续缩小更前面的面板(prevPanel)\r\n // 这样可以实现\"依次后延\"的效果\r\n if (remainingDelta > 0) {\r\n let prevIndex = this.prePanelIndex - 1;\r\n while (remainingDelta > 0 && prevIndex >= 0) {\r\n const prevPanelInfo = this.getPanelInfo(prevIndex);\r\n if (!prevPanelInfo) break;\r\n \r\n const prevStartSize = this.allPanelsStartSizes.get(prevIndex);\r\n if (prevStartSize === undefined) break;\r\n \r\n const targetPrevSize = prevStartSize - remainingDelta;\r\n const newPrevSize = Math.max(prevPanelInfo.minSize, targetPrevSize);\r\n const actualReduction = prevStartSize - newPrevSize;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(prevPanelInfo.panelEl, newPrevSize, this.direction);\r\n } else {\r\n prevPanelInfo.panelEl.style[sizeProperty] = `${newPrevSize}px`;\r\n }\r\n totalReduced += actualReduction; // 将这部分空间也加到后一个面板\r\n remainingDelta -= actualReduction;\r\n \r\n if (newPrevSize <= prevPanelInfo.minSize && remainingDelta > 0) {\r\n prevIndex--; // 继续向前查找\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n \r\n // 扩大后一个面板(使用实际减少的尺寸)\r\n const nextPanelInfo = this.getPanelInfo(this.nextPanelIndex);\r\n if (nextPanelInfo) {\r\n const nextStartSize = this.allPanelsStartSizes.get(this.nextPanelIndex) || 0;\r\n const newNextSize = nextStartSize + totalReduced;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.nextPanelEl, newNextSize, this.direction);\r\n \r\n // 重新计算所有面板的位置(基于尺寸变化)\r\n this.recalculateAllPanelsPositions();\r\n } else {\r\n this.nextPanelEl.style[sizeProperty] = `${newNextSize}px`;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重新计算所有面板的位置(虚拟化模式使用)\r\n * 基于每个面板的初始位置和前面所有面板的尺寸变化\r\n */\r\n private recalculateAllPanelsPositions(): void {\r\n if (!this.virtualEnabled || !this.virtualNodeManager) return;\r\n \r\n // 从第一个面板开始,顺序计算每个面板的新位置\r\n // 使用累积方式:从第一个面板的初始位置开始,依次加上每个面板的当前尺寸和拖拽器尺寸\r\n const firstPanelStartPos = this.allPanelsStartPositions.get(0) || 0;\r\n let currentPosition = firstPanelStartPos;\r\n \r\n let index = 0;\r\n let panelInfo = this.getPanelInfo(index);\r\n while (panelInfo) {\r\n const startPos = this.allPanelsStartPositions.get(index);\r\n \r\n if (startPos !== undefined) {\r\n // 获取虚拟节点\r\n const virtualEl = this.virtualNodeManager.getVirtualNode(panelInfo.panelEl);\r\n if (virtualEl) {\r\n // 如果是第一个面板,使用初始位置\r\n if (index === 0) {\r\n currentPosition = startPos;\r\n } else {\r\n // 对于后续面板,使用累积方式计算位置\r\n // 从第一个面板开始,累积所有前面面板的尺寸和拖拽器尺寸\r\n currentPosition = firstPanelStartPos;\r\n for (let i = 0; i < index; i++) {\r\n const prevInfo = this.getPanelInfo(i);\r\n if (prevInfo) {\r\n const prevVEl = this.virtualNodeManager.getVirtualNode(prevInfo.panelEl);\r\n if (prevVEl) {\r\n const prevSize = this.direction === 'horizontal' \r\n ? prevVEl.offsetWidth \r\n : prevVEl.offsetHeight;\r\n currentPosition += prevSize + this.handleSize;\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 更新虚拟节点的位置\r\n this.virtualNodeManager.updateVirtualNodePosition(panelInfo.panelEl, currentPosition, this.direction);\r\n }\r\n }\r\n \r\n index++;\r\n panelInfo = this.getPanelInfo(index);\r\n }\r\n }\r\n\r\n private getSize(el: HTMLElement): number {\r\n return this.direction === 'horizontal' ? el.offsetWidth : el.offsetHeight;\r\n }\r\n\r\n private getPosition(el: HTMLElement): number {\r\n // 获取元素相对于父容器的位置\r\n if (this.direction === 'horizontal') {\r\n return el.offsetLeft;\r\n } else {\r\n return el.offsetTop;\r\n }\r\n }\r\n\r\n endResize(): void {\r\n this.isResizing = false;\r\n \r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n // 虚拟化模式:将最终尺寸应用到真实节点\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n \r\n // 获取所有虚拟节点的最终尺寸并应用到真实节点\r\n this.allPanelsStartSizes.forEach((_, index) => {\r\n const panelInfo = this.getPanelInfo(index);\r\n if (!panelInfo) return;\r\n \r\n const virtualEl = this.virtualNodeManager!.getVirtualNode(panelInfo.panelEl);\r\n if (virtualEl) {\r\n const finalSize = this.direction === 'horizontal' \r\n ? virtualEl.offsetWidth \r\n : virtualEl.offsetHeight;\r\n \r\n // 应用最终尺寸到真实节点\r\n panelInfo.panelEl.style.flex = 'none';\r\n panelInfo.panelEl.style[sizeProperty] = `${finalSize}px`;\r\n }\r\n });\r\n \r\n // 清理所有虚拟节点\r\n this.virtualNodeManager.removeAllVirtualNodes();\r\n }\r\n \r\n this.allPanelsStartSizes.clear();\r\n }\r\n\r\n destroy(): void {\r\n this.endResize();\r\n // 清理虚拟节点管理器\r\n if (this.virtualNodeManager) {\r\n this.virtualNodeManager.destroy();\r\n }\r\n }\r\n}\r\n\r\nexport default ResizeAbleCore;\r\n\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resizeAble.js","sources":["../../../src/utils/resizeAble.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"virtualNode.js","sources":["../../../src/utils/virtualNode.ts"],"sourcesContent":["/**\r\n * 虚拟节点管理模块\r\n * 负责创建、更新、销毁虚拟节点,用于虚拟化拖拽\r\n */\r\n\r\nimport { VirtualNodeConfig, ResizeDirection } from '../types';\r\n\r\nclass VirtualNodeManager {\r\n private virtualNodes: Map<HTMLElement, HTMLElement> = new Map(); // 存储虚拟节点映射:realEl -> virtualEl\r\n\r\n /**\r\n * 创建虚拟节点\r\n * @param originalEl - 原始节点\r\n * @param config - 虚拟化配置\r\n * @returns 虚拟节点\r\n */\r\n createVirtualNode(originalEl: HTMLElement, config: VirtualNodeConfig = {}): HTMLElement | null {\r\n if (!originalEl || !originalEl.parentElement) {\r\n return null;\r\n }\r\n\r\n // 如果已存在虚拟节点,先移除\r\n if (this.virtualNodes.has(originalEl)) {\r\n this.removeVirtualNode(originalEl);\r\n }\r\n\r\n // 获取原始节点的位置和尺寸信息\r\n const rect = originalEl.getBoundingClientRect();\r\n const parentRect = originalEl.parentElement.getBoundingClientRect();\r\n const computedStyle = window.getComputedStyle(originalEl);\r\n\r\n // 创建虚拟节点(只复制结构,不复制内容以提高性能)\r\n const virtualEl = originalEl.cloneNode(false) as HTMLElement; // false 表示不复制子节点\r\n \r\n // 计算相对于父容器的位置\r\n const top = rect.top - parentRect.top + (originalEl.parentElement.scrollTop || 0);\r\n const left = rect.left - parentRect.left + (originalEl.parentElement.scrollLeft || 0);\r\n \r\n // 设置虚拟节点样式\r\n virtualEl.style.cssText = `\r\n position: absolute;\r\n top: ${top}px;\r\n left: ${left}px;\r\n width: ${rect.width}px;\r\n height: ${rect.height}px;\r\n margin: 0;\r\n padding: ${computedStyle.padding};\r\n border: ${computedStyle.border};\r\n box-sizing: ${computedStyle.boxSizing};\r\n pointer-events: none;\r\n z-index: 10000;\r\n opacity: 0.6;\r\n background-color: ${computedStyle.backgroundColor || 'rgba(0, 123, 255, 0.1)'};\r\n overflow: hidden;\r\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.3);\r\n `;\r\n\r\n // 应用自定义样式\r\n if (config.style) {\r\n Object.assign(virtualEl.style, config.style);\r\n }\r\n\r\n // 应用自定义类名\r\n if (config.className) {\r\n virtualEl.className = config.className;\r\n }\r\n\r\n // 隐藏原始节点的内容(可选,通过设置透明度)\r\n const originalOpacity = originalEl.style.opacity;\r\n originalEl.style.opacity = '0.3';\r\n originalEl.dataset.originalOpacity = originalOpacity || '';\r\n\r\n // 将虚拟节点插入到父容器中\r\n originalEl.parentElement.appendChild(virtualEl);\r\n\r\n // 存储映射关系\r\n this.virtualNodes.set(originalEl, virtualEl);\r\n\r\n return virtualEl;\r\n }\r\n\r\n /**\r\n * 更新虚拟节点尺寸\r\n * @param originalEl - 原始节点\r\n * @param size - 新尺寸\r\n * @param direction - 方向 'horizontal' | 'vertical'\r\n */\r\n updateVirtualNode(originalEl: HTMLElement, size: number, direction: ResizeDirection): void {\r\n const virtualEl = this.virtualNodes.get(originalEl);\r\n if (!virtualEl) return;\r\n\r\n const sizeProperty = direction === 'horizontal' ? 'width' : 'height';\r\n virtualEl.style[sizeProperty] = `${size}px`;\r\n }\r\n\r\n /**\r\n * 更新虚拟节点位置(用于级联调整)\r\n * @param originalEl - 原始节点\r\n * @param newPosition - 新位置(绝对位置,不是偏移量)\r\n * @param direction - 方向 'horizontal' | 'vertical'\r\n */\r\n updateVirtualNodePosition(originalEl: HTMLElement, newPosition: number, direction: ResizeDirection): void {\r\n const virtualEl = this.virtualNodes.get(originalEl);\r\n if (!virtualEl) return;\r\n\r\n const positionProperty = direction === 'horizontal' ? 'left' : 'top';\r\n virtualEl.style[positionProperty] = `${newPosition}px`;\r\n }\r\n\r\n /**\r\n * 移除虚拟节点\r\n * @param originalEl - 原始节点\r\n */\r\n removeVirtualNode(originalEl: HTMLElement): void {\r\n const virtualEl = this.virtualNodes.get(originalEl);\r\n if (!virtualEl) return;\r\n\r\n // 恢复原始节点透明度\r\n if (originalEl.dataset.originalOpacity !== undefined) {\r\n originalEl.style.opacity = originalEl.dataset.originalOpacity;\r\n delete originalEl.dataset.originalOpacity;\r\n }\r\n\r\n // 移除虚拟节点\r\n if (virtualEl.parentElement) {\r\n virtualEl.parentElement.removeChild(virtualEl);\r\n }\r\n\r\n // 移除映射关系\r\n this.virtualNodes.delete(originalEl);\r\n }\r\n\r\n /**\r\n * 将最终尺寸应用到真实节点\r\n * @param originalEl - 原始节点\r\n * @param finalSize - 最终尺寸\r\n * @param direction - 方向 'horizontal' | 'vertical'\r\n */\r\n applyToRealNode(originalEl: HTMLElement, finalSize: number, direction: ResizeDirection): void {\r\n const sizeProperty = direction === 'horizontal' ? 'width' : 'height';\r\n originalEl.style[sizeProperty] = `${finalSize}px`;\r\n }\r\n\r\n /**\r\n * 移除所有虚拟节点\r\n */\r\n removeAllVirtualNodes(): void {\r\n const nodesToRemove = Array.from(this.virtualNodes.keys());\r\n nodesToRemove.forEach(originalEl => {\r\n this.removeVirtualNode(originalEl);\r\n });\r\n this.virtualNodes.clear();\r\n }\r\n\r\n /**\r\n * 检查是否存在虚拟节点\r\n * @param originalEl - 原始节点\r\n * @returns 是否存在\r\n */\r\n hasVirtualNode(originalEl: HTMLElement): boolean {\r\n return this.virtualNodes.has(originalEl);\r\n }\r\n\r\n /**\r\n * 获取虚拟节点\r\n * @param originalEl - 原始节点\r\n * @returns 虚拟节点或null\r\n */\r\n getVirtualNode(originalEl: HTMLElement): HTMLElement | null {\r\n return this.virtualNodes.get(originalEl) || null;\r\n }\r\n\r\n /**\r\n * 销毁管理器,清理所有资源\r\n */\r\n destroy(): void {\r\n this.removeAllVirtualNodes();\r\n }\r\n}\r\n\r\nexport default VirtualNodeManager;\r\n\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtualNode.js","sources":["../../../src/utils/virtualNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
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';
@@ -41,31 +41,4 @@ interface ResizeAbleCoreOptions {
41
41
  handleSize?: number;
42
42
  }
43
43
 
44
- /**
45
- * 可调整大小的面板组容器组件
46
- * 负责管理多个面板的布局和拖拽手柄的插入
47
- */
48
-
49
- interface ResizePanelGroupProps {
50
- children: React.ReactNode;
51
- direction?: ResizeDirection;
52
- virtual?: boolean;
53
- virtualConfig?: VirtualConfig;
54
- style?: React.CSSProperties;
55
- }
56
- declare const ResizePanelGroup: React.FC<ResizePanelGroupProps>;
57
-
58
- /**
59
- * 可调整大小的面板组件
60
- * 负责展示面板内容和管理面板的注册/注销
61
- */
62
-
63
- interface ResizePanelProps {
64
- children: React.ReactNode;
65
- minSize?: number;
66
- onResize?: (width: number) => void;
67
- }
68
- declare const ResizePanel: React.FC<ResizePanelProps>;
69
-
70
- export { ResizePanel as ResizablePanel, ResizePanelGroup as ResizablePanelGroup, ResizePanel as ResizeablePanel, ResizePanelGroup as ResizeablePanelGroup };
71
44
  export type { PanelInfo, ResizeAbleCoreOptions, ResizeDirection, VirtualConfig, VirtualNodeConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"resizeAble.js","sources":["../../src/utils/resizeAble.ts"],"sourcesContent":["import VirtualNodeManager from './virtualNode';\r\nimport { PanelInfo, ResizeAbleCoreOptions, VirtualNodeConfig, ResizeDirection } from '../types';\r\n\r\nclass ResizeAbleCore {\r\n private prePanelEl: HTMLElement;\r\n private nextPanelEl: HTMLElement;\r\n private getPanelInfo: (index: number) => PanelInfo | null;\r\n private prePanelIndex: number;\r\n private nextPanelIndex: number;\r\n private direction: ResizeDirection;\r\n private virtualEnabled: boolean;\r\n private virtualConfig: VirtualNodeConfig;\r\n private isResizing: boolean = false;\r\n private prePanelStartSize: number = 0;\r\n private nextPanelStartSize: number = 0;\r\n private allPanelsStartSizes: Map<number, number> = new Map();\r\n private allPanelsStartPositions: Map<number, number> = new Map(); // 记录面板初始位置(虚拟化模式使用)\r\n private handleSize: number; // 拖拽器尺寸(宽度或高度,根据方向)\r\n private virtualNodeManager: VirtualNodeManager | null = null;\r\n\r\n constructor(options: ResizeAbleCoreOptions) {\r\n this.prePanelEl = options.prePanelEl;\r\n this.nextPanelEl = options.nextPanelEl;\r\n this.getPanelInfo = options.getPanelInfo;\r\n this.prePanelIndex = options.prePanelIndex;\r\n this.nextPanelIndex = options.nextPanelIndex;\r\n this.direction = options.direction;\r\n this.virtualEnabled = options.virtualEnabled || false;\r\n this.virtualConfig = options.virtualConfig || {};\r\n this.handleSize = options.handleSize || 0;\r\n \r\n // 如果启用虚拟化,创建虚拟节点管理器\r\n if (this.virtualEnabled) {\r\n this.virtualNodeManager = new VirtualNodeManager();\r\n }\r\n }\r\n\r\n startResize(): void {\r\n // 设置开始拖拽\r\n this.isResizing = true;\r\n\r\n // 记录前一个面板的开始大小\r\n this.prePanelStartSize = this.getSize(this.prePanelEl);\r\n this.allPanelsStartSizes.set(this.prePanelIndex, this.prePanelStartSize);\r\n // 记录后一个面板的开始大小\r\n this.nextPanelStartSize = this.getSize(this.nextPanelEl);\r\n this.allPanelsStartSizes.set(this.nextPanelIndex, this.nextPanelStartSize);\r\n \r\n // 根据方向设置尺寸属性\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n \r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n // 虚拟化模式:创建虚拟节点并记录初始位置\r\n const prePos = this.getPosition(this.prePanelEl);\r\n this.allPanelsStartPositions.set(this.prePanelIndex, prePos);\r\n this.virtualNodeManager.createVirtualNode(this.prePanelEl, this.virtualConfig);\r\n \r\n const nextPos = this.getPosition(this.nextPanelEl);\r\n this.allPanelsStartPositions.set(this.nextPanelIndex, nextPos);\r\n this.virtualNodeManager.createVirtualNode(this.nextPanelEl, this.virtualConfig);\r\n\r\n // 记录前面面板的初始尺寸和位置并创建虚拟节点\r\n let prevIndex = this.prePanelIndex - 1;\r\n while (prevIndex >= 0) {\r\n const panelInfo = this.getPanelInfo(prevIndex);\r\n if (!panelInfo) break;\r\n\r\n const size = this.getSize(panelInfo.panelEl);\r\n const pos = this.getPosition(panelInfo.panelEl);\r\n this.allPanelsStartSizes.set(prevIndex, size);\r\n this.allPanelsStartPositions.set(prevIndex, pos);\r\n this.virtualNodeManager.createVirtualNode(panelInfo.panelEl, this.virtualConfig);\r\n prevIndex--;\r\n }\r\n\r\n // 记录后续面板的初始尺寸和位置并创建虚拟节点\r\n let nextIndex = this.nextPanelIndex + 1;\r\n let nextPanelInfo = this.getPanelInfo(nextIndex);\r\n while (nextPanelInfo) {\r\n const size = this.getSize(nextPanelInfo.panelEl);\r\n const pos = this.getPosition(nextPanelInfo.panelEl);\r\n this.allPanelsStartSizes.set(nextIndex, size);\r\n this.allPanelsStartPositions.set(nextIndex, pos);\r\n this.virtualNodeManager.createVirtualNode(nextPanelInfo.panelEl, this.virtualConfig);\r\n nextIndex++;\r\n nextPanelInfo = this.getPanelInfo(nextIndex);\r\n }\r\n } else {\r\n // 非虚拟化模式:直接操作真实节点\r\n // 禁用flex\r\n this.prePanelEl.style.flex = 'none';\r\n this.prePanelEl.style[sizeProperty] = `${this.prePanelStartSize}px`;\r\n this.nextPanelEl.style.flex = 'none';\r\n this.nextPanelEl.style[sizeProperty] = `${this.nextPanelStartSize}px`;\r\n\r\n // 记录前面面板的初始尺寸(用于向前拖拽时的级联调整)\r\n let prevIndex = this.prePanelIndex - 1;\r\n while (prevIndex >= 0) {\r\n const panelInfo = this.getPanelInfo(prevIndex);\r\n if (!panelInfo) break;\r\n\r\n const size = this.getSize(panelInfo.panelEl);\r\n this.allPanelsStartSizes.set(prevIndex, size);\r\n panelInfo.panelEl.style.flex = 'none';\r\n panelInfo.panelEl.style[sizeProperty] = `${size}px`;\r\n prevIndex--;\r\n }\r\n\r\n // 记录后续面板的初始尺寸(用于向后拖拽时的级联调整)\r\n let nextIndex = this.nextPanelIndex + 1;\r\n let nextPanelInfo = this.getPanelInfo(nextIndex);\r\n while (nextPanelInfo) {\r\n const size = this.getSize(nextPanelInfo.panelEl);\r\n this.allPanelsStartSizes.set(nextIndex, size);\r\n nextPanelInfo.panelEl.style.flex = 'none';\r\n nextPanelInfo.panelEl.style[sizeProperty] = `${size}px`;\r\n nextIndex++;\r\n nextPanelInfo = this.getPanelInfo(nextIndex);\r\n }\r\n }\r\n }\r\n\r\n onResize(delta: number): void {\r\n if (!this.isResizing) return;\r\n\r\n if (delta > 0) {\r\n // 向后拖拽(水平布局向右,垂直布局向下):扩大前一个面板,缩小后一个面板\r\n this.adjustPanelsNext(delta);\r\n } else {\r\n // 向前拖拽(水平布局向左,垂直布局向上):缩小前一个面板,扩大后一个面板\r\n // 将负数转为正数处理\r\n this.adjustPanelsPre(-delta);\r\n }\r\n }\r\n\r\n private adjustPanelsNext(delta: number): void {\r\n let remainingDelta = delta;\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n\r\n // 尝试从后一个面板获取空间\r\n const nextPanelInfo = this.getPanelInfo(this.nextPanelIndex);\r\n if (nextPanelInfo) {\r\n const nextStartSize = this.allPanelsStartSizes.get(this.nextPanelIndex) || 0;\r\n const targetNextSize = nextStartSize - remainingDelta;\r\n const newNextSize = Math.max(nextPanelInfo.minSize, targetNextSize);\r\n const actualReduction = nextStartSize - newNextSize;\r\n\r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.nextPanelEl, newNextSize, this.direction);\r\n } else {\r\n this.nextPanelEl.style[sizeProperty] = `${newNextSize}px`;\r\n }\r\n remainingDelta -= actualReduction;\r\n }\r\n\r\n // 如果后一个面板达到了最小值,继续从后续的面板中获取空间\r\n if (remainingDelta > 0) {\r\n let nextIndex = this.nextPanelIndex + 1;\r\n while (remainingDelta > 0) {\r\n const nextPanelInfo = this.getPanelInfo(nextIndex);\r\n if (!nextPanelInfo) break;\r\n const nextStartSize = this.allPanelsStartSizes.get(nextIndex) || 0;\r\n const targetNextSize = nextStartSize - remainingDelta;\r\n const newNextSize = Math.max(nextPanelInfo.minSize, targetNextSize);\r\n const actualReduction = nextStartSize - newNextSize;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(nextPanelInfo.panelEl, newNextSize, this.direction);\r\n } else {\r\n nextPanelInfo.panelEl.style[sizeProperty] = `${newNextSize}px`;\r\n }\r\n remainingDelta -= actualReduction;\r\n if (newNextSize <= nextPanelInfo.minSize && remainingDelta > 0) {\r\n nextIndex++;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // 扩大前一个面板\r\n const prePanelInfo = this.getPanelInfo(this.prePanelIndex);\r\n if (prePanelInfo) {\r\n const preStartSize = this.allPanelsStartSizes.get(this.prePanelIndex) || 0;\r\n const actualGained = delta - remainingDelta; // 实际获得的尺寸\r\n const newPreSize = preStartSize + actualGained;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.prePanelEl, newPreSize, this.direction);\r\n \r\n // 重新计算所有面板的位置(基于尺寸变化)\r\n this.recalculateAllPanelsPositions();\r\n } else {\r\n this.prePanelEl.style[sizeProperty] = `${newPreSize}px`;\r\n }\r\n }\r\n }\r\n\r\n private adjustPanelsPre(delta: number): void {\r\n // 向前拖拽(水平布局向左,垂直布局向上):缩小前一个面板,扩大后一个面板\r\n // delta 此时是正数(表示向前拖拽的距离)\r\n let remainingDelta = delta;\r\n let totalReduced = 0; // 记录从前一个面板实际减少的尺寸总和\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n \r\n // 先尝试缩小前一个面板\r\n const prePanelInfo = this.getPanelInfo(this.prePanelIndex);\r\n if (prePanelInfo) {\r\n const preStartSize = this.allPanelsStartSizes.get(this.prePanelIndex) || 0;\r\n const targetPreSize = preStartSize - remainingDelta;\r\n const newPreSize = Math.max(prePanelInfo.minSize, targetPreSize);\r\n const actualReduction = preStartSize - newPreSize;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.prePanelEl, newPreSize, this.direction);\r\n } else {\r\n this.prePanelEl.style[sizeProperty] = `${newPreSize}px`;\r\n }\r\n totalReduced += actualReduction;\r\n remainingDelta -= actualReduction;\r\n }\r\n \r\n // 如果前一个面板达到最小值,继续缩小更前面的面板(prevPanel)\r\n // 这样可以实现\"依次后延\"的效果\r\n if (remainingDelta > 0) {\r\n let prevIndex = this.prePanelIndex - 1;\r\n while (remainingDelta > 0 && prevIndex >= 0) {\r\n const prevPanelInfo = this.getPanelInfo(prevIndex);\r\n if (!prevPanelInfo) break;\r\n \r\n const prevStartSize = this.allPanelsStartSizes.get(prevIndex);\r\n if (prevStartSize === undefined) break;\r\n \r\n const targetPrevSize = prevStartSize - remainingDelta;\r\n const newPrevSize = Math.max(prevPanelInfo.minSize, targetPrevSize);\r\n const actualReduction = prevStartSize - newPrevSize;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(prevPanelInfo.panelEl, newPrevSize, this.direction);\r\n } else {\r\n prevPanelInfo.panelEl.style[sizeProperty] = `${newPrevSize}px`;\r\n }\r\n totalReduced += actualReduction; // 将这部分空间也加到后一个面板\r\n remainingDelta -= actualReduction;\r\n \r\n if (newPrevSize <= prevPanelInfo.minSize && remainingDelta > 0) {\r\n prevIndex--; // 继续向前查找\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n \r\n // 扩大后一个面板(使用实际减少的尺寸)\r\n const nextPanelInfo = this.getPanelInfo(this.nextPanelIndex);\r\n if (nextPanelInfo) {\r\n const nextStartSize = this.allPanelsStartSizes.get(this.nextPanelIndex) || 0;\r\n const newNextSize = nextStartSize + totalReduced;\r\n \r\n // 虚拟化模式下更新虚拟节点,否则更新真实节点\r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n this.virtualNodeManager.updateVirtualNode(this.nextPanelEl, newNextSize, this.direction);\r\n \r\n // 重新计算所有面板的位置(基于尺寸变化)\r\n this.recalculateAllPanelsPositions();\r\n } else {\r\n this.nextPanelEl.style[sizeProperty] = `${newNextSize}px`;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重新计算所有面板的位置(虚拟化模式使用)\r\n * 基于每个面板的初始位置和前面所有面板的尺寸变化\r\n */\r\n private recalculateAllPanelsPositions(): void {\r\n if (!this.virtualEnabled || !this.virtualNodeManager) return;\r\n \r\n // 从第一个面板开始,顺序计算每个面板的新位置\r\n // 使用累积方式:从第一个面板的初始位置开始,依次加上每个面板的当前尺寸和拖拽器尺寸\r\n const firstPanelStartPos = this.allPanelsStartPositions.get(0) || 0;\r\n let currentPosition = firstPanelStartPos;\r\n \r\n let index = 0;\r\n let panelInfo = this.getPanelInfo(index);\r\n while (panelInfo) {\r\n const startPos = this.allPanelsStartPositions.get(index);\r\n \r\n if (startPos !== undefined) {\r\n // 获取虚拟节点\r\n const virtualEl = this.virtualNodeManager.getVirtualNode(panelInfo.panelEl);\r\n if (virtualEl) {\r\n // 如果是第一个面板,使用初始位置\r\n if (index === 0) {\r\n currentPosition = startPos;\r\n } else {\r\n // 对于后续面板,使用累积方式计算位置\r\n // 从第一个面板开始,累积所有前面面板的尺寸和拖拽器尺寸\r\n currentPosition = firstPanelStartPos;\r\n for (let i = 0; i < index; i++) {\r\n const prevInfo = this.getPanelInfo(i);\r\n if (prevInfo) {\r\n const prevVEl = this.virtualNodeManager.getVirtualNode(prevInfo.panelEl);\r\n if (prevVEl) {\r\n const prevSize = this.direction === 'horizontal' \r\n ? prevVEl.offsetWidth \r\n : prevVEl.offsetHeight;\r\n currentPosition += prevSize + this.handleSize;\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 更新虚拟节点的位置\r\n this.virtualNodeManager.updateVirtualNodePosition(panelInfo.panelEl, currentPosition, this.direction);\r\n }\r\n }\r\n \r\n index++;\r\n panelInfo = this.getPanelInfo(index);\r\n }\r\n }\r\n\r\n private getSize(el: HTMLElement): number {\r\n return this.direction === 'horizontal' ? el.offsetWidth : el.offsetHeight;\r\n }\r\n\r\n private getPosition(el: HTMLElement): number {\r\n // 获取元素相对于父容器的位置\r\n if (this.direction === 'horizontal') {\r\n return el.offsetLeft;\r\n } else {\r\n return el.offsetTop;\r\n }\r\n }\r\n\r\n endResize(): void {\r\n this.isResizing = false;\r\n \r\n if (this.virtualEnabled && this.virtualNodeManager) {\r\n // 虚拟化模式:将最终尺寸应用到真实节点\r\n const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';\r\n \r\n // 获取所有虚拟节点的最终尺寸并应用到真实节点\r\n this.allPanelsStartSizes.forEach((_, index) => {\r\n const panelInfo = this.getPanelInfo(index);\r\n if (!panelInfo) return;\r\n \r\n const virtualEl = this.virtualNodeManager!.getVirtualNode(panelInfo.panelEl);\r\n if (virtualEl) {\r\n const finalSize = this.direction === 'horizontal' \r\n ? virtualEl.offsetWidth \r\n : virtualEl.offsetHeight;\r\n \r\n // 应用最终尺寸到真实节点\r\n panelInfo.panelEl.style.flex = 'none';\r\n panelInfo.panelEl.style[sizeProperty] = `${finalSize}px`;\r\n }\r\n });\r\n \r\n // 清理所有虚拟节点\r\n this.virtualNodeManager.removeAllVirtualNodes();\r\n }\r\n \r\n this.allPanelsStartSizes.clear();\r\n }\r\n\r\n destroy(): void {\r\n this.endResize();\r\n // 清理虚拟节点管理器\r\n if (this.virtualNodeManager) {\r\n this.virtualNodeManager.destroy();\r\n }\r\n }\r\n}\r\n\r\nexport default ResizeAbleCore;\r\n\r\n"],"names":["VirtualNodeManager"],"mappings":"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"}
1
+ {"version":3,"file":"resizeAble.js","sources":["../../src/utils/resizeAble.ts"],"sourcesContent":[null],"names":["VirtualNodeManager"],"mappings":";;;;;;AAGA,MAAM,cAAc,CAAA;AAiBhB,IAAA,WAAA,CAAY,OAA8B,EAAA;AAhBlC,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,YAAA,EAAA;;;;;AAAwB,SAAA,CAAA;AACxB,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;;;;;AAAyB,SAAA,CAAA;AACzB,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,cAAA,EAAA;;;;;AAAkD,SAAA,CAAA;AAClD,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,eAAA,EAAA;;;;;AAAsB,SAAA,CAAA;AACtB,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,gBAAA,EAAA;;;;;AAAuB,SAAA,CAAA;AACvB,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,WAAA,EAAA;;;;;AAA2B,SAAA,CAAA;AAC3B,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,gBAAA,EAAA;;;;;AAAwB,SAAA,CAAA;AACxB,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,eAAA,EAAA;;;;;AAAiC,SAAA,CAAA;AACjC,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,YAAA,EAAA;;;;mBAAsB;AAAM,SAAA,CAAA;AAC5B,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,mBAAA,EAAA;;;;mBAA4B;AAAE,SAAA,CAAA;AAC9B,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,oBAAA,EAAA;;;;mBAA6B;AAAE,SAAA,CAAA;AAC/B,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,qBAAA,EAAA;;;;AAA2C,YAAA,KAAA,EAAA,IAAI,GAAG;AAAG,SAAA,CAAA;AACrD,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,yBAAA,EAAA;;;;AAA+C,YAAA,KAAA,EAAA,IAAI,GAAG;AAAG,SAAA,CAAA,CAAA;AACzD,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,YAAA,EAAA;;;;;AAAmB,SAAA,CAAA,CAAA;AACnB,QAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,oBAAA,EAAA;;;;mBAAgD;AAAK,SAAA,CAAA;AAGzD,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AACtC,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;QAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK;QACrD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC;;AAGzC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAIA,mBAAkB,EAAE;QACtD;IACJ;IAEA,WAAW,GAAA;;AAEP,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;QAGtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC;;QAExE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;AACxD,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC;;AAG1E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;QAEzE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;;YAEhD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;YAChD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;AAC5D,YAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;YAE9E,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;YAClD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;AAC9D,YAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;;AAG/E,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC;AACtC,YAAA,OAAO,SAAS,IAAI,CAAC,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAC9C,gBAAA,IAAI,CAAC,SAAS;oBAAE;gBAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC7C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AAChD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AAChF,gBAAA,SAAS,EAAE;YACf;;AAGA,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;YACvC,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAChD,OAAO,aAAa,EAAE;gBAClB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;gBAChD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC7C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AAChD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AACpF,gBAAA,SAAS,EAAE;AACX,gBAAA,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAChD;QACJ;aAAO;;;YAGH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;AACnC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,iBAAiB,IAAI;YACnE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,kBAAkB,IAAI;;AAGrE,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC;AACtC,YAAA,OAAO,SAAS,IAAI,CAAC,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAC9C,gBAAA,IAAI,CAAC,SAAS;oBAAE;gBAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC5C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC7C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;gBACrC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI;AACnD,gBAAA,SAAS,EAAE;YACf;;AAGA,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;YACvC,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAChD,OAAO,aAAa,EAAE;gBAClB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC7C,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;gBACzC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI;AACvD,gBAAA,SAAS,EAAE;AACX,gBAAA,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAChD;QACJ;IACJ;AAEA,IAAA,QAAQ,CAAC,KAAa,EAAA;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;;AAEX,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAChC;aAAO;;;AAGH,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;QAChC;IACJ;AAEQ,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAClC,IAAI,cAAc,GAAG,KAAK;AAC1B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;;QAGzE,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,IAAI,aAAa,EAAE;AACf,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5E,YAAA,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc;AACrD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC;AACnE,YAAA,MAAM,eAAe,GAAG,aAAa,GAAG,WAAW;;YAGnD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;YAC5F;iBAAO;gBACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI;YAC7D;YACA,cAAc,IAAI,eAAe;QACrC;;AAGA,QAAA,IAAI,cAAc,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;AACvC,YAAA,OAAO,cAAc,GAAG,CAAC,EAAE;gBACvB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAClD,gBAAA,IAAI,CAAC,aAAa;oBAAE;AACpB,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AAClE,gBAAA,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc;AACrD,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC;AACnE,gBAAA,MAAM,eAAe,GAAG,aAAa,GAAG,WAAW;;gBAGnD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjG;qBAAO;oBACH,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI;gBAClE;gBACA,cAAc,IAAI,eAAe;gBACjC,IAAI,WAAW,IAAI,aAAa,CAAC,OAAO,IAAI,cAAc,GAAG,CAAC,EAAE;AAC5D,oBAAA,SAAS,EAAE;gBACf;qBAAO;oBACH;gBACJ;YACJ;QACJ;;QAGA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1D,IAAI,YAAY,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1E,YAAA,MAAM,YAAY,GAAG,KAAK,GAAG,cAAc,CAAC;AAC5C,YAAA,MAAM,UAAU,GAAG,YAAY,GAAG,YAAY;;YAG9C,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;;gBAGtF,IAAI,CAAC,6BAA6B,EAAE;YACxC;iBAAO;gBACH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,UAAU,CAAA,EAAA,CAAI;YAC3D;QACJ;IACJ;AAEQ,IAAA,eAAe,CAAC,KAAa,EAAA;;;QAGjC,IAAI,cAAc,GAAG,KAAK;AAC1B,QAAA,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;;QAGzE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1D,IAAI,YAAY,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1E,YAAA,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc;AACnD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;AAChE,YAAA,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU;;YAGjD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;YAC1F;iBAAO;gBACH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,UAAU,CAAA,EAAA,CAAI;YAC3D;YACA,YAAY,IAAI,eAAe;YAC/B,cAAc,IAAI,eAAe;QACrC;;;AAIA,QAAA,IAAI,cAAc,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC;YACtC,OAAO,cAAc,GAAG,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;gBACzC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAClD,gBAAA,IAAI,CAAC,aAAa;oBAAE;gBAEpB,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC7D,IAAI,aAAa,KAAK,SAAS;oBAAE;AAEjC,gBAAA,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc;AACrD,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC;AACnE,gBAAA,MAAM,eAAe,GAAG,aAAa,GAAG,WAAW;;gBAGnD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjG;qBAAO;oBACH,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI;gBAClE;AACA,gBAAA,YAAY,IAAI,eAAe,CAAC;gBAChC,cAAc,IAAI,eAAe;gBAEjC,IAAI,WAAW,IAAI,aAAa,CAAC,OAAO,IAAI,cAAc,GAAG,CAAC,EAAE;oBAC5D,SAAS,EAAE,CAAC;gBAChB;qBAAO;oBACH;gBACJ;YACJ;QACJ;;QAGA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,IAAI,aAAa,EAAE;AACf,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5E,YAAA,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY;;YAGhD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;;gBAGxF,IAAI,CAAC,6BAA6B,EAAE;YACxC;iBAAO;gBACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI;YAC7D;QACJ;IACJ;AAEA;;;AAGG;IACK,6BAA6B,GAAA;QACjC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE;;;AAItD,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,IAAI,eAAe,GAAG,kBAAkB;QAExC,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACxC,OAAO,SAAS,EAAE;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;AAExD,YAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;;AAExB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC3E,IAAI,SAAS,EAAE;;AAEX,oBAAA,IAAI,KAAK,KAAK,CAAC,EAAE;wBACb,eAAe,GAAG,QAAQ;oBAC9B;yBAAO;;;wBAGH,eAAe,GAAG,kBAAkB;AACpC,wBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;4BAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;4BACrC,IAAI,QAAQ,EAAE;AACV,gCAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;gCACxE,IAAI,OAAO,EAAE;AACT,oCAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK;0CAC9B,OAAO,CAAC;AACV,0CAAE,OAAO,CAAC,YAAY;AAC1B,oCAAA,eAAe,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU;gCACjD;4BACJ;wBACJ;oBACJ;;AAGA,oBAAA,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;gBACzG;YACJ;AAEA,YAAA,KAAK,EAAE;AACP,YAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACxC;IACJ;AAEQ,IAAA,OAAO,CAAC,EAAe,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,YAAY,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY;IAC7E;AAEQ,IAAA,WAAW,CAAC,EAAe,EAAA;;AAE/B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE;YACjC,OAAO,EAAE,CAAC,UAAU;QACxB;aAAO;YACH,OAAO,EAAE,CAAC,SAAS;QACvB;IACJ;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QAEvB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE;;AAEhD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,KAAK,YAAY,GAAG,OAAO,GAAG,QAAQ;;YAGzE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC1C,gBAAA,IAAI,CAAC,SAAS;oBAAE;AAEhB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAmB,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC5E,IAAI,SAAS,EAAE;AACX,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK;0BAC/B,SAAS,CAAC;AACZ,0BAAE,SAAS,CAAC,YAAY;;oBAG5B,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;oBACrC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI;gBAC5D;AACJ,YAAA,CAAC,CAAC;;AAGF,YAAA,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE;QACnD;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;IACpC;IAEA,OAAO,GAAA;QACH,IAAI,CAAC,SAAS,EAAE;;AAEhB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACrC;IACJ;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"virtualNode.js","sources":["../../src/utils/virtualNode.ts"],"sourcesContent":["/**\r\n * 虚拟节点管理模块\r\n * 负责创建、更新、销毁虚拟节点,用于虚拟化拖拽\r\n */\r\n\r\nimport { VirtualNodeConfig, ResizeDirection } from '../types';\r\n\r\nclass VirtualNodeManager {\r\n private virtualNodes: Map<HTMLElement, HTMLElement> = new Map(); // 存储虚拟节点映射:realEl -> virtualEl\r\n\r\n /**\r\n * 创建虚拟节点\r\n * @param originalEl - 原始节点\r\n * @param config - 虚拟化配置\r\n * @returns 虚拟节点\r\n */\r\n createVirtualNode(originalEl: HTMLElement, config: VirtualNodeConfig = {}): HTMLElement | null {\r\n if (!originalEl || !originalEl.parentElement) {\r\n return null;\r\n }\r\n\r\n // 如果已存在虚拟节点,先移除\r\n if (this.virtualNodes.has(originalEl)) {\r\n this.removeVirtualNode(originalEl);\r\n }\r\n\r\n // 获取原始节点的位置和尺寸信息\r\n const rect = originalEl.getBoundingClientRect();\r\n const parentRect = originalEl.parentElement.getBoundingClientRect();\r\n const computedStyle = window.getComputedStyle(originalEl);\r\n\r\n // 创建虚拟节点(只复制结构,不复制内容以提高性能)\r\n const virtualEl = originalEl.cloneNode(false) as HTMLElement; // false 表示不复制子节点\r\n \r\n // 计算相对于父容器的位置\r\n const top = rect.top - parentRect.top + (originalEl.parentElement.scrollTop || 0);\r\n const left = rect.left - parentRect.left + (originalEl.parentElement.scrollLeft || 0);\r\n \r\n // 设置虚拟节点样式\r\n virtualEl.style.cssText = `\r\n position: absolute;\r\n top: ${top}px;\r\n left: ${left}px;\r\n width: ${rect.width}px;\r\n height: ${rect.height}px;\r\n margin: 0;\r\n padding: ${computedStyle.padding};\r\n border: ${computedStyle.border};\r\n box-sizing: ${computedStyle.boxSizing};\r\n pointer-events: none;\r\n z-index: 10000;\r\n opacity: 0.6;\r\n background-color: ${computedStyle.backgroundColor || 'rgba(0, 123, 255, 0.1)'};\r\n overflow: hidden;\r\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.3);\r\n `;\r\n\r\n // 应用自定义样式\r\n if (config.style) {\r\n Object.assign(virtualEl.style, config.style);\r\n }\r\n\r\n // 应用自定义类名\r\n if (config.className) {\r\n virtualEl.className = config.className;\r\n }\r\n\r\n // 隐藏原始节点的内容(可选,通过设置透明度)\r\n const originalOpacity = originalEl.style.opacity;\r\n originalEl.style.opacity = '0.3';\r\n originalEl.dataset.originalOpacity = originalOpacity || '';\r\n\r\n // 将虚拟节点插入到父容器中\r\n originalEl.parentElement.appendChild(virtualEl);\r\n\r\n // 存储映射关系\r\n this.virtualNodes.set(originalEl, virtualEl);\r\n\r\n return virtualEl;\r\n }\r\n\r\n /**\r\n * 更新虚拟节点尺寸\r\n * @param originalEl - 原始节点\r\n * @param size - 新尺寸\r\n * @param direction - 方向 'horizontal' | 'vertical'\r\n */\r\n updateVirtualNode(originalEl: HTMLElement, size: number, direction: ResizeDirection): void {\r\n const virtualEl = this.virtualNodes.get(originalEl);\r\n if (!virtualEl) return;\r\n\r\n const sizeProperty = direction === 'horizontal' ? 'width' : 'height';\r\n virtualEl.style[sizeProperty] = `${size}px`;\r\n }\r\n\r\n /**\r\n * 更新虚拟节点位置(用于级联调整)\r\n * @param originalEl - 原始节点\r\n * @param newPosition - 新位置(绝对位置,不是偏移量)\r\n * @param direction - 方向 'horizontal' | 'vertical'\r\n */\r\n updateVirtualNodePosition(originalEl: HTMLElement, newPosition: number, direction: ResizeDirection): void {\r\n const virtualEl = this.virtualNodes.get(originalEl);\r\n if (!virtualEl) return;\r\n\r\n const positionProperty = direction === 'horizontal' ? 'left' : 'top';\r\n virtualEl.style[positionProperty] = `${newPosition}px`;\r\n }\r\n\r\n /**\r\n * 移除虚拟节点\r\n * @param originalEl - 原始节点\r\n */\r\n removeVirtualNode(originalEl: HTMLElement): void {\r\n const virtualEl = this.virtualNodes.get(originalEl);\r\n if (!virtualEl) return;\r\n\r\n // 恢复原始节点透明度\r\n if (originalEl.dataset.originalOpacity !== undefined) {\r\n originalEl.style.opacity = originalEl.dataset.originalOpacity;\r\n delete originalEl.dataset.originalOpacity;\r\n }\r\n\r\n // 移除虚拟节点\r\n if (virtualEl.parentElement) {\r\n virtualEl.parentElement.removeChild(virtualEl);\r\n }\r\n\r\n // 移除映射关系\r\n this.virtualNodes.delete(originalEl);\r\n }\r\n\r\n /**\r\n * 将最终尺寸应用到真实节点\r\n * @param originalEl - 原始节点\r\n * @param finalSize - 最终尺寸\r\n * @param direction - 方向 'horizontal' | 'vertical'\r\n */\r\n applyToRealNode(originalEl: HTMLElement, finalSize: number, direction: ResizeDirection): void {\r\n const sizeProperty = direction === 'horizontal' ? 'width' : 'height';\r\n originalEl.style[sizeProperty] = `${finalSize}px`;\r\n }\r\n\r\n /**\r\n * 移除所有虚拟节点\r\n */\r\n removeAllVirtualNodes(): void {\r\n const nodesToRemove = Array.from(this.virtualNodes.keys());\r\n nodesToRemove.forEach(originalEl => {\r\n this.removeVirtualNode(originalEl);\r\n });\r\n this.virtualNodes.clear();\r\n }\r\n\r\n /**\r\n * 检查是否存在虚拟节点\r\n * @param originalEl - 原始节点\r\n * @returns 是否存在\r\n */\r\n hasVirtualNode(originalEl: HTMLElement): boolean {\r\n return this.virtualNodes.has(originalEl);\r\n }\r\n\r\n /**\r\n * 获取虚拟节点\r\n * @param originalEl - 原始节点\r\n * @returns 虚拟节点或null\r\n */\r\n getVirtualNode(originalEl: HTMLElement): HTMLElement | null {\r\n return this.virtualNodes.get(originalEl) || null;\r\n }\r\n\r\n /**\r\n * 销毁管理器,清理所有资源\r\n */\r\n destroy(): void {\r\n this.removeAllVirtualNodes();\r\n }\r\n}\r\n\r\nexport default VirtualNodeManager;\r\n\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtualNode.js","sources":["../../src/utils/virtualNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,37 +1,83 @@
1
1
  {
2
2
  "name": "react-resize-demo",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "A React component library demo",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",
7
- "types": "dist/types/index.d.ts",
7
+ "types": "dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
- "import": "./dist/esm/index.js",
11
- "require": "./dist/index.js",
12
- "types": "./dist/types/index.d.ts"
10
+ "import": {
11
+ "types": "./dist/esm/index.d.ts",
12
+ "default": "./dist/esm/index.js"
13
+ },
14
+ "require": {
15
+ "types": "./dist/index.d.ts",
16
+ "default": "./dist/index.js"
17
+ }
13
18
  },
14
19
  "./components": {
15
- "import": "./dist/esm/components/ResizePanel/index.js",
16
- "require": "./dist/components/ResizePanel/index.js",
17
- "types": "./dist/types/components/ResizePanel/index.d.ts"
20
+ "import": {
21
+ "types": "./dist/esm/components/index.d.ts",
22
+ "default": "./dist/esm/components/index.js"
23
+ },
24
+ "require": {
25
+ "types": "./dist/components/index.d.ts",
26
+ "default": "./dist/components/index.js"
27
+ }
18
28
  },
19
29
  "./components/*": {
20
- "import": "./dist/esm/components/*/index.js",
21
- "require": "./dist/components/*/index.js",
22
- "types": "./dist/types/components/*/index.d.ts"
30
+ "import": {
31
+ "types": "./dist/esm/components/*/index.d.ts",
32
+ "default": "./dist/esm/components/*/index.js"
33
+ },
34
+ "require": {
35
+ "types": "./dist/components/*/index.d.ts",
36
+ "default": "./dist/components/*/index.js"
37
+ }
38
+ },
39
+ "./components/shared/*": {
40
+ "import": {
41
+ "types": "./dist/esm/components/shared/*.d.ts",
42
+ "default": "./dist/esm/components/shared/*.js"
43
+ },
44
+ "require": {
45
+ "types": "./dist/components/shared/*.d.ts",
46
+ "default": "./dist/components/shared/*.js"
47
+ }
23
48
  },
24
49
  "./utils": {
25
- "import": "./dist/esm/utils/index.js",
26
- "require": "./dist/utils/index.js",
27
- "types": "./dist/types/utils/index.d.ts"
50
+ "import": {
51
+ "types": "./dist/esm/utils/index.d.ts",
52
+ "default": "./dist/esm/utils/index.js"
53
+ },
54
+ "require": {
55
+ "types": "./dist/utils/index.d.ts",
56
+ "default": "./dist/utils/index.js"
57
+ }
58
+ },
59
+ "./utils/*": {
60
+ "import": {
61
+ "types": "./dist/esm/utils/*.d.ts",
62
+ "default": "./dist/esm/utils/*.js"
63
+ },
64
+ "require": {
65
+ "types": "./dist/utils/*.d.ts",
66
+ "default": "./dist/utils/*.js"
67
+ }
28
68
  },
29
69
  "./types": {
30
- "import": "./dist/esm/types/index.js",
31
- "require": "./dist/types/index.js",
32
- "types": "./dist/types/types/index.d.ts"
70
+ "import": {
71
+ "types": "./dist/esm/types/index.d.ts",
72
+ "default": "./dist/esm/types/index.js"
73
+ },
74
+ "require": {
75
+ "types": "./dist/types/index.d.ts",
76
+ "default": "./dist/types/index.js"
77
+ }
33
78
  }
34
79
  },
80
+ "sideEffects": false,
35
81
  "files": [
36
82
  "dist",
37
83
  "README.md",