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
package/dist/dockview.cjs.js
CHANGED
|
@@ -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
|
*/
|
|
@@ -347,7 +347,7 @@ class PaneviewApi {
|
|
|
347
347
|
this.component.layout(width, height);
|
|
348
348
|
}
|
|
349
349
|
addPanel(options) {
|
|
350
|
-
|
|
350
|
+
this.component.addPanel(options);
|
|
351
351
|
}
|
|
352
352
|
resizeToFit() {
|
|
353
353
|
this.component.resizeToFit();
|
|
@@ -1567,7 +1567,7 @@ class Paneview extends CompositeDisposable {
|
|
|
1567
1567
|
});
|
|
1568
1568
|
// if we've added views from the descriptor we need to
|
|
1569
1569
|
// add the panes to our Pane array and setup animation
|
|
1570
|
-
this.getPanes().forEach((pane
|
|
1570
|
+
this.getPanes().forEach((pane) => {
|
|
1571
1571
|
const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
|
|
1572
1572
|
this.setupAnimation();
|
|
1573
1573
|
this._onDidChange.fire(undefined);
|
|
@@ -1635,17 +1635,20 @@ class Paneview extends CompositeDisposable {
|
|
|
1635
1635
|
getPanes() {
|
|
1636
1636
|
return this.splitview.getViews();
|
|
1637
1637
|
}
|
|
1638
|
-
removePane(index) {
|
|
1638
|
+
removePane(index, options = { skipDispose: false }) {
|
|
1639
1639
|
const paneItem = this.paneItems.splice(index, 1)[0];
|
|
1640
1640
|
this.splitview.removeView(index);
|
|
1641
|
-
|
|
1641
|
+
if (!options.skipDispose) {
|
|
1642
|
+
paneItem.disposable.dispose();
|
|
1643
|
+
paneItem.pane.dispose();
|
|
1644
|
+
}
|
|
1642
1645
|
return paneItem;
|
|
1643
1646
|
}
|
|
1644
1647
|
moveView(from, to) {
|
|
1645
1648
|
if (from === to) {
|
|
1646
1649
|
return;
|
|
1647
1650
|
}
|
|
1648
|
-
const view = this.removePane(from);
|
|
1651
|
+
const view = this.removePane(from, { skipDispose: true });
|
|
1649
1652
|
this.skipAnimation = true;
|
|
1650
1653
|
try {
|
|
1651
1654
|
this.addPane(view.pane, view.pane.size, to, false);
|
|
@@ -1679,6 +1682,7 @@ class Paneview extends CompositeDisposable {
|
|
|
1679
1682
|
}
|
|
1680
1683
|
this.paneItems.forEach((paneItem) => {
|
|
1681
1684
|
paneItem.disposable.dispose();
|
|
1685
|
+
paneItem.pane.dispose();
|
|
1682
1686
|
});
|
|
1683
1687
|
this.paneItems = [];
|
|
1684
1688
|
this.splitview.dispose();
|
|
@@ -1745,7 +1749,7 @@ class Droptarget extends CompositeDisposable {
|
|
|
1745
1749
|
this._onDrop = new Emitter();
|
|
1746
1750
|
this.onDrop = this._onDrop.event;
|
|
1747
1751
|
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
1748
|
-
onDragEnter: (
|
|
1752
|
+
onDragEnter: () => undefined,
|
|
1749
1753
|
onDragOver: (e) => {
|
|
1750
1754
|
if (isBooleanValue(this.options.canDisplayOverlay)) {
|
|
1751
1755
|
if (!this.options.canDisplayOverlay) {
|
|
@@ -1786,10 +1790,10 @@ class Droptarget extends CompositeDisposable {
|
|
|
1786
1790
|
this.toggleClasses(quadrant, isSmallX, isSmallY);
|
|
1787
1791
|
this.setState(quadrant);
|
|
1788
1792
|
},
|
|
1789
|
-
onDragLeave: (
|
|
1793
|
+
onDragLeave: () => {
|
|
1790
1794
|
this.removeDropTarget();
|
|
1791
1795
|
},
|
|
1792
|
-
onDragEnd: (
|
|
1796
|
+
onDragEnd: () => {
|
|
1793
1797
|
this.removeDropTarget();
|
|
1794
1798
|
},
|
|
1795
1799
|
onDrop: (e) => {
|
|
@@ -2186,7 +2190,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
2186
2190
|
}
|
|
2187
2191
|
setupChildrenEvents() {
|
|
2188
2192
|
this._childrenDisposable.dispose();
|
|
2189
|
-
this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))((
|
|
2193
|
+
this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))(() => {
|
|
2190
2194
|
/**
|
|
2191
2195
|
* indicate a change has occured to allows any re-rendering but don't bubble
|
|
2192
2196
|
* event because that was specific to this branch
|
|
@@ -2549,7 +2553,7 @@ class Gridview {
|
|
|
2549
2553
|
const [parentIndex, ...__] = [...rest].reverse();
|
|
2550
2554
|
const isSiblingVisible = parent.isChildVisible(0);
|
|
2551
2555
|
parent.removeChild(0, sizing);
|
|
2552
|
-
const sizes = grandParent.children.map((
|
|
2556
|
+
const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
|
|
2553
2557
|
grandParent.removeChild(parentIndex, sizing);
|
|
2554
2558
|
if (sibling instanceof BranchNode) {
|
|
2555
2559
|
sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
|
|
@@ -2648,7 +2652,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
2648
2652
|
}
|
|
2649
2653
|
this.disposable.value = disposable;
|
|
2650
2654
|
}
|
|
2651
|
-
layout(
|
|
2655
|
+
layout(_width, _height) {
|
|
2652
2656
|
// noop
|
|
2653
2657
|
}
|
|
2654
2658
|
closePanel() {
|
|
@@ -2696,7 +2700,7 @@ class DragHandler extends CompositeDisposable {
|
|
|
2696
2700
|
if (event.dataTransfer) {
|
|
2697
2701
|
event.dataTransfer.effectAllowed = 'move';
|
|
2698
2702
|
}
|
|
2699
|
-
}), addDisposableListener(this.el, 'dragend', (
|
|
2703
|
+
}), addDisposableListener(this.el, 'dragend', () => {
|
|
2700
2704
|
for (const iframe of this.iframes) {
|
|
2701
2705
|
iframe.style.pointerEvents = 'auto';
|
|
2702
2706
|
}
|
|
@@ -3063,6 +3067,9 @@ class Groupview extends CompositeDisposable {
|
|
|
3063
3067
|
get maximumWidth() {
|
|
3064
3068
|
return Number.MAX_SAFE_INTEGER;
|
|
3065
3069
|
}
|
|
3070
|
+
get hasWatermark() {
|
|
3071
|
+
return !!(this.watermark && this.container.contains(this.watermark.element));
|
|
3072
|
+
}
|
|
3066
3073
|
initialize() {
|
|
3067
3074
|
var _a, _b;
|
|
3068
3075
|
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
@@ -3141,10 +3148,10 @@ class Groupview extends CompositeDisposable {
|
|
|
3141
3148
|
containsPanel(panel) {
|
|
3142
3149
|
return this.panels.includes(panel);
|
|
3143
3150
|
}
|
|
3144
|
-
init(
|
|
3151
|
+
init(_params) {
|
|
3145
3152
|
//noop
|
|
3146
3153
|
}
|
|
3147
|
-
update(
|
|
3154
|
+
update(_params) {
|
|
3148
3155
|
//noop
|
|
3149
3156
|
}
|
|
3150
3157
|
focus() {
|
|
@@ -3367,10 +3374,12 @@ class Groupview extends CompositeDisposable {
|
|
|
3367
3374
|
}
|
|
3368
3375
|
}
|
|
3369
3376
|
dispose() {
|
|
3377
|
+
var _a;
|
|
3378
|
+
super.dispose();
|
|
3379
|
+
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
3370
3380
|
for (const panel of this.panels) {
|
|
3371
3381
|
panel.dispose();
|
|
3372
3382
|
}
|
|
3373
|
-
super.dispose();
|
|
3374
3383
|
this.dropTarget.dispose();
|
|
3375
3384
|
this.tabsContainer.dispose();
|
|
3376
3385
|
this.contentContainer.dispose();
|
|
@@ -3473,6 +3482,7 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3473
3482
|
const view = this.gridview.remove(group, exports.Sizing.Distribute);
|
|
3474
3483
|
if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
3475
3484
|
item.disposable.dispose();
|
|
3485
|
+
item.value.dispose();
|
|
3476
3486
|
this._groups.delete(group.id);
|
|
3477
3487
|
}
|
|
3478
3488
|
this._onDidRemoveGroup.fire(group);
|
|
@@ -3563,6 +3573,9 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3563
3573
|
this._onDidAddGroup.dispose();
|
|
3564
3574
|
this._onDidRemoveGroup.dispose();
|
|
3565
3575
|
this._onDidLayoutChange.dispose();
|
|
3576
|
+
for (const group of this.groups) {
|
|
3577
|
+
group.dispose();
|
|
3578
|
+
}
|
|
3566
3579
|
this.gridview.dispose();
|
|
3567
3580
|
}
|
|
3568
3581
|
}
|
|
@@ -3892,7 +3905,7 @@ class Watermark extends CompositeDisposable {
|
|
|
3892
3905
|
get id() {
|
|
3893
3906
|
return 'watermark';
|
|
3894
3907
|
}
|
|
3895
|
-
update(
|
|
3908
|
+
update(_event) {
|
|
3896
3909
|
// noop
|
|
3897
3910
|
}
|
|
3898
3911
|
focus() {
|
|
@@ -3901,17 +3914,17 @@ class Watermark extends CompositeDisposable {
|
|
|
3901
3914
|
toJSON() {
|
|
3902
3915
|
return {};
|
|
3903
3916
|
}
|
|
3904
|
-
layout(
|
|
3917
|
+
layout(_width, _height) {
|
|
3905
3918
|
// noop
|
|
3906
3919
|
}
|
|
3907
3920
|
init(params) {
|
|
3908
3921
|
this.params = params;
|
|
3909
|
-
this.addDisposables(this.params.containerApi.onDidLayoutChange((
|
|
3922
|
+
this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
|
|
3910
3923
|
this.render();
|
|
3911
3924
|
}));
|
|
3912
3925
|
this.render();
|
|
3913
3926
|
}
|
|
3914
|
-
updateParentGroup(group,
|
|
3927
|
+
updateParentGroup(group, _visible) {
|
|
3915
3928
|
this.group = group;
|
|
3916
3929
|
this.render();
|
|
3917
3930
|
}
|
|
@@ -4086,7 +4099,7 @@ class DefaultTab extends CompositeDisposable {
|
|
|
4086
4099
|
this._isGroupActive = group.isActive;
|
|
4087
4100
|
this.render();
|
|
4088
4101
|
}
|
|
4089
|
-
layout(
|
|
4102
|
+
layout(_width, _height) {
|
|
4090
4103
|
// noop
|
|
4091
4104
|
}
|
|
4092
4105
|
render() {
|
|
@@ -4160,8 +4173,10 @@ class BasePanelView extends CompositeDisposable {
|
|
|
4160
4173
|
};
|
|
4161
4174
|
}
|
|
4162
4175
|
dispose() {
|
|
4176
|
+
var _a;
|
|
4163
4177
|
super.dispose();
|
|
4164
4178
|
this.api.dispose();
|
|
4179
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4165
4180
|
}
|
|
4166
4181
|
}
|
|
4167
4182
|
|
|
@@ -4606,7 +4621,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
4606
4621
|
}
|
|
4607
4622
|
addPanel(options) {
|
|
4608
4623
|
var _a, _b;
|
|
4609
|
-
|
|
4624
|
+
if (this.panels.find((_) => _.id === options.id)) {
|
|
4625
|
+
throw new Error(`panel with id ${options.id} already exists`);
|
|
4626
|
+
}
|
|
4627
|
+
const panel = this.createPanel(options);
|
|
4610
4628
|
let referenceGroup;
|
|
4611
4629
|
if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
|
|
4612
4630
|
const referencePanel = this.getGroupPanel(options.position.referencePanel);
|
|
@@ -4634,13 +4652,20 @@ class DockviewComponent extends BaseGrid {
|
|
|
4634
4652
|
}
|
|
4635
4653
|
return panel;
|
|
4636
4654
|
}
|
|
4637
|
-
removePanel(panel, options = {
|
|
4655
|
+
removePanel(panel, options = {
|
|
4656
|
+
removeEmptyGroup: true,
|
|
4657
|
+
skipDispose: false,
|
|
4658
|
+
}) {
|
|
4638
4659
|
const group = panel.group;
|
|
4639
4660
|
if (!group) {
|
|
4640
4661
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
4641
4662
|
}
|
|
4642
4663
|
group.model.removePanel(panel);
|
|
4643
|
-
|
|
4664
|
+
panel.dispose();
|
|
4665
|
+
const retainGroupForWatermark = this.size === 1;
|
|
4666
|
+
if (!retainGroupForWatermark &&
|
|
4667
|
+
group.model.size === 0 &&
|
|
4668
|
+
options.removeEmptyGroup) {
|
|
4644
4669
|
this.removeGroup(group);
|
|
4645
4670
|
}
|
|
4646
4671
|
}
|
|
@@ -4677,6 +4702,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4677
4702
|
for (const panel of panels) {
|
|
4678
4703
|
this.removePanel(panel, {
|
|
4679
4704
|
removeEmptyGroup: false,
|
|
4705
|
+
skipDispose: false,
|
|
4680
4706
|
});
|
|
4681
4707
|
}
|
|
4682
4708
|
super.doRemoveGroup(group, { skipActive });
|
|
@@ -4760,6 +4786,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4760
4786
|
}
|
|
4761
4787
|
}
|
|
4762
4788
|
const view = new GroupviewPanel(this, id, options);
|
|
4789
|
+
view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
|
|
4763
4790
|
if (!this._groups.has(view.id)) {
|
|
4764
4791
|
const disposable = new CompositeDisposable(view.model.onMove((event) => {
|
|
4765
4792
|
const { groupId, itemId, target, index } = event;
|
|
@@ -4793,7 +4820,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4793
4820
|
}
|
|
4794
4821
|
return view;
|
|
4795
4822
|
}
|
|
4796
|
-
|
|
4823
|
+
createPanel(options) {
|
|
4797
4824
|
const view = new DefaultGroupPanelView({
|
|
4798
4825
|
content: this.createContentComponent(options.id, options.component),
|
|
4799
4826
|
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
@@ -4894,7 +4921,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
4894
4921
|
this.gridview.setViewVisible(getGridLocation(panel.element), visible);
|
|
4895
4922
|
}
|
|
4896
4923
|
setActive(panel) {
|
|
4897
|
-
this._groups.forEach((value,
|
|
4924
|
+
this._groups.forEach((value, _key) => {
|
|
4898
4925
|
value.value.setActive(panel === value.value);
|
|
4899
4926
|
});
|
|
4900
4927
|
}
|
|
@@ -4907,8 +4934,12 @@ class GridviewComponent extends BaseGrid {
|
|
|
4907
4934
|
}
|
|
4908
4935
|
fromJSON(serializedGridview, deferComponentLayout) {
|
|
4909
4936
|
const { grid, activePanel } = serializedGridview;
|
|
4937
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4938
|
+
for (const group of groups) {
|
|
4939
|
+
group.disposable.dispose();
|
|
4940
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4941
|
+
}
|
|
4910
4942
|
this.gridview.clear();
|
|
4911
|
-
this._groups.clear();
|
|
4912
4943
|
const queue = [];
|
|
4913
4944
|
this.gridview.deserialize(grid, {
|
|
4914
4945
|
fromJSON: (node) => {
|
|
@@ -5005,7 +5036,6 @@ class GridviewComponent extends BaseGrid {
|
|
|
5005
5036
|
});
|
|
5006
5037
|
this.registerPanel(view);
|
|
5007
5038
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
5008
|
-
return { api: view.api };
|
|
5009
5039
|
}
|
|
5010
5040
|
registerPanel(panel) {
|
|
5011
5041
|
const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
|
|
@@ -5056,11 +5086,6 @@ class GridviewComponent extends BaseGrid {
|
|
|
5056
5086
|
}
|
|
5057
5087
|
removeGroup(group) {
|
|
5058
5088
|
super.removeGroup(group);
|
|
5059
|
-
const panel = this._groups.get(group.id);
|
|
5060
|
-
if (panel) {
|
|
5061
|
-
panel.disposable.dispose();
|
|
5062
|
-
this._groups.delete(group.id);
|
|
5063
|
-
}
|
|
5064
5089
|
}
|
|
5065
5090
|
dispose() {
|
|
5066
5091
|
super.dispose();
|
|
@@ -5167,7 +5192,11 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5167
5192
|
}
|
|
5168
5193
|
removePanel(panel, sizing) {
|
|
5169
5194
|
const disposable = this.panels.get(panel.id);
|
|
5170
|
-
|
|
5195
|
+
if (!disposable) {
|
|
5196
|
+
throw new Error(`unknown splitview panel ${panel.id}`);
|
|
5197
|
+
}
|
|
5198
|
+
disposable.disposable.dispose();
|
|
5199
|
+
disposable.value.dispose();
|
|
5171
5200
|
this.panels.delete(panel.id);
|
|
5172
5201
|
const index = this.getPanels().findIndex((_) => _ === panel);
|
|
5173
5202
|
this.splitview.removeView(index, sizing);
|
|
@@ -5226,7 +5255,7 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5226
5255
|
}
|
|
5227
5256
|
this.setActive(view, true);
|
|
5228
5257
|
});
|
|
5229
|
-
this.panels.set(view.id, disposable);
|
|
5258
|
+
this.panels.set(view.id, { disposable, value: view });
|
|
5230
5259
|
}
|
|
5231
5260
|
toJSON() {
|
|
5232
5261
|
var _a;
|
|
@@ -5250,6 +5279,11 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5250
5279
|
}
|
|
5251
5280
|
fromJSON(serializedSplitview, deferComponentLayout = false) {
|
|
5252
5281
|
const { views, orientation, size, activeView } = serializedSplitview;
|
|
5282
|
+
for (const [_, value] of this.panels.entries()) {
|
|
5283
|
+
value.disposable.dispose();
|
|
5284
|
+
value.value.dispose();
|
|
5285
|
+
}
|
|
5286
|
+
this.panels.clear();
|
|
5253
5287
|
this.splitview.dispose();
|
|
5254
5288
|
const queue = [];
|
|
5255
5289
|
this.splitview = new Splitview(this.element, {
|
|
@@ -5305,9 +5339,10 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5305
5339
|
}
|
|
5306
5340
|
}
|
|
5307
5341
|
dispose() {
|
|
5308
|
-
|
|
5309
|
-
value.dispose();
|
|
5310
|
-
|
|
5342
|
+
for (const [_, value] of this.panels.entries()) {
|
|
5343
|
+
value.disposable.dispose();
|
|
5344
|
+
value.value.dispose();
|
|
5345
|
+
}
|
|
5311
5346
|
this.panels.clear();
|
|
5312
5347
|
this.splitview.dispose();
|
|
5313
5348
|
super.dispose();
|
|
@@ -5578,7 +5613,7 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5578
5613
|
})(this.header);
|
|
5579
5614
|
this.target = new Droptarget(this.element, {
|
|
5580
5615
|
validOverlays: 'vertical',
|
|
5581
|
-
canDisplayOverlay: (
|
|
5616
|
+
canDisplayOverlay: () => {
|
|
5582
5617
|
const data = getPaneData();
|
|
5583
5618
|
if (!data) {
|
|
5584
5619
|
return true;
|
|
@@ -5649,7 +5684,7 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5649
5684
|
this._expander.textContent = e.isExpanded ? '<' : '>';
|
|
5650
5685
|
});
|
|
5651
5686
|
}
|
|
5652
|
-
update(
|
|
5687
|
+
update(_params) {
|
|
5653
5688
|
//
|
|
5654
5689
|
}
|
|
5655
5690
|
dispose() {
|
|
@@ -5675,6 +5710,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5675
5710
|
super();
|
|
5676
5711
|
this.element = element;
|
|
5677
5712
|
this._disposable = new MutableDisposable();
|
|
5713
|
+
this._viewDisposables = new Map();
|
|
5678
5714
|
this._onDidLayoutChange = new Emitter();
|
|
5679
5715
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
5680
5716
|
this._onDidDrop = new Emitter();
|
|
@@ -5759,9 +5795,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5759
5795
|
isExpanded: !!options.isExpanded,
|
|
5760
5796
|
disableDnd: !!this.options.disableDnd,
|
|
5761
5797
|
});
|
|
5762
|
-
|
|
5763
|
-
this._onDidDrop.fire(event);
|
|
5764
|
-
}));
|
|
5798
|
+
this.doAddPanel(view);
|
|
5765
5799
|
const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
|
|
5766
5800
|
const index = typeof options.index === 'number' ? options.index : undefined;
|
|
5767
5801
|
view.init({
|
|
@@ -5774,7 +5808,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5774
5808
|
});
|
|
5775
5809
|
this.paneview.addPane(view, size, index);
|
|
5776
5810
|
view.orientation = this.paneview.orientation;
|
|
5777
|
-
return
|
|
5811
|
+
return view;
|
|
5778
5812
|
}
|
|
5779
5813
|
getPanels() {
|
|
5780
5814
|
return this.paneview.getPanes();
|
|
@@ -5783,6 +5817,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5783
5817
|
const views = this.getPanels();
|
|
5784
5818
|
const index = views.findIndex((_) => _ === panel);
|
|
5785
5819
|
this.paneview.removePane(index);
|
|
5820
|
+
this.doRemovePanel(panel);
|
|
5786
5821
|
}
|
|
5787
5822
|
movePanel(from, to) {
|
|
5788
5823
|
this.paneview.moveView(from, to);
|
|
@@ -5832,6 +5867,10 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5832
5867
|
fromJSON(serializedPaneview, deferComponentLayout) {
|
|
5833
5868
|
const { views, size } = serializedPaneview;
|
|
5834
5869
|
const queue = [];
|
|
5870
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5871
|
+
value.dispose();
|
|
5872
|
+
}
|
|
5873
|
+
this._viewDisposables.clear();
|
|
5835
5874
|
this.paneview.dispose();
|
|
5836
5875
|
this.paneview = new Paneview(this.element, {
|
|
5837
5876
|
orientation: exports.Orientation.VERTICAL,
|
|
@@ -5867,9 +5906,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5867
5906
|
isExpanded: !!view.expanded,
|
|
5868
5907
|
disableDnd: !!this.options.disableDnd,
|
|
5869
5908
|
});
|
|
5870
|
-
|
|
5871
|
-
this._onDidDrop.fire(event);
|
|
5872
|
-
});
|
|
5909
|
+
this.doAddPanel(panel);
|
|
5873
5910
|
queue.push(() => {
|
|
5874
5911
|
panel.init({
|
|
5875
5912
|
params: data.params || {},
|
|
@@ -5899,8 +5936,25 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5899
5936
|
queue.forEach((f) => f());
|
|
5900
5937
|
}
|
|
5901
5938
|
}
|
|
5939
|
+
doAddPanel(panel) {
|
|
5940
|
+
const disposable = panel.onDidDrop((event) => {
|
|
5941
|
+
this._onDidDrop.fire(event);
|
|
5942
|
+
});
|
|
5943
|
+
this._viewDisposables.set(panel.id, disposable);
|
|
5944
|
+
}
|
|
5945
|
+
doRemovePanel(panel) {
|
|
5946
|
+
const disposable = this._viewDisposables.get(panel.id);
|
|
5947
|
+
if (disposable) {
|
|
5948
|
+
disposable.dispose();
|
|
5949
|
+
this._viewDisposables.delete(panel.id);
|
|
5950
|
+
}
|
|
5951
|
+
}
|
|
5902
5952
|
dispose() {
|
|
5903
5953
|
super.dispose();
|
|
5954
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5955
|
+
value.dispose();
|
|
5956
|
+
}
|
|
5957
|
+
this._viewDisposables.clear();
|
|
5904
5958
|
this.paneview.dispose();
|
|
5905
5959
|
}
|
|
5906
5960
|
}
|
|
@@ -6129,18 +6183,12 @@ class ReactPanelContentPart {
|
|
|
6129
6183
|
this.id = id;
|
|
6130
6184
|
this.component = component;
|
|
6131
6185
|
this.reactPortalStore = reactPortalStore;
|
|
6132
|
-
// private hostedContainer: HostedContainer;
|
|
6133
6186
|
this._onDidFocus = new Emitter();
|
|
6134
6187
|
this.onDidFocus = this._onDidFocus.event;
|
|
6135
6188
|
this._onDidBlur = new Emitter();
|
|
6136
6189
|
this.onDidBlur = this._onDidBlur.event;
|
|
6137
6190
|
this._element = document.createElement('div');
|
|
6138
6191
|
this._element.className = 'dockview-react-part';
|
|
6139
|
-
// this.hostedContainer = new HostedContainer({
|
|
6140
|
-
// id,
|
|
6141
|
-
// });
|
|
6142
|
-
// this.hostedContainer.onDidFocus(() => this._onDidFocus.fire());
|
|
6143
|
-
// this.hostedContainer.onDidBlur(() => this._onDidBlur.fire());
|
|
6144
6192
|
this._actionsElement = document.createElement('div');
|
|
6145
6193
|
this._actionsElement.className = 'dockview-react-part';
|
|
6146
6194
|
}
|
|
@@ -6175,15 +6223,11 @@ class ReactPanelContentPart {
|
|
|
6175
6223
|
var _a;
|
|
6176
6224
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6177
6225
|
}
|
|
6178
|
-
updateParentGroup(group,
|
|
6226
|
+
updateParentGroup(group, _isPanelVisible) {
|
|
6179
6227
|
this._group = group;
|
|
6180
6228
|
}
|
|
6181
|
-
layout(
|
|
6229
|
+
layout(_width, _height) {
|
|
6182
6230
|
// noop
|
|
6183
|
-
// this.hostedContainer.layout(
|
|
6184
|
-
// this.element
|
|
6185
|
-
// // { width, height }
|
|
6186
|
-
// );
|
|
6187
6231
|
}
|
|
6188
6232
|
close() {
|
|
6189
6233
|
return Promise.resolve(true);
|
|
@@ -6193,7 +6237,6 @@ class ReactPanelContentPart {
|
|
|
6193
6237
|
this._onDidFocus.dispose();
|
|
6194
6238
|
this._onDidBlur.dispose();
|
|
6195
6239
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6196
|
-
// this.hostedContainer?.dispose();
|
|
6197
6240
|
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6198
6241
|
}
|
|
6199
6242
|
}
|
|
@@ -6228,10 +6271,10 @@ class ReactPanelHeaderPart {
|
|
|
6228
6271
|
id: this.id,
|
|
6229
6272
|
};
|
|
6230
6273
|
}
|
|
6231
|
-
layout(
|
|
6274
|
+
layout(_width, _height) {
|
|
6232
6275
|
// noop - retrieval from api
|
|
6233
6276
|
}
|
|
6234
|
-
updateParentGroup(
|
|
6277
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6235
6278
|
// noop - retrieval from api
|
|
6236
6279
|
}
|
|
6237
6280
|
dispose() {
|
|
@@ -6310,10 +6353,10 @@ class ReactWatermarkPart {
|
|
|
6310
6353
|
id: this.id,
|
|
6311
6354
|
};
|
|
6312
6355
|
}
|
|
6313
|
-
layout(
|
|
6356
|
+
layout(_width, _height) {
|
|
6314
6357
|
// noop - retrieval from api
|
|
6315
6358
|
}
|
|
6316
|
-
updateParentGroup(group,
|
|
6359
|
+
updateParentGroup(group, _isPanelVisible) {
|
|
6317
6360
|
// noop - retrieval from api
|
|
6318
6361
|
this._groupRef.value = group;
|
|
6319
6362
|
}
|
|
@@ -6347,21 +6390,21 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6347
6390
|
var _a;
|
|
6348
6391
|
const factory = {
|
|
6349
6392
|
content: {
|
|
6350
|
-
createComponent: (
|
|
6393
|
+
createComponent: (_id, componentId, component) => {
|
|
6351
6394
|
return new ReactPanelContentPart(componentId, component, {
|
|
6352
6395
|
addPortal,
|
|
6353
6396
|
});
|
|
6354
6397
|
},
|
|
6355
6398
|
},
|
|
6356
6399
|
tab: {
|
|
6357
|
-
createComponent: (
|
|
6400
|
+
createComponent: (_id, componentId, component) => {
|
|
6358
6401
|
return new ReactPanelHeaderPart(componentId, component, {
|
|
6359
6402
|
addPortal,
|
|
6360
6403
|
});
|
|
6361
6404
|
},
|
|
6362
6405
|
},
|
|
6363
6406
|
watermark: {
|
|
6364
|
-
createComponent: (
|
|
6407
|
+
createComponent: (_id, componentId, component) => {
|
|
6365
6408
|
return new ReactWatermarkPart(componentId, component, {
|
|
6366
6409
|
addPortal,
|
|
6367
6410
|
});
|
|
@@ -6380,11 +6423,6 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6380
6423
|
? { separatorBorder: 'transparent' }
|
|
6381
6424
|
: undefined,
|
|
6382
6425
|
});
|
|
6383
|
-
const disposable = dockview.onDidDrop((event) => {
|
|
6384
|
-
if (props.onDidDrop) {
|
|
6385
|
-
props.onDidDrop(event);
|
|
6386
|
-
}
|
|
6387
|
-
});
|
|
6388
6426
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6389
6427
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
6390
6428
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6394,11 +6432,25 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6394
6432
|
}
|
|
6395
6433
|
dockviewRef.current = dockview;
|
|
6396
6434
|
return () => {
|
|
6397
|
-
disposable.dispose();
|
|
6398
6435
|
dockview.dispose();
|
|
6399
6436
|
element.remove();
|
|
6400
6437
|
};
|
|
6401
6438
|
}, []);
|
|
6439
|
+
React__namespace.useEffect(() => {
|
|
6440
|
+
if (!dockviewRef.current) {
|
|
6441
|
+
return () => {
|
|
6442
|
+
// noop
|
|
6443
|
+
};
|
|
6444
|
+
}
|
|
6445
|
+
const disposable = dockviewRef.current.onDidDrop((event) => {
|
|
6446
|
+
if (props.onDidDrop) {
|
|
6447
|
+
props.onDidDrop(event);
|
|
6448
|
+
}
|
|
6449
|
+
});
|
|
6450
|
+
return () => {
|
|
6451
|
+
disposable.dispose();
|
|
6452
|
+
};
|
|
6453
|
+
}, [props.onDidDrop]);
|
|
6402
6454
|
React__namespace.useEffect(() => {
|
|
6403
6455
|
if (!dockviewRef.current) {
|
|
6404
6456
|
return;
|
|
@@ -6716,7 +6768,7 @@ const PaneviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6716
6768
|
};
|
|
6717
6769
|
}, [props.disableAutoResizing]);
|
|
6718
6770
|
React__namespace.useEffect(() => {
|
|
6719
|
-
const createComponent = (id,
|
|
6771
|
+
const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
|
|
6720
6772
|
addPortal,
|
|
6721
6773
|
});
|
|
6722
6774
|
const paneview = new PaneviewComponent(domRef.current, {
|