dockview-core 2.0.0 → 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 +2 -2
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -3
- package/dist/cjs/dockview/components/watermark/watermark.js +1 -33
- package/dist/cjs/dockview/dockviewComponent.d.ts +32 -14
- package/dist/cjs/dockview/dockviewComponent.js +52 -18
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +1 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +4 -4
- package/dist/cjs/dockview/options.d.ts +4 -0
- package/dist/cjs/dockview/options.js +1 -0
- package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/cjs/gridview/baseComponentGridview.js +8 -8
- package/dist/cjs/gridview/gridview.d.ts +9 -1
- package/dist/cjs/gridview/gridview.js +49 -5
- package/dist/cjs/overlay/overlay.d.ts +3 -0
- package/dist/cjs/overlay/overlay.js +15 -0
- package/dist/dockview-core.amd.js +128 -64
- 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 +127 -63
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +128 -64
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +128 -64
- 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 +128 -64
- 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 +127 -63
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +2 -2
- package/dist/esm/dockview/components/titlebar/voidContainer.js +0 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -3
- package/dist/esm/dockview/components/watermark/watermark.js +1 -33
- package/dist/esm/dockview/dockviewComponent.d.ts +32 -14
- package/dist/esm/dockview/dockviewComponent.js +52 -18
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +1 -0
- package/dist/esm/dockview/dockviewGroupPanelModel.js +4 -4
- package/dist/esm/dockview/options.d.ts +4 -0
- package/dist/esm/dockview/options.js +1 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/esm/gridview/baseComponentGridview.js +8 -4
- package/dist/esm/gridview/gridview.d.ts +9 -1
- package/dist/esm/gridview/gridview.js +49 -5
- package/dist/esm/overlay/overlay.d.ts +3 -0
- package/dist/esm/overlay/overlay.js +11 -0
- package/dist/styles/dockview.css +4 -33
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version 2.
|
|
3
|
+
* @version 2.1.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -2189,6 +2189,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2189
2189
|
if (this.hasMaximizedView()) {
|
|
2190
2190
|
this.exitMaximizedView();
|
|
2191
2191
|
}
|
|
2192
|
+
serializeBranchNode(this.getView(), this.orientation);
|
|
2192
2193
|
const hiddenOnMaximize = [];
|
|
2193
2194
|
function hideAllViewsBut(parent, exclude) {
|
|
2194
2195
|
for (let i = 0; i < parent.children.length; i++) {
|
|
@@ -2210,7 +2211,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2210
2211
|
}
|
|
2211
2212
|
hideAllViewsBut(this.root, node);
|
|
2212
2213
|
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2213
|
-
this._onDidMaximizedNodeChange.fire(
|
|
2214
|
+
this._onDidMaximizedNodeChange.fire({
|
|
2215
|
+
view: node.view,
|
|
2216
|
+
isMaximized: true,
|
|
2217
|
+
});
|
|
2214
2218
|
}
|
|
2215
2219
|
exitMaximizedView() {
|
|
2216
2220
|
if (!this._maximizedNode) {
|
|
@@ -2231,24 +2235,51 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2231
2235
|
}
|
|
2232
2236
|
}
|
|
2233
2237
|
showViewsInReverseOrder(this.root);
|
|
2238
|
+
const tmp = this._maximizedNode.leaf;
|
|
2234
2239
|
this._maximizedNode = undefined;
|
|
2235
|
-
this._onDidMaximizedNodeChange.fire(
|
|
2240
|
+
this._onDidMaximizedNodeChange.fire({
|
|
2241
|
+
view: tmp.view,
|
|
2242
|
+
isMaximized: false,
|
|
2243
|
+
});
|
|
2236
2244
|
}
|
|
2237
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
|
+
}
|
|
2238
2255
|
if (this.hasMaximizedView()) {
|
|
2239
2256
|
/**
|
|
2240
|
-
*
|
|
2241
|
-
*
|
|
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
|
|
2242
2263
|
*/
|
|
2243
2264
|
this.exitMaximizedView();
|
|
2244
2265
|
}
|
|
2245
2266
|
const root = serializeBranchNode(this.getView(), this.orientation);
|
|
2246
|
-
|
|
2267
|
+
const resullt = {
|
|
2247
2268
|
root,
|
|
2248
2269
|
width: this.width,
|
|
2249
2270
|
height: this.height,
|
|
2250
2271
|
orientation: this.orientation,
|
|
2251
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;
|
|
2252
2283
|
}
|
|
2253
2284
|
dispose() {
|
|
2254
2285
|
this.disposable.dispose();
|
|
@@ -2267,6 +2298,19 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2267
2298
|
const orientation = json.orientation;
|
|
2268
2299
|
const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
|
|
2269
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
|
+
}
|
|
2270
2314
|
}
|
|
2271
2315
|
_deserialize(root, orientation, deserializer, orthogonalSize) {
|
|
2272
2316
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
@@ -2691,6 +2735,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2691
2735
|
this.onDidRemove = this._onDidRemove.event;
|
|
2692
2736
|
this._onDidAdd = new Emitter();
|
|
2693
2737
|
this.onDidAdd = this._onDidAdd.event;
|
|
2738
|
+
this._onDidMaximizedChange = new Emitter();
|
|
2739
|
+
this.onDidMaximizedChange = this._onDidMaximizedChange.event;
|
|
2694
2740
|
this._onDidActiveChange = new Emitter();
|
|
2695
2741
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2696
2742
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
@@ -2706,7 +2752,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2706
2752
|
this.gridview.locked = !!options.locked;
|
|
2707
2753
|
this.element.appendChild(this.gridview.element);
|
|
2708
2754
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2709
|
-
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(() => {
|
|
2710
2761
|
this.layout(this.width, this.height, true);
|
|
2711
2762
|
}), exports.DockviewDisposable.from(() => {
|
|
2712
2763
|
var _a;
|
|
@@ -2756,9 +2807,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
2756
2807
|
hasMaximizedGroup() {
|
|
2757
2808
|
return this.gridview.hasMaximizedView();
|
|
2758
2809
|
}
|
|
2759
|
-
get onDidMaximizedGroupChange() {
|
|
2760
|
-
return this.gridview.onDidMaximizedNodeChange;
|
|
2761
|
-
}
|
|
2762
2810
|
doAddGroup(group, location = [0], size) {
|
|
2763
2811
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
|
|
2764
2812
|
this._onDidAdd.fire(group);
|
|
@@ -4768,7 +4816,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
4768
4816
|
this.onDragStart = this._onDragStart.event;
|
|
4769
4817
|
this._element = document.createElement('div');
|
|
4770
4818
|
this._element.className = 'dv-void-container';
|
|
4771
|
-
this._element.tabIndex = 0;
|
|
4772
4819
|
this._element.draggable = true;
|
|
4773
4820
|
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
|
|
4774
4821
|
this.accessor.doSetGroupActive(this.group);
|
|
@@ -5082,6 +5129,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5082
5129
|
disableDnd: undefined,
|
|
5083
5130
|
gap: undefined,
|
|
5084
5131
|
className: undefined,
|
|
5132
|
+
noPanelsOverlay: undefined,
|
|
5085
5133
|
};
|
|
5086
5134
|
return Object.keys(properties);
|
|
5087
5135
|
})();
|
|
@@ -5522,7 +5570,10 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5522
5570
|
this.doClose(panel);
|
|
5523
5571
|
}
|
|
5524
5572
|
doClose(panel) {
|
|
5525
|
-
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);
|
|
5526
5577
|
}
|
|
5527
5578
|
isPanelActive(panel) {
|
|
5528
5579
|
return this._activePanel === panel;
|
|
@@ -5628,7 +5679,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5628
5679
|
}
|
|
5629
5680
|
updateContainer() {
|
|
5630
5681
|
var _a, _b;
|
|
5631
|
-
toggleClass(this.container, 'dv-empty', this.isEmpty);
|
|
5632
5682
|
this.panels.forEach((panel) => panel.runEvents());
|
|
5633
5683
|
if (this.isEmpty && !this.watermark) {
|
|
5634
5684
|
const watermark = this.accessor.createWatermarkComponent();
|
|
@@ -5642,14 +5692,12 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
5642
5692
|
this.accessor.doSetGroupActive(this.groupPanel);
|
|
5643
5693
|
}
|
|
5644
5694
|
});
|
|
5645
|
-
this.tabsContainer.hide();
|
|
5646
5695
|
this.contentContainer.element.appendChild(this.watermark.element);
|
|
5647
5696
|
}
|
|
5648
5697
|
if (!this.isEmpty && this.watermark) {
|
|
5649
5698
|
this.watermark.element.remove();
|
|
5650
5699
|
(_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
5651
5700
|
this.watermark = undefined;
|
|
5652
|
-
this.tabsContainer.show();
|
|
5653
5701
|
}
|
|
5654
5702
|
}
|
|
5655
5703
|
canDisplayOverlay(event, position, target) {
|
|
@@ -6577,38 +6625,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6577
6625
|
super();
|
|
6578
6626
|
this._element = document.createElement('div');
|
|
6579
6627
|
this._element.className = 'dv-watermark';
|
|
6580
|
-
const title = document.createElement('div');
|
|
6581
|
-
title.className = 'dv-watermark-title';
|
|
6582
|
-
const emptySpace = document.createElement('span');
|
|
6583
|
-
emptySpace.style.flexGrow = '1';
|
|
6584
|
-
const content = document.createElement('div');
|
|
6585
|
-
content.className = 'dv-watermark-content';
|
|
6586
|
-
this._element.appendChild(title);
|
|
6587
|
-
this._element.appendChild(content);
|
|
6588
|
-
const actionsContainer = document.createElement('div');
|
|
6589
|
-
actionsContainer.className = 'dv-actions-container';
|
|
6590
|
-
const closeAnchor = document.createElement('div');
|
|
6591
|
-
closeAnchor.className = 'dv-close-action';
|
|
6592
|
-
closeAnchor.appendChild(createCloseButton());
|
|
6593
|
-
actionsContainer.appendChild(closeAnchor);
|
|
6594
|
-
title.appendChild(emptySpace);
|
|
6595
|
-
title.appendChild(actionsContainer);
|
|
6596
|
-
this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
|
|
6597
|
-
var _a;
|
|
6598
|
-
event.preventDefault();
|
|
6599
|
-
if (this._group) {
|
|
6600
|
-
(_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
|
|
6601
|
-
}
|
|
6602
|
-
}));
|
|
6603
6628
|
}
|
|
6604
6629
|
init(_params) {
|
|
6605
|
-
|
|
6606
|
-
this._group = _params.group;
|
|
6607
|
-
this.render();
|
|
6608
|
-
}
|
|
6609
|
-
render() {
|
|
6610
|
-
const isOneGroup = !!(this._api && this._api.size <= 1);
|
|
6611
|
-
toggleClass(this.element, 'dv-has-actions', isOneGroup);
|
|
6630
|
+
// noop
|
|
6612
6631
|
}
|
|
6613
6632
|
}
|
|
6614
6633
|
|
|
@@ -6645,6 +6664,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6645
6664
|
get element() {
|
|
6646
6665
|
return this._element;
|
|
6647
6666
|
}
|
|
6667
|
+
get isVisible() {
|
|
6668
|
+
return this._isVisible;
|
|
6669
|
+
}
|
|
6648
6670
|
constructor(options) {
|
|
6649
6671
|
super();
|
|
6650
6672
|
this.options = options;
|
|
@@ -6655,6 +6677,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6655
6677
|
this.onDidChangeEnd = this._onDidChangeEnd.event;
|
|
6656
6678
|
this.addDisposables(this._onDidChange, this._onDidChangeEnd);
|
|
6657
6679
|
this._element.className = 'dv-resize-container';
|
|
6680
|
+
this._isVisible = true;
|
|
6658
6681
|
this.setupResize('top');
|
|
6659
6682
|
this.setupResize('bottom');
|
|
6660
6683
|
this.setupResize('left');
|
|
@@ -6669,6 +6692,13 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
6669
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 })));
|
|
6670
6693
|
arialLevelTracker.push(this._element);
|
|
6671
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
|
+
}
|
|
6672
6702
|
bringToFront() {
|
|
6673
6703
|
arialLevelTracker.push(this._element);
|
|
6674
6704
|
}
|
|
@@ -7428,6 +7458,8 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7428
7458
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7429
7459
|
this._onDidMovePanel = new Emitter();
|
|
7430
7460
|
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7461
|
+
this._onDidMaximizedGroupChange = new Emitter();
|
|
7462
|
+
this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
|
|
7431
7463
|
this._floatingGroups = [];
|
|
7432
7464
|
this._popoutGroups = [];
|
|
7433
7465
|
this._onDidRemoveGroup = new Emitter();
|
|
@@ -7454,6 +7486,11 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7454
7486
|
if (!this._moving) {
|
|
7455
7487
|
this._onDidActiveGroupChange.fire(event);
|
|
7456
7488
|
}
|
|
7489
|
+
}), this.onDidMaximizedChange((event) => {
|
|
7490
|
+
this._onDidMaximizedGroupChange.fire({
|
|
7491
|
+
group: event.panel,
|
|
7492
|
+
isMaximized: event.isMaximized,
|
|
7493
|
+
});
|
|
7457
7494
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7458
7495
|
this.updateWatermark();
|
|
7459
7496
|
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
@@ -7552,8 +7589,28 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7552
7589
|
this._api = new DockviewApi(this);
|
|
7553
7590
|
this.updateWatermark();
|
|
7554
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
|
+
}
|
|
7555
7612
|
addPopoutGroup(itemToPopout, options) {
|
|
7556
|
-
var _a, _b, _c;
|
|
7613
|
+
var _a, _b, _c, _d, _e;
|
|
7557
7614
|
if (itemToPopout instanceof DockviewPanel &&
|
|
7558
7615
|
itemToPopout.group.size === 1) {
|
|
7559
7616
|
return this.addPopoutGroup(itemToPopout.group, options);
|
|
@@ -7576,7 +7633,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7576
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();
|
|
7577
7634
|
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7578
7635
|
theme !== null && theme !== void 0 ? theme : '', {
|
|
7579
|
-
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',
|
|
7580
7637
|
left: window.screenX + box.left,
|
|
7581
7638
|
top: window.screenY + box.top,
|
|
7582
7639
|
width: box.width,
|
|
@@ -7590,7 +7647,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7590
7647
|
return _window
|
|
7591
7648
|
.open()
|
|
7592
7649
|
.then((popoutContainer) => {
|
|
7593
|
-
var _a;
|
|
7594
7650
|
if (_window.isDisposed) {
|
|
7595
7651
|
return false;
|
|
7596
7652
|
}
|
|
@@ -7610,14 +7666,19 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7610
7666
|
* of this case is when being called from the `fromJSON(...)` method
|
|
7611
7667
|
*/
|
|
7612
7668
|
const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
|
|
7613
|
-
|
|
7614
|
-
|
|
7615
|
-
|
|
7616
|
-
|
|
7617
|
-
|
|
7618
|
-
|
|
7669
|
+
let group;
|
|
7670
|
+
if (!isGroupAddedToDom) {
|
|
7671
|
+
group = referenceGroup;
|
|
7672
|
+
}
|
|
7673
|
+
else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
|
|
7674
|
+
group = options.overridePopoutGroup;
|
|
7675
|
+
}
|
|
7676
|
+
else {
|
|
7677
|
+
group = this.createGroup({ id: groupId });
|
|
7619
7678
|
this._onDidAddGroup.fire(group);
|
|
7620
7679
|
}
|
|
7680
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7681
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
7621
7682
|
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
|
|
7622
7683
|
if (itemToPopout instanceof DockviewPanel) {
|
|
7623
7684
|
this.movingLock(() => {
|
|
@@ -7648,6 +7709,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7648
7709
|
group.model.location = {
|
|
7649
7710
|
type: 'popout',
|
|
7650
7711
|
getWindow: () => _window.window,
|
|
7712
|
+
popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
|
|
7651
7713
|
};
|
|
7652
7714
|
if (isGroupAddedToDom &&
|
|
7653
7715
|
itemToPopout.api.location.type === 'grid') {
|
|
@@ -7664,16 +7726,15 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7664
7726
|
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7665
7727
|
}));
|
|
7666
7728
|
let returnedGroup;
|
|
7729
|
+
const isValidReferenceGroup = isGroupAddedToDom &&
|
|
7730
|
+
referenceGroup &&
|
|
7731
|
+
this.getPanel(referenceGroup.id);
|
|
7667
7732
|
const value = {
|
|
7668
7733
|
window: _window,
|
|
7669
7734
|
popoutGroup: group,
|
|
7670
|
-
referenceGroup:
|
|
7671
|
-
?
|
|
7672
|
-
:
|
|
7673
|
-
? this.getPanel(referenceGroup.id)
|
|
7674
|
-
? referenceGroup.id
|
|
7675
|
-
: undefined
|
|
7676
|
-
: undefined,
|
|
7735
|
+
referenceGroup: isValidReferenceGroup
|
|
7736
|
+
? referenceGroup.id
|
|
7737
|
+
: undefined,
|
|
7677
7738
|
disposable: {
|
|
7678
7739
|
dispose: () => {
|
|
7679
7740
|
popoutWindowDisposable.dispose();
|
|
@@ -8022,6 +8083,9 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8022
8083
|
data: group.popoutGroup.toJSON(),
|
|
8023
8084
|
gridReferenceGroup: group.referenceGroup,
|
|
8024
8085
|
position: group.window.dimensions(),
|
|
8086
|
+
url: group.popoutGroup.api.location.type === 'popout'
|
|
8087
|
+
? group.popoutGroup.api.location.popoutUrl
|
|
8088
|
+
: undefined,
|
|
8025
8089
|
};
|
|
8026
8090
|
});
|
|
8027
8091
|
const result = {
|
|
@@ -8108,7 +8172,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8108
8172
|
}
|
|
8109
8173
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
8110
8174
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
8111
|
-
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
8175
|
+
const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
|
|
8112
8176
|
const group = createGroupFromSerializedState(data);
|
|
8113
8177
|
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
8114
8178
|
? this.getPanel(gridReferenceGroup)
|
|
@@ -8117,6 +8181,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8117
8181
|
overridePopoutGroup: gridReferenceGroup
|
|
8118
8182
|
? group
|
|
8119
8183
|
: undefined,
|
|
8184
|
+
popoutUrl: url,
|
|
8120
8185
|
});
|
|
8121
8186
|
}
|
|
8122
8187
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -8326,7 +8391,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8326
8391
|
}
|
|
8327
8392
|
removePanel(panel, options = {
|
|
8328
8393
|
removeEmptyGroup: true,
|
|
8329
|
-
skipDispose: false,
|
|
8330
8394
|
}) {
|
|
8331
8395
|
const group = panel.group;
|
|
8332
8396
|
if (!group) {
|