dockview-core 2.0.0 → 2.1.1
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 +53 -19
- 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 +129 -65
- 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 +128 -64
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +129 -65
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +129 -65
- 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 +129 -65
- 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 +128 -64
- 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 +53 -19
- 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.1
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -2193,6 +2193,7 @@
|
|
|
2193
2193
|
if (this.hasMaximizedView()) {
|
|
2194
2194
|
this.exitMaximizedView();
|
|
2195
2195
|
}
|
|
2196
|
+
serializeBranchNode(this.getView(), this.orientation);
|
|
2196
2197
|
const hiddenOnMaximize = [];
|
|
2197
2198
|
function hideAllViewsBut(parent, exclude) {
|
|
2198
2199
|
for (let i = 0; i < parent.children.length; i++) {
|
|
@@ -2214,7 +2215,10 @@
|
|
|
2214
2215
|
}
|
|
2215
2216
|
hideAllViewsBut(this.root, node);
|
|
2216
2217
|
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2217
|
-
this._onDidMaximizedNodeChange.fire(
|
|
2218
|
+
this._onDidMaximizedNodeChange.fire({
|
|
2219
|
+
view: node.view,
|
|
2220
|
+
isMaximized: true,
|
|
2221
|
+
});
|
|
2218
2222
|
}
|
|
2219
2223
|
exitMaximizedView() {
|
|
2220
2224
|
if (!this._maximizedNode) {
|
|
@@ -2235,24 +2239,51 @@
|
|
|
2235
2239
|
}
|
|
2236
2240
|
}
|
|
2237
2241
|
showViewsInReverseOrder(this.root);
|
|
2242
|
+
const tmp = this._maximizedNode.leaf;
|
|
2238
2243
|
this._maximizedNode = undefined;
|
|
2239
|
-
this._onDidMaximizedNodeChange.fire(
|
|
2244
|
+
this._onDidMaximizedNodeChange.fire({
|
|
2245
|
+
view: tmp.view,
|
|
2246
|
+
isMaximized: false,
|
|
2247
|
+
});
|
|
2240
2248
|
}
|
|
2241
2249
|
serialize() {
|
|
2250
|
+
const maximizedView = this.maximizedView();
|
|
2251
|
+
let maxmizedViewLocation;
|
|
2252
|
+
if (maximizedView) {
|
|
2253
|
+
/**
|
|
2254
|
+
* The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
|
|
2255
|
+
* which is represented as a branch of indices
|
|
2256
|
+
*/
|
|
2257
|
+
maxmizedViewLocation = getGridLocation(maximizedView.element);
|
|
2258
|
+
}
|
|
2242
2259
|
if (this.hasMaximizedView()) {
|
|
2243
2260
|
/**
|
|
2244
|
-
*
|
|
2245
|
-
*
|
|
2261
|
+
* the saved layout cannot be in its maxmized state otherwise all of the underlying
|
|
2262
|
+
* view dimensions will be wrong
|
|
2263
|
+
*
|
|
2264
|
+
* To counteract this we temporaily remove the maximized view to compute the serialized output
|
|
2265
|
+
* of the grid before adding back the maxmized view as to not alter the layout from the users
|
|
2266
|
+
* perspective when `.toJSON()` is called
|
|
2246
2267
|
*/
|
|
2247
2268
|
this.exitMaximizedView();
|
|
2248
2269
|
}
|
|
2249
2270
|
const root = serializeBranchNode(this.getView(), this.orientation);
|
|
2250
|
-
|
|
2271
|
+
const resullt = {
|
|
2251
2272
|
root,
|
|
2252
2273
|
width: this.width,
|
|
2253
2274
|
height: this.height,
|
|
2254
2275
|
orientation: this.orientation,
|
|
2255
2276
|
};
|
|
2277
|
+
if (maxmizedViewLocation) {
|
|
2278
|
+
resullt.maximizedNode = {
|
|
2279
|
+
location: maxmizedViewLocation,
|
|
2280
|
+
};
|
|
2281
|
+
}
|
|
2282
|
+
if (maximizedView) {
|
|
2283
|
+
// replace any maximzied view that was removed for serialization purposes
|
|
2284
|
+
this.maximizeView(maximizedView);
|
|
2285
|
+
}
|
|
2286
|
+
return resullt;
|
|
2256
2287
|
}
|
|
2257
2288
|
dispose() {
|
|
2258
2289
|
this.disposable.dispose();
|
|
@@ -2271,6 +2302,19 @@
|
|
|
2271
2302
|
const orientation = json.orientation;
|
|
2272
2303
|
const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
|
|
2273
2304
|
this._deserialize(json.root, orientation, deserializer, height);
|
|
2305
|
+
/**
|
|
2306
|
+
* The deserialied layout must be positioned through this.layout(...)
|
|
2307
|
+
* before any maximizedNode can be positioned
|
|
2308
|
+
*/
|
|
2309
|
+
this.layout(json.width, json.height);
|
|
2310
|
+
if (json.maximizedNode) {
|
|
2311
|
+
const location = json.maximizedNode.location;
|
|
2312
|
+
const [_, node] = this.getNode(location);
|
|
2313
|
+
if (!(node instanceof LeafNode)) {
|
|
2314
|
+
return;
|
|
2315
|
+
}
|
|
2316
|
+
this.maximizeView(node.view);
|
|
2317
|
+
}
|
|
2274
2318
|
}
|
|
2275
2319
|
_deserialize(root, orientation, deserializer, orthogonalSize) {
|
|
2276
2320
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
@@ -2695,6 +2739,8 @@
|
|
|
2695
2739
|
this.onDidRemove = this._onDidRemove.event;
|
|
2696
2740
|
this._onDidAdd = new Emitter();
|
|
2697
2741
|
this.onDidAdd = this._onDidAdd.event;
|
|
2742
|
+
this._onDidMaximizedChange = new Emitter();
|
|
2743
|
+
this.onDidMaximizedChange = this._onDidMaximizedChange.event;
|
|
2698
2744
|
this._onDidActiveChange = new Emitter();
|
|
2699
2745
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2700
2746
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
@@ -2710,7 +2756,12 @@
|
|
|
2710
2756
|
this.gridview.locked = !!options.locked;
|
|
2711
2757
|
this.element.appendChild(this.gridview.element);
|
|
2712
2758
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2713
|
-
this.addDisposables(this.gridview.
|
|
2759
|
+
this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
|
|
2760
|
+
this._onDidMaximizedChange.fire({
|
|
2761
|
+
panel: event.view,
|
|
2762
|
+
isMaximized: event.isMaximized,
|
|
2763
|
+
});
|
|
2764
|
+
}), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2714
2765
|
this.layout(this.width, this.height, true);
|
|
2715
2766
|
}), exports.DockviewDisposable.from(() => {
|
|
2716
2767
|
var _a;
|
|
@@ -2760,9 +2811,6 @@
|
|
|
2760
2811
|
hasMaximizedGroup() {
|
|
2761
2812
|
return this.gridview.hasMaximizedView();
|
|
2762
2813
|
}
|
|
2763
|
-
get onDidMaximizedGroupChange() {
|
|
2764
|
-
return this.gridview.onDidMaximizedNodeChange;
|
|
2765
|
-
}
|
|
2766
2814
|
doAddGroup(group, location = [0], size) {
|
|
2767
2815
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
|
|
2768
2816
|
this._onDidAdd.fire(group);
|
|
@@ -4772,7 +4820,6 @@
|
|
|
4772
4820
|
this.onDragStart = this._onDragStart.event;
|
|
4773
4821
|
this._element = document.createElement('div');
|
|
4774
4822
|
this._element.className = 'dv-void-container';
|
|
4775
|
-
this._element.tabIndex = 0;
|
|
4776
4823
|
this._element.draggable = true;
|
|
4777
4824
|
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
|
|
4778
4825
|
this.accessor.doSetGroupActive(this.group);
|
|
@@ -5086,6 +5133,7 @@
|
|
|
5086
5133
|
disableDnd: undefined,
|
|
5087
5134
|
gap: undefined,
|
|
5088
5135
|
className: undefined,
|
|
5136
|
+
noPanelsOverlay: undefined,
|
|
5089
5137
|
};
|
|
5090
5138
|
return Object.keys(properties);
|
|
5091
5139
|
})();
|
|
@@ -5526,7 +5574,10 @@
|
|
|
5526
5574
|
this.doClose(panel);
|
|
5527
5575
|
}
|
|
5528
5576
|
doClose(panel) {
|
|
5529
|
-
this.accessor.
|
|
5577
|
+
const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
|
|
5578
|
+
this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
|
|
5579
|
+
? { removeEmptyGroup: false }
|
|
5580
|
+
: undefined);
|
|
5530
5581
|
}
|
|
5531
5582
|
isPanelActive(panel) {
|
|
5532
5583
|
return this._activePanel === panel;
|
|
@@ -5632,7 +5683,6 @@
|
|
|
5632
5683
|
}
|
|
5633
5684
|
updateContainer() {
|
|
5634
5685
|
var _a, _b;
|
|
5635
|
-
toggleClass(this.container, 'dv-empty', this.isEmpty);
|
|
5636
5686
|
this.panels.forEach((panel) => panel.runEvents());
|
|
5637
5687
|
if (this.isEmpty && !this.watermark) {
|
|
5638
5688
|
const watermark = this.accessor.createWatermarkComponent();
|
|
@@ -5646,14 +5696,12 @@
|
|
|
5646
5696
|
this.accessor.doSetGroupActive(this.groupPanel);
|
|
5647
5697
|
}
|
|
5648
5698
|
});
|
|
5649
|
-
this.tabsContainer.hide();
|
|
5650
5699
|
this.contentContainer.element.appendChild(this.watermark.element);
|
|
5651
5700
|
}
|
|
5652
5701
|
if (!this.isEmpty && this.watermark) {
|
|
5653
5702
|
this.watermark.element.remove();
|
|
5654
5703
|
(_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
5655
5704
|
this.watermark = undefined;
|
|
5656
|
-
this.tabsContainer.show();
|
|
5657
5705
|
}
|
|
5658
5706
|
}
|
|
5659
5707
|
canDisplayOverlay(event, position, target) {
|
|
@@ -6581,38 +6629,9 @@
|
|
|
6581
6629
|
super();
|
|
6582
6630
|
this._element = document.createElement('div');
|
|
6583
6631
|
this._element.className = 'dv-watermark';
|
|
6584
|
-
const title = document.createElement('div');
|
|
6585
|
-
title.className = 'dv-watermark-title';
|
|
6586
|
-
const emptySpace = document.createElement('span');
|
|
6587
|
-
emptySpace.style.flexGrow = '1';
|
|
6588
|
-
const content = document.createElement('div');
|
|
6589
|
-
content.className = 'dv-watermark-content';
|
|
6590
|
-
this._element.appendChild(title);
|
|
6591
|
-
this._element.appendChild(content);
|
|
6592
|
-
const actionsContainer = document.createElement('div');
|
|
6593
|
-
actionsContainer.className = 'dv-actions-container';
|
|
6594
|
-
const closeAnchor = document.createElement('div');
|
|
6595
|
-
closeAnchor.className = 'dv-close-action';
|
|
6596
|
-
closeAnchor.appendChild(createCloseButton());
|
|
6597
|
-
actionsContainer.appendChild(closeAnchor);
|
|
6598
|
-
title.appendChild(emptySpace);
|
|
6599
|
-
title.appendChild(actionsContainer);
|
|
6600
|
-
this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
|
|
6601
|
-
var _a;
|
|
6602
|
-
event.preventDefault();
|
|
6603
|
-
if (this._group) {
|
|
6604
|
-
(_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
|
|
6605
|
-
}
|
|
6606
|
-
}));
|
|
6607
6632
|
}
|
|
6608
6633
|
init(_params) {
|
|
6609
|
-
|
|
6610
|
-
this._group = _params.group;
|
|
6611
|
-
this.render();
|
|
6612
|
-
}
|
|
6613
|
-
render() {
|
|
6614
|
-
const isOneGroup = !!(this._api && this._api.size <= 1);
|
|
6615
|
-
toggleClass(this.element, 'dv-has-actions', isOneGroup);
|
|
6634
|
+
// noop
|
|
6616
6635
|
}
|
|
6617
6636
|
}
|
|
6618
6637
|
|
|
@@ -6649,6 +6668,9 @@
|
|
|
6649
6668
|
get element() {
|
|
6650
6669
|
return this._element;
|
|
6651
6670
|
}
|
|
6671
|
+
get isVisible() {
|
|
6672
|
+
return this._isVisible;
|
|
6673
|
+
}
|
|
6652
6674
|
constructor(options) {
|
|
6653
6675
|
super();
|
|
6654
6676
|
this.options = options;
|
|
@@ -6659,6 +6681,7 @@
|
|
|
6659
6681
|
this.onDidChangeEnd = this._onDidChangeEnd.event;
|
|
6660
6682
|
this.addDisposables(this._onDidChange, this._onDidChangeEnd);
|
|
6661
6683
|
this._element.className = 'dv-resize-container';
|
|
6684
|
+
this._isVisible = true;
|
|
6662
6685
|
this.setupResize('top');
|
|
6663
6686
|
this.setupResize('bottom');
|
|
6664
6687
|
this.setupResize('left');
|
|
@@ -6673,6 +6696,13 @@
|
|
|
6673
6696
|
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 })));
|
|
6674
6697
|
arialLevelTracker.push(this._element);
|
|
6675
6698
|
}
|
|
6699
|
+
setVisible(isVisible) {
|
|
6700
|
+
if (isVisible === this.isVisible) {
|
|
6701
|
+
return;
|
|
6702
|
+
}
|
|
6703
|
+
this._isVisible = isVisible;
|
|
6704
|
+
toggleClass(this.element, 'dv-hidden', !this.isVisible);
|
|
6705
|
+
}
|
|
6676
6706
|
bringToFront() {
|
|
6677
6707
|
arialLevelTracker.push(this._element);
|
|
6678
6708
|
}
|
|
@@ -7432,6 +7462,8 @@
|
|
|
7432
7462
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7433
7463
|
this._onDidMovePanel = new Emitter();
|
|
7434
7464
|
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7465
|
+
this._onDidMaximizedGroupChange = new Emitter();
|
|
7466
|
+
this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
|
|
7435
7467
|
this._floatingGroups = [];
|
|
7436
7468
|
this._popoutGroups = [];
|
|
7437
7469
|
this._onDidRemoveGroup = new Emitter();
|
|
@@ -7458,6 +7490,11 @@
|
|
|
7458
7490
|
if (!this._moving) {
|
|
7459
7491
|
this._onDidActiveGroupChange.fire(event);
|
|
7460
7492
|
}
|
|
7493
|
+
}), this.onDidMaximizedChange((event) => {
|
|
7494
|
+
this._onDidMaximizedGroupChange.fire({
|
|
7495
|
+
group: event.panel,
|
|
7496
|
+
isMaximized: event.isMaximized,
|
|
7497
|
+
});
|
|
7461
7498
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7462
7499
|
this.updateWatermark();
|
|
7463
7500
|
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
@@ -7556,8 +7593,28 @@
|
|
|
7556
7593
|
this._api = new DockviewApi(this);
|
|
7557
7594
|
this.updateWatermark();
|
|
7558
7595
|
}
|
|
7596
|
+
setVisible(panel, visible) {
|
|
7597
|
+
switch (panel.api.location.type) {
|
|
7598
|
+
case 'grid':
|
|
7599
|
+
super.setVisible(panel, visible);
|
|
7600
|
+
break;
|
|
7601
|
+
case 'floating': {
|
|
7602
|
+
const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
|
|
7603
|
+
if (item) {
|
|
7604
|
+
item.overlay.setVisible(visible);
|
|
7605
|
+
panel.api._onDidVisibilityChange.fire({
|
|
7606
|
+
isVisible: visible,
|
|
7607
|
+
});
|
|
7608
|
+
}
|
|
7609
|
+
break;
|
|
7610
|
+
}
|
|
7611
|
+
case 'popout':
|
|
7612
|
+
console.warn('dockview: You cannot hide a group that is in a popout window');
|
|
7613
|
+
break;
|
|
7614
|
+
}
|
|
7615
|
+
}
|
|
7559
7616
|
addPopoutGroup(itemToPopout, options) {
|
|
7560
|
-
var _a, _b, _c;
|
|
7617
|
+
var _a, _b, _c, _d, _e;
|
|
7561
7618
|
if (itemToPopout instanceof DockviewPanel &&
|
|
7562
7619
|
itemToPopout.group.size === 1) {
|
|
7563
7620
|
return this.addPopoutGroup(itemToPopout.group, options);
|
|
@@ -7580,7 +7637,7 @@
|
|
|
7580
7637
|
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();
|
|
7581
7638
|
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7582
7639
|
theme !== null && theme !== void 0 ? theme : '', {
|
|
7583
|
-
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
7640
|
+
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',
|
|
7584
7641
|
left: window.screenX + box.left,
|
|
7585
7642
|
top: window.screenY + box.top,
|
|
7586
7643
|
width: box.width,
|
|
@@ -7594,7 +7651,6 @@
|
|
|
7594
7651
|
return _window
|
|
7595
7652
|
.open()
|
|
7596
7653
|
.then((popoutContainer) => {
|
|
7597
|
-
var _a;
|
|
7598
7654
|
if (_window.isDisposed) {
|
|
7599
7655
|
return false;
|
|
7600
7656
|
}
|
|
@@ -7614,14 +7670,19 @@
|
|
|
7614
7670
|
* of this case is when being called from the `fromJSON(...)` method
|
|
7615
7671
|
*/
|
|
7616
7672
|
const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
|
|
7617
|
-
|
|
7618
|
-
|
|
7619
|
-
|
|
7620
|
-
|
|
7621
|
-
|
|
7622
|
-
|
|
7673
|
+
let group;
|
|
7674
|
+
if (!isGroupAddedToDom) {
|
|
7675
|
+
group = referenceGroup;
|
|
7676
|
+
}
|
|
7677
|
+
else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
|
|
7678
|
+
group = options.overridePopoutGroup;
|
|
7679
|
+
}
|
|
7680
|
+
else {
|
|
7681
|
+
group = this.createGroup({ id: groupId });
|
|
7623
7682
|
this._onDidAddGroup.fire(group);
|
|
7624
7683
|
}
|
|
7684
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7685
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
7625
7686
|
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
|
|
7626
7687
|
if (itemToPopout instanceof DockviewPanel) {
|
|
7627
7688
|
this.movingLock(() => {
|
|
@@ -7652,6 +7713,7 @@
|
|
|
7652
7713
|
group.model.location = {
|
|
7653
7714
|
type: 'popout',
|
|
7654
7715
|
getWindow: () => _window.window,
|
|
7716
|
+
popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
|
|
7655
7717
|
};
|
|
7656
7718
|
if (isGroupAddedToDom &&
|
|
7657
7719
|
itemToPopout.api.location.type === 'grid') {
|
|
@@ -7668,16 +7730,15 @@
|
|
|
7668
7730
|
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7669
7731
|
}));
|
|
7670
7732
|
let returnedGroup;
|
|
7733
|
+
const isValidReferenceGroup = isGroupAddedToDom &&
|
|
7734
|
+
referenceGroup &&
|
|
7735
|
+
this.getPanel(referenceGroup.id);
|
|
7671
7736
|
const value = {
|
|
7672
7737
|
window: _window,
|
|
7673
7738
|
popoutGroup: group,
|
|
7674
|
-
referenceGroup:
|
|
7675
|
-
?
|
|
7676
|
-
:
|
|
7677
|
-
? this.getPanel(referenceGroup.id)
|
|
7678
|
-
? referenceGroup.id
|
|
7679
|
-
: undefined
|
|
7680
|
-
: undefined,
|
|
7739
|
+
referenceGroup: isValidReferenceGroup
|
|
7740
|
+
? referenceGroup.id
|
|
7741
|
+
: undefined,
|
|
7681
7742
|
disposable: {
|
|
7682
7743
|
dispose: () => {
|
|
7683
7744
|
popoutWindowDisposable.dispose();
|
|
@@ -8026,6 +8087,9 @@
|
|
|
8026
8087
|
data: group.popoutGroup.toJSON(),
|
|
8027
8088
|
gridReferenceGroup: group.referenceGroup,
|
|
8028
8089
|
position: group.window.dimensions(),
|
|
8090
|
+
url: group.popoutGroup.api.location.type === 'popout'
|
|
8091
|
+
? group.popoutGroup.api.location.popoutUrl
|
|
8092
|
+
: undefined,
|
|
8029
8093
|
};
|
|
8030
8094
|
});
|
|
8031
8095
|
const result = {
|
|
@@ -8112,7 +8176,7 @@
|
|
|
8112
8176
|
}
|
|
8113
8177
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
8114
8178
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
8115
|
-
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
8179
|
+
const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
|
|
8116
8180
|
const group = createGroupFromSerializedState(data);
|
|
8117
8181
|
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
8118
8182
|
? this.getPanel(gridReferenceGroup)
|
|
@@ -8121,6 +8185,7 @@
|
|
|
8121
8185
|
overridePopoutGroup: gridReferenceGroup
|
|
8122
8186
|
? group
|
|
8123
8187
|
: undefined,
|
|
8188
|
+
popoutUrl: url,
|
|
8124
8189
|
});
|
|
8125
8190
|
}
|
|
8126
8191
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -8330,7 +8395,6 @@
|
|
|
8330
8395
|
}
|
|
8331
8396
|
removePanel(panel, options = {
|
|
8332
8397
|
removeEmptyGroup: true,
|
|
8333
|
-
skipDispose: false,
|
|
8334
8398
|
}) {
|
|
8335
8399
|
const group = panel.group;
|
|
8336
8400
|
if (!group) {
|
|
@@ -8474,7 +8538,7 @@
|
|
|
8474
8538
|
const refGroup = selectedGroup.referenceGroup
|
|
8475
8539
|
? this.getPanel(selectedGroup.referenceGroup)
|
|
8476
8540
|
: undefined;
|
|
8477
|
-
if (refGroup) {
|
|
8541
|
+
if (refGroup && refGroup.panels.length === 0) {
|
|
8478
8542
|
this.removeGroup(refGroup);
|
|
8479
8543
|
}
|
|
8480
8544
|
}
|