dockview 1.0.1 → 1.1.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 +243 -186
- package/dist/cjs/api/component.api.d.ts +32 -17
- package/dist/cjs/api/component.api.js +155 -28
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -0
- package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
- package/dist/cjs/api/groupPanelApi.d.ts +11 -14
- package/dist/cjs/api/groupPanelApi.js +19 -17
- package/dist/cjs/api/groupPanelApi.js.map +1 -1
- package/dist/cjs/api/panelApi.d.ts +0 -25
- package/dist/cjs/api/panelApi.js +1 -20
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/api/paneviewPanelApi.js +1 -0
- package/dist/cjs/api/paneviewPanelApi.js.map +1 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/splitviewPanelApi.js +1 -5
- package/dist/cjs/api/splitviewPanelApi.js.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +3 -3
- package/dist/cjs/dnd/abstractDragHandler.js +15 -14
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +0 -25
- package/dist/cjs/dnd/dataTransfer.js +1 -45
- package/dist/cjs/dnd/dataTransfer.js.map +1 -1
- package/dist/cjs/dnd/dnd.d.ts +1 -14
- package/dist/cjs/dnd/dnd.js +1 -79
- package/dist/cjs/dnd/dnd.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +4 -5
- package/dist/cjs/dnd/droptarget.js +70 -46
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -8
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/defaultGroupPanelView.js +3 -1
- package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +27 -19
- package/dist/cjs/dockview/dockviewComponent.js +67 -178
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +2 -5
- package/dist/cjs/dockview/dockviewGroupPanel.js +2 -31
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +2 -1
- package/dist/cjs/events.d.ts +7 -0
- package/dist/cjs/events.js +47 -5
- package/dist/cjs/events.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +9 -0
- package/dist/cjs/gridview/baseComponentGridview.js +20 -15
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts +5 -8
- package/dist/cjs/gridview/basePanelView.js +14 -8
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.js +1 -1
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.js +19 -18
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +4 -0
- package/dist/cjs/gridview/gridviewComponent.js +5 -0
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
- package/dist/cjs/gridview/gridviewPanel.js +3 -6
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/gridview/leafNode.js +1 -0
- package/dist/cjs/gridview/leafNode.js.map +1 -1
- package/dist/cjs/groupview/groupPanel.d.ts +0 -7
- package/dist/cjs/groupview/groupview.d.ts +15 -8
- package/dist/cjs/groupview/groupview.js +38 -125
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
- package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
- package/dist/cjs/groupview/panel/content.js +1 -0
- package/dist/cjs/groupview/panel/content.js.map +1 -1
- package/dist/cjs/groupview/tab.d.ts +10 -13
- package/dist/cjs/groupview/tab.js +22 -80
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.js +6 -8
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/lifecycle.js +2 -1
- package/dist/cjs/lifecycle.js.map +1 -1
- package/dist/cjs/panel/types.d.ts +0 -2
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/cjs/paneview/draggablePaneviewPanel.js +32 -29
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneview.d.ts +1 -1
- package/dist/cjs/paneview/paneview.js +2 -5
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +6 -5
- package/dist/cjs/paneview/paneviewComponent.js +11 -16
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +5 -1
- package/dist/cjs/paneview/paneviewPanel.js +14 -2
- package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
- package/dist/cjs/react/deserializer.js +1 -3
- package/dist/cjs/react/deserializer.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.d.ts +9 -9
- package/dist/cjs/react/dockview/dockview.js +14 -1
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/reactContentPart.js +4 -4
- package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactHeaderPart.js +1 -0
- package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +1 -2
- package/dist/cjs/react/dockview/reactWatermarkPart.js +1 -2
- package/dist/cjs/react/dockview/reactWatermarkPart.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 +1 -0
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/react/react.js +1 -2
- package/dist/cjs/react/react.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/splitview.js +1 -1
- package/dist/cjs/splitview/core/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +9 -6
- package/dist/cjs/splitview/splitviewComponent.js +11 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
- package/dist/cjs/splitview/splitviewPanel.js +5 -3
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/dockview.amd.js +480 -567
- package/dist/dockview.amd.min.js +2 -16
- package/dist/dockview.amd.min.noStyle.js +2 -16
- package/dist/dockview.amd.noStyle.js +479 -566
- package/dist/dockview.cjs.js +480 -567
- package/dist/dockview.esm.js +480 -563
- package/dist/dockview.esm.min.js +2 -16
- package/dist/dockview.js +480 -567
- package/dist/dockview.min.js +2 -16
- package/dist/dockview.min.noStyle.js +2 -16
- package/dist/dockview.noStyle.js +479 -566
- package/dist/esm/api/component.api.d.ts +32 -17
- package/dist/esm/api/component.api.js +71 -20
- package/dist/esm/api/gridviewPanelApi.js +1 -0
- package/dist/esm/api/groupPanelApi.d.ts +11 -14
- package/dist/esm/api/groupPanelApi.js +18 -13
- package/dist/esm/api/panelApi.d.ts +0 -25
- package/dist/esm/api/panelApi.js +1 -20
- package/dist/esm/api/paneviewPanelApi.js +1 -0
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
- package/dist/esm/api/splitviewPanelApi.js +1 -5
- package/dist/esm/dnd/abstractDragHandler.d.ts +3 -3
- package/dist/esm/dnd/abstractDragHandler.js +9 -8
- package/dist/esm/dnd/dataTransfer.d.ts +0 -25
- package/dist/esm/dnd/dataTransfer.js +0 -40
- package/dist/esm/dnd/dnd.d.ts +1 -14
- package/dist/esm/dnd/dnd.js +1 -69
- package/dist/esm/dnd/droptarget.d.ts +4 -5
- package/dist/esm/dnd/droptarget.js +70 -46
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +1 -9
- package/dist/esm/dockview/defaultGroupPanelView.js +3 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +27 -19
- package/dist/esm/dockview/dockviewComponent.js +54 -118
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +2 -5
- package/dist/esm/dockview/dockviewGroupPanel.js +2 -30
- package/dist/esm/dockview/options.d.ts +2 -1
- package/dist/esm/events.d.ts +7 -0
- package/dist/esm/events.js +20 -3
- package/dist/esm/gridview/baseComponentGridview.d.ts +9 -0
- package/dist/esm/gridview/baseComponentGridview.js +21 -16
- package/dist/esm/gridview/basePanelView.d.ts +5 -8
- package/dist/esm/gridview/basePanelView.js +10 -8
- package/dist/esm/gridview/branchNode.js +1 -1
- package/dist/esm/gridview/gridview.js +16 -16
- package/dist/esm/gridview/gridviewComponent.d.ts +4 -0
- package/dist/esm/gridview/gridviewComponent.js +5 -0
- package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
- package/dist/esm/gridview/gridviewPanel.js +3 -6
- package/dist/esm/gridview/leafNode.js +1 -0
- package/dist/esm/groupview/groupPanel.d.ts +0 -7
- package/dist/esm/groupview/groupview.d.ts +15 -8
- package/dist/esm/groupview/groupview.js +24 -58
- package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
- package/dist/esm/groupview/panel/content.js +1 -0
- package/dist/esm/groupview/tab.d.ts +10 -13
- package/dist/esm/groupview/tab.js +17 -24
- package/dist/esm/groupview/titlebar/tabsContainer.js +6 -8
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/lifecycle.js +2 -1
- package/dist/esm/panel/types.d.ts +0 -2
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
- package/dist/esm/paneview/paneview.d.ts +1 -1
- package/dist/esm/paneview/paneview.js +2 -5
- package/dist/esm/paneview/paneviewComponent.d.ts +6 -5
- package/dist/esm/paneview/paneviewComponent.js +11 -8
- package/dist/esm/paneview/paneviewPanel.d.ts +5 -1
- package/dist/esm/paneview/paneviewPanel.js +10 -2
- package/dist/esm/react/deserializer.js +1 -3
- package/dist/esm/react/dockview/dockview.d.ts +9 -9
- package/dist/esm/react/dockview/dockview.js +15 -2
- package/dist/esm/react/dockview/reactContentPart.js +4 -4
- package/dist/esm/react/dockview/reactHeaderPart.js +1 -0
- package/dist/esm/react/dockview/reactWatermarkPart.d.ts +1 -2
- package/dist/esm/react/dockview/reactWatermarkPart.js +1 -2
- package/dist/esm/react/gridview/view.js +2 -2
- package/dist/esm/react/index.d.ts +1 -0
- package/dist/esm/react/react.js +1 -2
- package/dist/esm/react/splitview/view.js +2 -2
- package/dist/esm/splitview/core/splitview.js +1 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +9 -6
- package/dist/esm/splitview/splitviewComponent.js +10 -2
- package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
- package/dist/esm/splitview/splitviewPanel.js +5 -3
- package/dist/styles/dockview.css +5 -9
- package/package.json +4 -4
- package/dist/cjs/functions.d.ts +0 -1
- package/dist/cjs/functions.js +0 -42
- package/dist/cjs/functions.js.map +0 -1
- package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
- package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
- package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
- package/dist/cjs/json.d.ts +0 -1
- package/dist/cjs/json.js +0 -14
- package/dist/cjs/json.js.map +0 -1
- package/dist/esm/functions.d.ts +0 -1
- package/dist/esm/functions.js +0 -8
- package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
- package/dist/esm/groupview/panel/hostedPanel.js +0 -43
- package/dist/esm/json.d.ts +0 -1
- package/dist/esm/json.js +0 -9
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { tryParseJSON } from '../json';
|
|
2
1
|
class TransferObject {
|
|
3
2
|
constructor() {
|
|
4
3
|
//
|
|
@@ -19,45 +18,6 @@ export class PaneTransfer extends TransferObject {
|
|
|
19
18
|
this.paneId = paneId;
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
|
-
export const DATA_KEY = 'splitview/transfer';
|
|
23
|
-
export const isPanelTransferEvent = (event) => {
|
|
24
|
-
if (!event.dataTransfer) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
return event.dataTransfer.types.includes(DATA_KEY);
|
|
28
|
-
};
|
|
29
|
-
export var DragType;
|
|
30
|
-
(function (DragType) {
|
|
31
|
-
DragType["DOCKVIEW_TAB"] = "dockview_tab";
|
|
32
|
-
DragType["EXTERNAL"] = "external_group_drag";
|
|
33
|
-
})(DragType || (DragType = {}));
|
|
34
|
-
/**
|
|
35
|
-
* Determine whether this data belong to that of an event that was started by
|
|
36
|
-
* dragging a tab component
|
|
37
|
-
*/
|
|
38
|
-
export const isTabDragEvent = (data) => {
|
|
39
|
-
return data.type === DragType.DOCKVIEW_TAB;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Determine whether this data belong to that of an event that was started by
|
|
43
|
-
* a custom drag-enable component
|
|
44
|
-
*/
|
|
45
|
-
export const isCustomDragEvent = (data) => {
|
|
46
|
-
return data.type === DragType.EXTERNAL;
|
|
47
|
-
};
|
|
48
|
-
export const extractData = (event) => {
|
|
49
|
-
if (!event.dataTransfer) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
const data = tryParseJSON(event.dataTransfer.getData(DATA_KEY));
|
|
53
|
-
if (!data) {
|
|
54
|
-
console.warn(`[dragEvent] ${DATA_KEY} data is missing`);
|
|
55
|
-
}
|
|
56
|
-
if (typeof data.type !== 'string') {
|
|
57
|
-
console.warn(`[dragEvent] invalid type ${data.type}`);
|
|
58
|
-
}
|
|
59
|
-
return data;
|
|
60
|
-
};
|
|
61
21
|
/**
|
|
62
22
|
* A singleton to store transfer data during drag & drop operations that are only valid within the application.
|
|
63
23
|
*/
|
package/dist/esm/dnd/dnd.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CompositeDisposable
|
|
1
|
+
import { CompositeDisposable } from '../lifecycle';
|
|
2
2
|
export interface IDragAndDropObserverCallbacks {
|
|
3
3
|
onDragEnter: (e: DragEvent) => void;
|
|
4
4
|
onDragLeave: (e: DragEvent) => void;
|
|
@@ -25,16 +25,3 @@ export interface ICompositeDragAndDropObserverCallbacks {
|
|
|
25
25
|
onDragStart?: (e: IDraggedCompositeData) => void;
|
|
26
26
|
onDragEnd?: (e: IDraggedCompositeData) => void;
|
|
27
27
|
}
|
|
28
|
-
export declare class DragAndDrop extends CompositeDisposable {
|
|
29
|
-
private _onDragStart;
|
|
30
|
-
private _onDragEnd;
|
|
31
|
-
private static _instance;
|
|
32
|
-
static get INSTANCE(): DragAndDrop;
|
|
33
|
-
private transferData;
|
|
34
|
-
private constructor();
|
|
35
|
-
registerTarget(element: HTMLElement, callbacks: ICompositeDragAndDropObserverCallbacks): IDisposable;
|
|
36
|
-
registerDraggable(element: HTMLElement, draggedItemProvider: () => {
|
|
37
|
-
type: string;
|
|
38
|
-
id: string;
|
|
39
|
-
}, callbacks: ICompositeDragAndDropObserverCallbacks): IDisposable;
|
|
40
|
-
}
|
package/dist/esm/dnd/dnd.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { addDisposableListener
|
|
1
|
+
import { addDisposableListener } from '../events';
|
|
2
2
|
import { CompositeDisposable } from '../lifecycle';
|
|
3
|
-
import { LocalSelectionTransfer } from './dataTransfer';
|
|
4
3
|
export class DragAndDropObserver extends CompositeDisposable {
|
|
5
4
|
constructor(element, callbacks) {
|
|
6
5
|
super();
|
|
@@ -40,70 +39,3 @@ export class DragAndDropObserver extends CompositeDisposable {
|
|
|
40
39
|
}));
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
class DockviewIdentifier {
|
|
44
|
-
constructor(data) {
|
|
45
|
-
this.data = data;
|
|
46
|
-
//
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
export class DragAndDrop extends CompositeDisposable {
|
|
50
|
-
constructor() {
|
|
51
|
-
super();
|
|
52
|
-
this._onDragStart = new Emitter();
|
|
53
|
-
this._onDragEnd = new Emitter();
|
|
54
|
-
this.transferData = LocalSelectionTransfer.getInstance();
|
|
55
|
-
this.addDisposables(this._onDragStart, this._onDragEnd);
|
|
56
|
-
}
|
|
57
|
-
static get INSTANCE() {
|
|
58
|
-
if (!DragAndDrop._instance) {
|
|
59
|
-
DragAndDrop._instance = new DragAndDrop();
|
|
60
|
-
}
|
|
61
|
-
return DragAndDrop._instance;
|
|
62
|
-
}
|
|
63
|
-
registerTarget(element, callbacks) {
|
|
64
|
-
const disposables = new CompositeDisposable();
|
|
65
|
-
disposables.addDisposables(new DragAndDropObserver(element, {
|
|
66
|
-
onDragEnd: (e) => {
|
|
67
|
-
// no-op
|
|
68
|
-
},
|
|
69
|
-
onDragEnter: (e) => {
|
|
70
|
-
e.preventDefault();
|
|
71
|
-
},
|
|
72
|
-
onDragLeave: (e) => {
|
|
73
|
-
//
|
|
74
|
-
},
|
|
75
|
-
onDrop: (e) => {
|
|
76
|
-
//
|
|
77
|
-
},
|
|
78
|
-
onDragOver: (e) => {
|
|
79
|
-
//
|
|
80
|
-
},
|
|
81
|
-
}));
|
|
82
|
-
return disposables;
|
|
83
|
-
}
|
|
84
|
-
registerDraggable(element, draggedItemProvider, callbacks) {
|
|
85
|
-
element.draggable = true;
|
|
86
|
-
const disposables = new CompositeDisposable();
|
|
87
|
-
disposables.addDisposables(addDisposableListener(element, 'dragstart', (e) => {
|
|
88
|
-
this._onDragStart.fire({ event: e });
|
|
89
|
-
}));
|
|
90
|
-
disposables.addDisposables(new DragAndDropObserver(element, {
|
|
91
|
-
onDragEnd: (e) => {
|
|
92
|
-
// no-op
|
|
93
|
-
},
|
|
94
|
-
onDragEnter: (e) => {
|
|
95
|
-
//
|
|
96
|
-
},
|
|
97
|
-
onDragLeave: (e) => {
|
|
98
|
-
//
|
|
99
|
-
},
|
|
100
|
-
onDrop: (e) => {
|
|
101
|
-
//
|
|
102
|
-
},
|
|
103
|
-
onDragOver: (e) => {
|
|
104
|
-
//
|
|
105
|
-
},
|
|
106
|
-
}));
|
|
107
|
-
return disposables;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { Event } from '../events';
|
|
2
2
|
import { CompositeDisposable } from '../lifecycle';
|
|
3
|
-
export interface DroptargetEvent {
|
|
4
|
-
position: Position;
|
|
5
|
-
event: DragEvent;
|
|
6
|
-
}
|
|
7
3
|
export declare enum Position {
|
|
8
4
|
Top = "Top",
|
|
9
5
|
Left = "Left",
|
|
@@ -13,7 +9,7 @@ export declare enum Position {
|
|
|
13
9
|
}
|
|
14
10
|
export interface DroptargetEvent {
|
|
15
11
|
position: Position;
|
|
16
|
-
|
|
12
|
+
nativeEvent: DragEvent;
|
|
17
13
|
}
|
|
18
14
|
export declare type DropTargetDirections = 'vertical' | 'horizontal' | 'all' | 'none';
|
|
19
15
|
export declare type CanDisplayOverlay = boolean | ((dragEvent: DragEvent) => boolean);
|
|
@@ -33,5 +29,8 @@ export declare class Droptarget extends CompositeDisposable {
|
|
|
33
29
|
validOverlays: DropTargetDirections;
|
|
34
30
|
});
|
|
35
31
|
dispose(): void;
|
|
32
|
+
private toggleClasses;
|
|
33
|
+
private setState;
|
|
34
|
+
private calculateQuadrant;
|
|
36
35
|
private removeDropTarget;
|
|
37
36
|
}
|
|
@@ -20,7 +20,7 @@ export class Droptarget extends CompositeDisposable {
|
|
|
20
20
|
this.options = options;
|
|
21
21
|
this._onDrop = new Emitter();
|
|
22
22
|
this.onDrop = this._onDrop.event;
|
|
23
|
-
this.addDisposables(new DragAndDropObserver(this.element, {
|
|
23
|
+
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
24
24
|
onDragEnter: (e) => undefined,
|
|
25
25
|
onDragOver: (e) => {
|
|
26
26
|
if (isBooleanValue(this.options.canDisplayOverlay)) {
|
|
@@ -56,51 +56,11 @@ export class Droptarget extends CompositeDisposable {
|
|
|
56
56
|
const y = e.offsetY;
|
|
57
57
|
const xp = (100 * x) / width;
|
|
58
58
|
const yp = (100 * y) / height;
|
|
59
|
-
|
|
60
|
-
let isLeft = false;
|
|
61
|
-
let isTop = false;
|
|
62
|
-
let isBottom = false;
|
|
63
|
-
switch (this.options.validOverlays) {
|
|
64
|
-
case 'all':
|
|
65
|
-
isRight = xp > 80;
|
|
66
|
-
isLeft = xp < 20;
|
|
67
|
-
isTop = !isRight && !isLeft && yp < 20;
|
|
68
|
-
isBottom = !isRight && !isLeft && yp > 80;
|
|
69
|
-
break;
|
|
70
|
-
case 'vertical':
|
|
71
|
-
isTop = yp < 50;
|
|
72
|
-
isBottom = yp >= 50;
|
|
73
|
-
break;
|
|
74
|
-
case 'horizontal':
|
|
75
|
-
isLeft = xp < 50;
|
|
76
|
-
isRight = xp >= 50;
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
59
|
+
const quadrant = this.calculateQuadrant(this.options.validOverlays, xp, yp);
|
|
79
60
|
const isSmallX = width < 100;
|
|
80
61
|
const isSmallY = height < 100;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
toggleClass(this.overlay, 'top', !isSmallY && isTop);
|
|
84
|
-
toggleClass(this.overlay, 'bottom', !isSmallY && isBottom);
|
|
85
|
-
toggleClass(this.overlay, 'small-right', isSmallX && isRight);
|
|
86
|
-
toggleClass(this.overlay, 'small-left', isSmallX && isLeft);
|
|
87
|
-
toggleClass(this.overlay, 'small-top', isSmallY && isTop);
|
|
88
|
-
toggleClass(this.overlay, 'small-bottom', isSmallY && isBottom);
|
|
89
|
-
if (isRight) {
|
|
90
|
-
this._state = Position.Right;
|
|
91
|
-
}
|
|
92
|
-
else if (isLeft) {
|
|
93
|
-
this._state = Position.Left;
|
|
94
|
-
}
|
|
95
|
-
else if (isTop) {
|
|
96
|
-
this._state = Position.Top;
|
|
97
|
-
}
|
|
98
|
-
else if (isBottom) {
|
|
99
|
-
this._state = Position.Bottom;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
this._state = Position.Center;
|
|
103
|
-
}
|
|
62
|
+
this.toggleClasses(quadrant, isSmallX, isSmallY);
|
|
63
|
+
this.setState(quadrant);
|
|
104
64
|
},
|
|
105
65
|
onDragLeave: (e) => {
|
|
106
66
|
this.removeDropTarget();
|
|
@@ -114,7 +74,7 @@ export class Droptarget extends CompositeDisposable {
|
|
|
114
74
|
const state = this._state;
|
|
115
75
|
this.removeDropTarget();
|
|
116
76
|
if (state) {
|
|
117
|
-
this._onDrop.fire({ position: state,
|
|
77
|
+
this._onDrop.fire({ position: state, nativeEvent: e });
|
|
118
78
|
}
|
|
119
79
|
},
|
|
120
80
|
}));
|
|
@@ -129,9 +89,73 @@ export class Droptarget extends CompositeDisposable {
|
|
|
129
89
|
this.options.canDisplayOverlay = value;
|
|
130
90
|
}
|
|
131
91
|
dispose() {
|
|
132
|
-
this._onDrop.dispose();
|
|
133
92
|
this.removeDropTarget();
|
|
134
93
|
}
|
|
94
|
+
toggleClasses(quadrant, isSmallX, isSmallY) {
|
|
95
|
+
if (!this.overlay) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const isLeft = quadrant === 'left';
|
|
99
|
+
const isRight = quadrant === 'right';
|
|
100
|
+
const isTop = quadrant === 'top';
|
|
101
|
+
const isBottom = quadrant === 'bottom';
|
|
102
|
+
toggleClass(this.overlay, 'right', !isSmallX && isRight);
|
|
103
|
+
toggleClass(this.overlay, 'left', !isSmallX && isLeft);
|
|
104
|
+
toggleClass(this.overlay, 'top', !isSmallY && isTop);
|
|
105
|
+
toggleClass(this.overlay, 'bottom', !isSmallY && isBottom);
|
|
106
|
+
toggleClass(this.overlay, 'small-right', isSmallX && isRight);
|
|
107
|
+
toggleClass(this.overlay, 'small-left', isSmallX && isLeft);
|
|
108
|
+
toggleClass(this.overlay, 'small-top', isSmallY && isTop);
|
|
109
|
+
toggleClass(this.overlay, 'small-bottom', isSmallY && isBottom);
|
|
110
|
+
}
|
|
111
|
+
setState(quadrant) {
|
|
112
|
+
switch (quadrant) {
|
|
113
|
+
case 'top':
|
|
114
|
+
this._state = Position.Top;
|
|
115
|
+
break;
|
|
116
|
+
case 'left':
|
|
117
|
+
this._state = Position.Left;
|
|
118
|
+
break;
|
|
119
|
+
case 'bottom':
|
|
120
|
+
this._state = Position.Bottom;
|
|
121
|
+
break;
|
|
122
|
+
case 'right':
|
|
123
|
+
this._state = Position.Right;
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
this._state = Position.Center;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
calculateQuadrant(overlayType, xp, yp) {
|
|
131
|
+
switch (overlayType) {
|
|
132
|
+
case 'all':
|
|
133
|
+
if (xp < 20) {
|
|
134
|
+
return 'left';
|
|
135
|
+
}
|
|
136
|
+
if (xp > 80) {
|
|
137
|
+
return 'right';
|
|
138
|
+
}
|
|
139
|
+
if (yp < 20) {
|
|
140
|
+
return 'top';
|
|
141
|
+
}
|
|
142
|
+
if (yp > 80) {
|
|
143
|
+
return 'bottom';
|
|
144
|
+
}
|
|
145
|
+
break;
|
|
146
|
+
case 'vertical':
|
|
147
|
+
if (yp < 50) {
|
|
148
|
+
return 'top';
|
|
149
|
+
}
|
|
150
|
+
return 'bottom';
|
|
151
|
+
case 'horizontal':
|
|
152
|
+
if (xp < 50) {
|
|
153
|
+
return 'left';
|
|
154
|
+
}
|
|
155
|
+
return 'right';
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
135
159
|
removeDropTarget() {
|
|
136
160
|
if (this.target) {
|
|
137
161
|
this._state = undefined;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { CompositeDisposable
|
|
1
|
+
import { CompositeDisposable } from '../../../lifecycle';
|
|
2
2
|
import { addDisposableListener } from '../../../events';
|
|
3
|
-
import { toggleClass } from '../../../dom';
|
|
4
3
|
export class WrappedTab {
|
|
5
4
|
constructor(renderer) {
|
|
6
5
|
this.renderer = renderer;
|
|
@@ -55,9 +54,6 @@ export class DefaultTab extends CompositeDisposable {
|
|
|
55
54
|
this._isGroupActive = false;
|
|
56
55
|
//
|
|
57
56
|
this.params = {};
|
|
58
|
-
//
|
|
59
|
-
this.isDirtyDisposable = new MutableDisposable();
|
|
60
|
-
this.addDisposables(this.isDirtyDisposable);
|
|
61
57
|
this._element = document.createElement('div');
|
|
62
58
|
this._element.className = 'default-tab';
|
|
63
59
|
//
|
|
@@ -102,10 +98,6 @@ export class DefaultTab extends CompositeDisposable {
|
|
|
102
98
|
init(params) {
|
|
103
99
|
this.params = params;
|
|
104
100
|
this._content.textContent = params.title;
|
|
105
|
-
this.isDirtyDisposable.value = this.params.api.onDidDirtyChange((event) => {
|
|
106
|
-
const isDirty = event;
|
|
107
|
-
toggleClass(this.action, 'dirty', isDirty);
|
|
108
|
-
});
|
|
109
101
|
if (!this.params.suppressClosable) {
|
|
110
102
|
addDisposableListener(this.action, 'click', (ev) => {
|
|
111
103
|
ev.preventDefault(); //
|
|
@@ -29,7 +29,9 @@ export class DefaultGroupPanelView {
|
|
|
29
29
|
this.tab.init(params);
|
|
30
30
|
}
|
|
31
31
|
updateParentGroup(group, isPanelVisible) {
|
|
32
|
-
|
|
32
|
+
var _a;
|
|
33
|
+
this._content.updateParentGroup(group, isPanelVisible);
|
|
34
|
+
(_a = this._tab) === null || _a === void 0 ? void 0 : _a.updateParentGroup(group, isPanelVisible);
|
|
33
35
|
}
|
|
34
36
|
layout(width, height) {
|
|
35
37
|
this.content.layout(width, height);
|
|
@@ -6,9 +6,10 @@ import { IWatermarkRenderer } from '../groupview/types';
|
|
|
6
6
|
import { IPanelDeserializer } from './deserializer';
|
|
7
7
|
import { AddGroupOptions, AddPanelOptions, DockviewOptions as DockviewComponentOptions, MovementOptions, TabContextMenuEvent } from './options';
|
|
8
8
|
import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
|
|
9
|
+
import { DockviewApi } from '../api/component.api';
|
|
9
10
|
import { LayoutMouseEvent } from '../groupview/tab';
|
|
10
11
|
import { Orientation } from '../splitview/core/splitview';
|
|
11
|
-
import { GroupOptions, GroupPanelViewState } from '../groupview/groupview';
|
|
12
|
+
import { GroupOptions, GroupPanelViewState, GroupviewDropEvent } from '../groupview/groupview';
|
|
12
13
|
import { GroupviewPanel } from '../groupview/groupviewPanel';
|
|
13
14
|
export interface PanelReference {
|
|
14
15
|
update: (event: {
|
|
@@ -33,11 +34,15 @@ export interface SerializedDockview {
|
|
|
33
34
|
tabHeight?: number;
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents'>;
|
|
37
|
+
export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay'>;
|
|
38
|
+
export interface DockviewDropEvent extends GroupviewDropEvent {
|
|
39
|
+
api: DockviewApi;
|
|
40
|
+
}
|
|
37
41
|
export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
|
|
38
42
|
readonly activePanel: IGroupPanel | undefined;
|
|
39
43
|
readonly totalPanels: number;
|
|
40
44
|
readonly panels: IGroupPanel[];
|
|
45
|
+
readonly onDidDrop: Event<DockviewDropEvent>;
|
|
41
46
|
tabHeight: number | undefined;
|
|
42
47
|
deserializer: IPanelDeserializer | undefined;
|
|
43
48
|
updateOptions(options: DockviewComponentUpdateOptions): void;
|
|
@@ -51,7 +56,7 @@ export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
|
|
|
51
56
|
fireMouseEvent(event: LayoutMouseEvent): void;
|
|
52
57
|
createWatermarkComponent(): IWatermarkRenderer;
|
|
53
58
|
addEmptyGroup(options?: AddGroupOptions): void;
|
|
54
|
-
closeAllGroups
|
|
59
|
+
closeAllGroups(): void;
|
|
55
60
|
onTabInteractionEvent: Event<LayoutMouseEvent>;
|
|
56
61
|
onTabContextMenu: Event<TabContextMenuEvent>;
|
|
57
62
|
moveToNext(options?: MovementOptions): void;
|
|
@@ -60,19 +65,29 @@ export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
|
|
|
60
65
|
focus(): void;
|
|
61
66
|
toJSON(): SerializedDockview;
|
|
62
67
|
fromJSON(data: SerializedDockview): void;
|
|
68
|
+
readonly onDidRemovePanel: Event<IGroupPanel>;
|
|
69
|
+
readonly onDidAddPanel: Event<IGroupPanel>;
|
|
70
|
+
readonly onDidLayoutfromJSON: Event<void>;
|
|
71
|
+
readonly onDidActivePanelChange: Event<IGroupPanel | undefined>;
|
|
63
72
|
}
|
|
64
73
|
export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implements IDockviewComponent {
|
|
65
|
-
private
|
|
66
|
-
private
|
|
67
|
-
private
|
|
74
|
+
private _deserializer;
|
|
75
|
+
private _api;
|
|
76
|
+
private _options;
|
|
68
77
|
private readonly _onTabInteractionEvent;
|
|
69
78
|
readonly onTabInteractionEvent: Event<LayoutMouseEvent>;
|
|
70
79
|
private readonly _onTabContextMenu;
|
|
71
80
|
readonly onTabContextMenu: Event<TabContextMenuEvent>;
|
|
72
|
-
private
|
|
73
|
-
|
|
74
|
-
private
|
|
75
|
-
|
|
81
|
+
private readonly _onDidDrop;
|
|
82
|
+
readonly onDidDrop: Event<DockviewDropEvent>;
|
|
83
|
+
private readonly _onDidRemovePanel;
|
|
84
|
+
readonly onDidRemovePanel: Event<IGroupPanel>;
|
|
85
|
+
private readonly _onDidAddPanel;
|
|
86
|
+
readonly onDidAddPanel: Event<IGroupPanel>;
|
|
87
|
+
private readonly _onDidLayoutfromJSON;
|
|
88
|
+
readonly onDidLayoutfromJSON: Event<void>;
|
|
89
|
+
private readonly _onDidActivePanelChange;
|
|
90
|
+
readonly onDidActivePanelChange: Event<IGroupPanel | undefined>;
|
|
76
91
|
get totalPanels(): number;
|
|
77
92
|
get panels(): IGroupPanel[];
|
|
78
93
|
get deserializer(): IPanelDeserializer | undefined;
|
|
@@ -88,8 +103,6 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
|
|
|
88
103
|
setActivePanel(panel: IGroupPanel): void;
|
|
89
104
|
moveToNext(options?: MovementOptions): void;
|
|
90
105
|
moveToPrevious(options?: MovementOptions): void;
|
|
91
|
-
private registerPanel;
|
|
92
|
-
private unregisterPanel;
|
|
93
106
|
/**
|
|
94
107
|
* Serialize the current state of the layout
|
|
95
108
|
*
|
|
@@ -97,7 +110,7 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
|
|
|
97
110
|
*/
|
|
98
111
|
toJSON(): SerializedDockview;
|
|
99
112
|
fromJSON(data: SerializedDockview): void;
|
|
100
|
-
closeAllGroups():
|
|
113
|
+
closeAllGroups(): void;
|
|
101
114
|
fireMouseEvent(event: LayoutMouseEvent): void;
|
|
102
115
|
addPanel(options: AddPanelOptions): IGroupPanel;
|
|
103
116
|
removePanel(panel: IGroupPanel): void;
|
|
@@ -107,15 +120,10 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
|
|
|
107
120
|
moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
|
|
108
121
|
doSetGroupActive(group: GroupviewPanel | undefined, skipFocus?: boolean): void;
|
|
109
122
|
createGroup(options?: GroupOptions): GroupviewPanel;
|
|
110
|
-
dispose(): void;
|
|
111
|
-
/**
|
|
112
|
-
* Ensure the local copy of the layout state is up-to-date
|
|
113
|
-
*/
|
|
114
|
-
private syncConfigs;
|
|
115
123
|
private _addPanel;
|
|
116
124
|
private createContentComponent;
|
|
117
125
|
private createTabComponent;
|
|
118
126
|
private addPanelToNewGroup;
|
|
119
127
|
private findGroup;
|
|
120
|
-
|
|
128
|
+
dispose(): void;
|
|
121
129
|
}
|