dockview 1.1.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +17 -15
- package/dist/cjs/api/component.api.js +22 -22
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +1 -1
- package/dist/cjs/dnd/abstractDragHandler.js +2 -3
- 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/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +8 -5
- package/dist/cjs/dockview/dockviewComponent.js +60 -41
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -0
- package/dist/cjs/dockview/dockviewGroupPanel.js +8 -0
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -20
- package/dist/cjs/gridview/baseComponentGridview.js +35 -43
- 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 +2 -2
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.js +3 -2
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +3 -9
- package/dist/cjs/gridview/gridviewComponent.js +30 -18
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/leafNode.js +1 -1
- package/dist/cjs/gridview/leafNode.js.map +1 -1
- package/dist/cjs/groupview/groupPanel.d.ts +1 -0
- 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/index.d.ts +2 -2
- package/dist/cjs/index.js +8 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/panel/types.d.ts +1 -0
- 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 +12 -6
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +12 -5
- package/dist/cjs/paneview/paneviewComponent.js +68 -16
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/react/dockview/components.js +5 -1
- package/dist/cjs/react/dockview/components.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.js +32 -10
- 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/gridview.js +9 -2
- package/dist/cjs/react/gridview/gridview.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/index.js +5 -1
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/react/paneview/paneview.js +6 -2
- package/dist/cjs/react/paneview/paneview.js.map +1 -1
- package/dist/cjs/react/react.js +5 -1
- package/dist/cjs/react/react.js.map +1 -1
- package/dist/cjs/react/splitview/splitview.js +8 -2
- package/dist/cjs/react/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/core/splitview.js +1 -1
- package/dist/cjs/splitview/core/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +5 -3
- package/dist/cjs/splitview/splitviewComponent.js +55 -16
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/dockview.amd.js +316 -312
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +315 -311
- package/dist/dockview.cjs.js +316 -312
- package/dist/dockview.esm.js +316 -306
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +316 -312
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +315 -311
- package/dist/esm/api/component.api.d.ts +17 -15
- package/dist/esm/api/component.api.js +14 -14
- package/dist/esm/dnd/abstractDragHandler.d.ts +1 -1
- package/dist/esm/dnd/abstractDragHandler.js +2 -3
- 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 +8 -5
- package/dist/esm/dockview/dockviewComponent.js +34 -38
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -0
- package/dist/esm/dockview/dockviewGroupPanel.js +4 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -20
- package/dist/esm/gridview/baseComponentGridview.js +13 -43
- package/dist/esm/gridview/basePanelView.js +2 -0
- package/dist/esm/gridview/branchNode.js +2 -2
- package/dist/esm/gridview/gridview.js +2 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +3 -9
- package/dist/esm/gridview/gridviewComponent.js +9 -19
- package/dist/esm/groupview/groupPanel.d.ts +1 -0
- 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/index.d.ts +2 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/panel/types.d.ts +1 -0
- 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 +9 -5
- package/dist/esm/paneview/paneviewComponent.d.ts +12 -5
- package/dist/esm/paneview/paneviewComponent.js +34 -15
- package/dist/esm/react/dockview/dockview.js +27 -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/gridview.js +4 -1
- package/dist/esm/react/gridview/view.d.ts +3 -2
- package/dist/esm/react/paneview/paneview.js +1 -1
- package/dist/esm/react/splitview/splitview.js +3 -1
- package/dist/esm/splitview/core/splitview.js +1 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +5 -3
- package/dist/esm/splitview/splitviewComponent.js +22 -15
- package/dist/styles/dockview.css +10 -10
- package/package.json +13 -13
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { IDockviewComponent, SerializedDockview } from '../dockview/dockviewComponent';
|
|
2
2
|
import { AddGroupOptions, AddPanelOptions, MovementOptions } from '../dockview/options';
|
|
3
|
-
import { Direction
|
|
3
|
+
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
|
-
export interface CommonApi {
|
|
15
|
+
export interface CommonApi<T = any> {
|
|
17
16
|
readonly height: number;
|
|
18
17
|
readonly width: number;
|
|
19
18
|
readonly onDidLayoutChange: Event<void>;
|
|
19
|
+
readonly onDidLayoutFromJSON: Event<void>;
|
|
20
20
|
focus(): void;
|
|
21
21
|
layout(width: number, height: number): void;
|
|
22
22
|
resizeToFit(): void;
|
|
23
|
+
fromJSON(data: T): void;
|
|
24
|
+
toJSON(): T;
|
|
23
25
|
}
|
|
24
|
-
export declare class SplitviewApi implements CommonApi {
|
|
26
|
+
export declare class SplitviewApi implements CommonApi<SerializedSplitview> {
|
|
25
27
|
private readonly component;
|
|
26
28
|
get minimumSize(): number;
|
|
27
29
|
get maximumSize(): number;
|
|
@@ -29,6 +31,7 @@ export declare class SplitviewApi implements CommonApi {
|
|
|
29
31
|
get width(): number;
|
|
30
32
|
get length(): number;
|
|
31
33
|
get orientation(): Orientation;
|
|
34
|
+
get onDidLayoutFromJSON(): Event<void>;
|
|
32
35
|
get onDidLayoutChange(): Event<void>;
|
|
33
36
|
get onDidAddView(): Event<IView>;
|
|
34
37
|
get onDidRemoveView(): Event<IView>;
|
|
@@ -44,16 +47,17 @@ export declare class SplitviewApi implements CommonApi {
|
|
|
44
47
|
addPanel(options: AddSplitviewComponentOptions): void;
|
|
45
48
|
resizeToFit(): void;
|
|
46
49
|
movePanel(from: number, to: number): void;
|
|
47
|
-
fromJSON(data: SerializedSplitview
|
|
50
|
+
fromJSON(data: SerializedSplitview): void;
|
|
48
51
|
toJSON(): SerializedSplitview;
|
|
49
52
|
}
|
|
50
|
-
export declare class PaneviewApi implements CommonApi {
|
|
53
|
+
export declare class PaneviewApi implements CommonApi<SerializedPaneview> {
|
|
51
54
|
private readonly component;
|
|
52
55
|
get minimumSize(): number;
|
|
53
56
|
get maximumSize(): number;
|
|
54
57
|
get height(): number;
|
|
55
58
|
get width(): number;
|
|
56
59
|
get onDidLayoutChange(): Event<void>;
|
|
60
|
+
get onDidLayoutFromJSON(): Event<void>;
|
|
57
61
|
get onDidAddView(): Event<IPaneviewPanel>;
|
|
58
62
|
get onDidRemoveView(): Event<IPaneviewPanel>;
|
|
59
63
|
get onDidDrop(): Event<PaneviewDropEvent>;
|
|
@@ -64,12 +68,12 @@ export declare class PaneviewApi implements CommonApi {
|
|
|
64
68
|
movePanel(from: number, to: number): void;
|
|
65
69
|
focus(): void;
|
|
66
70
|
layout(width: number, height: number): void;
|
|
67
|
-
addPanel(options:
|
|
71
|
+
addPanel(options: AddPaneviewComponentOptions): void;
|
|
68
72
|
resizeToFit(): void;
|
|
69
|
-
fromJSON(data: SerializedPaneview
|
|
73
|
+
fromJSON(data: SerializedPaneview): void;
|
|
70
74
|
toJSON(): SerializedPaneview;
|
|
71
75
|
}
|
|
72
|
-
export declare class GridviewApi implements CommonApi {
|
|
76
|
+
export declare class GridviewApi implements CommonApi<SerializedGridview> {
|
|
73
77
|
private readonly component;
|
|
74
78
|
get minimumHeight(): number;
|
|
75
79
|
get maximumHeight(): number;
|
|
@@ -77,7 +81,6 @@ export declare class GridviewApi implements CommonApi {
|
|
|
77
81
|
get maximumWidth(): number;
|
|
78
82
|
get width(): number;
|
|
79
83
|
get height(): number;
|
|
80
|
-
get onGridEvent(): Event<GroupChangeEvent>;
|
|
81
84
|
get onDidLayoutChange(): Event<void>;
|
|
82
85
|
get onDidAddGroup(): Event<IGridviewPanel>;
|
|
83
86
|
get onDidRemoveGroup(): Event<IGridviewPanel>;
|
|
@@ -101,10 +104,10 @@ export declare class GridviewApi implements CommonApi {
|
|
|
101
104
|
toggleVisibility(panel: IGridviewPanel): void;
|
|
102
105
|
setVisible(panel: IGridviewPanel, visible: boolean): void;
|
|
103
106
|
setActive(panel: IGridviewPanel): void;
|
|
104
|
-
fromJSON(data: SerializedGridview
|
|
107
|
+
fromJSON(data: SerializedGridview): void;
|
|
105
108
|
toJSON(): SerializedGridview;
|
|
106
109
|
}
|
|
107
|
-
export declare class DockviewApi implements CommonApi {
|
|
110
|
+
export declare class DockviewApi implements CommonApi<SerializedDockview> {
|
|
108
111
|
private readonly component;
|
|
109
112
|
get width(): number;
|
|
110
113
|
get height(): number;
|
|
@@ -114,14 +117,13 @@ export declare class DockviewApi implements CommonApi {
|
|
|
114
117
|
get maximumWidth(): number;
|
|
115
118
|
get size(): number;
|
|
116
119
|
get totalPanels(): number;
|
|
117
|
-
get onGridEvent(): Event<GroupChangeEvent>;
|
|
118
120
|
get onDidActiveGroupChange(): Event<IGroupviewPanel | undefined>;
|
|
119
121
|
get onDidAddGroup(): Event<IGroupviewPanel>;
|
|
120
122
|
get onDidRemoveGroup(): Event<IGroupviewPanel>;
|
|
121
123
|
get onDidActivePanelChange(): Event<IGroupPanel | undefined>;
|
|
122
124
|
get onDidAddPanel(): Event<IGroupPanel>;
|
|
123
125
|
get onDidRemovePanel(): Event<IGroupPanel>;
|
|
124
|
-
get
|
|
126
|
+
get onDidLayoutFromJSON(): Event<void>;
|
|
125
127
|
get onDidLayoutChange(): Event<void>;
|
|
126
128
|
get panels(): IGroupPanel[];
|
|
127
129
|
get groups(): IGroupviewPanel[];
|
|
@@ -21,6 +21,9 @@ export class SplitviewApi {
|
|
|
21
21
|
get orientation() {
|
|
22
22
|
return this.component.orientation;
|
|
23
23
|
}
|
|
24
|
+
get onDidLayoutFromJSON() {
|
|
25
|
+
return this.component.onDidLayoutFromJSON;
|
|
26
|
+
}
|
|
24
27
|
get onDidLayoutChange() {
|
|
25
28
|
return this.component.onDidLayoutChange;
|
|
26
29
|
}
|
|
@@ -63,8 +66,8 @@ export class SplitviewApi {
|
|
|
63
66
|
movePanel(from, to) {
|
|
64
67
|
this.component.movePanel(from, to);
|
|
65
68
|
}
|
|
66
|
-
fromJSON(data
|
|
67
|
-
this.component.fromJSON(data
|
|
69
|
+
fromJSON(data) {
|
|
70
|
+
this.component.fromJSON(data);
|
|
68
71
|
}
|
|
69
72
|
toJSON() {
|
|
70
73
|
return this.component.toJSON();
|
|
@@ -89,6 +92,9 @@ export class PaneviewApi {
|
|
|
89
92
|
get onDidLayoutChange() {
|
|
90
93
|
return this.component.onDidLayoutChange;
|
|
91
94
|
}
|
|
95
|
+
get onDidLayoutFromJSON() {
|
|
96
|
+
return this.component.onDidLayoutFromJSON;
|
|
97
|
+
}
|
|
92
98
|
get onDidAddView() {
|
|
93
99
|
return this.component.onDidAddView;
|
|
94
100
|
}
|
|
@@ -125,13 +131,13 @@ export class PaneviewApi {
|
|
|
125
131
|
this.component.layout(width, height);
|
|
126
132
|
}
|
|
127
133
|
addPanel(options) {
|
|
128
|
-
|
|
134
|
+
this.component.addPanel(options);
|
|
129
135
|
}
|
|
130
136
|
resizeToFit() {
|
|
131
137
|
this.component.resizeToFit();
|
|
132
138
|
}
|
|
133
|
-
fromJSON(data
|
|
134
|
-
this.component.fromJSON(data
|
|
139
|
+
fromJSON(data) {
|
|
140
|
+
this.component.fromJSON(data);
|
|
135
141
|
}
|
|
136
142
|
toJSON() {
|
|
137
143
|
return this.component.toJSON();
|
|
@@ -159,9 +165,6 @@ export class GridviewApi {
|
|
|
159
165
|
get height() {
|
|
160
166
|
return this.component.height;
|
|
161
167
|
}
|
|
162
|
-
get onGridEvent() {
|
|
163
|
-
return this.component.onGridEvent;
|
|
164
|
-
}
|
|
165
168
|
get onDidLayoutChange() {
|
|
166
169
|
return this.component.onDidLayoutChange;
|
|
167
170
|
}
|
|
@@ -216,8 +219,8 @@ export class GridviewApi {
|
|
|
216
219
|
setActive(panel) {
|
|
217
220
|
this.component.setActive(panel);
|
|
218
221
|
}
|
|
219
|
-
fromJSON(data
|
|
220
|
-
return this.component.fromJSON(data
|
|
222
|
+
fromJSON(data) {
|
|
223
|
+
return this.component.fromJSON(data);
|
|
221
224
|
}
|
|
222
225
|
toJSON() {
|
|
223
226
|
return this.component.toJSON();
|
|
@@ -251,9 +254,6 @@ export class DockviewApi {
|
|
|
251
254
|
get totalPanels() {
|
|
252
255
|
return this.component.totalPanels;
|
|
253
256
|
}
|
|
254
|
-
get onGridEvent() {
|
|
255
|
-
return this.component.onGridEvent;
|
|
256
|
-
}
|
|
257
257
|
get onDidActiveGroupChange() {
|
|
258
258
|
return this.component.onDidActiveGroupChange;
|
|
259
259
|
}
|
|
@@ -272,7 +272,7 @@ export class DockviewApi {
|
|
|
272
272
|
get onDidRemovePanel() {
|
|
273
273
|
return this.component.onDidRemovePanel;
|
|
274
274
|
}
|
|
275
|
-
get
|
|
275
|
+
get onDidLayoutFromJSON() {
|
|
276
276
|
return this.component.onDidLayoutfromJSON;
|
|
277
277
|
}
|
|
278
278
|
get onDidLayoutChange() {
|
|
@@ -3,7 +3,7 @@ export declare abstract class DragHandler extends CompositeDisposable {
|
|
|
3
3
|
private readonly el;
|
|
4
4
|
private readonly disposable;
|
|
5
5
|
private readonly _onDragStart;
|
|
6
|
-
readonly onDragStart: import("
|
|
6
|
+
readonly onDragStart: import("../events").Event<void>;
|
|
7
7
|
private iframes;
|
|
8
8
|
constructor(el: HTMLElement);
|
|
9
9
|
abstract getData(): IDisposable;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { MutableDisposable } from '..';
|
|
2
1
|
import { getElementsByTagName } from '../dom';
|
|
3
2
|
import { addDisposableListener, Emitter } from '../events';
|
|
4
|
-
import { CompositeDisposable } from '../lifecycle';
|
|
3
|
+
import { CompositeDisposable, MutableDisposable, } from '../lifecycle';
|
|
5
4
|
export class DragHandler extends CompositeDisposable {
|
|
6
5
|
constructor(el) {
|
|
7
6
|
super();
|
|
@@ -27,7 +26,7 @@ export class DragHandler extends CompositeDisposable {
|
|
|
27
26
|
if (event.dataTransfer) {
|
|
28
27
|
event.dataTransfer.effectAllowed = 'move';
|
|
29
28
|
}
|
|
30
|
-
}), addDisposableListener(this.el, 'dragend', (
|
|
29
|
+
}), addDisposableListener(this.el, 'dragend', () => {
|
|
31
30
|
for (const iframe of this.iframes) {
|
|
32
31
|
iframe.style.pointerEvents = 'auto';
|
|
33
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
|
}
|
|
@@ -8,12 +8,12 @@ export declare class Watermark extends CompositeDisposable implements IWatermark
|
|
|
8
8
|
private params;
|
|
9
9
|
get id(): string;
|
|
10
10
|
constructor();
|
|
11
|
-
update(
|
|
11
|
+
update(_event: PanelUpdateEvent): void;
|
|
12
12
|
focus(): void;
|
|
13
13
|
toJSON(): {};
|
|
14
|
-
layout(
|
|
14
|
+
layout(_width: number, _height: number): void;
|
|
15
15
|
init(params: GroupPanelPartInitParameters): void;
|
|
16
|
-
updateParentGroup(group: GroupviewPanel,
|
|
16
|
+
updateParentGroup(group: GroupviewPanel, _visible: boolean): void;
|
|
17
17
|
get element(): HTMLElement;
|
|
18
18
|
private render;
|
|
19
19
|
dispose(): void;
|
|
@@ -32,7 +32,7 @@ export class Watermark extends CompositeDisposable {
|
|
|
32
32
|
get id() {
|
|
33
33
|
return 'watermark';
|
|
34
34
|
}
|
|
35
|
-
update(
|
|
35
|
+
update(_event) {
|
|
36
36
|
// noop
|
|
37
37
|
}
|
|
38
38
|
focus() {
|
|
@@ -41,17 +41,17 @@ export class Watermark extends CompositeDisposable {
|
|
|
41
41
|
toJSON() {
|
|
42
42
|
return {};
|
|
43
43
|
}
|
|
44
|
-
layout(
|
|
44
|
+
layout(_width, _height) {
|
|
45
45
|
// noop
|
|
46
46
|
}
|
|
47
47
|
init(params) {
|
|
48
48
|
this.params = params;
|
|
49
|
-
this.addDisposables(this.params.containerApi.onDidLayoutChange((
|
|
49
|
+
this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
|
|
50
50
|
this.render();
|
|
51
51
|
}));
|
|
52
52
|
this.render();
|
|
53
53
|
}
|
|
54
|
-
updateParentGroup(group,
|
|
54
|
+
updateParentGroup(group, _visible) {
|
|
55
55
|
this.group = group;
|
|
56
56
|
this.render();
|
|
57
57
|
}
|
|
@@ -30,11 +30,11 @@ export interface SerializedDockview {
|
|
|
30
30
|
[key: string]: GroupviewPanelState;
|
|
31
31
|
};
|
|
32
32
|
activeGroup?: string;
|
|
33
|
-
options
|
|
33
|
+
options?: {
|
|
34
34
|
tabHeight?: number;
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay'>;
|
|
37
|
+
export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay' | 'watermarkFrameworkComponent'>;
|
|
38
38
|
export interface DockviewDropEvent extends GroupviewDropEvent {
|
|
39
39
|
api: DockviewApi;
|
|
40
40
|
}
|
|
@@ -113,14 +113,17 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
|
|
|
113
113
|
closeAllGroups(): void;
|
|
114
114
|
fireMouseEvent(event: LayoutMouseEvent): void;
|
|
115
115
|
addPanel(options: AddPanelOptions): IGroupPanel;
|
|
116
|
-
removePanel(panel: IGroupPanel
|
|
116
|
+
removePanel(panel: IGroupPanel, options?: {
|
|
117
|
+
removeEmptyGroup: boolean;
|
|
118
|
+
skipDispose: boolean;
|
|
119
|
+
}): void;
|
|
117
120
|
createWatermarkComponent(): IWatermarkRenderer;
|
|
118
121
|
addEmptyGroup(options: AddGroupOptions): void;
|
|
119
|
-
removeGroup(group: GroupviewPanel): void;
|
|
122
|
+
removeGroup(group: GroupviewPanel, skipActive?: boolean): void;
|
|
120
123
|
moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
|
|
121
124
|
doSetGroupActive(group: GroupviewPanel | undefined, skipFocus?: boolean): void;
|
|
122
125
|
createGroup(options?: GroupOptions): GroupviewPanel;
|
|
123
|
-
private
|
|
126
|
+
private createPanel;
|
|
124
127
|
private createContentComponent;
|
|
125
128
|
private createTabComponent;
|
|
126
129
|
private addPanelToNewGroup;
|
|
@@ -3,12 +3,12 @@ import { Position } from '../dnd/droptarget';
|
|
|
3
3
|
import { tail, sequenceEquals } from '../array';
|
|
4
4
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
5
5
|
import { CompositeDisposable } from '../lifecycle';
|
|
6
|
-
import { Emitter } from '../events';
|
|
6
|
+
import { Event, Emitter } from '../events';
|
|
7
7
|
import { Watermark } from './components/watermark/watermark';
|
|
8
8
|
import { sequentialNumberGenerator } from '../math';
|
|
9
9
|
import { DefaultDeserializer } from './deserializer';
|
|
10
10
|
import { createComponent } from '../panel/componentFactory';
|
|
11
|
-
import { BaseGrid,
|
|
11
|
+
import { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';
|
|
12
12
|
import { DockviewApi } from '../api/component.api';
|
|
13
13
|
import { MouseEventKind } from '../groupview/tab';
|
|
14
14
|
import { Orientation } from '../splitview/core/splitview';
|
|
@@ -39,7 +39,9 @@ export class DockviewComponent extends BaseGrid {
|
|
|
39
39
|
this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
|
|
40
40
|
this._onDidActivePanelChange = new Emitter();
|
|
41
41
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
42
|
-
this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop)
|
|
42
|
+
this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
43
|
+
this._bufferOnDidLayoutChange.fire();
|
|
44
|
+
}));
|
|
43
45
|
this._options = options;
|
|
44
46
|
if (!this.options.components) {
|
|
45
47
|
this.options.components = {};
|
|
@@ -173,11 +175,12 @@ export class DockviewComponent extends BaseGrid {
|
|
|
173
175
|
};
|
|
174
176
|
}
|
|
175
177
|
fromJSON(data) {
|
|
178
|
+
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
179
|
+
for (const group of groups) {
|
|
180
|
+
// remove the group will automatically remove the panels
|
|
181
|
+
this.removeGroup(group, true);
|
|
182
|
+
}
|
|
176
183
|
this.gridview.clear();
|
|
177
|
-
this.panels.forEach((panel) => {
|
|
178
|
-
panel.dispose();
|
|
179
|
-
});
|
|
180
|
-
this._groups.clear();
|
|
181
184
|
if (!this.deserializer) {
|
|
182
185
|
throw new Error('invalid deserializer');
|
|
183
186
|
}
|
|
@@ -201,7 +204,6 @@ export class DockviewComponent extends BaseGrid {
|
|
|
201
204
|
}
|
|
202
205
|
}
|
|
203
206
|
this.gridview.layout(this.width, this.height);
|
|
204
|
-
this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT_FROM_JSON });
|
|
205
207
|
this._onDidLayoutfromJSON.fire();
|
|
206
208
|
}
|
|
207
209
|
closeAllGroups() {
|
|
@@ -223,7 +225,10 @@ export class DockviewComponent extends BaseGrid {
|
|
|
223
225
|
}
|
|
224
226
|
addPanel(options) {
|
|
225
227
|
var _a, _b;
|
|
226
|
-
|
|
228
|
+
if (this.panels.find((_) => _.id === options.id)) {
|
|
229
|
+
throw new Error(`panel with id ${options.id} already exists`);
|
|
230
|
+
}
|
|
231
|
+
const panel = this.createPanel(options);
|
|
227
232
|
let referenceGroup;
|
|
228
233
|
if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
|
|
229
234
|
const referencePanel = this.getGroupPanel(options.position.referencePanel);
|
|
@@ -251,13 +256,20 @@ export class DockviewComponent extends BaseGrid {
|
|
|
251
256
|
}
|
|
252
257
|
return panel;
|
|
253
258
|
}
|
|
254
|
-
removePanel(panel
|
|
259
|
+
removePanel(panel, options = {
|
|
260
|
+
removeEmptyGroup: true,
|
|
261
|
+
skipDispose: false,
|
|
262
|
+
}) {
|
|
255
263
|
const group = panel.group;
|
|
256
264
|
if (!group) {
|
|
257
265
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
258
266
|
}
|
|
259
267
|
group.model.removePanel(panel);
|
|
260
|
-
|
|
268
|
+
panel.dispose();
|
|
269
|
+
const retainGroupForWatermark = this.size === 1;
|
|
270
|
+
if (!retainGroupForWatermark &&
|
|
271
|
+
group.model.size === 0 &&
|
|
272
|
+
options.removeEmptyGroup) {
|
|
261
273
|
this.removeGroup(group);
|
|
262
274
|
}
|
|
263
275
|
}
|
|
@@ -289,16 +301,15 @@ export class DockviewComponent extends BaseGrid {
|
|
|
289
301
|
this.doAddGroup(group);
|
|
290
302
|
}
|
|
291
303
|
}
|
|
292
|
-
removeGroup(group) {
|
|
304
|
+
removeGroup(group, skipActive = false) {
|
|
293
305
|
const panels = [...group.model.panels]; // reassign since group panels will mutate
|
|
294
|
-
|
|
295
|
-
this.removePanel(panel
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
return;
|
|
306
|
+
for (const panel of panels) {
|
|
307
|
+
this.removePanel(panel, {
|
|
308
|
+
removeEmptyGroup: false,
|
|
309
|
+
skipDispose: false,
|
|
310
|
+
});
|
|
300
311
|
}
|
|
301
|
-
super.
|
|
312
|
+
super.doRemoveGroup(group, { skipActive });
|
|
302
313
|
}
|
|
303
314
|
moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
|
|
304
315
|
var _a;
|
|
@@ -353,15 +364,11 @@ export class DockviewComponent extends BaseGrid {
|
|
|
353
364
|
}
|
|
354
365
|
}
|
|
355
366
|
doSetGroupActive(group, skipFocus) {
|
|
356
|
-
var _a, _b
|
|
367
|
+
var _a, _b;
|
|
357
368
|
const isGroupAlreadyFocused = this._activeGroup === group;
|
|
358
369
|
super.doSetGroupActive(group, skipFocus);
|
|
359
370
|
if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
|
|
360
|
-
this.
|
|
361
|
-
kind: GroupChangeKind.PANEL_ACTIVE,
|
|
362
|
-
panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
|
|
363
|
-
});
|
|
364
|
-
this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
|
|
371
|
+
this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
|
|
365
372
|
}
|
|
366
373
|
}
|
|
367
374
|
createGroup(options) {
|
|
@@ -383,6 +390,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
383
390
|
}
|
|
384
391
|
}
|
|
385
392
|
const view = new GroupviewPanel(this, id, options);
|
|
393
|
+
view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
|
|
386
394
|
if (!this._groups.has(view.id)) {
|
|
387
395
|
const disposable = new CompositeDisposable(view.model.onMove((event) => {
|
|
388
396
|
const { groupId, itemId, target, index } = event;
|
|
@@ -392,28 +400,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
392
400
|
}), view.model.onDidGroupChange((event) => {
|
|
393
401
|
switch (event.kind) {
|
|
394
402
|
case GroupChangeKind2.ADD_PANEL:
|
|
395
|
-
this._onGridEvent.fire({
|
|
396
|
-
kind: GroupChangeKind.ADD_PANEL,
|
|
397
|
-
panel: event.panel,
|
|
398
|
-
});
|
|
399
403
|
if (event.panel) {
|
|
400
404
|
this._onDidAddPanel.fire(event.panel);
|
|
401
405
|
}
|
|
402
406
|
break;
|
|
403
407
|
case GroupChangeKind2.REMOVE_PANEL:
|
|
404
|
-
this._onGridEvent.fire({
|
|
405
|
-
kind: GroupChangeKind.REMOVE_PANEL,
|
|
406
|
-
panel: event.panel,
|
|
407
|
-
});
|
|
408
408
|
if (event.panel) {
|
|
409
409
|
this._onDidRemovePanel.fire(event.panel);
|
|
410
410
|
}
|
|
411
411
|
break;
|
|
412
412
|
case GroupChangeKind2.PANEL_ACTIVE:
|
|
413
|
-
this._onGridEvent.fire({
|
|
414
|
-
kind: GroupChangeKind.PANEL_ACTIVE,
|
|
415
|
-
panel: event.panel,
|
|
416
|
-
});
|
|
417
413
|
this._onDidActivePanelChange.fire(event.panel);
|
|
418
414
|
break;
|
|
419
415
|
}
|
|
@@ -428,7 +424,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
428
424
|
}
|
|
429
425
|
return view;
|
|
430
426
|
}
|
|
431
|
-
|
|
427
|
+
createPanel(options) {
|
|
432
428
|
const view = new DefaultGroupPanelView({
|
|
433
429
|
content: this.createContentComponent(options.id, options.component),
|
|
434
430
|
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
@@ -15,6 +15,7 @@ export declare class DockviewGroupPanel extends CompositeDisposable implements I
|
|
|
15
15
|
private _view?;
|
|
16
16
|
private _title;
|
|
17
17
|
private _suppressClosable;
|
|
18
|
+
get params(): any;
|
|
18
19
|
get title(): string;
|
|
19
20
|
get suppressClosable(): boolean;
|
|
20
21
|
get group(): GroupviewPanel | undefined;
|
|
@@ -16,6 +16,10 @@ export class DockviewGroupPanel extends CompositeDisposable {
|
|
|
16
16
|
this.update({ params: { title } });
|
|
17
17
|
}));
|
|
18
18
|
}
|
|
19
|
+
get params() {
|
|
20
|
+
var _a;
|
|
21
|
+
return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
|
|
22
|
+
}
|
|
19
23
|
get title() {
|
|
20
24
|
return this._title;
|
|
21
25
|
}
|
|
@@ -1,29 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Event, TickDelayedEvent } from '../events';
|
|
2
2
|
import { Gridview, IGridView } from './gridview';
|
|
3
3
|
import { Position } from '../dnd/droptarget';
|
|
4
4
|
import { CompositeDisposable, IValueDisposable } from '../lifecycle';
|
|
5
5
|
import { ISplitviewStyles, Orientation } from '../splitview/core/splitview';
|
|
6
6
|
import { IPanel } from '../panel/types';
|
|
7
7
|
import { MovementOptions2 } from '../dockview/options';
|
|
8
|
-
import { IGroupPanel } from '../groupview/groupPanel';
|
|
9
|
-
export declare enum GroupChangeKind {
|
|
10
|
-
ADD_PANEL = "ADD_PANEL",
|
|
11
|
-
REMOVE_PANEL = "REMOVE_PANEL",
|
|
12
|
-
PANEL_ACTIVE = "PANEL_ACTIVE",
|
|
13
|
-
GROUP_ACTIVE = "GROUP_ACTIVE",
|
|
14
|
-
ADD_GROUP = "ADD_GROUP",
|
|
15
|
-
REMOVE_GROUP = "REMOVE_GROUP",
|
|
16
|
-
LAYOUT_FROM_JSON = "LAYOUT_FROM_JSON",
|
|
17
|
-
LAYOUT = "LAYOUT"
|
|
18
|
-
}
|
|
19
|
-
export interface GroupChangeEvent {
|
|
20
|
-
readonly kind: GroupChangeKind;
|
|
21
|
-
readonly panel?: IGroupPanel;
|
|
22
|
-
}
|
|
23
8
|
export declare type Direction = 'left' | 'right' | 'above' | 'below' | 'within';
|
|
24
9
|
export declare function toTarget(direction: Direction): Position;
|
|
25
10
|
export interface BaseGridOptions {
|
|
26
|
-
readonly proportionalLayout
|
|
11
|
+
readonly proportionalLayout: boolean;
|
|
27
12
|
readonly orientation: Orientation;
|
|
28
13
|
readonly styles?: ISplitviewStyles;
|
|
29
14
|
}
|
|
@@ -43,7 +28,6 @@ export interface IBaseGrid<T extends IGridPanelView> {
|
|
|
43
28
|
readonly activeGroup: T | undefined;
|
|
44
29
|
readonly size: number;
|
|
45
30
|
readonly groups: T[];
|
|
46
|
-
readonly onGridEvent: Event<GroupChangeEvent>;
|
|
47
31
|
readonly onDidLayoutChange: Event<void>;
|
|
48
32
|
readonly onDidRemoveGroup: Event<T>;
|
|
49
33
|
readonly onDidAddGroup: Event<T>;
|
|
@@ -62,8 +46,6 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Composi
|
|
|
62
46
|
protected readonly _groups: Map<string, IValueDisposable<T>>;
|
|
63
47
|
protected readonly gridview: Gridview;
|
|
64
48
|
protected _activeGroup: T | undefined;
|
|
65
|
-
protected readonly _onGridEvent: Emitter<GroupChangeEvent>;
|
|
66
|
-
readonly onGridEvent: Event<GroupChangeEvent>;
|
|
67
49
|
private _onDidLayoutChange;
|
|
68
50
|
readonly onDidLayoutChange: Event<void>;
|
|
69
51
|
private readonly _onDidRemoveGroup;
|
|
@@ -72,6 +54,7 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Composi
|
|
|
72
54
|
readonly onDidAddGroup: Event<T>;
|
|
73
55
|
private readonly _onDidActiveGroupChange;
|
|
74
56
|
readonly onDidActiveGroupChange: Event<T | undefined>;
|
|
57
|
+
protected readonly _bufferOnDidLayoutChange: TickDelayedEvent;
|
|
75
58
|
get id(): string;
|
|
76
59
|
get element(): HTMLElement;
|
|
77
60
|
get size(): number;
|