dockview-core 1.17.2 → 2.1.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 +3 -3
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +10 -8
- package/dist/cjs/api/dockviewGroupPanelApi.js +1 -0
- package/dist/cjs/api/dockviewPanelApi.d.ts +6 -14
- package/dist/cjs/api/dockviewPanelApi.js +5 -3
- package/dist/cjs/dnd/abstractDragHandler.js +1 -1
- package/dist/cjs/dnd/dnd.d.ts +2 -2
- package/dist/cjs/dnd/droptarget.js +4 -4
- package/dist/cjs/dockview/components/panel/content.d.ts +2 -2
- package/dist/cjs/dockview/components/panel/content.js +3 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
- package/dist/cjs/dockview/components/tab/tab.js +4 -4
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -9
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -2
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -4
- package/dist/cjs/dockview/components/watermark/watermark.js +2 -34
- package/dist/cjs/dockview/dockviewComponent.d.ts +33 -16
- package/dist/cjs/dockview/dockviewComponent.js +103 -38
- package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -3
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +10 -10
- package/dist/cjs/dockview/dockviewPanel.d.ts +4 -4
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -1
- package/dist/cjs/dockview/options.d.ts +12 -0
- package/dist/cjs/dockview/options.js +1 -0
- package/dist/cjs/dom.d.ts +11 -1
- package/dist/cjs/dom.js +19 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/cjs/gridview/baseComponentGridview.js +8 -8
- package/dist/cjs/gridview/basePanelView.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.js +1 -1
- package/dist/cjs/gridview/gridview.d.ts +9 -1
- package/dist/cjs/gridview/gridview.js +51 -7
- package/dist/cjs/gridview/gridviewPanel.d.ts +4 -0
- package/dist/cjs/gridview/gridviewPanel.js +60 -32
- package/dist/cjs/gridview/leafNode.d.ts +1 -1
- package/dist/cjs/index.d.ts +8 -9
- package/dist/cjs/index.js +14 -7
- package/dist/cjs/overlay/overlay.d.ts +6 -3
- package/dist/cjs/overlay/overlay.js +15 -0
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +5 -3
- package/dist/cjs/paneview/paneview.d.ts +3 -3
- package/dist/cjs/paneview/paneview.js +3 -3
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -2
- package/dist/cjs/paneview/paneviewPanel.d.ts +2 -2
- package/dist/cjs/paneview/paneviewPanel.js +3 -3
- package/dist/cjs/popoutWindow.js +23 -16
- package/dist/cjs/splitview/splitview.d.ts +6 -6
- package/dist/cjs/splitview/splitview.js +18 -17
- package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
- package/dist/cjs/splitview/viewItem.d.ts +1 -1
- package/dist/cjs/svg.js +1 -1
- package/dist/dockview-core.amd.js +346 -210
- 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 +345 -209
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +346 -210
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +347 -209
- 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 +346 -210
- 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 +345 -209
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +3 -3
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +10 -8
- package/dist/esm/api/dockviewGroupPanelApi.js +1 -0
- package/dist/esm/api/dockviewPanelApi.d.ts +6 -14
- package/dist/esm/api/dockviewPanelApi.js +5 -3
- package/dist/esm/dnd/abstractDragHandler.js +1 -1
- package/dist/esm/dnd/dnd.d.ts +2 -2
- package/dist/esm/dnd/droptarget.js +4 -4
- package/dist/esm/dockview/components/panel/content.d.ts +2 -2
- package/dist/esm/dockview/components/panel/content.js +4 -2
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
- package/dist/esm/dockview/components/tab/tab.js +4 -4
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -9
- package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -2
- package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -4
- package/dist/esm/dockview/components/watermark/watermark.js +2 -34
- package/dist/esm/dockview/dockviewComponent.d.ts +33 -16
- package/dist/esm/dockview/dockviewComponent.js +102 -37
- package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -3
- package/dist/esm/dockview/dockviewGroupPanelModel.js +10 -10
- package/dist/esm/dockview/dockviewPanel.d.ts +4 -4
- package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -1
- package/dist/esm/dockview/options.d.ts +12 -0
- package/dist/esm/dockview/options.js +1 -0
- package/dist/esm/dom.d.ts +11 -1
- package/dist/esm/dom.js +14 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/esm/gridview/baseComponentGridview.js +8 -4
- package/dist/esm/gridview/basePanelView.d.ts +1 -1
- package/dist/esm/gridview/branchNode.d.ts +1 -1
- package/dist/esm/gridview/branchNode.js +1 -1
- package/dist/esm/gridview/gridview.d.ts +9 -1
- package/dist/esm/gridview/gridview.js +51 -7
- package/dist/esm/gridview/gridviewPanel.d.ts +4 -0
- package/dist/esm/gridview/gridviewPanel.js +40 -12
- package/dist/esm/gridview/leafNode.d.ts +1 -1
- package/dist/esm/index.d.ts +8 -9
- package/dist/esm/index.js +5 -6
- package/dist/esm/overlay/overlay.d.ts +6 -3
- package/dist/esm/overlay/overlay.js +11 -0
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +5 -3
- package/dist/esm/paneview/paneview.d.ts +3 -3
- package/dist/esm/paneview/paneview.js +3 -3
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -2
- package/dist/esm/paneview/paneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/paneviewPanel.js +3 -3
- package/dist/esm/popoutWindow.js +24 -17
- package/dist/esm/splitview/splitview.d.ts +6 -6
- package/dist/esm/splitview/splitview.js +18 -17
- package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
- package/dist/esm/splitview/viewItem.d.ts +1 -1
- package/dist/esm/svg.js +1 -1
- package/dist/styles/dockview.css +111 -151
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 2.1.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -324,31 +324,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
|
|
327
|
-
function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
|
|
328
|
-
const Component = typeof componentName === 'string'
|
|
329
|
-
? components[componentName]
|
|
330
|
-
: undefined;
|
|
331
|
-
const FrameworkComponent = typeof componentName === 'string'
|
|
332
|
-
? frameworkComponents[componentName]
|
|
333
|
-
: undefined;
|
|
334
|
-
if (Component && FrameworkComponent) {
|
|
335
|
-
throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
|
|
336
|
-
}
|
|
337
|
-
if (FrameworkComponent) {
|
|
338
|
-
if (!createFrameworkComponent) {
|
|
339
|
-
throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
|
|
340
|
-
}
|
|
341
|
-
return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
|
|
342
|
-
}
|
|
343
|
-
if (!Component) {
|
|
344
|
-
if (fallback) {
|
|
345
|
-
return fallback();
|
|
346
|
-
}
|
|
347
|
-
throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
|
|
348
|
-
}
|
|
349
|
-
return new Component(id, componentName);
|
|
350
|
-
}
|
|
351
|
-
|
|
352
327
|
function watchElementResize(element, cb) {
|
|
353
328
|
const observer = new ResizeObserver((entires) => {
|
|
354
329
|
/**
|
|
@@ -817,10 +792,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
817
792
|
const tmp = this.size;
|
|
818
793
|
this.size = this.orthogonalSize;
|
|
819
794
|
this.orthogonalSize = tmp;
|
|
820
|
-
removeClasses(this.element, 'horizontal', 'vertical');
|
|
795
|
+
removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
|
|
821
796
|
this.element.classList.add(this.orientation == exports.Orientation.HORIZONTAL
|
|
822
|
-
? 'horizontal'
|
|
823
|
-
: 'vertical');
|
|
797
|
+
? 'dv-horizontal'
|
|
798
|
+
: 'dv-vertical');
|
|
824
799
|
}
|
|
825
800
|
get minimumSize() {
|
|
826
801
|
return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
|
|
@@ -998,11 +973,11 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
998
973
|
}
|
|
999
974
|
style(styles) {
|
|
1000
975
|
if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
|
|
1001
|
-
removeClasses(this.element, 'separator-border');
|
|
976
|
+
removeClasses(this.element, 'dv-separator-border');
|
|
1002
977
|
this.element.style.removeProperty('--dv-separator-border');
|
|
1003
978
|
}
|
|
1004
979
|
else {
|
|
1005
|
-
addClasses(this.element, 'separator-border');
|
|
980
|
+
addClasses(this.element, 'dv-separator-border');
|
|
1006
981
|
if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
|
|
1007
982
|
this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
|
|
1008
983
|
}
|
|
@@ -1072,7 +1047,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1072
1047
|
}
|
|
1073
1048
|
addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
|
|
1074
1049
|
const container = document.createElement('div');
|
|
1075
|
-
container.className = 'view';
|
|
1050
|
+
container.className = 'dv-view';
|
|
1076
1051
|
container.appendChild(view.element);
|
|
1077
1052
|
let viewSize;
|
|
1078
1053
|
if (typeof size === 'number') {
|
|
@@ -1104,7 +1079,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1104
1079
|
if (this.viewItems.length > 1) {
|
|
1105
1080
|
//add sash
|
|
1106
1081
|
const sash = document.createElement('div');
|
|
1107
|
-
sash.className = 'sash';
|
|
1082
|
+
sash.className = 'dv-sash';
|
|
1108
1083
|
const onPointerStart = (event) => {
|
|
1109
1084
|
for (const item of this.viewItems) {
|
|
1110
1085
|
item.enabled = false;
|
|
@@ -1363,7 +1338,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1363
1338
|
const offset = i === 0 || visiblePanelsBeforeThisView === 0
|
|
1364
1339
|
? 0
|
|
1365
1340
|
: viewLeftOffsets[i - 1] +
|
|
1366
|
-
(visiblePanelsBeforeThisView / sashCount) *
|
|
1341
|
+
(visiblePanelsBeforeThisView / sashCount) *
|
|
1342
|
+
marginReducedSize;
|
|
1367
1343
|
if (i < this.viewItems.length - 1) {
|
|
1368
1344
|
// calculate sash position
|
|
1369
1345
|
const newSize = view.visible
|
|
@@ -1474,27 +1450,27 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1474
1450
|
}
|
|
1475
1451
|
}
|
|
1476
1452
|
updateSash(sash, state) {
|
|
1477
|
-
toggleClass(sash.container, 'disabled', state === exports.SashState.DISABLED);
|
|
1478
|
-
toggleClass(sash.container, 'enabled', state === exports.SashState.ENABLED);
|
|
1479
|
-
toggleClass(sash.container, 'maximum', state === exports.SashState.MAXIMUM);
|
|
1480
|
-
toggleClass(sash.container, 'minimum', state === exports.SashState.MINIMUM);
|
|
1453
|
+
toggleClass(sash.container, 'dv-disabled', state === exports.SashState.DISABLED);
|
|
1454
|
+
toggleClass(sash.container, 'dv-enabled', state === exports.SashState.ENABLED);
|
|
1455
|
+
toggleClass(sash.container, 'dv-maximum', state === exports.SashState.MAXIMUM);
|
|
1456
|
+
toggleClass(sash.container, 'dv-minimum', state === exports.SashState.MINIMUM);
|
|
1481
1457
|
}
|
|
1482
1458
|
createViewContainer() {
|
|
1483
1459
|
const element = document.createElement('div');
|
|
1484
|
-
element.className = 'view-container';
|
|
1460
|
+
element.className = 'dv-view-container';
|
|
1485
1461
|
return element;
|
|
1486
1462
|
}
|
|
1487
1463
|
createSashContainer() {
|
|
1488
1464
|
const element = document.createElement('div');
|
|
1489
|
-
element.className = 'sash-container';
|
|
1465
|
+
element.className = 'dv-sash-container';
|
|
1490
1466
|
return element;
|
|
1491
1467
|
}
|
|
1492
1468
|
createContainer() {
|
|
1493
1469
|
const element = document.createElement('div');
|
|
1494
1470
|
const orientationClassname = this._orientation === exports.Orientation.HORIZONTAL
|
|
1495
|
-
? 'horizontal'
|
|
1496
|
-
: 'vertical';
|
|
1497
|
-
element.className = `split-view-container ${orientationClassname}`;
|
|
1471
|
+
? 'dv-horizontal'
|
|
1472
|
+
: 'dv-vertical';
|
|
1473
|
+
element.className = `dv-split-view-container ${orientationClassname}`;
|
|
1498
1474
|
return element;
|
|
1499
1475
|
}
|
|
1500
1476
|
dispose() {
|
|
@@ -1545,7 +1521,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1545
1521
|
this.onDidChange = this._onDidChange.event;
|
|
1546
1522
|
this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
|
|
1547
1523
|
this.element = document.createElement('div');
|
|
1548
|
-
this.element.className = 'pane-container';
|
|
1524
|
+
this.element.className = 'dv-pane-container';
|
|
1549
1525
|
container.appendChild(this.element);
|
|
1550
1526
|
this.splitview = new Splitview(this.element, {
|
|
1551
1527
|
orientation: this._orientation,
|
|
@@ -1637,10 +1613,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1637
1613
|
clearTimeout(this.animationTimer);
|
|
1638
1614
|
this.animationTimer = undefined;
|
|
1639
1615
|
}
|
|
1640
|
-
addClasses(this.element, 'animated');
|
|
1616
|
+
addClasses(this.element, 'dv-animated');
|
|
1641
1617
|
this.animationTimer = setTimeout(() => {
|
|
1642
1618
|
this.animationTimer = undefined;
|
|
1643
|
-
removeClasses(this.element, 'animated');
|
|
1619
|
+
removeClasses(this.element, 'dv-animated');
|
|
1644
1620
|
}, 200);
|
|
1645
1621
|
}
|
|
1646
1622
|
dispose() {
|
|
@@ -1865,7 +1841,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
1865
1841
|
this._orthogonalSize = orthogonalSize;
|
|
1866
1842
|
this._size = size;
|
|
1867
1843
|
this.element = document.createElement('div');
|
|
1868
|
-
this.element.className = 'branch-node';
|
|
1844
|
+
this.element.className = 'dv-branch-node';
|
|
1869
1845
|
if (!childDescriptors) {
|
|
1870
1846
|
this.splitview = new Splitview(this.element, {
|
|
1871
1847
|
orientation: this.orientation,
|
|
@@ -2076,7 +2052,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2076
2052
|
if (!parentElement) {
|
|
2077
2053
|
throw new Error('Invalid grid element');
|
|
2078
2054
|
}
|
|
2079
|
-
if (/\
|
|
2055
|
+
if (/\bdv-grid-view\b/.test(parentElement.className)) {
|
|
2080
2056
|
return [];
|
|
2081
2057
|
}
|
|
2082
2058
|
const index = indexInParent(parentElement);
|
|
@@ -2213,6 +2189,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2213
2189
|
if (this.hasMaximizedView()) {
|
|
2214
2190
|
this.exitMaximizedView();
|
|
2215
2191
|
}
|
|
2192
|
+
serializeBranchNode(this.getView(), this.orientation);
|
|
2216
2193
|
const hiddenOnMaximize = [];
|
|
2217
2194
|
function hideAllViewsBut(parent, exclude) {
|
|
2218
2195
|
for (let i = 0; i < parent.children.length; i++) {
|
|
@@ -2234,7 +2211,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2234
2211
|
}
|
|
2235
2212
|
hideAllViewsBut(this.root, node);
|
|
2236
2213
|
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2237
|
-
this._onDidMaximizedNodeChange.fire(
|
|
2214
|
+
this._onDidMaximizedNodeChange.fire({
|
|
2215
|
+
view: node.view,
|
|
2216
|
+
isMaximized: true,
|
|
2217
|
+
});
|
|
2238
2218
|
}
|
|
2239
2219
|
exitMaximizedView() {
|
|
2240
2220
|
if (!this._maximizedNode) {
|
|
@@ -2255,24 +2235,51 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2255
2235
|
}
|
|
2256
2236
|
}
|
|
2257
2237
|
showViewsInReverseOrder(this.root);
|
|
2238
|
+
const tmp = this._maximizedNode.leaf;
|
|
2258
2239
|
this._maximizedNode = undefined;
|
|
2259
|
-
this._onDidMaximizedNodeChange.fire(
|
|
2240
|
+
this._onDidMaximizedNodeChange.fire({
|
|
2241
|
+
view: tmp.view,
|
|
2242
|
+
isMaximized: false,
|
|
2243
|
+
});
|
|
2260
2244
|
}
|
|
2261
2245
|
serialize() {
|
|
2246
|
+
const maximizedView = this.maximizedView();
|
|
2247
|
+
let maxmizedViewLocation;
|
|
2248
|
+
if (maximizedView) {
|
|
2249
|
+
/**
|
|
2250
|
+
* The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
|
|
2251
|
+
* which is represented as a branch of indices
|
|
2252
|
+
*/
|
|
2253
|
+
maxmizedViewLocation = getGridLocation(maximizedView.element);
|
|
2254
|
+
}
|
|
2262
2255
|
if (this.hasMaximizedView()) {
|
|
2263
2256
|
/**
|
|
2264
|
-
*
|
|
2265
|
-
*
|
|
2257
|
+
* the saved layout cannot be in its maxmized state otherwise all of the underlying
|
|
2258
|
+
* view dimensions will be wrong
|
|
2259
|
+
*
|
|
2260
|
+
* To counteract this we temporaily remove the maximized view to compute the serialized output
|
|
2261
|
+
* of the grid before adding back the maxmized view as to not alter the layout from the users
|
|
2262
|
+
* perspective when `.toJSON()` is called
|
|
2266
2263
|
*/
|
|
2267
2264
|
this.exitMaximizedView();
|
|
2268
2265
|
}
|
|
2269
2266
|
const root = serializeBranchNode(this.getView(), this.orientation);
|
|
2270
|
-
|
|
2267
|
+
const resullt = {
|
|
2271
2268
|
root,
|
|
2272
2269
|
width: this.width,
|
|
2273
2270
|
height: this.height,
|
|
2274
2271
|
orientation: this.orientation,
|
|
2275
2272
|
};
|
|
2273
|
+
if (maxmizedViewLocation) {
|
|
2274
|
+
resullt.maximizedNode = {
|
|
2275
|
+
location: maxmizedViewLocation,
|
|
2276
|
+
};
|
|
2277
|
+
}
|
|
2278
|
+
if (maximizedView) {
|
|
2279
|
+
// replace any maximzied view that was removed for serialization purposes
|
|
2280
|
+
this.maximizeView(maximizedView);
|
|
2281
|
+
}
|
|
2282
|
+
return resullt;
|
|
2276
2283
|
}
|
|
2277
2284
|
dispose() {
|
|
2278
2285
|
this.disposable.dispose();
|
|
@@ -2291,6 +2298,19 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2291
2298
|
const orientation = json.orientation;
|
|
2292
2299
|
const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
|
|
2293
2300
|
this._deserialize(json.root, orientation, deserializer, height);
|
|
2301
|
+
/**
|
|
2302
|
+
* The deserialied layout must be positioned through this.layout(...)
|
|
2303
|
+
* before any maximizedNode can be positioned
|
|
2304
|
+
*/
|
|
2305
|
+
this.layout(json.width, json.height);
|
|
2306
|
+
if (json.maximizedNode) {
|
|
2307
|
+
const location = json.maximizedNode.location;
|
|
2308
|
+
const [_, node] = this.getNode(location);
|
|
2309
|
+
if (!(node instanceof LeafNode)) {
|
|
2310
|
+
return;
|
|
2311
|
+
}
|
|
2312
|
+
this.maximizeView(node.view);
|
|
2313
|
+
}
|
|
2294
2314
|
}
|
|
2295
2315
|
_deserialize(root, orientation, deserializer, orthogonalSize) {
|
|
2296
2316
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
@@ -2424,7 +2444,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2424
2444
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
2425
2445
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2426
2446
|
this.element = document.createElement('div');
|
|
2427
|
-
this.element.className = 'grid-view';
|
|
2447
|
+
this.element.className = 'dv-grid-view';
|
|
2428
2448
|
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
2429
2449
|
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
2430
2450
|
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
@@ -2715,6 +2735,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2715
2735
|
this.onDidRemove = this._onDidRemove.event;
|
|
2716
2736
|
this._onDidAdd = new Emitter();
|
|
2717
2737
|
this.onDidAdd = this._onDidAdd.event;
|
|
2738
|
+
this._onDidMaximizedChange = new Emitter();
|
|
2739
|
+
this.onDidMaximizedChange = this._onDidMaximizedChange.event;
|
|
2718
2740
|
this._onDidActiveChange = new Emitter();
|
|
2719
2741
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2720
2742
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
@@ -2730,7 +2752,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2730
2752
|
this.gridview.locked = !!options.locked;
|
|
2731
2753
|
this.element.appendChild(this.gridview.element);
|
|
2732
2754
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2733
|
-
this.addDisposables(this.gridview.
|
|
2755
|
+
this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
|
|
2756
|
+
this._onDidMaximizedChange.fire({
|
|
2757
|
+
panel: event.view,
|
|
2758
|
+
isMaximized: event.isMaximized,
|
|
2759
|
+
});
|
|
2760
|
+
}), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2734
2761
|
this.layout(this.width, this.height, true);
|
|
2735
2762
|
}), exports.DockviewDisposable.from(() => {
|
|
2736
2763
|
var _a;
|
|
@@ -2780,9 +2807,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2780
2807
|
hasMaximizedGroup() {
|
|
2781
2808
|
return this.gridview.hasMaximizedView();
|
|
2782
2809
|
}
|
|
2783
|
-
get onDidMaximizedGroupChange() {
|
|
2784
|
-
return this.gridview.onDidMaximizedNodeChange;
|
|
2785
|
-
}
|
|
2786
2810
|
doAddGroup(group, location = [0], size) {
|
|
2787
2811
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
|
|
2788
2812
|
this._onDidAdd.fire(group);
|
|
@@ -3646,7 +3670,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3646
3670
|
* dnd logic. You can see the code at
|
|
3647
3671
|
* https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
|
|
3648
3672
|
*/
|
|
3649
|
-
event.dataTransfer.setData('text/plain', '
|
|
3673
|
+
event.dataTransfer.setData('text/plain', '');
|
|
3650
3674
|
}
|
|
3651
3675
|
}
|
|
3652
3676
|
}), addDisposableListener(this.el, 'dragend', () => {
|
|
@@ -3820,12 +3844,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3820
3844
|
this.markAsUsed(e);
|
|
3821
3845
|
if (!this.targetElement) {
|
|
3822
3846
|
this.targetElement = document.createElement('div');
|
|
3823
|
-
this.targetElement.className = 'drop-target-dropzone';
|
|
3847
|
+
this.targetElement.className = 'dv-drop-target-dropzone';
|
|
3824
3848
|
this.overlayElement = document.createElement('div');
|
|
3825
|
-
this.overlayElement.className = 'drop-target-selection';
|
|
3849
|
+
this.overlayElement.className = 'dv-drop-target-selection';
|
|
3826
3850
|
this._state = 'center';
|
|
3827
3851
|
this.targetElement.appendChild(this.overlayElement);
|
|
3828
|
-
this.element.classList.add('drop-target');
|
|
3852
|
+
this.element.classList.add('dv-drop-target');
|
|
3829
3853
|
this.element.append(this.targetElement);
|
|
3830
3854
|
}
|
|
3831
3855
|
this.toggleClasses(quadrant, width, height);
|
|
@@ -3963,7 +3987,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
3963
3987
|
this.element.removeChild(this.targetElement);
|
|
3964
3988
|
this.targetElement = undefined;
|
|
3965
3989
|
this.overlayElement = undefined;
|
|
3966
|
-
this.element.classList.remove('drop-target');
|
|
3990
|
+
this.element.classList.remove('dv-drop-target');
|
|
3967
3991
|
}
|
|
3968
3992
|
}
|
|
3969
3993
|
}
|
|
@@ -4300,7 +4324,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4300
4324
|
this._headerVisible = isHeaderVisible;
|
|
4301
4325
|
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
4302
4326
|
this._orientation = orientation;
|
|
4303
|
-
this.element.classList.add('pane');
|
|
4327
|
+
this.element.classList.add('dv-pane');
|
|
4304
4328
|
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
4305
4329
|
const { isVisible } = event;
|
|
4306
4330
|
const { accessor } = this._params;
|
|
@@ -4397,14 +4421,14 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4397
4421
|
renderOnce() {
|
|
4398
4422
|
this.header = document.createElement('div');
|
|
4399
4423
|
this.header.tabIndex = 0;
|
|
4400
|
-
this.header.className = 'pane-header';
|
|
4424
|
+
this.header.className = 'dv-pane-header';
|
|
4401
4425
|
this.header.style.height = `${this.headerSize}px`;
|
|
4402
4426
|
this.header.style.lineHeight = `${this.headerSize}px`;
|
|
4403
4427
|
this.header.style.minHeight = `${this.headerSize}px`;
|
|
4404
4428
|
this.header.style.maxHeight = `${this.headerSize}px`;
|
|
4405
4429
|
this.element.appendChild(this.header);
|
|
4406
4430
|
this.body = document.createElement('div');
|
|
4407
|
-
this.body.className = 'pane-body';
|
|
4431
|
+
this.body.className = 'dv-pane-body';
|
|
4408
4432
|
this.element.appendChild(this.body);
|
|
4409
4433
|
}
|
|
4410
4434
|
// TODO slightly hacky by-pass of the component to create a body and header component
|
|
@@ -4525,7 +4549,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4525
4549
|
this._onDidBlur = new Emitter();
|
|
4526
4550
|
this.onDidBlur = this._onDidBlur.event;
|
|
4527
4551
|
this._element = document.createElement('div');
|
|
4528
|
-
this._element.className = 'content-container';
|
|
4552
|
+
this._element.className = 'dv-content-container';
|
|
4529
4553
|
this._element.tabIndex = -1;
|
|
4530
4554
|
this.addDisposables(this._onDidFocus, this._onDidBlur);
|
|
4531
4555
|
this.dropTarget = new Droptarget(this.element, {
|
|
@@ -4598,6 +4622,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4598
4622
|
referenceContainer: this,
|
|
4599
4623
|
});
|
|
4600
4624
|
break;
|
|
4625
|
+
default:
|
|
4626
|
+
throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
|
|
4601
4627
|
}
|
|
4602
4628
|
if (doRender) {
|
|
4603
4629
|
const focusTracker = trackFocus(container);
|
|
@@ -4664,10 +4690,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4664
4690
|
this._onDragStart = new Emitter();
|
|
4665
4691
|
this.onDragStart = this._onDragStart.event;
|
|
4666
4692
|
this._element = document.createElement('div');
|
|
4667
|
-
this._element.className = 'tab';
|
|
4693
|
+
this._element.className = 'dv-tab';
|
|
4668
4694
|
this._element.tabIndex = 0;
|
|
4669
4695
|
this._element.draggable = true;
|
|
4670
|
-
toggleClass(this.element, 'inactive-tab', true);
|
|
4696
|
+
toggleClass(this.element, 'dv-inactive-tab', true);
|
|
4671
4697
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
4672
4698
|
this.dropTarget = new Droptarget(this._element, {
|
|
4673
4699
|
acceptedTargetZones: ['center'],
|
|
@@ -4700,8 +4726,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4700
4726
|
}), this.dropTarget);
|
|
4701
4727
|
}
|
|
4702
4728
|
setActive(isActive) {
|
|
4703
|
-
toggleClass(this.element, 'active-tab', isActive);
|
|
4704
|
-
toggleClass(this.element, 'inactive-tab', !isActive);
|
|
4729
|
+
toggleClass(this.element, 'dv-active-tab', isActive);
|
|
4730
|
+
toggleClass(this.element, 'dv-inactive-tab', !isActive);
|
|
4705
4731
|
}
|
|
4706
4732
|
setContent(part) {
|
|
4707
4733
|
if (this.content) {
|
|
@@ -4789,8 +4815,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4789
4815
|
this._onDragStart = new Emitter();
|
|
4790
4816
|
this.onDragStart = this._onDragStart.event;
|
|
4791
4817
|
this._element = document.createElement('div');
|
|
4792
|
-
this._element.className = 'void-container';
|
|
4793
|
-
this._element.tabIndex = 0;
|
|
4818
|
+
this._element.className = 'dv-void-container';
|
|
4794
4819
|
this._element.draggable = true;
|
|
4795
4820
|
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
|
|
4796
4821
|
this.accessor.doSetGroupActive(this.group);
|
|
@@ -4909,16 +4934,16 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4909
4934
|
this._onWillShowOverlay = new Emitter();
|
|
4910
4935
|
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
4911
4936
|
this._element = document.createElement('div');
|
|
4912
|
-
this._element.className = 'tabs-and-actions-container';
|
|
4937
|
+
this._element.className = 'dv-tabs-and-actions-container';
|
|
4913
4938
|
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
4914
4939
|
this.rightActionsContainer = document.createElement('div');
|
|
4915
|
-
this.rightActionsContainer.className = 'right-actions-container';
|
|
4940
|
+
this.rightActionsContainer.className = 'dv-right-actions-container';
|
|
4916
4941
|
this.leftActionsContainer = document.createElement('div');
|
|
4917
|
-
this.leftActionsContainer.className = 'left-actions-container';
|
|
4942
|
+
this.leftActionsContainer.className = 'dv-left-actions-container';
|
|
4918
4943
|
this.preActionsContainer = document.createElement('div');
|
|
4919
|
-
this.preActionsContainer.className = 'pre-actions-container';
|
|
4944
|
+
this.preActionsContainer.className = 'dv-pre-actions-container';
|
|
4920
4945
|
this.tabContainer = document.createElement('div');
|
|
4921
|
-
this.tabContainer.className = 'tabs-container';
|
|
4946
|
+
this.tabContainer.className = 'dv-tabs-container';
|
|
4922
4947
|
this.voidContainer = new VoidContainer(this.accessor, this.group);
|
|
4923
4948
|
this._element.appendChild(this.preActionsContainer);
|
|
4924
4949
|
this._element.appendChild(this.tabContainer);
|
|
@@ -5007,14 +5032,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5007
5032
|
});
|
|
5008
5033
|
}
|
|
5009
5034
|
openPanel(panel, index = this.tabs.length) {
|
|
5010
|
-
var _a;
|
|
5011
5035
|
if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
|
|
5012
5036
|
return;
|
|
5013
5037
|
}
|
|
5014
5038
|
const tab = new Tab(panel, this.accessor, this.group);
|
|
5015
|
-
if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
|
|
5016
|
-
throw new Error('invalid header component');
|
|
5017
|
-
}
|
|
5018
5039
|
tab.setContent(panel.view.tab);
|
|
5019
5040
|
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
5020
5041
|
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
@@ -5108,6 +5129,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5108
5129
|
disableDnd: undefined,
|
|
5109
5130
|
gap: undefined,
|
|
5110
5131
|
className: undefined,
|
|
5132
|
+
noPanelsOverlay: undefined,
|
|
5111
5133
|
};
|
|
5112
5134
|
return Object.keys(properties);
|
|
5113
5135
|
})();
|
|
@@ -5204,7 +5226,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5204
5226
|
}
|
|
5205
5227
|
class DockviewGroupPanelModel extends CompositeDisposable {
|
|
5206
5228
|
get element() {
|
|
5207
|
-
throw new Error('not supported');
|
|
5229
|
+
throw new Error('dockview: not supported');
|
|
5208
5230
|
}
|
|
5209
5231
|
get activePanel() {
|
|
5210
5232
|
return this._activePanel;
|
|
@@ -5214,7 +5236,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5214
5236
|
}
|
|
5215
5237
|
set locked(value) {
|
|
5216
5238
|
this._locked = value;
|
|
5217
|
-
toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
|
|
5239
|
+
toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
|
|
5218
5240
|
}
|
|
5219
5241
|
get isActive() {
|
|
5220
5242
|
return this._isGroupActive;
|
|
@@ -5285,6 +5307,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5285
5307
|
this._locked = false;
|
|
5286
5308
|
this._location = { type: 'grid' };
|
|
5287
5309
|
this.mostRecentlyUsed = [];
|
|
5310
|
+
this._overwriteRenderContainer = null;
|
|
5288
5311
|
this._onDidChange = new Emitter();
|
|
5289
5312
|
this.onDidChange = this._onDidChange.event;
|
|
5290
5313
|
this._width = 0;
|
|
@@ -5315,8 +5338,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5315
5338
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
5316
5339
|
this._onUnhandledDragOverEvent = new Emitter();
|
|
5317
5340
|
this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
|
|
5318
|
-
this.
|
|
5319
|
-
toggleClass(this.container, 'groupview', true);
|
|
5341
|
+
toggleClass(this.container, 'dv-groupview', true);
|
|
5320
5342
|
this._api = new DockviewApi(this.accessor);
|
|
5321
5343
|
this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
|
|
5322
5344
|
this.contentContainer = new ContentContainer(this.accessor, this);
|
|
@@ -5548,7 +5570,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5548
5570
|
this.doClose(panel);
|
|
5549
5571
|
}
|
|
5550
5572
|
doClose(panel) {
|
|
5551
|
-
this.accessor.
|
|
5573
|
+
const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
|
|
5574
|
+
this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
|
|
5575
|
+
? { removeEmptyGroup: false }
|
|
5576
|
+
: undefined);
|
|
5552
5577
|
}
|
|
5553
5578
|
isPanelActive(panel) {
|
|
5554
5579
|
return this._activePanel === panel;
|
|
@@ -5561,8 +5586,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5561
5586
|
return;
|
|
5562
5587
|
}
|
|
5563
5588
|
this._isGroupActive = isGroupActive;
|
|
5564
|
-
toggleClass(this.container, 'active-group', isGroupActive);
|
|
5565
|
-
toggleClass(this.container, 'inactive-group', !isGroupActive);
|
|
5589
|
+
toggleClass(this.container, 'dv-active-group', isGroupActive);
|
|
5590
|
+
toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
|
|
5566
5591
|
this.tabsContainer.setActive(this.isActive);
|
|
5567
5592
|
if (!this._activePanel && this.panels.length > 0) {
|
|
5568
5593
|
this.doSetActivePanel(this.panels[0]);
|
|
@@ -5654,7 +5679,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5654
5679
|
}
|
|
5655
5680
|
updateContainer() {
|
|
5656
5681
|
var _a, _b;
|
|
5657
|
-
toggleClass(this.container, 'empty', this.isEmpty);
|
|
5658
5682
|
this.panels.forEach((panel) => panel.runEvents());
|
|
5659
5683
|
if (this.isEmpty && !this.watermark) {
|
|
5660
5684
|
const watermark = this.accessor.createWatermarkComponent();
|
|
@@ -5668,14 +5692,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5668
5692
|
this.accessor.doSetGroupActive(this.groupPanel);
|
|
5669
5693
|
}
|
|
5670
5694
|
});
|
|
5671
|
-
this.tabsContainer.hide();
|
|
5672
5695
|
this.contentContainer.element.appendChild(this.watermark.element);
|
|
5673
5696
|
}
|
|
5674
5697
|
if (!this.isEmpty && this.watermark) {
|
|
5675
5698
|
this.watermark.element.remove();
|
|
5676
5699
|
(_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
5677
5700
|
this.watermark = undefined;
|
|
5678
|
-
this.tabsContainer.show();
|
|
5679
5701
|
}
|
|
5680
5702
|
}
|
|
5681
5703
|
canDisplayOverlay(event, position, target) {
|
|
@@ -5795,6 +5817,34 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5795
5817
|
return this._snap;
|
|
5796
5818
|
}
|
|
5797
5819
|
get minimumWidth() {
|
|
5820
|
+
/**
|
|
5821
|
+
* defer to protected function to allow subclasses to override easily.
|
|
5822
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
5823
|
+
*/
|
|
5824
|
+
return this.__minimumWidth();
|
|
5825
|
+
}
|
|
5826
|
+
get minimumHeight() {
|
|
5827
|
+
/**
|
|
5828
|
+
* defer to protected function to allow subclasses to override easily.
|
|
5829
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
5830
|
+
*/
|
|
5831
|
+
return this.__minimumHeight();
|
|
5832
|
+
}
|
|
5833
|
+
get maximumHeight() {
|
|
5834
|
+
/**
|
|
5835
|
+
* defer to protected function to allow subclasses to override easily.
|
|
5836
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
5837
|
+
*/
|
|
5838
|
+
return this.__maximumHeight();
|
|
5839
|
+
}
|
|
5840
|
+
get maximumWidth() {
|
|
5841
|
+
/**
|
|
5842
|
+
* defer to protected function to allow subclasses to override easily.
|
|
5843
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
5844
|
+
*/
|
|
5845
|
+
return this.__maximumWidth();
|
|
5846
|
+
}
|
|
5847
|
+
__minimumWidth() {
|
|
5798
5848
|
const width = typeof this._minimumWidth === 'function'
|
|
5799
5849
|
? this._minimumWidth()
|
|
5800
5850
|
: this._minimumWidth;
|
|
@@ -5804,7 +5854,17 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5804
5854
|
}
|
|
5805
5855
|
return width;
|
|
5806
5856
|
}
|
|
5807
|
-
|
|
5857
|
+
__maximumWidth() {
|
|
5858
|
+
const width = typeof this._maximumWidth === 'function'
|
|
5859
|
+
? this._maximumWidth()
|
|
5860
|
+
: this._maximumWidth;
|
|
5861
|
+
if (width !== this._evaluatedMaximumWidth) {
|
|
5862
|
+
this._evaluatedMaximumWidth = width;
|
|
5863
|
+
this.updateConstraints();
|
|
5864
|
+
}
|
|
5865
|
+
return width;
|
|
5866
|
+
}
|
|
5867
|
+
__minimumHeight() {
|
|
5808
5868
|
const height = typeof this._minimumHeight === 'function'
|
|
5809
5869
|
? this._minimumHeight()
|
|
5810
5870
|
: this._minimumHeight;
|
|
@@ -5814,7 +5874,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5814
5874
|
}
|
|
5815
5875
|
return height;
|
|
5816
5876
|
}
|
|
5817
|
-
|
|
5877
|
+
__maximumHeight() {
|
|
5818
5878
|
const height = typeof this._maximumHeight === 'function'
|
|
5819
5879
|
? this._maximumHeight()
|
|
5820
5880
|
: this._maximumHeight;
|
|
@@ -5824,16 +5884,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5824
5884
|
}
|
|
5825
5885
|
return height;
|
|
5826
5886
|
}
|
|
5827
|
-
get maximumWidth() {
|
|
5828
|
-
const width = typeof this._maximumWidth === 'function'
|
|
5829
|
-
? this._maximumWidth()
|
|
5830
|
-
: this._maximumWidth;
|
|
5831
|
-
if (width !== this._evaluatedMaximumWidth) {
|
|
5832
|
-
this._evaluatedMaximumWidth = width;
|
|
5833
|
-
this.updateConstraints();
|
|
5834
|
-
}
|
|
5835
|
-
return width;
|
|
5836
|
-
}
|
|
5837
5887
|
get isActive() {
|
|
5838
5888
|
return this.api.isActive;
|
|
5839
5889
|
}
|
|
@@ -5984,6 +6034,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5984
6034
|
position: options.group
|
|
5985
6035
|
? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
|
|
5986
6036
|
: 'center',
|
|
6037
|
+
index: options.index,
|
|
5987
6038
|
},
|
|
5988
6039
|
});
|
|
5989
6040
|
}
|
|
@@ -6035,30 +6086,34 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6035
6086
|
get minimumWidth() {
|
|
6036
6087
|
var _a;
|
|
6037
6088
|
const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
|
|
6038
|
-
|
|
6039
|
-
|
|
6040
|
-
|
|
6089
|
+
if (typeof activePanelMinimumWidth === 'number') {
|
|
6090
|
+
return activePanelMinimumWidth;
|
|
6091
|
+
}
|
|
6092
|
+
return super.__minimumWidth();
|
|
6041
6093
|
}
|
|
6042
6094
|
get minimumHeight() {
|
|
6043
6095
|
var _a;
|
|
6044
6096
|
const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6097
|
+
if (typeof activePanelMinimumHeight === 'number') {
|
|
6098
|
+
return activePanelMinimumHeight;
|
|
6099
|
+
}
|
|
6100
|
+
return super.__minimumHeight();
|
|
6048
6101
|
}
|
|
6049
6102
|
get maximumWidth() {
|
|
6050
6103
|
var _a;
|
|
6051
6104
|
const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6105
|
+
if (typeof activePanelMaximumWidth === 'number') {
|
|
6106
|
+
return activePanelMaximumWidth;
|
|
6107
|
+
}
|
|
6108
|
+
return super.__maximumWidth();
|
|
6055
6109
|
}
|
|
6056
6110
|
get maximumHeight() {
|
|
6057
6111
|
var _a;
|
|
6058
6112
|
const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6113
|
+
if (typeof activePanelMaximumHeight === 'number') {
|
|
6114
|
+
return activePanelMaximumHeight;
|
|
6115
|
+
}
|
|
6116
|
+
return super.__maximumHeight();
|
|
6062
6117
|
}
|
|
6063
6118
|
get panels() {
|
|
6064
6119
|
return this._model.panels;
|
|
@@ -6172,12 +6227,14 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6172
6227
|
return this.group.api.getWindow();
|
|
6173
6228
|
}
|
|
6174
6229
|
moveTo(options) {
|
|
6175
|
-
var _a;
|
|
6230
|
+
var _a, _b;
|
|
6176
6231
|
this.accessor.moveGroupOrPanel({
|
|
6177
6232
|
from: { groupId: this._group.id, panelId: this.panel.id },
|
|
6178
6233
|
to: {
|
|
6179
|
-
group: options.group,
|
|
6180
|
-
position:
|
|
6234
|
+
group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
|
|
6235
|
+
position: options.group
|
|
6236
|
+
? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
|
|
6237
|
+
: 'center',
|
|
6181
6238
|
index: options.index,
|
|
6182
6239
|
},
|
|
6183
6240
|
});
|
|
@@ -6396,7 +6453,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6396
6453
|
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
6397
6454
|
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
6398
6455
|
svg.setAttributeNS(null, 'focusable', 'false');
|
|
6399
|
-
svg.classList.add('
|
|
6456
|
+
svg.classList.add('dv-svg');
|
|
6400
6457
|
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
6401
6458
|
path.setAttributeNS(null, 'd', params.path);
|
|
6402
6459
|
svg.appendChild(path);
|
|
@@ -6567,39 +6624,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6567
6624
|
constructor() {
|
|
6568
6625
|
super();
|
|
6569
6626
|
this._element = document.createElement('div');
|
|
6570
|
-
this._element.className = 'watermark';
|
|
6571
|
-
const title = document.createElement('div');
|
|
6572
|
-
title.className = 'watermark-title';
|
|
6573
|
-
const emptySpace = document.createElement('span');
|
|
6574
|
-
emptySpace.style.flexGrow = '1';
|
|
6575
|
-
const content = document.createElement('div');
|
|
6576
|
-
content.className = 'watermark-content';
|
|
6577
|
-
this._element.appendChild(title);
|
|
6578
|
-
this._element.appendChild(content);
|
|
6579
|
-
const actionsContainer = document.createElement('div');
|
|
6580
|
-
actionsContainer.className = 'actions-container';
|
|
6581
|
-
const closeAnchor = document.createElement('div');
|
|
6582
|
-
closeAnchor.className = 'close-action';
|
|
6583
|
-
closeAnchor.appendChild(createCloseButton());
|
|
6584
|
-
actionsContainer.appendChild(closeAnchor);
|
|
6585
|
-
title.appendChild(emptySpace);
|
|
6586
|
-
title.appendChild(actionsContainer);
|
|
6587
|
-
this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
|
|
6588
|
-
var _a;
|
|
6589
|
-
event.preventDefault();
|
|
6590
|
-
if (this._group) {
|
|
6591
|
-
(_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
|
|
6592
|
-
}
|
|
6593
|
-
}));
|
|
6627
|
+
this._element.className = 'dv-watermark';
|
|
6594
6628
|
}
|
|
6595
6629
|
init(_params) {
|
|
6596
|
-
|
|
6597
|
-
this._group = _params.group;
|
|
6598
|
-
this.render();
|
|
6599
|
-
}
|
|
6600
|
-
render() {
|
|
6601
|
-
const isOneGroup = !!(this._api && this._api.size <= 1);
|
|
6602
|
-
toggleClass(this.element, 'has-actions', isOneGroup);
|
|
6630
|
+
// noop
|
|
6603
6631
|
}
|
|
6604
6632
|
}
|
|
6605
6633
|
|
|
@@ -6636,6 +6664,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6636
6664
|
get element() {
|
|
6637
6665
|
return this._element;
|
|
6638
6666
|
}
|
|
6667
|
+
get isVisible() {
|
|
6668
|
+
return this._isVisible;
|
|
6669
|
+
}
|
|
6639
6670
|
constructor(options) {
|
|
6640
6671
|
super();
|
|
6641
6672
|
this.options = options;
|
|
@@ -6646,6 +6677,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6646
6677
|
this.onDidChangeEnd = this._onDidChangeEnd.event;
|
|
6647
6678
|
this.addDisposables(this._onDidChange, this._onDidChangeEnd);
|
|
6648
6679
|
this._element.className = 'dv-resize-container';
|
|
6680
|
+
this._isVisible = true;
|
|
6649
6681
|
this.setupResize('top');
|
|
6650
6682
|
this.setupResize('bottom');
|
|
6651
6683
|
this.setupResize('left');
|
|
@@ -6660,6 +6692,13 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6660
6692
|
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 })));
|
|
6661
6693
|
arialLevelTracker.push(this._element);
|
|
6662
6694
|
}
|
|
6695
|
+
setVisible(isVisible) {
|
|
6696
|
+
if (isVisible === this.isVisible) {
|
|
6697
|
+
return;
|
|
6698
|
+
}
|
|
6699
|
+
this._isVisible = isVisible;
|
|
6700
|
+
toggleClass(this.element, 'dv-hidden', !this.isVisible);
|
|
6701
|
+
}
|
|
6663
6702
|
bringToFront() {
|
|
6664
6703
|
arialLevelTracker.push(this._element);
|
|
6665
6704
|
}
|
|
@@ -7233,7 +7272,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7233
7272
|
window: this._window.value,
|
|
7234
7273
|
});
|
|
7235
7274
|
this._window.disposable.dispose();
|
|
7236
|
-
this._window.value.close();
|
|
7237
7275
|
this._window = null;
|
|
7238
7276
|
this._onDidClose.fire();
|
|
7239
7277
|
}
|
|
@@ -7265,7 +7303,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7265
7303
|
}
|
|
7266
7304
|
const disposable = new CompositeDisposable();
|
|
7267
7305
|
this._window = { value: externalWindow, disposable };
|
|
7268
|
-
disposable.addDisposables(
|
|
7306
|
+
disposable.addDisposables(exports.DockviewDisposable.from(() => {
|
|
7307
|
+
externalWindow.close();
|
|
7308
|
+
}), addDisposableWindowListener(window, 'beforeunload', () => {
|
|
7269
7309
|
/**
|
|
7270
7310
|
* before the main window closes we should close this popup too
|
|
7271
7311
|
* to be good citizens
|
|
@@ -7282,7 +7322,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7282
7322
|
id: this.target,
|
|
7283
7323
|
window: externalWindow,
|
|
7284
7324
|
});
|
|
7285
|
-
return new Promise((resolve) => {
|
|
7325
|
+
return new Promise((resolve, reject) => {
|
|
7286
7326
|
externalWindow.addEventListener('unload', (e) => {
|
|
7287
7327
|
// if page fails to load before unloading
|
|
7288
7328
|
// this.close();
|
|
@@ -7291,21 +7331,27 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7291
7331
|
/**
|
|
7292
7332
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
|
|
7293
7333
|
*/
|
|
7294
|
-
|
|
7295
|
-
|
|
7296
|
-
|
|
7297
|
-
|
|
7298
|
-
|
|
7299
|
-
* beforeunload must be registered after load for reasons I could not determine
|
|
7300
|
-
* otherwise the beforeunload event will not fire when the window is closed
|
|
7301
|
-
*/
|
|
7302
|
-
addDisposableWindowListener(externalWindow, 'beforeunload', () => {
|
|
7334
|
+
try {
|
|
7335
|
+
const externalDocument = externalWindow.document;
|
|
7336
|
+
externalDocument.title = document.title;
|
|
7337
|
+
externalDocument.body.appendChild(container);
|
|
7338
|
+
addStyles(externalDocument, window.document.styleSheets);
|
|
7303
7339
|
/**
|
|
7304
|
-
*
|
|
7340
|
+
* beforeunload must be registered after load for reasons I could not determine
|
|
7341
|
+
* otherwise the beforeunload event will not fire when the window is closed
|
|
7305
7342
|
*/
|
|
7306
|
-
|
|
7307
|
-
|
|
7308
|
-
|
|
7343
|
+
addDisposableWindowListener(externalWindow, 'beforeunload', () => {
|
|
7344
|
+
/**
|
|
7345
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
7346
|
+
*/
|
|
7347
|
+
this.close();
|
|
7348
|
+
});
|
|
7349
|
+
resolve(container);
|
|
7350
|
+
}
|
|
7351
|
+
catch (err) {
|
|
7352
|
+
// only except this is the DOM isn't setup. e.g. in a in correctly configured test
|
|
7353
|
+
reject(err);
|
|
7354
|
+
}
|
|
7309
7355
|
});
|
|
7310
7356
|
});
|
|
7311
7357
|
});
|
|
@@ -7412,6 +7458,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7412
7458
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7413
7459
|
this._onDidMovePanel = new Emitter();
|
|
7414
7460
|
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7461
|
+
this._onDidMaximizedGroupChange = new Emitter();
|
|
7462
|
+
this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
|
|
7415
7463
|
this._floatingGroups = [];
|
|
7416
7464
|
this._popoutGroups = [];
|
|
7417
7465
|
this._onDidRemoveGroup = new Emitter();
|
|
@@ -7438,6 +7486,11 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7438
7486
|
if (!this._moving) {
|
|
7439
7487
|
this._onDidActiveGroupChange.fire(event);
|
|
7440
7488
|
}
|
|
7489
|
+
}), this.onDidMaximizedChange((event) => {
|
|
7490
|
+
this._onDidMaximizedGroupChange.fire({
|
|
7491
|
+
group: event.panel,
|
|
7492
|
+
isMaximized: event.isMaximized,
|
|
7493
|
+
});
|
|
7441
7494
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7442
7495
|
this.updateWatermark();
|
|
7443
7496
|
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
@@ -7536,8 +7589,28 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7536
7589
|
this._api = new DockviewApi(this);
|
|
7537
7590
|
this.updateWatermark();
|
|
7538
7591
|
}
|
|
7592
|
+
setVisible(panel, visible) {
|
|
7593
|
+
switch (panel.api.location.type) {
|
|
7594
|
+
case 'grid':
|
|
7595
|
+
super.setVisible(panel, visible);
|
|
7596
|
+
break;
|
|
7597
|
+
case 'floating': {
|
|
7598
|
+
const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
|
|
7599
|
+
if (item) {
|
|
7600
|
+
item.overlay.setVisible(visible);
|
|
7601
|
+
panel.api._onDidVisibilityChange.fire({
|
|
7602
|
+
isVisible: visible,
|
|
7603
|
+
});
|
|
7604
|
+
}
|
|
7605
|
+
break;
|
|
7606
|
+
}
|
|
7607
|
+
case 'popout':
|
|
7608
|
+
console.warn('dockview: You cannot hide a group that is in a popout window');
|
|
7609
|
+
break;
|
|
7610
|
+
}
|
|
7611
|
+
}
|
|
7539
7612
|
addPopoutGroup(itemToPopout, options) {
|
|
7540
|
-
var _a, _b, _c;
|
|
7613
|
+
var _a, _b, _c, _d, _e;
|
|
7541
7614
|
if (itemToPopout instanceof DockviewPanel &&
|
|
7542
7615
|
itemToPopout.group.size === 1) {
|
|
7543
7616
|
return this.addPopoutGroup(itemToPopout.group, options);
|
|
@@ -7558,12 +7631,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7558
7631
|
}
|
|
7559
7632
|
const box = getBox();
|
|
7560
7633
|
const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();
|
|
7561
|
-
if (itemToPopout.api.location.type === 'grid') {
|
|
7562
|
-
itemToPopout.api.setVisible(false);
|
|
7563
|
-
}
|
|
7564
7634
|
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7565
7635
|
theme !== null && theme !== void 0 ? theme : '', {
|
|
7566
|
-
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
7636
|
+
url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',
|
|
7567
7637
|
left: window.screenX + box.left,
|
|
7568
7638
|
top: window.screenY + box.top,
|
|
7569
7639
|
width: box.width,
|
|
@@ -7577,13 +7647,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7577
7647
|
return _window
|
|
7578
7648
|
.open()
|
|
7579
7649
|
.then((popoutContainer) => {
|
|
7580
|
-
var _a;
|
|
7581
7650
|
if (_window.isDisposed) {
|
|
7582
|
-
return;
|
|
7651
|
+
return false;
|
|
7583
7652
|
}
|
|
7584
7653
|
if (popoutContainer === null) {
|
|
7585
7654
|
popoutWindowDisposable.dispose();
|
|
7586
|
-
return;
|
|
7655
|
+
return false;
|
|
7587
7656
|
}
|
|
7588
7657
|
const gready = document.createElement('div');
|
|
7589
7658
|
gready.className = 'dv-overlay-render-container';
|
|
@@ -7592,30 +7661,45 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7592
7661
|
? itemToPopout.group
|
|
7593
7662
|
: itemToPopout;
|
|
7594
7663
|
const referenceLocation = itemToPopout.api.location.type;
|
|
7595
|
-
|
|
7596
|
-
|
|
7597
|
-
|
|
7598
|
-
|
|
7664
|
+
/**
|
|
7665
|
+
* The group that is being added doesn't already exist within the DOM, the most likely occurance
|
|
7666
|
+
* of this case is when being called from the `fromJSON(...)` method
|
|
7667
|
+
*/
|
|
7668
|
+
const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
|
|
7669
|
+
let group;
|
|
7670
|
+
if (!isGroupAddedToDom) {
|
|
7671
|
+
group = referenceGroup;
|
|
7599
7672
|
}
|
|
7600
|
-
if (
|
|
7601
|
-
|
|
7602
|
-
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
7603
|
-
group.model.openPanel(panel);
|
|
7604
|
-
});
|
|
7673
|
+
else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
|
|
7674
|
+
group = options.overridePopoutGroup;
|
|
7605
7675
|
}
|
|
7606
7676
|
else {
|
|
7607
|
-
this.
|
|
7608
|
-
|
|
7609
|
-
|
|
7610
|
-
|
|
7611
|
-
|
|
7612
|
-
|
|
7613
|
-
|
|
7614
|
-
|
|
7615
|
-
|
|
7616
|
-
|
|
7617
|
-
|
|
7618
|
-
|
|
7677
|
+
group = this.createGroup({ id: groupId });
|
|
7678
|
+
this._onDidAddGroup.fire(group);
|
|
7679
|
+
}
|
|
7680
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7681
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
7682
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
|
|
7683
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
7684
|
+
this.movingLock(() => {
|
|
7685
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
7686
|
+
group.model.openPanel(panel);
|
|
7687
|
+
});
|
|
7688
|
+
}
|
|
7689
|
+
else {
|
|
7690
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7691
|
+
from: referenceGroup,
|
|
7692
|
+
to: group,
|
|
7693
|
+
}));
|
|
7694
|
+
switch (referenceLocation) {
|
|
7695
|
+
case 'grid':
|
|
7696
|
+
referenceGroup.api.setVisible(false);
|
|
7697
|
+
break;
|
|
7698
|
+
case 'floating':
|
|
7699
|
+
case 'popout':
|
|
7700
|
+
this.removeGroup(referenceGroup);
|
|
7701
|
+
break;
|
|
7702
|
+
}
|
|
7619
7703
|
}
|
|
7620
7704
|
}
|
|
7621
7705
|
popoutContainer.classList.add('dv-dockview');
|
|
@@ -7625,7 +7709,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7625
7709
|
group.model.location = {
|
|
7626
7710
|
type: 'popout',
|
|
7627
7711
|
getWindow: () => _window.window,
|
|
7712
|
+
popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
|
|
7628
7713
|
};
|
|
7714
|
+
if (isGroupAddedToDom &&
|
|
7715
|
+
itemToPopout.api.location.type === 'grid') {
|
|
7716
|
+
itemToPopout.api.setVisible(false);
|
|
7717
|
+
}
|
|
7629
7718
|
this.doSetGroupAndPanelActive(group);
|
|
7630
7719
|
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
7631
7720
|
var _a;
|
|
@@ -7637,10 +7726,13 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7637
7726
|
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7638
7727
|
}));
|
|
7639
7728
|
let returnedGroup;
|
|
7729
|
+
const isValidReferenceGroup = isGroupAddedToDom &&
|
|
7730
|
+
referenceGroup &&
|
|
7731
|
+
this.getPanel(referenceGroup.id);
|
|
7640
7732
|
const value = {
|
|
7641
7733
|
window: _window,
|
|
7642
7734
|
popoutGroup: group,
|
|
7643
|
-
referenceGroup:
|
|
7735
|
+
referenceGroup: isValidReferenceGroup
|
|
7644
7736
|
? referenceGroup.id
|
|
7645
7737
|
: undefined,
|
|
7646
7738
|
disposable: {
|
|
@@ -7657,9 +7749,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7657
7749
|
* window dimensions
|
|
7658
7750
|
*/
|
|
7659
7751
|
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
7660
|
-
group.layout(window.innerWidth, window.innerHeight);
|
|
7752
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
7661
7753
|
}), overlayRenderContainer, exports.DockviewDisposable.from(() => {
|
|
7662
|
-
if (
|
|
7754
|
+
if (isGroupAddedToDom &&
|
|
7755
|
+
this.getPanel(referenceGroup.id)) {
|
|
7663
7756
|
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7664
7757
|
from: group,
|
|
7665
7758
|
to: referenceGroup,
|
|
@@ -7674,21 +7767,27 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7674
7767
|
}
|
|
7675
7768
|
}
|
|
7676
7769
|
else if (this.getPanel(group.id)) {
|
|
7677
|
-
|
|
7770
|
+
this.doRemoveGroup(group, {
|
|
7678
7771
|
skipDispose: true,
|
|
7679
7772
|
skipActive: true,
|
|
7773
|
+
skipPopoutReturn: true,
|
|
7680
7774
|
});
|
|
7775
|
+
const removedGroup = group;
|
|
7681
7776
|
removedGroup.model.renderContainer =
|
|
7682
7777
|
this.overlayRenderContainer;
|
|
7683
7778
|
removedGroup.model.location = { type: 'grid' };
|
|
7684
7779
|
returnedGroup = removedGroup;
|
|
7780
|
+
this.doAddGroup(removedGroup, [0]);
|
|
7781
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
7685
7782
|
}
|
|
7686
7783
|
}));
|
|
7687
7784
|
this._popoutGroups.push(value);
|
|
7688
7785
|
this.updateWatermark();
|
|
7786
|
+
return true;
|
|
7689
7787
|
})
|
|
7690
7788
|
.catch((err) => {
|
|
7691
7789
|
console.error('dockview: failed to create popout window', err);
|
|
7790
|
+
return false;
|
|
7692
7791
|
});
|
|
7693
7792
|
}
|
|
7694
7793
|
addFloatingGroup(item, options) {
|
|
@@ -7792,7 +7891,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7792
7891
|
: (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7793
7892
|
? undefined
|
|
7794
7893
|
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7795
|
-
const el = group.element.querySelector('.void-container');
|
|
7894
|
+
const el = group.element.querySelector('.dv-void-container');
|
|
7796
7895
|
if (!el) {
|
|
7797
7896
|
throw new Error('failed to find drag handle');
|
|
7798
7897
|
}
|
|
@@ -7984,6 +8083,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7984
8083
|
data: group.popoutGroup.toJSON(),
|
|
7985
8084
|
gridReferenceGroup: group.referenceGroup,
|
|
7986
8085
|
position: group.window.dimensions(),
|
|
8086
|
+
url: group.popoutGroup.api.location.type === 'popout'
|
|
8087
|
+
? group.popoutGroup.api.location.popoutUrl
|
|
8088
|
+
: undefined,
|
|
7987
8089
|
};
|
|
7988
8090
|
});
|
|
7989
8091
|
const result = {
|
|
@@ -8070,16 +8172,16 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8070
8172
|
}
|
|
8071
8173
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
8072
8174
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
8073
|
-
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
8175
|
+
const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
|
|
8074
8176
|
const group = createGroupFromSerializedState(data);
|
|
8075
8177
|
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
8076
8178
|
? this.getPanel(gridReferenceGroup)
|
|
8077
8179
|
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
8078
|
-
skipRemoveGroup: true,
|
|
8079
8180
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
8080
8181
|
overridePopoutGroup: gridReferenceGroup
|
|
8081
8182
|
? group
|
|
8082
8183
|
: undefined,
|
|
8184
|
+
popoutUrl: url,
|
|
8083
8185
|
});
|
|
8084
8186
|
}
|
|
8085
8187
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -8093,6 +8195,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8093
8195
|
}
|
|
8094
8196
|
}
|
|
8095
8197
|
catch (err) {
|
|
8198
|
+
console.error('dockview: failed to deserialize layout. Reverting changes', err);
|
|
8096
8199
|
/**
|
|
8097
8200
|
* Takes all the successfully created groups and remove all of their panels.
|
|
8098
8201
|
*/
|
|
@@ -8160,11 +8263,13 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8160
8263
|
width: options.initialWidth,
|
|
8161
8264
|
height: options.initialHeight,
|
|
8162
8265
|
};
|
|
8266
|
+
let index;
|
|
8163
8267
|
if (options.position) {
|
|
8164
8268
|
if (isPanelOptionsWithPanel(options.position)) {
|
|
8165
8269
|
const referencePanel = typeof options.position.referencePanel === 'string'
|
|
8166
8270
|
? this.getGroupPanel(options.position.referencePanel)
|
|
8167
8271
|
: options.position.referencePanel;
|
|
8272
|
+
index = options.position.index;
|
|
8168
8273
|
if (!referencePanel) {
|
|
8169
8274
|
throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
|
|
8170
8275
|
}
|
|
@@ -8175,6 +8280,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8175
8280
|
typeof options.position.referenceGroup === 'string'
|
|
8176
8281
|
? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
|
|
8177
8282
|
: options.position.referenceGroup;
|
|
8283
|
+
index = options.position.index;
|
|
8178
8284
|
if (!referenceGroup) {
|
|
8179
8285
|
throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
|
|
8180
8286
|
}
|
|
@@ -8185,6 +8291,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8185
8291
|
group.model.openPanel(panel, {
|
|
8186
8292
|
skipSetActive: options.inactive,
|
|
8187
8293
|
skipSetGroupActive: options.inactive,
|
|
8294
|
+
index,
|
|
8188
8295
|
});
|
|
8189
8296
|
if (!options.inactive) {
|
|
8190
8297
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -8214,6 +8321,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8214
8321
|
group.model.openPanel(panel, {
|
|
8215
8322
|
skipSetActive: options.inactive,
|
|
8216
8323
|
skipSetGroupActive: options.inactive,
|
|
8324
|
+
index,
|
|
8217
8325
|
});
|
|
8218
8326
|
}
|
|
8219
8327
|
else if (referenceGroup.api.location.type === 'floating' ||
|
|
@@ -8222,6 +8330,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8222
8330
|
referenceGroup.model.openPanel(panel, {
|
|
8223
8331
|
skipSetActive: options.inactive,
|
|
8224
8332
|
skipSetGroupActive: options.inactive,
|
|
8333
|
+
index,
|
|
8225
8334
|
});
|
|
8226
8335
|
referenceGroup.api.setSize({
|
|
8227
8336
|
width: initial === null || initial === void 0 ? void 0 : initial.width,
|
|
@@ -8242,6 +8351,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8242
8351
|
group.model.openPanel(panel, {
|
|
8243
8352
|
skipSetActive: options.inactive,
|
|
8244
8353
|
skipSetGroupActive: options.inactive,
|
|
8354
|
+
index,
|
|
8245
8355
|
});
|
|
8246
8356
|
if (!options.inactive) {
|
|
8247
8357
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -8260,6 +8370,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8260
8370
|
group.model.openPanel(panel, {
|
|
8261
8371
|
skipSetActive: options.inactive,
|
|
8262
8372
|
skipSetGroupActive: options.inactive,
|
|
8373
|
+
index,
|
|
8263
8374
|
});
|
|
8264
8375
|
}
|
|
8265
8376
|
else {
|
|
@@ -8270,6 +8381,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8270
8381
|
group.model.openPanel(panel, {
|
|
8271
8382
|
skipSetActive: options.inactive,
|
|
8272
8383
|
skipSetGroupActive: options.inactive,
|
|
8384
|
+
index,
|
|
8273
8385
|
});
|
|
8274
8386
|
if (!options.inactive) {
|
|
8275
8387
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -8279,7 +8391,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8279
8391
|
}
|
|
8280
8392
|
removePanel(panel, options = {
|
|
8281
8393
|
removeEmptyGroup: true,
|
|
8282
|
-
skipDispose: false,
|
|
8283
8394
|
}) {
|
|
8284
8395
|
const group = panel.group;
|
|
8285
8396
|
if (!group) {
|
|
@@ -8810,6 +8921,31 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8810
8921
|
}
|
|
8811
8922
|
}
|
|
8812
8923
|
|
|
8924
|
+
function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
|
|
8925
|
+
const Component = typeof componentName === 'string'
|
|
8926
|
+
? components[componentName]
|
|
8927
|
+
: undefined;
|
|
8928
|
+
const FrameworkComponent = typeof componentName === 'string'
|
|
8929
|
+
? frameworkComponents[componentName]
|
|
8930
|
+
: undefined;
|
|
8931
|
+
if (Component && FrameworkComponent) {
|
|
8932
|
+
throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
|
|
8933
|
+
}
|
|
8934
|
+
if (FrameworkComponent) {
|
|
8935
|
+
if (!createFrameworkComponent) {
|
|
8936
|
+
throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
|
|
8937
|
+
}
|
|
8938
|
+
return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
|
|
8939
|
+
}
|
|
8940
|
+
if (!Component) {
|
|
8941
|
+
if (fallback) {
|
|
8942
|
+
return fallback();
|
|
8943
|
+
}
|
|
8944
|
+
throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
|
|
8945
|
+
}
|
|
8946
|
+
return new Component(id, componentName);
|
|
8947
|
+
}
|
|
8948
|
+
|
|
8813
8949
|
class GridviewComponent extends BaseGrid {
|
|
8814
8950
|
get orientation() {
|
|
8815
8951
|
return this.gridview.orientation;
|
|
@@ -9358,12 +9494,14 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9358
9494
|
this._expandedIcon = createExpandMoreButton();
|
|
9359
9495
|
this._collapsedIcon = createChevronRightButton();
|
|
9360
9496
|
this.disposable = new MutableDisposable();
|
|
9361
|
-
this.apiRef = {
|
|
9497
|
+
this.apiRef = {
|
|
9498
|
+
api: null,
|
|
9499
|
+
};
|
|
9362
9500
|
this._element = document.createElement('div');
|
|
9363
|
-
this.element.className = 'default-header';
|
|
9501
|
+
this.element.className = 'dv-default-header';
|
|
9364
9502
|
this._content = document.createElement('span');
|
|
9365
9503
|
this._expander = document.createElement('div');
|
|
9366
|
-
this._expander.className = '
|
|
9504
|
+
this._expander.className = 'dv-pane-header-icon';
|
|
9367
9505
|
this.element.appendChild(this._expander);
|
|
9368
9506
|
this.element.appendChild(this._content);
|
|
9369
9507
|
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
@@ -9834,7 +9972,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9834
9972
|
exports.GridviewApi = GridviewApi;
|
|
9835
9973
|
exports.GridviewComponent = GridviewComponent;
|
|
9836
9974
|
exports.GridviewPanel = GridviewPanel;
|
|
9837
|
-
exports.LocalSelectionTransfer = LocalSelectionTransfer;
|
|
9838
9975
|
exports.PROPERTY_KEYS = PROPERTY_KEYS;
|
|
9839
9976
|
exports.PaneFramework = PaneFramework;
|
|
9840
9977
|
exports.PaneTransfer = PaneTransfer;
|
|
@@ -9849,7 +9986,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
9849
9986
|
exports.SplitviewPanel = SplitviewPanel;
|
|
9850
9987
|
exports.Tab = Tab;
|
|
9851
9988
|
exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
|
|
9852
|
-
exports.createComponent = createComponent;
|
|
9853
9989
|
exports.createDockview = createDockview;
|
|
9854
9990
|
exports.createGridview = createGridview;
|
|
9855
9991
|
exports.createPaneview = createPaneview;
|