dockview-core 6.6.1 → 7.0.3
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 +8 -1
- package/dist/cjs/api/component.api.d.ts +42 -21
- package/dist/cjs/api/component.api.js +111 -20
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +23 -8
- package/dist/cjs/api/dockviewGroupPanelApi.js +24 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts +4 -3
- package/dist/cjs/api/dockviewPanelApi.js +8 -0
- package/dist/cjs/dnd/dropTargetAnchorContainer.js +1 -2
- package/dist/cjs/dnd/droptarget.d.ts +8 -0
- package/dist/cjs/dnd/droptarget.js +28 -0
- package/dist/cjs/dnd/pointer/longPress.js +1 -1
- package/dist/cjs/dnd/pointer/pointerDragController.js +9 -7
- package/dist/cjs/dnd/pointer/pointerDragSource.js +4 -2
- package/dist/cjs/dockview/accessibilityMessages.d.ts +32 -0
- package/dist/cjs/dockview/accessibilityMessages.js +51 -0
- package/dist/cjs/dockview/allModules.d.ts +8 -0
- package/dist/cjs/dockview/allModules.js +25 -0
- package/dist/cjs/dockview/components/panel/content.d.ts +2 -0
- package/dist/cjs/dockview/components/panel/content.js +41 -10
- package/dist/cjs/dockview/components/popupService.js +1 -1
- package/dist/cjs/dockview/components/tab/tab.js +35 -7
- package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +34 -0
- package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +95 -0
- package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +51 -0
- package/dist/cjs/dockview/components/titlebar/groupDragSource.js +218 -0
- package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +2 -1
- package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +36 -30
- package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +27 -5
- package/dist/cjs/dockview/components/titlebar/tabGroups.js +104 -53
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +12 -0
- package/dist/cjs/dockview/components/titlebar/tabs.js +121 -25
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +4 -0
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +13 -3
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +1 -4
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +32 -156
- package/dist/cjs/dockview/dndCapabilities.js +3 -3
- package/dist/cjs/dockview/dockviewComponent.d.ts +304 -49
- package/dist/cjs/dockview/dockviewComponent.js +1839 -1075
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +33 -2
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +39 -3
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -2
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +36 -14
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +151 -125
- package/dist/cjs/dockview/dockviewPanel.d.ts +2 -2
- package/dist/cjs/dockview/dockviewPanel.js +4 -5
- package/dist/cjs/dockview/dockviewShell.d.ts +29 -7
- package/dist/cjs/dockview/dockviewShell.js +94 -36
- package/dist/cjs/dockview/edgeGroupService.d.ts +38 -0
- package/dist/cjs/dockview/edgeGroupService.js +128 -0
- package/dist/cjs/dockview/floatingGroupService.d.ts +37 -0
- package/dist/cjs/dockview/floatingGroupService.js +231 -0
- package/dist/cjs/dockview/headerActionsService.d.ts +32 -0
- package/dist/cjs/dockview/headerActionsService.js +149 -0
- package/dist/cjs/dockview/liveRegionService.d.ts +53 -0
- package/dist/cjs/dockview/liveRegionService.js +185 -0
- package/dist/cjs/dockview/moduleContracts.d.ts +119 -0
- package/dist/cjs/dockview/moduleContracts.js +2 -0
- package/dist/cjs/dockview/modules.d.ts +110 -0
- package/dist/cjs/dockview/modules.js +304 -0
- package/dist/cjs/dockview/options.d.ts +159 -6
- package/dist/cjs/dockview/options.js +8 -1
- package/dist/cjs/dockview/popoutWindowService.d.ts +95 -0
- package/dist/cjs/dockview/popoutWindowService.js +261 -0
- package/dist/cjs/dockview/rootDropTargetService.d.ts +35 -0
- package/dist/cjs/dockview/rootDropTargetService.js +87 -0
- package/dist/cjs/dockview/strictEventsSequencing.js +6 -6
- package/dist/cjs/dockview/tabGroup.js +3 -3
- package/dist/cjs/dockview/tabGroupAccent.js +1 -3
- package/dist/cjs/dockview/watermarkService.d.ts +30 -0
- package/dist/cjs/dockview/watermarkService.js +61 -0
- package/dist/cjs/dom.js +1 -1
- package/dist/cjs/events.js +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +6 -10
- package/dist/cjs/gridview/branchNode.js +13 -17
- package/dist/cjs/gridview/gridview.js +8 -8
- package/dist/cjs/gridview/gridviewComponent.d.ts +3 -3
- package/dist/cjs/gridview/gridviewComponent.js +1 -6
- package/dist/cjs/gridview/gridviewPanel.d.ts +1 -1
- package/dist/cjs/index.d.ts +11 -4
- package/dist/cjs/index.js +14 -1
- package/dist/cjs/overlay/overlay.d.ts +43 -1
- package/dist/cjs/overlay/overlay.js +82 -36
- package/dist/cjs/overlay/overlayRenderContainer.js +3 -4
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/cjs/paneview/draggablePaneviewPanel.js +5 -5
- package/dist/cjs/paneview/paneviewComponent.d.ts +3 -3
- package/dist/cjs/paneview/paneviewComponent.js +7 -11
- package/dist/cjs/popoutWindow.js +4 -4
- package/dist/cjs/scrollbar.d.ts +1 -1
- package/dist/cjs/scrollbar.js +7 -6
- package/dist/cjs/splitview/splitview.d.ts +1 -1
- package/dist/cjs/splitview/splitview.js +21 -20
- package/dist/cjs/splitview/viewItem.js +1 -1
- package/dist/dockview-core.js +3548 -1544
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +3547 -1543
- package/dist/esm/api/component.api.d.ts +42 -21
- package/dist/esm/api/component.api.js +63 -18
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +23 -8
- package/dist/esm/api/dockviewGroupPanelApi.js +20 -1
- package/dist/esm/api/dockviewPanelApi.d.ts +4 -3
- package/dist/esm/api/dockviewPanelApi.js +7 -0
- package/dist/esm/dnd/dropTargetAnchorContainer.js +1 -2
- package/dist/esm/dnd/droptarget.d.ts +8 -0
- package/dist/esm/dnd/droptarget.js +28 -0
- package/dist/esm/dnd/pointer/longPress.js +1 -1
- package/dist/esm/dnd/pointer/pointerDragController.js +9 -7
- package/dist/esm/dnd/pointer/pointerDragSource.js +4 -2
- package/dist/esm/dockview/accessibilityMessages.d.ts +32 -0
- package/dist/esm/dockview/accessibilityMessages.js +30 -0
- package/dist/esm/dockview/allModules.d.ts +8 -0
- package/dist/esm/dockview/allModules.js +22 -0
- package/dist/esm/dockview/components/panel/content.d.ts +2 -0
- package/dist/esm/dockview/components/panel/content.js +42 -11
- package/dist/esm/dockview/components/popupService.js +1 -1
- package/dist/esm/dockview/components/tab/tab.js +35 -7
- package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +34 -0
- package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +65 -0
- package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +51 -0
- package/dist/esm/dockview/components/titlebar/groupDragSource.js +178 -0
- package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +2 -1
- package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +36 -30
- package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +27 -5
- package/dist/esm/dockview/components/titlebar/tabGroups.js +91 -41
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +12 -0
- package/dist/esm/dockview/components/titlebar/tabs.js +119 -26
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +4 -0
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +8 -2
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +1 -4
- package/dist/esm/dockview/components/titlebar/voidContainer.js +34 -146
- package/dist/esm/dockview/dndCapabilities.js +3 -3
- package/dist/esm/dockview/dockviewComponent.d.ts +304 -49
- package/dist/esm/dockview/dockviewComponent.js +1459 -772
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +33 -2
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +35 -3
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -2
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +36 -14
- package/dist/esm/dockview/dockviewGroupPanelModel.js +127 -117
- package/dist/esm/dockview/dockviewPanel.d.ts +2 -2
- package/dist/esm/dockview/dockviewPanel.js +1 -2
- package/dist/esm/dockview/dockviewShell.d.ts +29 -7
- package/dist/esm/dockview/dockviewShell.js +89 -37
- package/dist/esm/dockview/edgeGroupService.d.ts +38 -0
- package/dist/esm/dockview/edgeGroupService.js +63 -0
- package/dist/esm/dockview/floatingGroupService.d.ts +37 -0
- package/dist/esm/dockview/floatingGroupService.js +150 -0
- package/dist/esm/dockview/headerActionsService.d.ts +32 -0
- package/dist/esm/dockview/headerActionsService.js +86 -0
- package/dist/esm/dockview/liveRegionService.d.ts +53 -0
- package/dist/esm/dockview/liveRegionService.js +159 -0
- package/dist/esm/dockview/moduleContracts.d.ts +119 -0
- package/dist/esm/dockview/moduleContracts.js +1 -0
- package/dist/esm/dockview/modules.d.ts +110 -0
- package/dist/esm/dockview/modules.js +170 -0
- package/dist/esm/dockview/options.d.ts +159 -6
- package/dist/esm/dockview/options.js +8 -1
- package/dist/esm/dockview/popoutWindowService.d.ts +95 -0
- package/dist/esm/dockview/popoutWindowService.js +175 -0
- package/dist/esm/dockview/rootDropTargetService.d.ts +35 -0
- package/dist/esm/dockview/rootDropTargetService.js +82 -0
- package/dist/esm/dockview/strictEventsSequencing.js +6 -6
- package/dist/esm/dockview/tabGroup.js +3 -3
- package/dist/esm/dockview/tabGroupAccent.js +1 -3
- package/dist/esm/dockview/watermarkService.d.ts +30 -0
- package/dist/esm/dockview/watermarkService.js +56 -0
- package/dist/esm/dom.js +1 -1
- package/dist/esm/events.js +1 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/esm/gridview/baseComponentGridview.js +5 -10
- package/dist/esm/gridview/branchNode.js +13 -15
- package/dist/esm/gridview/gridview.js +8 -8
- package/dist/esm/gridview/gridviewComponent.d.ts +3 -3
- package/dist/esm/gridview/gridviewComponent.js +1 -6
- package/dist/esm/gridview/gridviewPanel.d.ts +1 -1
- package/dist/esm/index.d.ts +11 -4
- package/dist/esm/index.js +4 -0
- package/dist/esm/overlay/overlay.d.ts +43 -1
- package/dist/esm/overlay/overlay.js +78 -36
- package/dist/esm/overlay/overlayRenderContainer.js +3 -4
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/draggablePaneviewPanel.js +5 -5
- package/dist/esm/paneview/paneviewComponent.d.ts +3 -3
- package/dist/esm/paneview/paneviewComponent.js +7 -11
- package/dist/esm/popoutWindow.js +4 -4
- package/dist/esm/scrollbar.d.ts +1 -1
- package/dist/esm/scrollbar.js +7 -6
- package/dist/esm/splitview/splitview.d.ts +1 -1
- package/dist/esm/splitview/splitview.js +21 -20
- package/dist/esm/splitview/viewItem.js +1 -1
- package/dist/package/main.cjs.js +3550 -1546
- package/dist/package/main.cjs.min.js +2 -2
- package/dist/package/main.esm.min.mjs +2 -2
- package/dist/package/main.esm.mjs +3538 -1545
- package/dist/styles/dockview.css +283 -21
- package/package.json +10 -1
- package/dist/cjs/dockview/contextMenu.d.ts +0 -10
- package/dist/cjs/dockview/contextMenu.js +0 -313
- package/dist/esm/dockview/contextMenu.d.ts +0 -10
- package/dist/esm/dockview/contextMenu.js +0 -228
|
@@ -39,6 +39,15 @@ export class Overlay extends CompositeDisposable {
|
|
|
39
39
|
get isVisible() {
|
|
40
40
|
return this._isVisible;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Height of the optional drag-handle header, or 0 when none is present.
|
|
44
|
+
* Used to translate between the overlay's outer box and the content area
|
|
45
|
+
* available to the group beneath the header.
|
|
46
|
+
*/
|
|
47
|
+
get headerHeight() {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
return (_b = (_a = this.options.header) === null || _a === void 0 ? void 0 : _a.offsetHeight) !== null && _b !== void 0 ? _b : 0;
|
|
50
|
+
}
|
|
42
51
|
constructor(options) {
|
|
43
52
|
super();
|
|
44
53
|
this.options = options;
|
|
@@ -54,6 +63,11 @@ export class Overlay extends CompositeDisposable {
|
|
|
54
63
|
this._dragCancelled = false;
|
|
55
64
|
this.addDisposables(this._onDidChange, this._onDidChangeEnd, this._onDidStartMoving, this._dragMove);
|
|
56
65
|
this._element.className = 'dv-resize-container';
|
|
66
|
+
// Floating groups are non-modal dialogs over the layout. The contained
|
|
67
|
+
// group(s) carry their own `role="region"` + label, so the dialog
|
|
68
|
+
// itself only needs role + modality here.
|
|
69
|
+
this._element.setAttribute('role', 'dialog');
|
|
70
|
+
this._element.setAttribute('aria-modal', 'false');
|
|
57
71
|
this._isVisible = true;
|
|
58
72
|
this.setupResize('top');
|
|
59
73
|
this.setupResize('bottom');
|
|
@@ -63,6 +77,10 @@ export class Overlay extends CompositeDisposable {
|
|
|
63
77
|
this.setupResize('topright');
|
|
64
78
|
this.setupResize('bottomleft');
|
|
65
79
|
this.setupResize('bottomright');
|
|
80
|
+
if (this.options.header) {
|
|
81
|
+
toggleClass(this._element, 'dv-resize-container-with-titlebar', true);
|
|
82
|
+
this._element.appendChild(this.options.header);
|
|
83
|
+
}
|
|
66
84
|
this._element.appendChild(this.options.content);
|
|
67
85
|
this.options.container.appendChild(this._element);
|
|
68
86
|
// if input bad resize within acceptable boundaries
|
|
@@ -140,19 +158,19 @@ export class Overlay extends CompositeDisposable {
|
|
|
140
158
|
const element = this._element.getBoundingClientRect();
|
|
141
159
|
const result = {};
|
|
142
160
|
if (this.verticalAlignment === 'top') {
|
|
143
|
-
result.top = parseFloat(this._element.style.top);
|
|
161
|
+
result.top = Number.parseFloat(this._element.style.top);
|
|
144
162
|
}
|
|
145
163
|
else if (this.verticalAlignment === 'bottom') {
|
|
146
|
-
result.bottom = parseFloat(this._element.style.bottom);
|
|
164
|
+
result.bottom = Number.parseFloat(this._element.style.bottom);
|
|
147
165
|
}
|
|
148
166
|
else {
|
|
149
167
|
result.top = element.top - container.top;
|
|
150
168
|
}
|
|
151
169
|
if (this.horiziontalAlignment === 'left') {
|
|
152
|
-
result.left = parseFloat(this._element.style.left);
|
|
170
|
+
result.left = Number.parseFloat(this._element.style.left);
|
|
153
171
|
}
|
|
154
172
|
else if (this.horiziontalAlignment === 'right') {
|
|
155
|
-
result.right = parseFloat(this._element.style.right);
|
|
173
|
+
result.right = Number.parseFloat(this._element.style.right);
|
|
156
174
|
}
|
|
157
175
|
else {
|
|
158
176
|
result.left = element.left - container.left;
|
|
@@ -177,9 +195,14 @@ export class Overlay extends CompositeDisposable {
|
|
|
177
195
|
}
|
|
178
196
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
179
197
|
const track = (captureTarget, pointerId) => {
|
|
198
|
+
var _a, _b, _c;
|
|
180
199
|
let offset = null;
|
|
181
200
|
let hasMoved = false;
|
|
182
201
|
this._dragCancelled = false;
|
|
202
|
+
// Snapshot once per drag — siblings don't move while this one drags.
|
|
203
|
+
const siblingBoxes = this.options.transformDragPosition
|
|
204
|
+
? ((_c = (_b = (_a = this.options).getSiblingBoxes) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : [])
|
|
205
|
+
: [];
|
|
183
206
|
const iframes = disableIframePointEvents();
|
|
184
207
|
if (captureTarget &&
|
|
185
208
|
typeof pointerId === 'number' &&
|
|
@@ -187,7 +210,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
187
210
|
try {
|
|
188
211
|
captureTarget.setPointerCapture(pointerId);
|
|
189
212
|
}
|
|
190
|
-
catch (
|
|
213
|
+
catch (_d) {
|
|
191
214
|
// ignore – non-fatal if the browser refuses capture
|
|
192
215
|
}
|
|
193
216
|
}
|
|
@@ -211,7 +234,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
211
234
|
}
|
|
212
235
|
}
|
|
213
236
|
},
|
|
214
|
-
}, addDisposableListener(window, 'pointermove', (e) => {
|
|
237
|
+
}, addDisposableListener(globalThis.window, 'pointermove', (e) => {
|
|
215
238
|
if (this._dragCancelled) {
|
|
216
239
|
return;
|
|
217
240
|
}
|
|
@@ -220,21 +243,41 @@ export class Overlay extends CompositeDisposable {
|
|
|
220
243
|
const y = e.clientY - containerRect.top;
|
|
221
244
|
toggleClass(this._element, 'dv-resize-container-dragging', true);
|
|
222
245
|
const overlayRect = this._element.getBoundingClientRect();
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
};
|
|
228
|
-
}
|
|
246
|
+
offset !== null && offset !== void 0 ? offset : (offset = {
|
|
247
|
+
x: e.clientX - overlayRect.left,
|
|
248
|
+
y: e.clientY - overlayRect.top,
|
|
249
|
+
});
|
|
229
250
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
230
251
|
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
252
|
+
let proposedTop = y - offset.y;
|
|
253
|
+
let proposedLeft = x - offset.x;
|
|
254
|
+
// Let a consumer nudge the proposed position (snapping,
|
|
255
|
+
// custom bounds) before the container clamp below.
|
|
256
|
+
if (this.options.transformDragPosition) {
|
|
257
|
+
const adjusted = this.options.transformDragPosition({
|
|
258
|
+
proposed: {
|
|
259
|
+
top: proposedTop,
|
|
260
|
+
left: proposedLeft,
|
|
261
|
+
width: overlayRect.width,
|
|
262
|
+
height: overlayRect.height,
|
|
263
|
+
},
|
|
264
|
+
container: {
|
|
265
|
+
width: containerRect.width,
|
|
266
|
+
height: containerRect.height,
|
|
267
|
+
},
|
|
268
|
+
others: siblingBoxes,
|
|
269
|
+
});
|
|
270
|
+
if (adjusted) {
|
|
271
|
+
proposedTop = adjusted.top;
|
|
272
|
+
proposedLeft = adjusted.left;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const maxTop = Math.max(0, containerRect.height - overlayRect.height + yOffset);
|
|
276
|
+
const maxLeft = Math.max(0, containerRect.width - overlayRect.width + xOffset);
|
|
277
|
+
const top = clamp(proposedTop, -yOffset, maxTop);
|
|
278
|
+
const bottom = clamp(containerRect.height - overlayRect.height - proposedTop, -yOffset, maxTop);
|
|
279
|
+
const left = clamp(proposedLeft, -xOffset, maxLeft);
|
|
280
|
+
const right = clamp(containerRect.width - overlayRect.width - proposedLeft, -xOffset, maxLeft);
|
|
238
281
|
const bounds = {};
|
|
239
282
|
// Anchor to top or to bottom depending on which one is closer
|
|
240
283
|
if (top <= bottom) {
|
|
@@ -255,7 +298,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
255
298
|
hasMoved = true;
|
|
256
299
|
this._onDidStartMoving.fire();
|
|
257
300
|
}
|
|
258
|
-
}), addDisposableListener(window, 'pointerup', end), addDisposableListener(window, 'pointercancel', end));
|
|
301
|
+
}), addDisposableListener(globalThis.window, 'pointerup', end), addDisposableListener(globalThis.window, 'pointercancel', end));
|
|
259
302
|
};
|
|
260
303
|
this.addDisposables(addDisposableListener(dragTarget, 'pointerdown', (event) => {
|
|
261
304
|
if (event.defaultPrevented) {
|
|
@@ -309,20 +352,18 @@ export class Overlay extends CompositeDisposable {
|
|
|
309
352
|
move.dispose();
|
|
310
353
|
this._onDidChangeEnd.fire();
|
|
311
354
|
};
|
|
312
|
-
move.value = new CompositeDisposable(addDisposableListener(window, 'pointermove', (e) => {
|
|
355
|
+
move.value = new CompositeDisposable(addDisposableListener(globalThis.window, 'pointermove', (e) => {
|
|
313
356
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
314
357
|
const overlayRect = this._element.getBoundingClientRect();
|
|
315
358
|
const y = e.clientY - containerRect.top;
|
|
316
359
|
const x = e.clientX - containerRect.left;
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
};
|
|
325
|
-
}
|
|
360
|
+
// record the initial dimensions since as all subsequence moves are relative to this
|
|
361
|
+
startPosition !== null && startPosition !== void 0 ? startPosition : (startPosition = {
|
|
362
|
+
originalY: y,
|
|
363
|
+
originalHeight: overlayRect.height,
|
|
364
|
+
originalX: x,
|
|
365
|
+
originalWidth: overlayRect.width,
|
|
366
|
+
});
|
|
326
367
|
let top = undefined;
|
|
327
368
|
let bottom = undefined;
|
|
328
369
|
let height = undefined;
|
|
@@ -337,7 +378,8 @@ export class Overlay extends CompositeDisposable {
|
|
|
337
378
|
? Math.max(0, containerRect.height -
|
|
338
379
|
Overlay.MINIMUM_HEIGHT)
|
|
339
380
|
: Math.max(0, startPosition.originalY +
|
|
340
|
-
startPosition
|
|
381
|
+
startPosition
|
|
382
|
+
.originalHeight -
|
|
341
383
|
Overlay.MINIMUM_HEIGHT);
|
|
342
384
|
top = clamp(y, 0, maxTop);
|
|
343
385
|
height =
|
|
@@ -352,8 +394,8 @@ export class Overlay extends CompositeDisposable {
|
|
|
352
394
|
startPosition.originalHeight;
|
|
353
395
|
// When dragging bottom handle, constrain height to container height
|
|
354
396
|
const minHeight = top < 0 &&
|
|
355
|
-
typeof this.options
|
|
356
|
-
'number'
|
|
397
|
+
typeof this.options
|
|
398
|
+
.minimumInViewportHeight === 'number'
|
|
357
399
|
? -top +
|
|
358
400
|
this.options.minimumInViewportHeight
|
|
359
401
|
: Overlay.MINIMUM_HEIGHT;
|
|
@@ -383,8 +425,8 @@ export class Overlay extends CompositeDisposable {
|
|
|
383
425
|
startPosition.originalWidth;
|
|
384
426
|
// When dragging right handle, constrain width to container width
|
|
385
427
|
const minWidth = left < 0 &&
|
|
386
|
-
typeof this.options
|
|
387
|
-
'number'
|
|
428
|
+
typeof this.options
|
|
429
|
+
.minimumInViewportWidth === 'number'
|
|
388
430
|
? -left +
|
|
389
431
|
this.options.minimumInViewportWidth
|
|
390
432
|
: Overlay.MINIMUM_WIDTH;
|
|
@@ -453,7 +495,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
453
495
|
}
|
|
454
496
|
}
|
|
455
497
|
},
|
|
456
|
-
}, addDisposableListener(window, 'pointerup', end), addDisposableListener(window, 'pointercancel', end));
|
|
498
|
+
}, addDisposableListener(globalThis.window, 'pointerup', end), addDisposableListener(globalThis.window, 'pointercancel', end));
|
|
457
499
|
}));
|
|
458
500
|
}
|
|
459
501
|
getMinimumWidth(width) {
|
|
@@ -9,7 +9,7 @@ class PositionCache {
|
|
|
9
9
|
}
|
|
10
10
|
getPosition(element) {
|
|
11
11
|
const cached = this.cache.get(element);
|
|
12
|
-
if (cached
|
|
12
|
+
if ((cached === null || cached === void 0 ? void 0 : cached.frameId) === this.currentFrameId) {
|
|
13
13
|
return cached.rect;
|
|
14
14
|
}
|
|
15
15
|
this.scheduleFrameUpdate();
|
|
@@ -221,11 +221,10 @@ export class OverlayRenderContainer extends CompositeDisposable {
|
|
|
221
221
|
correctLayerPosition();
|
|
222
222
|
}));
|
|
223
223
|
this.map[panel.api.id].destroy = Disposable.from(() => {
|
|
224
|
-
var _a;
|
|
225
224
|
if (contentElement.parentElement === focusContainer) {
|
|
226
|
-
|
|
225
|
+
contentElement.remove();
|
|
227
226
|
}
|
|
228
|
-
|
|
227
|
+
focusContainer.remove();
|
|
229
228
|
});
|
|
230
229
|
correctLayerPosition();
|
|
231
230
|
queueMicrotask(() => {
|
|
@@ -18,8 +18,8 @@ export declare abstract class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
18
18
|
private pointerTarget;
|
|
19
19
|
private readonly _onDidDrop;
|
|
20
20
|
readonly onDidDrop: Event<PaneviewDidDropEvent>;
|
|
21
|
-
private readonly
|
|
22
|
-
readonly
|
|
21
|
+
private readonly _onUnhandledDragOver;
|
|
22
|
+
readonly onUnhandledDragOver: Event<PaneviewDndOverlayEvent>;
|
|
23
23
|
readonly accessor: IPaneviewComponent;
|
|
24
24
|
constructor(options: {
|
|
25
25
|
accessor: IPaneviewComponent;
|
|
@@ -19,10 +19,10 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
19
19
|
});
|
|
20
20
|
this._onDidDrop = new Emitter();
|
|
21
21
|
this.onDidDrop = this._onDidDrop.event;
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
22
|
+
this._onUnhandledDragOver = new Emitter();
|
|
23
|
+
this.onUnhandledDragOver = this._onUnhandledDragOver.event;
|
|
24
24
|
this.accessor = options.accessor;
|
|
25
|
-
this.addDisposables(this._onDidDrop, this.
|
|
25
|
+
this.addDisposables(this._onDidDrop, this._onUnhandledDragOver);
|
|
26
26
|
if (!options.disableDnd) {
|
|
27
27
|
this.initDragFeatures();
|
|
28
28
|
}
|
|
@@ -55,7 +55,7 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
const firedEvent = new PaneviewUnhandledDragOverEvent(event, position, getPaneData, this);
|
|
58
|
-
this.
|
|
58
|
+
this._onUnhandledDragOver.fire(firedEvent);
|
|
59
59
|
return firedEvent.isAccepted;
|
|
60
60
|
};
|
|
61
61
|
const dropTargetOptions = {
|
|
@@ -75,7 +75,7 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
75
75
|
}
|
|
76
76
|
onDrop(event) {
|
|
77
77
|
const data = getPaneData();
|
|
78
|
-
if (
|
|
78
|
+
if ((data === null || data === void 0 ? void 0 : data.viewId) !== this.accessor.id) {
|
|
79
79
|
// if there is no local drag event for this panel
|
|
80
80
|
// or if the drag event was creating by another Paneview instance
|
|
81
81
|
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));
|
|
@@ -74,7 +74,7 @@ export interface IPaneviewComponent extends IDisposable {
|
|
|
74
74
|
readonly onDidDrop: Event<PaneviewDidDropEvent>;
|
|
75
75
|
readonly onDidLayoutChange: Event<void>;
|
|
76
76
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
77
|
-
readonly
|
|
77
|
+
readonly onUnhandledDragOver: Event<PaneviewDndOverlayEvent>;
|
|
78
78
|
addPanel<T extends object = Parameters>(options: AddPaneviewComponentOptions<T>): IPaneviewPanel;
|
|
79
79
|
layout(width: number, height: number): void;
|
|
80
80
|
toJSON(): SerializedPaneview;
|
|
@@ -103,8 +103,8 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
|
|
|
103
103
|
readonly onDidAddView: Event<PaneviewPanel>;
|
|
104
104
|
private readonly _onDidRemoveView;
|
|
105
105
|
readonly onDidRemoveView: Event<PaneviewPanel>;
|
|
106
|
-
private readonly
|
|
107
|
-
readonly
|
|
106
|
+
private readonly _onUnhandledDragOver;
|
|
107
|
+
readonly onUnhandledDragOver: Event<PaneviewDndOverlayEvent>;
|
|
108
108
|
private readonly _classNames;
|
|
109
109
|
get id(): string;
|
|
110
110
|
get panels(): PaneviewPanel[];
|
|
@@ -86,11 +86,11 @@ export class PaneviewComponent extends Resizable {
|
|
|
86
86
|
this.onDidAddView = this._onDidAddView.event;
|
|
87
87
|
this._onDidRemoveView = new Emitter();
|
|
88
88
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
89
|
+
this._onUnhandledDragOver = new Emitter();
|
|
90
|
+
this.onUnhandledDragOver = this._onUnhandledDragOver.event;
|
|
91
91
|
this.element.style.height = '100%';
|
|
92
92
|
this.element.style.width = '100%';
|
|
93
|
-
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this.
|
|
93
|
+
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this._onUnhandledDragOver);
|
|
94
94
|
this._classNames = new Classnames(this.element);
|
|
95
95
|
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
96
96
|
// the container is owned by the third-party, do not modify/delete it
|
|
@@ -132,9 +132,7 @@ export class PaneviewComponent extends Resizable {
|
|
|
132
132
|
name: options.headerComponent,
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
|
|
136
|
-
header = new DefaultHeader();
|
|
137
|
-
}
|
|
135
|
+
header !== null && header !== void 0 ? header : (header = new DefaultHeader());
|
|
138
136
|
const view = new PaneFramework({
|
|
139
137
|
id: options.id,
|
|
140
138
|
component: options.component,
|
|
@@ -233,9 +231,7 @@ export class PaneviewComponent extends Resizable {
|
|
|
233
231
|
name: data.headerComponent,
|
|
234
232
|
});
|
|
235
233
|
}
|
|
236
|
-
|
|
237
|
-
header = new DefaultHeader();
|
|
238
|
-
}
|
|
234
|
+
header !== null && header !== void 0 ? header : (header = new DefaultHeader());
|
|
239
235
|
const panel = new PaneFramework({
|
|
240
236
|
id: data.id,
|
|
241
237
|
component: data.component,
|
|
@@ -286,8 +282,8 @@ export class PaneviewComponent extends Resizable {
|
|
|
286
282
|
doAddPanel(panel) {
|
|
287
283
|
const disposable = new CompositeDisposable(panel.onDidDrop((event) => {
|
|
288
284
|
this._onDidDrop.fire(event);
|
|
289
|
-
}), panel.
|
|
290
|
-
this.
|
|
285
|
+
}), panel.onUnhandledDragOver((event) => {
|
|
286
|
+
this._onUnhandledDragOver.fire(event);
|
|
291
287
|
}));
|
|
292
288
|
this._viewDisposables.set(panel.id, disposable);
|
|
293
289
|
}
|
package/dist/esm/popoutWindow.js
CHANGED
|
@@ -19,13 +19,13 @@ import { CompositeDisposable, Disposable } from './lifecycle';
|
|
|
19
19
|
export function assertSameOriginPopoutUrl(url) {
|
|
20
20
|
let resolved;
|
|
21
21
|
try {
|
|
22
|
-
resolved = new URL(url,
|
|
22
|
+
resolved = new URL(url, globalThis.location.href);
|
|
23
23
|
}
|
|
24
24
|
catch (_a) {
|
|
25
25
|
throw new Error(`dockview: invalid popout URL: ${url}`);
|
|
26
26
|
}
|
|
27
27
|
const protocolOk = resolved.protocol === 'http:' || resolved.protocol === 'https:';
|
|
28
|
-
if (!protocolOk || resolved.origin !==
|
|
28
|
+
if (!protocolOk || resolved.origin !== globalThis.location.origin) {
|
|
29
29
|
throw new Error(`dockview: popout URL must be same-origin http(s); got: ${url}`);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -103,7 +103,7 @@ export class PopoutWindow extends CompositeDisposable {
|
|
|
103
103
|
this._window = { value: externalWindow, disposable };
|
|
104
104
|
disposable.addDisposables(Disposable.from(() => {
|
|
105
105
|
externalWindow.close();
|
|
106
|
-
}), addDisposableListener(window, 'beforeunload', () => {
|
|
106
|
+
}), addDisposableListener(globalThis.window, 'beforeunload', () => {
|
|
107
107
|
/**
|
|
108
108
|
* before the main window closes we should close this popup too
|
|
109
109
|
* to be good citizens
|
|
@@ -133,7 +133,7 @@ export class PopoutWindow extends CompositeDisposable {
|
|
|
133
133
|
const externalDocument = externalWindow.document;
|
|
134
134
|
externalDocument.title = document.title;
|
|
135
135
|
externalDocument.body.appendChild(container);
|
|
136
|
-
addStyles(externalDocument,
|
|
136
|
+
addStyles(externalDocument, globalThis.document.styleSheets, {
|
|
137
137
|
nonce: this.options.nonce,
|
|
138
138
|
});
|
|
139
139
|
/**
|
package/dist/esm/scrollbar.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare class Scrollbar extends CompositeDisposable {
|
|
|
6
6
|
private _scrollOffset;
|
|
7
7
|
private _animationTimer;
|
|
8
8
|
private _orientation;
|
|
9
|
-
static MouseWheelSpeed
|
|
9
|
+
static readonly MouseWheelSpeed = 1;
|
|
10
10
|
get element(): HTMLElement;
|
|
11
11
|
get orientation(): 'horizontal' | 'vertical';
|
|
12
12
|
set orientation(value: 'horizontal' | 'vertical');
|
package/dist/esm/scrollbar.js
CHANGED
|
@@ -58,15 +58,16 @@ export class Scrollbar extends CompositeDisposable {
|
|
|
58
58
|
this._scrollOffset = originalScrollOffset + delta / p;
|
|
59
59
|
this.calculateScrollbarStyles();
|
|
60
60
|
};
|
|
61
|
+
const doc = this.element.ownerDocument;
|
|
61
62
|
const onEnd = () => {
|
|
62
63
|
toggleClass(this.element, 'dv-scrollable-scrolling', false);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
doc.removeEventListener('pointermove', onPointerMove);
|
|
65
|
+
doc.removeEventListener('pointerup', onEnd);
|
|
66
|
+
doc.removeEventListener('pointercancel', onEnd);
|
|
66
67
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
doc.addEventListener('pointermove', onPointerMove);
|
|
69
|
+
doc.addEventListener('pointerup', onEnd);
|
|
70
|
+
doc.addEventListener('pointercancel', onEnd);
|
|
70
71
|
}), addDisposableListener(this.element, 'scroll', () => {
|
|
71
72
|
this.calculateScrollbarStyles();
|
|
72
73
|
}), addDisposableListener(this.scrollableElement, 'scroll', () => {
|
|
@@ -137,7 +137,7 @@ export declare class Splitview {
|
|
|
137
137
|
private findFirstSnapIndex;
|
|
138
138
|
private updateSashEnablement;
|
|
139
139
|
private updateSash;
|
|
140
|
-
private resize;
|
|
140
|
+
private readonly resize;
|
|
141
141
|
private createViewContainer;
|
|
142
142
|
private createSashContainer;
|
|
143
143
|
private createContainer;
|
|
@@ -342,7 +342,7 @@ export class Splitview {
|
|
|
342
342
|
const viewItem = new ViewItem(container, view, viewSize, {
|
|
343
343
|
dispose: () => {
|
|
344
344
|
disposable.dispose();
|
|
345
|
-
|
|
345
|
+
container.remove();
|
|
346
346
|
},
|
|
347
347
|
});
|
|
348
348
|
if (index === this.viewItems.length) {
|
|
@@ -418,29 +418,30 @@ export class Splitview {
|
|
|
418
418
|
this.distributeEmptySpace();
|
|
419
419
|
this.layoutViews();
|
|
420
420
|
};
|
|
421
|
+
const doc = sash.ownerDocument;
|
|
421
422
|
const end = () => {
|
|
422
423
|
for (const item of this.viewItems) {
|
|
423
424
|
item.enabled = true;
|
|
424
425
|
}
|
|
425
426
|
iframes.release();
|
|
426
427
|
this.saveProportions();
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
428
|
+
doc.removeEventListener('pointermove', onPointerMove);
|
|
429
|
+
doc.removeEventListener('pointerup', end);
|
|
430
|
+
doc.removeEventListener('pointercancel', end);
|
|
431
|
+
doc.removeEventListener('contextmenu', end);
|
|
431
432
|
this._onDidSashEnd.fire(undefined);
|
|
432
433
|
};
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
434
|
+
doc.addEventListener('pointermove', onPointerMove);
|
|
435
|
+
doc.addEventListener('pointerup', end);
|
|
436
|
+
doc.addEventListener('pointercancel', end);
|
|
437
|
+
doc.addEventListener('contextmenu', end);
|
|
437
438
|
};
|
|
438
439
|
sash.addEventListener('pointerdown', onPointerStart);
|
|
439
440
|
const sashItem = {
|
|
440
441
|
container: sash,
|
|
441
442
|
disposable: () => {
|
|
442
443
|
sash.removeEventListener('pointerdown', onPointerStart);
|
|
443
|
-
|
|
444
|
+
sash.remove();
|
|
444
445
|
},
|
|
445
446
|
};
|
|
446
447
|
this.sashContainer.appendChild(sash);
|
|
@@ -487,7 +488,7 @@ export class Splitview {
|
|
|
487
488
|
if (!skipLayout) {
|
|
488
489
|
this.relayout();
|
|
489
490
|
}
|
|
490
|
-
if (sizing
|
|
491
|
+
if ((sizing === null || sizing === void 0 ? void 0 : sizing.type) === 'distribute') {
|
|
491
492
|
this.distributeViewSizes();
|
|
492
493
|
}
|
|
493
494
|
this._onDidRemoveView.fire(viewItem.view);
|
|
@@ -502,7 +503,7 @@ export class Splitview {
|
|
|
502
503
|
}
|
|
503
504
|
moveView(from, to) {
|
|
504
505
|
const cachedVisibleSize = this.getViewCachedVisibleSize(from);
|
|
505
|
-
const sizing =
|
|
506
|
+
const sizing = cachedVisibleSize === undefined
|
|
506
507
|
? this.getViewSize(from)
|
|
507
508
|
: Sizing.Invisible(cachedVisibleSize);
|
|
508
509
|
const view = this.removeView(from, undefined, true);
|
|
@@ -512,13 +513,7 @@ export class Splitview {
|
|
|
512
513
|
const previousSize = Math.max(this.size, this._contentSize);
|
|
513
514
|
this.size = size;
|
|
514
515
|
this.orthogonalSize = orthogonalSize;
|
|
515
|
-
if (
|
|
516
|
-
const indexes = range(this.viewItems.length);
|
|
517
|
-
const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
|
|
518
|
-
const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
|
|
519
|
-
this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
516
|
+
if (this.proportions) {
|
|
522
517
|
let total = 0;
|
|
523
518
|
for (let i = 0; i < this.viewItems.length; i++) {
|
|
524
519
|
const item = this.viewItems[i];
|
|
@@ -538,6 +533,12 @@ export class Splitview {
|
|
|
538
533
|
}
|
|
539
534
|
}
|
|
540
535
|
}
|
|
536
|
+
else {
|
|
537
|
+
const indexes = range(this.viewItems.length);
|
|
538
|
+
const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
|
|
539
|
+
const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
|
|
540
|
+
this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
|
|
541
|
+
}
|
|
541
542
|
this.distributeEmptySpace();
|
|
542
543
|
this.layoutViews();
|
|
543
544
|
}
|
|
@@ -757,7 +758,7 @@ export class Splitview {
|
|
|
757
758
|
this._onDidRemoveView.dispose();
|
|
758
759
|
for (let i = 0; i < this.element.children.length; i++) {
|
|
759
760
|
if (this.element.children.item(i) === this.element) {
|
|
760
|
-
this.element.
|
|
761
|
+
this.element.remove();
|
|
761
762
|
break;
|
|
762
763
|
}
|
|
763
764
|
}
|
|
@@ -10,7 +10,7 @@ export class ViewItem {
|
|
|
10
10
|
return this._cachedVisibleSize;
|
|
11
11
|
}
|
|
12
12
|
get visible() {
|
|
13
|
-
return
|
|
13
|
+
return this._cachedVisibleSize === undefined;
|
|
14
14
|
}
|
|
15
15
|
get minimumSize() {
|
|
16
16
|
return this.visible ? this.view.minimumSize : 0;
|