dockview 1.2.0 → 1.3.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 -3
- package/dist/cjs/api/component.api.js +1 -1
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.js +1 -1
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/droptarget.js +3 -3
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +3 -3
- package/dist/cjs/dockview/components/watermark/watermark.js +4 -4
- package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +3 -2
- package/dist/cjs/dockview/dockviewComponent.js +16 -4
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +26 -0
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.js +2 -0
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.js +1 -1
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.js +1 -1
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +1 -6
- package/dist/cjs/gridview/gridviewComponent.js +28 -8
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/groupview/groupview.d.ts +3 -2
- package/dist/cjs/groupview/groupview.js +15 -6
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/panel/content.d.ts +1 -1
- package/dist/cjs/groupview/panel/content.js +1 -1
- package/dist/cjs/groupview/panel/content.js.map +1 -1
- package/dist/cjs/hostedContainer.js +2 -2
- package/dist/cjs/hostedContainer.js.map +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneview.d.ts +3 -1
- package/dist/cjs/paneview/paneview.js +9 -4
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +6 -3
- package/dist/cjs/paneview/paneviewComponent.js +60 -8
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.js +18 -9
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -2
- package/dist/cjs/react/dockview/reactContentPart.js +2 -13
- package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -2
- package/dist/cjs/react/dockview/reactHeaderPart.js +2 -2
- package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +2 -2
- package/dist/cjs/react/dockview/reactWatermarkPart.js +2 -2
- package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
- package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +2 -2
- package/dist/cjs/react/dockview/v2/reactContentRenderer.js +2 -2
- package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
- package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
- package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +2 -2
- package/dist/cjs/react/dockview/v2/webviewContentRenderer.js.map +1 -1
- package/dist/cjs/react/gridview/view.d.ts +3 -2
- package/dist/cjs/react/gridview/view.js.map +1 -1
- package/dist/cjs/react/paneview/paneview.js +1 -1
- package/dist/cjs/react/paneview/paneview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.js +48 -5
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/dockview.amd.js +126 -74
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +126 -74
- package/dist/dockview.cjs.js +126 -74
- package/dist/dockview.esm.js +126 -74
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +126 -74
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +126 -74
- package/dist/esm/api/component.api.d.ts +2 -3
- package/dist/esm/api/component.api.js +1 -1
- package/dist/esm/dnd/abstractDragHandler.js +1 -1
- package/dist/esm/dnd/droptarget.js +3 -3
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +1 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +1 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts +3 -3
- package/dist/esm/dockview/components/watermark/watermark.js +4 -4
- package/dist/esm/dockview/dockviewComponent.d.ts +3 -2
- package/dist/esm/dockview/dockviewComponent.js +16 -4
- package/dist/esm/gridview/baseComponentGridview.js +4 -0
- package/dist/esm/gridview/basePanelView.js +2 -0
- package/dist/esm/gridview/branchNode.js +1 -1
- package/dist/esm/gridview/gridview.js +1 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +1 -6
- package/dist/esm/gridview/gridviewComponent.js +6 -8
- package/dist/esm/groupview/groupview.d.ts +3 -2
- package/dist/esm/groupview/groupview.js +8 -3
- package/dist/esm/groupview/panel/content.d.ts +1 -1
- package/dist/esm/groupview/panel/content.js +1 -1
- package/dist/esm/hostedContainer.js +2 -2
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +1 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js +1 -1
- package/dist/esm/paneview/paneview.d.ts +3 -1
- package/dist/esm/paneview/paneview.js +8 -4
- package/dist/esm/paneview/paneviewComponent.d.ts +6 -3
- package/dist/esm/paneview/paneviewComponent.js +26 -7
- package/dist/esm/react/dockview/dockview.js +18 -9
- package/dist/esm/react/dockview/reactContentPart.d.ts +2 -2
- package/dist/esm/react/dockview/reactContentPart.js +2 -13
- package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -2
- package/dist/esm/react/dockview/reactHeaderPart.js +2 -2
- package/dist/esm/react/dockview/reactWatermarkPart.d.ts +2 -2
- package/dist/esm/react/dockview/reactWatermarkPart.js +2 -2
- package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +2 -2
- package/dist/esm/react/dockview/v2/reactContentRenderer.js +2 -2
- package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
- package/dist/esm/react/dockview/v2/webviewContentRenderer.js +2 -2
- package/dist/esm/react/gridview/view.d.ts +3 -2
- package/dist/esm/react/paneview/paneview.js +1 -1
- package/dist/esm/splitview/splitviewComponent.js +15 -5
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.3.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -312,7 +312,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
312
312
|
this.component.layout(width, height);
|
|
313
313
|
}
|
|
314
314
|
addPanel(options) {
|
|
315
|
-
|
|
315
|
+
this.component.addPanel(options);
|
|
316
316
|
}
|
|
317
317
|
resizeToFit() {
|
|
318
318
|
this.component.resizeToFit();
|
|
@@ -1532,7 +1532,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
1532
1532
|
});
|
|
1533
1533
|
// if we've added views from the descriptor we need to
|
|
1534
1534
|
// add the panes to our Pane array and setup animation
|
|
1535
|
-
this.getPanes().forEach((pane
|
|
1535
|
+
this.getPanes().forEach((pane) => {
|
|
1536
1536
|
const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
|
|
1537
1537
|
this.setupAnimation();
|
|
1538
1538
|
this._onDidChange.fire(undefined);
|
|
@@ -1600,17 +1600,20 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
1600
1600
|
getPanes() {
|
|
1601
1601
|
return this.splitview.getViews();
|
|
1602
1602
|
}
|
|
1603
|
-
removePane(index) {
|
|
1603
|
+
removePane(index, options = { skipDispose: false }) {
|
|
1604
1604
|
const paneItem = this.paneItems.splice(index, 1)[0];
|
|
1605
1605
|
this.splitview.removeView(index);
|
|
1606
|
-
|
|
1606
|
+
if (!options.skipDispose) {
|
|
1607
|
+
paneItem.disposable.dispose();
|
|
1608
|
+
paneItem.pane.dispose();
|
|
1609
|
+
}
|
|
1607
1610
|
return paneItem;
|
|
1608
1611
|
}
|
|
1609
1612
|
moveView(from, to) {
|
|
1610
1613
|
if (from === to) {
|
|
1611
1614
|
return;
|
|
1612
1615
|
}
|
|
1613
|
-
const view = this.removePane(from);
|
|
1616
|
+
const view = this.removePane(from, { skipDispose: true });
|
|
1614
1617
|
this.skipAnimation = true;
|
|
1615
1618
|
try {
|
|
1616
1619
|
this.addPane(view.pane, view.pane.size, to, false);
|
|
@@ -1644,6 +1647,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
1644
1647
|
}
|
|
1645
1648
|
this.paneItems.forEach((paneItem) => {
|
|
1646
1649
|
paneItem.disposable.dispose();
|
|
1650
|
+
paneItem.pane.dispose();
|
|
1647
1651
|
});
|
|
1648
1652
|
this.paneItems = [];
|
|
1649
1653
|
this.splitview.dispose();
|
|
@@ -1710,7 +1714,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
1710
1714
|
this._onDrop = new Emitter();
|
|
1711
1715
|
this.onDrop = this._onDrop.event;
|
|
1712
1716
|
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
1713
|
-
onDragEnter: (
|
|
1717
|
+
onDragEnter: () => undefined,
|
|
1714
1718
|
onDragOver: (e) => {
|
|
1715
1719
|
if (isBooleanValue(this.options.canDisplayOverlay)) {
|
|
1716
1720
|
if (!this.options.canDisplayOverlay) {
|
|
@@ -1751,10 +1755,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
1751
1755
|
this.toggleClasses(quadrant, isSmallX, isSmallY);
|
|
1752
1756
|
this.setState(quadrant);
|
|
1753
1757
|
},
|
|
1754
|
-
onDragLeave: (
|
|
1758
|
+
onDragLeave: () => {
|
|
1755
1759
|
this.removeDropTarget();
|
|
1756
1760
|
},
|
|
1757
|
-
onDragEnd: (
|
|
1761
|
+
onDragEnd: () => {
|
|
1758
1762
|
this.removeDropTarget();
|
|
1759
1763
|
},
|
|
1760
1764
|
onDrop: (e) => {
|
|
@@ -2151,7 +2155,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2151
2155
|
}
|
|
2152
2156
|
setupChildrenEvents() {
|
|
2153
2157
|
this._childrenDisposable.dispose();
|
|
2154
|
-
this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))((
|
|
2158
|
+
this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))(() => {
|
|
2155
2159
|
/**
|
|
2156
2160
|
* indicate a change has occured to allows any re-rendering but don't bubble
|
|
2157
2161
|
* event because that was specific to this branch
|
|
@@ -2514,7 +2518,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2514
2518
|
const [parentIndex, ...__] = [...rest].reverse();
|
|
2515
2519
|
const isSiblingVisible = parent.isChildVisible(0);
|
|
2516
2520
|
parent.removeChild(0, sizing);
|
|
2517
|
-
const sizes = grandParent.children.map((
|
|
2521
|
+
const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
|
|
2518
2522
|
grandParent.removeChild(parentIndex, sizing);
|
|
2519
2523
|
if (sibling instanceof BranchNode) {
|
|
2520
2524
|
sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
|
|
@@ -2613,7 +2617,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2613
2617
|
}
|
|
2614
2618
|
this.disposable.value = disposable;
|
|
2615
2619
|
}
|
|
2616
|
-
layout(
|
|
2620
|
+
layout(_width, _height) {
|
|
2617
2621
|
// noop
|
|
2618
2622
|
}
|
|
2619
2623
|
closePanel() {
|
|
@@ -2661,7 +2665,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2661
2665
|
if (event.dataTransfer) {
|
|
2662
2666
|
event.dataTransfer.effectAllowed = 'move';
|
|
2663
2667
|
}
|
|
2664
|
-
}), addDisposableListener(this.el, 'dragend', (
|
|
2668
|
+
}), addDisposableListener(this.el, 'dragend', () => {
|
|
2665
2669
|
for (const iframe of this.iframes) {
|
|
2666
2670
|
iframe.style.pointerEvents = 'auto';
|
|
2667
2671
|
}
|
|
@@ -3028,6 +3032,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3028
3032
|
get maximumWidth() {
|
|
3029
3033
|
return Number.MAX_SAFE_INTEGER;
|
|
3030
3034
|
}
|
|
3035
|
+
get hasWatermark() {
|
|
3036
|
+
return !!(this.watermark && this.container.contains(this.watermark.element));
|
|
3037
|
+
}
|
|
3031
3038
|
initialize() {
|
|
3032
3039
|
var _a, _b;
|
|
3033
3040
|
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
@@ -3106,10 +3113,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3106
3113
|
containsPanel(panel) {
|
|
3107
3114
|
return this.panels.includes(panel);
|
|
3108
3115
|
}
|
|
3109
|
-
init(
|
|
3116
|
+
init(_params) {
|
|
3110
3117
|
//noop
|
|
3111
3118
|
}
|
|
3112
|
-
update(
|
|
3119
|
+
update(_params) {
|
|
3113
3120
|
//noop
|
|
3114
3121
|
}
|
|
3115
3122
|
focus() {
|
|
@@ -3332,10 +3339,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3332
3339
|
}
|
|
3333
3340
|
}
|
|
3334
3341
|
dispose() {
|
|
3342
|
+
var _a;
|
|
3343
|
+
super.dispose();
|
|
3344
|
+
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
3335
3345
|
for (const panel of this.panels) {
|
|
3336
3346
|
panel.dispose();
|
|
3337
3347
|
}
|
|
3338
|
-
super.dispose();
|
|
3339
3348
|
this.dropTarget.dispose();
|
|
3340
3349
|
this.tabsContainer.dispose();
|
|
3341
3350
|
this.contentContainer.dispose();
|
|
@@ -3438,6 +3447,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3438
3447
|
const view = this.gridview.remove(group, exports.Sizing.Distribute);
|
|
3439
3448
|
if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
3440
3449
|
item.disposable.dispose();
|
|
3450
|
+
item.value.dispose();
|
|
3441
3451
|
this._groups.delete(group.id);
|
|
3442
3452
|
}
|
|
3443
3453
|
this._onDidRemoveGroup.fire(group);
|
|
@@ -3528,6 +3538,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3528
3538
|
this._onDidAddGroup.dispose();
|
|
3529
3539
|
this._onDidRemoveGroup.dispose();
|
|
3530
3540
|
this._onDidLayoutChange.dispose();
|
|
3541
|
+
for (const group of this.groups) {
|
|
3542
|
+
group.dispose();
|
|
3543
|
+
}
|
|
3531
3544
|
this.gridview.dispose();
|
|
3532
3545
|
}
|
|
3533
3546
|
}
|
|
@@ -3857,7 +3870,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3857
3870
|
get id() {
|
|
3858
3871
|
return 'watermark';
|
|
3859
3872
|
}
|
|
3860
|
-
update(
|
|
3873
|
+
update(_event) {
|
|
3861
3874
|
// noop
|
|
3862
3875
|
}
|
|
3863
3876
|
focus() {
|
|
@@ -3866,17 +3879,17 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3866
3879
|
toJSON() {
|
|
3867
3880
|
return {};
|
|
3868
3881
|
}
|
|
3869
|
-
layout(
|
|
3882
|
+
layout(_width, _height) {
|
|
3870
3883
|
// noop
|
|
3871
3884
|
}
|
|
3872
3885
|
init(params) {
|
|
3873
3886
|
this.params = params;
|
|
3874
|
-
this.addDisposables(this.params.containerApi.onDidLayoutChange((
|
|
3887
|
+
this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
|
|
3875
3888
|
this.render();
|
|
3876
3889
|
}));
|
|
3877
3890
|
this.render();
|
|
3878
3891
|
}
|
|
3879
|
-
updateParentGroup(group,
|
|
3892
|
+
updateParentGroup(group, _visible) {
|
|
3880
3893
|
this.group = group;
|
|
3881
3894
|
this.render();
|
|
3882
3895
|
}
|
|
@@ -4051,7 +4064,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4051
4064
|
this._isGroupActive = group.isActive;
|
|
4052
4065
|
this.render();
|
|
4053
4066
|
}
|
|
4054
|
-
layout(
|
|
4067
|
+
layout(_width, _height) {
|
|
4055
4068
|
// noop
|
|
4056
4069
|
}
|
|
4057
4070
|
render() {
|
|
@@ -4125,8 +4138,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4125
4138
|
};
|
|
4126
4139
|
}
|
|
4127
4140
|
dispose() {
|
|
4141
|
+
var _a;
|
|
4128
4142
|
super.dispose();
|
|
4129
4143
|
this.api.dispose();
|
|
4144
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4130
4145
|
}
|
|
4131
4146
|
}
|
|
4132
4147
|
|
|
@@ -4571,7 +4586,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4571
4586
|
}
|
|
4572
4587
|
addPanel(options) {
|
|
4573
4588
|
var _a, _b;
|
|
4574
|
-
|
|
4589
|
+
if (this.panels.find((_) => _.id === options.id)) {
|
|
4590
|
+
throw new Error(`panel with id ${options.id} already exists`);
|
|
4591
|
+
}
|
|
4592
|
+
const panel = this.createPanel(options);
|
|
4575
4593
|
let referenceGroup;
|
|
4576
4594
|
if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
|
|
4577
4595
|
const referencePanel = this.getGroupPanel(options.position.referencePanel);
|
|
@@ -4599,13 +4617,20 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4599
4617
|
}
|
|
4600
4618
|
return panel;
|
|
4601
4619
|
}
|
|
4602
|
-
removePanel(panel, options = {
|
|
4620
|
+
removePanel(panel, options = {
|
|
4621
|
+
removeEmptyGroup: true,
|
|
4622
|
+
skipDispose: false,
|
|
4623
|
+
}) {
|
|
4603
4624
|
const group = panel.group;
|
|
4604
4625
|
if (!group) {
|
|
4605
4626
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
4606
4627
|
}
|
|
4607
4628
|
group.model.removePanel(panel);
|
|
4608
|
-
|
|
4629
|
+
panel.dispose();
|
|
4630
|
+
const retainGroupForWatermark = this.size === 1;
|
|
4631
|
+
if (!retainGroupForWatermark &&
|
|
4632
|
+
group.model.size === 0 &&
|
|
4633
|
+
options.removeEmptyGroup) {
|
|
4609
4634
|
this.removeGroup(group);
|
|
4610
4635
|
}
|
|
4611
4636
|
}
|
|
@@ -4642,6 +4667,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4642
4667
|
for (const panel of panels) {
|
|
4643
4668
|
this.removePanel(panel, {
|
|
4644
4669
|
removeEmptyGroup: false,
|
|
4670
|
+
skipDispose: false,
|
|
4645
4671
|
});
|
|
4646
4672
|
}
|
|
4647
4673
|
super.doRemoveGroup(group, { skipActive });
|
|
@@ -4725,6 +4751,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4725
4751
|
}
|
|
4726
4752
|
}
|
|
4727
4753
|
const view = new GroupviewPanel(this, id, options);
|
|
4754
|
+
view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
|
|
4728
4755
|
if (!this._groups.has(view.id)) {
|
|
4729
4756
|
const disposable = new CompositeDisposable(view.model.onMove((event) => {
|
|
4730
4757
|
const { groupId, itemId, target, index } = event;
|
|
@@ -4758,7 +4785,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4758
4785
|
}
|
|
4759
4786
|
return view;
|
|
4760
4787
|
}
|
|
4761
|
-
|
|
4788
|
+
createPanel(options) {
|
|
4762
4789
|
const view = new DefaultGroupPanelView({
|
|
4763
4790
|
content: this.createContentComponent(options.id, options.component),
|
|
4764
4791
|
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
@@ -4859,7 +4886,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4859
4886
|
this.gridview.setViewVisible(getGridLocation(panel.element), visible);
|
|
4860
4887
|
}
|
|
4861
4888
|
setActive(panel) {
|
|
4862
|
-
this._groups.forEach((value,
|
|
4889
|
+
this._groups.forEach((value, _key) => {
|
|
4863
4890
|
value.value.setActive(panel === value.value);
|
|
4864
4891
|
});
|
|
4865
4892
|
}
|
|
@@ -4872,8 +4899,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4872
4899
|
}
|
|
4873
4900
|
fromJSON(serializedGridview, deferComponentLayout) {
|
|
4874
4901
|
const { grid, activePanel } = serializedGridview;
|
|
4902
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4903
|
+
for (const group of groups) {
|
|
4904
|
+
group.disposable.dispose();
|
|
4905
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4906
|
+
}
|
|
4875
4907
|
this.gridview.clear();
|
|
4876
|
-
this._groups.clear();
|
|
4877
4908
|
const queue = [];
|
|
4878
4909
|
this.gridview.deserialize(grid, {
|
|
4879
4910
|
fromJSON: (node) => {
|
|
@@ -4970,7 +5001,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4970
5001
|
});
|
|
4971
5002
|
this.registerPanel(view);
|
|
4972
5003
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
4973
|
-
return { api: view.api };
|
|
4974
5004
|
}
|
|
4975
5005
|
registerPanel(panel) {
|
|
4976
5006
|
const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
|
|
@@ -5021,11 +5051,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5021
5051
|
}
|
|
5022
5052
|
removeGroup(group) {
|
|
5023
5053
|
super.removeGroup(group);
|
|
5024
|
-
const panel = this._groups.get(group.id);
|
|
5025
|
-
if (panel) {
|
|
5026
|
-
panel.disposable.dispose();
|
|
5027
|
-
this._groups.delete(group.id);
|
|
5028
|
-
}
|
|
5029
5054
|
}
|
|
5030
5055
|
dispose() {
|
|
5031
5056
|
super.dispose();
|
|
@@ -5132,7 +5157,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5132
5157
|
}
|
|
5133
5158
|
removePanel(panel, sizing) {
|
|
5134
5159
|
const disposable = this.panels.get(panel.id);
|
|
5135
|
-
|
|
5160
|
+
if (!disposable) {
|
|
5161
|
+
throw new Error(`unknown splitview panel ${panel.id}`);
|
|
5162
|
+
}
|
|
5163
|
+
disposable.disposable.dispose();
|
|
5164
|
+
disposable.value.dispose();
|
|
5136
5165
|
this.panels.delete(panel.id);
|
|
5137
5166
|
const index = this.getPanels().findIndex((_) => _ === panel);
|
|
5138
5167
|
this.splitview.removeView(index, sizing);
|
|
@@ -5191,7 +5220,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5191
5220
|
}
|
|
5192
5221
|
this.setActive(view, true);
|
|
5193
5222
|
});
|
|
5194
|
-
this.panels.set(view.id, disposable);
|
|
5223
|
+
this.panels.set(view.id, { disposable, value: view });
|
|
5195
5224
|
}
|
|
5196
5225
|
toJSON() {
|
|
5197
5226
|
var _a;
|
|
@@ -5215,6 +5244,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5215
5244
|
}
|
|
5216
5245
|
fromJSON(serializedSplitview, deferComponentLayout = false) {
|
|
5217
5246
|
const { views, orientation, size, activeView } = serializedSplitview;
|
|
5247
|
+
for (const [_, value] of this.panels.entries()) {
|
|
5248
|
+
value.disposable.dispose();
|
|
5249
|
+
value.value.dispose();
|
|
5250
|
+
}
|
|
5251
|
+
this.panels.clear();
|
|
5218
5252
|
this.splitview.dispose();
|
|
5219
5253
|
const queue = [];
|
|
5220
5254
|
this.splitview = new Splitview(this.element, {
|
|
@@ -5270,9 +5304,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5270
5304
|
}
|
|
5271
5305
|
}
|
|
5272
5306
|
dispose() {
|
|
5273
|
-
|
|
5274
|
-
value.dispose();
|
|
5275
|
-
|
|
5307
|
+
for (const [_, value] of this.panels.entries()) {
|
|
5308
|
+
value.disposable.dispose();
|
|
5309
|
+
value.value.dispose();
|
|
5310
|
+
}
|
|
5276
5311
|
this.panels.clear();
|
|
5277
5312
|
this.splitview.dispose();
|
|
5278
5313
|
super.dispose();
|
|
@@ -5543,7 +5578,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5543
5578
|
})(this.header);
|
|
5544
5579
|
this.target = new Droptarget(this.element, {
|
|
5545
5580
|
validOverlays: 'vertical',
|
|
5546
|
-
canDisplayOverlay: (
|
|
5581
|
+
canDisplayOverlay: () => {
|
|
5547
5582
|
const data = getPaneData();
|
|
5548
5583
|
if (!data) {
|
|
5549
5584
|
return true;
|
|
@@ -5614,7 +5649,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5614
5649
|
this._expander.textContent = e.isExpanded ? '<' : '>';
|
|
5615
5650
|
});
|
|
5616
5651
|
}
|
|
5617
|
-
update(
|
|
5652
|
+
update(_params) {
|
|
5618
5653
|
//
|
|
5619
5654
|
}
|
|
5620
5655
|
dispose() {
|
|
@@ -5640,6 +5675,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5640
5675
|
super();
|
|
5641
5676
|
this.element = element;
|
|
5642
5677
|
this._disposable = new MutableDisposable();
|
|
5678
|
+
this._viewDisposables = new Map();
|
|
5643
5679
|
this._onDidLayoutChange = new Emitter();
|
|
5644
5680
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
5645
5681
|
this._onDidDrop = new Emitter();
|
|
@@ -5724,9 +5760,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5724
5760
|
isExpanded: !!options.isExpanded,
|
|
5725
5761
|
disableDnd: !!this.options.disableDnd,
|
|
5726
5762
|
});
|
|
5727
|
-
|
|
5728
|
-
this._onDidDrop.fire(event);
|
|
5729
|
-
}));
|
|
5763
|
+
this.doAddPanel(view);
|
|
5730
5764
|
const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
|
|
5731
5765
|
const index = typeof options.index === 'number' ? options.index : undefined;
|
|
5732
5766
|
view.init({
|
|
@@ -5739,7 +5773,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5739
5773
|
});
|
|
5740
5774
|
this.paneview.addPane(view, size, index);
|
|
5741
5775
|
view.orientation = this.paneview.orientation;
|
|
5742
|
-
return
|
|
5776
|
+
return view;
|
|
5743
5777
|
}
|
|
5744
5778
|
getPanels() {
|
|
5745
5779
|
return this.paneview.getPanes();
|
|
@@ -5748,6 +5782,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5748
5782
|
const views = this.getPanels();
|
|
5749
5783
|
const index = views.findIndex((_) => _ === panel);
|
|
5750
5784
|
this.paneview.removePane(index);
|
|
5785
|
+
this.doRemovePanel(panel);
|
|
5751
5786
|
}
|
|
5752
5787
|
movePanel(from, to) {
|
|
5753
5788
|
this.paneview.moveView(from, to);
|
|
@@ -5797,6 +5832,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5797
5832
|
fromJSON(serializedPaneview, deferComponentLayout) {
|
|
5798
5833
|
const { views, size } = serializedPaneview;
|
|
5799
5834
|
const queue = [];
|
|
5835
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5836
|
+
value.dispose();
|
|
5837
|
+
}
|
|
5838
|
+
this._viewDisposables.clear();
|
|
5800
5839
|
this.paneview.dispose();
|
|
5801
5840
|
this.paneview = new Paneview(this.element, {
|
|
5802
5841
|
orientation: exports.Orientation.VERTICAL,
|
|
@@ -5832,9 +5871,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5832
5871
|
isExpanded: !!view.expanded,
|
|
5833
5872
|
disableDnd: !!this.options.disableDnd,
|
|
5834
5873
|
});
|
|
5835
|
-
|
|
5836
|
-
this._onDidDrop.fire(event);
|
|
5837
|
-
});
|
|
5874
|
+
this.doAddPanel(panel);
|
|
5838
5875
|
queue.push(() => {
|
|
5839
5876
|
panel.init({
|
|
5840
5877
|
params: data.params || {},
|
|
@@ -5864,8 +5901,25 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5864
5901
|
queue.forEach((f) => f());
|
|
5865
5902
|
}
|
|
5866
5903
|
}
|
|
5904
|
+
doAddPanel(panel) {
|
|
5905
|
+
const disposable = panel.onDidDrop((event) => {
|
|
5906
|
+
this._onDidDrop.fire(event);
|
|
5907
|
+
});
|
|
5908
|
+
this._viewDisposables.set(panel.id, disposable);
|
|
5909
|
+
}
|
|
5910
|
+
doRemovePanel(panel) {
|
|
5911
|
+
const disposable = this._viewDisposables.get(panel.id);
|
|
5912
|
+
if (disposable) {
|
|
5913
|
+
disposable.dispose();
|
|
5914
|
+
this._viewDisposables.delete(panel.id);
|
|
5915
|
+
}
|
|
5916
|
+
}
|
|
5867
5917
|
dispose() {
|
|
5868
5918
|
super.dispose();
|
|
5919
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5920
|
+
value.dispose();
|
|
5921
|
+
}
|
|
5922
|
+
this._viewDisposables.clear();
|
|
5869
5923
|
this.paneview.dispose();
|
|
5870
5924
|
}
|
|
5871
5925
|
}
|
|
@@ -6094,18 +6148,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6094
6148
|
this.id = id;
|
|
6095
6149
|
this.component = component;
|
|
6096
6150
|
this.reactPortalStore = reactPortalStore;
|
|
6097
|
-
// private hostedContainer: HostedContainer;
|
|
6098
6151
|
this._onDidFocus = new Emitter();
|
|
6099
6152
|
this.onDidFocus = this._onDidFocus.event;
|
|
6100
6153
|
this._onDidBlur = new Emitter();
|
|
6101
6154
|
this.onDidBlur = this._onDidBlur.event;
|
|
6102
6155
|
this._element = document.createElement('div');
|
|
6103
6156
|
this._element.className = 'dockview-react-part';
|
|
6104
|
-
// this.hostedContainer = new HostedContainer({
|
|
6105
|
-
// id,
|
|
6106
|
-
// });
|
|
6107
|
-
// this.hostedContainer.onDidFocus(() => this._onDidFocus.fire());
|
|
6108
|
-
// this.hostedContainer.onDidBlur(() => this._onDidBlur.fire());
|
|
6109
6157
|
this._actionsElement = document.createElement('div');
|
|
6110
6158
|
this._actionsElement.className = 'dockview-react-part';
|
|
6111
6159
|
}
|
|
@@ -6140,15 +6188,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6140
6188
|
var _a;
|
|
6141
6189
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6142
6190
|
}
|
|
6143
|
-
updateParentGroup(group,
|
|
6191
|
+
updateParentGroup(group, _isPanelVisible) {
|
|
6144
6192
|
this._group = group;
|
|
6145
6193
|
}
|
|
6146
|
-
layout(
|
|
6194
|
+
layout(_width, _height) {
|
|
6147
6195
|
// noop
|
|
6148
|
-
// this.hostedContainer.layout(
|
|
6149
|
-
// this.element
|
|
6150
|
-
// // { width, height }
|
|
6151
|
-
// );
|
|
6152
6196
|
}
|
|
6153
6197
|
close() {
|
|
6154
6198
|
return Promise.resolve(true);
|
|
@@ -6158,7 +6202,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6158
6202
|
this._onDidFocus.dispose();
|
|
6159
6203
|
this._onDidBlur.dispose();
|
|
6160
6204
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6161
|
-
// this.hostedContainer?.dispose();
|
|
6162
6205
|
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6163
6206
|
}
|
|
6164
6207
|
}
|
|
@@ -6193,10 +6236,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6193
6236
|
id: this.id,
|
|
6194
6237
|
};
|
|
6195
6238
|
}
|
|
6196
|
-
layout(
|
|
6239
|
+
layout(_width, _height) {
|
|
6197
6240
|
// noop - retrieval from api
|
|
6198
6241
|
}
|
|
6199
|
-
updateParentGroup(
|
|
6242
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6200
6243
|
// noop - retrieval from api
|
|
6201
6244
|
}
|
|
6202
6245
|
dispose() {
|
|
@@ -6275,10 +6318,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6275
6318
|
id: this.id,
|
|
6276
6319
|
};
|
|
6277
6320
|
}
|
|
6278
|
-
layout(
|
|
6321
|
+
layout(_width, _height) {
|
|
6279
6322
|
// noop - retrieval from api
|
|
6280
6323
|
}
|
|
6281
|
-
updateParentGroup(group,
|
|
6324
|
+
updateParentGroup(group, _isPanelVisible) {
|
|
6282
6325
|
// noop - retrieval from api
|
|
6283
6326
|
this._groupRef.value = group;
|
|
6284
6327
|
}
|
|
@@ -6312,21 +6355,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6312
6355
|
var _a;
|
|
6313
6356
|
const factory = {
|
|
6314
6357
|
content: {
|
|
6315
|
-
createComponent: (
|
|
6358
|
+
createComponent: (_id, componentId, component) => {
|
|
6316
6359
|
return new ReactPanelContentPart(componentId, component, {
|
|
6317
6360
|
addPortal,
|
|
6318
6361
|
});
|
|
6319
6362
|
},
|
|
6320
6363
|
},
|
|
6321
6364
|
tab: {
|
|
6322
|
-
createComponent: (
|
|
6365
|
+
createComponent: (_id, componentId, component) => {
|
|
6323
6366
|
return new ReactPanelHeaderPart(componentId, component, {
|
|
6324
6367
|
addPortal,
|
|
6325
6368
|
});
|
|
6326
6369
|
},
|
|
6327
6370
|
},
|
|
6328
6371
|
watermark: {
|
|
6329
|
-
createComponent: (
|
|
6372
|
+
createComponent: (_id, componentId, component) => {
|
|
6330
6373
|
return new ReactWatermarkPart(componentId, component, {
|
|
6331
6374
|
addPortal,
|
|
6332
6375
|
});
|
|
@@ -6345,11 +6388,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6345
6388
|
? { separatorBorder: 'transparent' }
|
|
6346
6389
|
: undefined,
|
|
6347
6390
|
});
|
|
6348
|
-
const disposable = dockview.onDidDrop((event) => {
|
|
6349
|
-
if (props.onDidDrop) {
|
|
6350
|
-
props.onDidDrop(event);
|
|
6351
|
-
}
|
|
6352
|
-
});
|
|
6353
6391
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6354
6392
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
6355
6393
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6359,11 +6397,25 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6359
6397
|
}
|
|
6360
6398
|
dockviewRef.current = dockview;
|
|
6361
6399
|
return () => {
|
|
6362
|
-
disposable.dispose();
|
|
6363
6400
|
dockview.dispose();
|
|
6364
6401
|
element.remove();
|
|
6365
6402
|
};
|
|
6366
6403
|
}, []);
|
|
6404
|
+
React__namespace.useEffect(() => {
|
|
6405
|
+
if (!dockviewRef.current) {
|
|
6406
|
+
return () => {
|
|
6407
|
+
// noop
|
|
6408
|
+
};
|
|
6409
|
+
}
|
|
6410
|
+
const disposable = dockviewRef.current.onDidDrop((event) => {
|
|
6411
|
+
if (props.onDidDrop) {
|
|
6412
|
+
props.onDidDrop(event);
|
|
6413
|
+
}
|
|
6414
|
+
});
|
|
6415
|
+
return () => {
|
|
6416
|
+
disposable.dispose();
|
|
6417
|
+
};
|
|
6418
|
+
}, [props.onDidDrop]);
|
|
6367
6419
|
React__namespace.useEffect(() => {
|
|
6368
6420
|
if (!dockviewRef.current) {
|
|
6369
6421
|
return;
|
|
@@ -6681,7 +6733,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6681
6733
|
};
|
|
6682
6734
|
}, [props.disableAutoResizing]);
|
|
6683
6735
|
React__namespace.useEffect(() => {
|
|
6684
|
-
const createComponent = (id,
|
|
6736
|
+
const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
|
|
6685
6737
|
addPortal,
|
|
6686
6738
|
});
|
|
6687
6739
|
const paneview = new PaneviewComponent(domRef.current, {
|