react-resize-demo 2.0.2 → 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.
- package/CHANGELOG.md +130 -0
- package/README.md +119 -65
- package/dist/core/PanelManager.js +2 -0
- package/dist/core/PanelManager.js.map +1 -0
- package/dist/core/virtualNode.js +2 -0
- package/dist/core/virtualNode.js.map +1 -0
- package/dist/esm/core/PanelManager.js +2 -0
- package/dist/esm/core/PanelManager.js.map +1 -0
- package/dist/esm/core/virtualNode.js +2 -0
- package/dist/esm/core/virtualNode.js.map +1 -0
- package/dist/esm/index.d.ts +14 -3
- package/dist/esm/index.js +1 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strategies/basic/components/ResizeHandle/index.d.ts +18 -0
- package/dist/esm/strategies/basic/components/ResizeHandle/index.js +2 -0
- package/dist/esm/strategies/basic/components/ResizeHandle/index.js.map +1 -0
- package/dist/{components → esm/strategies/basic/components}/ResizePanel/index.d.ts +2 -1
- package/dist/esm/strategies/basic/components/ResizePanel/index.js +2 -0
- package/dist/esm/strategies/basic/components/ResizePanel/index.js.map +1 -0
- package/dist/{components → esm/strategies/basic/components}/ResizePanelGroup/index.d.ts +3 -3
- package/dist/esm/strategies/basic/components/ResizePanelGroup/index.js +2 -0
- package/dist/esm/strategies/basic/components/ResizePanelGroup/index.js.map +1 -0
- package/dist/esm/strategies/basic/context.d.ts +28 -0
- package/dist/esm/strategies/basic/context.js +2 -0
- package/dist/esm/strategies/basic/context.js.map +1 -0
- package/dist/esm/strategies/basic/resizeAble.js +2 -0
- package/dist/esm/strategies/basic/resizeAble.js.map +1 -0
- package/dist/esm/strategies/flex/components/ResizeHandleFlex/index.d.ts +18 -0
- package/dist/esm/strategies/flex/components/ResizeHandleFlex/index.js +2 -0
- package/dist/esm/strategies/flex/components/ResizeHandleFlex/index.js.map +1 -0
- package/dist/esm/strategies/flex/components/ResizePanelGroupFlex/index.d.ts +21 -0
- package/dist/esm/strategies/flex/components/ResizePanelGroupFlex/index.js +2 -0
- package/dist/esm/strategies/flex/components/ResizePanelGroupFlex/index.js.map +1 -0
- package/dist/esm/strategies/flex/resizeAble.js +2 -0
- package/dist/esm/strategies/flex/resizeAble.js.map +1 -0
- package/dist/esm/strategies/flex-linked/components/ResizeHandleFlexLinked/index.d.ts +17 -0
- package/dist/esm/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js +2 -0
- package/dist/esm/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js.map +1 -0
- package/dist/esm/strategies/flex-linked/components/ResizePanelFlexLinked/index.d.ts +17 -0
- package/dist/esm/strategies/flex-linked/components/ResizePanelFlexLinked/index.js +2 -0
- package/dist/esm/strategies/flex-linked/components/ResizePanelFlexLinked/index.js.map +1 -0
- package/dist/esm/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.d.ts +20 -0
- package/dist/esm/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js +2 -0
- package/dist/esm/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js.map +1 -0
- package/dist/esm/strategies/flex-linked/context.js +2 -0
- package/dist/esm/strategies/flex-linked/context.js.map +1 -0
- package/dist/esm/strategies/flex-linked/resizeAble.js +2 -0
- package/dist/esm/strategies/flex-linked/resizeAble.js.map +1 -0
- package/dist/esm/strategies/linked/components/ResizeHandleLinked/index.d.ts +18 -0
- package/dist/esm/strategies/linked/components/ResizeHandleLinked/index.js +2 -0
- package/dist/esm/strategies/linked/components/ResizeHandleLinked/index.js.map +1 -0
- package/dist/esm/strategies/linked/components/ResizePanelGroupLinked/index.d.ts +19 -0
- package/dist/esm/strategies/linked/components/ResizePanelGroupLinked/index.js +2 -0
- package/dist/esm/strategies/linked/components/ResizePanelGroupLinked/index.js.map +1 -0
- package/dist/esm/strategies/linked/components/ResizePanelLinked/index.d.ts +17 -0
- package/dist/esm/strategies/linked/components/ResizePanelLinked/index.js +2 -0
- package/dist/esm/strategies/linked/components/ResizePanelLinked/index.js.map +1 -0
- package/dist/esm/strategies/linked/context.d.ts +29 -0
- package/dist/esm/strategies/linked/context.js +2 -0
- package/dist/esm/strategies/linked/context.js.map +1 -0
- package/dist/esm/strategies/linked/resizeAble.js +2 -0
- package/dist/esm/strategies/linked/resizeAble.js.map +1 -0
- package/dist/esm/types/index.d.ts +36 -2
- package/dist/index.d.ts +14 -3
- package/dist/index.js +1 -14
- package/dist/index.js.map +1 -1
- package/dist/strategies/basic/components/ResizeHandle/index.d.ts +18 -0
- package/dist/strategies/basic/components/ResizeHandle/index.js +2 -0
- package/dist/strategies/basic/components/ResizeHandle/index.js.map +1 -0
- package/dist/{esm → strategies/basic}/components/ResizePanel/index.d.ts +2 -1
- package/dist/strategies/basic/components/ResizePanel/index.js +2 -0
- package/dist/strategies/basic/components/ResizePanel/index.js.map +1 -0
- package/dist/{esm → strategies/basic}/components/ResizePanelGroup/index.d.ts +3 -3
- package/dist/strategies/basic/components/ResizePanelGroup/index.js +2 -0
- package/dist/strategies/basic/components/ResizePanelGroup/index.js.map +1 -0
- package/dist/strategies/basic/context.d.ts +28 -0
- package/dist/strategies/basic/context.js +2 -0
- package/dist/strategies/basic/context.js.map +1 -0
- package/dist/strategies/basic/resizeAble.js +2 -0
- package/dist/strategies/basic/resizeAble.js.map +1 -0
- package/dist/strategies/flex/components/ResizeHandleFlex/index.d.ts +18 -0
- package/dist/strategies/flex/components/ResizeHandleFlex/index.js +2 -0
- package/dist/strategies/flex/components/ResizeHandleFlex/index.js.map +1 -0
- package/dist/strategies/flex/components/ResizePanelGroupFlex/index.d.ts +21 -0
- package/dist/strategies/flex/components/ResizePanelGroupFlex/index.js +2 -0
- package/dist/strategies/flex/components/ResizePanelGroupFlex/index.js.map +1 -0
- package/dist/strategies/flex/resizeAble.js +2 -0
- package/dist/strategies/flex/resizeAble.js.map +1 -0
- package/dist/strategies/flex-linked/components/ResizeHandleFlexLinked/index.d.ts +17 -0
- package/dist/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js +2 -0
- package/dist/strategies/flex-linked/components/ResizeHandleFlexLinked/index.js.map +1 -0
- package/dist/strategies/flex-linked/components/ResizePanelFlexLinked/index.d.ts +17 -0
- package/dist/strategies/flex-linked/components/ResizePanelFlexLinked/index.js +2 -0
- package/dist/strategies/flex-linked/components/ResizePanelFlexLinked/index.js.map +1 -0
- package/dist/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.d.ts +20 -0
- package/dist/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js +2 -0
- package/dist/strategies/flex-linked/components/ResizePanelGroupFlexLinked/index.js.map +1 -0
- package/dist/strategies/flex-linked/context.js +2 -0
- package/dist/strategies/flex-linked/context.js.map +1 -0
- package/dist/strategies/flex-linked/resizeAble.js +2 -0
- package/dist/strategies/flex-linked/resizeAble.js.map +1 -0
- package/dist/strategies/linked/components/ResizeHandleLinked/index.d.ts +18 -0
- package/dist/strategies/linked/components/ResizeHandleLinked/index.js +2 -0
- package/dist/strategies/linked/components/ResizeHandleLinked/index.js.map +1 -0
- package/dist/strategies/linked/components/ResizePanelGroupLinked/index.d.ts +19 -0
- package/dist/strategies/linked/components/ResizePanelGroupLinked/index.js +2 -0
- package/dist/strategies/linked/components/ResizePanelGroupLinked/index.js.map +1 -0
- package/dist/strategies/linked/components/ResizePanelLinked/index.d.ts +17 -0
- package/dist/strategies/linked/components/ResizePanelLinked/index.js +2 -0
- package/dist/strategies/linked/components/ResizePanelLinked/index.js.map +1 -0
- package/dist/strategies/linked/context.d.ts +29 -0
- package/dist/strategies/linked/context.js +2 -0
- package/dist/strategies/linked/context.js.map +1 -0
- package/dist/strategies/linked/resizeAble.js +2 -0
- package/dist/strategies/linked/resizeAble.js.map +1 -0
- package/dist/types/index.d.ts +36 -2
- package/package.json +165 -134
- package/dist/components/ResizeHandle/index.js +0 -92
- package/dist/components/ResizeHandle/index.js.map +0 -1
- package/dist/components/ResizePanel/index.js +0 -33
- package/dist/components/ResizePanel/index.js.map +0 -1
- package/dist/components/ResizePanelGroup/index.js +0 -61
- package/dist/components/ResizePanelGroup/index.js.map +0 -1
- package/dist/components/shared/context.js +0 -35
- package/dist/components/shared/context.js.map +0 -1
- package/dist/esm/components/ResizeHandle/index.js +0 -90
- package/dist/esm/components/ResizeHandle/index.js.map +0 -1
- package/dist/esm/components/ResizePanel/index.js +0 -31
- package/dist/esm/components/ResizePanel/index.js.map +0 -1
- package/dist/esm/components/ResizePanelGroup/index.js +0 -59
- package/dist/esm/components/ResizePanelGroup/index.js.map +0 -1
- package/dist/esm/components/shared/context.js +0 -32
- package/dist/esm/components/shared/context.js.map +0 -1
- package/dist/esm/utils/resizeAble.js +0 -427
- package/dist/esm/utils/resizeAble.js.map +0 -1
- package/dist/esm/utils/virtualNode.js +0 -164
- package/dist/esm/utils/virtualNode.js.map +0 -1
- package/dist/utils/resizeAble.js +0 -431
- package/dist/utils/resizeAble.js.map +0 -1
- package/dist/utils/virtualNode.js +0 -168
- package/dist/utils/virtualNode.js.map +0 -1
|
@@ -1,427 +0,0 @@
|
|
|
1
|
-
import VirtualNodeManager from './virtualNode.js';
|
|
2
|
-
|
|
3
|
-
class ResizeAbleCore {
|
|
4
|
-
constructor(options) {
|
|
5
|
-
Object.defineProperty(this, "prePanelEl", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
configurable: true,
|
|
8
|
-
writable: true,
|
|
9
|
-
value: void 0
|
|
10
|
-
});
|
|
11
|
-
Object.defineProperty(this, "nextPanelEl", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
configurable: true,
|
|
14
|
-
writable: true,
|
|
15
|
-
value: void 0
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(this, "getPanelInfo", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: void 0
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(this, "prePanelIndex", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true,
|
|
27
|
-
value: void 0
|
|
28
|
-
});
|
|
29
|
-
Object.defineProperty(this, "nextPanelIndex", {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
configurable: true,
|
|
32
|
-
writable: true,
|
|
33
|
-
value: void 0
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(this, "direction", {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true,
|
|
39
|
-
value: void 0
|
|
40
|
-
});
|
|
41
|
-
Object.defineProperty(this, "virtualEnabled", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: void 0
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(this, "virtualConfig", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true,
|
|
51
|
-
value: void 0
|
|
52
|
-
});
|
|
53
|
-
Object.defineProperty(this, "isResizing", {
|
|
54
|
-
enumerable: true,
|
|
55
|
-
configurable: true,
|
|
56
|
-
writable: true,
|
|
57
|
-
value: false
|
|
58
|
-
});
|
|
59
|
-
Object.defineProperty(this, "prePanelStartSize", {
|
|
60
|
-
enumerable: true,
|
|
61
|
-
configurable: true,
|
|
62
|
-
writable: true,
|
|
63
|
-
value: 0
|
|
64
|
-
});
|
|
65
|
-
Object.defineProperty(this, "nextPanelStartSize", {
|
|
66
|
-
enumerable: true,
|
|
67
|
-
configurable: true,
|
|
68
|
-
writable: true,
|
|
69
|
-
value: 0
|
|
70
|
-
});
|
|
71
|
-
Object.defineProperty(this, "allPanelsStartSizes", {
|
|
72
|
-
enumerable: true,
|
|
73
|
-
configurable: true,
|
|
74
|
-
writable: true,
|
|
75
|
-
value: new Map()
|
|
76
|
-
});
|
|
77
|
-
Object.defineProperty(this, "allPanelsStartPositions", {
|
|
78
|
-
enumerable: true,
|
|
79
|
-
configurable: true,
|
|
80
|
-
writable: true,
|
|
81
|
-
value: new Map()
|
|
82
|
-
}); // 记录面板初始位置(虚拟化模式使用)
|
|
83
|
-
Object.defineProperty(this, "handleSize", {
|
|
84
|
-
enumerable: true,
|
|
85
|
-
configurable: true,
|
|
86
|
-
writable: true,
|
|
87
|
-
value: void 0
|
|
88
|
-
}); // 拖拽器尺寸(宽度或高度,根据方向)
|
|
89
|
-
Object.defineProperty(this, "virtualNodeManager", {
|
|
90
|
-
enumerable: true,
|
|
91
|
-
configurable: true,
|
|
92
|
-
writable: true,
|
|
93
|
-
value: null
|
|
94
|
-
});
|
|
95
|
-
this.prePanelEl = options.prePanelEl;
|
|
96
|
-
this.nextPanelEl = options.nextPanelEl;
|
|
97
|
-
this.getPanelInfo = options.getPanelInfo;
|
|
98
|
-
this.prePanelIndex = options.prePanelIndex;
|
|
99
|
-
this.nextPanelIndex = options.nextPanelIndex;
|
|
100
|
-
this.direction = options.direction;
|
|
101
|
-
this.virtualEnabled = options.virtualEnabled || false;
|
|
102
|
-
this.virtualConfig = options.virtualConfig || {};
|
|
103
|
-
this.handleSize = options.handleSize || 0;
|
|
104
|
-
// 如果启用虚拟化,创建虚拟节点管理器
|
|
105
|
-
if (this.virtualEnabled) {
|
|
106
|
-
this.virtualNodeManager = new VirtualNodeManager();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
startResize() {
|
|
110
|
-
// 设置开始拖拽
|
|
111
|
-
this.isResizing = true;
|
|
112
|
-
// 记录前一个面板的开始大小
|
|
113
|
-
this.prePanelStartSize = this.getSize(this.prePanelEl);
|
|
114
|
-
this.allPanelsStartSizes.set(this.prePanelIndex, this.prePanelStartSize);
|
|
115
|
-
// 记录后一个面板的开始大小
|
|
116
|
-
this.nextPanelStartSize = this.getSize(this.nextPanelEl);
|
|
117
|
-
this.allPanelsStartSizes.set(this.nextPanelIndex, this.nextPanelStartSize);
|
|
118
|
-
// 根据方向设置尺寸属性
|
|
119
|
-
const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';
|
|
120
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
121
|
-
// 虚拟化模式:创建虚拟节点并记录初始位置
|
|
122
|
-
const prePos = this.getPosition(this.prePanelEl);
|
|
123
|
-
this.allPanelsStartPositions.set(this.prePanelIndex, prePos);
|
|
124
|
-
this.virtualNodeManager.createVirtualNode(this.prePanelEl, this.virtualConfig);
|
|
125
|
-
const nextPos = this.getPosition(this.nextPanelEl);
|
|
126
|
-
this.allPanelsStartPositions.set(this.nextPanelIndex, nextPos);
|
|
127
|
-
this.virtualNodeManager.createVirtualNode(this.nextPanelEl, this.virtualConfig);
|
|
128
|
-
// 记录前面面板的初始尺寸和位置并创建虚拟节点
|
|
129
|
-
let prevIndex = this.prePanelIndex - 1;
|
|
130
|
-
while (prevIndex >= 0) {
|
|
131
|
-
const panelInfo = this.getPanelInfo(prevIndex);
|
|
132
|
-
if (!panelInfo)
|
|
133
|
-
break;
|
|
134
|
-
const size = this.getSize(panelInfo.panelEl);
|
|
135
|
-
const pos = this.getPosition(panelInfo.panelEl);
|
|
136
|
-
this.allPanelsStartSizes.set(prevIndex, size);
|
|
137
|
-
this.allPanelsStartPositions.set(prevIndex, pos);
|
|
138
|
-
this.virtualNodeManager.createVirtualNode(panelInfo.panelEl, this.virtualConfig);
|
|
139
|
-
prevIndex--;
|
|
140
|
-
}
|
|
141
|
-
// 记录后续面板的初始尺寸和位置并创建虚拟节点
|
|
142
|
-
let nextIndex = this.nextPanelIndex + 1;
|
|
143
|
-
let nextPanelInfo = this.getPanelInfo(nextIndex);
|
|
144
|
-
while (nextPanelInfo) {
|
|
145
|
-
const size = this.getSize(nextPanelInfo.panelEl);
|
|
146
|
-
const pos = this.getPosition(nextPanelInfo.panelEl);
|
|
147
|
-
this.allPanelsStartSizes.set(nextIndex, size);
|
|
148
|
-
this.allPanelsStartPositions.set(nextIndex, pos);
|
|
149
|
-
this.virtualNodeManager.createVirtualNode(nextPanelInfo.panelEl, this.virtualConfig);
|
|
150
|
-
nextIndex++;
|
|
151
|
-
nextPanelInfo = this.getPanelInfo(nextIndex);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
// 非虚拟化模式:直接操作真实节点
|
|
156
|
-
// 禁用flex
|
|
157
|
-
this.prePanelEl.style.flex = 'none';
|
|
158
|
-
this.prePanelEl.style[sizeProperty] = `${this.prePanelStartSize}px`;
|
|
159
|
-
this.nextPanelEl.style.flex = 'none';
|
|
160
|
-
this.nextPanelEl.style[sizeProperty] = `${this.nextPanelStartSize}px`;
|
|
161
|
-
// 记录前面面板的初始尺寸(用于向前拖拽时的级联调整)
|
|
162
|
-
let prevIndex = this.prePanelIndex - 1;
|
|
163
|
-
while (prevIndex >= 0) {
|
|
164
|
-
const panelInfo = this.getPanelInfo(prevIndex);
|
|
165
|
-
if (!panelInfo)
|
|
166
|
-
break;
|
|
167
|
-
const size = this.getSize(panelInfo.panelEl);
|
|
168
|
-
this.allPanelsStartSizes.set(prevIndex, size);
|
|
169
|
-
panelInfo.panelEl.style.flex = 'none';
|
|
170
|
-
panelInfo.panelEl.style[sizeProperty] = `${size}px`;
|
|
171
|
-
prevIndex--;
|
|
172
|
-
}
|
|
173
|
-
// 记录后续面板的初始尺寸(用于向后拖拽时的级联调整)
|
|
174
|
-
let nextIndex = this.nextPanelIndex + 1;
|
|
175
|
-
let nextPanelInfo = this.getPanelInfo(nextIndex);
|
|
176
|
-
while (nextPanelInfo) {
|
|
177
|
-
const size = this.getSize(nextPanelInfo.panelEl);
|
|
178
|
-
this.allPanelsStartSizes.set(nextIndex, size);
|
|
179
|
-
nextPanelInfo.panelEl.style.flex = 'none';
|
|
180
|
-
nextPanelInfo.panelEl.style[sizeProperty] = `${size}px`;
|
|
181
|
-
nextIndex++;
|
|
182
|
-
nextPanelInfo = this.getPanelInfo(nextIndex);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
onResize(delta) {
|
|
187
|
-
if (!this.isResizing)
|
|
188
|
-
return;
|
|
189
|
-
if (delta > 0) {
|
|
190
|
-
// 向后拖拽(水平布局向右,垂直布局向下):扩大前一个面板,缩小后一个面板
|
|
191
|
-
this.adjustPanelsNext(delta);
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
// 向前拖拽(水平布局向左,垂直布局向上):缩小前一个面板,扩大后一个面板
|
|
195
|
-
// 将负数转为正数处理
|
|
196
|
-
this.adjustPanelsPre(-delta);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
adjustPanelsNext(delta) {
|
|
200
|
-
let remainingDelta = delta;
|
|
201
|
-
const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';
|
|
202
|
-
// 尝试从后一个面板获取空间
|
|
203
|
-
const nextPanelInfo = this.getPanelInfo(this.nextPanelIndex);
|
|
204
|
-
if (nextPanelInfo) {
|
|
205
|
-
const nextStartSize = this.allPanelsStartSizes.get(this.nextPanelIndex) || 0;
|
|
206
|
-
const targetNextSize = nextStartSize - remainingDelta;
|
|
207
|
-
const newNextSize = Math.max(nextPanelInfo.minSize, targetNextSize);
|
|
208
|
-
const actualReduction = nextStartSize - newNextSize;
|
|
209
|
-
// 虚拟化模式下更新虚拟节点,否则更新真实节点
|
|
210
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
211
|
-
this.virtualNodeManager.updateVirtualNode(this.nextPanelEl, newNextSize, this.direction);
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
this.nextPanelEl.style[sizeProperty] = `${newNextSize}px`;
|
|
215
|
-
}
|
|
216
|
-
remainingDelta -= actualReduction;
|
|
217
|
-
}
|
|
218
|
-
// 如果后一个面板达到了最小值,继续从后续的面板中获取空间
|
|
219
|
-
if (remainingDelta > 0) {
|
|
220
|
-
let nextIndex = this.nextPanelIndex + 1;
|
|
221
|
-
while (remainingDelta > 0) {
|
|
222
|
-
const nextPanelInfo = this.getPanelInfo(nextIndex);
|
|
223
|
-
if (!nextPanelInfo)
|
|
224
|
-
break;
|
|
225
|
-
const nextStartSize = this.allPanelsStartSizes.get(nextIndex) || 0;
|
|
226
|
-
const targetNextSize = nextStartSize - remainingDelta;
|
|
227
|
-
const newNextSize = Math.max(nextPanelInfo.minSize, targetNextSize);
|
|
228
|
-
const actualReduction = nextStartSize - newNextSize;
|
|
229
|
-
// 虚拟化模式下更新虚拟节点,否则更新真实节点
|
|
230
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
231
|
-
this.virtualNodeManager.updateVirtualNode(nextPanelInfo.panelEl, newNextSize, this.direction);
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
nextPanelInfo.panelEl.style[sizeProperty] = `${newNextSize}px`;
|
|
235
|
-
}
|
|
236
|
-
remainingDelta -= actualReduction;
|
|
237
|
-
if (newNextSize <= nextPanelInfo.minSize && remainingDelta > 0) {
|
|
238
|
-
nextIndex++;
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
break;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
// 扩大前一个面板
|
|
246
|
-
const prePanelInfo = this.getPanelInfo(this.prePanelIndex);
|
|
247
|
-
if (prePanelInfo) {
|
|
248
|
-
const preStartSize = this.allPanelsStartSizes.get(this.prePanelIndex) || 0;
|
|
249
|
-
const actualGained = delta - remainingDelta; // 实际获得的尺寸
|
|
250
|
-
const newPreSize = preStartSize + actualGained;
|
|
251
|
-
// 虚拟化模式下更新虚拟节点,否则更新真实节点
|
|
252
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
253
|
-
this.virtualNodeManager.updateVirtualNode(this.prePanelEl, newPreSize, this.direction);
|
|
254
|
-
// 重新计算所有面板的位置(基于尺寸变化)
|
|
255
|
-
this.recalculateAllPanelsPositions();
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
this.prePanelEl.style[sizeProperty] = `${newPreSize}px`;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
adjustPanelsPre(delta) {
|
|
263
|
-
// 向前拖拽(水平布局向左,垂直布局向上):缩小前一个面板,扩大后一个面板
|
|
264
|
-
// delta 此时是正数(表示向前拖拽的距离)
|
|
265
|
-
let remainingDelta = delta;
|
|
266
|
-
let totalReduced = 0; // 记录从前一个面板实际减少的尺寸总和
|
|
267
|
-
const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';
|
|
268
|
-
// 先尝试缩小前一个面板
|
|
269
|
-
const prePanelInfo = this.getPanelInfo(this.prePanelIndex);
|
|
270
|
-
if (prePanelInfo) {
|
|
271
|
-
const preStartSize = this.allPanelsStartSizes.get(this.prePanelIndex) || 0;
|
|
272
|
-
const targetPreSize = preStartSize - remainingDelta;
|
|
273
|
-
const newPreSize = Math.max(prePanelInfo.minSize, targetPreSize);
|
|
274
|
-
const actualReduction = preStartSize - newPreSize;
|
|
275
|
-
// 虚拟化模式下更新虚拟节点,否则更新真实节点
|
|
276
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
277
|
-
this.virtualNodeManager.updateVirtualNode(this.prePanelEl, newPreSize, this.direction);
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
this.prePanelEl.style[sizeProperty] = `${newPreSize}px`;
|
|
281
|
-
}
|
|
282
|
-
totalReduced += actualReduction;
|
|
283
|
-
remainingDelta -= actualReduction;
|
|
284
|
-
}
|
|
285
|
-
// 如果前一个面板达到最小值,继续缩小更前面的面板(prevPanel)
|
|
286
|
-
// 这样可以实现"依次后延"的效果
|
|
287
|
-
if (remainingDelta > 0) {
|
|
288
|
-
let prevIndex = this.prePanelIndex - 1;
|
|
289
|
-
while (remainingDelta > 0 && prevIndex >= 0) {
|
|
290
|
-
const prevPanelInfo = this.getPanelInfo(prevIndex);
|
|
291
|
-
if (!prevPanelInfo)
|
|
292
|
-
break;
|
|
293
|
-
const prevStartSize = this.allPanelsStartSizes.get(prevIndex);
|
|
294
|
-
if (prevStartSize === undefined)
|
|
295
|
-
break;
|
|
296
|
-
const targetPrevSize = prevStartSize - remainingDelta;
|
|
297
|
-
const newPrevSize = Math.max(prevPanelInfo.minSize, targetPrevSize);
|
|
298
|
-
const actualReduction = prevStartSize - newPrevSize;
|
|
299
|
-
// 虚拟化模式下更新虚拟节点,否则更新真实节点
|
|
300
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
301
|
-
this.virtualNodeManager.updateVirtualNode(prevPanelInfo.panelEl, newPrevSize, this.direction);
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
prevPanelInfo.panelEl.style[sizeProperty] = `${newPrevSize}px`;
|
|
305
|
-
}
|
|
306
|
-
totalReduced += actualReduction; // 将这部分空间也加到后一个面板
|
|
307
|
-
remainingDelta -= actualReduction;
|
|
308
|
-
if (newPrevSize <= prevPanelInfo.minSize && remainingDelta > 0) {
|
|
309
|
-
prevIndex--; // 继续向前查找
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
break;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
// 扩大后一个面板(使用实际减少的尺寸)
|
|
317
|
-
const nextPanelInfo = this.getPanelInfo(this.nextPanelIndex);
|
|
318
|
-
if (nextPanelInfo) {
|
|
319
|
-
const nextStartSize = this.allPanelsStartSizes.get(this.nextPanelIndex) || 0;
|
|
320
|
-
const newNextSize = nextStartSize + totalReduced;
|
|
321
|
-
// 虚拟化模式下更新虚拟节点,否则更新真实节点
|
|
322
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
323
|
-
this.virtualNodeManager.updateVirtualNode(this.nextPanelEl, newNextSize, this.direction);
|
|
324
|
-
// 重新计算所有面板的位置(基于尺寸变化)
|
|
325
|
-
this.recalculateAllPanelsPositions();
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
328
|
-
this.nextPanelEl.style[sizeProperty] = `${newNextSize}px`;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* 重新计算所有面板的位置(虚拟化模式使用)
|
|
334
|
-
* 基于每个面板的初始位置和前面所有面板的尺寸变化
|
|
335
|
-
*/
|
|
336
|
-
recalculateAllPanelsPositions() {
|
|
337
|
-
if (!this.virtualEnabled || !this.virtualNodeManager)
|
|
338
|
-
return;
|
|
339
|
-
// 从第一个面板开始,顺序计算每个面板的新位置
|
|
340
|
-
// 使用累积方式:从第一个面板的初始位置开始,依次加上每个面板的当前尺寸和拖拽器尺寸
|
|
341
|
-
const firstPanelStartPos = this.allPanelsStartPositions.get(0) || 0;
|
|
342
|
-
let currentPosition = firstPanelStartPos;
|
|
343
|
-
let index = 0;
|
|
344
|
-
let panelInfo = this.getPanelInfo(index);
|
|
345
|
-
while (panelInfo) {
|
|
346
|
-
const startPos = this.allPanelsStartPositions.get(index);
|
|
347
|
-
if (startPos !== undefined) {
|
|
348
|
-
// 获取虚拟节点
|
|
349
|
-
const virtualEl = this.virtualNodeManager.getVirtualNode(panelInfo.panelEl);
|
|
350
|
-
if (virtualEl) {
|
|
351
|
-
// 如果是第一个面板,使用初始位置
|
|
352
|
-
if (index === 0) {
|
|
353
|
-
currentPosition = startPos;
|
|
354
|
-
}
|
|
355
|
-
else {
|
|
356
|
-
// 对于后续面板,使用累积方式计算位置
|
|
357
|
-
// 从第一个面板开始,累积所有前面面板的尺寸和拖拽器尺寸
|
|
358
|
-
currentPosition = firstPanelStartPos;
|
|
359
|
-
for (let i = 0; i < index; i++) {
|
|
360
|
-
const prevInfo = this.getPanelInfo(i);
|
|
361
|
-
if (prevInfo) {
|
|
362
|
-
const prevVEl = this.virtualNodeManager.getVirtualNode(prevInfo.panelEl);
|
|
363
|
-
if (prevVEl) {
|
|
364
|
-
const prevSize = this.direction === 'horizontal'
|
|
365
|
-
? prevVEl.offsetWidth
|
|
366
|
-
: prevVEl.offsetHeight;
|
|
367
|
-
currentPosition += prevSize + this.handleSize;
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
// 更新虚拟节点的位置
|
|
373
|
-
this.virtualNodeManager.updateVirtualNodePosition(panelInfo.panelEl, currentPosition, this.direction);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
index++;
|
|
377
|
-
panelInfo = this.getPanelInfo(index);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
getSize(el) {
|
|
381
|
-
return this.direction === 'horizontal' ? el.offsetWidth : el.offsetHeight;
|
|
382
|
-
}
|
|
383
|
-
getPosition(el) {
|
|
384
|
-
// 获取元素相对于父容器的位置
|
|
385
|
-
if (this.direction === 'horizontal') {
|
|
386
|
-
return el.offsetLeft;
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
return el.offsetTop;
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
endResize() {
|
|
393
|
-
this.isResizing = false;
|
|
394
|
-
if (this.virtualEnabled && this.virtualNodeManager) {
|
|
395
|
-
// 虚拟化模式:将最终尺寸应用到真实节点
|
|
396
|
-
const sizeProperty = this.direction === 'horizontal' ? 'width' : 'height';
|
|
397
|
-
// 获取所有虚拟节点的最终尺寸并应用到真实节点
|
|
398
|
-
this.allPanelsStartSizes.forEach((_, index) => {
|
|
399
|
-
const panelInfo = this.getPanelInfo(index);
|
|
400
|
-
if (!panelInfo)
|
|
401
|
-
return;
|
|
402
|
-
const virtualEl = this.virtualNodeManager.getVirtualNode(panelInfo.panelEl);
|
|
403
|
-
if (virtualEl) {
|
|
404
|
-
const finalSize = this.direction === 'horizontal'
|
|
405
|
-
? virtualEl.offsetWidth
|
|
406
|
-
: virtualEl.offsetHeight;
|
|
407
|
-
// 应用最终尺寸到真实节点
|
|
408
|
-
panelInfo.panelEl.style.flex = 'none';
|
|
409
|
-
panelInfo.panelEl.style[sizeProperty] = `${finalSize}px`;
|
|
410
|
-
}
|
|
411
|
-
});
|
|
412
|
-
// 清理所有虚拟节点
|
|
413
|
-
this.virtualNodeManager.removeAllVirtualNodes();
|
|
414
|
-
}
|
|
415
|
-
this.allPanelsStartSizes.clear();
|
|
416
|
-
}
|
|
417
|
-
destroy() {
|
|
418
|
-
this.endResize();
|
|
419
|
-
// 清理虚拟节点管理器
|
|
420
|
-
if (this.virtualNodeManager) {
|
|
421
|
-
this.virtualNodeManager.destroy();
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
export { ResizeAbleCore as default };
|
|
427
|
-
//# sourceMappingURL=resizeAble.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resizeAble.js","sources":["../../../src/utils/resizeAble.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 虚拟节点管理模块
|
|
3
|
-
* 负责创建、更新、销毁虚拟节点,用于虚拟化拖拽
|
|
4
|
-
*/
|
|
5
|
-
class VirtualNodeManager {
|
|
6
|
-
constructor() {
|
|
7
|
-
Object.defineProperty(this, "virtualNodes", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
configurable: true,
|
|
10
|
-
writable: true,
|
|
11
|
-
value: new Map()
|
|
12
|
-
}); // 存储虚拟节点映射:realEl -> virtualEl
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* 创建虚拟节点
|
|
16
|
-
* @param originalEl - 原始节点
|
|
17
|
-
* @param config - 虚拟化配置
|
|
18
|
-
* @returns 虚拟节点
|
|
19
|
-
*/
|
|
20
|
-
createVirtualNode(originalEl, config = {}) {
|
|
21
|
-
if (!originalEl || !originalEl.parentElement) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
// 如果已存在虚拟节点,先移除
|
|
25
|
-
if (this.virtualNodes.has(originalEl)) {
|
|
26
|
-
this.removeVirtualNode(originalEl);
|
|
27
|
-
}
|
|
28
|
-
// 获取原始节点的位置和尺寸信息
|
|
29
|
-
const rect = originalEl.getBoundingClientRect();
|
|
30
|
-
const parentRect = originalEl.parentElement.getBoundingClientRect();
|
|
31
|
-
const computedStyle = window.getComputedStyle(originalEl);
|
|
32
|
-
// 创建虚拟节点(只复制结构,不复制内容以提高性能)
|
|
33
|
-
const virtualEl = originalEl.cloneNode(false); // false 表示不复制子节点
|
|
34
|
-
// 计算相对于父容器的位置
|
|
35
|
-
const top = rect.top - parentRect.top + (originalEl.parentElement.scrollTop || 0);
|
|
36
|
-
const left = rect.left - parentRect.left + (originalEl.parentElement.scrollLeft || 0);
|
|
37
|
-
// 设置虚拟节点样式
|
|
38
|
-
virtualEl.style.cssText = `
|
|
39
|
-
position: absolute;
|
|
40
|
-
top: ${top}px;
|
|
41
|
-
left: ${left}px;
|
|
42
|
-
width: ${rect.width}px;
|
|
43
|
-
height: ${rect.height}px;
|
|
44
|
-
margin: 0;
|
|
45
|
-
padding: ${computedStyle.padding};
|
|
46
|
-
border: ${computedStyle.border};
|
|
47
|
-
box-sizing: ${computedStyle.boxSizing};
|
|
48
|
-
pointer-events: none;
|
|
49
|
-
z-index: 10000;
|
|
50
|
-
opacity: 0.6;
|
|
51
|
-
background-color: ${computedStyle.backgroundColor || 'rgba(0, 123, 255, 0.1)'};
|
|
52
|
-
overflow: hidden;
|
|
53
|
-
box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.3);
|
|
54
|
-
`;
|
|
55
|
-
// 应用自定义样式
|
|
56
|
-
if (config.style) {
|
|
57
|
-
Object.assign(virtualEl.style, config.style);
|
|
58
|
-
}
|
|
59
|
-
// 应用自定义类名
|
|
60
|
-
if (config.className) {
|
|
61
|
-
virtualEl.className = config.className;
|
|
62
|
-
}
|
|
63
|
-
// 隐藏原始节点的内容(可选,通过设置透明度)
|
|
64
|
-
const originalOpacity = originalEl.style.opacity;
|
|
65
|
-
originalEl.style.opacity = '0.3';
|
|
66
|
-
originalEl.dataset.originalOpacity = originalOpacity || '';
|
|
67
|
-
// 将虚拟节点插入到父容器中
|
|
68
|
-
originalEl.parentElement.appendChild(virtualEl);
|
|
69
|
-
// 存储映射关系
|
|
70
|
-
this.virtualNodes.set(originalEl, virtualEl);
|
|
71
|
-
return virtualEl;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* 更新虚拟节点尺寸
|
|
75
|
-
* @param originalEl - 原始节点
|
|
76
|
-
* @param size - 新尺寸
|
|
77
|
-
* @param direction - 方向 'horizontal' | 'vertical'
|
|
78
|
-
*/
|
|
79
|
-
updateVirtualNode(originalEl, size, direction) {
|
|
80
|
-
const virtualEl = this.virtualNodes.get(originalEl);
|
|
81
|
-
if (!virtualEl)
|
|
82
|
-
return;
|
|
83
|
-
const sizeProperty = direction === 'horizontal' ? 'width' : 'height';
|
|
84
|
-
virtualEl.style[sizeProperty] = `${size}px`;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* 更新虚拟节点位置(用于级联调整)
|
|
88
|
-
* @param originalEl - 原始节点
|
|
89
|
-
* @param newPosition - 新位置(绝对位置,不是偏移量)
|
|
90
|
-
* @param direction - 方向 'horizontal' | 'vertical'
|
|
91
|
-
*/
|
|
92
|
-
updateVirtualNodePosition(originalEl, newPosition, direction) {
|
|
93
|
-
const virtualEl = this.virtualNodes.get(originalEl);
|
|
94
|
-
if (!virtualEl)
|
|
95
|
-
return;
|
|
96
|
-
const positionProperty = direction === 'horizontal' ? 'left' : 'top';
|
|
97
|
-
virtualEl.style[positionProperty] = `${newPosition}px`;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* 移除虚拟节点
|
|
101
|
-
* @param originalEl - 原始节点
|
|
102
|
-
*/
|
|
103
|
-
removeVirtualNode(originalEl) {
|
|
104
|
-
const virtualEl = this.virtualNodes.get(originalEl);
|
|
105
|
-
if (!virtualEl)
|
|
106
|
-
return;
|
|
107
|
-
// 恢复原始节点透明度
|
|
108
|
-
if (originalEl.dataset.originalOpacity !== undefined) {
|
|
109
|
-
originalEl.style.opacity = originalEl.dataset.originalOpacity;
|
|
110
|
-
delete originalEl.dataset.originalOpacity;
|
|
111
|
-
}
|
|
112
|
-
// 移除虚拟节点
|
|
113
|
-
if (virtualEl.parentElement) {
|
|
114
|
-
virtualEl.parentElement.removeChild(virtualEl);
|
|
115
|
-
}
|
|
116
|
-
// 移除映射关系
|
|
117
|
-
this.virtualNodes.delete(originalEl);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* 将最终尺寸应用到真实节点
|
|
121
|
-
* @param originalEl - 原始节点
|
|
122
|
-
* @param finalSize - 最终尺寸
|
|
123
|
-
* @param direction - 方向 'horizontal' | 'vertical'
|
|
124
|
-
*/
|
|
125
|
-
applyToRealNode(originalEl, finalSize, direction) {
|
|
126
|
-
const sizeProperty = direction === 'horizontal' ? 'width' : 'height';
|
|
127
|
-
originalEl.style[sizeProperty] = `${finalSize}px`;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* 移除所有虚拟节点
|
|
131
|
-
*/
|
|
132
|
-
removeAllVirtualNodes() {
|
|
133
|
-
const nodesToRemove = Array.from(this.virtualNodes.keys());
|
|
134
|
-
nodesToRemove.forEach(originalEl => {
|
|
135
|
-
this.removeVirtualNode(originalEl);
|
|
136
|
-
});
|
|
137
|
-
this.virtualNodes.clear();
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* 检查是否存在虚拟节点
|
|
141
|
-
* @param originalEl - 原始节点
|
|
142
|
-
* @returns 是否存在
|
|
143
|
-
*/
|
|
144
|
-
hasVirtualNode(originalEl) {
|
|
145
|
-
return this.virtualNodes.has(originalEl);
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* 获取虚拟节点
|
|
149
|
-
* @param originalEl - 原始节点
|
|
150
|
-
* @returns 虚拟节点或null
|
|
151
|
-
*/
|
|
152
|
-
getVirtualNode(originalEl) {
|
|
153
|
-
return this.virtualNodes.get(originalEl) || null;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* 销毁管理器,清理所有资源
|
|
157
|
-
*/
|
|
158
|
-
destroy() {
|
|
159
|
-
this.removeAllVirtualNodes();
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export { VirtualNodeManager as default };
|
|
164
|
-
//# sourceMappingURL=virtualNode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"virtualNode.js","sources":["../../../src/utils/virtualNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|