dockview 1.2.0 → 1.4.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/README.md +3 -3
- package/dist/cjs/api/component.api.d.ts +37 -37
- package/dist/cjs/api/component.api.js +44 -27
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/groupPanelApi.d.ts +7 -7
- package/dist/cjs/api/groupPanelApi.js +1 -1
- package/dist/cjs/api/groupPanelApi.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.d.ts +3 -1
- package/dist/cjs/dnd/droptarget.js +14 -14
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +4 -4
- 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 +4 -4
- 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/defaultGroupPanelView.d.ts +3 -3
- package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
- package/dist/cjs/dockview/deserializer.d.ts +9 -6
- package/dist/cjs/dockview/deserializer.js +17 -10
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +34 -33
- package/dist/cjs/dockview/dockviewComponent.js +43 -28
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +6 -6
- package/dist/cjs/dockview/dockviewGroupPanel.js +5 -4
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +5 -6
- package/dist/cjs/gridview/baseComponentGridview.d.ts +0 -5
- package/dist/cjs/gridview/baseComponentGridview.js +26 -10
- 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.d.ts +2 -2
- package/dist/cjs/gridview/gridview.js +1 -1
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +5 -11
- package/dist/cjs/gridview/gridviewComponent.js +34 -20
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/groupview/groupPanel.d.ts +4 -4
- package/dist/cjs/groupview/groupview.d.ts +55 -41
- package/dist/cjs/groupview/groupview.js +63 -23
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +16 -2
- package/dist/cjs/groupview/groupviewPanel.js +63 -18
- package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
- package/dist/cjs/groupview/panel/content.d.ts +4 -4
- package/dist/cjs/groupview/panel/content.js +1 -1
- package/dist/cjs/groupview/panel/content.js.map +1 -1
- package/dist/cjs/groupview/tab.d.ts +4 -4
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +13 -9
- package/dist/cjs/groupview/titlebar/tabsContainer.js +17 -3
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/groupview/types.d.ts +4 -4
- package/dist/cjs/hostedContainer.js +2 -2
- package/dist/cjs/hostedContainer.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +6 -2
- 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 +3 -3
- 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 +13 -12
- package/dist/cjs/paneview/paneviewComponent.js +74 -32
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/react/deserializer.d.ts +3 -2
- package/dist/cjs/react/deserializer.js +2 -2
- package/dist/cjs/react/deserializer.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.d.ts +2 -3
- package/dist/cjs/react/dockview/dockview.js +18 -10
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/reactContentPart.d.ts +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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.d.ts +2 -2
- package/dist/cjs/react/gridview/gridview.js +2 -1
- 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/paneview/paneview.d.ts +2 -2
- package/dist/cjs/react/paneview/paneview.js +1 -1
- package/dist/cjs/react/paneview/paneview.js.map +1 -1
- package/dist/cjs/react/splitview/splitview.d.ts +2 -2
- package/dist/cjs/react/splitview/splitview.js +2 -1
- package/dist/cjs/react/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +11 -14
- package/dist/cjs/splitview/splitviewComponent.js +80 -47
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/dockview.amd.js +2378 -2309
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +2377 -2308
- package/dist/dockview.cjs.js +2378 -2309
- package/dist/dockview.esm.js +2378 -2309
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +2378 -2309
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +2377 -2308
- package/dist/esm/api/component.api.d.ts +37 -37
- package/dist/esm/api/component.api.js +24 -27
- package/dist/esm/api/groupPanelApi.d.ts +7 -7
- package/dist/esm/api/groupPanelApi.js +1 -1
- package/dist/esm/dnd/abstractDragHandler.js +1 -1
- package/dist/esm/dnd/droptarget.d.ts +3 -1
- package/dist/esm/dnd/droptarget.js +14 -14
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +4 -4
- package/dist/esm/dockview/components/tab/defaultTab.js +1 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts +4 -4
- package/dist/esm/dockview/components/watermark/watermark.js +4 -4
- package/dist/esm/dockview/defaultGroupPanelView.d.ts +3 -3
- package/dist/esm/dockview/deserializer.d.ts +9 -6
- package/dist/esm/dockview/deserializer.js +17 -10
- package/dist/esm/dockview/dockviewComponent.d.ts +34 -33
- package/dist/esm/dockview/dockviewComponent.js +44 -29
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +6 -6
- package/dist/esm/dockview/dockviewGroupPanel.js +5 -4
- package/dist/esm/dockview/options.d.ts +5 -6
- package/dist/esm/gridview/baseComponentGridview.d.ts +0 -5
- package/dist/esm/gridview/baseComponentGridview.js +4 -10
- package/dist/esm/gridview/basePanelView.js +2 -0
- package/dist/esm/gridview/branchNode.js +1 -1
- package/dist/esm/gridview/gridview.d.ts +2 -2
- package/dist/esm/gridview/gridview.js +1 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +5 -11
- package/dist/esm/gridview/gridviewComponent.js +12 -20
- package/dist/esm/groupview/groupPanel.d.ts +4 -4
- package/dist/esm/groupview/groupview.d.ts +55 -41
- package/dist/esm/groupview/groupview.js +48 -20
- package/dist/esm/groupview/groupviewPanel.d.ts +16 -2
- package/dist/esm/groupview/groupviewPanel.js +24 -4
- package/dist/esm/groupview/panel/content.d.ts +4 -4
- package/dist/esm/groupview/panel/content.js +1 -1
- package/dist/esm/groupview/tab.d.ts +4 -4
- package/dist/esm/groupview/titlebar/tabsContainer.d.ts +13 -9
- package/dist/esm/groupview/titlebar/tabsContainer.js +13 -3
- package/dist/esm/groupview/types.d.ts +4 -4
- package/dist/esm/hostedContainer.js +2 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- 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 +3 -3
- package/dist/esm/paneview/paneview.d.ts +3 -1
- package/dist/esm/paneview/paneview.js +8 -4
- package/dist/esm/paneview/paneviewComponent.d.ts +13 -12
- package/dist/esm/paneview/paneviewComponent.js +36 -31
- package/dist/esm/react/deserializer.d.ts +3 -2
- package/dist/esm/react/deserializer.js +2 -2
- package/dist/esm/react/dockview/dockview.d.ts +2 -3
- package/dist/esm/react/dockview/dockview.js +18 -10
- package/dist/esm/react/dockview/reactContentPart.d.ts +3 -3
- package/dist/esm/react/dockview/reactContentPart.js +2 -13
- package/dist/esm/react/dockview/reactHeaderPart.d.ts +3 -3
- package/dist/esm/react/dockview/reactHeaderPart.js +2 -2
- package/dist/esm/react/dockview/reactWatermarkPart.d.ts +3 -3
- package/dist/esm/react/dockview/reactWatermarkPart.js +2 -2
- package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +3 -3
- package/dist/esm/react/dockview/v2/reactContentRenderer.js +2 -2
- package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +3 -3
- package/dist/esm/react/dockview/v2/webviewContentRenderer.js +2 -2
- package/dist/esm/react/gridview/gridview.d.ts +2 -2
- package/dist/esm/react/gridview/gridview.js +2 -1
- package/dist/esm/react/gridview/view.d.ts +3 -2
- package/dist/esm/react/paneview/paneview.d.ts +2 -2
- package/dist/esm/react/paneview/paneview.js +1 -1
- package/dist/esm/react/splitview/splitview.d.ts +2 -2
- package/dist/esm/react/splitview/splitview.js +2 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +11 -14
- package/dist/esm/splitview/splitviewComponent.js +39 -42
- package/dist/styles/dockview.css +5 -6
- package/package.json +13 -12
|
@@ -67,7 +67,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
67
67
|
this.gridview.setViewVisible(getGridLocation(panel.element), visible);
|
|
68
68
|
}
|
|
69
69
|
setActive(panel) {
|
|
70
|
-
this._groups.forEach((value,
|
|
70
|
+
this._groups.forEach((value, _key) => {
|
|
71
71
|
value.value.setActive(panel === value.value);
|
|
72
72
|
});
|
|
73
73
|
}
|
|
@@ -78,10 +78,14 @@ export class GridviewComponent extends BaseGrid {
|
|
|
78
78
|
var _a;
|
|
79
79
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
80
80
|
}
|
|
81
|
-
fromJSON(serializedGridview
|
|
81
|
+
fromJSON(serializedGridview) {
|
|
82
82
|
const { grid, activePanel } = serializedGridview;
|
|
83
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
84
|
+
for (const group of groups) {
|
|
85
|
+
group.disposable.dispose();
|
|
86
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
87
|
+
}
|
|
83
88
|
this.gridview.clear();
|
|
84
|
-
this._groups.clear();
|
|
85
89
|
const queue = [];
|
|
86
90
|
this.gridview.deserialize(grid, {
|
|
87
91
|
fromJSON: (node) => {
|
|
@@ -108,14 +112,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
108
112
|
},
|
|
109
113
|
});
|
|
110
114
|
this.layout(this.width, this.height, true);
|
|
111
|
-
|
|
112
|
-
setTimeout(() => {
|
|
113
|
-
queue.forEach((f) => f());
|
|
114
|
-
}, 0);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
queue.forEach((f) => f());
|
|
118
|
-
}
|
|
115
|
+
queue.forEach((f) => f());
|
|
119
116
|
if (typeof activePanel === 'string') {
|
|
120
117
|
const panel = this.getPanel(activePanel);
|
|
121
118
|
if (panel) {
|
|
@@ -145,10 +142,10 @@ export class GridviewComponent extends BaseGrid {
|
|
|
145
142
|
addPanel(options) {
|
|
146
143
|
var _a, _b;
|
|
147
144
|
let relativeLocation = options.location || [0];
|
|
148
|
-
if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.
|
|
149
|
-
const referenceGroup = (_b = this._groups.get(options.position.
|
|
145
|
+
if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
|
|
146
|
+
const referenceGroup = (_b = this._groups.get(options.position.referencePanel)) === null || _b === void 0 ? void 0 : _b.value;
|
|
150
147
|
if (!referenceGroup) {
|
|
151
|
-
throw new Error(`reference group ${options.position.
|
|
148
|
+
throw new Error(`reference group ${options.position.referencePanel} does not exist`);
|
|
152
149
|
}
|
|
153
150
|
const target = toTarget(options.position.direction);
|
|
154
151
|
if (target === Position.Center) {
|
|
@@ -178,7 +175,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
178
175
|
});
|
|
179
176
|
this.registerPanel(view);
|
|
180
177
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
181
|
-
return
|
|
178
|
+
return view;
|
|
182
179
|
}
|
|
183
180
|
registerPanel(panel) {
|
|
184
181
|
const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
|
|
@@ -229,11 +226,6 @@ export class GridviewComponent extends BaseGrid {
|
|
|
229
226
|
}
|
|
230
227
|
removeGroup(group) {
|
|
231
228
|
super.removeGroup(group);
|
|
232
|
-
const panel = this._groups.get(group.id);
|
|
233
|
-
if (panel) {
|
|
234
|
-
panel.disposable.dispose();
|
|
235
|
-
this._groups.delete(group.id);
|
|
236
|
-
}
|
|
237
229
|
}
|
|
238
230
|
dispose() {
|
|
239
231
|
super.dispose();
|
|
@@ -2,7 +2,7 @@ import { DockviewPanelApi } from '../api/groupPanelApi';
|
|
|
2
2
|
import { IDisposable } from '../lifecycle';
|
|
3
3
|
import { HeaderPartInitParameters } from './types';
|
|
4
4
|
import { IPanel, PanelInitParameters, PanelUpdateEvent, Parameters } from '../panel/types';
|
|
5
|
-
import {
|
|
5
|
+
import { GroupPanel } from './groupviewPanel';
|
|
6
6
|
import { IGroupPanelView } from '../dockview/defaultGroupPanelView';
|
|
7
7
|
export interface IGroupPanelInitParameters extends PanelInitParameters, HeaderPartInitParameters {
|
|
8
8
|
view: IGroupPanelView;
|
|
@@ -12,14 +12,14 @@ export declare type GroupPanelUpdateEvent = PanelUpdateEvent<{
|
|
|
12
12
|
title?: string;
|
|
13
13
|
suppressClosable?: boolean;
|
|
14
14
|
}>;
|
|
15
|
-
export interface
|
|
15
|
+
export interface IDockviewPanel extends IDisposable, IPanel {
|
|
16
16
|
readonly view?: IGroupPanelView;
|
|
17
|
-
readonly group
|
|
17
|
+
readonly group: GroupPanel;
|
|
18
18
|
readonly api: DockviewPanelApi;
|
|
19
19
|
readonly title: string;
|
|
20
20
|
readonly suppressClosable: boolean;
|
|
21
21
|
readonly params: Record<string, any> | undefined;
|
|
22
|
-
updateParentGroup(group:
|
|
22
|
+
updateParentGroup(group: GroupPanel, isGroupActive: boolean): void;
|
|
23
23
|
init(params: IGroupPanelInitParameters): void;
|
|
24
24
|
toJSON(): GroupviewPanelState;
|
|
25
25
|
update(event: GroupPanelUpdateEvent): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PanelTransfer } from '../dnd/dataTransfer';
|
|
1
2
|
import { Position } from '../dnd/droptarget';
|
|
2
3
|
import { IDockviewComponent } from '../dockview/dockviewComponent';
|
|
3
4
|
import { Event } from '../events';
|
|
@@ -5,8 +6,8 @@ import { IGridPanelView } from '../gridview/baseComponentGridview';
|
|
|
5
6
|
import { IViewSize } from '../gridview/gridview';
|
|
6
7
|
import { CompositeDisposable, IDisposable } from '../lifecycle';
|
|
7
8
|
import { PanelInitParameters, PanelUpdateEvent } from '../panel/types';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
9
|
+
import { IDockviewPanel } from './groupPanel';
|
|
10
|
+
import { GroupPanel } from './groupviewPanel';
|
|
10
11
|
import { DockviewDropTargets } from './dnd';
|
|
11
12
|
export declare enum GroupChangeKind2 {
|
|
12
13
|
ADD_PANEL = "ADD_PANEL",
|
|
@@ -32,55 +33,64 @@ interface GroupMoveEvent {
|
|
|
32
33
|
target: Position;
|
|
33
34
|
index?: number;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
interface CoreGroupOptions {
|
|
37
|
+
locked?: boolean;
|
|
38
|
+
hideHeader?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface GroupOptions extends CoreGroupOptions {
|
|
41
|
+
readonly panels?: IDockviewPanel[];
|
|
42
|
+
readonly activePanel?: IDockviewPanel;
|
|
38
43
|
readonly id?: string;
|
|
39
44
|
tabHeight?: number;
|
|
40
45
|
}
|
|
41
|
-
export interface
|
|
42
|
-
readonly kind: GroupChangeKind2;
|
|
43
|
-
readonly panel?: IGroupPanel;
|
|
44
|
-
}
|
|
45
|
-
export interface GroupPanelViewState {
|
|
46
|
+
export interface GroupPanelViewState extends CoreGroupOptions {
|
|
46
47
|
views: string[];
|
|
47
48
|
activeView?: string;
|
|
48
49
|
id: string;
|
|
49
50
|
}
|
|
51
|
+
export interface GroupviewChangeEvent {
|
|
52
|
+
readonly kind: GroupChangeKind2;
|
|
53
|
+
readonly panel?: IDockviewPanel;
|
|
54
|
+
}
|
|
50
55
|
export interface GroupviewDropEvent {
|
|
51
56
|
nativeEvent: DragEvent;
|
|
52
57
|
position: Position;
|
|
58
|
+
getData(): PanelTransfer | undefined;
|
|
53
59
|
index?: number;
|
|
54
60
|
}
|
|
61
|
+
export interface IHeader {
|
|
62
|
+
hidden: boolean;
|
|
63
|
+
height: number | undefined;
|
|
64
|
+
}
|
|
55
65
|
export interface IGroupview extends IDisposable, IGridPanelView {
|
|
56
66
|
readonly isActive: boolean;
|
|
57
67
|
readonly size: number;
|
|
58
|
-
readonly panels:
|
|
59
|
-
readonly
|
|
60
|
-
readonly
|
|
68
|
+
readonly panels: IDockviewPanel[];
|
|
69
|
+
readonly activePanel: IDockviewPanel | undefined;
|
|
70
|
+
readonly header: IHeader;
|
|
71
|
+
readonly isContentFocused: boolean;
|
|
61
72
|
readonly onDidDrop: Event<GroupviewDropEvent>;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
73
|
+
readonly onDidGroupChange: Event<GroupviewChangeEvent>;
|
|
74
|
+
readonly onMove: Event<GroupMoveEvent>;
|
|
75
|
+
locked: boolean;
|
|
76
|
+
isPanelActive: (panel: IDockviewPanel) => boolean;
|
|
77
|
+
indexOf(panel: IDockviewPanel): number;
|
|
78
|
+
openPanel(panel: IDockviewPanel, options?: {
|
|
65
79
|
index?: number;
|
|
66
80
|
skipFocus?: boolean;
|
|
67
81
|
}): void;
|
|
68
|
-
closePanel(panel:
|
|
82
|
+
closePanel(panel: IDockviewPanel): void;
|
|
69
83
|
closeAllPanels(): void;
|
|
70
|
-
containsPanel(panel:
|
|
71
|
-
removePanel: (panelOrId:
|
|
72
|
-
onDidGroupChange: Event<GroupviewChangeEvent>;
|
|
73
|
-
onMove: Event<GroupMoveEvent>;
|
|
84
|
+
containsPanel(panel: IDockviewPanel): boolean;
|
|
85
|
+
removePanel: (panelOrId: IDockviewPanel | string) => IDockviewPanel;
|
|
74
86
|
moveToNext(options?: {
|
|
75
|
-
panel?:
|
|
87
|
+
panel?: IDockviewPanel;
|
|
76
88
|
suppressRoll?: boolean;
|
|
77
89
|
}): void;
|
|
78
90
|
moveToPrevious(options?: {
|
|
79
|
-
panel?:
|
|
91
|
+
panel?: IDockviewPanel;
|
|
80
92
|
suppressRoll?: boolean;
|
|
81
93
|
}): void;
|
|
82
|
-
isContentFocused(): boolean;
|
|
83
|
-
updateActions(): void;
|
|
84
94
|
canDisplayOverlay(event: DragEvent, target: DockviewDropTargets): boolean;
|
|
85
95
|
}
|
|
86
96
|
export declare class Groupview extends CompositeDisposable implements IGroupview {
|
|
@@ -95,6 +105,7 @@ export declare class Groupview extends CompositeDisposable implements IGroupview
|
|
|
95
105
|
private _activePanel?;
|
|
96
106
|
private watermark?;
|
|
97
107
|
private _isGroupActive;
|
|
108
|
+
private _locked;
|
|
98
109
|
private mostRecentlyUsed;
|
|
99
110
|
private readonly _onDidChange;
|
|
100
111
|
readonly onDidChange: Event<IViewSize | undefined>;
|
|
@@ -108,43 +119,46 @@ export declare class Groupview extends CompositeDisposable implements IGroupview
|
|
|
108
119
|
private readonly _onDidDrop;
|
|
109
120
|
readonly onDidDrop: Event<GroupviewDropEvent>;
|
|
110
121
|
get element(): HTMLElement;
|
|
111
|
-
get activePanel():
|
|
112
|
-
get
|
|
113
|
-
set
|
|
122
|
+
get activePanel(): IDockviewPanel | undefined;
|
|
123
|
+
get locked(): boolean;
|
|
124
|
+
set locked(value: boolean);
|
|
114
125
|
get isActive(): boolean;
|
|
115
|
-
get panels():
|
|
126
|
+
get panels(): IDockviewPanel[];
|
|
116
127
|
get size(): number;
|
|
117
128
|
get isEmpty(): boolean;
|
|
118
129
|
get minimumHeight(): number;
|
|
119
130
|
get maximumHeight(): number;
|
|
120
131
|
get minimumWidth(): number;
|
|
121
132
|
get maximumWidth(): number;
|
|
122
|
-
|
|
133
|
+
get hasWatermark(): boolean;
|
|
134
|
+
get header(): IHeader;
|
|
135
|
+
get isContentFocused(): boolean;
|
|
136
|
+
constructor(container: HTMLElement, accessor: IDockviewComponent, id: string, options: GroupOptions, parent: GroupPanel);
|
|
123
137
|
initialize(): void;
|
|
124
|
-
|
|
125
|
-
indexOf(panel: IGroupPanel): number;
|
|
138
|
+
indexOf(panel: IDockviewPanel): number;
|
|
126
139
|
toJSON(): GroupPanelViewState;
|
|
127
140
|
moveToNext(options?: {
|
|
128
|
-
panel?:
|
|
141
|
+
panel?: IDockviewPanel;
|
|
129
142
|
suppressRoll?: boolean;
|
|
130
143
|
}): void;
|
|
131
144
|
moveToPrevious(options?: {
|
|
132
|
-
panel?:
|
|
145
|
+
panel?: IDockviewPanel;
|
|
133
146
|
suppressRoll?: boolean;
|
|
134
147
|
}): void;
|
|
135
|
-
containsPanel(panel:
|
|
136
|
-
init(
|
|
137
|
-
update(
|
|
148
|
+
containsPanel(panel: IDockviewPanel): boolean;
|
|
149
|
+
init(_params: PanelInitParameters): void;
|
|
150
|
+
update(_params: PanelUpdateEvent): void;
|
|
138
151
|
focus(): void;
|
|
139
|
-
openPanel(panel:
|
|
152
|
+
openPanel(panel: IDockviewPanel, options?: {
|
|
140
153
|
index?: number;
|
|
141
154
|
skipFocus?: boolean;
|
|
155
|
+
skipSetActive?: boolean;
|
|
142
156
|
}): void;
|
|
143
|
-
removePanel(groupItemOrId:
|
|
157
|
+
removePanel(groupItemOrId: IDockviewPanel | string): IDockviewPanel;
|
|
144
158
|
closeAllPanels(): void;
|
|
145
|
-
closePanel(panel:
|
|
159
|
+
closePanel(panel: IDockviewPanel): void;
|
|
146
160
|
private doClose;
|
|
147
|
-
isPanelActive(panel:
|
|
161
|
+
isPanelActive(panel: IDockviewPanel): boolean;
|
|
148
162
|
updateActions(): void;
|
|
149
163
|
setActive(isGroupActive: boolean, skipFocus?: boolean, force?: boolean): void;
|
|
150
164
|
layout(width: number, height: number): void;
|
|
@@ -22,6 +22,7 @@ export class Groupview extends CompositeDisposable {
|
|
|
22
22
|
this.options = options;
|
|
23
23
|
this.parent = parent;
|
|
24
24
|
this._isGroupActive = false;
|
|
25
|
+
this._locked = false;
|
|
25
26
|
this.mostRecentlyUsed = [];
|
|
26
27
|
this._onDidChange = new Emitter();
|
|
27
28
|
this.onDidChange = this._onDidChange.event;
|
|
@@ -42,7 +43,10 @@ export class Groupview extends CompositeDisposable {
|
|
|
42
43
|
this.contentContainer = new ContentContainer();
|
|
43
44
|
this.dropTarget = new Droptarget(this.contentContainer.element, {
|
|
44
45
|
validOverlays: 'all',
|
|
45
|
-
canDisplayOverlay: (event) => {
|
|
46
|
+
canDisplayOverlay: (event, quadrant) => {
|
|
47
|
+
if (this.locked && !quadrant) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
46
50
|
const data = getPanelData();
|
|
47
51
|
if (data) {
|
|
48
52
|
const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
|
|
@@ -52,6 +56,8 @@ export class Groupview extends CompositeDisposable {
|
|
|
52
56
|
},
|
|
53
57
|
});
|
|
54
58
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
59
|
+
this.header.hidden = !!options.hideHeader;
|
|
60
|
+
this.locked = !!options.locked;
|
|
55
61
|
this.addDisposables(this._onMove, this._onDidGroupChange, this.tabsContainer.onDrop((event) => {
|
|
56
62
|
this.handleDropEvent(event.event, Position.Center, event.index);
|
|
57
63
|
}), this.contentContainer.onDidFocus(() => {
|
|
@@ -68,12 +74,11 @@ export class Groupview extends CompositeDisposable {
|
|
|
68
74
|
get activePanel() {
|
|
69
75
|
return this._activePanel;
|
|
70
76
|
}
|
|
71
|
-
get
|
|
72
|
-
return this.
|
|
77
|
+
get locked() {
|
|
78
|
+
return this._locked;
|
|
73
79
|
}
|
|
74
|
-
set
|
|
75
|
-
this.
|
|
76
|
-
this.layout(this._width, this._height);
|
|
80
|
+
set locked(value) {
|
|
81
|
+
this._locked = value;
|
|
77
82
|
}
|
|
78
83
|
get isActive() {
|
|
79
84
|
return this._isGroupActive;
|
|
@@ -99,6 +104,18 @@ export class Groupview extends CompositeDisposable {
|
|
|
99
104
|
get maximumWidth() {
|
|
100
105
|
return Number.MAX_SAFE_INTEGER;
|
|
101
106
|
}
|
|
107
|
+
get hasWatermark() {
|
|
108
|
+
return !!(this.watermark && this.container.contains(this.watermark.element));
|
|
109
|
+
}
|
|
110
|
+
get header() {
|
|
111
|
+
return this.tabsContainer;
|
|
112
|
+
}
|
|
113
|
+
get isContentFocused() {
|
|
114
|
+
if (!document.activeElement) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return isAncestor(document.activeElement, this.contentContainer.element);
|
|
118
|
+
}
|
|
102
119
|
initialize() {
|
|
103
120
|
var _a, _b;
|
|
104
121
|
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
@@ -114,22 +131,23 @@ export class Groupview extends CompositeDisposable {
|
|
|
114
131
|
this.setActive(this.isActive, true, true);
|
|
115
132
|
this.updateContainer();
|
|
116
133
|
}
|
|
117
|
-
isContentFocused() {
|
|
118
|
-
if (!document.activeElement) {
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
return isAncestor(document.activeElement, this.contentContainer.element);
|
|
122
|
-
}
|
|
123
134
|
indexOf(panel) {
|
|
124
135
|
return this.tabsContainer.indexOf(panel.id);
|
|
125
136
|
}
|
|
126
137
|
toJSON() {
|
|
127
138
|
var _a;
|
|
128
|
-
|
|
139
|
+
const result = {
|
|
129
140
|
views: this.tabsContainer.panels,
|
|
130
141
|
activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,
|
|
131
142
|
id: this.id,
|
|
132
143
|
};
|
|
144
|
+
if (this.locked) {
|
|
145
|
+
result.locked = true;
|
|
146
|
+
}
|
|
147
|
+
if (this.header.hidden) {
|
|
148
|
+
result.hideHeader = true;
|
|
149
|
+
}
|
|
150
|
+
return result;
|
|
133
151
|
}
|
|
134
152
|
moveToNext(options) {
|
|
135
153
|
if (!options) {
|
|
@@ -177,10 +195,10 @@ export class Groupview extends CompositeDisposable {
|
|
|
177
195
|
containsPanel(panel) {
|
|
178
196
|
return this.panels.includes(panel);
|
|
179
197
|
}
|
|
180
|
-
init(
|
|
198
|
+
init(_params) {
|
|
181
199
|
//noop
|
|
182
200
|
}
|
|
183
|
-
update(
|
|
201
|
+
update(_params) {
|
|
184
202
|
//noop
|
|
185
203
|
}
|
|
186
204
|
focus() {
|
|
@@ -192,15 +210,18 @@ export class Groupview extends CompositeDisposable {
|
|
|
192
210
|
options.index > this.panels.length) {
|
|
193
211
|
options.index = this.panels.length;
|
|
194
212
|
}
|
|
213
|
+
const skipSetActive = !!options.skipSetActive;
|
|
195
214
|
// ensure the group is updated before we fire any events
|
|
196
215
|
panel.updateParentGroup(this.parent, true);
|
|
197
|
-
if (this._activePanel === panel) {
|
|
216
|
+
if (!skipSetActive && this._activePanel === panel) {
|
|
198
217
|
this.accessor.doSetGroupActive(this.parent);
|
|
199
218
|
return;
|
|
200
219
|
}
|
|
201
220
|
this.doAddPanel(panel, options.index);
|
|
202
|
-
|
|
203
|
-
|
|
221
|
+
if (!skipSetActive) {
|
|
222
|
+
this.doSetActivePanel(panel);
|
|
223
|
+
this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
|
|
224
|
+
}
|
|
204
225
|
this.updateContainer();
|
|
205
226
|
}
|
|
206
227
|
removePanel(groupItemOrId) {
|
|
@@ -399,14 +420,21 @@ export class Groupview extends CompositeDisposable {
|
|
|
399
420
|
});
|
|
400
421
|
}
|
|
401
422
|
else {
|
|
402
|
-
this._onDidDrop.fire({
|
|
423
|
+
this._onDidDrop.fire({
|
|
424
|
+
nativeEvent: event,
|
|
425
|
+
position,
|
|
426
|
+
index,
|
|
427
|
+
getData: () => getPanelData(),
|
|
428
|
+
});
|
|
403
429
|
}
|
|
404
430
|
}
|
|
405
431
|
dispose() {
|
|
432
|
+
var _a;
|
|
433
|
+
super.dispose();
|
|
434
|
+
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
406
435
|
for (const panel of this.panels) {
|
|
407
436
|
panel.dispose();
|
|
408
437
|
}
|
|
409
|
-
super.dispose();
|
|
410
438
|
this.dropTarget.dispose();
|
|
411
439
|
this.tabsContainer.dispose();
|
|
412
440
|
this.contentContainer.dispose();
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import { IFrameworkPart } from '../panel/types';
|
|
2
2
|
import { IDockviewComponent } from '../dockview/dockviewComponent';
|
|
3
|
-
import {
|
|
3
|
+
import { GridviewPanelApi } from '../api/gridviewPanelApi';
|
|
4
|
+
import { Groupview, GroupOptions, IHeader } from './groupview';
|
|
4
5
|
import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel';
|
|
6
|
+
import { IDockviewPanel } from './groupPanel';
|
|
5
7
|
export interface IGroupviewPanel extends IGridviewPanel {
|
|
6
8
|
model: Groupview;
|
|
9
|
+
locked: boolean;
|
|
10
|
+
readonly size: number;
|
|
11
|
+
readonly panels: IDockviewPanel[];
|
|
12
|
+
readonly activePanel: IDockviewPanel | undefined;
|
|
7
13
|
}
|
|
8
|
-
export declare
|
|
14
|
+
export declare type IGroupviewPanelPublic = IGroupviewPanel;
|
|
15
|
+
export declare type GroupviewPanelApi = GridviewPanelApi;
|
|
16
|
+
export declare class GroupPanel extends GridviewPanel implements IGroupviewPanel {
|
|
9
17
|
private readonly _model;
|
|
18
|
+
get panels(): IDockviewPanel[];
|
|
19
|
+
get activePanel(): IDockviewPanel | undefined;
|
|
20
|
+
get size(): number;
|
|
10
21
|
get model(): Groupview;
|
|
11
22
|
get minimumHeight(): number;
|
|
12
23
|
get maximumHeight(): number;
|
|
13
24
|
get minimumWidth(): number;
|
|
14
25
|
get maximumWidth(): number;
|
|
26
|
+
get locked(): boolean;
|
|
27
|
+
set locked(value: boolean);
|
|
28
|
+
get header(): IHeader;
|
|
15
29
|
constructor(accessor: IDockviewComponent, id: string, options: GroupOptions);
|
|
16
30
|
initialize(): void;
|
|
17
31
|
setActive(isActive: boolean): void;
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
import { GridviewPanelApiImpl } from '../api/gridviewPanelApi';
|
|
1
|
+
import { GridviewPanelApiImpl, } from '../api/gridviewPanelApi';
|
|
2
2
|
import { Groupview } from './groupview';
|
|
3
3
|
import { GridviewPanel } from '../gridview/gridviewPanel';
|
|
4
|
-
|
|
4
|
+
class GroupviewApi extends GridviewPanelApiImpl {
|
|
5
|
+
}
|
|
6
|
+
export class GroupPanel extends GridviewPanel {
|
|
5
7
|
constructor(accessor, id, options) {
|
|
6
|
-
super(id, 'groupview_default', new
|
|
8
|
+
super(id, 'groupview_default', new GroupviewApi(id));
|
|
7
9
|
this._model = new Groupview(this.element, accessor, id, options, this);
|
|
8
10
|
}
|
|
11
|
+
get panels() {
|
|
12
|
+
return this._model.panels;
|
|
13
|
+
}
|
|
14
|
+
get activePanel() {
|
|
15
|
+
return this._model.activePanel;
|
|
16
|
+
}
|
|
17
|
+
get size() {
|
|
18
|
+
return this._model.size;
|
|
19
|
+
}
|
|
9
20
|
get model() {
|
|
10
21
|
return this._model;
|
|
11
22
|
}
|
|
@@ -21,8 +32,17 @@ export class GroupviewPanel extends GridviewPanel {
|
|
|
21
32
|
get maximumWidth() {
|
|
22
33
|
return this._model.maximumWidth;
|
|
23
34
|
}
|
|
35
|
+
get locked() {
|
|
36
|
+
return this._model.locked;
|
|
37
|
+
}
|
|
38
|
+
set locked(value) {
|
|
39
|
+
this._model.locked = value;
|
|
40
|
+
}
|
|
41
|
+
get header() {
|
|
42
|
+
return this._model.header;
|
|
43
|
+
}
|
|
24
44
|
initialize() {
|
|
25
|
-
this.
|
|
45
|
+
this._model.initialize();
|
|
26
46
|
}
|
|
27
47
|
setActive(isActive) {
|
|
28
48
|
super.setActive(isActive);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { CompositeDisposable, IDisposable } from '../../lifecycle';
|
|
2
2
|
import { Event } from '../../events';
|
|
3
|
-
import {
|
|
3
|
+
import { IDockviewPanel } from '../groupPanel';
|
|
4
4
|
export interface IContentContainer extends IDisposable {
|
|
5
5
|
onDidFocus: Event<void>;
|
|
6
6
|
onDidBlur: Event<void>;
|
|
7
7
|
element: HTMLElement;
|
|
8
8
|
layout(width: number, height: number): void;
|
|
9
|
-
openPanel: (panel:
|
|
9
|
+
openPanel: (panel: IDockviewPanel) => void;
|
|
10
10
|
closePanel: () => void;
|
|
11
11
|
show(): void;
|
|
12
12
|
hide(): void;
|
|
@@ -23,8 +23,8 @@ export declare class ContentContainer extends CompositeDisposable implements ICo
|
|
|
23
23
|
constructor();
|
|
24
24
|
show(): void;
|
|
25
25
|
hide(): void;
|
|
26
|
-
openPanel(panel:
|
|
27
|
-
layout(
|
|
26
|
+
openPanel(panel: IDockviewPanel): void;
|
|
27
|
+
layout(_width: number, _height: number): void;
|
|
28
28
|
closePanel(): void;
|
|
29
29
|
dispose(): void;
|
|
30
30
|
}
|
|
@@ -2,8 +2,8 @@ import { Event } from '../events';
|
|
|
2
2
|
import { CompositeDisposable } from '../lifecycle';
|
|
3
3
|
import { IDockviewComponent } from '../dockview/dockviewComponent';
|
|
4
4
|
import { ITabRenderer } from './types';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { IDockviewPanel } from './groupPanel';
|
|
6
|
+
import { GroupPanel } from './groupviewPanel';
|
|
7
7
|
import { DroptargetEvent } from '../dnd/droptarget';
|
|
8
8
|
export declare enum MouseEventKind {
|
|
9
9
|
CLICK = "CLICK",
|
|
@@ -12,7 +12,7 @@ export declare enum MouseEventKind {
|
|
|
12
12
|
export interface LayoutMouseEvent {
|
|
13
13
|
readonly kind: MouseEventKind;
|
|
14
14
|
readonly event: MouseEvent;
|
|
15
|
-
readonly panel?:
|
|
15
|
+
readonly panel?: IDockviewPanel;
|
|
16
16
|
readonly tab?: boolean;
|
|
17
17
|
}
|
|
18
18
|
export interface ITab {
|
|
@@ -34,7 +34,7 @@ export declare class Tab extends CompositeDisposable implements ITab {
|
|
|
34
34
|
private readonly _onDropped;
|
|
35
35
|
readonly onDrop: Event<DroptargetEvent>;
|
|
36
36
|
get element(): HTMLElement;
|
|
37
|
-
constructor(panelId: string, accessor: IDockviewComponent, group:
|
|
37
|
+
constructor(panelId: string, accessor: IDockviewComponent, group: GroupPanel);
|
|
38
38
|
setActive(isActive: boolean): void;
|
|
39
39
|
setContent(part: ITabRenderer): void;
|
|
40
40
|
dispose(): void;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IDisposable, CompositeDisposable } from '../../lifecycle';
|
|
2
2
|
import { Event } from '../../events';
|
|
3
3
|
import { ITab } from '../tab';
|
|
4
|
-
import {
|
|
4
|
+
import { IDockviewPanel } from '../groupPanel';
|
|
5
5
|
import { IDockviewComponent } from '../../dockview/dockviewComponent';
|
|
6
|
-
import {
|
|
6
|
+
import { GroupPanel } from '../groupviewPanel';
|
|
7
7
|
export interface TabDropIndexEvent {
|
|
8
8
|
event: DragEvent;
|
|
9
9
|
readonly index: number;
|
|
@@ -18,11 +18,12 @@ export interface ITabsContainer extends IDisposable {
|
|
|
18
18
|
at: (index: number) => ITab;
|
|
19
19
|
onDrop: Event<TabDropIndexEvent>;
|
|
20
20
|
setActive: (isGroupActive: boolean) => void;
|
|
21
|
-
setActivePanel: (panel:
|
|
21
|
+
setActivePanel: (panel: IDockviewPanel) => void;
|
|
22
22
|
isActive: (tab: ITab) => boolean;
|
|
23
|
-
closePanel: (panel:
|
|
24
|
-
openPanel: (panel:
|
|
23
|
+
closePanel: (panel: IDockviewPanel) => void;
|
|
24
|
+
openPanel: (panel: IDockviewPanel, index?: number) => void;
|
|
25
25
|
setActionElement(element: HTMLElement | undefined): void;
|
|
26
|
+
hidden: boolean;
|
|
26
27
|
show(): void;
|
|
27
28
|
hide(): void;
|
|
28
29
|
}
|
|
@@ -40,12 +41,15 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
40
41
|
private activePanel;
|
|
41
42
|
private actions;
|
|
42
43
|
private _height;
|
|
44
|
+
private _hidden;
|
|
43
45
|
private readonly _onDrop;
|
|
44
46
|
readonly onDrop: Event<TabDropIndexEvent>;
|
|
45
47
|
get panels(): string[];
|
|
46
48
|
get size(): number;
|
|
47
49
|
get height(): number | undefined;
|
|
48
50
|
set height(value: number | undefined);
|
|
51
|
+
get hidden(): boolean;
|
|
52
|
+
set hidden(value: boolean);
|
|
49
53
|
show(): void;
|
|
50
54
|
hide(): void;
|
|
51
55
|
setActionElement(element: HTMLElement | undefined): void;
|
|
@@ -53,14 +57,14 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
53
57
|
isActive(tab: ITab): boolean;
|
|
54
58
|
at(index: number): ITab;
|
|
55
59
|
indexOf(id: string): number;
|
|
56
|
-
constructor(accessor: IDockviewComponent, group:
|
|
60
|
+
constructor(accessor: IDockviewComponent, group: GroupPanel, options: {
|
|
57
61
|
tabHeight?: number;
|
|
58
62
|
});
|
|
59
63
|
setActive(isGroupActive: boolean): void;
|
|
60
64
|
private addTab;
|
|
61
65
|
delete(id: string): void;
|
|
62
|
-
setActivePanel(panel:
|
|
63
|
-
openPanel(panel:
|
|
64
|
-
closePanel(panel:
|
|
66
|
+
setActivePanel(panel: IDockviewPanel): void;
|
|
67
|
+
openPanel(panel: IDockviewPanel, index?: number): void;
|
|
68
|
+
closePanel(panel: IDockviewPanel): void;
|
|
65
69
|
dispose(): void;
|
|
66
70
|
}
|