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.noStyle.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
|
*/
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
this.component.layout(width, height);
|
|
317
317
|
}
|
|
318
318
|
addPanel(options) {
|
|
319
|
-
|
|
319
|
+
this.component.addPanel(options);
|
|
320
320
|
}
|
|
321
321
|
resizeToFit() {
|
|
322
322
|
this.component.resizeToFit();
|
|
@@ -1536,7 +1536,7 @@
|
|
|
1536
1536
|
});
|
|
1537
1537
|
// if we've added views from the descriptor we need to
|
|
1538
1538
|
// add the panes to our Pane array and setup animation
|
|
1539
|
-
this.getPanes().forEach((pane
|
|
1539
|
+
this.getPanes().forEach((pane) => {
|
|
1540
1540
|
const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
|
|
1541
1541
|
this.setupAnimation();
|
|
1542
1542
|
this._onDidChange.fire(undefined);
|
|
@@ -1604,17 +1604,20 @@
|
|
|
1604
1604
|
getPanes() {
|
|
1605
1605
|
return this.splitview.getViews();
|
|
1606
1606
|
}
|
|
1607
|
-
removePane(index) {
|
|
1607
|
+
removePane(index, options = { skipDispose: false }) {
|
|
1608
1608
|
const paneItem = this.paneItems.splice(index, 1)[0];
|
|
1609
1609
|
this.splitview.removeView(index);
|
|
1610
|
-
|
|
1610
|
+
if (!options.skipDispose) {
|
|
1611
|
+
paneItem.disposable.dispose();
|
|
1612
|
+
paneItem.pane.dispose();
|
|
1613
|
+
}
|
|
1611
1614
|
return paneItem;
|
|
1612
1615
|
}
|
|
1613
1616
|
moveView(from, to) {
|
|
1614
1617
|
if (from === to) {
|
|
1615
1618
|
return;
|
|
1616
1619
|
}
|
|
1617
|
-
const view = this.removePane(from);
|
|
1620
|
+
const view = this.removePane(from, { skipDispose: true });
|
|
1618
1621
|
this.skipAnimation = true;
|
|
1619
1622
|
try {
|
|
1620
1623
|
this.addPane(view.pane, view.pane.size, to, false);
|
|
@@ -1648,6 +1651,7 @@
|
|
|
1648
1651
|
}
|
|
1649
1652
|
this.paneItems.forEach((paneItem) => {
|
|
1650
1653
|
paneItem.disposable.dispose();
|
|
1654
|
+
paneItem.pane.dispose();
|
|
1651
1655
|
});
|
|
1652
1656
|
this.paneItems = [];
|
|
1653
1657
|
this.splitview.dispose();
|
|
@@ -1714,7 +1718,7 @@
|
|
|
1714
1718
|
this._onDrop = new Emitter();
|
|
1715
1719
|
this.onDrop = this._onDrop.event;
|
|
1716
1720
|
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
1717
|
-
onDragEnter: (
|
|
1721
|
+
onDragEnter: () => undefined,
|
|
1718
1722
|
onDragOver: (e) => {
|
|
1719
1723
|
if (isBooleanValue(this.options.canDisplayOverlay)) {
|
|
1720
1724
|
if (!this.options.canDisplayOverlay) {
|
|
@@ -1755,10 +1759,10 @@
|
|
|
1755
1759
|
this.toggleClasses(quadrant, isSmallX, isSmallY);
|
|
1756
1760
|
this.setState(quadrant);
|
|
1757
1761
|
},
|
|
1758
|
-
onDragLeave: (
|
|
1762
|
+
onDragLeave: () => {
|
|
1759
1763
|
this.removeDropTarget();
|
|
1760
1764
|
},
|
|
1761
|
-
onDragEnd: (
|
|
1765
|
+
onDragEnd: () => {
|
|
1762
1766
|
this.removeDropTarget();
|
|
1763
1767
|
},
|
|
1764
1768
|
onDrop: (e) => {
|
|
@@ -2155,7 +2159,7 @@
|
|
|
2155
2159
|
}
|
|
2156
2160
|
setupChildrenEvents() {
|
|
2157
2161
|
this._childrenDisposable.dispose();
|
|
2158
|
-
this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))((
|
|
2162
|
+
this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))(() => {
|
|
2159
2163
|
/**
|
|
2160
2164
|
* indicate a change has occured to allows any re-rendering but don't bubble
|
|
2161
2165
|
* event because that was specific to this branch
|
|
@@ -2518,7 +2522,7 @@
|
|
|
2518
2522
|
const [parentIndex, ...__] = [...rest].reverse();
|
|
2519
2523
|
const isSiblingVisible = parent.isChildVisible(0);
|
|
2520
2524
|
parent.removeChild(0, sizing);
|
|
2521
|
-
const sizes = grandParent.children.map((
|
|
2525
|
+
const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
|
|
2522
2526
|
grandParent.removeChild(parentIndex, sizing);
|
|
2523
2527
|
if (sibling instanceof BranchNode) {
|
|
2524
2528
|
sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
|
|
@@ -2617,7 +2621,7 @@
|
|
|
2617
2621
|
}
|
|
2618
2622
|
this.disposable.value = disposable;
|
|
2619
2623
|
}
|
|
2620
|
-
layout(
|
|
2624
|
+
layout(_width, _height) {
|
|
2621
2625
|
// noop
|
|
2622
2626
|
}
|
|
2623
2627
|
closePanel() {
|
|
@@ -2665,7 +2669,7 @@
|
|
|
2665
2669
|
if (event.dataTransfer) {
|
|
2666
2670
|
event.dataTransfer.effectAllowed = 'move';
|
|
2667
2671
|
}
|
|
2668
|
-
}), addDisposableListener(this.el, 'dragend', (
|
|
2672
|
+
}), addDisposableListener(this.el, 'dragend', () => {
|
|
2669
2673
|
for (const iframe of this.iframes) {
|
|
2670
2674
|
iframe.style.pointerEvents = 'auto';
|
|
2671
2675
|
}
|
|
@@ -3032,6 +3036,9 @@
|
|
|
3032
3036
|
get maximumWidth() {
|
|
3033
3037
|
return Number.MAX_SAFE_INTEGER;
|
|
3034
3038
|
}
|
|
3039
|
+
get hasWatermark() {
|
|
3040
|
+
return !!(this.watermark && this.container.contains(this.watermark.element));
|
|
3041
|
+
}
|
|
3035
3042
|
initialize() {
|
|
3036
3043
|
var _a, _b;
|
|
3037
3044
|
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
@@ -3110,10 +3117,10 @@
|
|
|
3110
3117
|
containsPanel(panel) {
|
|
3111
3118
|
return this.panels.includes(panel);
|
|
3112
3119
|
}
|
|
3113
|
-
init(
|
|
3120
|
+
init(_params) {
|
|
3114
3121
|
//noop
|
|
3115
3122
|
}
|
|
3116
|
-
update(
|
|
3123
|
+
update(_params) {
|
|
3117
3124
|
//noop
|
|
3118
3125
|
}
|
|
3119
3126
|
focus() {
|
|
@@ -3336,10 +3343,12 @@
|
|
|
3336
3343
|
}
|
|
3337
3344
|
}
|
|
3338
3345
|
dispose() {
|
|
3346
|
+
var _a;
|
|
3347
|
+
super.dispose();
|
|
3348
|
+
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
3339
3349
|
for (const panel of this.panels) {
|
|
3340
3350
|
panel.dispose();
|
|
3341
3351
|
}
|
|
3342
|
-
super.dispose();
|
|
3343
3352
|
this.dropTarget.dispose();
|
|
3344
3353
|
this.tabsContainer.dispose();
|
|
3345
3354
|
this.contentContainer.dispose();
|
|
@@ -3442,6 +3451,7 @@
|
|
|
3442
3451
|
const view = this.gridview.remove(group, exports.Sizing.Distribute);
|
|
3443
3452
|
if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
3444
3453
|
item.disposable.dispose();
|
|
3454
|
+
item.value.dispose();
|
|
3445
3455
|
this._groups.delete(group.id);
|
|
3446
3456
|
}
|
|
3447
3457
|
this._onDidRemoveGroup.fire(group);
|
|
@@ -3532,6 +3542,9 @@
|
|
|
3532
3542
|
this._onDidAddGroup.dispose();
|
|
3533
3543
|
this._onDidRemoveGroup.dispose();
|
|
3534
3544
|
this._onDidLayoutChange.dispose();
|
|
3545
|
+
for (const group of this.groups) {
|
|
3546
|
+
group.dispose();
|
|
3547
|
+
}
|
|
3535
3548
|
this.gridview.dispose();
|
|
3536
3549
|
}
|
|
3537
3550
|
}
|
|
@@ -3861,7 +3874,7 @@
|
|
|
3861
3874
|
get id() {
|
|
3862
3875
|
return 'watermark';
|
|
3863
3876
|
}
|
|
3864
|
-
update(
|
|
3877
|
+
update(_event) {
|
|
3865
3878
|
// noop
|
|
3866
3879
|
}
|
|
3867
3880
|
focus() {
|
|
@@ -3870,17 +3883,17 @@
|
|
|
3870
3883
|
toJSON() {
|
|
3871
3884
|
return {};
|
|
3872
3885
|
}
|
|
3873
|
-
layout(
|
|
3886
|
+
layout(_width, _height) {
|
|
3874
3887
|
// noop
|
|
3875
3888
|
}
|
|
3876
3889
|
init(params) {
|
|
3877
3890
|
this.params = params;
|
|
3878
|
-
this.addDisposables(this.params.containerApi.onDidLayoutChange((
|
|
3891
|
+
this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
|
|
3879
3892
|
this.render();
|
|
3880
3893
|
}));
|
|
3881
3894
|
this.render();
|
|
3882
3895
|
}
|
|
3883
|
-
updateParentGroup(group,
|
|
3896
|
+
updateParentGroup(group, _visible) {
|
|
3884
3897
|
this.group = group;
|
|
3885
3898
|
this.render();
|
|
3886
3899
|
}
|
|
@@ -4055,7 +4068,7 @@
|
|
|
4055
4068
|
this._isGroupActive = group.isActive;
|
|
4056
4069
|
this.render();
|
|
4057
4070
|
}
|
|
4058
|
-
layout(
|
|
4071
|
+
layout(_width, _height) {
|
|
4059
4072
|
// noop
|
|
4060
4073
|
}
|
|
4061
4074
|
render() {
|
|
@@ -4129,8 +4142,10 @@
|
|
|
4129
4142
|
};
|
|
4130
4143
|
}
|
|
4131
4144
|
dispose() {
|
|
4145
|
+
var _a;
|
|
4132
4146
|
super.dispose();
|
|
4133
4147
|
this.api.dispose();
|
|
4148
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4134
4149
|
}
|
|
4135
4150
|
}
|
|
4136
4151
|
|
|
@@ -4575,7 +4590,10 @@
|
|
|
4575
4590
|
}
|
|
4576
4591
|
addPanel(options) {
|
|
4577
4592
|
var _a, _b;
|
|
4578
|
-
|
|
4593
|
+
if (this.panels.find((_) => _.id === options.id)) {
|
|
4594
|
+
throw new Error(`panel with id ${options.id} already exists`);
|
|
4595
|
+
}
|
|
4596
|
+
const panel = this.createPanel(options);
|
|
4579
4597
|
let referenceGroup;
|
|
4580
4598
|
if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
|
|
4581
4599
|
const referencePanel = this.getGroupPanel(options.position.referencePanel);
|
|
@@ -4603,13 +4621,20 @@
|
|
|
4603
4621
|
}
|
|
4604
4622
|
return panel;
|
|
4605
4623
|
}
|
|
4606
|
-
removePanel(panel, options = {
|
|
4624
|
+
removePanel(panel, options = {
|
|
4625
|
+
removeEmptyGroup: true,
|
|
4626
|
+
skipDispose: false,
|
|
4627
|
+
}) {
|
|
4607
4628
|
const group = panel.group;
|
|
4608
4629
|
if (!group) {
|
|
4609
4630
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
4610
4631
|
}
|
|
4611
4632
|
group.model.removePanel(panel);
|
|
4612
|
-
|
|
4633
|
+
panel.dispose();
|
|
4634
|
+
const retainGroupForWatermark = this.size === 1;
|
|
4635
|
+
if (!retainGroupForWatermark &&
|
|
4636
|
+
group.model.size === 0 &&
|
|
4637
|
+
options.removeEmptyGroup) {
|
|
4613
4638
|
this.removeGroup(group);
|
|
4614
4639
|
}
|
|
4615
4640
|
}
|
|
@@ -4646,6 +4671,7 @@
|
|
|
4646
4671
|
for (const panel of panels) {
|
|
4647
4672
|
this.removePanel(panel, {
|
|
4648
4673
|
removeEmptyGroup: false,
|
|
4674
|
+
skipDispose: false,
|
|
4649
4675
|
});
|
|
4650
4676
|
}
|
|
4651
4677
|
super.doRemoveGroup(group, { skipActive });
|
|
@@ -4729,6 +4755,7 @@
|
|
|
4729
4755
|
}
|
|
4730
4756
|
}
|
|
4731
4757
|
const view = new GroupviewPanel(this, id, options);
|
|
4758
|
+
view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
|
|
4732
4759
|
if (!this._groups.has(view.id)) {
|
|
4733
4760
|
const disposable = new CompositeDisposable(view.model.onMove((event) => {
|
|
4734
4761
|
const { groupId, itemId, target, index } = event;
|
|
@@ -4762,7 +4789,7 @@
|
|
|
4762
4789
|
}
|
|
4763
4790
|
return view;
|
|
4764
4791
|
}
|
|
4765
|
-
|
|
4792
|
+
createPanel(options) {
|
|
4766
4793
|
const view = new DefaultGroupPanelView({
|
|
4767
4794
|
content: this.createContentComponent(options.id, options.component),
|
|
4768
4795
|
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
@@ -4863,7 +4890,7 @@
|
|
|
4863
4890
|
this.gridview.setViewVisible(getGridLocation(panel.element), visible);
|
|
4864
4891
|
}
|
|
4865
4892
|
setActive(panel) {
|
|
4866
|
-
this._groups.forEach((value,
|
|
4893
|
+
this._groups.forEach((value, _key) => {
|
|
4867
4894
|
value.value.setActive(panel === value.value);
|
|
4868
4895
|
});
|
|
4869
4896
|
}
|
|
@@ -4876,8 +4903,12 @@
|
|
|
4876
4903
|
}
|
|
4877
4904
|
fromJSON(serializedGridview, deferComponentLayout) {
|
|
4878
4905
|
const { grid, activePanel } = serializedGridview;
|
|
4906
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4907
|
+
for (const group of groups) {
|
|
4908
|
+
group.disposable.dispose();
|
|
4909
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4910
|
+
}
|
|
4879
4911
|
this.gridview.clear();
|
|
4880
|
-
this._groups.clear();
|
|
4881
4912
|
const queue = [];
|
|
4882
4913
|
this.gridview.deserialize(grid, {
|
|
4883
4914
|
fromJSON: (node) => {
|
|
@@ -4974,7 +5005,6 @@
|
|
|
4974
5005
|
});
|
|
4975
5006
|
this.registerPanel(view);
|
|
4976
5007
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
4977
|
-
return { api: view.api };
|
|
4978
5008
|
}
|
|
4979
5009
|
registerPanel(panel) {
|
|
4980
5010
|
const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
|
|
@@ -5025,11 +5055,6 @@
|
|
|
5025
5055
|
}
|
|
5026
5056
|
removeGroup(group) {
|
|
5027
5057
|
super.removeGroup(group);
|
|
5028
|
-
const panel = this._groups.get(group.id);
|
|
5029
|
-
if (panel) {
|
|
5030
|
-
panel.disposable.dispose();
|
|
5031
|
-
this._groups.delete(group.id);
|
|
5032
|
-
}
|
|
5033
5058
|
}
|
|
5034
5059
|
dispose() {
|
|
5035
5060
|
super.dispose();
|
|
@@ -5136,7 +5161,11 @@
|
|
|
5136
5161
|
}
|
|
5137
5162
|
removePanel(panel, sizing) {
|
|
5138
5163
|
const disposable = this.panels.get(panel.id);
|
|
5139
|
-
|
|
5164
|
+
if (!disposable) {
|
|
5165
|
+
throw new Error(`unknown splitview panel ${panel.id}`);
|
|
5166
|
+
}
|
|
5167
|
+
disposable.disposable.dispose();
|
|
5168
|
+
disposable.value.dispose();
|
|
5140
5169
|
this.panels.delete(panel.id);
|
|
5141
5170
|
const index = this.getPanels().findIndex((_) => _ === panel);
|
|
5142
5171
|
this.splitview.removeView(index, sizing);
|
|
@@ -5195,7 +5224,7 @@
|
|
|
5195
5224
|
}
|
|
5196
5225
|
this.setActive(view, true);
|
|
5197
5226
|
});
|
|
5198
|
-
this.panels.set(view.id, disposable);
|
|
5227
|
+
this.panels.set(view.id, { disposable, value: view });
|
|
5199
5228
|
}
|
|
5200
5229
|
toJSON() {
|
|
5201
5230
|
var _a;
|
|
@@ -5219,6 +5248,11 @@
|
|
|
5219
5248
|
}
|
|
5220
5249
|
fromJSON(serializedSplitview, deferComponentLayout = false) {
|
|
5221
5250
|
const { views, orientation, size, activeView } = serializedSplitview;
|
|
5251
|
+
for (const [_, value] of this.panels.entries()) {
|
|
5252
|
+
value.disposable.dispose();
|
|
5253
|
+
value.value.dispose();
|
|
5254
|
+
}
|
|
5255
|
+
this.panels.clear();
|
|
5222
5256
|
this.splitview.dispose();
|
|
5223
5257
|
const queue = [];
|
|
5224
5258
|
this.splitview = new Splitview(this.element, {
|
|
@@ -5274,9 +5308,10 @@
|
|
|
5274
5308
|
}
|
|
5275
5309
|
}
|
|
5276
5310
|
dispose() {
|
|
5277
|
-
|
|
5278
|
-
value.dispose();
|
|
5279
|
-
|
|
5311
|
+
for (const [_, value] of this.panels.entries()) {
|
|
5312
|
+
value.disposable.dispose();
|
|
5313
|
+
value.value.dispose();
|
|
5314
|
+
}
|
|
5280
5315
|
this.panels.clear();
|
|
5281
5316
|
this.splitview.dispose();
|
|
5282
5317
|
super.dispose();
|
|
@@ -5547,7 +5582,7 @@
|
|
|
5547
5582
|
})(this.header);
|
|
5548
5583
|
this.target = new Droptarget(this.element, {
|
|
5549
5584
|
validOverlays: 'vertical',
|
|
5550
|
-
canDisplayOverlay: (
|
|
5585
|
+
canDisplayOverlay: () => {
|
|
5551
5586
|
const data = getPaneData();
|
|
5552
5587
|
if (!data) {
|
|
5553
5588
|
return true;
|
|
@@ -5618,7 +5653,7 @@
|
|
|
5618
5653
|
this._expander.textContent = e.isExpanded ? '<' : '>';
|
|
5619
5654
|
});
|
|
5620
5655
|
}
|
|
5621
|
-
update(
|
|
5656
|
+
update(_params) {
|
|
5622
5657
|
//
|
|
5623
5658
|
}
|
|
5624
5659
|
dispose() {
|
|
@@ -5644,6 +5679,7 @@
|
|
|
5644
5679
|
super();
|
|
5645
5680
|
this.element = element;
|
|
5646
5681
|
this._disposable = new MutableDisposable();
|
|
5682
|
+
this._viewDisposables = new Map();
|
|
5647
5683
|
this._onDidLayoutChange = new Emitter();
|
|
5648
5684
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
5649
5685
|
this._onDidDrop = new Emitter();
|
|
@@ -5728,9 +5764,7 @@
|
|
|
5728
5764
|
isExpanded: !!options.isExpanded,
|
|
5729
5765
|
disableDnd: !!this.options.disableDnd,
|
|
5730
5766
|
});
|
|
5731
|
-
|
|
5732
|
-
this._onDidDrop.fire(event);
|
|
5733
|
-
}));
|
|
5767
|
+
this.doAddPanel(view);
|
|
5734
5768
|
const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
|
|
5735
5769
|
const index = typeof options.index === 'number' ? options.index : undefined;
|
|
5736
5770
|
view.init({
|
|
@@ -5743,7 +5777,7 @@
|
|
|
5743
5777
|
});
|
|
5744
5778
|
this.paneview.addPane(view, size, index);
|
|
5745
5779
|
view.orientation = this.paneview.orientation;
|
|
5746
|
-
return
|
|
5780
|
+
return view;
|
|
5747
5781
|
}
|
|
5748
5782
|
getPanels() {
|
|
5749
5783
|
return this.paneview.getPanes();
|
|
@@ -5752,6 +5786,7 @@
|
|
|
5752
5786
|
const views = this.getPanels();
|
|
5753
5787
|
const index = views.findIndex((_) => _ === panel);
|
|
5754
5788
|
this.paneview.removePane(index);
|
|
5789
|
+
this.doRemovePanel(panel);
|
|
5755
5790
|
}
|
|
5756
5791
|
movePanel(from, to) {
|
|
5757
5792
|
this.paneview.moveView(from, to);
|
|
@@ -5801,6 +5836,10 @@
|
|
|
5801
5836
|
fromJSON(serializedPaneview, deferComponentLayout) {
|
|
5802
5837
|
const { views, size } = serializedPaneview;
|
|
5803
5838
|
const queue = [];
|
|
5839
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5840
|
+
value.dispose();
|
|
5841
|
+
}
|
|
5842
|
+
this._viewDisposables.clear();
|
|
5804
5843
|
this.paneview.dispose();
|
|
5805
5844
|
this.paneview = new Paneview(this.element, {
|
|
5806
5845
|
orientation: exports.Orientation.VERTICAL,
|
|
@@ -5836,9 +5875,7 @@
|
|
|
5836
5875
|
isExpanded: !!view.expanded,
|
|
5837
5876
|
disableDnd: !!this.options.disableDnd,
|
|
5838
5877
|
});
|
|
5839
|
-
|
|
5840
|
-
this._onDidDrop.fire(event);
|
|
5841
|
-
});
|
|
5878
|
+
this.doAddPanel(panel);
|
|
5842
5879
|
queue.push(() => {
|
|
5843
5880
|
panel.init({
|
|
5844
5881
|
params: data.params || {},
|
|
@@ -5868,8 +5905,25 @@
|
|
|
5868
5905
|
queue.forEach((f) => f());
|
|
5869
5906
|
}
|
|
5870
5907
|
}
|
|
5908
|
+
doAddPanel(panel) {
|
|
5909
|
+
const disposable = panel.onDidDrop((event) => {
|
|
5910
|
+
this._onDidDrop.fire(event);
|
|
5911
|
+
});
|
|
5912
|
+
this._viewDisposables.set(panel.id, disposable);
|
|
5913
|
+
}
|
|
5914
|
+
doRemovePanel(panel) {
|
|
5915
|
+
const disposable = this._viewDisposables.get(panel.id);
|
|
5916
|
+
if (disposable) {
|
|
5917
|
+
disposable.dispose();
|
|
5918
|
+
this._viewDisposables.delete(panel.id);
|
|
5919
|
+
}
|
|
5920
|
+
}
|
|
5871
5921
|
dispose() {
|
|
5872
5922
|
super.dispose();
|
|
5923
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5924
|
+
value.dispose();
|
|
5925
|
+
}
|
|
5926
|
+
this._viewDisposables.clear();
|
|
5873
5927
|
this.paneview.dispose();
|
|
5874
5928
|
}
|
|
5875
5929
|
}
|
|
@@ -6098,18 +6152,12 @@
|
|
|
6098
6152
|
this.id = id;
|
|
6099
6153
|
this.component = component;
|
|
6100
6154
|
this.reactPortalStore = reactPortalStore;
|
|
6101
|
-
// private hostedContainer: HostedContainer;
|
|
6102
6155
|
this._onDidFocus = new Emitter();
|
|
6103
6156
|
this.onDidFocus = this._onDidFocus.event;
|
|
6104
6157
|
this._onDidBlur = new Emitter();
|
|
6105
6158
|
this.onDidBlur = this._onDidBlur.event;
|
|
6106
6159
|
this._element = document.createElement('div');
|
|
6107
6160
|
this._element.className = 'dockview-react-part';
|
|
6108
|
-
// this.hostedContainer = new HostedContainer({
|
|
6109
|
-
// id,
|
|
6110
|
-
// });
|
|
6111
|
-
// this.hostedContainer.onDidFocus(() => this._onDidFocus.fire());
|
|
6112
|
-
// this.hostedContainer.onDidBlur(() => this._onDidBlur.fire());
|
|
6113
6161
|
this._actionsElement = document.createElement('div');
|
|
6114
6162
|
this._actionsElement.className = 'dockview-react-part';
|
|
6115
6163
|
}
|
|
@@ -6144,15 +6192,11 @@
|
|
|
6144
6192
|
var _a;
|
|
6145
6193
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6146
6194
|
}
|
|
6147
|
-
updateParentGroup(group,
|
|
6195
|
+
updateParentGroup(group, _isPanelVisible) {
|
|
6148
6196
|
this._group = group;
|
|
6149
6197
|
}
|
|
6150
|
-
layout(
|
|
6198
|
+
layout(_width, _height) {
|
|
6151
6199
|
// noop
|
|
6152
|
-
// this.hostedContainer.layout(
|
|
6153
|
-
// this.element
|
|
6154
|
-
// // { width, height }
|
|
6155
|
-
// );
|
|
6156
6200
|
}
|
|
6157
6201
|
close() {
|
|
6158
6202
|
return Promise.resolve(true);
|
|
@@ -6162,7 +6206,6 @@
|
|
|
6162
6206
|
this._onDidFocus.dispose();
|
|
6163
6207
|
this._onDidBlur.dispose();
|
|
6164
6208
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6165
|
-
// this.hostedContainer?.dispose();
|
|
6166
6209
|
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6167
6210
|
}
|
|
6168
6211
|
}
|
|
@@ -6197,10 +6240,10 @@
|
|
|
6197
6240
|
id: this.id,
|
|
6198
6241
|
};
|
|
6199
6242
|
}
|
|
6200
|
-
layout(
|
|
6243
|
+
layout(_width, _height) {
|
|
6201
6244
|
// noop - retrieval from api
|
|
6202
6245
|
}
|
|
6203
|
-
updateParentGroup(
|
|
6246
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6204
6247
|
// noop - retrieval from api
|
|
6205
6248
|
}
|
|
6206
6249
|
dispose() {
|
|
@@ -6279,10 +6322,10 @@
|
|
|
6279
6322
|
id: this.id,
|
|
6280
6323
|
};
|
|
6281
6324
|
}
|
|
6282
|
-
layout(
|
|
6325
|
+
layout(_width, _height) {
|
|
6283
6326
|
// noop - retrieval from api
|
|
6284
6327
|
}
|
|
6285
|
-
updateParentGroup(group,
|
|
6328
|
+
updateParentGroup(group, _isPanelVisible) {
|
|
6286
6329
|
// noop - retrieval from api
|
|
6287
6330
|
this._groupRef.value = group;
|
|
6288
6331
|
}
|
|
@@ -6316,21 +6359,21 @@
|
|
|
6316
6359
|
var _a;
|
|
6317
6360
|
const factory = {
|
|
6318
6361
|
content: {
|
|
6319
|
-
createComponent: (
|
|
6362
|
+
createComponent: (_id, componentId, component) => {
|
|
6320
6363
|
return new ReactPanelContentPart(componentId, component, {
|
|
6321
6364
|
addPortal,
|
|
6322
6365
|
});
|
|
6323
6366
|
},
|
|
6324
6367
|
},
|
|
6325
6368
|
tab: {
|
|
6326
|
-
createComponent: (
|
|
6369
|
+
createComponent: (_id, componentId, component) => {
|
|
6327
6370
|
return new ReactPanelHeaderPart(componentId, component, {
|
|
6328
6371
|
addPortal,
|
|
6329
6372
|
});
|
|
6330
6373
|
},
|
|
6331
6374
|
},
|
|
6332
6375
|
watermark: {
|
|
6333
|
-
createComponent: (
|
|
6376
|
+
createComponent: (_id, componentId, component) => {
|
|
6334
6377
|
return new ReactWatermarkPart(componentId, component, {
|
|
6335
6378
|
addPortal,
|
|
6336
6379
|
});
|
|
@@ -6349,11 +6392,6 @@
|
|
|
6349
6392
|
? { separatorBorder: 'transparent' }
|
|
6350
6393
|
: undefined,
|
|
6351
6394
|
});
|
|
6352
|
-
const disposable = dockview.onDidDrop((event) => {
|
|
6353
|
-
if (props.onDidDrop) {
|
|
6354
|
-
props.onDidDrop(event);
|
|
6355
|
-
}
|
|
6356
|
-
});
|
|
6357
6395
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6358
6396
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
6359
6397
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6363,11 +6401,25 @@
|
|
|
6363
6401
|
}
|
|
6364
6402
|
dockviewRef.current = dockview;
|
|
6365
6403
|
return () => {
|
|
6366
|
-
disposable.dispose();
|
|
6367
6404
|
dockview.dispose();
|
|
6368
6405
|
element.remove();
|
|
6369
6406
|
};
|
|
6370
6407
|
}, []);
|
|
6408
|
+
React__namespace.useEffect(() => {
|
|
6409
|
+
if (!dockviewRef.current) {
|
|
6410
|
+
return () => {
|
|
6411
|
+
// noop
|
|
6412
|
+
};
|
|
6413
|
+
}
|
|
6414
|
+
const disposable = dockviewRef.current.onDidDrop((event) => {
|
|
6415
|
+
if (props.onDidDrop) {
|
|
6416
|
+
props.onDidDrop(event);
|
|
6417
|
+
}
|
|
6418
|
+
});
|
|
6419
|
+
return () => {
|
|
6420
|
+
disposable.dispose();
|
|
6421
|
+
};
|
|
6422
|
+
}, [props.onDidDrop]);
|
|
6371
6423
|
React__namespace.useEffect(() => {
|
|
6372
6424
|
if (!dockviewRef.current) {
|
|
6373
6425
|
return;
|
|
@@ -6685,7 +6737,7 @@
|
|
|
6685
6737
|
};
|
|
6686
6738
|
}, [props.disableAutoResizing]);
|
|
6687
6739
|
React__namespace.useEffect(() => {
|
|
6688
|
-
const createComponent = (id,
|
|
6740
|
+
const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
|
|
6689
6741
|
addPortal,
|
|
6690
6742
|
});
|
|
6691
6743
|
const paneview = new PaneviewComponent(domRef.current, {
|
|
@@ -4,14 +4,13 @@ import { Direction } from '../gridview/baseComponentGridview';
|
|
|
4
4
|
import { AddComponentOptions, IGridviewComponent, SerializedGridview } from '../gridview/gridviewComponent';
|
|
5
5
|
import { IGridviewPanel } from '../gridview/gridviewPanel';
|
|
6
6
|
import { IGroupPanel } from '../groupview/groupPanel';
|
|
7
|
-
import {
|
|
7
|
+
import { AddPaneviewComponentOptions, SerializedPaneview, IPaneviewComponent } from '../paneview/paneviewComponent';
|
|
8
8
|
import { IPaneviewPanel } from '../paneview/paneviewPanel';
|
|
9
9
|
import { AddSplitviewComponentOptions, ISplitviewComponent, SerializedSplitview, SplitviewComponentUpdateOptions } from '../splitview/splitviewComponent';
|
|
10
10
|
import { IView, Orientation, Sizing } from '../splitview/core/splitview';
|
|
11
11
|
import { ISplitviewPanel } from '../splitview/splitviewPanel';
|
|
12
12
|
import { IGroupviewPanel } from '../groupview/groupviewPanel';
|
|
13
13
|
import { Event } from '../events';
|
|
14
|
-
import { IDisposable } from '../lifecycle';
|
|
15
14
|
import { PaneviewDropEvent } from '../react';
|
|
16
15
|
export interface CommonApi {
|
|
17
16
|
readonly height: number;
|
|
@@ -64,7 +63,7 @@ export declare class PaneviewApi implements CommonApi {
|
|
|
64
63
|
movePanel(from: number, to: number): void;
|
|
65
64
|
focus(): void;
|
|
66
65
|
layout(width: number, height: number): void;
|
|
67
|
-
addPanel(options:
|
|
66
|
+
addPanel(options: AddPaneviewComponentOptions): void;
|
|
68
67
|
resizeToFit(): void;
|
|
69
68
|
fromJSON(data: SerializedPaneview, deferComponentLayout?: boolean): void;
|
|
70
69
|
toJSON(): SerializedPaneview;
|
|
@@ -26,7 +26,7 @@ export class DragHandler extends CompositeDisposable {
|
|
|
26
26
|
if (event.dataTransfer) {
|
|
27
27
|
event.dataTransfer.effectAllowed = 'move';
|
|
28
28
|
}
|
|
29
|
-
}), addDisposableListener(this.el, 'dragend', (
|
|
29
|
+
}), addDisposableListener(this.el, 'dragend', () => {
|
|
30
30
|
for (const iframe of this.iframes) {
|
|
31
31
|
iframe.style.pointerEvents = 'auto';
|
|
32
32
|
}
|
|
@@ -21,7 +21,7 @@ export class Droptarget extends CompositeDisposable {
|
|
|
21
21
|
this._onDrop = new Emitter();
|
|
22
22
|
this.onDrop = this._onDrop.event;
|
|
23
23
|
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
24
|
-
onDragEnter: (
|
|
24
|
+
onDragEnter: () => undefined,
|
|
25
25
|
onDragOver: (e) => {
|
|
26
26
|
if (isBooleanValue(this.options.canDisplayOverlay)) {
|
|
27
27
|
if (!this.options.canDisplayOverlay) {
|
|
@@ -62,10 +62,10 @@ export class Droptarget extends CompositeDisposable {
|
|
|
62
62
|
this.toggleClasses(quadrant, isSmallX, isSmallY);
|
|
63
63
|
this.setState(quadrant);
|
|
64
64
|
},
|
|
65
|
-
onDragLeave: (
|
|
65
|
+
onDragLeave: () => {
|
|
66
66
|
this.removeDropTarget();
|
|
67
67
|
},
|
|
68
|
-
onDragEnd: (
|
|
68
|
+
onDragEnd: () => {
|
|
69
69
|
this.removeDropTarget();
|
|
70
70
|
},
|
|
71
71
|
onDrop: (e) => {
|
|
@@ -38,6 +38,6 @@ export declare class DefaultTab extends CompositeDisposable implements ITabRende
|
|
|
38
38
|
focus(): void;
|
|
39
39
|
init(params: GroupPanelPartInitParameters): void;
|
|
40
40
|
updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
|
|
41
|
-
layout(
|
|
41
|
+
layout(_width: number, _height: number): void;
|
|
42
42
|
private render;
|
|
43
43
|
}
|