dockview-core 1.17.2 → 2.0.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 +1 -1
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +10 -8
- package/dist/cjs/api/dockviewGroupPanelApi.js +1 -0
- package/dist/cjs/api/dockviewPanelApi.d.ts +6 -14
- package/dist/cjs/api/dockviewPanelApi.js +5 -3
- package/dist/cjs/dnd/abstractDragHandler.js +1 -1
- package/dist/cjs/dnd/dnd.d.ts +2 -2
- package/dist/cjs/dnd/droptarget.js +4 -4
- package/dist/cjs/dockview/components/panel/content.d.ts +2 -2
- package/dist/cjs/dockview/components/panel/content.js +3 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
- package/dist/cjs/dockview/components/tab/tab.js +4 -4
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -9
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -1
- package/dist/cjs/dockview/components/watermark/watermark.js +6 -6
- package/dist/cjs/dockview/dockviewComponent.d.ts +2 -3
- package/dist/cjs/dockview/dockviewComponent.js +66 -35
- package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +3 -3
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +7 -7
- package/dist/cjs/dockview/dockviewPanel.d.ts +4 -4
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -1
- package/dist/cjs/dockview/options.d.ts +8 -0
- package/dist/cjs/dom.d.ts +11 -1
- package/dist/cjs/dom.js +19 -1
- package/dist/cjs/gridview/basePanelView.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.js +1 -1
- package/dist/cjs/gridview/gridview.js +2 -2
- package/dist/cjs/gridview/gridviewPanel.d.ts +4 -0
- package/dist/cjs/gridview/gridviewPanel.js +60 -32
- package/dist/cjs/gridview/leafNode.d.ts +1 -1
- package/dist/cjs/index.d.ts +8 -9
- package/dist/cjs/index.js +14 -7
- package/dist/cjs/overlay/overlay.d.ts +3 -3
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +5 -3
- package/dist/cjs/paneview/paneview.d.ts +3 -3
- package/dist/cjs/paneview/paneview.js +3 -3
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -2
- package/dist/cjs/paneview/paneviewPanel.d.ts +2 -2
- package/dist/cjs/paneview/paneviewPanel.js +3 -3
- package/dist/cjs/popoutWindow.js +23 -16
- package/dist/cjs/splitview/splitview.d.ts +6 -6
- package/dist/cjs/splitview/splitview.js +18 -17
- package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
- package/dist/cjs/splitview/viewItem.d.ts +1 -1
- package/dist/cjs/svg.js +1 -1
- package/dist/dockview-core.amd.js +241 -169
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +240 -168
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +241 -169
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +242 -168
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +241 -169
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +240 -168
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +1 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +10 -8
- package/dist/esm/api/dockviewGroupPanelApi.js +1 -0
- package/dist/esm/api/dockviewPanelApi.d.ts +6 -14
- package/dist/esm/api/dockviewPanelApi.js +5 -3
- package/dist/esm/dnd/abstractDragHandler.js +1 -1
- package/dist/esm/dnd/dnd.d.ts +2 -2
- package/dist/esm/dnd/droptarget.js +4 -4
- package/dist/esm/dockview/components/panel/content.d.ts +2 -2
- package/dist/esm/dockview/components/panel/content.js +4 -2
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
- package/dist/esm/dockview/components/tab/tab.js +4 -4
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -9
- package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -1
- package/dist/esm/dockview/components/watermark/watermark.js +6 -6
- package/dist/esm/dockview/dockviewComponent.d.ts +2 -3
- package/dist/esm/dockview/dockviewComponent.js +65 -34
- package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +3 -3
- package/dist/esm/dockview/dockviewGroupPanelModel.js +7 -7
- package/dist/esm/dockview/dockviewPanel.d.ts +4 -4
- package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -1
- package/dist/esm/dockview/options.d.ts +8 -0
- package/dist/esm/dom.d.ts +11 -1
- package/dist/esm/dom.js +14 -0
- package/dist/esm/gridview/basePanelView.d.ts +1 -1
- package/dist/esm/gridview/branchNode.d.ts +1 -1
- package/dist/esm/gridview/branchNode.js +1 -1
- package/dist/esm/gridview/gridview.js +2 -2
- package/dist/esm/gridview/gridviewPanel.d.ts +4 -0
- package/dist/esm/gridview/gridviewPanel.js +40 -12
- package/dist/esm/gridview/leafNode.d.ts +1 -1
- package/dist/esm/index.d.ts +8 -9
- package/dist/esm/index.js +5 -6
- package/dist/esm/overlay/overlay.d.ts +3 -3
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +5 -3
- package/dist/esm/paneview/paneview.d.ts +3 -3
- package/dist/esm/paneview/paneview.js +3 -3
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -2
- package/dist/esm/paneview/paneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/paneviewPanel.js +3 -3
- package/dist/esm/popoutWindow.js +24 -17
- package/dist/esm/splitview/splitview.d.ts +6 -6
- package/dist/esm/splitview/splitview.js +18 -17
- package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
- package/dist/esm/splitview/viewItem.d.ts +1 -1
- package/dist/esm/svg.js +1 -1
- package/dist/styles/dockview.css +114 -125
- package/package.json +1 -1
|
@@ -512,7 +512,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
|
|
|
512
512
|
id: string;
|
|
513
513
|
window: Window;
|
|
514
514
|
}) => void;
|
|
515
|
-
}): Promise<
|
|
515
|
+
}): Promise<boolean>;
|
|
516
516
|
setGap(gap: number | undefined): void;
|
|
517
517
|
updateOptions(options: Partial<DockviewComponentOptions>): void;
|
|
518
518
|
/**
|
|
@@ -4,6 +4,14 @@ import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
|
|
|
4
4
|
import { DockviewGroupChangeEvent, DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
|
|
5
5
|
import { Emitter, Event } from '../events';
|
|
6
6
|
import { GridviewPanelApi, GridviewPanelApiImpl } from './gridviewPanelApi';
|
|
7
|
+
export interface DockviewGroupMoveParams {
|
|
8
|
+
group?: DockviewGroupPanel;
|
|
9
|
+
position?: Position;
|
|
10
|
+
/**
|
|
11
|
+
* The index to place the panel within a group, only applicable if the placement is within an existing group
|
|
12
|
+
*/
|
|
13
|
+
index?: number;
|
|
14
|
+
}
|
|
7
15
|
export interface DockviewGroupPanelApi extends GridviewPanelApi {
|
|
8
16
|
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
|
|
9
17
|
readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
|
|
@@ -12,10 +20,7 @@ export interface DockviewGroupPanelApi extends GridviewPanelApi {
|
|
|
12
20
|
* If you require the Window object
|
|
13
21
|
*/
|
|
14
22
|
getWindow(): Window;
|
|
15
|
-
moveTo(options:
|
|
16
|
-
group?: DockviewGroupPanel;
|
|
17
|
-
position?: Position;
|
|
18
|
-
}): void;
|
|
23
|
+
moveTo(options: DockviewGroupMoveParams): void;
|
|
19
24
|
maximize(): void;
|
|
20
25
|
isMaximized(): boolean;
|
|
21
26
|
exitMaximized(): void;
|
|
@@ -36,10 +41,7 @@ export declare class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
36
41
|
constructor(id: string, accessor: DockviewComponent);
|
|
37
42
|
close(): void;
|
|
38
43
|
getWindow(): Window;
|
|
39
|
-
moveTo(options:
|
|
40
|
-
group?: DockviewGroupPanel;
|
|
41
|
-
position?: Position;
|
|
42
|
-
}): void;
|
|
44
|
+
moveTo(options: DockviewGroupMoveParams): void;
|
|
43
45
|
maximize(): void;
|
|
44
46
|
isMaximized(): boolean;
|
|
45
47
|
exitMaximized(): void;
|
|
@@ -3,9 +3,8 @@ import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
|
|
|
3
3
|
import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
|
|
4
4
|
import { DockviewPanel } from '../dockview/dockviewPanel';
|
|
5
5
|
import { DockviewComponent } from '../dockview/dockviewComponent';
|
|
6
|
-
import { Position } from '../dnd/droptarget';
|
|
7
6
|
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
|
8
|
-
import { DockviewGroupPanelFloatingChangeEvent } from './dockviewGroupPanelApi';
|
|
7
|
+
import { DockviewGroupMoveParams, DockviewGroupPanelFloatingChangeEvent } from './dockviewGroupPanelApi';
|
|
9
8
|
import { DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
|
|
10
9
|
export interface TitleEvent {
|
|
11
10
|
readonly title: string;
|
|
@@ -18,6 +17,7 @@ export interface ActiveGroupEvent {
|
|
|
18
17
|
}
|
|
19
18
|
export interface GroupChangedEvent {
|
|
20
19
|
}
|
|
20
|
+
export type DockviewPanelMoveParams = DockviewGroupMoveParams;
|
|
21
21
|
export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' | 'onDidConstraintsChange' | 'setConstraints'> {
|
|
22
22
|
/**
|
|
23
23
|
* The id of the tab component renderer
|
|
@@ -38,11 +38,7 @@ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' |
|
|
|
38
38
|
close(): void;
|
|
39
39
|
setTitle(title: string): void;
|
|
40
40
|
setRenderer(renderer: DockviewPanelRenderer): void;
|
|
41
|
-
moveTo(options:
|
|
42
|
-
group: DockviewGroupPanel;
|
|
43
|
-
position?: Position;
|
|
44
|
-
index?: number;
|
|
45
|
-
}): void;
|
|
41
|
+
moveTo(options: DockviewPanelMoveParams): void;
|
|
46
42
|
maximize(): void;
|
|
47
43
|
isMaximized(): boolean;
|
|
48
44
|
exitMaximized(): void;
|
|
@@ -52,10 +48,10 @@ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' |
|
|
|
52
48
|
getWindow(): Window;
|
|
53
49
|
}
|
|
54
50
|
export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implements DockviewPanelApi {
|
|
55
|
-
private panel;
|
|
51
|
+
private readonly panel;
|
|
56
52
|
private readonly accessor;
|
|
57
53
|
private _group;
|
|
58
|
-
private _tabComponent;
|
|
54
|
+
private readonly _tabComponent;
|
|
59
55
|
readonly _onDidTitleChange: Emitter<TitleEvent>;
|
|
60
56
|
readonly onDidTitleChange: Event<TitleEvent>;
|
|
61
57
|
private readonly _onDidActiveGroupChange;
|
|
@@ -76,11 +72,7 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
|
|
|
76
72
|
get tabComponent(): string | undefined;
|
|
77
73
|
constructor(panel: DockviewPanel, group: DockviewGroupPanel, accessor: DockviewComponent, component: string, tabComponent?: string);
|
|
78
74
|
getWindow(): Window;
|
|
79
|
-
moveTo(options:
|
|
80
|
-
group: DockviewGroupPanel;
|
|
81
|
-
position?: Position;
|
|
82
|
-
index?: number;
|
|
83
|
-
}): void;
|
|
75
|
+
moveTo(options: DockviewPanelMoveParams): void;
|
|
84
76
|
setTitle(title: string): void;
|
|
85
77
|
setRenderer(renderer: DockviewPanelRenderer): void;
|
|
86
78
|
close(): void;
|
|
@@ -56,12 +56,14 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
56
56
|
return this.group.api.getWindow();
|
|
57
57
|
}
|
|
58
58
|
moveTo(options) {
|
|
59
|
-
var _a;
|
|
59
|
+
var _a, _b;
|
|
60
60
|
this.accessor.moveGroupOrPanel({
|
|
61
61
|
from: { groupId: this._group.id, panelId: this.panel.id },
|
|
62
62
|
to: {
|
|
63
|
-
group: options.group,
|
|
64
|
-
position:
|
|
63
|
+
group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
|
|
64
|
+
position: options.group
|
|
65
|
+
? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
|
|
66
|
+
: 'center',
|
|
65
67
|
index: options.index,
|
|
66
68
|
},
|
|
67
69
|
});
|
|
@@ -44,7 +44,7 @@ export class DragHandler extends CompositeDisposable {
|
|
|
44
44
|
* dnd logic. You can see the code at
|
|
45
45
|
* https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
|
|
46
46
|
*/
|
|
47
|
-
event.dataTransfer.setData('text/plain', '
|
|
47
|
+
event.dataTransfer.setData('text/plain', '');
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}), addDisposableListener(this.el, 'dragend', () => {
|
package/dist/esm/dnd/dnd.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export interface IDragAndDropObserverCallbacks {
|
|
|
7
7
|
onDragOver?: (e: DragEvent) => void;
|
|
8
8
|
}
|
|
9
9
|
export declare class DragAndDropObserver extends CompositeDisposable {
|
|
10
|
-
private element;
|
|
11
|
-
private callbacks;
|
|
10
|
+
private readonly element;
|
|
11
|
+
private readonly callbacks;
|
|
12
12
|
private target;
|
|
13
13
|
constructor(element: HTMLElement, callbacks: IDragAndDropObserverCallbacks);
|
|
14
14
|
onDragEnter(e: DragEvent): void;
|
|
@@ -117,12 +117,12 @@ export class Droptarget extends CompositeDisposable {
|
|
|
117
117
|
this.markAsUsed(e);
|
|
118
118
|
if (!this.targetElement) {
|
|
119
119
|
this.targetElement = document.createElement('div');
|
|
120
|
-
this.targetElement.className = 'drop-target-dropzone';
|
|
120
|
+
this.targetElement.className = 'dv-drop-target-dropzone';
|
|
121
121
|
this.overlayElement = document.createElement('div');
|
|
122
|
-
this.overlayElement.className = 'drop-target-selection';
|
|
122
|
+
this.overlayElement.className = 'dv-drop-target-selection';
|
|
123
123
|
this._state = 'center';
|
|
124
124
|
this.targetElement.appendChild(this.overlayElement);
|
|
125
|
-
this.element.classList.add('drop-target');
|
|
125
|
+
this.element.classList.add('dv-drop-target');
|
|
126
126
|
this.element.append(this.targetElement);
|
|
127
127
|
}
|
|
128
128
|
this.toggleClasses(quadrant, width, height);
|
|
@@ -260,7 +260,7 @@ export class Droptarget extends CompositeDisposable {
|
|
|
260
260
|
this.element.removeChild(this.targetElement);
|
|
261
261
|
this.targetElement = undefined;
|
|
262
262
|
this.overlayElement = undefined;
|
|
263
|
-
this.element.classList.remove('drop-target');
|
|
263
|
+
this.element.classList.remove('dv-drop-target');
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
266
|
}
|
|
@@ -21,9 +21,9 @@ export interface IContentContainer extends IDisposable {
|
|
|
21
21
|
export declare class ContentContainer extends CompositeDisposable implements IContentContainer {
|
|
22
22
|
private readonly accessor;
|
|
23
23
|
private readonly group;
|
|
24
|
-
private _element;
|
|
24
|
+
private readonly _element;
|
|
25
25
|
private panel;
|
|
26
|
-
private disposable;
|
|
26
|
+
private readonly disposable;
|
|
27
27
|
private readonly _onDidFocus;
|
|
28
28
|
readonly onDidFocus: Event<void>;
|
|
29
29
|
private readonly _onDidBlur;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';
|
|
2
|
-
import { Emitter
|
|
2
|
+
import { Emitter } from '../../../events';
|
|
3
3
|
import { trackFocus } from '../../../dom';
|
|
4
4
|
import { Droptarget } from '../../../dnd/droptarget';
|
|
5
5
|
import { getPanelData } from '../../../dnd/dataTransfer';
|
|
@@ -17,7 +17,7 @@ export class ContentContainer extends CompositeDisposable {
|
|
|
17
17
|
this._onDidBlur = new Emitter();
|
|
18
18
|
this.onDidBlur = this._onDidBlur.event;
|
|
19
19
|
this._element = document.createElement('div');
|
|
20
|
-
this._element.className = 'content-container';
|
|
20
|
+
this._element.className = 'dv-content-container';
|
|
21
21
|
this._element.tabIndex = -1;
|
|
22
22
|
this.addDisposables(this._onDidFocus, this._onDidBlur);
|
|
23
23
|
this.dropTarget = new Droptarget(this.element, {
|
|
@@ -90,6 +90,8 @@ export class ContentContainer extends CompositeDisposable {
|
|
|
90
90
|
referenceContainer: this,
|
|
91
91
|
});
|
|
92
92
|
break;
|
|
93
|
+
default:
|
|
94
|
+
throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
|
|
93
95
|
}
|
|
94
96
|
if (doRender) {
|
|
95
97
|
const focusTracker = trackFocus(container);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CompositeDisposable } from '../../../lifecycle';
|
|
2
2
|
import { ITabRenderer, GroupPanelPartInitParameters } from '../../types';
|
|
3
3
|
export declare class DefaultTab extends CompositeDisposable implements ITabRenderer {
|
|
4
|
-
private _element;
|
|
5
|
-
private _content;
|
|
6
|
-
private action;
|
|
4
|
+
private readonly _element;
|
|
5
|
+
private readonly _content;
|
|
6
|
+
private readonly action;
|
|
7
7
|
private _title;
|
|
8
8
|
get element(): HTMLElement;
|
|
9
9
|
constructor();
|
|
@@ -38,10 +38,10 @@ export class Tab extends CompositeDisposable {
|
|
|
38
38
|
this._onDragStart = new Emitter();
|
|
39
39
|
this.onDragStart = this._onDragStart.event;
|
|
40
40
|
this._element = document.createElement('div');
|
|
41
|
-
this._element.className = 'tab';
|
|
41
|
+
this._element.className = 'dv-tab';
|
|
42
42
|
this._element.tabIndex = 0;
|
|
43
43
|
this._element.draggable = true;
|
|
44
|
-
toggleClass(this.element, 'inactive-tab', true);
|
|
44
|
+
toggleClass(this.element, 'dv-inactive-tab', true);
|
|
45
45
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
46
46
|
this.dropTarget = new Droptarget(this._element, {
|
|
47
47
|
acceptedTargetZones: ['center'],
|
|
@@ -74,8 +74,8 @@ export class Tab extends CompositeDisposable {
|
|
|
74
74
|
}), this.dropTarget);
|
|
75
75
|
}
|
|
76
76
|
setActive(isActive) {
|
|
77
|
-
toggleClass(this.element, 'active-tab', isActive);
|
|
78
|
-
toggleClass(this.element, 'inactive-tab', !isActive);
|
|
77
|
+
toggleClass(this.element, 'dv-active-tab', isActive);
|
|
78
|
+
toggleClass(this.element, 'dv-inactive-tab', !isActive);
|
|
79
79
|
}
|
|
80
80
|
setContent(part) {
|
|
81
81
|
if (this.content) {
|
|
@@ -92,16 +92,16 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
92
92
|
this._onWillShowOverlay = new Emitter();
|
|
93
93
|
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
94
94
|
this._element = document.createElement('div');
|
|
95
|
-
this._element.className = 'tabs-and-actions-container';
|
|
95
|
+
this._element.className = 'dv-tabs-and-actions-container';
|
|
96
96
|
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
97
97
|
this.rightActionsContainer = document.createElement('div');
|
|
98
|
-
this.rightActionsContainer.className = 'right-actions-container';
|
|
98
|
+
this.rightActionsContainer.className = 'dv-right-actions-container';
|
|
99
99
|
this.leftActionsContainer = document.createElement('div');
|
|
100
|
-
this.leftActionsContainer.className = 'left-actions-container';
|
|
100
|
+
this.leftActionsContainer.className = 'dv-left-actions-container';
|
|
101
101
|
this.preActionsContainer = document.createElement('div');
|
|
102
|
-
this.preActionsContainer.className = 'pre-actions-container';
|
|
102
|
+
this.preActionsContainer.className = 'dv-pre-actions-container';
|
|
103
103
|
this.tabContainer = document.createElement('div');
|
|
104
|
-
this.tabContainer.className = 'tabs-container';
|
|
104
|
+
this.tabContainer.className = 'dv-tabs-container';
|
|
105
105
|
this.voidContainer = new VoidContainer(this.accessor, this.group);
|
|
106
106
|
this._element.appendChild(this.preActionsContainer);
|
|
107
107
|
this._element.appendChild(this.tabContainer);
|
|
@@ -190,14 +190,10 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
190
190
|
});
|
|
191
191
|
}
|
|
192
192
|
openPanel(panel, index = this.tabs.length) {
|
|
193
|
-
var _a;
|
|
194
193
|
if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
|
|
195
194
|
return;
|
|
196
195
|
}
|
|
197
196
|
const tab = new Tab(panel, this.accessor, this.group);
|
|
198
|
-
if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
|
|
199
|
-
throw new Error('invalid header component');
|
|
200
|
-
}
|
|
201
197
|
tab.setContent(panel.view.tab);
|
|
202
198
|
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
203
199
|
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
@@ -17,7 +17,7 @@ export class VoidContainer extends CompositeDisposable {
|
|
|
17
17
|
this._onDragStart = new Emitter();
|
|
18
18
|
this.onDragStart = this._onDragStart.event;
|
|
19
19
|
this._element = document.createElement('div');
|
|
20
|
-
this._element.className = 'void-container';
|
|
20
|
+
this._element.className = 'dv-void-container';
|
|
21
21
|
this._element.tabIndex = 0;
|
|
22
22
|
this._element.draggable = true;
|
|
23
23
|
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IWatermarkRenderer, WatermarkRendererInitParameters } from '../../types';
|
|
2
2
|
import { CompositeDisposable } from '../../../lifecycle';
|
|
3
3
|
export declare class Watermark extends CompositeDisposable implements IWatermarkRenderer {
|
|
4
|
-
private _element;
|
|
4
|
+
private readonly _element;
|
|
5
5
|
private _group;
|
|
6
6
|
private _api;
|
|
7
7
|
get element(): HTMLElement;
|
|
@@ -9,19 +9,19 @@ export class Watermark extends CompositeDisposable {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super();
|
|
11
11
|
this._element = document.createElement('div');
|
|
12
|
-
this._element.className = 'watermark';
|
|
12
|
+
this._element.className = 'dv-watermark';
|
|
13
13
|
const title = document.createElement('div');
|
|
14
|
-
title.className = 'watermark-title';
|
|
14
|
+
title.className = 'dv-watermark-title';
|
|
15
15
|
const emptySpace = document.createElement('span');
|
|
16
16
|
emptySpace.style.flexGrow = '1';
|
|
17
17
|
const content = document.createElement('div');
|
|
18
|
-
content.className = 'watermark-content';
|
|
18
|
+
content.className = 'dv-watermark-content';
|
|
19
19
|
this._element.appendChild(title);
|
|
20
20
|
this._element.appendChild(content);
|
|
21
21
|
const actionsContainer = document.createElement('div');
|
|
22
|
-
actionsContainer.className = 'actions-container';
|
|
22
|
+
actionsContainer.className = 'dv-actions-container';
|
|
23
23
|
const closeAnchor = document.createElement('div');
|
|
24
|
-
closeAnchor.className = 'close-action';
|
|
24
|
+
closeAnchor.className = 'dv-close-action';
|
|
25
25
|
closeAnchor.appendChild(createCloseButton());
|
|
26
26
|
actionsContainer.appendChild(closeAnchor);
|
|
27
27
|
title.appendChild(emptySpace);
|
|
@@ -41,6 +41,6 @@ export class Watermark extends CompositeDisposable {
|
|
|
41
41
|
}
|
|
42
42
|
render() {
|
|
43
43
|
const isOneGroup = !!(this._api && this._api.size <= 1);
|
|
44
|
-
toggleClass(this.element, 'has-actions', isOneGroup);
|
|
44
|
+
toggleClass(this.element, 'dv-has-actions', isOneGroup);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -129,7 +129,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
|
|
|
129
129
|
id: string;
|
|
130
130
|
window: Window;
|
|
131
131
|
}) => void;
|
|
132
|
-
}): Promise<
|
|
132
|
+
}): Promise<boolean>;
|
|
133
133
|
}
|
|
134
134
|
export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
|
|
135
135
|
private readonly nextGroupId;
|
|
@@ -180,7 +180,6 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
180
180
|
get floatingGroups(): DockviewFloatingGroupPanel[];
|
|
181
181
|
constructor(parentElement: HTMLElement, options: DockviewComponentOptions);
|
|
182
182
|
addPopoutGroup(itemToPopout: DockviewPanel | DockviewGroupPanel, options?: {
|
|
183
|
-
skipRemoveGroup?: boolean;
|
|
184
183
|
position?: Box;
|
|
185
184
|
popoutUrl?: string;
|
|
186
185
|
onDidOpen?: (event: {
|
|
@@ -192,7 +191,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
192
191
|
window: Window;
|
|
193
192
|
}) => void;
|
|
194
193
|
overridePopoutGroup?: DockviewGroupPanel;
|
|
195
|
-
}): Promise<
|
|
194
|
+
}): Promise<boolean>;
|
|
196
195
|
addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, options?: FloatingGroupOptionsInternal): void;
|
|
197
196
|
private orthogonalize;
|
|
198
197
|
updateOptions(options: Partial<DockviewComponentOptions>): void;
|
|
@@ -256,9 +256,6 @@ export class DockviewComponent extends BaseGrid {
|
|
|
256
256
|
}
|
|
257
257
|
const box = getBox();
|
|
258
258
|
const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();
|
|
259
|
-
if (itemToPopout.api.location.type === 'grid') {
|
|
260
|
-
itemToPopout.api.setVisible(false);
|
|
261
|
-
}
|
|
262
259
|
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
263
260
|
theme !== null && theme !== void 0 ? theme : '', {
|
|
264
261
|
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
@@ -277,11 +274,11 @@ export class DockviewComponent extends BaseGrid {
|
|
|
277
274
|
.then((popoutContainer) => {
|
|
278
275
|
var _a;
|
|
279
276
|
if (_window.isDisposed) {
|
|
280
|
-
return;
|
|
277
|
+
return false;
|
|
281
278
|
}
|
|
282
279
|
if (popoutContainer === null) {
|
|
283
280
|
popoutWindowDisposable.dispose();
|
|
284
|
-
return;
|
|
281
|
+
return false;
|
|
285
282
|
}
|
|
286
283
|
const gready = document.createElement('div');
|
|
287
284
|
gready.className = 'dv-overlay-render-container';
|
|
@@ -290,30 +287,40 @@ export class DockviewComponent extends BaseGrid {
|
|
|
290
287
|
? itemToPopout.group
|
|
291
288
|
: itemToPopout;
|
|
292
289
|
const referenceLocation = itemToPopout.api.location.type;
|
|
293
|
-
|
|
290
|
+
/**
|
|
291
|
+
* The group that is being added doesn't already exist within the DOM, the most likely occurance
|
|
292
|
+
* of this case is when being called from the `fromJSON(...)` method
|
|
293
|
+
*/
|
|
294
|
+
const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
|
|
295
|
+
const group = !isGroupAddedToDom
|
|
296
|
+
? referenceGroup
|
|
297
|
+
: (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
|
|
294
298
|
group.model.renderContainer = overlayRenderContainer;
|
|
295
|
-
|
|
299
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
300
|
+
if (!this._groups.has(group.api.id)) {
|
|
296
301
|
this._onDidAddGroup.fire(group);
|
|
297
302
|
}
|
|
298
|
-
if (
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
303
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
|
|
304
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
305
|
+
this.movingLock(() => {
|
|
306
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
307
|
+
group.model.openPanel(panel);
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
312
|
+
from: referenceGroup,
|
|
313
|
+
to: group,
|
|
314
|
+
}));
|
|
315
|
+
switch (referenceLocation) {
|
|
316
|
+
case 'grid':
|
|
317
|
+
referenceGroup.api.setVisible(false);
|
|
318
|
+
break;
|
|
319
|
+
case 'floating':
|
|
320
|
+
case 'popout':
|
|
321
|
+
this.removeGroup(referenceGroup);
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
317
324
|
}
|
|
318
325
|
}
|
|
319
326
|
popoutContainer.classList.add('dv-dockview');
|
|
@@ -324,6 +331,10 @@ export class DockviewComponent extends BaseGrid {
|
|
|
324
331
|
type: 'popout',
|
|
325
332
|
getWindow: () => _window.window,
|
|
326
333
|
};
|
|
334
|
+
if (isGroupAddedToDom &&
|
|
335
|
+
itemToPopout.api.location.type === 'grid') {
|
|
336
|
+
itemToPopout.api.setVisible(false);
|
|
337
|
+
}
|
|
327
338
|
this.doSetGroupAndPanelActive(group);
|
|
328
339
|
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
329
340
|
var _a;
|
|
@@ -338,9 +349,13 @@ export class DockviewComponent extends BaseGrid {
|
|
|
338
349
|
const value = {
|
|
339
350
|
window: _window,
|
|
340
351
|
popoutGroup: group,
|
|
341
|
-
referenceGroup:
|
|
342
|
-
?
|
|
343
|
-
:
|
|
352
|
+
referenceGroup: !isGroupAddedToDom
|
|
353
|
+
? undefined
|
|
354
|
+
: referenceGroup
|
|
355
|
+
? this.getPanel(referenceGroup.id)
|
|
356
|
+
? referenceGroup.id
|
|
357
|
+
: undefined
|
|
358
|
+
: undefined,
|
|
344
359
|
disposable: {
|
|
345
360
|
dispose: () => {
|
|
346
361
|
popoutWindowDisposable.dispose();
|
|
@@ -355,9 +370,10 @@ export class DockviewComponent extends BaseGrid {
|
|
|
355
370
|
* window dimensions
|
|
356
371
|
*/
|
|
357
372
|
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
358
|
-
group.layout(window.innerWidth, window.innerHeight);
|
|
373
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
359
374
|
}), overlayRenderContainer, Disposable.from(() => {
|
|
360
|
-
if (
|
|
375
|
+
if (isGroupAddedToDom &&
|
|
376
|
+
this.getPanel(referenceGroup.id)) {
|
|
361
377
|
this.movingLock(() => moveGroupWithoutDestroying({
|
|
362
378
|
from: group,
|
|
363
379
|
to: referenceGroup,
|
|
@@ -372,21 +388,27 @@ export class DockviewComponent extends BaseGrid {
|
|
|
372
388
|
}
|
|
373
389
|
}
|
|
374
390
|
else if (this.getPanel(group.id)) {
|
|
375
|
-
|
|
391
|
+
this.doRemoveGroup(group, {
|
|
376
392
|
skipDispose: true,
|
|
377
393
|
skipActive: true,
|
|
394
|
+
skipPopoutReturn: true,
|
|
378
395
|
});
|
|
396
|
+
const removedGroup = group;
|
|
379
397
|
removedGroup.model.renderContainer =
|
|
380
398
|
this.overlayRenderContainer;
|
|
381
399
|
removedGroup.model.location = { type: 'grid' };
|
|
382
400
|
returnedGroup = removedGroup;
|
|
401
|
+
this.doAddGroup(removedGroup, [0]);
|
|
402
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
383
403
|
}
|
|
384
404
|
}));
|
|
385
405
|
this._popoutGroups.push(value);
|
|
386
406
|
this.updateWatermark();
|
|
407
|
+
return true;
|
|
387
408
|
})
|
|
388
409
|
.catch((err) => {
|
|
389
410
|
console.error('dockview: failed to create popout window', err);
|
|
411
|
+
return false;
|
|
390
412
|
});
|
|
391
413
|
}
|
|
392
414
|
addFloatingGroup(item, options) {
|
|
@@ -490,7 +512,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
490
512
|
: (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
491
513
|
? undefined
|
|
492
514
|
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
493
|
-
const el = group.element.querySelector('.void-container');
|
|
515
|
+
const el = group.element.querySelector('.dv-void-container');
|
|
494
516
|
if (!el) {
|
|
495
517
|
throw new Error('failed to find drag handle');
|
|
496
518
|
}
|
|
@@ -775,7 +797,6 @@ export class DockviewComponent extends BaseGrid {
|
|
|
775
797
|
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
776
798
|
? this.getPanel(gridReferenceGroup)
|
|
777
799
|
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
778
|
-
skipRemoveGroup: true,
|
|
779
800
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
780
801
|
overridePopoutGroup: gridReferenceGroup
|
|
781
802
|
? group
|
|
@@ -793,6 +814,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
793
814
|
}
|
|
794
815
|
}
|
|
795
816
|
catch (err) {
|
|
817
|
+
console.error('dockview: failed to deserialize layout. Reverting changes', err);
|
|
796
818
|
/**
|
|
797
819
|
* Takes all the successfully created groups and remove all of their panels.
|
|
798
820
|
*/
|
|
@@ -860,11 +882,13 @@ export class DockviewComponent extends BaseGrid {
|
|
|
860
882
|
width: options.initialWidth,
|
|
861
883
|
height: options.initialHeight,
|
|
862
884
|
};
|
|
885
|
+
let index;
|
|
863
886
|
if (options.position) {
|
|
864
887
|
if (isPanelOptionsWithPanel(options.position)) {
|
|
865
888
|
const referencePanel = typeof options.position.referencePanel === 'string'
|
|
866
889
|
? this.getGroupPanel(options.position.referencePanel)
|
|
867
890
|
: options.position.referencePanel;
|
|
891
|
+
index = options.position.index;
|
|
868
892
|
if (!referencePanel) {
|
|
869
893
|
throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
|
|
870
894
|
}
|
|
@@ -875,6 +899,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
875
899
|
typeof options.position.referenceGroup === 'string'
|
|
876
900
|
? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
|
|
877
901
|
: options.position.referenceGroup;
|
|
902
|
+
index = options.position.index;
|
|
878
903
|
if (!referenceGroup) {
|
|
879
904
|
throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
|
|
880
905
|
}
|
|
@@ -885,6 +910,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
885
910
|
group.model.openPanel(panel, {
|
|
886
911
|
skipSetActive: options.inactive,
|
|
887
912
|
skipSetGroupActive: options.inactive,
|
|
913
|
+
index,
|
|
888
914
|
});
|
|
889
915
|
if (!options.inactive) {
|
|
890
916
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -914,6 +940,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
914
940
|
group.model.openPanel(panel, {
|
|
915
941
|
skipSetActive: options.inactive,
|
|
916
942
|
skipSetGroupActive: options.inactive,
|
|
943
|
+
index,
|
|
917
944
|
});
|
|
918
945
|
}
|
|
919
946
|
else if (referenceGroup.api.location.type === 'floating' ||
|
|
@@ -922,6 +949,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
922
949
|
referenceGroup.model.openPanel(panel, {
|
|
923
950
|
skipSetActive: options.inactive,
|
|
924
951
|
skipSetGroupActive: options.inactive,
|
|
952
|
+
index,
|
|
925
953
|
});
|
|
926
954
|
referenceGroup.api.setSize({
|
|
927
955
|
width: initial === null || initial === void 0 ? void 0 : initial.width,
|
|
@@ -942,6 +970,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
942
970
|
group.model.openPanel(panel, {
|
|
943
971
|
skipSetActive: options.inactive,
|
|
944
972
|
skipSetGroupActive: options.inactive,
|
|
973
|
+
index,
|
|
945
974
|
});
|
|
946
975
|
if (!options.inactive) {
|
|
947
976
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -960,6 +989,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
960
989
|
group.model.openPanel(panel, {
|
|
961
990
|
skipSetActive: options.inactive,
|
|
962
991
|
skipSetGroupActive: options.inactive,
|
|
992
|
+
index,
|
|
963
993
|
});
|
|
964
994
|
}
|
|
965
995
|
else {
|
|
@@ -970,6 +1000,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
970
1000
|
group.model.openPanel(panel, {
|
|
971
1001
|
skipSetActive: options.inactive,
|
|
972
1002
|
skipSetGroupActive: options.inactive,
|
|
1003
|
+
index,
|
|
973
1004
|
});
|
|
974
1005
|
if (!options.inactive) {
|
|
975
1006
|
this.doSetGroupAndPanelActive(group);
|