dockview-core 1.17.2 → 2.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/dist/cjs/api/component.api.d.ts +3 -3
- 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 -2
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -4
- package/dist/cjs/dockview/components/watermark/watermark.js +2 -34
- package/dist/cjs/dockview/dockviewComponent.d.ts +33 -16
- package/dist/cjs/dockview/dockviewComponent.js +103 -38
- package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -3
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +10 -10
- 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 +12 -0
- package/dist/cjs/dockview/options.js +1 -0
- package/dist/cjs/dom.d.ts +11 -1
- package/dist/cjs/dom.js +19 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/cjs/gridview/baseComponentGridview.js +8 -8
- 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.d.ts +9 -1
- package/dist/cjs/gridview/gridview.js +51 -7
- 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 +6 -3
- package/dist/cjs/overlay/overlay.js +15 -0
- 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 +346 -210
- 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 +345 -209
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +346 -210
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +347 -209
- 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 +346 -210
- 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 +345 -209
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +3 -3
- 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 -2
- package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -4
- package/dist/esm/dockview/components/watermark/watermark.js +2 -34
- package/dist/esm/dockview/dockviewComponent.d.ts +33 -16
- package/dist/esm/dockview/dockviewComponent.js +102 -37
- package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -3
- package/dist/esm/dockview/dockviewGroupPanelModel.js +10 -10
- 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 +12 -0
- package/dist/esm/dockview/options.js +1 -0
- package/dist/esm/dom.d.ts +11 -1
- package/dist/esm/dom.js +14 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/esm/gridview/baseComponentGridview.js +8 -4
- 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.d.ts +9 -1
- package/dist/esm/gridview/gridview.js +51 -7
- 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 +6 -3
- package/dist/esm/overlay/overlay.js +11 -0
- 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 +111 -151
- package/package.json +1 -1
|
@@ -67,6 +67,8 @@ export class BaseGrid extends Resizable {
|
|
|
67
67
|
this.onDidRemove = this._onDidRemove.event;
|
|
68
68
|
this._onDidAdd = new Emitter();
|
|
69
69
|
this.onDidAdd = this._onDidAdd.event;
|
|
70
|
+
this._onDidMaximizedChange = new Emitter();
|
|
71
|
+
this.onDidMaximizedChange = this._onDidMaximizedChange.event;
|
|
70
72
|
this._onDidActiveChange = new Emitter();
|
|
71
73
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
72
74
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
@@ -82,7 +84,12 @@ export class BaseGrid extends Resizable {
|
|
|
82
84
|
this.gridview.locked = !!options.locked;
|
|
83
85
|
this.element.appendChild(this.gridview.element);
|
|
84
86
|
this.layout(0, 0, true); // set some elements height/widths
|
|
85
|
-
this.addDisposables(this.gridview.
|
|
87
|
+
this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
|
|
88
|
+
this._onDidMaximizedChange.fire({
|
|
89
|
+
panel: event.view,
|
|
90
|
+
isMaximized: event.isMaximized,
|
|
91
|
+
});
|
|
92
|
+
}), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
86
93
|
this.layout(this.width, this.height, true);
|
|
87
94
|
}), Disposable.from(() => {
|
|
88
95
|
var _a;
|
|
@@ -137,9 +144,6 @@ export class BaseGrid extends Resizable {
|
|
|
137
144
|
hasMaximizedGroup() {
|
|
138
145
|
return this.gridview.hasMaximizedView();
|
|
139
146
|
}
|
|
140
|
-
get onDidMaximizedGroupChange() {
|
|
141
|
-
return this.gridview.onDidMaximizedNodeChange;
|
|
142
|
-
}
|
|
143
147
|
doAddGroup(group, location = [0], size) {
|
|
144
148
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);
|
|
145
149
|
this._onDidAdd.fire(group);
|
|
@@ -22,7 +22,7 @@ export declare abstract class BasePanelView<T extends PanelApiImpl> extends Comp
|
|
|
22
22
|
readonly api: T;
|
|
23
23
|
private _height;
|
|
24
24
|
private _width;
|
|
25
|
-
private _element;
|
|
25
|
+
private readonly _element;
|
|
26
26
|
protected part?: IFrameworkPart;
|
|
27
27
|
protected _params?: PanelInitParameters;
|
|
28
28
|
protected abstract getComponent(): IFrameworkPart;
|
|
@@ -8,7 +8,7 @@ export declare class BranchNode extends CompositeDisposable implements IView {
|
|
|
8
8
|
readonly proportionalLayout: boolean;
|
|
9
9
|
readonly styles: ISplitviewStyles | undefined;
|
|
10
10
|
readonly element: HTMLElement;
|
|
11
|
-
private splitview;
|
|
11
|
+
private readonly splitview;
|
|
12
12
|
private _orthogonalSize;
|
|
13
13
|
private _size;
|
|
14
14
|
private _childrenDisposable;
|
|
@@ -107,7 +107,7 @@ export class BranchNode extends CompositeDisposable {
|
|
|
107
107
|
this._orthogonalSize = orthogonalSize;
|
|
108
108
|
this._size = size;
|
|
109
109
|
this.element = document.createElement('div');
|
|
110
|
-
this.element.className = 'branch-node';
|
|
110
|
+
this.element.className = 'dv-branch-node';
|
|
111
111
|
if (!childDescriptors) {
|
|
112
112
|
this.splitview = new Splitview(this.element, {
|
|
113
113
|
orientation: this.orientation,
|
|
@@ -77,11 +77,19 @@ export interface INodeDescriptor {
|
|
|
77
77
|
export interface IViewDeserializer {
|
|
78
78
|
fromJSON: (data: ISerializedLeafNode) => IGridView;
|
|
79
79
|
}
|
|
80
|
+
export interface SerializedNodeDescriptor {
|
|
81
|
+
location: number[];
|
|
82
|
+
}
|
|
80
83
|
export interface SerializedGridview<T> {
|
|
81
84
|
root: SerializedGridObject<T>;
|
|
82
85
|
width: number;
|
|
83
86
|
height: number;
|
|
84
87
|
orientation: Orientation;
|
|
88
|
+
maximizedNode?: SerializedNodeDescriptor;
|
|
89
|
+
}
|
|
90
|
+
export interface MaximizedViewChanged {
|
|
91
|
+
view: IGridView;
|
|
92
|
+
isMaximized: boolean;
|
|
85
93
|
}
|
|
86
94
|
export declare class Gridview implements IDisposable {
|
|
87
95
|
readonly proportionalLayout: boolean;
|
|
@@ -100,7 +108,7 @@ export declare class Gridview implements IDisposable {
|
|
|
100
108
|
private readonly _onDidViewVisibilityChange;
|
|
101
109
|
readonly onDidViewVisibilityChange: Event<void>;
|
|
102
110
|
private readonly _onDidMaximizedNodeChange;
|
|
103
|
-
readonly onDidMaximizedNodeChange: Event<
|
|
111
|
+
readonly onDidMaximizedNodeChange: Event<MaximizedViewChanged>;
|
|
104
112
|
get length(): number;
|
|
105
113
|
get orientation(): Orientation;
|
|
106
114
|
set orientation(orientation: Orientation);
|
|
@@ -64,7 +64,7 @@ export function getGridLocation(element) {
|
|
|
64
64
|
if (!parentElement) {
|
|
65
65
|
throw new Error('Invalid grid element');
|
|
66
66
|
}
|
|
67
|
-
if (/\
|
|
67
|
+
if (/\bdv-grid-view\b/.test(parentElement.className)) {
|
|
68
68
|
return [];
|
|
69
69
|
}
|
|
70
70
|
const index = indexInParent(parentElement);
|
|
@@ -201,6 +201,7 @@ export class Gridview {
|
|
|
201
201
|
if (this.hasMaximizedView()) {
|
|
202
202
|
this.exitMaximizedView();
|
|
203
203
|
}
|
|
204
|
+
serializeBranchNode(this.getView(), this.orientation);
|
|
204
205
|
const hiddenOnMaximize = [];
|
|
205
206
|
function hideAllViewsBut(parent, exclude) {
|
|
206
207
|
for (let i = 0; i < parent.children.length; i++) {
|
|
@@ -222,7 +223,10 @@ export class Gridview {
|
|
|
222
223
|
}
|
|
223
224
|
hideAllViewsBut(this.root, node);
|
|
224
225
|
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
225
|
-
this._onDidMaximizedNodeChange.fire(
|
|
226
|
+
this._onDidMaximizedNodeChange.fire({
|
|
227
|
+
view: node.view,
|
|
228
|
+
isMaximized: true,
|
|
229
|
+
});
|
|
226
230
|
}
|
|
227
231
|
exitMaximizedView() {
|
|
228
232
|
if (!this._maximizedNode) {
|
|
@@ -243,24 +247,51 @@ export class Gridview {
|
|
|
243
247
|
}
|
|
244
248
|
}
|
|
245
249
|
showViewsInReverseOrder(this.root);
|
|
250
|
+
const tmp = this._maximizedNode.leaf;
|
|
246
251
|
this._maximizedNode = undefined;
|
|
247
|
-
this._onDidMaximizedNodeChange.fire(
|
|
252
|
+
this._onDidMaximizedNodeChange.fire({
|
|
253
|
+
view: tmp.view,
|
|
254
|
+
isMaximized: false,
|
|
255
|
+
});
|
|
248
256
|
}
|
|
249
257
|
serialize() {
|
|
258
|
+
const maximizedView = this.maximizedView();
|
|
259
|
+
let maxmizedViewLocation;
|
|
260
|
+
if (maximizedView) {
|
|
261
|
+
/**
|
|
262
|
+
* The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
|
|
263
|
+
* which is represented as a branch of indices
|
|
264
|
+
*/
|
|
265
|
+
maxmizedViewLocation = getGridLocation(maximizedView.element);
|
|
266
|
+
}
|
|
250
267
|
if (this.hasMaximizedView()) {
|
|
251
268
|
/**
|
|
252
|
-
*
|
|
253
|
-
*
|
|
269
|
+
* the saved layout cannot be in its maxmized state otherwise all of the underlying
|
|
270
|
+
* view dimensions will be wrong
|
|
271
|
+
*
|
|
272
|
+
* To counteract this we temporaily remove the maximized view to compute the serialized output
|
|
273
|
+
* of the grid before adding back the maxmized view as to not alter the layout from the users
|
|
274
|
+
* perspective when `.toJSON()` is called
|
|
254
275
|
*/
|
|
255
276
|
this.exitMaximizedView();
|
|
256
277
|
}
|
|
257
278
|
const root = serializeBranchNode(this.getView(), this.orientation);
|
|
258
|
-
|
|
279
|
+
const resullt = {
|
|
259
280
|
root,
|
|
260
281
|
width: this.width,
|
|
261
282
|
height: this.height,
|
|
262
283
|
orientation: this.orientation,
|
|
263
284
|
};
|
|
285
|
+
if (maxmizedViewLocation) {
|
|
286
|
+
resullt.maximizedNode = {
|
|
287
|
+
location: maxmizedViewLocation,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
if (maximizedView) {
|
|
291
|
+
// replace any maximzied view that was removed for serialization purposes
|
|
292
|
+
this.maximizeView(maximizedView);
|
|
293
|
+
}
|
|
294
|
+
return resullt;
|
|
264
295
|
}
|
|
265
296
|
dispose() {
|
|
266
297
|
this.disposable.dispose();
|
|
@@ -279,6 +310,19 @@ export class Gridview {
|
|
|
279
310
|
const orientation = json.orientation;
|
|
280
311
|
const height = orientation === Orientation.VERTICAL ? json.height : json.width;
|
|
281
312
|
this._deserialize(json.root, orientation, deserializer, height);
|
|
313
|
+
/**
|
|
314
|
+
* The deserialied layout must be positioned through this.layout(...)
|
|
315
|
+
* before any maximizedNode can be positioned
|
|
316
|
+
*/
|
|
317
|
+
this.layout(json.width, json.height);
|
|
318
|
+
if (json.maximizedNode) {
|
|
319
|
+
const location = json.maximizedNode.location;
|
|
320
|
+
const [_, node] = this.getNode(location);
|
|
321
|
+
if (!(node instanceof LeafNode)) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
this.maximizeView(node.view);
|
|
325
|
+
}
|
|
282
326
|
}
|
|
283
327
|
_deserialize(root, orientation, deserializer, orthogonalSize) {
|
|
284
328
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
@@ -414,7 +458,7 @@ export class Gridview {
|
|
|
414
458
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
415
459
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
416
460
|
this.element = document.createElement('div');
|
|
417
|
-
this.element.className = 'grid-view';
|
|
461
|
+
this.element.className = 'dv-grid-view';
|
|
418
462
|
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
419
463
|
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
420
464
|
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
@@ -49,6 +49,10 @@ export declare abstract class GridviewPanel<T extends GridviewPanelApiImpl = Gri
|
|
|
49
49
|
get minimumHeight(): number;
|
|
50
50
|
get maximumHeight(): number;
|
|
51
51
|
get maximumWidth(): number;
|
|
52
|
+
protected __minimumWidth(): number;
|
|
53
|
+
protected __maximumWidth(): number;
|
|
54
|
+
protected __minimumHeight(): number;
|
|
55
|
+
protected __maximumHeight(): number;
|
|
52
56
|
get isActive(): boolean;
|
|
53
57
|
get isVisible(): boolean;
|
|
54
58
|
constructor(id: string, component: string, options?: {
|
|
@@ -9,6 +9,34 @@ export class GridviewPanel extends BasePanelView {
|
|
|
9
9
|
return this._snap;
|
|
10
10
|
}
|
|
11
11
|
get minimumWidth() {
|
|
12
|
+
/**
|
|
13
|
+
* defer to protected function to allow subclasses to override easily.
|
|
14
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
15
|
+
*/
|
|
16
|
+
return this.__minimumWidth();
|
|
17
|
+
}
|
|
18
|
+
get minimumHeight() {
|
|
19
|
+
/**
|
|
20
|
+
* defer to protected function to allow subclasses to override easily.
|
|
21
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
22
|
+
*/
|
|
23
|
+
return this.__minimumHeight();
|
|
24
|
+
}
|
|
25
|
+
get maximumHeight() {
|
|
26
|
+
/**
|
|
27
|
+
* defer to protected function to allow subclasses to override easily.
|
|
28
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
29
|
+
*/
|
|
30
|
+
return this.__maximumHeight();
|
|
31
|
+
}
|
|
32
|
+
get maximumWidth() {
|
|
33
|
+
/**
|
|
34
|
+
* defer to protected function to allow subclasses to override easily.
|
|
35
|
+
* see https://github.com/microsoft/TypeScript/issues/338
|
|
36
|
+
*/
|
|
37
|
+
return this.__maximumWidth();
|
|
38
|
+
}
|
|
39
|
+
__minimumWidth() {
|
|
12
40
|
const width = typeof this._minimumWidth === 'function'
|
|
13
41
|
? this._minimumWidth()
|
|
14
42
|
: this._minimumWidth;
|
|
@@ -18,7 +46,17 @@ export class GridviewPanel extends BasePanelView {
|
|
|
18
46
|
}
|
|
19
47
|
return width;
|
|
20
48
|
}
|
|
21
|
-
|
|
49
|
+
__maximumWidth() {
|
|
50
|
+
const width = typeof this._maximumWidth === 'function'
|
|
51
|
+
? this._maximumWidth()
|
|
52
|
+
: this._maximumWidth;
|
|
53
|
+
if (width !== this._evaluatedMaximumWidth) {
|
|
54
|
+
this._evaluatedMaximumWidth = width;
|
|
55
|
+
this.updateConstraints();
|
|
56
|
+
}
|
|
57
|
+
return width;
|
|
58
|
+
}
|
|
59
|
+
__minimumHeight() {
|
|
22
60
|
const height = typeof this._minimumHeight === 'function'
|
|
23
61
|
? this._minimumHeight()
|
|
24
62
|
: this._minimumHeight;
|
|
@@ -28,7 +66,7 @@ export class GridviewPanel extends BasePanelView {
|
|
|
28
66
|
}
|
|
29
67
|
return height;
|
|
30
68
|
}
|
|
31
|
-
|
|
69
|
+
__maximumHeight() {
|
|
32
70
|
const height = typeof this._maximumHeight === 'function'
|
|
33
71
|
? this._maximumHeight()
|
|
34
72
|
: this._maximumHeight;
|
|
@@ -38,16 +76,6 @@ export class GridviewPanel extends BasePanelView {
|
|
|
38
76
|
}
|
|
39
77
|
return height;
|
|
40
78
|
}
|
|
41
|
-
get maximumWidth() {
|
|
42
|
-
const width = typeof this._maximumWidth === 'function'
|
|
43
|
-
? this._maximumWidth()
|
|
44
|
-
: this._maximumWidth;
|
|
45
|
-
if (width !== this._evaluatedMaximumWidth) {
|
|
46
|
-
this._evaluatedMaximumWidth = width;
|
|
47
|
-
this.updateConstraints();
|
|
48
|
-
}
|
|
49
|
-
return width;
|
|
50
|
-
}
|
|
51
79
|
get isActive() {
|
|
52
80
|
return this.api.isActive;
|
|
53
81
|
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { getPaneData, getPanelData, PaneTransfer, PanelTransfer, } from './dnd/dataTransfer';
|
|
2
2
|
/**
|
|
3
3
|
* Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need
|
|
4
4
|
* to export them for dockview framework packages to use.
|
|
5
5
|
* To be a good citizen these are exported with a `Dockview` prefix to prevent accidental use by others.
|
|
6
6
|
*/
|
|
7
7
|
export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
|
|
8
|
-
export { IDisposable as
|
|
8
|
+
export { IDisposable as DockviewIDisposable, MutableDisposable as DockviewMutableDisposable, CompositeDisposable as DockviewCompositeDisposable, Disposable as DockviewDisposable, } from './lifecycle';
|
|
9
9
|
export * from './panel/types';
|
|
10
|
-
export * from './panel/componentFactory';
|
|
11
10
|
export * from './splitview/splitview';
|
|
12
11
|
export { SplitviewComponentOptions, PanelViewInitParameters, } from './splitview/options';
|
|
13
12
|
export * from './paneview/paneview';
|
|
14
13
|
export * from './gridview/gridview';
|
|
15
14
|
export { GridviewComponentOptions } from './gridview/options';
|
|
16
15
|
export * from './gridview/baseComponentGridview';
|
|
17
|
-
export
|
|
16
|
+
export { DraggablePaneviewPanel, PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
|
|
18
17
|
export * from './dockview/components/panel/content';
|
|
19
18
|
export * from './dockview/components/tab/tab';
|
|
20
19
|
export * from './dockview/dockviewGroupPanelModel';
|
|
@@ -24,24 +23,24 @@ export * from './dockview/dockviewGroupPanel';
|
|
|
24
23
|
export { IGroupPanelBaseProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IDockviewHeaderActionsProps, IGroupHeaderProps, IWatermarkPanelProps, DockviewReadyEvent, } from './dockview/framework';
|
|
25
24
|
export * from './dockview/options';
|
|
26
25
|
export * from './dockview/dockviewPanel';
|
|
27
|
-
export
|
|
28
|
-
export
|
|
26
|
+
export { DefaultTab } from './dockview/components/tab/defaultTab';
|
|
27
|
+
export { DefaultDockviewDeserialzier, IPanelDeserializer, } from './dockview/deserializer';
|
|
29
28
|
export * from './dockview/dockviewComponent';
|
|
30
29
|
export * from './gridview/gridviewComponent';
|
|
31
30
|
export * from './splitview/splitviewComponent';
|
|
32
31
|
export * from './paneview/paneviewComponent';
|
|
33
32
|
export { PaneviewComponentOptions } from './paneview/options';
|
|
34
33
|
export * from './gridview/gridviewPanel';
|
|
35
|
-
export
|
|
34
|
+
export { SplitviewPanel, ISplitviewPanel } from './splitview/splitviewPanel';
|
|
36
35
|
export * from './paneview/paneviewPanel';
|
|
37
36
|
export * from './dockview/types';
|
|
38
37
|
export { DockviewPanelRenderer } from './overlay/overlayRenderContainer';
|
|
39
38
|
export { Position, positionToDirection, directionToPosition, MeasuredValue, DroptargetOverlayModel, } from './dnd/droptarget';
|
|
40
39
|
export { FocusEvent, PanelDimensionChangeEvent, VisibilityEvent, ActiveEvent, PanelApi, } from './api/panelApi';
|
|
41
40
|
export { SizeEvent, GridviewPanelApi, GridConstraintChangeEvent, } from './api/gridviewPanelApi';
|
|
42
|
-
export { TitleEvent, RendererChangedEvent, DockviewPanelApi, } from './api/dockviewPanelApi';
|
|
41
|
+
export { TitleEvent, RendererChangedEvent, DockviewPanelApi, DockviewPanelMoveParams, } from './api/dockviewPanelApi';
|
|
43
42
|
export { PanelSizeEvent, PanelConstraintChangeEvent, SplitviewPanelApi, } from './api/splitviewPanelApi';
|
|
44
43
|
export { ExpansionEvent, PaneviewPanelApi } from './api/paneviewPanelApi';
|
|
45
|
-
export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, } from './api/dockviewGroupPanelApi';
|
|
44
|
+
export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, DockviewGroupMoveParams, } from './api/dockviewGroupPanelApi';
|
|
46
45
|
export { CommonApi, SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
|
|
47
46
|
export { createDockview, createGridview, createPaneview, createSplitview, } from './api/entryPoints';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { getPaneData, getPanelData, PaneTransfer, PanelTransfer, } from './dnd/dataTransfer';
|
|
2
2
|
/**
|
|
3
3
|
* Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need
|
|
4
4
|
* to export them for dockview framework packages to use.
|
|
@@ -7,12 +7,11 @@ export * from './dnd/dataTransfer';
|
|
|
7
7
|
export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
|
|
8
8
|
export { MutableDisposable as DockviewMutableDisposable, CompositeDisposable as DockviewCompositeDisposable, Disposable as DockviewDisposable, } from './lifecycle';
|
|
9
9
|
export * from './panel/types';
|
|
10
|
-
export * from './panel/componentFactory';
|
|
11
10
|
export * from './splitview/splitview';
|
|
12
11
|
export * from './paneview/paneview';
|
|
13
12
|
export * from './gridview/gridview';
|
|
14
13
|
export * from './gridview/baseComponentGridview';
|
|
15
|
-
export
|
|
14
|
+
export { DraggablePaneviewPanel, } from './paneview/draggablePaneviewPanel';
|
|
16
15
|
export * from './dockview/components/panel/content';
|
|
17
16
|
export * from './dockview/components/tab/tab';
|
|
18
17
|
export * from './dockview/dockviewGroupPanelModel';
|
|
@@ -20,14 +19,14 @@ export * from './dockview/types';
|
|
|
20
19
|
export * from './dockview/dockviewGroupPanel';
|
|
21
20
|
export * from './dockview/options';
|
|
22
21
|
export * from './dockview/dockviewPanel';
|
|
23
|
-
export
|
|
24
|
-
export
|
|
22
|
+
export { DefaultTab } from './dockview/components/tab/defaultTab';
|
|
23
|
+
export { DefaultDockviewDeserialzier, } from './dockview/deserializer';
|
|
25
24
|
export * from './dockview/dockviewComponent';
|
|
26
25
|
export * from './gridview/gridviewComponent';
|
|
27
26
|
export * from './splitview/splitviewComponent';
|
|
28
27
|
export * from './paneview/paneviewComponent';
|
|
29
28
|
export * from './gridview/gridviewPanel';
|
|
30
|
-
export
|
|
29
|
+
export { SplitviewPanel } from './splitview/splitviewPanel';
|
|
31
30
|
export * from './paneview/paneviewPanel';
|
|
32
31
|
export * from './dockview/types';
|
|
33
32
|
export { positionToDirection, directionToPosition, } from './dnd/droptarget';
|
|
@@ -3,24 +3,27 @@ import { CompositeDisposable } from '../lifecycle';
|
|
|
3
3
|
import { AnchoredBox } from '../types';
|
|
4
4
|
export declare class Overlay extends CompositeDisposable {
|
|
5
5
|
private readonly options;
|
|
6
|
-
private _element;
|
|
6
|
+
private readonly _element;
|
|
7
7
|
private readonly _onDidChange;
|
|
8
8
|
readonly onDidChange: Event<void>;
|
|
9
9
|
private readonly _onDidChangeEnd;
|
|
10
10
|
readonly onDidChangeEnd: Event<void>;
|
|
11
|
-
private static MINIMUM_HEIGHT;
|
|
12
|
-
private static MINIMUM_WIDTH;
|
|
11
|
+
private static readonly MINIMUM_HEIGHT;
|
|
12
|
+
private static readonly MINIMUM_WIDTH;
|
|
13
13
|
private verticalAlignment;
|
|
14
14
|
private horiziontalAlignment;
|
|
15
|
+
private _isVisible;
|
|
15
16
|
set minimumInViewportWidth(value: number | undefined);
|
|
16
17
|
set minimumInViewportHeight(value: number | undefined);
|
|
17
18
|
get element(): HTMLElement;
|
|
19
|
+
get isVisible(): boolean;
|
|
18
20
|
constructor(options: AnchoredBox & {
|
|
19
21
|
container: HTMLElement;
|
|
20
22
|
content: HTMLElement;
|
|
21
23
|
minimumInViewportWidth?: number;
|
|
22
24
|
minimumInViewportHeight?: number;
|
|
23
25
|
});
|
|
26
|
+
setVisible(isVisible: boolean): void;
|
|
24
27
|
bringToFront(): void;
|
|
25
28
|
setBounds(bounds?: Partial<AnchoredBox>): void;
|
|
26
29
|
toJSON(): AnchoredBox;
|
|
@@ -35,6 +35,9 @@ export class Overlay extends CompositeDisposable {
|
|
|
35
35
|
get element() {
|
|
36
36
|
return this._element;
|
|
37
37
|
}
|
|
38
|
+
get isVisible() {
|
|
39
|
+
return this._isVisible;
|
|
40
|
+
}
|
|
38
41
|
constructor(options) {
|
|
39
42
|
super();
|
|
40
43
|
this.options = options;
|
|
@@ -45,6 +48,7 @@ export class Overlay extends CompositeDisposable {
|
|
|
45
48
|
this.onDidChangeEnd = this._onDidChangeEnd.event;
|
|
46
49
|
this.addDisposables(this._onDidChange, this._onDidChangeEnd);
|
|
47
50
|
this._element.className = 'dv-resize-container';
|
|
51
|
+
this._isVisible = true;
|
|
48
52
|
this.setupResize('top');
|
|
49
53
|
this.setupResize('bottom');
|
|
50
54
|
this.setupResize('left');
|
|
@@ -59,6 +63,13 @@ export class Overlay extends CompositeDisposable {
|
|
|
59
63
|
this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
|
|
60
64
|
arialLevelTracker.push(this._element);
|
|
61
65
|
}
|
|
66
|
+
setVisible(isVisible) {
|
|
67
|
+
if (isVisible === this.isVisible) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this._isVisible = isVisible;
|
|
71
|
+
toggleClass(this.element, 'dv-hidden', !this.isVisible);
|
|
72
|
+
}
|
|
62
73
|
bringToFront() {
|
|
63
74
|
arialLevelTracker.push(this._element);
|
|
64
75
|
}
|
|
@@ -9,7 +9,7 @@ export declare class DefaultHeader extends CompositeDisposable implements IPaneH
|
|
|
9
9
|
private readonly _element;
|
|
10
10
|
private readonly _content;
|
|
11
11
|
private readonly _expander;
|
|
12
|
-
private apiRef;
|
|
12
|
+
private readonly apiRef;
|
|
13
13
|
get element(): HTMLElement;
|
|
14
14
|
constructor();
|
|
15
15
|
init(params: PanePanelInitParameter & {
|
|
@@ -11,12 +11,14 @@ export class DefaultHeader extends CompositeDisposable {
|
|
|
11
11
|
this._expandedIcon = createExpandMoreButton();
|
|
12
12
|
this._collapsedIcon = createChevronRightButton();
|
|
13
13
|
this.disposable = new MutableDisposable();
|
|
14
|
-
this.apiRef = {
|
|
14
|
+
this.apiRef = {
|
|
15
|
+
api: null,
|
|
16
|
+
};
|
|
15
17
|
this._element = document.createElement('div');
|
|
16
|
-
this.element.className = 'default-header';
|
|
18
|
+
this.element.className = 'dv-default-header';
|
|
17
19
|
this._content = document.createElement('span');
|
|
18
20
|
this._expander = document.createElement('div');
|
|
19
|
-
this._expander.className = '
|
|
21
|
+
this._expander.className = 'dv-pane-header-icon';
|
|
20
22
|
this.element.appendChild(this._expander);
|
|
21
23
|
this.element.appendChild(this._content);
|
|
22
24
|
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
@@ -7,10 +7,10 @@ interface PaneItem {
|
|
|
7
7
|
disposable: IDisposable;
|
|
8
8
|
}
|
|
9
9
|
export declare class Paneview extends CompositeDisposable implements IDisposable {
|
|
10
|
-
private element;
|
|
11
|
-
private splitview;
|
|
10
|
+
private readonly element;
|
|
11
|
+
private readonly splitview;
|
|
12
12
|
private paneItems;
|
|
13
|
-
private _orientation;
|
|
13
|
+
private readonly _orientation;
|
|
14
14
|
private animationTimer;
|
|
15
15
|
private skipAnimation;
|
|
16
16
|
private readonly _onDidChange;
|
|
@@ -33,7 +33,7 @@ export class Paneview extends CompositeDisposable {
|
|
|
33
33
|
this.onDidChange = this._onDidChange.event;
|
|
34
34
|
this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;
|
|
35
35
|
this.element = document.createElement('div');
|
|
36
|
-
this.element.className = 'pane-container';
|
|
36
|
+
this.element.className = 'dv-pane-container';
|
|
37
37
|
container.appendChild(this.element);
|
|
38
38
|
this.splitview = new Splitview(this.element, {
|
|
39
39
|
orientation: this._orientation,
|
|
@@ -125,10 +125,10 @@ export class Paneview extends CompositeDisposable {
|
|
|
125
125
|
clearTimeout(this.animationTimer);
|
|
126
126
|
this.animationTimer = undefined;
|
|
127
127
|
}
|
|
128
|
-
addClasses(this.element, 'animated');
|
|
128
|
+
addClasses(this.element, 'dv-animated');
|
|
129
129
|
this.animationTimer = setTimeout(() => {
|
|
130
130
|
this.animationTimer = undefined;
|
|
131
|
-
removeClasses(this.element, 'animated');
|
|
131
|
+
removeClasses(this.element, 'dv-animated');
|
|
132
132
|
}, 200);
|
|
133
133
|
}
|
|
134
134
|
dispose() {
|
|
@@ -90,8 +90,8 @@ export interface IPaneviewComponent extends IDisposable {
|
|
|
90
90
|
export declare class PaneviewComponent extends Resizable implements IPaneviewComponent {
|
|
91
91
|
private readonly _id;
|
|
92
92
|
private _options;
|
|
93
|
-
private _disposable;
|
|
94
|
-
private _viewDisposables;
|
|
93
|
+
private readonly _disposable;
|
|
94
|
+
private readonly _viewDisposables;
|
|
95
95
|
private _paneview;
|
|
96
96
|
private readonly _onDidLayoutfromJSON;
|
|
97
97
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
@@ -45,14 +45,14 @@ export interface IPaneviewPanel extends BasePanelViewExported<PaneviewPanelApiIm
|
|
|
45
45
|
}
|
|
46
46
|
export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelApiImpl> implements IPaneview, IPaneviewPanel {
|
|
47
47
|
private readonly headerComponent;
|
|
48
|
-
private _onDidChangeExpansionState;
|
|
48
|
+
private readonly _onDidChangeExpansionState;
|
|
49
49
|
onDidChangeExpansionState: Event<boolean>;
|
|
50
50
|
private readonly _onDidChange;
|
|
51
51
|
readonly onDidChange: Event<{
|
|
52
52
|
size?: number;
|
|
53
53
|
orthogonalSize?: number;
|
|
54
54
|
}>;
|
|
55
|
-
private headerSize;
|
|
55
|
+
private readonly headerSize;
|
|
56
56
|
private _orthogonalSize;
|
|
57
57
|
private _size;
|
|
58
58
|
private _minimumBodySize;
|
|
@@ -71,7 +71,7 @@ export class PaneviewPanel extends BasePanelView {
|
|
|
71
71
|
this._headerVisible = isHeaderVisible;
|
|
72
72
|
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
73
73
|
this._orientation = orientation;
|
|
74
|
-
this.element.classList.add('pane');
|
|
74
|
+
this.element.classList.add('dv-pane');
|
|
75
75
|
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
76
76
|
const { isVisible } = event;
|
|
77
77
|
const { accessor } = this._params;
|
|
@@ -168,14 +168,14 @@ export class PaneviewPanel extends BasePanelView {
|
|
|
168
168
|
renderOnce() {
|
|
169
169
|
this.header = document.createElement('div');
|
|
170
170
|
this.header.tabIndex = 0;
|
|
171
|
-
this.header.className = 'pane-header';
|
|
171
|
+
this.header.className = 'dv-pane-header';
|
|
172
172
|
this.header.style.height = `${this.headerSize}px`;
|
|
173
173
|
this.header.style.lineHeight = `${this.headerSize}px`;
|
|
174
174
|
this.header.style.minHeight = `${this.headerSize}px`;
|
|
175
175
|
this.header.style.maxHeight = `${this.headerSize}px`;
|
|
176
176
|
this.element.appendChild(this.header);
|
|
177
177
|
this.body = document.createElement('div');
|
|
178
|
-
this.body.className = 'pane-body';
|
|
178
|
+
this.body.className = 'dv-pane-body';
|
|
179
179
|
this.element.appendChild(this.body);
|
|
180
180
|
}
|
|
181
181
|
// TODO slightly hacky by-pass of the component to create a body and header component
|