dockview-core 1.15.3 → 1.16.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/dist/cjs/api/component.api.d.ts +30 -6
- package/dist/cjs/api/component.api.js +42 -6
- package/dist/cjs/api/dockviewPanelApi.d.ts +1 -1
- package/dist/cjs/api/entryPoints.d.ts +9 -0
- package/dist/cjs/api/entryPoints.js +28 -0
- package/dist/cjs/dnd/abstractDragHandler.js +2 -65
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +4 -2
- package/dist/cjs/dockview/dockviewComponent.js +59 -17
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +1 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewPanel.js +1 -1
- package/dist/cjs/dockview/options.d.ts +2 -2
- package/dist/cjs/dockview/options.js +1 -0
- package/dist/cjs/dockview/types.d.ts +1 -1
- package/dist/cjs/dom.d.ts +3 -0
- package/dist/cjs/dom.js +66 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -2
- package/dist/cjs/gridview/baseComponentGridview.js +3 -0
- package/dist/cjs/gridview/gridviewComponent.d.ts +1 -1
- package/dist/cjs/gridview/gridviewComponent.js +3 -2
- package/dist/cjs/gridview/options.d.ts +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/{dnd → overlay}/overlay.d.ts +3 -0
- package/dist/cjs/{dnd → overlay}/overlay.js +41 -82
- package/dist/cjs/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
- package/dist/cjs/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +41 -6
- package/dist/cjs/paneview/options.d.ts +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +1 -1
- package/dist/cjs/paneview/paneviewComponent.js +5 -2
- package/dist/cjs/splitview/options.d.ts +1 -1
- package/dist/cjs/splitview/splitview.js +64 -71
- package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
- package/dist/cjs/splitview/splitviewComponent.js +5 -2
- package/dist/dockview-core.amd.js +258 -98
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +257 -97
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +258 -98
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +255 -99
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +258 -98
- package/dist/dockview-core.js.map +1 -1
- 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 +257 -97
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +30 -6
- package/dist/esm/api/component.api.js +42 -6
- package/dist/esm/api/dockviewPanelApi.d.ts +1 -1
- package/dist/esm/api/entryPoints.d.ts +9 -0
- package/dist/esm/api/entryPoints.js +21 -0
- package/dist/esm/dnd/abstractDragHandler.js +3 -11
- package/dist/esm/dockview/components/panel/content.js +1 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +4 -2
- package/dist/esm/dockview/dockviewComponent.js +47 -13
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js +1 -1
- package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewPanel.js +1 -1
- package/dist/esm/dockview/options.d.ts +2 -2
- package/dist/esm/dockview/options.js +1 -0
- package/dist/esm/dockview/types.d.ts +1 -1
- package/dist/esm/dom.d.ts +3 -0
- package/dist/esm/dom.js +20 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -2
- package/dist/esm/gridview/baseComponentGridview.js +3 -0
- package/dist/esm/gridview/gridviewComponent.d.ts +1 -1
- package/dist/esm/gridview/gridviewComponent.js +3 -2
- package/dist/esm/gridview/options.d.ts +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/{dnd → overlay}/overlay.d.ts +3 -0
- package/dist/esm/{dnd → overlay}/overlay.js +36 -32
- package/dist/esm/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
- package/dist/esm/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +39 -6
- package/dist/esm/paneview/options.d.ts +1 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +1 -1
- package/dist/esm/paneview/paneviewComponent.js +5 -2
- package/dist/esm/splitview/options.d.ts +1 -1
- package/dist/esm/splitview/splitview.js +37 -27
- package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
- package/dist/esm/splitview/splitviewComponent.js +5 -2
- package/dist/styles/dockview.css +78 -82
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.16.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -531,6 +531,26 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
531
531
|
function addTestId(element, id) {
|
|
532
532
|
element.setAttribute('data-testid', id);
|
|
533
533
|
}
|
|
534
|
+
function disableIframePointEvents() {
|
|
535
|
+
const iframes = [
|
|
536
|
+
...getElementsByTagName('iframe'),
|
|
537
|
+
...getElementsByTagName('webview'),
|
|
538
|
+
];
|
|
539
|
+
const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
|
|
540
|
+
for (const iframe of iframes) {
|
|
541
|
+
original.set(iframe, iframe.style.pointerEvents);
|
|
542
|
+
iframe.style.pointerEvents = 'none';
|
|
543
|
+
}
|
|
544
|
+
return {
|
|
545
|
+
release: () => {
|
|
546
|
+
var _a;
|
|
547
|
+
for (const iframe of iframes) {
|
|
548
|
+
iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
|
|
549
|
+
}
|
|
550
|
+
iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
|
|
551
|
+
},
|
|
552
|
+
};
|
|
553
|
+
}
|
|
534
554
|
|
|
535
555
|
function tail(arr) {
|
|
536
556
|
if (arr.length === 0) {
|
|
@@ -1053,13 +1073,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1053
1073
|
for (const item of this.viewItems) {
|
|
1054
1074
|
item.enabled = false;
|
|
1055
1075
|
}
|
|
1056
|
-
const iframes =
|
|
1057
|
-
...getElementsByTagName('iframe'),
|
|
1058
|
-
...getElementsByTagName('webview'),
|
|
1059
|
-
];
|
|
1060
|
-
for (const iframe of iframes) {
|
|
1061
|
-
iframe.style.pointerEvents = 'none';
|
|
1062
|
-
}
|
|
1076
|
+
const iframes = disableIframePointEvents();
|
|
1063
1077
|
const start = this._orientation === exports.Orientation.HORIZONTAL
|
|
1064
1078
|
? event.clientX
|
|
1065
1079
|
: event.clientY;
|
|
@@ -1121,9 +1135,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1121
1135
|
for (const item of this.viewItems) {
|
|
1122
1136
|
item.enabled = true;
|
|
1123
1137
|
}
|
|
1124
|
-
|
|
1125
|
-
iframe.style.pointerEvents = 'auto';
|
|
1126
|
-
}
|
|
1138
|
+
iframes.release();
|
|
1127
1139
|
this.saveProportions();
|
|
1128
1140
|
document.removeEventListener('pointermove', onPointerMove);
|
|
1129
1141
|
document.removeEventListener('pointerup', end);
|
|
@@ -1290,29 +1302,47 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1290
1302
|
if (this.viewItems.length === 0) {
|
|
1291
1303
|
return;
|
|
1292
1304
|
}
|
|
1293
|
-
const
|
|
1294
|
-
const
|
|
1305
|
+
const visibleViewItems = this.viewItems.filter((i) => i.visible);
|
|
1306
|
+
const sashCount = Math.max(0, visibleViewItems.length - 1);
|
|
1307
|
+
const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
|
|
1295
1308
|
let totalLeftOffset = 0;
|
|
1296
1309
|
const viewLeftOffsets = [];
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
this.sashes[i].container.style.left = `${offset}px`;
|
|
1303
|
-
this.sashes[i].container.style.top = `0px`;
|
|
1310
|
+
const sashWidth = 4; // hardcoded in css
|
|
1311
|
+
const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {
|
|
1312
|
+
const flag = viewItem.visible ? 1 : 0;
|
|
1313
|
+
if (i === 0) {
|
|
1314
|
+
arr.push(flag);
|
|
1304
1315
|
}
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
this.sashes[i].container.style.top = `${offset}px`;
|
|
1316
|
+
else {
|
|
1317
|
+
arr.push(arr[i - 1] + flag);
|
|
1308
1318
|
}
|
|
1309
|
-
|
|
1319
|
+
return arr;
|
|
1320
|
+
}, []);
|
|
1321
|
+
// calculate both view and cash positions
|
|
1310
1322
|
this.viewItems.forEach((view, i) => {
|
|
1311
|
-
|
|
1312
|
-
|
|
1323
|
+
totalLeftOffset += this.viewItems[i].size;
|
|
1324
|
+
viewLeftOffsets.push(totalLeftOffset);
|
|
1325
|
+
const size = view.visible ? view.size - marginReducedSize : 0;
|
|
1326
|
+
const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
|
|
1327
|
+
const offset = i === 0 || visiblePanelsBeforeThisView === 0
|
|
1313
1328
|
? 0
|
|
1314
1329
|
: viewLeftOffsets[i - 1] +
|
|
1315
|
-
(
|
|
1330
|
+
(visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
|
|
1331
|
+
if (i < this.viewItems.length - 1) {
|
|
1332
|
+
// calculate sash position
|
|
1333
|
+
const newSize = view.visible
|
|
1334
|
+
? offset + size - sashWidth / 2 + this.margin / 2
|
|
1335
|
+
: offset;
|
|
1336
|
+
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1337
|
+
this.sashes[i].container.style.left = `${newSize}px`;
|
|
1338
|
+
this.sashes[i].container.style.top = `0px`;
|
|
1339
|
+
}
|
|
1340
|
+
if (this._orientation === exports.Orientation.VERTICAL) {
|
|
1341
|
+
this.sashes[i].container.style.left = `0px`;
|
|
1342
|
+
this.sashes[i].container.style.top = `${newSize}px`;
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
// calculate view position
|
|
1316
1346
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1317
1347
|
view.container.style.width = `${size}px`;
|
|
1318
1348
|
view.container.style.left = `${offset}px`;
|
|
@@ -2656,6 +2686,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2656
2686
|
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
2657
2687
|
this.element.style.height = '100%';
|
|
2658
2688
|
this.element.style.width = '100%';
|
|
2689
|
+
if (typeof options.className === 'string') {
|
|
2690
|
+
this.element.classList.add(options.className);
|
|
2691
|
+
}
|
|
2659
2692
|
options.parentElement.appendChild(this.element);
|
|
2660
2693
|
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
2661
2694
|
this.gridview.locked = !!options.locked;
|
|
@@ -2859,12 +2892,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2859
2892
|
constructor(component) {
|
|
2860
2893
|
this.component = component;
|
|
2861
2894
|
}
|
|
2862
|
-
/**
|
|
2863
|
-
* Update configuratable options.
|
|
2864
|
-
*/
|
|
2865
|
-
updateOptions(options) {
|
|
2866
|
-
this.component.updateOptions(options);
|
|
2867
|
-
}
|
|
2868
2895
|
/**
|
|
2869
2896
|
* Removes an existing panel and optionally provide a `Sizing` method
|
|
2870
2897
|
* for the subsequent resize.
|
|
@@ -2918,6 +2945,18 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2918
2945
|
clear() {
|
|
2919
2946
|
this.component.clear();
|
|
2920
2947
|
}
|
|
2948
|
+
/**
|
|
2949
|
+
* Update configuratable options.
|
|
2950
|
+
*/
|
|
2951
|
+
updateOptions(options) {
|
|
2952
|
+
this.component.updateOptions(options);
|
|
2953
|
+
}
|
|
2954
|
+
/**
|
|
2955
|
+
* Release resources and teardown component. Do not call when using framework versions of dockview.
|
|
2956
|
+
*/
|
|
2957
|
+
dispose() {
|
|
2958
|
+
this.component.dispose();
|
|
2959
|
+
}
|
|
2921
2960
|
}
|
|
2922
2961
|
class PaneviewApi {
|
|
2923
2962
|
/**
|
|
@@ -3045,6 +3084,18 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3045
3084
|
clear() {
|
|
3046
3085
|
this.component.clear();
|
|
3047
3086
|
}
|
|
3087
|
+
/**
|
|
3088
|
+
* Update configuratable options.
|
|
3089
|
+
*/
|
|
3090
|
+
updateOptions(options) {
|
|
3091
|
+
this.component.updateOptions(options);
|
|
3092
|
+
}
|
|
3093
|
+
/**
|
|
3094
|
+
* Release resources and teardown component. Do not call when using framework versions of dockview.
|
|
3095
|
+
*/
|
|
3096
|
+
dispose() {
|
|
3097
|
+
this.component.dispose();
|
|
3098
|
+
}
|
|
3048
3099
|
}
|
|
3049
3100
|
class GridviewApi {
|
|
3050
3101
|
/**
|
|
@@ -3185,6 +3236,15 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3185
3236
|
clear() {
|
|
3186
3237
|
this.component.clear();
|
|
3187
3238
|
}
|
|
3239
|
+
updateOptions(options) {
|
|
3240
|
+
this.component.updateOptions(options);
|
|
3241
|
+
}
|
|
3242
|
+
/**
|
|
3243
|
+
* Release resources and teardown component. Do not call when using framework versions of dockview.
|
|
3244
|
+
*/
|
|
3245
|
+
dispose() {
|
|
3246
|
+
this.component.dispose();
|
|
3247
|
+
}
|
|
3188
3248
|
}
|
|
3189
3249
|
class DockviewApi {
|
|
3190
3250
|
/**
|
|
@@ -3477,6 +3537,15 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3477
3537
|
setGap(gap) {
|
|
3478
3538
|
this.component.updateOptions({ gap });
|
|
3479
3539
|
}
|
|
3540
|
+
updateOptions(options) {
|
|
3541
|
+
this.component.updateOptions(options);
|
|
3542
|
+
}
|
|
3543
|
+
/**
|
|
3544
|
+
* Release resources and teardown component. Do not call when using framework versions of dockview.
|
|
3545
|
+
*/
|
|
3546
|
+
dispose() {
|
|
3547
|
+
this.component.dispose();
|
|
3548
|
+
}
|
|
3480
3549
|
}
|
|
3481
3550
|
|
|
3482
3551
|
class DragHandler extends CompositeDisposable {
|
|
@@ -3499,20 +3568,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3499
3568
|
event.preventDefault();
|
|
3500
3569
|
return;
|
|
3501
3570
|
}
|
|
3502
|
-
const iframes =
|
|
3503
|
-
...getElementsByTagName('iframe'),
|
|
3504
|
-
...getElementsByTagName('webview'),
|
|
3505
|
-
];
|
|
3571
|
+
const iframes = disableIframePointEvents();
|
|
3506
3572
|
this.pointerEventsDisposable.value = {
|
|
3507
3573
|
dispose: () => {
|
|
3508
|
-
|
|
3509
|
-
iframe.style.pointerEvents = 'auto';
|
|
3510
|
-
}
|
|
3574
|
+
iframes.release();
|
|
3511
3575
|
},
|
|
3512
3576
|
};
|
|
3513
|
-
for (const iframe of iframes) {
|
|
3514
|
-
iframe.style.pointerEvents = 'none';
|
|
3515
|
-
}
|
|
3516
3577
|
this.el.classList.add('dv-dragged');
|
|
3517
3578
|
setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
|
|
3518
3579
|
this.dataDisposable.value = this.getData(event);
|
|
@@ -4676,7 +4737,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4676
4737
|
this._element.className = 'void-container';
|
|
4677
4738
|
this._element.tabIndex = 0;
|
|
4678
4739
|
this._element.draggable = true;
|
|
4679
|
-
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, '
|
|
4740
|
+
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
|
|
4680
4741
|
this.accessor.doSetGroupActive(this.group);
|
|
4681
4742
|
}));
|
|
4682
4743
|
const handler = new GroupDragHandler(this._element, accessor, group);
|
|
@@ -4991,6 +5052,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4991
5052
|
locked: undefined,
|
|
4992
5053
|
disableDnd: undefined,
|
|
4993
5054
|
gap: undefined,
|
|
5055
|
+
className: undefined,
|
|
4994
5056
|
};
|
|
4995
5057
|
return Object.keys(properties);
|
|
4996
5058
|
})();
|
|
@@ -5546,7 +5608,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5546
5608
|
group: this.groupPanel,
|
|
5547
5609
|
});
|
|
5548
5610
|
this.watermark = watermark;
|
|
5549
|
-
addDisposableListener(this.watermark.element, '
|
|
5611
|
+
addDisposableListener(this.watermark.element, 'pointerdown', () => {
|
|
5550
5612
|
if (!this.isActive) {
|
|
5551
5613
|
this.accessor.doSetGroupActive(this.groupPanel);
|
|
5552
5614
|
}
|
|
@@ -6111,7 +6173,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6111
6173
|
// forward the resize event to the group since if you want to resize a panel
|
|
6112
6174
|
// you are actually just resizing the panels parent which is the group
|
|
6113
6175
|
this.group.api.setSize(event);
|
|
6114
|
-
}), this.api.onDidRendererChange((
|
|
6176
|
+
}), this.api.onDidRendererChange(() => {
|
|
6115
6177
|
this.group.model.rerender(this);
|
|
6116
6178
|
}));
|
|
6117
6179
|
}
|
|
@@ -6447,17 +6509,30 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6447
6509
|
}
|
|
6448
6510
|
}
|
|
6449
6511
|
|
|
6450
|
-
const
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6454
|
-
|
|
6512
|
+
const DEFAULT_OVERLAY_Z_INDEX = 999;
|
|
6513
|
+
class AriaLevelTracker {
|
|
6514
|
+
constructor() {
|
|
6515
|
+
this._orderedList = [];
|
|
6516
|
+
}
|
|
6517
|
+
push(element) {
|
|
6518
|
+
this._orderedList = [
|
|
6519
|
+
...this._orderedList.filter((item) => item !== element),
|
|
6520
|
+
element,
|
|
6521
|
+
];
|
|
6522
|
+
this.update();
|
|
6523
|
+
}
|
|
6524
|
+
destroy(element) {
|
|
6525
|
+
this._orderedList = this._orderedList.filter((item) => item !== element);
|
|
6526
|
+
this.update();
|
|
6527
|
+
}
|
|
6528
|
+
update() {
|
|
6529
|
+
for (let i = 0; i < this._orderedList.length; i++) {
|
|
6530
|
+
this._orderedList[i].setAttribute('aria-level', `${i}`);
|
|
6531
|
+
this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
|
|
6455
6532
|
}
|
|
6456
|
-
toggleClass(element, 'dv-bring-to-front', true);
|
|
6457
|
-
previous = element;
|
|
6458
6533
|
}
|
|
6459
|
-
|
|
6460
|
-
|
|
6534
|
+
}
|
|
6535
|
+
const arialLevelTracker = new AriaLevelTracker();
|
|
6461
6536
|
class Overlay extends CompositeDisposable {
|
|
6462
6537
|
set minimumInViewportWidth(value) {
|
|
6463
6538
|
this.options.minimumInViewportWidth = value;
|
|
@@ -6465,6 +6540,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6465
6540
|
set minimumInViewportHeight(value) {
|
|
6466
6541
|
this.options.minimumInViewportHeight = value;
|
|
6467
6542
|
}
|
|
6543
|
+
get element() {
|
|
6544
|
+
return this._element;
|
|
6545
|
+
}
|
|
6468
6546
|
constructor(options) {
|
|
6469
6547
|
super();
|
|
6470
6548
|
this.options = options;
|
|
@@ -6487,6 +6565,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6487
6565
|
this.options.container.appendChild(this._element);
|
|
6488
6566
|
// if input bad resize within acceptable boundaries
|
|
6489
6567
|
this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
|
|
6568
|
+
arialLevelTracker.push(this._element);
|
|
6569
|
+
}
|
|
6570
|
+
bringToFront() {
|
|
6571
|
+
arialLevelTracker.push(this._element);
|
|
6490
6572
|
}
|
|
6491
6573
|
setBounds(bounds = {}) {
|
|
6492
6574
|
if (typeof bounds.height === 'number') {
|
|
@@ -6574,18 +6656,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6574
6656
|
const move = new MutableDisposable();
|
|
6575
6657
|
const track = () => {
|
|
6576
6658
|
let offset = null;
|
|
6577
|
-
const iframes =
|
|
6578
|
-
...getElementsByTagName('iframe'),
|
|
6579
|
-
...getElementsByTagName('webview'),
|
|
6580
|
-
];
|
|
6581
|
-
for (const iframe of iframes) {
|
|
6582
|
-
iframe.style.pointerEvents = 'none';
|
|
6583
|
-
}
|
|
6659
|
+
const iframes = disableIframePointEvents();
|
|
6584
6660
|
move.value = new CompositeDisposable({
|
|
6585
6661
|
dispose: () => {
|
|
6586
|
-
|
|
6587
|
-
iframe.style.pointerEvents = 'auto';
|
|
6588
|
-
}
|
|
6662
|
+
iframes.release();
|
|
6589
6663
|
},
|
|
6590
6664
|
}, addDisposableWindowListener(window, 'mousemove', (e) => {
|
|
6591
6665
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
@@ -6654,9 +6728,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6654
6728
|
track();
|
|
6655
6729
|
}
|
|
6656
6730
|
}), addDisposableListener(this.options.content, 'mousedown', () => {
|
|
6657
|
-
|
|
6731
|
+
arialLevelTracker.push(this._element);
|
|
6658
6732
|
}, true));
|
|
6659
|
-
bringElementToFront(this._element);
|
|
6660
6733
|
if (options.inDragMode) {
|
|
6661
6734
|
track();
|
|
6662
6735
|
}
|
|
@@ -6669,13 +6742,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6669
6742
|
this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
|
|
6670
6743
|
e.preventDefault();
|
|
6671
6744
|
let startPosition = null;
|
|
6672
|
-
const iframes =
|
|
6673
|
-
...getElementsByTagName('iframe'),
|
|
6674
|
-
...getElementsByTagName('webview'),
|
|
6675
|
-
];
|
|
6676
|
-
for (const iframe of iframes) {
|
|
6677
|
-
iframe.style.pointerEvents = 'none';
|
|
6678
|
-
}
|
|
6745
|
+
const iframes = disableIframePointEvents();
|
|
6679
6746
|
move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
|
|
6680
6747
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6681
6748
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6798,9 +6865,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6798
6865
|
this.setBounds(bounds);
|
|
6799
6866
|
}), {
|
|
6800
6867
|
dispose: () => {
|
|
6801
|
-
|
|
6802
|
-
iframe.style.pointerEvents = 'auto';
|
|
6803
|
-
}
|
|
6868
|
+
iframes.release();
|
|
6804
6869
|
},
|
|
6805
6870
|
}, addDisposableWindowListener(window, 'mouseup', () => {
|
|
6806
6871
|
move.dispose();
|
|
@@ -6821,6 +6886,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6821
6886
|
return 0;
|
|
6822
6887
|
}
|
|
6823
6888
|
dispose() {
|
|
6889
|
+
arialLevelTracker.destroy(this._element);
|
|
6824
6890
|
this._element.remove();
|
|
6825
6891
|
super.dispose();
|
|
6826
6892
|
}
|
|
@@ -6849,9 +6915,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6849
6915
|
return element;
|
|
6850
6916
|
}
|
|
6851
6917
|
class OverlayRenderContainer extends CompositeDisposable {
|
|
6852
|
-
constructor(element) {
|
|
6918
|
+
constructor(element, accessor) {
|
|
6853
6919
|
super();
|
|
6854
6920
|
this.element = element;
|
|
6921
|
+
this.accessor = accessor;
|
|
6855
6922
|
this.map = {};
|
|
6856
6923
|
this._disposed = false;
|
|
6857
6924
|
this.addDisposables(exports.DockviewDisposable.from(() => {
|
|
@@ -6907,7 +6974,35 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6907
6974
|
}
|
|
6908
6975
|
focusContainer.style.display = panel.api.isVisible ? '' : 'none';
|
|
6909
6976
|
};
|
|
6910
|
-
const
|
|
6977
|
+
const observerDisposable = new MutableDisposable();
|
|
6978
|
+
const correctLayerPosition = () => {
|
|
6979
|
+
if (panel.api.location.type === 'floating') {
|
|
6980
|
+
queueMicrotask(() => {
|
|
6981
|
+
const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
|
|
6982
|
+
if (!floatingGroup) {
|
|
6983
|
+
return;
|
|
6984
|
+
}
|
|
6985
|
+
const element = floatingGroup.overlay.element;
|
|
6986
|
+
const update = () => {
|
|
6987
|
+
const level = Number(element.getAttribute('aria-level'));
|
|
6988
|
+
focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
|
|
6989
|
+
};
|
|
6990
|
+
const observer = new MutationObserver(() => {
|
|
6991
|
+
update();
|
|
6992
|
+
});
|
|
6993
|
+
observerDisposable.value = exports.DockviewDisposable.from(() => observer.disconnect());
|
|
6994
|
+
observer.observe(element, {
|
|
6995
|
+
attributeFilter: ['aria-level'],
|
|
6996
|
+
attributes: true,
|
|
6997
|
+
});
|
|
6998
|
+
update();
|
|
6999
|
+
});
|
|
7000
|
+
}
|
|
7001
|
+
else {
|
|
7002
|
+
focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
|
|
7003
|
+
}
|
|
7004
|
+
};
|
|
7005
|
+
const disposable = new CompositeDisposable(observerDisposable,
|
|
6911
7006
|
/**
|
|
6912
7007
|
* since container is positioned absoutely we must explicitly forward
|
|
6913
7008
|
* the dnd events for the expect behaviours to continue to occur in terms of dnd
|
|
@@ -6931,7 +7026,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6931
7026
|
onDragOver: (e) => {
|
|
6932
7027
|
referenceContainer.dropTarget.dnd.onDragOver(e);
|
|
6933
7028
|
},
|
|
6934
|
-
}), panel.api.onDidVisibilityChange((
|
|
7029
|
+
}), panel.api.onDidVisibilityChange(() => {
|
|
6935
7030
|
/**
|
|
6936
7031
|
* Control the visibility of the content, however even when not visible (display: none)
|
|
6937
7032
|
* the content is still maintained within the DOM hence DOM specific attributes
|
|
@@ -6943,6 +7038,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6943
7038
|
return;
|
|
6944
7039
|
}
|
|
6945
7040
|
resize();
|
|
7041
|
+
}), panel.api.onDidLocationChange(() => {
|
|
7042
|
+
correctLayerPosition();
|
|
6946
7043
|
}));
|
|
6947
7044
|
this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
|
|
6948
7045
|
var _a;
|
|
@@ -6951,6 +7048,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6951
7048
|
}
|
|
6952
7049
|
(_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
|
|
6953
7050
|
});
|
|
7051
|
+
correctLayerPosition();
|
|
6954
7052
|
queueMicrotask(() => {
|
|
6955
7053
|
if (this.isDisposed) {
|
|
6956
7054
|
return;
|
|
@@ -7199,7 +7297,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7199
7297
|
get gap() {
|
|
7200
7298
|
return this.gridview.margin;
|
|
7201
7299
|
}
|
|
7202
|
-
|
|
7300
|
+
get floatingGroups() {
|
|
7301
|
+
return this._floatingGroups;
|
|
7302
|
+
}
|
|
7303
|
+
constructor(parentElement, options) {
|
|
7203
7304
|
var _a;
|
|
7204
7305
|
super({
|
|
7205
7306
|
proportionalLayout: true,
|
|
@@ -7207,10 +7308,11 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7207
7308
|
styles: options.hideBorders
|
|
7208
7309
|
? { separatorBorder: 'transparent' }
|
|
7209
7310
|
: undefined,
|
|
7210
|
-
parentElement:
|
|
7311
|
+
parentElement: parentElement,
|
|
7211
7312
|
disableAutoResizing: options.disableAutoResizing,
|
|
7212
7313
|
locked: options.locked,
|
|
7213
7314
|
margin: options.gap,
|
|
7315
|
+
className: options.className,
|
|
7214
7316
|
});
|
|
7215
7317
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7216
7318
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7246,10 +7348,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7246
7348
|
this._onDidActiveGroupChange = new Emitter();
|
|
7247
7349
|
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7248
7350
|
this._moving = false;
|
|
7249
|
-
const gready = document.createElement('div');
|
|
7250
|
-
gready.className = 'dv-overlay-render-container';
|
|
7251
|
-
this.gridview.element.appendChild(gready);
|
|
7252
|
-
this.overlayRenderContainer = new OverlayRenderContainer(
|
|
7351
|
+
// const gready = document.createElement('div');
|
|
7352
|
+
// gready.className = 'dv-overlay-render-container';
|
|
7353
|
+
// this.gridview.element.appendChild(gready);
|
|
7354
|
+
this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
|
|
7253
7355
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7254
7356
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7255
7357
|
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
@@ -7415,7 +7517,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7415
7517
|
}
|
|
7416
7518
|
const gready = document.createElement('div');
|
|
7417
7519
|
gready.className = 'dv-overlay-render-container';
|
|
7418
|
-
const overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7520
|
+
const overlayRenderContainer = new OverlayRenderContainer(gready, this);
|
|
7419
7521
|
const referenceGroup = itemToPopout instanceof DockviewPanel
|
|
7420
7522
|
? itemToPopout.group
|
|
7421
7523
|
: itemToPopout;
|
|
@@ -7564,7 +7666,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7564
7666
|
}
|
|
7565
7667
|
}
|
|
7566
7668
|
}
|
|
7567
|
-
group.model.location = { type: 'floating' };
|
|
7568
7669
|
function getAnchoredBox() {
|
|
7569
7670
|
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7570
7671
|
const result = {};
|
|
@@ -7631,10 +7732,14 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7631
7732
|
: false,
|
|
7632
7733
|
});
|
|
7633
7734
|
const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
|
|
7634
|
-
const disposable =
|
|
7735
|
+
const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
|
|
7736
|
+
if (event.isActive) {
|
|
7737
|
+
overlay.bringToFront();
|
|
7738
|
+
}
|
|
7739
|
+
}), watchElementResize(group.element, (entry) => {
|
|
7635
7740
|
const { width, height } = entry.contentRect;
|
|
7636
7741
|
group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
|
|
7637
|
-
});
|
|
7742
|
+
}));
|
|
7638
7743
|
floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
|
|
7639
7744
|
// this is either a resize or a move
|
|
7640
7745
|
// to inform the panels .layout(...) the group with it's current size
|
|
@@ -7650,12 +7755,13 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7650
7755
|
}), {
|
|
7651
7756
|
dispose: () => {
|
|
7652
7757
|
disposable.dispose();
|
|
7653
|
-
group.model.location = { type: 'grid' };
|
|
7654
7758
|
remove(this._floatingGroups, floatingGroupPanel);
|
|
7759
|
+
group.model.location = { type: 'grid' };
|
|
7655
7760
|
this.updateWatermark();
|
|
7656
7761
|
},
|
|
7657
7762
|
});
|
|
7658
7763
|
this._floatingGroups.push(floatingGroupPanel);
|
|
7764
|
+
group.model.location = { type: 'floating' };
|
|
7659
7765
|
if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
|
|
7660
7766
|
this.doSetGroupAndPanelActive(group);
|
|
7661
7767
|
}
|
|
@@ -8237,6 +8343,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8237
8343
|
this._groups.delete(group.id);
|
|
8238
8344
|
this._onDidRemoveGroup.fire(group);
|
|
8239
8345
|
}
|
|
8346
|
+
remove(this._popoutGroups, selectedGroup);
|
|
8240
8347
|
const removedGroup = selectedGroup.disposable.dispose();
|
|
8241
8348
|
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
|
|
8242
8349
|
this.doAddGroup(removedGroup, [0]);
|
|
@@ -8348,6 +8455,31 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8348
8455
|
return;
|
|
8349
8456
|
}
|
|
8350
8457
|
}
|
|
8458
|
+
if (sourceGroup.api.location.type === 'popout') {
|
|
8459
|
+
/**
|
|
8460
|
+
* the source group is a popout group with a single panel
|
|
8461
|
+
*
|
|
8462
|
+
* 1. remove the panel from the group without triggering any events
|
|
8463
|
+
* 2. remove the popout group
|
|
8464
|
+
* 3. create a new group at the requested location and add that panel
|
|
8465
|
+
*/
|
|
8466
|
+
const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
|
|
8467
|
+
const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
|
|
8468
|
+
skipSetActive: true,
|
|
8469
|
+
skipSetActiveGroup: true,
|
|
8470
|
+
}));
|
|
8471
|
+
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
8472
|
+
const newGroup = this.createGroupAtLocation(targetLocation);
|
|
8473
|
+
this.movingLock(() => newGroup.model.openPanel(removedPanel, {
|
|
8474
|
+
skipSetActive: true,
|
|
8475
|
+
}));
|
|
8476
|
+
this.doSetGroupAndPanelActive(newGroup);
|
|
8477
|
+
this._onDidMovePanel.fire({
|
|
8478
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8479
|
+
from: sourceGroup,
|
|
8480
|
+
});
|
|
8481
|
+
return;
|
|
8482
|
+
}
|
|
8351
8483
|
// source group will become empty so delete the group
|
|
8352
8484
|
const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
|
|
8353
8485
|
skipActive: true,
|
|
@@ -8579,13 +8711,14 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8579
8711
|
set deserializer(value) {
|
|
8580
8712
|
this._deserializer = value;
|
|
8581
8713
|
}
|
|
8582
|
-
constructor(options) {
|
|
8714
|
+
constructor(parentElement, options) {
|
|
8583
8715
|
super({
|
|
8584
|
-
parentElement:
|
|
8716
|
+
parentElement: parentElement,
|
|
8585
8717
|
proportionalLayout: options.proportionalLayout,
|
|
8586
8718
|
orientation: options.orientation,
|
|
8587
8719
|
styles: options.styles,
|
|
8588
8720
|
disableAutoResizing: options.disableAutoResizing,
|
|
8721
|
+
className: options.className,
|
|
8589
8722
|
});
|
|
8590
8723
|
this._onDidLayoutfromJSON = new Emitter();
|
|
8591
8724
|
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
@@ -8877,8 +9010,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8877
9010
|
? this.splitview.size
|
|
8878
9011
|
: this.splitview.orthogonalSize;
|
|
8879
9012
|
}
|
|
8880
|
-
constructor(options) {
|
|
8881
|
-
super(
|
|
9013
|
+
constructor(parentElement, options) {
|
|
9014
|
+
super(parentElement, options.disableAutoResizing);
|
|
8882
9015
|
this._splitviewChangeDisposable = new MutableDisposable();
|
|
8883
9016
|
this._panels = new Map();
|
|
8884
9017
|
this._onDidLayoutfromJSON = new Emitter();
|
|
@@ -8889,6 +9022,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8889
9022
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
8890
9023
|
this._onDidLayoutChange = new Emitter();
|
|
8891
9024
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
9025
|
+
if (typeof options.className === 'string') {
|
|
9026
|
+
this.element.classList.add(options.className);
|
|
9027
|
+
}
|
|
8892
9028
|
this._options = options;
|
|
8893
9029
|
if (!options.components) {
|
|
8894
9030
|
options.components = {};
|
|
@@ -9201,8 +9337,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9201
9337
|
get options() {
|
|
9202
9338
|
return this._options;
|
|
9203
9339
|
}
|
|
9204
|
-
constructor(options) {
|
|
9205
|
-
super(
|
|
9340
|
+
constructor(parentElement, options) {
|
|
9341
|
+
super(parentElement, options.disableAutoResizing);
|
|
9206
9342
|
this._id = nextLayoutId.next();
|
|
9207
9343
|
this._disposable = new MutableDisposable();
|
|
9208
9344
|
this._viewDisposables = new Map();
|
|
@@ -9216,6 +9352,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9216
9352
|
this.onDidAddView = this._onDidAddView.event;
|
|
9217
9353
|
this._onDidRemoveView = new Emitter();
|
|
9218
9354
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
9355
|
+
if (typeof options.className === 'string') {
|
|
9356
|
+
this.element.classList.add(options.className);
|
|
9357
|
+
}
|
|
9219
9358
|
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
|
|
9220
9359
|
this._options = options;
|
|
9221
9360
|
if (!options.components) {
|
|
@@ -9531,6 +9670,23 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9531
9670
|
}
|
|
9532
9671
|
}
|
|
9533
9672
|
|
|
9673
|
+
function createDockview(element, options) {
|
|
9674
|
+
const component = new DockviewComponent(element, options);
|
|
9675
|
+
return component.api;
|
|
9676
|
+
}
|
|
9677
|
+
function createSplitview(element, options) {
|
|
9678
|
+
const component = new SplitviewComponent(element, options);
|
|
9679
|
+
return new SplitviewApi(component);
|
|
9680
|
+
}
|
|
9681
|
+
function createGridview(element, options) {
|
|
9682
|
+
const component = new GridviewComponent(element, options);
|
|
9683
|
+
return new GridviewApi(component);
|
|
9684
|
+
}
|
|
9685
|
+
function createPaneview(element, options) {
|
|
9686
|
+
const component = new PaneviewComponent(element, options);
|
|
9687
|
+
return new PaneviewApi(component);
|
|
9688
|
+
}
|
|
9689
|
+
|
|
9534
9690
|
exports.BaseGrid = BaseGrid;
|
|
9535
9691
|
exports.ContentContainer = ContentContainer;
|
|
9536
9692
|
exports.DefaultDockviewDeserialzier = DefaultDockviewDeserialzier;
|
|
@@ -9567,6 +9723,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9567
9723
|
exports.Tab = Tab;
|
|
9568
9724
|
exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
|
|
9569
9725
|
exports.createComponent = createComponent;
|
|
9726
|
+
exports.createDockview = createDockview;
|
|
9727
|
+
exports.createGridview = createGridview;
|
|
9728
|
+
exports.createPaneview = createPaneview;
|
|
9729
|
+
exports.createSplitview = createSplitview;
|
|
9570
9730
|
exports.directionToPosition = directionToPosition;
|
|
9571
9731
|
exports.getDirectionOrientation = getDirectionOrientation;
|
|
9572
9732
|
exports.getGridLocation = getGridLocation;
|