@eclipse-glsp/client 1.0.0 → 1.1.0-RC01
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/lib/base/types.d.ts +2 -0
- package/lib/base/types.d.ts.map +1 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +2 -0
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +1 -1
- package/lib/features/layout/hbox-layout.d.ts.map +1 -1
- package/lib/features/layout/hbox-layout.js +19 -7
- package/lib/features/layout/hbox-layout.js.map +1 -1
- package/lib/features/layout/layouter.d.ts +37 -0
- package/lib/features/layout/layouter.d.ts.map +1 -0
- package/lib/features/layout/layouter.js +131 -0
- package/lib/features/layout/layouter.js.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.js +201 -0
- package/lib/features/layout/tests/freeform-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/hbox-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts +34 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.js +96 -0
- package/lib/features/layout/tests/layouter-test-util.js.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/vbox-layout.spec.js.map +1 -0
- package/lib/features/layout/vbox-layout.d.ts +1 -1
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +17 -5
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +1 -1
- package/lib/sprotty-reexport.d.ts.map +1 -1
- package/lib/sprotty-reexport.js +6 -4
- package/lib/sprotty-reexport.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts.map +1 -1
- package/lib/views/glsp-projection-view.js +8 -2
- package/lib/views/glsp-projection-view.js.map +1 -1
- package/package.json +6 -5
- package/src/features/layout/di.config.ts +3 -1
- package/src/features/layout/hbox-layout.ts +24 -7
- package/src/features/layout/layouter.ts +137 -0
- package/src/features/layout/tests/freeform-layout.spec.ts +216 -0
- package/src/features/layout/tests/hbox-layout.spec.ts +171 -0
- package/src/features/layout/tests/layouter-test-util.ts +122 -0
- package/src/features/layout/tests/vbox-layout.spec.ts +171 -0
- package/src/features/layout/vbox-layout.ts +22 -5
- package/src/sprotty-reexport.ts +6 -1
- package/src/views/glsp-projection-view.tsx +10 -3
package/lib/base/types.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export declare const TYPES: {
|
|
|
28
28
|
IAnchorComputer: symbol;
|
|
29
29
|
AnimationFrameSyncer: symbol;
|
|
30
30
|
IButtonHandler: symbol;
|
|
31
|
+
IButtonHandlerRegistration: symbol;
|
|
31
32
|
ICommandPaletteActionProvider: symbol;
|
|
32
33
|
ICommandPaletteActionProviderRegistry: symbol;
|
|
33
34
|
CommandRegistration: symbol;
|
|
@@ -110,6 +111,7 @@ export declare const GLSP_TYPES: {
|
|
|
110
111
|
IAnchorComputer: symbol;
|
|
111
112
|
AnimationFrameSyncer: symbol;
|
|
112
113
|
IButtonHandler: symbol;
|
|
114
|
+
IButtonHandlerRegistration: symbol;
|
|
113
115
|
ICommandPaletteActionProvider: symbol;
|
|
114
116
|
ICommandPaletteActionProviderRegistry: symbol;
|
|
115
117
|
CommandRegistration: symbol;
|
package/lib/base/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/base/types.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/base/types.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAa5C,QAAA,MAAM,YAAY,iBAShB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -20,6 +20,7 @@ const sprotty_1 = require("sprotty");
|
|
|
20
20
|
const freeform_layout_1 = require("./freeform-layout");
|
|
21
21
|
const hbox_layout_1 = require("./hbox-layout");
|
|
22
22
|
const layout_elements_action_1 = require("./layout-elements-action");
|
|
23
|
+
const layouter_1 = require("./layouter");
|
|
23
24
|
const vbox_layout_1 = require("./vbox-layout");
|
|
24
25
|
const layoutModule = new inversify_1.ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
25
26
|
const context = { bind, isBound };
|
|
@@ -27,6 +28,7 @@ const layoutModule = new inversify_1.ContainerModule((bind, _unbind, isBound, re
|
|
|
27
28
|
(0, sprotty_1.configureActionHandler)(context, layout_elements_action_1.AlignElementsAction.KIND, layout_elements_action_1.AlignElementsActionHandler);
|
|
28
29
|
rebind(sprotty_1.VBoxLayouter).to(vbox_layout_1.VBoxLayouterExt);
|
|
29
30
|
rebind(sprotty_1.HBoxLayouter).to(hbox_layout_1.HBoxLayouterExt);
|
|
31
|
+
rebind(sprotty_1.TYPES.Layouter).to(layouter_1.LayouterExt);
|
|
30
32
|
(0, sprotty_1.configureLayout)({ bind, isBound }, freeform_layout_1.FreeFormLayouter.KIND, freeform_layout_1.FreeFormLayouter);
|
|
31
33
|
});
|
|
32
34
|
exports.default = layoutModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA4C;AAC5C,qCAAqG;AACrG,uDAAqD;AACrD,+CAAgD;AAChD,qEAKkC;AAClC,yCAAyC;AACzC,+CAAgD;AAEhD,MAAM,YAAY,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACxE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClC,IAAA,gCAAsB,EAAC,OAAO,EAAE,6CAAoB,CAAC,IAAI,EAAE,oDAA2B,CAAC,CAAC;IACxF,IAAA,gCAAsB,EAAC,OAAO,EAAE,4CAAmB,CAAC,IAAI,EAAE,mDAA0B,CAAC,CAAC;IAEtF,MAAM,CAAC,sBAAY,CAAC,CAAC,EAAE,CAAC,6BAAe,CAAC,CAAC;IACzC,MAAM,CAAC,sBAAY,CAAC,CAAC,EAAE,CAAC,6BAAe,CAAC,CAAC;IACzC,MAAM,CAAC,eAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,sBAAW,CAAC,CAAC;IACvC,IAAA,yBAAe,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kCAAgB,CAAC,IAAI,EAAE,kCAAgB,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH,kBAAe,YAAY,CAAC"}
|
|
@@ -36,6 +36,6 @@ export declare class HBoxLayouterExt extends HBoxLayouter {
|
|
|
36
36
|
protected getElementLayoutOptions(element: SModelElement): HBoxLayoutOptionsExt | undefined;
|
|
37
37
|
protected getFinalContainerBounds(container: SParentElement & LayoutContainer, lastOffset: Point, options: HBoxLayoutOptionsExt, maxWidth: number, maxHeight: number): Bounds;
|
|
38
38
|
protected getDefaultLayoutOptions(): HBoxLayoutOptionsExt;
|
|
39
|
-
protected
|
|
39
|
+
protected filterContainerOptions(containerOptions: HBoxLayoutOptionsExt): HBoxLayoutOptionsExt;
|
|
40
40
|
}
|
|
41
41
|
//# sourceMappingURL=hbox-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hbox-layout.d.ts","sourceRoot":"","sources":["../../../src/features/layout/hbox-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EACH,UAAU,EAGV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBACa,eAAgB,SAAQ,YAAY;IAC7C,OAAgB,IAAI,SAAqB;IAEhC,MAAM,CAAC,SAAS,EAAE,cAAc,GAAG,eAAe,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"hbox-layout.d.ts","sourceRoot":"","sources":["../../../src/features/layout/hbox-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EACH,UAAU,EAGV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBACa,eAAgB,SAAQ,YAAY;IAC7C,OAAgB,IAAI,SAAqB;IAEhC,MAAM,CAAC,SAAS,EAAE,cAAc,GAAG,eAAe,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;cAwC3E,eAAe,CAC9B,SAAS,EAAE,cAAc,GAAG,eAAe,EAC3C,gBAAgB,EAAE,oBAAoB,EACtC,QAAQ,EAAE,gBAAgB,GAC3B,SAAS;cAyBO,cAAc,CAC7B,SAAS,EAAE,cAAc,GAAG,eAAe,EAC3C,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,EAAE,oBAAoB,EACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,KAAK;cA8BW,WAAW,CAC1B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,EAClC,gBAAgB,EAAE,oBAAoB,EACtC,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,KAAK;cAgCW,uBAAuB,CACtC,SAAS,EAAE,aAAa,EACxB,aAAa,EAAE,oBAAoB,EACnC,QAAQ,EAAE,gBAAgB,GAC3B,MAAM;cAaU,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,GAAG,oBAAoB;cAIzG,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB;IAIjF,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB,GAAG,SAAS;cAIxE,uBAAuB,CACtC,SAAS,EAAE,cAAc,GAAG,eAAe,EAC3C,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,MAAM;cAeU,uBAAuB,IAAI,oBAAoB;IAqBlE,SAAS,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,oBAAoB;CAOjG"}
|
|
@@ -30,10 +30,13 @@ const sprotty_1 = require("sprotty");
|
|
|
30
30
|
*/
|
|
31
31
|
let HBoxLayouterExt = class HBoxLayouterExt extends sprotty_1.HBoxLayouter {
|
|
32
32
|
layout(container, layouter) {
|
|
33
|
+
var _a, _b;
|
|
33
34
|
const boundsData = layouter.getBoundsData(container);
|
|
34
35
|
const options = this.getLayoutOptions(container);
|
|
35
36
|
const childrenSize = this.getChildrenSize(container, options, layouter);
|
|
36
37
|
const fixedSize = this.getFixedContainerBounds(container, options, layouter);
|
|
38
|
+
const currentWidth = boundsData.bounds ? ((_a = boundsData.bounds) === null || _a === void 0 ? void 0 : _a.width) - options.paddingLeft - options.paddingRight : 0;
|
|
39
|
+
const currentHeight = boundsData.bounds ? ((_b = boundsData.bounds) === null || _b === void 0 ? void 0 : _b.height) - options.paddingTop - options.paddingBottom : 0;
|
|
37
40
|
const maxWidth = options.paddingFactor *
|
|
38
41
|
(options.resizeContainer
|
|
39
42
|
? Math.max(fixedSize.width - options.paddingLeft - options.paddingRight, childrenSize.width)
|
|
@@ -42,16 +45,18 @@ let HBoxLayouterExt = class HBoxLayouterExt extends sprotty_1.HBoxLayouter {
|
|
|
42
45
|
(options.resizeContainer
|
|
43
46
|
? Math.max(fixedSize.height - options.paddingTop - options.paddingBottom, childrenSize.height)
|
|
44
47
|
: Math.max(0, fixedSize.height - options.paddingTop - options.paddingBottom));
|
|
48
|
+
const width = Math.max(currentWidth, maxWidth);
|
|
49
|
+
const height = Math.max(currentHeight, maxHeight);
|
|
45
50
|
// Remaining size that can be grabbed by children with the hGrab option
|
|
46
|
-
const grabWidth =
|
|
51
|
+
const grabWidth = width - childrenSize.width;
|
|
47
52
|
// Number of children that request hGrab
|
|
48
53
|
// FIXME: This approach works fine when only 1 child uses HGrab, but may cause rounding issues
|
|
49
54
|
// when the grabHeight can't be equally shared by all children.
|
|
50
55
|
const grabbingChildren = container.children
|
|
51
56
|
.map(child => this.getChildLayoutOptions(child, options))
|
|
52
57
|
.filter(opt => opt.hGrab).length;
|
|
53
|
-
if (
|
|
54
|
-
const offset = this.layoutChildren(container, layouter, options,
|
|
58
|
+
if (width > 0 && height > 0) {
|
|
59
|
+
const offset = this.layoutChildren(container, layouter, options, width, height, grabWidth, grabbingChildren);
|
|
55
60
|
boundsData.bounds = this.getFinalContainerBounds(container, offset, options, childrenSize.width, childrenSize.height);
|
|
56
61
|
boundsData.boundsChanged = true;
|
|
57
62
|
}
|
|
@@ -99,8 +104,11 @@ let HBoxLayouterExt = class HBoxLayouterExt extends sprotty_1.HBoxLayouter {
|
|
|
99
104
|
return currentOffset;
|
|
100
105
|
}
|
|
101
106
|
layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight, grabWidth, grabbingChildren) {
|
|
107
|
+
const vAlign = childOptions.vGrab ? 'top' : childOptions.vAlign;
|
|
108
|
+
const dy = this.getDy(vAlign, bounds, maxHeight);
|
|
102
109
|
let offset = super.layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight);
|
|
103
|
-
|
|
110
|
+
boundsData.bounds = Object.assign(Object.assign({}, boundsData.bounds), { x: currentOffset.x, y: currentOffset.y + dy });
|
|
111
|
+
if (childOptions.vGrab) {
|
|
104
112
|
boundsData.bounds = {
|
|
105
113
|
x: boundsData.bounds.x,
|
|
106
114
|
y: boundsData.bounds.y,
|
|
@@ -136,7 +144,7 @@ let HBoxLayouterExt = class HBoxLayouterExt extends sprotty_1.HBoxLayouter {
|
|
|
136
144
|
return protocol_1.Bounds.EMPTY;
|
|
137
145
|
}
|
|
138
146
|
getChildLayoutOptions(child, containerOptions) {
|
|
139
|
-
return super.getChildLayoutOptions(child, containerOptions);
|
|
147
|
+
return super.getChildLayoutOptions(child, this.filterContainerOptions(containerOptions));
|
|
140
148
|
}
|
|
141
149
|
getLayoutOptions(element) {
|
|
142
150
|
return super.getLayoutOptions(element);
|
|
@@ -177,8 +185,12 @@ let HBoxLayouterExt = class HBoxLayouterExt extends sprotty_1.HBoxLayouter {
|
|
|
177
185
|
prefWidth: null
|
|
178
186
|
};
|
|
179
187
|
}
|
|
180
|
-
|
|
181
|
-
|
|
188
|
+
filterContainerOptions(containerOptions) {
|
|
189
|
+
// Reset object-specific layout options to default before merging,
|
|
190
|
+
// to make sure they won't be inherited (grab, prefSize)
|
|
191
|
+
// eslint-disable-next-line no-null/no-null
|
|
192
|
+
const localOptions = { vGrab: false, hGrab: false, prefHeight: null, prefWidth: null };
|
|
193
|
+
return Object.assign(Object.assign({}, containerOptions), localOptions);
|
|
182
194
|
}
|
|
183
195
|
};
|
|
184
196
|
HBoxLayouterExt.KIND = sprotty_1.HBoxLayouter.KIND;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hbox-layout.js","sourceRoot":"","sources":["../../../src/features/layout/hbox-layout.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,qDAAkE;AAClE,yCAAuC;AACvC,qCAWiB;AASjB;;GAEG;AAEH,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,sBAAY;IAGpC,MAAM,CAAC,SAA2C,EAAE,QAA0B
|
|
1
|
+
{"version":3,"file":"hbox-layout.js","sourceRoot":"","sources":["../../../src/features/layout/hbox-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { BoundsData, ILogger, LayoutRegistry, StatefulLayouter, SModelElement, Layouter, SParentElement, LayoutContainer } from 'sprotty';
|
|
17
|
+
import { Bounds } from 'sprotty-protocol/lib/utils/geometry';
|
|
18
|
+
export declare class LayouterExt extends Layouter {
|
|
19
|
+
layout(element2boundsData: Map<SModelElement, BoundsData>): void;
|
|
20
|
+
}
|
|
21
|
+
export declare class StatefulLayouterExt extends StatefulLayouter {
|
|
22
|
+
protected readonly elementToBoundsData: Map<SModelElement, BoundsData>;
|
|
23
|
+
protected readonly layoutRegistry2: LayoutRegistry;
|
|
24
|
+
protected toBeLayouted2: (SParentElement & LayoutContainer)[];
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param elementToBoundsData The map of element to bounds data. Bounds Data are computed from the hidden
|
|
28
|
+
* SVG rendering pass.
|
|
29
|
+
* @param layoutRegistry2 The registry of available layouts.
|
|
30
|
+
* @param log The log.
|
|
31
|
+
*/
|
|
32
|
+
constructor(elementToBoundsData: Map<SModelElement, BoundsData>, layoutRegistry2: LayoutRegistry, log: ILogger);
|
|
33
|
+
getBoundsData(element: SModelElement): BoundsData;
|
|
34
|
+
layout(): void;
|
|
35
|
+
protected doLayout(element: SParentElement & LayoutContainer): Bounds;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=layouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouter.d.ts","sourceRoot":"","sources":["../../../src/features/layout/layouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,UAAU,EACV,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,eAAe,EAElB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,qBACa,WAAY,SAAQ,QAAQ;IAC5B,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI;CAG5E;AASD,qBAAa,mBAAoB,SAAQ,gBAAgB;IAWjD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAc;IAXtD,SAAS,CAAC,aAAa,EAAE,CAAC,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC;IAE9D;;;;;;OAMG;gBAEoB,mBAAmB,EAAE,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,EACnD,eAAe,EAAE,cAAc,EAClD,GAAG,EAAE,OAAO;IAeP,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU;IAwBjD,MAAM,IAAI,IAAI;cAwBJ,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,GAAG,MAAM;CAiBjF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.StatefulLayouterExt = exports.LayouterExt = void 0;
|
|
10
|
+
/********************************************************************************
|
|
11
|
+
* Copyright (c) 2022 EclipseSource and others.
|
|
12
|
+
*
|
|
13
|
+
* This program and the accompanying materials are made available under the
|
|
14
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
15
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
16
|
+
*
|
|
17
|
+
* This Source Code may also be made available under the following Secondary
|
|
18
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
19
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
20
|
+
* with the GNU Classpath Exception which is available at
|
|
21
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
22
|
+
*
|
|
23
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
24
|
+
********************************************************************************/
|
|
25
|
+
const sprotty_1 = require("sprotty");
|
|
26
|
+
const inversify_1 = require("inversify");
|
|
27
|
+
const geometry_1 = require("sprotty-protocol/lib/utils/geometry");
|
|
28
|
+
let LayouterExt = class LayouterExt extends sprotty_1.Layouter {
|
|
29
|
+
layout(element2boundsData) {
|
|
30
|
+
new StatefulLayouterExt(element2boundsData, this.layoutRegistry, this.logger).layout();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
LayouterExt = __decorate([
|
|
34
|
+
(0, inversify_1.injectable)()
|
|
35
|
+
], LayouterExt);
|
|
36
|
+
exports.LayouterExt = LayouterExt;
|
|
37
|
+
// 2-pass layout:
|
|
38
|
+
// Step 1: Find "rendered size" of each element (may take resizeContainer into account)
|
|
39
|
+
// Child-to-parent layout
|
|
40
|
+
// Step 2: Extend parents as necessary, then use the adjusted parent size to properly
|
|
41
|
+
// align children (center/end alignments, hGrab/vGrab)
|
|
42
|
+
// Parent-to-children layout
|
|
43
|
+
class StatefulLayouterExt extends sprotty_1.StatefulLayouter {
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @param elementToBoundsData The map of element to bounds data. Bounds Data are computed from the hidden
|
|
47
|
+
* SVG rendering pass.
|
|
48
|
+
* @param layoutRegistry2 The registry of available layouts.
|
|
49
|
+
* @param log The log.
|
|
50
|
+
*/
|
|
51
|
+
constructor(elementToBoundsData, layoutRegistry2, log) {
|
|
52
|
+
super(elementToBoundsData, layoutRegistry2, log);
|
|
53
|
+
this.elementToBoundsData = elementToBoundsData;
|
|
54
|
+
this.layoutRegistry2 = layoutRegistry2;
|
|
55
|
+
this.toBeLayouted2 = [];
|
|
56
|
+
elementToBoundsData.forEach((data, element) => {
|
|
57
|
+
if ((0, sprotty_1.isLayoutContainer)(element)) {
|
|
58
|
+
this.toBeLayouted2.push(element);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
for (const element of this.toBeLayouted2) {
|
|
62
|
+
// Clear previous layout information for dynamic-layout objects
|
|
63
|
+
elementToBoundsData.delete(element);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getBoundsData(element) {
|
|
67
|
+
let boundsData = this.elementToBoundsData.get(element);
|
|
68
|
+
let bounds = element.bounds;
|
|
69
|
+
if ((0, sprotty_1.isLayoutContainer)(element) && this.toBeLayouted2.indexOf(element) >= 0) {
|
|
70
|
+
bounds = this.doLayout(element);
|
|
71
|
+
}
|
|
72
|
+
else if ((0, sprotty_1.isLayoutContainer)(element)) {
|
|
73
|
+
bounds = {
|
|
74
|
+
x: 0,
|
|
75
|
+
y: 0,
|
|
76
|
+
width: -1,
|
|
77
|
+
height: -1
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (!boundsData) {
|
|
81
|
+
boundsData = {
|
|
82
|
+
bounds: bounds,
|
|
83
|
+
boundsChanged: false,
|
|
84
|
+
alignmentChanged: false
|
|
85
|
+
};
|
|
86
|
+
this.elementToBoundsData.set(element, boundsData);
|
|
87
|
+
}
|
|
88
|
+
return boundsData;
|
|
89
|
+
}
|
|
90
|
+
layout() {
|
|
91
|
+
// First pass: apply layout with cleared container data. Will get
|
|
92
|
+
// preferred size for all elements (Children first, then parents)
|
|
93
|
+
while (this.toBeLayouted2.length > 0) {
|
|
94
|
+
const element = this.toBeLayouted2[0];
|
|
95
|
+
this.doLayout(element);
|
|
96
|
+
}
|
|
97
|
+
this.toBeLayouted2 = [];
|
|
98
|
+
this.elementToBoundsData.forEach((data, element) => {
|
|
99
|
+
if ((0, sprotty_1.isLayoutContainer)(element)) {
|
|
100
|
+
this.toBeLayouted2.push(element);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
// Second pass: apply layout with initial size data for all
|
|
104
|
+
// nodes. Update the position/size of all elements, taking
|
|
105
|
+
// vGrab/hGrab into account (parent -> children).
|
|
106
|
+
while (this.toBeLayouted2.length > 0) {
|
|
107
|
+
const element = this.toBeLayouted2[0];
|
|
108
|
+
this.doLayout(element);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
doLayout(element) {
|
|
112
|
+
const index = this.toBeLayouted2.indexOf(element);
|
|
113
|
+
if (index >= 0) {
|
|
114
|
+
this.toBeLayouted2.splice(index, 1);
|
|
115
|
+
}
|
|
116
|
+
const layout = this.layoutRegistry2.get(element.layout);
|
|
117
|
+
if (layout) {
|
|
118
|
+
layout.layout(element, this);
|
|
119
|
+
}
|
|
120
|
+
const boundsData = this.elementToBoundsData.get(element);
|
|
121
|
+
if (boundsData !== undefined && boundsData.bounds !== undefined) {
|
|
122
|
+
return boundsData.bounds;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.log.error(element, 'Layout failed');
|
|
126
|
+
return geometry_1.Bounds.EMPTY;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.StatefulLayouterExt = StatefulLayouterExt;
|
|
131
|
+
//# sourceMappingURL=layouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouter.js","sourceRoot":"","sources":["../../../src/features/layout/layouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freeform-layout.spec.d.ts","sourceRoot":"","sources":["../../../../src/features/layout/tests/freeform-layout.spec.ts"],"names":[],"mappings":"AAgBA,OAAO,OAAO,CAAC;AACf,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/********************************************************************************
|
|
4
|
+
* Copyright (c) 2022 STMicroelectronics and others.
|
|
5
|
+
*
|
|
6
|
+
* This program and the accompanying materials are made available under the
|
|
7
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
8
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
9
|
+
*
|
|
10
|
+
* This Source Code may also be made available under the following Secondary
|
|
11
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
12
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
13
|
+
* with the GNU Classpath Exception which is available at
|
|
14
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
15
|
+
*
|
|
16
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
17
|
+
********************************************************************************/
|
|
18
|
+
const chai_1 = require("chai");
|
|
19
|
+
require("mocha");
|
|
20
|
+
require("reflect-metadata");
|
|
21
|
+
const sprotty_1 = require("sprotty");
|
|
22
|
+
const layouter_test_util_1 = require("./layouter-test-util");
|
|
23
|
+
describe('FreeFormLayouter', () => {
|
|
24
|
+
const layoutRegistry = (0, layouter_test_util_1.setupLayoutRegistry)();
|
|
25
|
+
const log = new sprotty_1.ConsoleLogger();
|
|
26
|
+
const map = new Map();
|
|
27
|
+
describe('issue-610', () => {
|
|
28
|
+
it('recursive hGrab/vGrab', () => {
|
|
29
|
+
/**
|
|
30
|
+
* _________________________
|
|
31
|
+
* | Category 1 |
|
|
32
|
+
* | _______________________ |
|
|
33
|
+
* || ||
|
|
34
|
+
* || ||
|
|
35
|
+
* || ||
|
|
36
|
+
* || ||
|
|
37
|
+
* ||_______________________||
|
|
38
|
+
* | _______________________ |
|
|
39
|
+
* ||_left____________right_||
|
|
40
|
+
* |_________________________|
|
|
41
|
+
*
|
|
42
|
+
* This test case checks recursive hGrab/vGrab functionality of nested compartments
|
|
43
|
+
* See also issue 610 for details and an example model https://github.com/eclipse-glsp/glsp/issues/610.
|
|
44
|
+
*/
|
|
45
|
+
const model = (0, layouter_test_util_1.gModel)();
|
|
46
|
+
const category = (0, layouter_test_util_1.sNode)('category', 'vbox', { width: 410.0, height: 215.0 }, undefined, {
|
|
47
|
+
vGrab: false,
|
|
48
|
+
hGrab: false,
|
|
49
|
+
hAlign: 'center',
|
|
50
|
+
prefWidth: 410.0,
|
|
51
|
+
prefHeight: 215.0
|
|
52
|
+
});
|
|
53
|
+
const headerComp = (0, layouter_test_util_1.sComp)('comp:header', 'hbox');
|
|
54
|
+
headerComp.children = [(0, layouter_test_util_1.sLabel)('Category 1')];
|
|
55
|
+
const childContainer = (0, layouter_test_util_1.sComp)('struct', 'freeform', { hGrab: true, vGrab: true });
|
|
56
|
+
const labelContainer = (0, layouter_test_util_1.sComp)('struct', 'hbox', { hGrab: true });
|
|
57
|
+
labelContainer.children = [(0, layouter_test_util_1.sLabel)('left text', { hGrab: true }), (0, layouter_test_util_1.sLabel)('right text')];
|
|
58
|
+
category.children = [headerComp, childContainer, labelContainer];
|
|
59
|
+
model.add(category);
|
|
60
|
+
(0, layouter_test_util_1.layout)(layoutRegistry, log, map, model);
|
|
61
|
+
// check category
|
|
62
|
+
(0, chai_1.expect)(map.get(category).bounds).to.deep.equal({ x: 0, y: 0, width: 410.0, height: 215.0 });
|
|
63
|
+
// check header compartment
|
|
64
|
+
(0, chai_1.expect)(map.get(category.children[0]).bounds).to.deep.equal({ x: 0, y: 0, width: -1, height: -1 });
|
|
65
|
+
// check child freeform compartment
|
|
66
|
+
(0, chai_1.expect)(map.get(category.children[1]).bounds).to.deep.equal({ x: 5, y: 5, width: 400.0, height: 205.0 });
|
|
67
|
+
// check label compartment
|
|
68
|
+
(0, chai_1.expect)(map.get(category.children[2]).bounds).to.deep.equal({ x: 0, y: 0, width: -1, height: -1 });
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('issue-694', () => {
|
|
72
|
+
it('Structure compartment (hGrab=true, vGrab=true), Left-aligned label (hGrab=true), right-aligned label (hGrab=false)', () => {
|
|
73
|
+
/**
|
|
74
|
+
* _________________________
|
|
75
|
+
* | Category 2 |
|
|
76
|
+
* | _______________________ |
|
|
77
|
+
* || ||
|
|
78
|
+
* || ||
|
|
79
|
+
* || Task node ||
|
|
80
|
+
* || ||
|
|
81
|
+
* ||_______________________||
|
|
82
|
+
* | _______________________ |
|
|
83
|
+
* ||_left____________right_||
|
|
84
|
+
* |_________________________|
|
|
85
|
+
*/
|
|
86
|
+
const model = (0, layouter_test_util_1.gModel)();
|
|
87
|
+
const category = (0, layouter_test_util_1.sNode)('category', 'vbox', { width: 500.0, height: 375.0 }, undefined, {
|
|
88
|
+
vGrab: false,
|
|
89
|
+
hGrab: false,
|
|
90
|
+
hAlign: 'center',
|
|
91
|
+
prefWidth: 500.0,
|
|
92
|
+
prefHeight: 375.0
|
|
93
|
+
});
|
|
94
|
+
const headerComp = (0, layouter_test_util_1.sComp)('comp:header', 'hbox');
|
|
95
|
+
headerComp.children = [(0, layouter_test_util_1.sLabel)('Category 2')];
|
|
96
|
+
const childContainer = (0, layouter_test_util_1.sComp)('struct', 'freeform', { hGrab: true, vGrab: true });
|
|
97
|
+
const childNode = (0, layouter_test_util_1.sNode)('task', 'hbox', undefined, { x: 170, y: 190 });
|
|
98
|
+
childNode.children = [(0, layouter_test_util_1.sLabel)('Task node', undefined, { x: 5.0, y: 5.0 }, { width: 25.0, height: 20.0 })];
|
|
99
|
+
childContainer.children = [childNode];
|
|
100
|
+
const labelContainer = (0, layouter_test_util_1.sComp)('struct', 'hbox', { hGrab: true });
|
|
101
|
+
labelContainer.children = [(0, layouter_test_util_1.sLabel)('left text', { hGrab: true }), (0, layouter_test_util_1.sLabel)('right text')];
|
|
102
|
+
category.children = [headerComp, childContainer, labelContainer];
|
|
103
|
+
model.add(category);
|
|
104
|
+
// layout graph
|
|
105
|
+
(0, layouter_test_util_1.layout)(layoutRegistry, log, map, model);
|
|
106
|
+
// check category
|
|
107
|
+
(0, chai_1.expect)(map.get(category).bounds).to.deep.equal({ x: 0, y: 0, width: 500.0, height: 375.0 });
|
|
108
|
+
// check header compartment
|
|
109
|
+
(0, chai_1.expect)(map.get(category.children[0]).bounds).to.deep.equal({ x: 0, y: 0, width: -1, height: -1 });
|
|
110
|
+
// check child freeform compartment
|
|
111
|
+
(0, chai_1.expect)(map.get(category.children[1]).bounds).to.deep.equal({ x: 5.0, y: 5.0, width: 490.0, height: 365.0 });
|
|
112
|
+
// check child task node
|
|
113
|
+
(0, chai_1.expect)(map.get(category.children[1].children[0]).bounds).to.deep.equal({ x: 170.0, y: 190.0, width: 35.0, height: 30.0 });
|
|
114
|
+
// check label compartment
|
|
115
|
+
(0, chai_1.expect)(map.get(category.children[2]).bounds).to.deep.equal({ x: 0, y: 0, width: -1, height: -1 });
|
|
116
|
+
});
|
|
117
|
+
it('Structure compartment (hGrab=true, vGrab=true)', () => {
|
|
118
|
+
/**
|
|
119
|
+
* _________________________
|
|
120
|
+
* | Category 2 |
|
|
121
|
+
* | _______________________ |
|
|
122
|
+
* || ||
|
|
123
|
+
* || Task node ||
|
|
124
|
+
* || ||
|
|
125
|
+
* || ||
|
|
126
|
+
* ||_______________________||
|
|
127
|
+
* |_________________________|
|
|
128
|
+
*/
|
|
129
|
+
const model = (0, layouter_test_util_1.gModel)();
|
|
130
|
+
const category = (0, layouter_test_util_1.sNode)('category', 'vbox', { width: 500.0, height: 375.0 }, undefined, {
|
|
131
|
+
vGrab: false,
|
|
132
|
+
hGrab: false,
|
|
133
|
+
hAlign: 'center',
|
|
134
|
+
prefWidth: 500.0,
|
|
135
|
+
prefHeight: 375.0
|
|
136
|
+
});
|
|
137
|
+
const headerComp = (0, layouter_test_util_1.sComp)('comp:header', 'hbox');
|
|
138
|
+
headerComp.children = [(0, layouter_test_util_1.sLabel)('Category 2')];
|
|
139
|
+
const childContainer = (0, layouter_test_util_1.sComp)('struct', 'freeform', { hGrab: true, vGrab: true });
|
|
140
|
+
const childNode = (0, layouter_test_util_1.sNode)('task', 'hbox', undefined, { x: 55, y: 15 });
|
|
141
|
+
childNode.children = [(0, layouter_test_util_1.sLabel)('Task node', undefined, undefined, { width: 50.0, height: 35.0 })];
|
|
142
|
+
childContainer.children = [childNode];
|
|
143
|
+
category.children = [headerComp, childContainer];
|
|
144
|
+
model.add(category);
|
|
145
|
+
// layout graph
|
|
146
|
+
(0, layouter_test_util_1.layout)(layoutRegistry, log, map, model);
|
|
147
|
+
// check category
|
|
148
|
+
(0, chai_1.expect)(map.get(category).bounds).to.deep.equal({ x: 0, y: 0, width: 500.0, height: 375.0 });
|
|
149
|
+
// check header compartment
|
|
150
|
+
(0, chai_1.expect)(map.get(category.children[0]).bounds).to.deep.equal({ x: 0, y: 0, width: -1, height: -1 });
|
|
151
|
+
// check child freeform compartment
|
|
152
|
+
(0, chai_1.expect)(map.get(category.children[1]).bounds).to.deep.equal({ x: 5.0, y: 5.0, width: 490.0, height: 365.0 });
|
|
153
|
+
// check child task node
|
|
154
|
+
(0, chai_1.expect)(map.get(category.children[1].children[0]).bounds).to.deep.equal({ x: 55.0, y: 15.0, width: 60.0, height: 45.0 });
|
|
155
|
+
});
|
|
156
|
+
it('Structure compartment (hGrab=true, vGrab=true, padding*=10)', () => {
|
|
157
|
+
/**
|
|
158
|
+
* _________________________
|
|
159
|
+
* | Category 2 |
|
|
160
|
+
* | _______________________ |
|
|
161
|
+
* || ||
|
|
162
|
+
* || Task node ||
|
|
163
|
+
* || ||
|
|
164
|
+
* || ||
|
|
165
|
+
* ||_______________________||
|
|
166
|
+
* |_________________________|
|
|
167
|
+
*/
|
|
168
|
+
const model = (0, layouter_test_util_1.gModel)();
|
|
169
|
+
const category = (0, layouter_test_util_1.sNode)('category', 'vbox', { width: 500.0, height: 375.0 }, undefined, {
|
|
170
|
+
vGrab: false,
|
|
171
|
+
hGrab: false,
|
|
172
|
+
hAlign: 'center',
|
|
173
|
+
prefWidth: 500.0,
|
|
174
|
+
prefHeight: 375.0,
|
|
175
|
+
paddingLeft: 10,
|
|
176
|
+
paddingRight: 10,
|
|
177
|
+
paddingTop: 10,
|
|
178
|
+
paddingBottom: 10
|
|
179
|
+
});
|
|
180
|
+
const headerComp = (0, layouter_test_util_1.sComp)('comp:header', 'hbox');
|
|
181
|
+
headerComp.children = [(0, layouter_test_util_1.sLabel)('Category 2')];
|
|
182
|
+
const childContainer = (0, layouter_test_util_1.sComp)('struct', 'freeform', { hGrab: true, vGrab: true });
|
|
183
|
+
const childNode = (0, layouter_test_util_1.sNode)('task', 'hbox', undefined, { x: 55, y: 15 }, { paddingLeft: 10, paddingRight: 10, paddingTop: 10, paddingBottom: 10 });
|
|
184
|
+
childNode.children = [(0, layouter_test_util_1.sLabel)('Task node', undefined, undefined, { width: 50.0, height: 35.0 })];
|
|
185
|
+
childContainer.children = [childNode];
|
|
186
|
+
category.children = [headerComp, childContainer];
|
|
187
|
+
model.add(category);
|
|
188
|
+
// layout graph
|
|
189
|
+
(0, layouter_test_util_1.layout)(layoutRegistry, log, map, model);
|
|
190
|
+
// check category
|
|
191
|
+
(0, chai_1.expect)(map.get(category).bounds).to.deep.equal({ x: 0, y: 0, width: 500.0, height: 375.0 });
|
|
192
|
+
// check header compartment
|
|
193
|
+
(0, chai_1.expect)(map.get(category.children[0]).bounds).to.deep.equal({ x: 0, y: 0, width: -1, height: -1 });
|
|
194
|
+
// check child freeform compartment
|
|
195
|
+
(0, chai_1.expect)(map.get(category.children[1]).bounds).to.deep.equal({ x: 10.0, y: 10.0, width: 480.0, height: 355.0 });
|
|
196
|
+
// check child task node
|
|
197
|
+
(0, chai_1.expect)(map.get(category.children[1].children[0]).bounds).to.deep.equal({ x: 55.0, y: 15.0, width: 70.0, height: 55.0 });
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
//# sourceMappingURL=freeform-layout.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freeform-layout.spec.js","sourceRoot":"","sources":["../../../../src/features/layout/tests/freeform-layout.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hbox-layout.spec.d.ts","sourceRoot":"","sources":["../../../../src/features/layout/tests/hbox-layout.spec.ts"],"names":[],"mappings":"AAkBA,OAAO,OAAO,CAAC;AACf,OAAO,kBAAkB,CAAC"}
|