dockview-core 1.16.0 → 1.17.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 +6 -4
- package/dist/cjs/dnd/groupDragHandler.js +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +2 -2
- package/dist/cjs/dockview/components/tab/tab.js +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +2 -2
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -7
- package/dist/cjs/dockview/components/watermark/watermark.js +3 -18
- package/dist/cjs/dockview/deserializer.js +4 -0
- package/dist/cjs/dockview/dockviewComponent.d.ts +2 -0
- package/dist/cjs/dockview/dockviewComponent.js +77 -58
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +4 -0
- package/dist/cjs/dockview/dockviewGroupPanel.js +49 -2
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +0 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts +14 -1
- package/dist/cjs/dockview/dockviewPanel.js +36 -0
- package/dist/cjs/dockview/options.d.ts +16 -9
- package/dist/cjs/dockview/types.d.ts +5 -2
- package/dist/cjs/dom.d.ts +7 -0
- package/dist/cjs/dom.js +63 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -2
- package/dist/cjs/gridview/baseComponentGridview.js +30 -5
- package/dist/cjs/gridview/gridviewComponent.d.ts +2 -3
- package/dist/cjs/gridview/gridviewComponent.js +2 -2
- package/dist/cjs/gridview/gridviewPanel.d.ts +6 -0
- package/dist/cjs/overlay/overlay.js +6 -6
- package/dist/cjs/paneview/paneviewComponent.d.ts +1 -0
- package/dist/cjs/paneview/paneviewComponent.js +11 -3
- package/dist/cjs/splitview/splitviewComponent.d.ts +4 -4
- package/dist/cjs/splitview/splitviewComponent.js +13 -7
- package/dist/dockview-core.amd.js +231 -103
- 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 +230 -102
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +231 -103
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +231 -103
- 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 +231 -103
- 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 +230 -102
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +6 -4
- package/dist/esm/dnd/groupDragHandler.js +1 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +2 -2
- package/dist/esm/dockview/components/tab/tab.js +1 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -7
- package/dist/esm/dockview/components/watermark/watermark.js +3 -18
- package/dist/esm/dockview/deserializer.js +4 -0
- package/dist/esm/dockview/dockviewComponent.d.ts +2 -0
- package/dist/esm/dockview/dockviewComponent.js +76 -54
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +4 -0
- package/dist/esm/dockview/dockviewGroupPanel.js +33 -2
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -0
- package/dist/esm/dockview/dockviewGroupPanelModel.js +0 -1
- package/dist/esm/dockview/dockviewPanel.d.ts +14 -1
- package/dist/esm/dockview/dockviewPanel.js +20 -0
- package/dist/esm/dockview/options.d.ts +16 -9
- package/dist/esm/dockview/types.d.ts +5 -2
- package/dist/esm/dom.d.ts +7 -0
- package/dist/esm/dom.js +36 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -2
- package/dist/esm/gridview/baseComponentGridview.js +30 -5
- package/dist/esm/gridview/gridviewComponent.d.ts +2 -3
- package/dist/esm/gridview/gridviewComponent.js +2 -2
- package/dist/esm/gridview/gridviewPanel.d.ts +6 -0
- package/dist/esm/overlay/overlay.js +6 -6
- package/dist/esm/paneview/paneviewComponent.d.ts +1 -0
- package/dist/esm/paneview/paneviewComponent.js +11 -3
- package/dist/esm/splitview/splitviewComponent.d.ts +4 -4
- package/dist/esm/splitview/splitviewComponent.js +13 -7
- package/dist/styles/dockview.css +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ import { IDockviewPanel } from './dockviewPanel';
|
|
|
12
12
|
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
|
13
13
|
import { IGroupHeaderProps } from './framework';
|
|
14
14
|
import { FloatingGroupOptions } from './dockviewComponent';
|
|
15
|
+
import { Contraints } from '../gridview/gridviewPanel';
|
|
15
16
|
export interface IHeaderActionsRenderer extends IDisposable {
|
|
16
17
|
readonly element: HTMLElement;
|
|
17
18
|
init(params: IGroupHeaderProps): void;
|
|
@@ -71,19 +72,23 @@ export declare class DockviewUnhandledDragOverEvent implements DockviewDndOverla
|
|
|
71
72
|
accept(): void;
|
|
72
73
|
}
|
|
73
74
|
export declare const PROPERTY_KEYS: (keyof DockviewOptions)[];
|
|
75
|
+
export interface CreateComponentOptions {
|
|
76
|
+
/**
|
|
77
|
+
* The unqiue identifer of the component
|
|
78
|
+
*/
|
|
79
|
+
id: string;
|
|
80
|
+
/**
|
|
81
|
+
* The component name, this should determine what is rendered.
|
|
82
|
+
*/
|
|
83
|
+
name: string;
|
|
84
|
+
}
|
|
74
85
|
export interface DockviewFrameworkOptions {
|
|
75
86
|
defaultTabComponent?: string;
|
|
76
87
|
createRightHeaderActionComponent?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
77
88
|
createLeftHeaderActionComponent?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
78
89
|
createPrefixHeaderActionComponent?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
79
|
-
createTabComponent?: (options:
|
|
80
|
-
|
|
81
|
-
name: string;
|
|
82
|
-
}) => ITabRenderer | undefined;
|
|
83
|
-
createComponent: (options: {
|
|
84
|
-
id: string;
|
|
85
|
-
name: string;
|
|
86
|
-
}) => IContentRenderer;
|
|
90
|
+
createTabComponent?: (options: CreateComponentOptions) => ITabRenderer | undefined;
|
|
91
|
+
createComponent: (options: CreateComponentOptions) => IContentRenderer;
|
|
87
92
|
createWatermarkComponent?: () => IWatermarkRenderer;
|
|
88
93
|
}
|
|
89
94
|
export type DockviewComponentOptions = DockviewOptions & DockviewFrameworkOptions;
|
|
@@ -149,7 +154,9 @@ export type AddPanelOptions<P extends object = Parameters> = {
|
|
|
149
154
|
* Defaults to `false` which forces newly added panels to become active.
|
|
150
155
|
*/
|
|
151
156
|
inactive?: boolean;
|
|
152
|
-
|
|
157
|
+
initialWidth?: number;
|
|
158
|
+
initialHeight?: number;
|
|
159
|
+
} & Partial<AddPanelOptionsUnion> & Partial<Contraints>;
|
|
153
160
|
type AddGroupOptionsWithPanel = {
|
|
154
161
|
referencePanel: string | IDockviewPanel;
|
|
155
162
|
direction?: Omit<Direction, 'within'>;
|
|
@@ -2,7 +2,7 @@ import { DockviewPanelApi } from '../api/dockviewPanelApi';
|
|
|
2
2
|
import { PanelInitParameters, IPanel } from '../panel/types';
|
|
3
3
|
import { DockviewApi } from '../api/component.api';
|
|
4
4
|
import { Optional } from '../types';
|
|
5
|
-
import {
|
|
5
|
+
import { IDockviewGroupPanel } from './dockviewGroupPanel';
|
|
6
6
|
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
|
7
7
|
export interface HeaderPartInitParameters {
|
|
8
8
|
title: string;
|
|
@@ -19,7 +19,6 @@ type RendererMethodOptionalList = 'dispose' | 'update' | 'layout' | 'toJSON' | '
|
|
|
19
19
|
export interface IWatermarkRenderer extends Optional<Omit<IPanel, 'id' | 'init'>, RendererMethodOptionalList> {
|
|
20
20
|
readonly element: HTMLElement;
|
|
21
21
|
init: (params: WatermarkRendererInitParameters) => void;
|
|
22
|
-
updateParentGroup(group: DockviewGroupPanel, visible: boolean): void;
|
|
23
22
|
}
|
|
24
23
|
export interface ITabRenderer extends Optional<Omit<IPanel, 'id'>, RendererMethodOptionalList> {
|
|
25
24
|
readonly element: HTMLElement;
|
|
@@ -40,5 +39,9 @@ export interface GroupviewPanelState {
|
|
|
40
39
|
params?: {
|
|
41
40
|
[key: string]: any;
|
|
42
41
|
};
|
|
42
|
+
minimumWidth?: number;
|
|
43
|
+
minimumHeight?: number;
|
|
44
|
+
maximumWidth?: number;
|
|
45
|
+
maximumHeight?: number;
|
|
43
46
|
}
|
|
44
47
|
export {};
|
package/dist/esm/dom.d.ts
CHANGED
|
@@ -30,3 +30,10 @@ export declare function addTestId(element: HTMLElement, id: string): void;
|
|
|
30
30
|
export declare function disableIframePointEvents(): {
|
|
31
31
|
release: () => void;
|
|
32
32
|
};
|
|
33
|
+
export declare function getDockviewTheme(element: HTMLElement): string | undefined;
|
|
34
|
+
export declare class Classnames {
|
|
35
|
+
private readonly element;
|
|
36
|
+
private _classNames;
|
|
37
|
+
constructor(element: HTMLElement);
|
|
38
|
+
setClassNames(classNames: string): void;
|
|
39
|
+
}
|
package/dist/esm/dom.js
CHANGED
|
@@ -202,3 +202,39 @@ export function disableIframePointEvents() {
|
|
|
202
202
|
},
|
|
203
203
|
};
|
|
204
204
|
}
|
|
205
|
+
export function getDockviewTheme(element) {
|
|
206
|
+
function toClassList(element) {
|
|
207
|
+
const list = [];
|
|
208
|
+
for (let i = 0; i < element.classList.length; i++) {
|
|
209
|
+
list.push(element.classList.item(i));
|
|
210
|
+
}
|
|
211
|
+
return list;
|
|
212
|
+
}
|
|
213
|
+
let theme = undefined;
|
|
214
|
+
let parent = element;
|
|
215
|
+
while (parent !== null) {
|
|
216
|
+
theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));
|
|
217
|
+
if (typeof theme === 'string') {
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
parent = parent.parentElement;
|
|
221
|
+
}
|
|
222
|
+
return theme;
|
|
223
|
+
}
|
|
224
|
+
export class Classnames {
|
|
225
|
+
constructor(element) {
|
|
226
|
+
this.element = element;
|
|
227
|
+
this._classNames = [];
|
|
228
|
+
}
|
|
229
|
+
setClassNames(classNames) {
|
|
230
|
+
for (const className of this._classNames) {
|
|
231
|
+
toggleClass(this.element, className, false);
|
|
232
|
+
}
|
|
233
|
+
this._classNames = classNames
|
|
234
|
+
.split(' ')
|
|
235
|
+
.filter((v) => v.trim().length > 0);
|
|
236
|
+
for (const className of this._classNames) {
|
|
237
|
+
toggleClass(this.element, className, true);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
@@ -12,7 +12,6 @@ export interface BaseGridOptions {
|
|
|
12
12
|
readonly proportionalLayout: boolean;
|
|
13
13
|
readonly orientation: Orientation;
|
|
14
14
|
readonly styles?: ISplitviewStyles;
|
|
15
|
-
readonly parentElement: HTMLElement;
|
|
16
15
|
readonly disableAutoResizing?: boolean;
|
|
17
16
|
readonly locked?: boolean;
|
|
18
17
|
readonly margin?: number;
|
|
@@ -63,6 +62,7 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
|
|
|
63
62
|
readonly onDidLayoutChange: Event<void>;
|
|
64
63
|
private readonly _onDidViewVisibilityChangeMicroTaskQueue;
|
|
65
64
|
readonly onDidViewVisibilityChangeMicroTaskQueue: Event<void>;
|
|
65
|
+
private readonly _classNames;
|
|
66
66
|
get id(): string;
|
|
67
67
|
get size(): number;
|
|
68
68
|
get groups(): T[];
|
|
@@ -75,12 +75,13 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
|
|
|
75
75
|
get activeGroup(): T | undefined;
|
|
76
76
|
get locked(): boolean;
|
|
77
77
|
set locked(value: boolean);
|
|
78
|
-
constructor(options: BaseGridOptions);
|
|
78
|
+
constructor(parentElement: HTMLElement, options: BaseGridOptions);
|
|
79
79
|
abstract toJSON(): object;
|
|
80
80
|
abstract fromJSON(data: any): void;
|
|
81
81
|
abstract clear(): void;
|
|
82
82
|
setVisible(panel: T, visible: boolean): void;
|
|
83
83
|
isVisible(panel: T): boolean;
|
|
84
|
+
updateOptions(options: Partial<BaseGridOptions>): void;
|
|
84
85
|
maximizeGroup(panel: T): void;
|
|
85
86
|
isMaximizedGroup(panel: T): boolean;
|
|
86
87
|
exitMaximizedGroup(): void;
|
|
@@ -4,6 +4,7 @@ import { Disposable } from '../lifecycle';
|
|
|
4
4
|
import { sequentialNumberGenerator } from '../math';
|
|
5
5
|
import { Sizing } from '../splitview/splitview';
|
|
6
6
|
import { Resizable } from '../resizable';
|
|
7
|
+
import { Classnames } from '../dom';
|
|
7
8
|
const nextLayoutId = sequentialNumberGenerator();
|
|
8
9
|
export function toTarget(direction) {
|
|
9
10
|
switch (direction) {
|
|
@@ -57,7 +58,8 @@ export class BaseGrid extends Resizable {
|
|
|
57
58
|
set locked(value) {
|
|
58
59
|
this.gridview.locked = value;
|
|
59
60
|
}
|
|
60
|
-
constructor(options) {
|
|
61
|
+
constructor(parentElement, options) {
|
|
62
|
+
var _a;
|
|
61
63
|
super(document.createElement('div'), options.disableAutoResizing);
|
|
62
64
|
this._id = nextLayoutId.next();
|
|
63
65
|
this._groups = new Map();
|
|
@@ -73,10 +75,9 @@ export class BaseGrid extends Resizable {
|
|
|
73
75
|
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
74
76
|
this.element.style.height = '100%';
|
|
75
77
|
this.element.style.width = '100%';
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
options.parentElement.appendChild(this.element);
|
|
78
|
+
this._classNames = new Classnames(this.element);
|
|
79
|
+
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
80
|
+
parentElement.appendChild(this.element);
|
|
80
81
|
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
81
82
|
this.gridview.locked = !!options.locked;
|
|
82
83
|
this.element.appendChild(this.gridview.element);
|
|
@@ -99,6 +100,30 @@ export class BaseGrid extends Resizable {
|
|
|
99
100
|
isVisible(panel) {
|
|
100
101
|
return this.gridview.isViewVisible(getGridLocation(panel.element));
|
|
101
102
|
}
|
|
103
|
+
updateOptions(options) {
|
|
104
|
+
var _a, _b, _c, _d;
|
|
105
|
+
if (typeof options.proportionalLayout === 'boolean') {
|
|
106
|
+
// this.gridview.proportionalLayout = options.proportionalLayout; // not supported
|
|
107
|
+
}
|
|
108
|
+
if (options.orientation) {
|
|
109
|
+
this.gridview.orientation = options.orientation;
|
|
110
|
+
}
|
|
111
|
+
if ('styles' in options) {
|
|
112
|
+
// this.gridview.styles = options.styles; // not supported
|
|
113
|
+
}
|
|
114
|
+
if ('disableResizing' in options) {
|
|
115
|
+
this.disableResizing = (_a = options.disableAutoResizing) !== null && _a !== void 0 ? _a : false;
|
|
116
|
+
}
|
|
117
|
+
if ('locked' in options) {
|
|
118
|
+
this.locked = (_b = options.locked) !== null && _b !== void 0 ? _b : false;
|
|
119
|
+
}
|
|
120
|
+
if ('margin' in options) {
|
|
121
|
+
this.gridview.margin = (_c = options.margin) !== null && _c !== void 0 ? _c : 0;
|
|
122
|
+
}
|
|
123
|
+
if ('className' in options) {
|
|
124
|
+
this._classNames.setClassNames((_d = options.className) !== null && _d !== void 0 ? _d : '');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
102
127
|
maximizeGroup(panel) {
|
|
103
128
|
this.gridview.maximizeView(panel);
|
|
104
129
|
this.doSetGroupActive(panel);
|
|
@@ -25,11 +25,10 @@ export interface AddComponentOptions<T extends object = Parameters> extends Base
|
|
|
25
25
|
export interface IGridPanelComponentView extends IGridPanelView {
|
|
26
26
|
init: (params: GridviewInitParameters) => void;
|
|
27
27
|
}
|
|
28
|
-
export type GridviewComponentUpdateOptions = Pick<GridviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
|
|
29
28
|
export interface IGridviewComponent extends IBaseGrid<GridviewPanel> {
|
|
30
29
|
readonly orientation: Orientation;
|
|
31
30
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
32
|
-
updateOptions(options: Partial<
|
|
31
|
+
updateOptions(options: Partial<GridviewComponentOptions>): void;
|
|
33
32
|
addPanel<T extends object = Parameters>(options: AddComponentOptions<T>): IGridviewPanel;
|
|
34
33
|
removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
|
|
35
34
|
focus(): void;
|
|
@@ -63,7 +62,7 @@ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implement
|
|
|
63
62
|
get deserializer(): IPanelDeserializer | undefined;
|
|
64
63
|
set deserializer(value: IPanelDeserializer | undefined);
|
|
65
64
|
constructor(parentElement: HTMLElement, options: GridviewComponentOptions);
|
|
66
|
-
updateOptions(options: Partial<
|
|
65
|
+
updateOptions(options: Partial<GridviewComponentOptions>): void;
|
|
67
66
|
removePanel(panel: GridviewPanel): void;
|
|
68
67
|
/**
|
|
69
68
|
* Serialize the current state of the layout
|
|
@@ -21,8 +21,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
21
21
|
this._deserializer = value;
|
|
22
22
|
}
|
|
23
23
|
constructor(parentElement, options) {
|
|
24
|
-
super({
|
|
25
|
-
parentElement: parentElement,
|
|
24
|
+
super(parentElement, {
|
|
26
25
|
proportionalLayout: options.proportionalLayout,
|
|
27
26
|
orientation: options.orientation,
|
|
28
27
|
styles: options.styles,
|
|
@@ -53,6 +52,7 @@ export class GridviewComponent extends BaseGrid {
|
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
updateOptions(options) {
|
|
55
|
+
super.updateOptions(options);
|
|
56
56
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
57
57
|
this.gridview.orientation !== options.orientation;
|
|
58
58
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
@@ -6,6 +6,12 @@ import { LayoutPriority } from '../splitview/splitview';
|
|
|
6
6
|
import { Event } from '../events';
|
|
7
7
|
import { IViewSize } from './gridview';
|
|
8
8
|
import { BaseGrid, IGridPanelView } from './baseComponentGridview';
|
|
9
|
+
export interface Contraints {
|
|
10
|
+
minimumWidth?: number;
|
|
11
|
+
maximumWidth?: number;
|
|
12
|
+
minimumHeight?: number;
|
|
13
|
+
maximumHeight?: number;
|
|
14
|
+
}
|
|
9
15
|
export interface GridviewInitParameters extends PanelInitParameters {
|
|
10
16
|
minimumWidth?: number;
|
|
11
17
|
maximumWidth?: number;
|
|
@@ -154,7 +154,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
154
154
|
dispose: () => {
|
|
155
155
|
iframes.release();
|
|
156
156
|
},
|
|
157
|
-
}, addDisposableWindowListener(window, '
|
|
157
|
+
}, addDisposableWindowListener(window, 'pointermove', (e) => {
|
|
158
158
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
159
159
|
const x = e.clientX - containerRect.left;
|
|
160
160
|
const y = e.clientY - containerRect.top;
|
|
@@ -197,7 +197,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
197
197
|
this._onDidChangeEnd.fire();
|
|
198
198
|
}));
|
|
199
199
|
};
|
|
200
|
-
this.addDisposables(move, addDisposableListener(dragTarget, '
|
|
200
|
+
this.addDisposables(move, addDisposableListener(dragTarget, 'pointerdown', (event) => {
|
|
201
201
|
if (event.defaultPrevented) {
|
|
202
202
|
event.preventDefault();
|
|
203
203
|
return;
|
|
@@ -208,7 +208,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
208
208
|
return;
|
|
209
209
|
}
|
|
210
210
|
track();
|
|
211
|
-
}), addDisposableListener(this.options.content, '
|
|
211
|
+
}), addDisposableListener(this.options.content, 'pointerdown', (event) => {
|
|
212
212
|
if (event.defaultPrevented) {
|
|
213
213
|
return;
|
|
214
214
|
}
|
|
@@ -220,7 +220,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
220
220
|
if (event.shiftKey) {
|
|
221
221
|
track();
|
|
222
222
|
}
|
|
223
|
-
}), addDisposableListener(this.options.content, '
|
|
223
|
+
}), addDisposableListener(this.options.content, 'pointerdown', () => {
|
|
224
224
|
arialLevelTracker.push(this._element);
|
|
225
225
|
}, true));
|
|
226
226
|
if (options.inDragMode) {
|
|
@@ -232,11 +232,11 @@ export class Overlay extends CompositeDisposable {
|
|
|
232
232
|
resizeHandleElement.className = `dv-resize-handle-${direction}`;
|
|
233
233
|
this._element.appendChild(resizeHandleElement);
|
|
234
234
|
const move = new MutableDisposable();
|
|
235
|
-
this.addDisposables(move, addDisposableListener(resizeHandleElement, '
|
|
235
|
+
this.addDisposables(move, addDisposableListener(resizeHandleElement, 'pointerdown', (e) => {
|
|
236
236
|
e.preventDefault();
|
|
237
237
|
let startPosition = null;
|
|
238
238
|
const iframes = disableIframePointEvents();
|
|
239
|
-
move.value = new CompositeDisposable(addDisposableWindowListener(window, '
|
|
239
|
+
move.value = new CompositeDisposable(addDisposableWindowListener(window, 'pointermove', (e) => {
|
|
240
240
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
241
241
|
const overlayRect = this._element.getBoundingClientRect();
|
|
242
242
|
const y = e.clientY - containerRect.top;
|
|
@@ -103,6 +103,7 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
|
|
|
103
103
|
readonly onDidAddView: Event<PaneviewPanel>;
|
|
104
104
|
private readonly _onDidRemoveView;
|
|
105
105
|
readonly onDidRemoveView: Event<PaneviewPanel>;
|
|
106
|
+
private readonly _classNames;
|
|
106
107
|
get id(): string;
|
|
107
108
|
get panels(): PaneviewPanel[];
|
|
108
109
|
set paneview(value: Paneview);
|
|
@@ -8,6 +8,7 @@ import { DraggablePaneviewPanel, } from './draggablePaneviewPanel';
|
|
|
8
8
|
import { DefaultHeader } from './defaultPaneviewHeader';
|
|
9
9
|
import { sequentialNumberGenerator } from '../math';
|
|
10
10
|
import { Resizable } from '../resizable';
|
|
11
|
+
import { Classnames } from '../dom';
|
|
11
12
|
const nextLayoutId = sequentialNumberGenerator();
|
|
12
13
|
export class PaneFramework extends DraggablePaneviewPanel {
|
|
13
14
|
constructor(options) {
|
|
@@ -57,6 +58,7 @@ export class PaneviewComponent extends Resizable {
|
|
|
57
58
|
return this._options;
|
|
58
59
|
}
|
|
59
60
|
constructor(parentElement, options) {
|
|
61
|
+
var _a;
|
|
60
62
|
super(parentElement, options.disableAutoResizing);
|
|
61
63
|
this._id = nextLayoutId.next();
|
|
62
64
|
this._disposable = new MutableDisposable();
|
|
@@ -71,10 +73,9 @@ export class PaneviewComponent extends Resizable {
|
|
|
71
73
|
this.onDidAddView = this._onDidAddView.event;
|
|
72
74
|
this._onDidRemoveView = new Emitter();
|
|
73
75
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
74
|
-
if (typeof options.className === 'string') {
|
|
75
|
-
this.element.classList.add(options.className);
|
|
76
|
-
}
|
|
77
76
|
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
|
|
77
|
+
this._classNames = new Classnames(this.element);
|
|
78
|
+
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
78
79
|
this._options = options;
|
|
79
80
|
if (!options.components) {
|
|
80
81
|
options.components = {};
|
|
@@ -96,6 +97,13 @@ export class PaneviewComponent extends Resizable {
|
|
|
96
97
|
//noop
|
|
97
98
|
}
|
|
98
99
|
updateOptions(options) {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
if ('className' in options) {
|
|
102
|
+
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
103
|
+
}
|
|
104
|
+
if ('disableResizing' in options) {
|
|
105
|
+
this.disableResizing = (_b = options.disableAutoResizing) !== null && _b !== void 0 ? _b : false;
|
|
106
|
+
}
|
|
99
107
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
100
108
|
}
|
|
101
109
|
addPanel(options) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDisposable } from '../lifecycle';
|
|
2
|
-
import { IView, LayoutPriority, Orientation, Sizing, Splitview } from './splitview';
|
|
2
|
+
import { IView, LayoutPriority, Orientation, Sizing, Splitview, SplitViewOptions } from './splitview';
|
|
3
3
|
import { SplitviewComponentOptions } from './options';
|
|
4
4
|
import { BaseComponentOptions, Parameters } from '../panel/types';
|
|
5
5
|
import { Event } from '../events';
|
|
@@ -31,7 +31,6 @@ export interface AddSplitviewComponentOptions<T extends Parameters = Parameters>
|
|
|
31
31
|
minimumSize?: number;
|
|
32
32
|
maximumSize?: number;
|
|
33
33
|
}
|
|
34
|
-
export type SplitviewComponentUpdateOptions = Pick<SplitviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
|
|
35
34
|
export interface ISplitviewComponent extends IDisposable {
|
|
36
35
|
readonly minimumSize: number;
|
|
37
36
|
readonly maximumSize: number;
|
|
@@ -43,7 +42,7 @@ export interface ISplitviewComponent extends IDisposable {
|
|
|
43
42
|
readonly onDidRemoveView: Event<IView>;
|
|
44
43
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
45
44
|
readonly panels: SplitviewPanel[];
|
|
46
|
-
updateOptions(options: Partial<
|
|
45
|
+
updateOptions(options: Partial<SplitViewOptions>): void;
|
|
47
46
|
addPanel<T extends object = Parameters>(options: AddSplitviewComponentOptions<T>): ISplitviewPanel;
|
|
48
47
|
layout(width: number, height: number): void;
|
|
49
48
|
onDidLayoutChange: Event<void>;
|
|
@@ -73,6 +72,7 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
|
|
|
73
72
|
readonly onDidRemoveView: Event<IView>;
|
|
74
73
|
private readonly _onDidLayoutChange;
|
|
75
74
|
readonly onDidLayoutChange: Event<void>;
|
|
75
|
+
private readonly _classNames;
|
|
76
76
|
get panels(): SplitviewPanel[];
|
|
77
77
|
get options(): SplitviewComponentOptions;
|
|
78
78
|
get length(): number;
|
|
@@ -84,7 +84,7 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
|
|
|
84
84
|
get height(): number;
|
|
85
85
|
get width(): number;
|
|
86
86
|
constructor(parentElement: HTMLElement, options: SplitviewComponentOptions);
|
|
87
|
-
updateOptions(options: Partial<
|
|
87
|
+
updateOptions(options: Partial<SplitviewComponentOptions>): void;
|
|
88
88
|
focus(): void;
|
|
89
89
|
movePanel(from: number, to: number): void;
|
|
90
90
|
setVisible(panel: SplitviewPanel, visible: boolean): void;
|
|
@@ -3,6 +3,7 @@ import { Orientation, Sizing, Splitview, } from './splitview';
|
|
|
3
3
|
import { Emitter } from '../events';
|
|
4
4
|
import { createComponent } from '../panel/componentFactory';
|
|
5
5
|
import { Resizable } from '../resizable';
|
|
6
|
+
import { Classnames } from '../dom';
|
|
6
7
|
/**
|
|
7
8
|
* A high-level implementation of splitview that works using 'panels'
|
|
8
9
|
*/
|
|
@@ -45,6 +46,7 @@ export class SplitviewComponent extends Resizable {
|
|
|
45
46
|
: this.splitview.orthogonalSize;
|
|
46
47
|
}
|
|
47
48
|
constructor(parentElement, options) {
|
|
49
|
+
var _a;
|
|
48
50
|
super(parentElement, options.disableAutoResizing);
|
|
49
51
|
this._splitviewChangeDisposable = new MutableDisposable();
|
|
50
52
|
this._panels = new Map();
|
|
@@ -56,9 +58,8 @@ export class SplitviewComponent extends Resizable {
|
|
|
56
58
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
57
59
|
this._onDidLayoutChange = new Emitter();
|
|
58
60
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
61
|
+
this._classNames = new Classnames(this.element);
|
|
62
|
+
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
62
63
|
this._options = options;
|
|
63
64
|
if (!options.components) {
|
|
64
65
|
options.components = {};
|
|
@@ -70,12 +71,17 @@ export class SplitviewComponent extends Resizable {
|
|
|
70
71
|
this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
|
|
71
72
|
}
|
|
72
73
|
updateOptions(options) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
var _a, _b;
|
|
75
|
+
if ('className' in options) {
|
|
76
|
+
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
77
|
+
}
|
|
78
|
+
if ('disableResizing' in options) {
|
|
79
|
+
this.disableResizing = (_b = options.disableAutoResizing) !== null && _b !== void 0 ? _b : false;
|
|
80
|
+
}
|
|
81
|
+
if (typeof options.orientation === 'string') {
|
|
77
82
|
this.splitview.orientation = options.orientation;
|
|
78
83
|
}
|
|
84
|
+
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
79
85
|
this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);
|
|
80
86
|
}
|
|
81
87
|
focus() {
|
package/dist/styles/dockview.css
CHANGED
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
--dv-group-view-background-color: #ebeced;
|
|
201
201
|
--dv-tabs-and-actions-container-background-color: #fcfcfc;
|
|
202
202
|
--dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;
|
|
203
|
-
--dv-activegroup-hiddenpanel-tab-background-color:
|
|
203
|
+
--dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;
|
|
204
204
|
--dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;
|
|
205
205
|
--dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;
|
|
206
206
|
--dv-tab-divider-color: transparent;
|