dockview 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +3 -2
- package/dist/cjs/api/component.api.js +9 -2
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
- package/dist/cjs/api/{groupPanelApi.js → dockviewPanelApi.js} +4 -6
- package/dist/cjs/api/dockviewPanelApi.js.map +1 -0
- package/dist/cjs/api/gridviewPanelApi.d.ts +4 -3
- package/dist/cjs/api/gridviewPanelApi.js +4 -4
- package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
- package/dist/cjs/api/panelApi.d.ts +7 -0
- package/dist/cjs/api/panelApi.js +17 -1
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/array.d.ts +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/cjs/dnd/abstractDragHandler.js +3 -3
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +2 -2
- package/dist/cjs/dnd/dataTransfer.js.map +1 -1
- package/dist/cjs/dnd/dnd.d.ts +1 -1
- package/dist/cjs/dnd/dnd.js +7 -12
- package/dist/cjs/dnd/dnd.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +20 -15
- package/dist/cjs/dnd/droptarget.js +152 -74
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dnd/ghost.d.ts +1 -0
- package/dist/cjs/dnd/ghost.js +15 -0
- package/dist/cjs/dnd/ghost.js.map +1 -0
- package/dist/cjs/dnd/groupDragHandler.d.ts +11 -0
- package/dist/cjs/dnd/groupDragHandler.js +62 -0
- package/dist/cjs/dnd/groupDragHandler.js.map +1 -0
- package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -1
- package/dist/cjs/dockview/deserializer.d.ts +2 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +15 -7
- package/dist/cjs/dockview/dockviewComponent.js +215 -34
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/{esm/dockview/dockviewGroupPanel.d.ts → cjs/dockview/dockviewPanel.d.ts} +16 -5
- package/dist/cjs/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +25 -21
- package/dist/cjs/dockview/dockviewPanel.js.map +1 -0
- package/dist/cjs/dockview/options.d.ts +32 -10
- package/dist/cjs/dockview/options.js +29 -0
- package/dist/cjs/dockview/options.js.map +1 -1
- package/dist/cjs/dockview/validation.d.ts +2 -0
- package/dist/cjs/dockview/validation.js +135 -0
- package/dist/cjs/dockview/validation.js.map +1 -0
- package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +5 -6
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts +2 -2
- package/dist/cjs/gridview/gridview.d.ts +9 -3
- package/dist/cjs/gridview/gridview.js +38 -7
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +2 -2
- package/dist/cjs/gridview/gridviewComponent.js +2 -3
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
- package/dist/cjs/gridview/gridviewPanel.js +1 -2
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/gridview/types.d.ts +1 -1
- package/dist/cjs/groupview/dnd.d.ts +2 -1
- package/dist/cjs/groupview/dnd.js +1 -0
- package/dist/cjs/groupview/dnd.js.map +1 -1
- package/dist/cjs/groupview/groupview.d.ts +6 -6
- package/dist/cjs/groupview/groupview.js +43 -25
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +3 -3
- package/dist/cjs/groupview/panel/content.d.ts +1 -1
- package/dist/cjs/groupview/tab.d.ts +2 -12
- package/dist/cjs/groupview/tab.js +13 -9
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +5 -8
- package/dist/cjs/groupview/titlebar/tabsContainer.js +23 -30
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/groupview/titlebar/voidContainer.d.ts +15 -0
- package/dist/cjs/groupview/titlebar/voidContainer.js +74 -0
- package/dist/cjs/groupview/titlebar/voidContainer.js.map +1 -0
- package/dist/cjs/groupview/types.d.ts +18 -2
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +6 -5
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.js +2 -2
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.js +1 -0
- package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
- package/dist/cjs/react/deserializer.d.ts +2 -1
- package/dist/cjs/react/deserializer.js +2 -2
- package/dist/cjs/react/deserializer.js.map +1 -1
- package/dist/cjs/react/dockview/defaultTab.d.ts +1 -1
- package/dist/cjs/react/dockview/dockview.d.ts +5 -4
- package/dist/cjs/react/dockview/dockview.js +1 -0
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +1 -1
- package/dist/cjs/react/gridview/view.js +2 -1
- package/dist/cjs/react/gridview/view.js.map +1 -1
- package/dist/cjs/react/react.d.ts +1 -1
- package/dist/cjs/splitview/core/splitview.d.ts +4 -4
- package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
- package/dist/cjs/splitview/splitviewComponent.js +2 -2
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.js +1 -0
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/dockview.amd.js +1411 -987
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +1410 -986
- package/dist/dockview.cjs.js +1394 -970
- package/dist/dockview.esm.js +1385 -964
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +1411 -987
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +1410 -986
- package/dist/esm/actionbar/actionsContainer.js +3 -3
- package/dist/esm/api/component.api.d.ts +3 -2
- package/dist/esm/api/component.api.js +16 -13
- package/dist/esm/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
- package/dist/esm/api/{groupPanelApi.js → dockviewPanelApi.js} +16 -18
- package/dist/esm/api/gridviewPanelApi.d.ts +4 -3
- package/dist/esm/api/gridviewPanelApi.js +4 -4
- package/dist/esm/api/panelApi.d.ts +7 -0
- package/dist/esm/api/panelApi.js +33 -17
- package/dist/esm/api/paneviewPanelApi.js +3 -3
- package/dist/esm/array.d.ts +1 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/esm/dnd/abstractDragHandler.js +3 -3
- package/dist/esm/dnd/dataTransfer.d.ts +2 -2
- package/dist/esm/dnd/dnd.d.ts +1 -1
- package/dist/esm/dnd/dnd.js +7 -12
- package/dist/esm/dnd/droptarget.d.ts +20 -15
- package/dist/esm/dnd/droptarget.js +149 -67
- package/dist/esm/dnd/ghost.d.ts +1 -0
- package/dist/esm/dnd/ghost.js +10 -0
- package/dist/esm/dnd/groupDragHandler.d.ts +11 -0
- package/dist/esm/dnd/groupDragHandler.js +38 -0
- package/dist/esm/dockview/components/tab/defaultTab.js +6 -6
- package/dist/esm/dockview/components/watermark/watermark.js +3 -3
- package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -1
- package/dist/esm/dockview/defaultGroupPanelView.js +5 -5
- package/dist/esm/dockview/deserializer.d.ts +2 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +15 -7
- package/dist/esm/dockview/dockviewComponent.js +229 -65
- package/dist/{cjs/dockview/dockviewGroupPanel.d.ts → esm/dockview/dockviewPanel.d.ts} +16 -5
- package/dist/esm/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +19 -15
- package/dist/esm/dockview/options.d.ts +32 -10
- package/dist/esm/dockview/options.js +24 -1
- package/dist/esm/dockview/validation.d.ts +2 -0
- package/dist/esm/dockview/validation.js +86 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/esm/gridview/baseComponentGridview.js +31 -32
- package/dist/esm/gridview/basePanelView.d.ts +2 -2
- package/dist/esm/gridview/basePanelView.js +13 -13
- package/dist/esm/gridview/branchNode.js +47 -47
- package/dist/esm/gridview/gridview.d.ts +9 -3
- package/dist/esm/gridview/gridview.js +41 -15
- package/dist/esm/gridview/gridviewComponent.d.ts +2 -2
- package/dist/esm/gridview/gridviewComponent.js +17 -18
- package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
- package/dist/esm/gridview/gridviewPanel.js +45 -45
- package/dist/esm/gridview/leafNode.js +23 -23
- package/dist/esm/gridview/types.d.ts +1 -1
- package/dist/esm/groupview/dnd.d.ts +2 -1
- package/dist/esm/groupview/dnd.js +1 -0
- package/dist/esm/groupview/groupview.d.ts +6 -6
- package/dist/esm/groupview/groupview.js +90 -72
- package/dist/esm/groupview/groupviewPanel.d.ts +3 -3
- package/dist/esm/groupview/groupviewPanel.js +4 -4
- package/dist/esm/groupview/panel/content.d.ts +1 -1
- package/dist/esm/groupview/panel/content.js +3 -3
- package/dist/esm/groupview/tab.d.ts +2 -12
- package/dist/esm/groupview/tab.js +15 -11
- package/dist/esm/groupview/titlebar/tabsContainer.d.ts +5 -8
- package/dist/esm/groupview/titlebar/tabsContainer.js +54 -61
- package/dist/esm/groupview/titlebar/voidContainer.d.ts +15 -0
- package/dist/esm/groupview/titlebar/voidContainer.js +47 -0
- package/dist/esm/groupview/types.d.ts +18 -2
- package/dist/esm/hostedContainer.js +3 -3
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +2 -2
- package/dist/esm/lifecycle.js +3 -3
- package/dist/esm/paneview/defaultPaneviewHeader.js +3 -3
- package/dist/esm/paneview/draggablePaneviewPanel.js +7 -6
- package/dist/esm/paneview/paneview.js +21 -21
- package/dist/esm/paneview/paneviewComponent.js +30 -30
- package/dist/esm/paneview/paneviewPanel.js +45 -44
- package/dist/esm/react/deserializer.d.ts +2 -1
- package/dist/esm/react/deserializer.js +2 -2
- package/dist/esm/react/dockview/defaultTab.d.ts +1 -1
- package/dist/esm/react/dockview/dockview.d.ts +5 -4
- package/dist/esm/react/dockview/dockview.js +1 -0
- package/dist/esm/react/dockview/groupControlsRenderer.d.ts +1 -1
- package/dist/esm/react/dockview/groupControlsRenderer.js +8 -8
- package/dist/esm/react/dockview/reactContentPart.js +3 -3
- package/dist/esm/react/dockview/reactHeaderPart.js +3 -3
- package/dist/esm/react/dockview/reactWatermarkPart.js +3 -3
- package/dist/esm/react/dockview/v2/reactContentRenderer.js +9 -9
- package/dist/esm/react/dockview/v2/webviewContentRenderer.js +3 -3
- package/dist/esm/react/gridview/view.js +2 -1
- package/dist/esm/react/paneview/view.js +3 -3
- package/dist/esm/react/react.d.ts +1 -1
- package/dist/esm/splitview/core/splitview.d.ts +4 -4
- package/dist/esm/splitview/core/splitview.js +59 -59
- package/dist/esm/splitview/core/viewItem.js +15 -15
- package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
- package/dist/esm/splitview/splitviewComponent.js +23 -23
- package/dist/esm/splitview/splitviewPanel.js +31 -30
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.js +3 -1
- package/dist/styles/dockview.css +23 -26
- package/package.json +12 -16
- package/dist/cjs/api/groupPanelApi.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/cjs/groupview/groupPanel.d.ts +0 -32
- package/dist/cjs/groupview/groupPanel.js +0 -3
- package/dist/cjs/groupview/groupPanel.js.map +0 -1
- package/dist/esm/groupview/groupPanel.d.ts +0 -32
- package/dist/esm/groupview/groupPanel.js +0 -1
|
@@ -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 { IDockviewPanel } from '../groupPanel';
|
|
5
4
|
import { DockviewComponent } from '../../dockview/dockviewComponent';
|
|
6
5
|
import { GroupPanel } from '../groupviewPanel';
|
|
6
|
+
import { IDockviewPanel } from '../../dockview/dockviewPanel';
|
|
7
7
|
export interface TabDropIndexEvent {
|
|
8
8
|
event: DragEvent;
|
|
9
9
|
readonly index: number;
|
|
@@ -28,13 +28,12 @@ export interface ITabsContainer extends IDisposable {
|
|
|
28
28
|
hide(): void;
|
|
29
29
|
}
|
|
30
30
|
export declare class TabsContainer extends CompositeDisposable implements ITabsContainer {
|
|
31
|
-
private accessor;
|
|
32
|
-
private group;
|
|
31
|
+
private readonly accessor;
|
|
32
|
+
private readonly group;
|
|
33
33
|
private readonly _element;
|
|
34
34
|
private readonly tabContainer;
|
|
35
|
-
private readonly voidContainer;
|
|
36
35
|
private readonly actionContainer;
|
|
37
|
-
private readonly
|
|
36
|
+
private readonly voidContainer;
|
|
38
37
|
private tabs;
|
|
39
38
|
private selectedIndex;
|
|
40
39
|
private actions;
|
|
@@ -55,9 +54,7 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
55
54
|
isActive(tab: ITab): boolean;
|
|
56
55
|
at(index: number): ITab;
|
|
57
56
|
indexOf(id: string): number;
|
|
58
|
-
constructor(accessor: DockviewComponent, group: GroupPanel
|
|
59
|
-
tabHeight?: number;
|
|
60
|
-
});
|
|
57
|
+
constructor(accessor: DockviewComponent, group: GroupPanel);
|
|
61
58
|
setActive(_isGroupActive: boolean): void;
|
|
62
59
|
private addTab;
|
|
63
60
|
delete(id: string): void;
|
|
@@ -1,60 +1,9 @@
|
|
|
1
1
|
import { CompositeDisposable, } from '../../lifecycle';
|
|
2
2
|
import { addDisposableListener, Emitter } from '../../events';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Droptarget } from '../../dnd/droptarget';
|
|
7
|
-
import { DockviewDropTargets } from '../dnd';
|
|
3
|
+
import { Tab } from '../tab';
|
|
4
|
+
import { VoidContainer } from './voidContainer';
|
|
5
|
+
import { toggleClass } from '../../dom';
|
|
8
6
|
export class TabsContainer extends CompositeDisposable {
|
|
9
|
-
constructor(accessor, group, options) {
|
|
10
|
-
super();
|
|
11
|
-
this.accessor = accessor;
|
|
12
|
-
this.group = group;
|
|
13
|
-
this.tabs = [];
|
|
14
|
-
this.selectedIndex = -1;
|
|
15
|
-
this._hidden = false;
|
|
16
|
-
this._onDrop = new Emitter();
|
|
17
|
-
this.onDrop = this._onDrop.event;
|
|
18
|
-
this.addDisposables(this._onDrop);
|
|
19
|
-
this._element = document.createElement('div');
|
|
20
|
-
this._element.className = 'tabs-and-actions-container';
|
|
21
|
-
this.height = options.tabHeight;
|
|
22
|
-
this.actionContainer = document.createElement('div');
|
|
23
|
-
this.actionContainer.className = 'action-container';
|
|
24
|
-
this.tabContainer = document.createElement('div');
|
|
25
|
-
this.tabContainer.className = 'tabs-container';
|
|
26
|
-
this.voidContainer = document.createElement('div');
|
|
27
|
-
this.voidContainer.className = 'void-container';
|
|
28
|
-
this._element.appendChild(this.tabContainer);
|
|
29
|
-
this._element.appendChild(this.voidContainer);
|
|
30
|
-
this._element.appendChild(this.actionContainer);
|
|
31
|
-
this.voidDropTarget = new Droptarget(this.voidContainer, {
|
|
32
|
-
validOverlays: 'none',
|
|
33
|
-
canDisplayOverlay: (event) => {
|
|
34
|
-
var _a;
|
|
35
|
-
const data = getPanelData();
|
|
36
|
-
if (data && this.accessor.id === data.viewId) {
|
|
37
|
-
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
38
|
-
return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
|
|
39
|
-
}
|
|
40
|
-
return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
this.addDisposables(this.voidDropTarget.onDrop((event) => {
|
|
44
|
-
this._onDrop.fire({
|
|
45
|
-
event: event.nativeEvent,
|
|
46
|
-
index: this.tabs.length,
|
|
47
|
-
});
|
|
48
|
-
}), this.voidDropTarget, addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
49
|
-
if (event.defaultPrevented) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const isLeftClick = event.button === 0;
|
|
53
|
-
if (isLeftClick) {
|
|
54
|
-
this.accessor.doSetGroupActive(this.group);
|
|
55
|
-
}
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
7
|
get panels() {
|
|
59
8
|
return this.tabs.map((_) => _.value.panelId);
|
|
60
9
|
}
|
|
@@ -115,6 +64,52 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
115
64
|
indexOf(id) {
|
|
116
65
|
return this.tabs.findIndex((tab) => tab.value.panelId === id);
|
|
117
66
|
}
|
|
67
|
+
constructor(accessor, group) {
|
|
68
|
+
super();
|
|
69
|
+
this.accessor = accessor;
|
|
70
|
+
this.group = group;
|
|
71
|
+
this.tabs = [];
|
|
72
|
+
this.selectedIndex = -1;
|
|
73
|
+
this._hidden = false;
|
|
74
|
+
this._onDrop = new Emitter();
|
|
75
|
+
this.onDrop = this._onDrop.event;
|
|
76
|
+
this.addDisposables(this._onDrop);
|
|
77
|
+
this._element = document.createElement('div');
|
|
78
|
+
this._element.className = 'tabs-and-actions-container';
|
|
79
|
+
this.height = accessor.options.tabHeight;
|
|
80
|
+
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
81
|
+
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
82
|
+
if (e.api.group === this.group) {
|
|
83
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
84
|
+
}
|
|
85
|
+
}), this.accessor.onDidRemovePanel((e) => {
|
|
86
|
+
if (e.api.group === this.group) {
|
|
87
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
this.actionContainer = document.createElement('div');
|
|
91
|
+
this.actionContainer.className = 'action-container';
|
|
92
|
+
this.tabContainer = document.createElement('div');
|
|
93
|
+
this.tabContainer.className = 'tabs-container';
|
|
94
|
+
this.voidContainer = new VoidContainer(this.accessor, this.group);
|
|
95
|
+
this._element.appendChild(this.tabContainer);
|
|
96
|
+
this._element.appendChild(this.voidContainer.element);
|
|
97
|
+
this._element.appendChild(this.actionContainer);
|
|
98
|
+
this.addDisposables(this.voidContainer, this.voidContainer.onDrop((event) => {
|
|
99
|
+
this._onDrop.fire({
|
|
100
|
+
event: event.nativeEvent,
|
|
101
|
+
index: this.tabs.length,
|
|
102
|
+
});
|
|
103
|
+
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
104
|
+
if (event.defaultPrevented) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const isLeftClick = event.button === 0;
|
|
108
|
+
if (isLeftClick) {
|
|
109
|
+
this.accessor.doSetGroupActive(this.group);
|
|
110
|
+
}
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
118
113
|
setActive(_isGroupActive) {
|
|
119
114
|
// noop
|
|
120
115
|
}
|
|
@@ -159,15 +154,13 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
159
154
|
var _a;
|
|
160
155
|
const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
161
156
|
this.group.model.isContentFocused;
|
|
162
|
-
const isLeftClick = event.
|
|
163
|
-
if (!isLeftClick || event.
|
|
157
|
+
const isLeftClick = event.button === 0;
|
|
158
|
+
if (!isLeftClick || event.defaultPrevented) {
|
|
164
159
|
return;
|
|
165
160
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
});
|
|
170
|
-
}
|
|
161
|
+
this.group.model.openPanel(panel, {
|
|
162
|
+
skipFocus: alreadyFocused,
|
|
163
|
+
});
|
|
171
164
|
}), tabToAdd.onDrop((event) => {
|
|
172
165
|
this._onDrop.fire({
|
|
173
166
|
event: event.nativeEvent,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DroptargetEvent } from '../../dnd/droptarget';
|
|
2
|
+
import { DockviewComponent } from '../../dockview/dockviewComponent';
|
|
3
|
+
import { Event } from '../../events';
|
|
4
|
+
import { CompositeDisposable } from '../../lifecycle';
|
|
5
|
+
import { GroupPanel } from '../groupviewPanel';
|
|
6
|
+
export declare class VoidContainer extends CompositeDisposable {
|
|
7
|
+
private readonly accessor;
|
|
8
|
+
private readonly group;
|
|
9
|
+
private readonly _element;
|
|
10
|
+
private readonly voidDropTarget;
|
|
11
|
+
private readonly _onDrop;
|
|
12
|
+
readonly onDrop: Event<DroptargetEvent>;
|
|
13
|
+
get element(): HTMLElement;
|
|
14
|
+
constructor(accessor: DockviewComponent, group: GroupPanel);
|
|
15
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { last } from '../../array';
|
|
2
|
+
import { getPanelData } from '../../dnd/dataTransfer';
|
|
3
|
+
import { Droptarget } from '../../dnd/droptarget';
|
|
4
|
+
import { GroupDragHandler } from '../../dnd/groupDragHandler';
|
|
5
|
+
import { addDisposableListener, Emitter } from '../../events';
|
|
6
|
+
import { CompositeDisposable } from '../../lifecycle';
|
|
7
|
+
import { DockviewDropTargets } from '../dnd';
|
|
8
|
+
export class VoidContainer extends CompositeDisposable {
|
|
9
|
+
get element() {
|
|
10
|
+
return this._element;
|
|
11
|
+
}
|
|
12
|
+
constructor(accessor, group) {
|
|
13
|
+
super();
|
|
14
|
+
this.accessor = accessor;
|
|
15
|
+
this.group = group;
|
|
16
|
+
this._onDrop = new Emitter();
|
|
17
|
+
this.onDrop = this._onDrop.event;
|
|
18
|
+
this._element = document.createElement('div');
|
|
19
|
+
this._element.className = 'void-container';
|
|
20
|
+
this._element.tabIndex = 0;
|
|
21
|
+
this._element.draggable = true;
|
|
22
|
+
this.addDisposables(this._onDrop, addDisposableListener(this._element, 'click', () => {
|
|
23
|
+
this.accessor.doSetGroupActive(this.group);
|
|
24
|
+
}));
|
|
25
|
+
const handler = new GroupDragHandler(this._element, accessor.id, group);
|
|
26
|
+
this.voidDropTarget = new Droptarget(this._element, {
|
|
27
|
+
acceptedTargetZones: ['center'],
|
|
28
|
+
canDisplayOverlay: (event, position) => {
|
|
29
|
+
var _a;
|
|
30
|
+
const data = getPanelData();
|
|
31
|
+
if (data && this.accessor.id === data.viewId) {
|
|
32
|
+
if (data.panelId === null &&
|
|
33
|
+
data.groupId === this.group.id) {
|
|
34
|
+
// don't allow group move to drop on self
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
38
|
+
return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
|
|
39
|
+
}
|
|
40
|
+
return group.model.canDisplayOverlay(event, position, DockviewDropTargets.Panel);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
this.addDisposables(handler, this.voidDropTarget.onDrop((event) => {
|
|
44
|
+
this._onDrop.fire(event);
|
|
45
|
+
}), this.voidDropTarget);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { IDockviewComponent } from '../dockview/dockviewComponent';
|
|
2
|
-
import { DockviewPanelApi } from '../api/
|
|
3
|
-
import { PanelInitParameters, IPanel } from '../panel/types';
|
|
2
|
+
import { DockviewPanelApi } from '../api/dockviewPanelApi';
|
|
3
|
+
import { PanelInitParameters, IPanel, PanelUpdateEvent, Parameters } from '../panel/types';
|
|
4
4
|
import { DockviewApi } from '../api/component.api';
|
|
5
5
|
import { GroupPanel } from './groupviewPanel';
|
|
6
6
|
import { Event } from '../events';
|
|
7
|
+
import { IGroupPanelView } from '../dockview/defaultGroupPanelView';
|
|
7
8
|
export interface IRenderable {
|
|
8
9
|
id: string;
|
|
9
10
|
element: HTMLElement;
|
|
@@ -50,3 +51,18 @@ export interface PanelContentPartConstructor {
|
|
|
50
51
|
export interface WatermarkConstructor {
|
|
51
52
|
new (): IWatermarkRenderer;
|
|
52
53
|
}
|
|
54
|
+
export interface IGroupPanelInitParameters extends PanelInitParameters, HeaderPartInitParameters {
|
|
55
|
+
view: IGroupPanelView;
|
|
56
|
+
}
|
|
57
|
+
export type GroupPanelUpdateEvent = PanelUpdateEvent<{
|
|
58
|
+
params?: Parameters;
|
|
59
|
+
title?: string;
|
|
60
|
+
}>;
|
|
61
|
+
export interface GroupviewPanelState {
|
|
62
|
+
id: string;
|
|
63
|
+
view?: any;
|
|
64
|
+
title: string;
|
|
65
|
+
params?: {
|
|
66
|
+
[key: string]: any;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { trackFocus } from './dom';
|
|
2
2
|
import { Emitter } from './events';
|
|
3
3
|
export class HostedContainer {
|
|
4
|
+
get element() {
|
|
5
|
+
return this._element;
|
|
6
|
+
}
|
|
4
7
|
constructor(options) {
|
|
5
8
|
this.options = options;
|
|
6
9
|
this._onDidFocus = new Emitter();
|
|
@@ -36,9 +39,6 @@ export class HostedContainer {
|
|
|
36
39
|
});
|
|
37
40
|
options.parent.appendChild(this._element);
|
|
38
41
|
}
|
|
39
|
-
get element() {
|
|
40
|
-
return this._element;
|
|
41
|
-
}
|
|
42
42
|
hide() {
|
|
43
43
|
this._element.style.visibility = 'hidden';
|
|
44
44
|
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -17,14 +17,14 @@ export { PaneviewComponentOptions } from './paneview/options';
|
|
|
17
17
|
export * from './gridview/gridviewPanel';
|
|
18
18
|
export * from './splitview/splitviewPanel';
|
|
19
19
|
export * from './paneview/paneviewPanel';
|
|
20
|
-
export * from './groupview/
|
|
20
|
+
export * from './groupview/types';
|
|
21
21
|
export * from './react';
|
|
22
22
|
export { Event } from './events';
|
|
23
23
|
export { IDisposable } from './lifecycle';
|
|
24
|
-
export { Position } from './dnd/droptarget';
|
|
24
|
+
export { Position, positionToDirection, directionToPosition, } from './dnd/droptarget';
|
|
25
25
|
export { FocusEvent, PanelDimensionChangeEvent, VisibilityEvent, ActiveEvent, PanelApi, } from './api/panelApi';
|
|
26
26
|
export { SizeEvent, GridviewPanelApi, GridConstraintChangeEvent, } from './api/gridviewPanelApi';
|
|
27
|
-
export { TitleEvent, DockviewPanelApi } from './api/
|
|
27
|
+
export { TitleEvent, DockviewPanelApi } from './api/dockviewPanelApi';
|
|
28
28
|
export { PanelSizeEvent, PanelConstraintChangeEvent, SplitviewPanelApi, } from './api/splitviewPanelApi';
|
|
29
29
|
export { ExpansionEvent, PaneviewPanelApi } from './api/paneviewPanelApi';
|
|
30
30
|
export { CommonApi, SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
|
package/dist/esm/index.js
CHANGED
|
@@ -16,8 +16,8 @@ export * from './paneview/paneviewComponent';
|
|
|
16
16
|
export * from './gridview/gridviewPanel';
|
|
17
17
|
export * from './splitview/splitviewPanel';
|
|
18
18
|
export * from './paneview/paneviewPanel';
|
|
19
|
-
export * from './groupview/
|
|
19
|
+
export * from './groupview/types';
|
|
20
20
|
export * from './react'; // TODO: should be conditional on whether user wants the React wrappers
|
|
21
21
|
export { Event } from './events';
|
|
22
|
-
export {
|
|
22
|
+
export { positionToDirection, directionToPosition, } from './dnd/droptarget';
|
|
23
23
|
export { SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
|
package/dist/esm/lifecycle.js
CHANGED
|
@@ -7,12 +7,12 @@ export var Disposable;
|
|
|
7
7
|
};
|
|
8
8
|
})(Disposable || (Disposable = {}));
|
|
9
9
|
export class CompositeDisposable {
|
|
10
|
-
constructor(...args) {
|
|
11
|
-
this.disposables = args;
|
|
12
|
-
}
|
|
13
10
|
static from(...args) {
|
|
14
11
|
return new CompositeDisposable(...args);
|
|
15
12
|
}
|
|
13
|
+
constructor(...args) {
|
|
14
|
+
this.disposables = args;
|
|
15
|
+
}
|
|
16
16
|
addDisposables(...args) {
|
|
17
17
|
args.forEach((arg) => this.disposables.push(arg));
|
|
18
18
|
}
|
|
@@ -3,6 +3,9 @@ import { CompositeDisposable, MutableDisposable } from '../lifecycle';
|
|
|
3
3
|
import { toggleClass } from '../dom';
|
|
4
4
|
import { createChevronRightButton, createExpandMoreButton } from '../svg';
|
|
5
5
|
export class DefaultHeader extends CompositeDisposable {
|
|
6
|
+
get element() {
|
|
7
|
+
return this._element;
|
|
8
|
+
}
|
|
6
9
|
constructor() {
|
|
7
10
|
super();
|
|
8
11
|
this._expandedIcon = createExpandMoreButton();
|
|
@@ -21,9 +24,6 @@ export class DefaultHeader extends CompositeDisposable {
|
|
|
21
24
|
(_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
|
|
22
25
|
}));
|
|
23
26
|
}
|
|
24
|
-
get element() {
|
|
25
|
-
return this._element;
|
|
26
|
-
}
|
|
27
27
|
init(params) {
|
|
28
28
|
this.apiRef.api = params.api;
|
|
29
29
|
this._content.textContent = params.title;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DragHandler } from '../dnd/abstractDragHandler';
|
|
2
2
|
import { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';
|
|
3
|
-
import { Droptarget
|
|
3
|
+
import { Droptarget } from '../dnd/droptarget';
|
|
4
4
|
import { Emitter } from '../events';
|
|
5
5
|
import { PaneviewPanel, } from './paneviewPanel';
|
|
6
6
|
export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
@@ -31,7 +31,10 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
31
31
|
}
|
|
32
32
|
})(this.header);
|
|
33
33
|
this.target = new Droptarget(this.element, {
|
|
34
|
-
|
|
34
|
+
acceptedTargetZones: ['top', 'bottom'],
|
|
35
|
+
overlayModel: {
|
|
36
|
+
activationSize: { type: 'percentage', value: 50 },
|
|
37
|
+
},
|
|
35
38
|
canDisplayOverlay: (event) => {
|
|
36
39
|
const data = getPaneData();
|
|
37
40
|
if (data) {
|
|
@@ -74,12 +77,10 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
74
77
|
const allPanels = containerApi.panels;
|
|
75
78
|
const fromIndex = allPanels.indexOf(existingPanel);
|
|
76
79
|
let toIndex = containerApi.panels.indexOf(this);
|
|
77
|
-
if (event.position ===
|
|
78
|
-
event.position === Position.Top) {
|
|
80
|
+
if (event.position === 'left' || event.position === 'top') {
|
|
79
81
|
toIndex = Math.max(0, toIndex - 1);
|
|
80
82
|
}
|
|
81
|
-
if (event.position ===
|
|
82
|
-
event.position === Position.Bottom) {
|
|
83
|
+
if (event.position === 'right' || event.position === 'bottom') {
|
|
83
84
|
if (fromIndex > toIndex) {
|
|
84
85
|
toIndex++;
|
|
85
86
|
}
|
|
@@ -3,6 +3,27 @@ import { CompositeDisposable } from '../lifecycle';
|
|
|
3
3
|
import { Emitter } from '../events';
|
|
4
4
|
import { addClasses, removeClasses } from '../dom';
|
|
5
5
|
export class Paneview extends CompositeDisposable {
|
|
6
|
+
get onDidAddView() {
|
|
7
|
+
return this.splitview.onDidAddView;
|
|
8
|
+
}
|
|
9
|
+
get onDidRemoveView() {
|
|
10
|
+
return this.splitview.onDidRemoveView;
|
|
11
|
+
}
|
|
12
|
+
get minimumSize() {
|
|
13
|
+
return this.splitview.minimumSize;
|
|
14
|
+
}
|
|
15
|
+
get maximumSize() {
|
|
16
|
+
return this.splitview.maximumSize;
|
|
17
|
+
}
|
|
18
|
+
get orientation() {
|
|
19
|
+
return this.splitview.orientation;
|
|
20
|
+
}
|
|
21
|
+
get size() {
|
|
22
|
+
return this.splitview.size;
|
|
23
|
+
}
|
|
24
|
+
get orthogonalSize() {
|
|
25
|
+
return this.splitview.orthogonalSize;
|
|
26
|
+
}
|
|
6
27
|
constructor(container, options) {
|
|
7
28
|
var _a;
|
|
8
29
|
super();
|
|
@@ -45,27 +66,6 @@ export class Paneview extends CompositeDisposable {
|
|
|
45
66
|
this._onDidChange.fire();
|
|
46
67
|
}));
|
|
47
68
|
}
|
|
48
|
-
get onDidAddView() {
|
|
49
|
-
return this.splitview.onDidAddView;
|
|
50
|
-
}
|
|
51
|
-
get onDidRemoveView() {
|
|
52
|
-
return this.splitview.onDidRemoveView;
|
|
53
|
-
}
|
|
54
|
-
get minimumSize() {
|
|
55
|
-
return this.splitview.minimumSize;
|
|
56
|
-
}
|
|
57
|
-
get maximumSize() {
|
|
58
|
-
return this.splitview.maximumSize;
|
|
59
|
-
}
|
|
60
|
-
get orientation() {
|
|
61
|
-
return this.splitview.orientation;
|
|
62
|
-
}
|
|
63
|
-
get size() {
|
|
64
|
-
return this.splitview.size;
|
|
65
|
-
}
|
|
66
|
-
get orthogonalSize() {
|
|
67
|
-
return this.splitview.orthogonalSize;
|
|
68
|
-
}
|
|
69
69
|
addPane(pane, size, index = this.splitview.length, skipLayout = false) {
|
|
70
70
|
const disposable = pane.onDidChangeExpansionState(() => {
|
|
71
71
|
this.setupAnimation();
|
|
@@ -21,36 +21,6 @@ export class PaneFramework extends DraggablePaneviewPanel {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
export class PaneviewComponent extends CompositeDisposable {
|
|
24
|
-
constructor(element, options) {
|
|
25
|
-
super();
|
|
26
|
-
this.element = element;
|
|
27
|
-
this._id = nextLayoutId.next();
|
|
28
|
-
this._disposable = new MutableDisposable();
|
|
29
|
-
this._viewDisposables = new Map();
|
|
30
|
-
this._onDidLayoutfromJSON = new Emitter();
|
|
31
|
-
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
32
|
-
this._onDidLayoutChange = new Emitter();
|
|
33
|
-
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
34
|
-
this._onDidDrop = new Emitter();
|
|
35
|
-
this.onDidDrop = this._onDidDrop.event;
|
|
36
|
-
this._onDidAddView = new Emitter();
|
|
37
|
-
this.onDidAddView = this._onDidAddView.event;
|
|
38
|
-
this._onDidRemoveView = new Emitter();
|
|
39
|
-
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
40
|
-
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
|
|
41
|
-
this._options = options;
|
|
42
|
-
if (!options.components) {
|
|
43
|
-
options.components = {};
|
|
44
|
-
}
|
|
45
|
-
if (!options.frameworkComponents) {
|
|
46
|
-
options.frameworkComponents = {};
|
|
47
|
-
}
|
|
48
|
-
this.paneview = new Paneview(this.element, {
|
|
49
|
-
// only allow paneview in the vertical orientation for now
|
|
50
|
-
orientation: Orientation.VERTICAL,
|
|
51
|
-
});
|
|
52
|
-
this.addDisposables(this._disposable);
|
|
53
|
-
}
|
|
54
24
|
get id() {
|
|
55
25
|
return this._id;
|
|
56
26
|
}
|
|
@@ -85,6 +55,36 @@ export class PaneviewComponent extends CompositeDisposable {
|
|
|
85
55
|
get options() {
|
|
86
56
|
return this._options;
|
|
87
57
|
}
|
|
58
|
+
constructor(element, options) {
|
|
59
|
+
super();
|
|
60
|
+
this.element = element;
|
|
61
|
+
this._id = nextLayoutId.next();
|
|
62
|
+
this._disposable = new MutableDisposable();
|
|
63
|
+
this._viewDisposables = new Map();
|
|
64
|
+
this._onDidLayoutfromJSON = new Emitter();
|
|
65
|
+
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
66
|
+
this._onDidLayoutChange = new Emitter();
|
|
67
|
+
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
68
|
+
this._onDidDrop = new Emitter();
|
|
69
|
+
this.onDidDrop = this._onDidDrop.event;
|
|
70
|
+
this._onDidAddView = new Emitter();
|
|
71
|
+
this.onDidAddView = this._onDidAddView.event;
|
|
72
|
+
this._onDidRemoveView = new Emitter();
|
|
73
|
+
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
74
|
+
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
|
|
75
|
+
this._options = options;
|
|
76
|
+
if (!options.components) {
|
|
77
|
+
options.components = {};
|
|
78
|
+
}
|
|
79
|
+
if (!options.frameworkComponents) {
|
|
80
|
+
options.frameworkComponents = {};
|
|
81
|
+
}
|
|
82
|
+
this.paneview = new Paneview(this.element, {
|
|
83
|
+
// only allow paneview in the vertical orientation for now
|
|
84
|
+
orientation: Orientation.VERTICAL,
|
|
85
|
+
});
|
|
86
|
+
this.addDisposables(this._disposable);
|
|
87
|
+
}
|
|
88
88
|
focus() {
|
|
89
89
|
//
|
|
90
90
|
}
|
|
@@ -4,50 +4,6 @@ import { addDisposableListener, Emitter } from '../events';
|
|
|
4
4
|
import { BasePanelView, } from '../gridview/basePanelView';
|
|
5
5
|
import { Orientation } from '../splitview/core/splitview';
|
|
6
6
|
export class PaneviewPanel extends BasePanelView {
|
|
7
|
-
constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
|
|
8
|
-
super(id, component, new PaneviewPanelApiImpl(id));
|
|
9
|
-
this.headerComponent = headerComponent;
|
|
10
|
-
this._onDidChangeExpansionState = new Emitter({ replay: true });
|
|
11
|
-
this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
|
|
12
|
-
this._onDidChange = new Emitter();
|
|
13
|
-
this.onDidChange = this._onDidChange.event;
|
|
14
|
-
this.headerSize = 22;
|
|
15
|
-
this._orthogonalSize = 0;
|
|
16
|
-
this._size = 0;
|
|
17
|
-
this._minimumBodySize = 100;
|
|
18
|
-
this._maximumBodySize = Number.POSITIVE_INFINITY;
|
|
19
|
-
this._isExpanded = false;
|
|
20
|
-
this.expandedSize = 0;
|
|
21
|
-
this.api.pane = this; // TODO cannot use 'this' before 'super'
|
|
22
|
-
this._isExpanded = isExpanded;
|
|
23
|
-
this._headerVisible = isHeaderVisible;
|
|
24
|
-
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
25
|
-
this._orientation = orientation;
|
|
26
|
-
this.element.classList.add('pane');
|
|
27
|
-
this.addDisposables(this.api.onDidSizeChange((event) => {
|
|
28
|
-
this._onDidChange.fire({ size: event.size });
|
|
29
|
-
}), addDisposableListener(this.element, 'mouseenter', (ev) => {
|
|
30
|
-
this.api._onMouseEnter.fire(ev);
|
|
31
|
-
}), addDisposableListener(this.element, 'mouseleave', (ev) => {
|
|
32
|
-
this.api._onMouseLeave.fire(ev);
|
|
33
|
-
}));
|
|
34
|
-
this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {
|
|
35
|
-
this.api._onDidExpansionChange.fire({
|
|
36
|
-
isExpanded: isPanelExpanded,
|
|
37
|
-
});
|
|
38
|
-
}), this.api.onDidFocusChange((e) => {
|
|
39
|
-
if (!this.header) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
if (e.isFocused) {
|
|
43
|
-
addClasses(this.header, 'focused');
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
removeClasses(this.header, 'focused');
|
|
47
|
-
}
|
|
48
|
-
}));
|
|
49
|
-
this.renderOnce();
|
|
50
|
-
}
|
|
51
7
|
set orientation(value) {
|
|
52
8
|
this._orientation = value;
|
|
53
9
|
}
|
|
@@ -95,6 +51,51 @@ export class PaneviewPanel extends BasePanelView {
|
|
|
95
51
|
this._headerVisible = value;
|
|
96
52
|
this.header.style.display = value ? '' : 'none';
|
|
97
53
|
}
|
|
54
|
+
constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
|
|
55
|
+
super(id, component, new PaneviewPanelApiImpl(id));
|
|
56
|
+
this.headerComponent = headerComponent;
|
|
57
|
+
this._onDidChangeExpansionState = new Emitter({ replay: true });
|
|
58
|
+
this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
|
|
59
|
+
this._onDidChange = new Emitter();
|
|
60
|
+
this.onDidChange = this._onDidChange.event;
|
|
61
|
+
this.headerSize = 22;
|
|
62
|
+
this._orthogonalSize = 0;
|
|
63
|
+
this._size = 0;
|
|
64
|
+
this._minimumBodySize = 100;
|
|
65
|
+
this._maximumBodySize = Number.POSITIVE_INFINITY;
|
|
66
|
+
this._isExpanded = false;
|
|
67
|
+
this.expandedSize = 0;
|
|
68
|
+
this.api.pane = this; // TODO cannot use 'this' before 'super'
|
|
69
|
+
this.api.initialize(this);
|
|
70
|
+
this._isExpanded = isExpanded;
|
|
71
|
+
this._headerVisible = isHeaderVisible;
|
|
72
|
+
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
73
|
+
this._orientation = orientation;
|
|
74
|
+
this.element.classList.add('pane');
|
|
75
|
+
this.addDisposables(this.api.onDidSizeChange((event) => {
|
|
76
|
+
this._onDidChange.fire({ size: event.size });
|
|
77
|
+
}), addDisposableListener(this.element, 'mouseenter', (ev) => {
|
|
78
|
+
this.api._onMouseEnter.fire(ev);
|
|
79
|
+
}), addDisposableListener(this.element, 'mouseleave', (ev) => {
|
|
80
|
+
this.api._onMouseLeave.fire(ev);
|
|
81
|
+
}));
|
|
82
|
+
this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {
|
|
83
|
+
this.api._onDidExpansionChange.fire({
|
|
84
|
+
isExpanded: isPanelExpanded,
|
|
85
|
+
});
|
|
86
|
+
}), this.api.onDidFocusChange((e) => {
|
|
87
|
+
if (!this.header) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (e.isFocused) {
|
|
91
|
+
addClasses(this.header, 'focused');
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
removeClasses(this.header, 'focused');
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
this.renderOnce();
|
|
98
|
+
}
|
|
98
99
|
setVisible(isVisible) {
|
|
99
100
|
this.api._onDidVisibilityChange.fire({ isVisible });
|
|
100
101
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DockviewComponent } from '../dockview/dockviewComponent';
|
|
2
|
-
import { GroupviewPanelState
|
|
2
|
+
import { GroupviewPanelState } from '../groupview/types';
|
|
3
|
+
import { IDockviewPanel } from '../dockview/dockviewPanel';
|
|
3
4
|
import { IPanelDeserializer } from '../dockview/deserializer';
|
|
4
5
|
import { GroupPanel } from '../groupview/groupviewPanel';
|
|
5
6
|
export declare class ReactPanelDeserialzier implements IPanelDeserializer {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DockviewPanel } from '../dockview/dockviewPanel';
|
|
2
2
|
import { createComponent } from '../panel/componentFactory';
|
|
3
3
|
import { DockviewApi } from '../api/component.api';
|
|
4
4
|
import { DefaultTab } from '../dockview/components/tab/defaultTab';
|
|
@@ -27,7 +27,7 @@ export class ReactPanelDeserialzier {
|
|
|
27
27
|
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (_d = this.layout.options.frameworkComponentFactory) === null || _d === void 0 ? void 0 : _d.content),
|
|
28
28
|
tab,
|
|
29
29
|
});
|
|
30
|
-
const panel = new
|
|
30
|
+
const panel = new DockviewPanel(panelId, this.layout, new DockviewApi(this.layout), group);
|
|
31
31
|
panel.init({
|
|
32
32
|
view,
|
|
33
33
|
title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IDockviewPanelHeaderProps } from './dockview';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
export
|
|
3
|
+
export type IDockviewDefaultTabProps = IDockviewPanelHeaderProps & React.DOMAttributes<HTMLDivElement>;
|
|
4
4
|
export declare const DockviewDefaultTab: React.FunctionComponent<IDockviewDefaultTabProps>;
|