dockview 1.4.0 → 1.4.3
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 +4 -195
- package/dist/cjs/api/component.api.d.ts +8 -8
- package/dist/cjs/api/component.api.js +16 -19
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/panelApi.d.ts +1 -2
- package/dist/cjs/api/panelApi.js +3 -3
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +1 -2
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -17
- package/dist/cjs/dockview/components/tab/defaultTab.js +9 -64
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -2
- package/dist/cjs/dockview/defaultGroupPanelView.js +2 -4
- package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
- package/dist/cjs/dockview/deserializer.d.ts +0 -12
- package/dist/cjs/dockview/deserializer.js +0 -52
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +5 -7
- package/dist/cjs/dockview/dockviewComponent.js +79 -42
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +6 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +4 -2
- package/dist/cjs/gridview/baseComponentGridview.js +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.js +1 -1
- package/dist/cjs/gridview/basePanelView.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 -2
- package/dist/cjs/gridview/gridviewComponent.js +28 -24
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +2 -3
- package/dist/cjs/gridview/gridviewPanel.js +4 -4
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/groupview/groupview.d.ts +4 -3
- package/dist/cjs/groupview/groupview.js +20 -8
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +2 -2
- package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
- package/dist/cjs/groupview/tab.js +1 -0
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +3 -5
- package/dist/cjs/groupview/titlebar/tabsContainer.js +2 -4
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/groupview/types.d.ts +1 -3
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +6 -4
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -0
- package/dist/cjs/paneview/paneviewComponent.js +20 -17
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.d.ts +2 -3
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -4
- package/dist/cjs/react/dockview/reactContentPart.js +0 -3
- package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
- package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +0 -1
- package/dist/cjs/react/dockview/v2/reactContentRenderer.js +0 -3
- package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
- package/dist/cjs/react/gridview/view.js +2 -2
- package/dist/cjs/react/gridview/view.js.map +1 -1
- package/dist/cjs/react/index.d.ts +0 -1
- package/dist/cjs/react/index.js +0 -1
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/react/splitview/view.js +2 -2
- package/dist/cjs/react/splitview/view.js.map +1 -1
- package/dist/cjs/splitview/core/options.d.ts +2 -2
- package/dist/cjs/splitview/splitviewComponent.d.ts +2 -1
- package/dist/cjs/splitview/splitviewComponent.js +23 -21
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.js +4 -6
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/dockview.amd.js +165 -250
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +164 -249
- package/dist/dockview.cjs.js +165 -250
- package/dist/dockview.esm.js +160 -244
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +165 -250
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +164 -249
- package/dist/esm/api/component.api.d.ts +8 -8
- package/dist/esm/api/component.api.js +16 -19
- package/dist/esm/api/panelApi.d.ts +1 -2
- package/dist/esm/api/panelApi.js +3 -3
- package/dist/esm/dnd/droptarget.d.ts +1 -2
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -17
- package/dist/esm/dockview/components/tab/defaultTab.js +8 -49
- package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -2
- package/dist/esm/dockview/defaultGroupPanelView.js +3 -5
- package/dist/esm/dockview/deserializer.d.ts +0 -12
- package/dist/esm/dockview/deserializer.js +1 -27
- package/dist/esm/dockview/dockviewComponent.d.ts +5 -7
- package/dist/esm/dockview/dockviewComponent.js +50 -24
- package/dist/esm/dockview/dockviewGroupPanel.js +1 -1
- package/dist/esm/dockview/options.d.ts +6 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +4 -2
- package/dist/esm/gridview/baseComponentGridview.js +1 -1
- package/dist/esm/gridview/basePanelView.js +1 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +1 -2
- package/dist/esm/gridview/gridviewComponent.js +17 -13
- package/dist/esm/gridview/gridviewPanel.d.ts +2 -3
- package/dist/esm/gridview/gridviewPanel.js +4 -4
- package/dist/esm/groupview/groupview.d.ts +4 -3
- package/dist/esm/groupview/groupview.js +19 -8
- package/dist/esm/groupview/groupviewPanel.d.ts +2 -2
- package/dist/esm/groupview/tab.js +1 -0
- package/dist/esm/groupview/titlebar/tabsContainer.d.ts +3 -5
- package/dist/esm/groupview/titlebar/tabsContainer.js +2 -4
- package/dist/esm/groupview/types.d.ts +1 -3
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/paneview/defaultPaneviewHeader.js +6 -4
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -0
- package/dist/esm/paneview/paneviewComponent.js +8 -5
- package/dist/esm/react/dockview/dockview.d.ts +2 -3
- package/dist/esm/react/dockview/reactContentPart.d.ts +2 -4
- package/dist/esm/react/dockview/reactContentPart.js +0 -3
- package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +0 -1
- package/dist/esm/react/dockview/v2/reactContentRenderer.js +0 -3
- package/dist/esm/react/gridview/view.js +2 -2
- package/dist/esm/react/index.d.ts +0 -1
- package/dist/esm/react/index.js +0 -1
- package/dist/esm/react/splitview/view.js +2 -2
- package/dist/esm/splitview/core/options.d.ts +2 -2
- package/dist/esm/splitview/splitviewComponent.d.ts +2 -1
- package/dist/esm/splitview/splitviewComponent.js +11 -9
- package/dist/esm/splitview/splitviewPanel.js +4 -6
- package/dist/styles/dockview.css +5 -0
- package/package.json +2 -2
- package/dist/cjs/react/dockview/components.d.ts +0 -11
- package/dist/cjs/react/dockview/components.js +0 -81
- package/dist/cjs/react/dockview/components.js.map +0 -1
- package/dist/esm/react/dockview/components.d.ts +0 -11
- package/dist/esm/react/dockview/components.js +0 -54
|
@@ -40,7 +40,7 @@ export class BasePanelView extends CompositeDisposable {
|
|
|
40
40
|
layout(width, height) {
|
|
41
41
|
this._width = width;
|
|
42
42
|
this._height = height;
|
|
43
|
-
this.api.
|
|
43
|
+
this.api._onDidDimensionChange.fire({ width, height });
|
|
44
44
|
if (this.part) {
|
|
45
45
|
if (this._params) {
|
|
46
46
|
this.part.update(this._params.params);
|
|
@@ -37,7 +37,6 @@ export interface IGridviewComponent extends IBaseGrid<GridviewPanel> {
|
|
|
37
37
|
updateOptions(options: Partial<GridviewComponentUpdateOptions>): void;
|
|
38
38
|
addPanel(options: AddComponentOptions): IGridviewPanel;
|
|
39
39
|
removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
|
|
40
|
-
toggleVisibility(panel: IGridviewPanel): void;
|
|
41
40
|
focus(): void;
|
|
42
41
|
fromJSON(serializedGridview: SerializedGridview): void;
|
|
43
42
|
toJSON(): SerializedGridview;
|
|
@@ -70,9 +69,9 @@ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implement
|
|
|
70
69
|
toJSON(): SerializedGridview;
|
|
71
70
|
setVisible(panel: GridviewPanel, visible: boolean): void;
|
|
72
71
|
setActive(panel: GridviewPanel): void;
|
|
73
|
-
toggleVisibility(panel: GridviewPanel): void;
|
|
74
72
|
focus(): void;
|
|
75
73
|
fromJSON(serializedGridview: SerializedGridview): void;
|
|
74
|
+
clear(): void;
|
|
76
75
|
movePanel(panel: GridviewPanel, options: {
|
|
77
76
|
direction: Direction;
|
|
78
77
|
reference: string;
|
|
@@ -3,7 +3,6 @@ import { Position } from '../dnd/droptarget';
|
|
|
3
3
|
import { tail, sequenceEquals } from '../array';
|
|
4
4
|
import { CompositeDisposable } from '../lifecycle';
|
|
5
5
|
import { BaseGrid, toTarget, } from './baseComponentGridview';
|
|
6
|
-
import { GridviewApi } from '../api/component.api';
|
|
7
6
|
import { createComponent } from '../panel/componentFactory';
|
|
8
7
|
import { Emitter } from '../events';
|
|
9
8
|
export class GridviewComponent extends BaseGrid {
|
|
@@ -40,7 +39,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
40
39
|
}
|
|
41
40
|
updateOptions(options) {
|
|
42
41
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
43
|
-
this.
|
|
42
|
+
this.gridview.orientation !== options.orientation;
|
|
44
43
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
45
44
|
if (hasOrientationChanged) {
|
|
46
45
|
this.gridview.orientation = options.orientation;
|
|
@@ -71,21 +70,13 @@ export class GridviewComponent extends BaseGrid {
|
|
|
71
70
|
value.value.setActive(panel === value.value);
|
|
72
71
|
});
|
|
73
72
|
}
|
|
74
|
-
toggleVisibility(panel) {
|
|
75
|
-
this.setVisible(panel, !this.isVisible(panel));
|
|
76
|
-
}
|
|
77
73
|
focus() {
|
|
78
74
|
var _a;
|
|
79
75
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
80
76
|
}
|
|
81
77
|
fromJSON(serializedGridview) {
|
|
78
|
+
this.clear();
|
|
82
79
|
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
|
-
}
|
|
88
|
-
this.gridview.clear();
|
|
89
80
|
const queue = [];
|
|
90
81
|
this.gridview.deserialize(grid, {
|
|
91
82
|
fromJSON: (node) => {
|
|
@@ -104,9 +95,10 @@ export class GridviewComponent extends BaseGrid {
|
|
|
104
95
|
maximumHeight: data.maximumHeight,
|
|
105
96
|
priority: data.priority,
|
|
106
97
|
snap: !!data.snap,
|
|
107
|
-
|
|
98
|
+
accessor: this,
|
|
108
99
|
isVisible: node.visible,
|
|
109
100
|
}));
|
|
101
|
+
this._onDidAddGroup.fire(view);
|
|
110
102
|
this.registerPanel(view);
|
|
111
103
|
return view;
|
|
112
104
|
},
|
|
@@ -121,6 +113,18 @@ export class GridviewComponent extends BaseGrid {
|
|
|
121
113
|
}
|
|
122
114
|
this._onDidLayoutfromJSON.fire();
|
|
123
115
|
}
|
|
116
|
+
clear() {
|
|
117
|
+
const hasActiveGroup = this.activeGroup;
|
|
118
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
119
|
+
for (const group of groups) {
|
|
120
|
+
group.disposable.dispose();
|
|
121
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
122
|
+
}
|
|
123
|
+
if (hasActiveGroup) {
|
|
124
|
+
this.doSetGroupActive(undefined);
|
|
125
|
+
}
|
|
126
|
+
this.gridview.clear();
|
|
127
|
+
}
|
|
124
128
|
movePanel(panel, options) {
|
|
125
129
|
var _a;
|
|
126
130
|
let relativeLocation;
|
|
@@ -170,7 +174,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
170
174
|
maximumHeight: options.maximumHeight,
|
|
171
175
|
priority: options.priority,
|
|
172
176
|
snap: !!options.snap,
|
|
173
|
-
|
|
177
|
+
accessor: this,
|
|
174
178
|
isVisible: true,
|
|
175
179
|
});
|
|
176
180
|
this.registerPanel(view);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { PanelInitParameters } from '../panel/types';
|
|
2
|
-
import { IGridPanelComponentView } from './gridviewComponent';
|
|
2
|
+
import { GridviewComponent, IGridPanelComponentView } from './gridviewComponent';
|
|
3
3
|
import { BasePanelView, BasePanelViewExported, BasePanelViewState } from './basePanelView';
|
|
4
4
|
import { GridviewPanelApiImpl } from '../api/gridviewPanelApi';
|
|
5
5
|
import { LayoutPriority } from '../splitview/core/splitview';
|
|
6
6
|
import { Event } from '../events';
|
|
7
7
|
import { IViewSize } from './gridview';
|
|
8
|
-
import { GridviewApi } from '../api/component.api';
|
|
9
8
|
export interface GridviewInitParameters extends PanelInitParameters {
|
|
10
9
|
minimumWidth?: number;
|
|
11
10
|
maximumWidth?: number;
|
|
@@ -13,7 +12,7 @@ export interface GridviewInitParameters extends PanelInitParameters {
|
|
|
13
12
|
maximumHeight?: number;
|
|
14
13
|
priority?: LayoutPriority;
|
|
15
14
|
snap?: boolean;
|
|
16
|
-
|
|
15
|
+
accessor: GridviewComponent;
|
|
17
16
|
isVisible?: boolean;
|
|
18
17
|
}
|
|
19
18
|
export interface IGridviewPanel extends BasePanelViewExported<GridviewPanelApiImpl> {
|
|
@@ -17,11 +17,11 @@ export class GridviewPanel extends BasePanelView {
|
|
|
17
17
|
this.onDidChange = this._onDidChange.event;
|
|
18
18
|
this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
|
|
19
19
|
const { isVisible } = event;
|
|
20
|
-
const {
|
|
21
|
-
|
|
20
|
+
const { accessor } = this._params;
|
|
21
|
+
accessor.setVisible(this, isVisible);
|
|
22
22
|
}), this.api.onActiveChange(() => {
|
|
23
|
-
const {
|
|
24
|
-
|
|
23
|
+
const { accessor } = this._params;
|
|
24
|
+
accessor.setActive(this);
|
|
25
25
|
}), this.api.onDidConstraintsChangeInternal((event) => {
|
|
26
26
|
if (typeof event.minimumWidth === 'number' ||
|
|
27
27
|
typeof event.minimumWidth === 'function') {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PanelTransfer } from '../dnd/dataTransfer';
|
|
2
2
|
import { Position } from '../dnd/droptarget';
|
|
3
|
-
import {
|
|
3
|
+
import { DockviewComponent } from '../dockview/dockviewComponent';
|
|
4
4
|
import { Event } from '../events';
|
|
5
5
|
import { IGridPanelView } from '../gridview/baseComponentGridview';
|
|
6
6
|
import { IViewSize } from '../gridview/gridview';
|
|
@@ -133,7 +133,7 @@ export declare class Groupview extends CompositeDisposable implements IGroupview
|
|
|
133
133
|
get hasWatermark(): boolean;
|
|
134
134
|
get header(): IHeader;
|
|
135
135
|
get isContentFocused(): boolean;
|
|
136
|
-
constructor(container: HTMLElement, accessor:
|
|
136
|
+
constructor(container: HTMLElement, accessor: DockviewComponent, id: string, options: GroupOptions, parent: GroupPanel);
|
|
137
137
|
initialize(): void;
|
|
138
138
|
indexOf(panel: IDockviewPanel): number;
|
|
139
139
|
toJSON(): GroupPanelViewState;
|
|
@@ -152,7 +152,8 @@ export declare class Groupview extends CompositeDisposable implements IGroupview
|
|
|
152
152
|
openPanel(panel: IDockviewPanel, options?: {
|
|
153
153
|
index?: number;
|
|
154
154
|
skipFocus?: boolean;
|
|
155
|
-
|
|
155
|
+
skipSetPanelActive?: boolean;
|
|
156
|
+
skipSetGroupActive?: boolean;
|
|
156
157
|
}): void;
|
|
157
158
|
removePanel(groupItemOrId: IDockviewPanel | string): IDockviewPanel;
|
|
158
159
|
closeAllPanels(): void;
|
|
@@ -210,16 +210,21 @@ export class Groupview extends CompositeDisposable {
|
|
|
210
210
|
options.index > this.panels.length) {
|
|
211
211
|
options.index = this.panels.length;
|
|
212
212
|
}
|
|
213
|
-
const
|
|
213
|
+
const skipSetPanelActive = !!options.skipSetPanelActive;
|
|
214
|
+
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
214
215
|
// ensure the group is updated before we fire any events
|
|
215
216
|
panel.updateParentGroup(this.parent, true);
|
|
216
|
-
if (
|
|
217
|
-
|
|
217
|
+
if (this._activePanel === panel) {
|
|
218
|
+
if (!skipSetGroupActive) {
|
|
219
|
+
this.accessor.doSetGroupActive(this.parent);
|
|
220
|
+
}
|
|
218
221
|
return;
|
|
219
222
|
}
|
|
220
|
-
this.doAddPanel(panel, options.index);
|
|
221
|
-
if (!
|
|
223
|
+
this.doAddPanel(panel, options.index, skipSetPanelActive);
|
|
224
|
+
if (!skipSetPanelActive) {
|
|
222
225
|
this.doSetActivePanel(panel);
|
|
226
|
+
}
|
|
227
|
+
if (!skipSetGroupActive) {
|
|
223
228
|
this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
|
|
224
229
|
}
|
|
225
230
|
this.updateContainer();
|
|
@@ -323,11 +328,13 @@ export class Groupview extends CompositeDisposable {
|
|
|
323
328
|
panel,
|
|
324
329
|
});
|
|
325
330
|
}
|
|
326
|
-
doAddPanel(panel, index = this.panels.length) {
|
|
331
|
+
doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
|
|
327
332
|
const existingPanel = this._panels.indexOf(panel);
|
|
328
333
|
const hasExistingPanel = existingPanel > -1;
|
|
329
334
|
this.tabsContainer.openPanel(panel, index);
|
|
330
|
-
|
|
335
|
+
if (!skipSetActive) {
|
|
336
|
+
this.contentContainer.openPanel(panel);
|
|
337
|
+
}
|
|
331
338
|
this.tabsContainer.show();
|
|
332
339
|
this.contentContainer.show();
|
|
333
340
|
if (hasExistingPanel) {
|
|
@@ -393,7 +400,11 @@ export class Groupview extends CompositeDisposable {
|
|
|
393
400
|
canDisplayOverlay(event, target) {
|
|
394
401
|
// custom overlay handler
|
|
395
402
|
if (this.accessor.options.showDndOverlay) {
|
|
396
|
-
return this.accessor.options.showDndOverlay(
|
|
403
|
+
return this.accessor.options.showDndOverlay({
|
|
404
|
+
nativeEvent: event,
|
|
405
|
+
target,
|
|
406
|
+
group: this.accessor.getPanel(this.id),
|
|
407
|
+
});
|
|
397
408
|
}
|
|
398
409
|
return false;
|
|
399
410
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IFrameworkPart } from '../panel/types';
|
|
2
|
-
import {
|
|
2
|
+
import { DockviewComponent } from '../dockview/dockviewComponent';
|
|
3
3
|
import { GridviewPanelApi } from '../api/gridviewPanelApi';
|
|
4
4
|
import { Groupview, GroupOptions, IHeader } from './groupview';
|
|
5
5
|
import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel';
|
|
@@ -26,7 +26,7 @@ export declare class GroupPanel extends GridviewPanel implements IGroupviewPanel
|
|
|
26
26
|
get locked(): boolean;
|
|
27
27
|
set locked(value: boolean);
|
|
28
28
|
get header(): IHeader;
|
|
29
|
-
constructor(accessor:
|
|
29
|
+
constructor(accessor: DockviewComponent, id: string, options: GroupOptions);
|
|
30
30
|
initialize(): void;
|
|
31
31
|
setActive(isActive: boolean): void;
|
|
32
32
|
layout(width: number, height: number): void;
|
|
@@ -24,6 +24,7 @@ export class Tab extends CompositeDisposable {
|
|
|
24
24
|
this._element.className = 'tab';
|
|
25
25
|
this._element.tabIndex = 0;
|
|
26
26
|
this._element.draggable = true;
|
|
27
|
+
toggleClass(this.element, 'inactive-tab', true);
|
|
27
28
|
this.addDisposables(new (class Handler extends DragHandler {
|
|
28
29
|
constructor() {
|
|
29
30
|
super(...arguments);
|
|
@@ -2,7 +2,7 @@ import { IDisposable, CompositeDisposable } from '../../lifecycle';
|
|
|
2
2
|
import { Event } from '../../events';
|
|
3
3
|
import { ITab } from '../tab';
|
|
4
4
|
import { IDockviewPanel } from '../groupPanel';
|
|
5
|
-
import {
|
|
5
|
+
import { DockviewComponent } from '../../dockview/dockviewComponent';
|
|
6
6
|
import { GroupPanel } from '../groupviewPanel';
|
|
7
7
|
export interface TabDropIndexEvent {
|
|
8
8
|
event: DragEvent;
|
|
@@ -37,8 +37,6 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
37
37
|
private readonly voidDropTarget;
|
|
38
38
|
private tabs;
|
|
39
39
|
private selectedIndex;
|
|
40
|
-
private active;
|
|
41
|
-
private activePanel;
|
|
42
40
|
private actions;
|
|
43
41
|
private _height;
|
|
44
42
|
private _hidden;
|
|
@@ -57,10 +55,10 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
57
55
|
isActive(tab: ITab): boolean;
|
|
58
56
|
at(index: number): ITab;
|
|
59
57
|
indexOf(id: string): number;
|
|
60
|
-
constructor(accessor:
|
|
58
|
+
constructor(accessor: DockviewComponent, group: GroupPanel, options: {
|
|
61
59
|
tabHeight?: number;
|
|
62
60
|
});
|
|
63
|
-
setActive(
|
|
61
|
+
setActive(_isGroupActive: boolean): void;
|
|
64
62
|
private addTab;
|
|
65
63
|
delete(id: string): void;
|
|
66
64
|
setActivePanel(panel: IDockviewPanel): void;
|
|
@@ -12,7 +12,6 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
12
12
|
this.group = group;
|
|
13
13
|
this.tabs = [];
|
|
14
14
|
this.selectedIndex = -1;
|
|
15
|
-
this.active = false;
|
|
16
15
|
this._hidden = false;
|
|
17
16
|
this._onDrop = new Emitter();
|
|
18
17
|
this.onDrop = this._onDrop.event;
|
|
@@ -116,8 +115,8 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
116
115
|
indexOf(id) {
|
|
117
116
|
return this.tabs.findIndex((tab) => tab.value.panelId === id);
|
|
118
117
|
}
|
|
119
|
-
setActive(
|
|
120
|
-
|
|
118
|
+
setActive(_isGroupActive) {
|
|
119
|
+
// noop
|
|
121
120
|
}
|
|
122
121
|
addTab(tab, index = this.tabs.length) {
|
|
123
122
|
if (index < 0 || index > this.tabs.length) {
|
|
@@ -178,7 +177,6 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
178
177
|
}));
|
|
179
178
|
const value = { value: tabToAdd, disposable };
|
|
180
179
|
this.addTab(value, index);
|
|
181
|
-
this.activePanel = panel;
|
|
182
180
|
}
|
|
183
181
|
closePanel(panel) {
|
|
184
182
|
this.delete(panel.id);
|
|
@@ -5,7 +5,6 @@ import { PanelInitParameters, IPanel } from '../panel/types';
|
|
|
5
5
|
import { DockviewApi } from '../api/component.api';
|
|
6
6
|
import { GroupPanel } from './groupviewPanel';
|
|
7
7
|
import { Event } from '../events';
|
|
8
|
-
import { WrappedTab } from '../dockview/components/tab/defaultTab';
|
|
9
8
|
export interface IRenderable {
|
|
10
9
|
id: string;
|
|
11
10
|
element: HTMLElement;
|
|
@@ -21,7 +20,7 @@ export interface GroupPanelPartInitParameters extends PanelInitParameters, Heade
|
|
|
21
20
|
containerApi: DockviewApi;
|
|
22
21
|
}
|
|
23
22
|
export interface GroupPanelContentPartInitParameters extends GroupPanelPartInitParameters {
|
|
24
|
-
tab:
|
|
23
|
+
tab: ITabRenderer;
|
|
25
24
|
}
|
|
26
25
|
export interface IWatermarkRenderer extends IPanel {
|
|
27
26
|
readonly element: HTMLElement;
|
|
@@ -43,7 +42,6 @@ export interface IContentRenderer extends IPanel {
|
|
|
43
42
|
readonly onDidBlur?: Event<void>;
|
|
44
43
|
updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
|
|
45
44
|
init(parameters: GroupPanelContentPartInitParameters): void;
|
|
46
|
-
close?(): Promise<boolean>;
|
|
47
45
|
}
|
|
48
46
|
export interface WatermarkPartInitParameters {
|
|
49
47
|
accessor: IDockviewComponent;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './groupview/groupview';
|
|
|
6
6
|
export * from './gridview/baseComponentGridview';
|
|
7
7
|
export * from './groupview/panel/content';
|
|
8
8
|
export * from './groupview/tab';
|
|
9
|
+
export * from './groupview/dnd';
|
|
9
10
|
export * from './groupview/types';
|
|
10
11
|
export * from './dockview/options';
|
|
11
12
|
export * from './dockview/dockviewComponent';
|
package/dist/esm/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from './groupview/groupview';
|
|
|
6
6
|
export * from './gridview/baseComponentGridview';
|
|
7
7
|
export * from './groupview/panel/content';
|
|
8
8
|
export * from './groupview/tab';
|
|
9
|
+
export * from './groupview/dnd';
|
|
9
10
|
export * from './groupview/types';
|
|
10
11
|
export * from './dockview/options';
|
|
11
12
|
export * from './dockview/dockviewComponent';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { addDisposableListener } from '../events';
|
|
2
2
|
import { CompositeDisposable, MutableDisposable } from '../lifecycle';
|
|
3
|
+
import { toggleClass } from '../dom';
|
|
3
4
|
export class DefaultHeader extends CompositeDisposable {
|
|
4
5
|
constructor() {
|
|
5
6
|
super();
|
|
@@ -9,9 +10,9 @@ export class DefaultHeader extends CompositeDisposable {
|
|
|
9
10
|
this.element.className = 'default-header';
|
|
10
11
|
this._content = document.createElement('span');
|
|
11
12
|
this._expander = document.createElement('a');
|
|
12
|
-
this.element.appendChild(this._content);
|
|
13
13
|
this.element.appendChild(this._expander);
|
|
14
|
-
this.
|
|
14
|
+
this.element.appendChild(this._content);
|
|
15
|
+
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
15
16
|
var _a;
|
|
16
17
|
(_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
|
|
17
18
|
}));
|
|
@@ -22,9 +23,10 @@ export class DefaultHeader extends CompositeDisposable {
|
|
|
22
23
|
init(params) {
|
|
23
24
|
this.apiRef.api = params.api;
|
|
24
25
|
this._content.textContent = params.title;
|
|
25
|
-
this._expander.textContent =
|
|
26
|
+
this._expander.textContent = '▼';
|
|
27
|
+
toggleClass(this._expander, 'collapsed', !params.api.isExpanded);
|
|
26
28
|
this.disposable.value = params.api.onDidExpansionChange((e) => {
|
|
27
|
-
this._expander
|
|
29
|
+
toggleClass(this._expander, 'collapsed', !e.isExpanded);
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
update(_params) {
|
|
@@ -75,6 +75,7 @@ export interface IPaneviewComponent extends IDisposable {
|
|
|
75
75
|
getPanel(id: string): IPaneviewPanel | undefined;
|
|
76
76
|
movePanel(from: number, to: number): void;
|
|
77
77
|
updateOptions(options: Partial<PaneviewComponentOptions>): void;
|
|
78
|
+
clear(): void;
|
|
78
79
|
}
|
|
79
80
|
export declare class PaneviewComponent extends CompositeDisposable implements IPaneviewComponent {
|
|
80
81
|
private element;
|
|
@@ -110,6 +111,7 @@ export declare class PaneviewComponent extends CompositeDisposable implements IP
|
|
|
110
111
|
layout(width: number, height: number): void;
|
|
111
112
|
toJSON(): SerializedPaneview;
|
|
112
113
|
fromJSON(serializedPaneview: SerializedPaneview): void;
|
|
114
|
+
clear(): void;
|
|
113
115
|
private doAddPanel;
|
|
114
116
|
private doRemovePanel;
|
|
115
117
|
dispose(): void;
|
|
@@ -170,13 +170,9 @@ export class PaneviewComponent extends CompositeDisposable {
|
|
|
170
170
|
};
|
|
171
171
|
}
|
|
172
172
|
fromJSON(serializedPaneview) {
|
|
173
|
+
this.clear();
|
|
173
174
|
const { views, size } = serializedPaneview;
|
|
174
175
|
const queue = [];
|
|
175
|
-
for (const [_, value] of this._viewDisposables.entries()) {
|
|
176
|
-
value.dispose();
|
|
177
|
-
}
|
|
178
|
-
this._viewDisposables.clear();
|
|
179
|
-
this.paneview.dispose();
|
|
180
176
|
this.paneview = new Paneview(this.element, {
|
|
181
177
|
orientation: Orientation.VERTICAL,
|
|
182
178
|
descriptor: {
|
|
@@ -235,6 +231,13 @@ export class PaneviewComponent extends CompositeDisposable {
|
|
|
235
231
|
queue.forEach((f) => f());
|
|
236
232
|
this._onDidLayoutfromJSON.fire();
|
|
237
233
|
}
|
|
234
|
+
clear() {
|
|
235
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
236
|
+
value.dispose();
|
|
237
|
+
}
|
|
238
|
+
this._viewDisposables.clear();
|
|
239
|
+
this.paneview.dispose();
|
|
240
|
+
}
|
|
238
241
|
doAddPanel(panel) {
|
|
239
242
|
const disposable = panel.onDidDrop((event) => {
|
|
240
243
|
this._onDidDrop.fire(event);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DockviewDropEvent } from '../../dockview/dockviewComponent';
|
|
3
|
-
import { TabContextMenuEvent } from '../../dockview/options';
|
|
3
|
+
import { DockviewDndOverlayEvent, TabContextMenuEvent } from '../../dockview/options';
|
|
4
4
|
import { DockviewPanelApi } from '../../api/groupPanelApi';
|
|
5
5
|
import { DockviewApi } from '../../api/component.api';
|
|
6
6
|
import { IWatermarkPanelProps } from './reactWatermarkPart';
|
|
7
7
|
import { PanelCollection, PanelParameters } from '../types';
|
|
8
|
-
import { DockviewDropTargets } from '../../groupview/dnd';
|
|
9
8
|
export interface IGroupPanelBaseProps<T extends {} = Record<string, any>> extends PanelParameters<T> {
|
|
10
9
|
api: DockviewPanelApi;
|
|
11
10
|
containerApi: DockviewApi;
|
|
@@ -25,7 +24,7 @@ export interface IDockviewReactProps {
|
|
|
25
24
|
tabHeight?: number;
|
|
26
25
|
onTabContextMenu?: (event: TabContextMenuEvent) => void;
|
|
27
26
|
onDidDrop?: (event: DockviewDropEvent) => void;
|
|
28
|
-
showDndOverlay?: (event:
|
|
27
|
+
showDndOverlay?: (event: DockviewDndOverlayEvent) => boolean;
|
|
29
28
|
hideBorders?: boolean;
|
|
30
29
|
className?: string;
|
|
31
30
|
disableAutoResizing?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { IContentRenderer, GroupPanelContentPartInitParameters } from '../../groupview/types';
|
|
2
|
+
import { IContentRenderer, GroupPanelContentPartInitParameters, ITabRenderer } from '../../groupview/types';
|
|
3
3
|
import { ReactPortalStore } from '../react';
|
|
4
4
|
import { IDockviewPanelProps } from '../dockview/dockview';
|
|
5
5
|
import { PanelUpdateEvent } from '../../panel/types';
|
|
@@ -7,7 +7,6 @@ import { DockviewPanelApi } from '../../api/groupPanelApi';
|
|
|
7
7
|
import { DockviewApi } from '../../api/component.api';
|
|
8
8
|
import { GroupPanel } from '../../groupview/groupviewPanel';
|
|
9
9
|
import { Event } from '../../events';
|
|
10
|
-
import { WrappedTab } from '../../dockview/components/tab/defaultTab';
|
|
11
10
|
export interface IGroupPanelActionbarProps {
|
|
12
11
|
api: DockviewPanelApi;
|
|
13
12
|
containerApi: DockviewApi;
|
|
@@ -16,7 +15,7 @@ export interface ReactContentPartContext {
|
|
|
16
15
|
api: DockviewPanelApi;
|
|
17
16
|
containerApi: DockviewApi;
|
|
18
17
|
actionsPortalElement: HTMLElement;
|
|
19
|
-
tabPortalElement:
|
|
18
|
+
tabPortalElement: ITabRenderer;
|
|
20
19
|
}
|
|
21
20
|
export declare class ReactPanelContentPart implements IContentRenderer {
|
|
22
21
|
readonly id: string;
|
|
@@ -42,6 +41,5 @@ export declare class ReactPanelContentPart implements IContentRenderer {
|
|
|
42
41
|
update(event: PanelUpdateEvent): void;
|
|
43
42
|
updateParentGroup(group: GroupPanel, _isPanelVisible: boolean): void;
|
|
44
43
|
layout(_width: number, _height: number): void;
|
|
45
|
-
close(): Promise<boolean>;
|
|
46
44
|
dispose(): void;
|
|
47
45
|
}
|
|
@@ -25,6 +25,5 @@ export declare class ReactContentRenderer implements IContentRenderer {
|
|
|
25
25
|
update(params: PanelUpdateEvent): void;
|
|
26
26
|
updateParentGroup(group: GroupPanel, _isPanelVisible: boolean): void;
|
|
27
27
|
layout(_width: number, _height: number): void;
|
|
28
|
-
close(): Promise<boolean>;
|
|
29
28
|
dispose(): void;
|
|
30
29
|
}
|
|
@@ -62,9 +62,6 @@ export class ReactContentRenderer {
|
|
|
62
62
|
layout(_width, _height) {
|
|
63
63
|
this._hostedContainer.layout(this.element);
|
|
64
64
|
}
|
|
65
|
-
close() {
|
|
66
|
-
return Promise.resolve(true);
|
|
67
|
-
}
|
|
68
65
|
dispose() {
|
|
69
66
|
var _a;
|
|
70
67
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GridviewApi } from '../../api/component.api';
|
|
1
2
|
import { GridviewPanel, } from '../../gridview/gridviewPanel';
|
|
2
3
|
import { ReactPart } from '../react';
|
|
3
4
|
export class ReactGridPanelView extends GridviewPanel {
|
|
@@ -11,8 +12,7 @@ export class ReactGridPanelView extends GridviewPanel {
|
|
|
11
12
|
return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
|
|
12
13
|
params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
|
|
13
14
|
api: this.api,
|
|
14
|
-
containerApi: this._params
|
|
15
|
-
.containerApi,
|
|
15
|
+
containerApi: new GridviewApi(this._params.accessor),
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
}
|
package/dist/esm/react/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SplitviewApi } from '../../api/component.api';
|
|
1
2
|
import { SplitviewPanel } from '../../splitview/splitviewPanel';
|
|
2
3
|
import { ReactPart } from '../react';
|
|
3
4
|
export class ReactPanelView extends SplitviewPanel {
|
|
@@ -11,8 +12,7 @@ export class ReactPanelView extends SplitviewPanel {
|
|
|
11
12
|
return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
|
|
12
13
|
params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
|
|
13
14
|
api: this.api,
|
|
14
|
-
containerApi: this._params
|
|
15
|
-
.containerApi,
|
|
15
|
+
containerApi: new SplitviewApi(this._params.accessor),
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -2,13 +2,13 @@ import { IPanel, PanelInitParameters } from '../../panel/types';
|
|
|
2
2
|
import { IView, SplitViewOptions, LayoutPriority } from './splitview';
|
|
3
3
|
import { FrameworkFactory } from '../../types';
|
|
4
4
|
import { SplitviewPanel } from '../splitviewPanel';
|
|
5
|
-
import {
|
|
5
|
+
import { SplitviewComponent } from '../splitviewComponent';
|
|
6
6
|
export interface PanelViewInitParameters extends PanelInitParameters {
|
|
7
7
|
minimumSize?: number;
|
|
8
8
|
maximumSize?: number;
|
|
9
9
|
snap?: boolean;
|
|
10
10
|
priority?: LayoutPriority;
|
|
11
|
-
|
|
11
|
+
accessor: SplitviewComponent;
|
|
12
12
|
}
|
|
13
13
|
export interface ISerializableView extends IView, IPanel {
|
|
14
14
|
init: (params: PanelViewInitParameters) => void;
|
|
@@ -50,10 +50,10 @@ export interface ISplitviewComponent extends IDisposable {
|
|
|
50
50
|
fromJSON(serializedSplitview: SerializedSplitview): void;
|
|
51
51
|
focus(): void;
|
|
52
52
|
getPanel(id: string): ISplitviewPanel | undefined;
|
|
53
|
-
setActive(view: ISplitviewPanel, skipFocus?: boolean): void;
|
|
54
53
|
removePanel(panel: ISplitviewPanel, sizing?: Sizing): void;
|
|
55
54
|
setVisible(panel: ISplitviewPanel, visible: boolean): void;
|
|
56
55
|
movePanel(from: number, to: number): void;
|
|
56
|
+
clear(): void;
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* A high-level implementation of splitview that works using 'panels'
|
|
@@ -96,5 +96,6 @@ export declare class SplitviewComponent extends CompositeDisposable implements I
|
|
|
96
96
|
private doAddView;
|
|
97
97
|
toJSON(): SerializedSplitview;
|
|
98
98
|
fromJSON(serializedSplitview: SerializedSplitview): void;
|
|
99
|
+
clear(): void;
|
|
99
100
|
dispose(): void;
|
|
100
101
|
}
|