dockview-core 1.7.2 → 1.7.4
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/dockviewPanelApi.d.ts +2 -2
- package/dist/cjs/api/dockviewPanelApi.d.ts.map +1 -1
- package/dist/cjs/api/dockviewPanelApi.js +1 -1
- package/dist/cjs/api/dockviewPanelApi.js.map +1 -1
- package/dist/cjs/api/panelApi.d.ts.map +1 -1
- package/dist/cjs/api/panelApi.js +3 -5
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.js +1 -0
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts.map +1 -1
- package/dist/cjs/dnd/droptarget.js +1 -0
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts.map +1 -1
- package/dist/cjs/dnd/groupDragHandler.js +0 -3
- package/dist/cjs/dnd/groupDragHandler.js.map +1 -1
- package/dist/cjs/dockview/components/panel/content.d.ts.map +1 -1
- package/dist/cjs/dockview/components/panel/content.js +2 -2
- package/dist/cjs/dockview/components/panel/content.js.map +1 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts +2 -2
- package/dist/cjs/dockview/components/tab/tab.d.ts.map +1 -1
- package/dist/cjs/dockview/components/tab/tab.js +2 -7
- package/dist/cjs/dockview/components/tab/tab.js.map +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +27 -3
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.js +23 -21
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +2 -2
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts +7 -6
- package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewPanel.js +37 -12
- package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +4 -3
- package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewPanelModel.js.map +1 -1
- package/dist/cjs/dockview/types.d.ts +1 -5
- package/dist/cjs/dockview/types.d.ts.map +1 -1
- package/dist/cjs/dockview/types.js.map +1 -1
- package/dist/cjs/dom.js +1 -5
- package/dist/cjs/dom.js.map +1 -1
- package/dist/cjs/events.d.ts +17 -0
- package/dist/cjs/events.d.ts.map +1 -1
- package/dist/cjs/events.js +94 -7
- package/dist/cjs/events.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +2 -3
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts.map +1 -1
- package/dist/cjs/gridview/basePanelView.js +41 -8
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.d.ts.map +1 -1
- package/dist/cjs/gridview/branchNode.js +3 -3
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.d.ts.map +1 -1
- package/dist/cjs/gridview/gridview.js +21 -13
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.js +2 -2
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/lifecycle.d.ts +1 -1
- package/dist/cjs/lifecycle.d.ts.map +1 -1
- package/dist/cjs/lifecycle.js +3 -3
- package/dist/cjs/lifecycle.js.map +1 -1
- package/dist/cjs/splitview/splitview.d.ts +3 -2
- package/dist/cjs/splitview/splitview.d.ts.map +1 -1
- package/dist/cjs/splitview/splitview.js +103 -84
- package/dist/cjs/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
- package/dist/cjs/splitview/splitviewComponent.d.ts.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.js +36 -20
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/dockview-core.amd.js +284 -196
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.noStyle.js +284 -196
- package/dist/dockview-core.cjs.js +284 -196
- package/dist/dockview-core.esm.js +284 -196
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.js +284 -196
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.noStyle.js +284 -196
- package/dist/esm/api/dockviewPanelApi.d.ts +2 -2
- package/dist/esm/api/dockviewPanelApi.d.ts.map +1 -1
- package/dist/esm/api/dockviewPanelApi.js +1 -1
- package/dist/esm/api/dockviewPanelApi.js.map +1 -1
- package/dist/esm/api/panelApi.d.ts.map +1 -1
- package/dist/esm/api/panelApi.js +3 -5
- package/dist/esm/api/panelApi.js.map +1 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts.map +1 -1
- package/dist/esm/dnd/abstractDragHandler.js +1 -0
- package/dist/esm/dnd/abstractDragHandler.js.map +1 -1
- package/dist/esm/dnd/droptarget.d.ts.map +1 -1
- package/dist/esm/dnd/droptarget.js +1 -0
- package/dist/esm/dnd/droptarget.js.map +1 -1
- package/dist/esm/dnd/groupDragHandler.d.ts +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts.map +1 -1
- package/dist/esm/dnd/groupDragHandler.js +0 -3
- package/dist/esm/dnd/groupDragHandler.js.map +1 -1
- package/dist/esm/dockview/components/panel/content.d.ts.map +1 -1
- package/dist/esm/dockview/components/panel/content.js +2 -2
- package/dist/esm/dockview/components/panel/content.js.map +1 -1
- package/dist/esm/dockview/components/tab/tab.d.ts +2 -2
- package/dist/esm/dockview/components/tab/tab.d.ts.map +1 -1
- package/dist/esm/dockview/components/tab/tab.js +2 -7
- package/dist/esm/dockview/components/tab/tab.js.map +1 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +1 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -3
- package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +1 -1
- package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewComponent.js +23 -21
- package/dist/esm/dockview/dockviewComponent.js.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js +2 -2
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanel.d.ts +7 -6
- package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewPanel.js +15 -12
- package/dist/esm/dockview/dockviewPanel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanelModel.d.ts +4 -3
- package/dist/esm/dockview/dockviewPanelModel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewPanelModel.js.map +1 -1
- package/dist/esm/dockview/types.d.ts +1 -5
- package/dist/esm/dockview/types.d.ts.map +1 -1
- package/dist/esm/dockview/types.js.map +1 -1
- package/dist/esm/dom.js +1 -5
- package/dist/esm/dom.js.map +1 -1
- package/dist/esm/events.d.ts +17 -0
- package/dist/esm/events.d.ts.map +1 -1
- package/dist/esm/events.js +75 -7
- package/dist/esm/events.js.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.js +2 -3
- package/dist/esm/gridview/baseComponentGridview.js.map +1 -1
- package/dist/esm/gridview/basePanelView.d.ts.map +1 -1
- package/dist/esm/gridview/basePanelView.js +16 -5
- package/dist/esm/gridview/basePanelView.js.map +1 -1
- package/dist/esm/gridview/branchNode.d.ts +1 -1
- package/dist/esm/gridview/branchNode.d.ts.map +1 -1
- package/dist/esm/gridview/branchNode.js +3 -3
- package/dist/esm/gridview/branchNode.js.map +1 -1
- package/dist/esm/gridview/gridview.d.ts.map +1 -1
- package/dist/esm/gridview/gridview.js +19 -11
- package/dist/esm/gridview/gridview.js.map +1 -1
- package/dist/esm/gridview/gridviewPanel.js +2 -2
- package/dist/esm/gridview/gridviewPanel.js.map +1 -1
- package/dist/esm/lifecycle.d.ts +1 -1
- package/dist/esm/lifecycle.d.ts.map +1 -1
- package/dist/esm/lifecycle.js +3 -3
- package/dist/esm/lifecycle.js.map +1 -1
- package/dist/esm/splitview/splitview.d.ts +3 -2
- package/dist/esm/splitview/splitview.d.ts.map +1 -1
- package/dist/esm/splitview/splitview.js +90 -84
- package/dist/esm/splitview/splitview.js.map +1 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
- package/dist/esm/splitview/splitviewComponent.d.ts.map +1 -1
- package/dist/esm/splitview/splitviewComponent.js +22 -16
- package/dist/esm/splitview/splitviewComponent.js.map +1 -1
- package/dist/esm/splitview/splitviewPanel.d.ts.map +1 -1
- package/dist/esm/splitview/splitviewPanel.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;CACpC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,IAAI,EAAE,WAIlB,CAAC;CACL;AAED,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;CACpC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,IAAI,EAAE,WAIlB,CAAC;CACL;AAED,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAE5B,SAAS,KAAK,UAAU,IAAI,OAAO,CAElC;WAEa,IAAI,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,GAAG,mBAAmB;gBAInD,GAAG,IAAI,EAAE,WAAW,EAAE;IAI3B,cAAc,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI;IAI5C,OAAO,IAAI,IAAI;CAKzB;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,WAAW,CAAmB;IAEtC,IAAI,KAAK,CAAC,UAAU,EAAE,WAAW,EAKhC;IAEM,OAAO,IAAI,IAAI;CAMzB"}
|
package/dist/esm/lifecycle.js
CHANGED
|
@@ -15,13 +15,13 @@ export class CompositeDisposable {
|
|
|
15
15
|
}
|
|
16
16
|
constructor(...args) {
|
|
17
17
|
this._isDisposed = false;
|
|
18
|
-
this.
|
|
18
|
+
this._disposables = args;
|
|
19
19
|
}
|
|
20
20
|
addDisposables(...args) {
|
|
21
|
-
args.forEach((arg) => this.
|
|
21
|
+
args.forEach((arg) => this._disposables.push(arg));
|
|
22
22
|
}
|
|
23
23
|
dispose() {
|
|
24
|
-
this.
|
|
24
|
+
this._disposables.forEach((arg) => arg.dispose());
|
|
25
25
|
this._isDisposed = true;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lifecycle.ts"],"names":[],"mappings":"AASA,MAAM,KAAW,UAAU,CAM1B;AAND,WAAiB,UAAU;IACV,eAAI,GAAgB;QAC7B,OAAO,EAAE,GAAG,EAAE;YACV,OAAO;QACX,CAAC;KACJ,CAAC;AACN,CAAC,EANgB,UAAU,KAAV,UAAU,QAM1B;AAED,MAAM,OAAO,mBAAmB;IAI5B,IAAc,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAmB;QACrC,OAAO,IAAI,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,GAAG,IAAmB;QAV1B,gBAAW,GAAG,KAAK,CAAC;QAWxB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lifecycle.ts"],"names":[],"mappings":"AASA,MAAM,KAAW,UAAU,CAM1B;AAND,WAAiB,UAAU;IACV,eAAI,GAAgB;QAC7B,OAAO,EAAE,GAAG,EAAE;YACV,OAAO;QACX,CAAC;KACJ,CAAC;AACN,CAAC,EANgB,UAAU,KAAV,UAAU,QAM1B;AAED,MAAM,OAAO,mBAAmB;IAI5B,IAAc,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAmB;QACrC,OAAO,IAAI,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,GAAG,IAAmB;QAV1B,gBAAW,GAAG,KAAK,CAAC;QAWxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,GAAG,IAAmB;QACxC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;CACJ;AAED,MAAM,OAAO,iBAAiB;IAA9B;QACY,gBAAW,GAAG,UAAU,CAAC,IAAI,CAAC;IAe1C,CAAC;IAbG,IAAI,KAAK,CAAC,UAAuB;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;SACtC;IACL,CAAC;CACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Event } from '../events';
|
|
2
|
+
import { IDisposable } from '../lifecycle';
|
|
2
3
|
export declare enum Orientation {
|
|
3
4
|
HORIZONTAL = "HORIZONTAL",
|
|
4
5
|
VERTICAL = "VERTICAL"
|
|
@@ -23,7 +24,7 @@ export declare enum LayoutPriority {
|
|
|
23
24
|
High = "high",
|
|
24
25
|
Normal = "normal"
|
|
25
26
|
}
|
|
26
|
-
export interface IBaseView {
|
|
27
|
+
export interface IBaseView extends IDisposable {
|
|
27
28
|
minimumSize: number;
|
|
28
29
|
maximumSize: number;
|
|
29
30
|
snap?: boolean;
|
|
@@ -68,7 +69,7 @@ export declare class Splitview {
|
|
|
68
69
|
private element;
|
|
69
70
|
private viewContainer;
|
|
70
71
|
private sashContainer;
|
|
71
|
-
private
|
|
72
|
+
private viewItems;
|
|
72
73
|
private sashes;
|
|
73
74
|
private _orientation;
|
|
74
75
|
private _size;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitview.d.ts","sourceRoot":"","sources":["../../../src/splitview/splitview.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAW,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"splitview.d.ts","sourceRoot":"","sources":["../../../src/splitview/splitview.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ export class Splitview {
|
|
|
51
51
|
this._orthogonalSize = value;
|
|
52
52
|
}
|
|
53
53
|
get length() {
|
|
54
|
-
return this.
|
|
54
|
+
return this.viewItems.length;
|
|
55
55
|
}
|
|
56
56
|
get proportions() {
|
|
57
57
|
return this._proportions ? [...this._proportions] : undefined;
|
|
@@ -70,12 +70,12 @@ export class Splitview {
|
|
|
70
70
|
: 'vertical');
|
|
71
71
|
}
|
|
72
72
|
get minimumSize() {
|
|
73
|
-
return this.
|
|
73
|
+
return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
|
|
74
74
|
}
|
|
75
75
|
get maximumSize() {
|
|
76
76
|
return this.length === 0
|
|
77
77
|
? Number.POSITIVE_INFINITY
|
|
78
|
-
: this.
|
|
78
|
+
: this.viewItems.reduce((r, item) => r + item.maximumSize, 0);
|
|
79
79
|
}
|
|
80
80
|
get startSnappingEnabled() {
|
|
81
81
|
return this._startSnappingEnabled;
|
|
@@ -99,7 +99,7 @@ export class Splitview {
|
|
|
99
99
|
}
|
|
100
100
|
constructor(container, options) {
|
|
101
101
|
this.container = container;
|
|
102
|
-
this.
|
|
102
|
+
this.viewItems = [];
|
|
103
103
|
this.sashes = [];
|
|
104
104
|
this._size = 0;
|
|
105
105
|
this._orthogonalSize = 0;
|
|
@@ -113,12 +113,12 @@ export class Splitview {
|
|
|
113
113
|
this.onDidAddView = this._onDidAddView.event;
|
|
114
114
|
this._onDidRemoveView = new Emitter();
|
|
115
115
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
116
|
-
this.resize = (index, delta, sizes = this.
|
|
117
|
-
if (index < 0 || index > this.
|
|
116
|
+
this.resize = (index, delta, sizes = this.viewItems.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {
|
|
117
|
+
if (index < 0 || index > this.viewItems.length) {
|
|
118
118
|
return 0;
|
|
119
119
|
}
|
|
120
120
|
const upIndexes = range(index, -1);
|
|
121
|
-
const downIndexes = range(index + 1, this.
|
|
121
|
+
const downIndexes = range(index + 1, this.viewItems.length);
|
|
122
122
|
//
|
|
123
123
|
if (highPriorityIndexes) {
|
|
124
124
|
for (const i of highPriorityIndexes) {
|
|
@@ -133,34 +133,34 @@ export class Splitview {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
//
|
|
136
|
-
const upItems = upIndexes.map((i) => this.
|
|
136
|
+
const upItems = upIndexes.map((i) => this.viewItems[i]);
|
|
137
137
|
const upSizes = upIndexes.map((i) => sizes[i]);
|
|
138
138
|
//
|
|
139
|
-
const downItems = downIndexes.map((i) => this.
|
|
139
|
+
const downItems = downIndexes.map((i) => this.viewItems[i]);
|
|
140
140
|
const downSizes = downIndexes.map((i) => sizes[i]);
|
|
141
141
|
//
|
|
142
|
-
const minDeltaUp = upIndexes.reduce((_, i) => _ + this.
|
|
143
|
-
const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.
|
|
142
|
+
const minDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].minimumSize - sizes[i], 0);
|
|
143
|
+
const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].maximumSize - sizes[i], 0);
|
|
144
144
|
//
|
|
145
145
|
const maxDeltaDown = downIndexes.length === 0
|
|
146
146
|
? Number.POSITIVE_INFINITY
|
|
147
|
-
: downIndexes.reduce((_, i) => _ + sizes[i] - this.
|
|
147
|
+
: downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].minimumSize, 0);
|
|
148
148
|
const minDeltaDown = downIndexes.length === 0
|
|
149
149
|
? Number.NEGATIVE_INFINITY
|
|
150
|
-
: downIndexes.reduce((_, i) => _ + sizes[i] - this.
|
|
150
|
+
: downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].maximumSize, 0);
|
|
151
151
|
//
|
|
152
152
|
const minDelta = Math.max(minDeltaUp, minDeltaDown);
|
|
153
153
|
const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
|
|
154
154
|
//
|
|
155
155
|
let snapped = false;
|
|
156
156
|
if (snapBefore) {
|
|
157
|
-
const snapView = this.
|
|
157
|
+
const snapView = this.viewItems[snapBefore.index];
|
|
158
158
|
const visible = delta >= snapBefore.limitDelta;
|
|
159
159
|
snapped = visible !== snapView.visible;
|
|
160
160
|
snapView.setVisible(visible, snapBefore.size);
|
|
161
161
|
}
|
|
162
162
|
if (!snapped && snapAfter) {
|
|
163
|
-
const snapView = this.
|
|
163
|
+
const snapView = this.viewItems[snapAfter.index];
|
|
164
164
|
const visible = delta < snapAfter.limitDelta;
|
|
165
165
|
snapped = visible !== snapView.visible;
|
|
166
166
|
snapView.setVisible(visible, snapAfter.size);
|
|
@@ -222,7 +222,7 @@ export class Splitview {
|
|
|
222
222
|
);
|
|
223
223
|
});
|
|
224
224
|
// Initialize content size and proportions for first layout
|
|
225
|
-
this.contentSize = this.
|
|
225
|
+
this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
226
226
|
this.saveProportions();
|
|
227
227
|
}
|
|
228
228
|
}
|
|
@@ -239,18 +239,18 @@ export class Splitview {
|
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
isViewVisible(index) {
|
|
242
|
-
if (index < 0 || index >= this.
|
|
242
|
+
if (index < 0 || index >= this.viewItems.length) {
|
|
243
243
|
throw new Error('Index out of bounds');
|
|
244
244
|
}
|
|
245
|
-
const viewItem = this.
|
|
245
|
+
const viewItem = this.viewItems[index];
|
|
246
246
|
return viewItem.visible;
|
|
247
247
|
}
|
|
248
248
|
setViewVisible(index, visible) {
|
|
249
|
-
if (index < 0 || index >= this.
|
|
249
|
+
if (index < 0 || index >= this.viewItems.length) {
|
|
250
250
|
throw new Error('Index out of bounds');
|
|
251
251
|
}
|
|
252
252
|
toggleClass(this.container, 'visible', visible);
|
|
253
|
-
const viewItem = this.
|
|
253
|
+
const viewItem = this.viewItems[index];
|
|
254
254
|
toggleClass(this.container, 'visible', visible);
|
|
255
255
|
viewItem.setVisible(visible, viewItem.size);
|
|
256
256
|
this.distributeEmptySpace(index);
|
|
@@ -258,33 +258,33 @@ export class Splitview {
|
|
|
258
258
|
this.saveProportions();
|
|
259
259
|
}
|
|
260
260
|
getViewSize(index) {
|
|
261
|
-
if (index < 0 || index >= this.
|
|
261
|
+
if (index < 0 || index >= this.viewItems.length) {
|
|
262
262
|
return -1;
|
|
263
263
|
}
|
|
264
|
-
return this.
|
|
264
|
+
return this.viewItems[index].size;
|
|
265
265
|
}
|
|
266
266
|
resizeView(index, size) {
|
|
267
|
-
if (index < 0 || index >= this.
|
|
267
|
+
if (index < 0 || index >= this.viewItems.length) {
|
|
268
268
|
return;
|
|
269
269
|
}
|
|
270
|
-
const indexes = range(this.
|
|
270
|
+
const indexes = range(this.viewItems.length).filter((i) => i !== index);
|
|
271
271
|
const lowPriorityIndexes = [
|
|
272
|
-
...indexes.filter((i) => this.
|
|
272
|
+
...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),
|
|
273
273
|
index,
|
|
274
274
|
];
|
|
275
|
-
const highPriorityIndexes = indexes.filter((i) => this.
|
|
276
|
-
const item = this.
|
|
275
|
+
const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
|
|
276
|
+
const item = this.viewItems[index];
|
|
277
277
|
size = Math.round(size);
|
|
278
278
|
size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));
|
|
279
279
|
item.size = size;
|
|
280
280
|
this.relayout(lowPriorityIndexes, highPriorityIndexes);
|
|
281
281
|
}
|
|
282
282
|
getViews() {
|
|
283
|
-
return this.
|
|
283
|
+
return this.viewItems.map((x) => x.view);
|
|
284
284
|
}
|
|
285
285
|
onDidChange(item, size) {
|
|
286
|
-
const index = this.
|
|
287
|
-
if (index < 0 || index >= this.
|
|
286
|
+
const index = this.viewItems.indexOf(item);
|
|
287
|
+
if (index < 0 || index >= this.viewItems.length) {
|
|
288
288
|
return;
|
|
289
289
|
}
|
|
290
290
|
size = typeof size === 'number' ? size : item.size;
|
|
@@ -292,7 +292,7 @@ export class Splitview {
|
|
|
292
292
|
item.size = size;
|
|
293
293
|
this.relayout([index]);
|
|
294
294
|
}
|
|
295
|
-
addView(view, size = { type: 'distribute' }, index = this.
|
|
295
|
+
addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
|
|
296
296
|
const container = document.createElement('div');
|
|
297
297
|
container.className = 'view';
|
|
298
298
|
container.appendChild(view.element);
|
|
@@ -310,24 +310,25 @@ export class Splitview {
|
|
|
310
310
|
viewSize = view.minimumSize;
|
|
311
311
|
}
|
|
312
312
|
const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
313
|
+
const viewItem = new ViewItem(container, view, viewSize, {
|
|
314
|
+
dispose: () => {
|
|
315
|
+
disposable.dispose();
|
|
316
|
+
this.viewContainer.removeChild(container);
|
|
317
|
+
},
|
|
318
|
+
});
|
|
319
|
+
if (index === this.viewItems.length) {
|
|
319
320
|
this.viewContainer.appendChild(container);
|
|
320
321
|
}
|
|
321
322
|
else {
|
|
322
323
|
this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));
|
|
323
324
|
}
|
|
324
|
-
this.
|
|
325
|
-
if (this.
|
|
325
|
+
this.viewItems.splice(index, 0, viewItem);
|
|
326
|
+
if (this.viewItems.length > 1) {
|
|
326
327
|
//add sash
|
|
327
328
|
const sash = document.createElement('div');
|
|
328
329
|
sash.className = 'sash';
|
|
329
330
|
const onStart = (event) => {
|
|
330
|
-
for (const item of this.
|
|
331
|
+
for (const item of this.viewItems) {
|
|
331
332
|
item.enabled = false;
|
|
332
333
|
}
|
|
333
334
|
const iframes = [
|
|
@@ -342,27 +343,29 @@ export class Splitview {
|
|
|
342
343
|
: event.clientY;
|
|
343
344
|
const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);
|
|
344
345
|
//
|
|
345
|
-
const sizes = this.
|
|
346
|
+
const sizes = this.viewItems.map((x) => x.size);
|
|
346
347
|
//
|
|
347
348
|
let snapBefore;
|
|
348
349
|
let snapAfter;
|
|
349
350
|
const upIndexes = range(sashIndex, -1);
|
|
350
|
-
const downIndexes = range(sashIndex + 1, this.
|
|
351
|
-
const minDeltaUp = upIndexes.reduce((r, i) => r + (this.
|
|
352
|
-
const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.
|
|
351
|
+
const downIndexes = range(sashIndex + 1, this.viewItems.length);
|
|
352
|
+
const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);
|
|
353
|
+
const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);
|
|
353
354
|
const maxDeltaDown = downIndexes.length === 0
|
|
354
355
|
? Number.POSITIVE_INFINITY
|
|
355
|
-
: downIndexes.reduce((r, i) => r +
|
|
356
|
+
: downIndexes.reduce((r, i) => r +
|
|
357
|
+
(sizes[i] - this.viewItems[i].minimumSize), 0);
|
|
356
358
|
const minDeltaDown = downIndexes.length === 0
|
|
357
359
|
? Number.NEGATIVE_INFINITY
|
|
358
360
|
: downIndexes.reduce((r, i) => r +
|
|
359
|
-
(sizes[i] -
|
|
361
|
+
(sizes[i] -
|
|
362
|
+
this.viewItems[i].viewMaximumSize), 0);
|
|
360
363
|
const minDelta = Math.max(minDeltaUp, minDeltaDown);
|
|
361
364
|
const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
|
|
362
365
|
const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
|
|
363
366
|
const snapAfterIndex = this.findFirstSnapIndex(downIndexes);
|
|
364
367
|
if (typeof snapBeforeIndex === 'number') {
|
|
365
|
-
const snappedViewItem = this.
|
|
368
|
+
const snappedViewItem = this.viewItems[snapBeforeIndex];
|
|
366
369
|
const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
|
|
367
370
|
snapBefore = {
|
|
368
371
|
index: snapBeforeIndex,
|
|
@@ -373,7 +376,7 @@ export class Splitview {
|
|
|
373
376
|
};
|
|
374
377
|
}
|
|
375
378
|
if (typeof snapAfterIndex === 'number') {
|
|
376
|
-
const snappedViewItem = this.
|
|
379
|
+
const snappedViewItem = this.viewItems[snapAfterIndex];
|
|
377
380
|
const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
|
|
378
381
|
snapAfter = {
|
|
379
382
|
index: snapAfterIndex,
|
|
@@ -394,7 +397,7 @@ export class Splitview {
|
|
|
394
397
|
this.layoutViews();
|
|
395
398
|
};
|
|
396
399
|
const end = () => {
|
|
397
|
-
for (const item of this.
|
|
400
|
+
for (const item of this.viewItems) {
|
|
398
401
|
item.enabled = true;
|
|
399
402
|
}
|
|
400
403
|
for (const iframe of iframes) {
|
|
@@ -434,7 +437,7 @@ export class Splitview {
|
|
|
434
437
|
distributeViewSizes() {
|
|
435
438
|
const flexibleViewItems = [];
|
|
436
439
|
let flexibleSize = 0;
|
|
437
|
-
for (const item of this.
|
|
440
|
+
for (const item of this.viewItems) {
|
|
438
441
|
if (item.maximumSize - item.minimumSize > 0) {
|
|
439
442
|
flexibleViewItems.push(item);
|
|
440
443
|
flexibleSize += item.size;
|
|
@@ -444,17 +447,17 @@ export class Splitview {
|
|
|
444
447
|
for (const item of flexibleViewItems) {
|
|
445
448
|
item.size = clamp(size, item.minimumSize, item.maximumSize);
|
|
446
449
|
}
|
|
447
|
-
const indexes = range(this.
|
|
448
|
-
const lowPriorityIndexes = indexes.filter((i) => this.
|
|
449
|
-
const highPriorityIndexes = indexes.filter((i) => this.
|
|
450
|
+
const indexes = range(this.viewItems.length);
|
|
451
|
+
const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
|
|
452
|
+
const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
|
|
450
453
|
this.relayout(lowPriorityIndexes, highPriorityIndexes);
|
|
451
454
|
}
|
|
452
455
|
removeView(index, sizing, skipLayout = false) {
|
|
453
456
|
// Remove view
|
|
454
|
-
const viewItem = this.
|
|
457
|
+
const viewItem = this.viewItems.splice(index, 1)[0];
|
|
455
458
|
viewItem.dispose();
|
|
456
459
|
// Remove sash
|
|
457
|
-
if (this.
|
|
460
|
+
if (this.viewItems.length >= 1) {
|
|
458
461
|
const sashIndex = Math.max(index - 1, 0);
|
|
459
462
|
const sashItem = this.sashes.splice(sashIndex, 1)[0];
|
|
460
463
|
sashItem.disposable();
|
|
@@ -469,10 +472,10 @@ export class Splitview {
|
|
|
469
472
|
return viewItem.view;
|
|
470
473
|
}
|
|
471
474
|
getViewCachedVisibleSize(index) {
|
|
472
|
-
if (index < 0 || index >= this.
|
|
475
|
+
if (index < 0 || index >= this.viewItems.length) {
|
|
473
476
|
throw new Error('Index out of bounds');
|
|
474
477
|
}
|
|
475
|
-
const viewItem = this.
|
|
478
|
+
const viewItem = this.viewItems[index];
|
|
476
479
|
return viewItem.cachedVisibleSize;
|
|
477
480
|
}
|
|
478
481
|
moveView(from, to) {
|
|
@@ -488,14 +491,14 @@ export class Splitview {
|
|
|
488
491
|
this.size = size;
|
|
489
492
|
this.orthogonalSize = orthogonalSize;
|
|
490
493
|
if (!this.proportions) {
|
|
491
|
-
const indexes = range(this.
|
|
492
|
-
const lowPriorityIndexes = indexes.filter((i) => this.
|
|
493
|
-
const highPriorityIndexes = indexes.filter((i) => this.
|
|
494
|
-
this.resize(this.
|
|
494
|
+
const indexes = range(this.viewItems.length);
|
|
495
|
+
const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
|
|
496
|
+
const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
|
|
497
|
+
this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
|
|
495
498
|
}
|
|
496
499
|
else {
|
|
497
|
-
for (let i = 0; i < this.
|
|
498
|
-
const item = this.
|
|
500
|
+
for (let i = 0; i < this.viewItems.length; i++) {
|
|
501
|
+
const item = this.viewItems[i];
|
|
499
502
|
item.size = clamp(Math.round(this.proportions[i] * size), item.minimumSize, item.maximumSize);
|
|
500
503
|
}
|
|
501
504
|
}
|
|
@@ -503,18 +506,18 @@ export class Splitview {
|
|
|
503
506
|
this.layoutViews();
|
|
504
507
|
}
|
|
505
508
|
relayout(lowPriorityIndexes, highPriorityIndexes) {
|
|
506
|
-
const contentSize = this.
|
|
507
|
-
this.resize(this.
|
|
509
|
+
const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
510
|
+
this.resize(this.viewItems.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);
|
|
508
511
|
this.distributeEmptySpace();
|
|
509
512
|
this.layoutViews();
|
|
510
513
|
this.saveProportions();
|
|
511
514
|
}
|
|
512
515
|
distributeEmptySpace(lowPriorityIndex) {
|
|
513
|
-
const contentSize = this.
|
|
516
|
+
const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
514
517
|
let emptyDelta = this.size - contentSize;
|
|
515
|
-
const indexes = range(this.
|
|
516
|
-
const lowPriorityIndexes = indexes.filter((i) => this.
|
|
517
|
-
const highPriorityIndexes = indexes.filter((i) => this.
|
|
518
|
+
const indexes = range(this.viewItems.length - 1, -1);
|
|
519
|
+
const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
|
|
520
|
+
const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
|
|
518
521
|
for (const index of highPriorityIndexes) {
|
|
519
522
|
pushToStart(indexes, index);
|
|
520
523
|
}
|
|
@@ -525,7 +528,7 @@ export class Splitview {
|
|
|
525
528
|
pushToEnd(indexes, lowPriorityIndex);
|
|
526
529
|
}
|
|
527
530
|
for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {
|
|
528
|
-
const item = this.
|
|
531
|
+
const item = this.viewItems[indexes[i]];
|
|
529
532
|
const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);
|
|
530
533
|
const viewDelta = size - item.size;
|
|
531
534
|
emptyDelta -= viewDelta;
|
|
@@ -534,16 +537,16 @@ export class Splitview {
|
|
|
534
537
|
}
|
|
535
538
|
saveProportions() {
|
|
536
539
|
if (this.proportionalLayout && this.contentSize > 0) {
|
|
537
|
-
this._proportions = this.
|
|
540
|
+
this._proportions = this.viewItems.map((i) => i.size / this.contentSize);
|
|
538
541
|
}
|
|
539
542
|
}
|
|
540
543
|
layoutViews() {
|
|
541
|
-
this.contentSize = this.
|
|
544
|
+
this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
542
545
|
let sum = 0;
|
|
543
546
|
const x = [];
|
|
544
547
|
this.updateSashEnablement();
|
|
545
|
-
for (let i = 0; i < this.
|
|
546
|
-
sum += this.
|
|
548
|
+
for (let i = 0; i < this.viewItems.length - 1; i++) {
|
|
549
|
+
sum += this.viewItems[i].size;
|
|
547
550
|
x.push(sum);
|
|
548
551
|
const offset = Math.min(Math.max(0, sum - 2), this.size - 4);
|
|
549
552
|
if (this._orientation === Orientation.HORIZONTAL) {
|
|
@@ -555,7 +558,7 @@ export class Splitview {
|
|
|
555
558
|
this.sashes[i].container.style.top = `${offset}px`;
|
|
556
559
|
}
|
|
557
560
|
}
|
|
558
|
-
this.
|
|
561
|
+
this.viewItems.forEach((view, i) => {
|
|
559
562
|
if (this._orientation === Orientation.HORIZONTAL) {
|
|
560
563
|
view.container.style.width = `${view.size}px`;
|
|
561
564
|
view.container.style.left = i == 0 ? '0px' : `${x[i - 1]}px`;
|
|
@@ -574,7 +577,7 @@ export class Splitview {
|
|
|
574
577
|
findFirstSnapIndex(indexes) {
|
|
575
578
|
// visible views first
|
|
576
579
|
for (const index of indexes) {
|
|
577
|
-
const viewItem = this.
|
|
580
|
+
const viewItem = this.viewItems[index];
|
|
578
581
|
if (!viewItem.visible) {
|
|
579
582
|
continue;
|
|
580
583
|
}
|
|
@@ -584,7 +587,7 @@ export class Splitview {
|
|
|
584
587
|
}
|
|
585
588
|
// then, hidden views
|
|
586
589
|
for (const index of indexes) {
|
|
587
|
-
const viewItem = this.
|
|
590
|
+
const viewItem = this.viewItems[index];
|
|
588
591
|
if (viewItem.visible &&
|
|
589
592
|
viewItem.maximumSize - viewItem.minimumSize > 0) {
|
|
590
593
|
return undefined;
|
|
@@ -597,10 +600,10 @@ export class Splitview {
|
|
|
597
600
|
}
|
|
598
601
|
updateSashEnablement() {
|
|
599
602
|
let previous = false;
|
|
600
|
-
const collapsesDown = this.
|
|
603
|
+
const collapsesDown = this.viewItems.map((i) => (previous = i.size - i.minimumSize > 0 || previous));
|
|
601
604
|
previous = false;
|
|
602
|
-
const expandsDown = this.
|
|
603
|
-
const reverseViews = [...this.
|
|
605
|
+
const expandsDown = this.viewItems.map((i) => (previous = i.maximumSize - i.size > 0 || previous));
|
|
606
|
+
const reverseViews = [...this.viewItems].reverse();
|
|
604
607
|
previous = false;
|
|
605
608
|
const collapsesUp = reverseViews
|
|
606
609
|
.map((i) => (previous = i.size - i.minimumSize > 0 || previous))
|
|
@@ -612,19 +615,19 @@ export class Splitview {
|
|
|
612
615
|
let position = 0;
|
|
613
616
|
for (let index = 0; index < this.sashes.length; index++) {
|
|
614
617
|
const sash = this.sashes[index];
|
|
615
|
-
const viewItem = this.
|
|
618
|
+
const viewItem = this.viewItems[index];
|
|
616
619
|
position += viewItem.size;
|
|
617
620
|
const min = !(collapsesDown[index] && expandsUp[index + 1]);
|
|
618
621
|
const max = !(expandsDown[index] && collapsesUp[index + 1]);
|
|
619
622
|
if (min && max) {
|
|
620
623
|
const upIndexes = range(index, -1);
|
|
621
|
-
const downIndexes = range(index + 1, this.
|
|
624
|
+
const downIndexes = range(index + 1, this.viewItems.length);
|
|
622
625
|
const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
|
|
623
626
|
const snapAfterIndex = this.findFirstSnapIndex(downIndexes);
|
|
624
627
|
const snappedBefore = typeof snapBeforeIndex === 'number' &&
|
|
625
|
-
!this.
|
|
628
|
+
!this.viewItems[snapBeforeIndex].visible;
|
|
626
629
|
const snappedAfter = typeof snapAfterIndex === 'number' &&
|
|
627
|
-
!this.
|
|
630
|
+
!this.viewItems[snapAfterIndex].visible;
|
|
628
631
|
if (snappedBefore &&
|
|
629
632
|
collapsesUp[index] &&
|
|
630
633
|
(position > 0 || this.startSnappingEnabled)) {
|
|
@@ -684,6 +687,9 @@ export class Splitview {
|
|
|
684
687
|
break;
|
|
685
688
|
}
|
|
686
689
|
}
|
|
690
|
+
for (const viewItem of this.viewItems) {
|
|
691
|
+
viewItem.dispose();
|
|
692
|
+
}
|
|
687
693
|
this.element.remove();
|
|
688
694
|
}
|
|
689
695
|
}
|