@eclipse-glsp/client 2.3.0-next.316 → 2.3.0-next.318
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/css/ghost-element.css +3 -1
- package/css/glsp-sprotty.css +0 -5
- package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +5 -3
- package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts.map +1 -1
- package/lib/features/bounds/glsp-hidden-bounds-updater.js +19 -2
- package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
- package/lib/features/bounds/local-bounds.d.ts +7 -3
- package/lib/features/bounds/local-bounds.d.ts.map +1 -1
- package/lib/features/bounds/local-bounds.js +8 -4
- package/lib/features/bounds/local-bounds.js.map +1 -1
- package/lib/features/bounds/set-bounds-feedback-command.d.ts.map +1 -1
- package/lib/features/bounds/set-bounds-feedback-command.js +2 -1
- package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
- package/lib/features/element-template/add-template-element.d.ts.map +1 -1
- package/lib/features/element-template/add-template-element.js +5 -4
- package/lib/features/element-template/add-template-element.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/gmodel-util.d.ts +1 -0
- package/lib/utils/gmodel-util.d.ts.map +1 -1
- package/lib/utils/gmodel-util.js +14 -4
- package/lib/utils/gmodel-util.js.map +1 -1
- package/package.json +3 -3
- package/src/features/bounds/glsp-hidden-bounds-updater.ts +26 -4
- package/src/features/bounds/local-bounds.ts +23 -6
- package/src/features/bounds/set-bounds-feedback-command.ts +2 -1
- package/src/features/element-template/add-template-element.ts +5 -4
- package/src/utils/gmodel-util.ts +15 -4
|
@@ -173,4 +173,5 @@ export declare function getElementTypeId(input: GModelElement | GModelElementSch
|
|
|
173
173
|
export declare function findTopLevelElementByFeature<T>(element: GModelElement, predicate: (t: GModelElement) => t is GModelElement & T, skip?: (t: GModelElement) => boolean): (GModelElement & T) | undefined;
|
|
174
174
|
export declare function calculateDeltaBetweenPoints(target: Point, source: Point, element: GModelElement): Point;
|
|
175
175
|
export declare function isVisibleOnCanvas(model: BoundsAwareModelElement): boolean;
|
|
176
|
+
export declare function getDescendantIds(element?: GModelElement, skip?: (t: GModelElement) => boolean): string[];
|
|
176
177
|
//# sourceMappingURL=gmodel-util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmodel-util.d.ts","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EAEd,aAAa,EACb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"gmodel-util.d.ts","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/gmodel-util.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isVisibleOnCanvas = exports.calculateDeltaBetweenPoints = exports.findTopLevelElementByFeature = exports.getElementTypeId = exports.calcRoute = exports.calcElementAndRoute = exports.calcElementAndRoutingPoints = exports.ROUTE_KINDS = exports.ROUTING_POINT_KINDS = exports.ALL_ROUTING_POINTS = exports.toElementAndRoutingPoints = exports.toElementAndBounds = exports.isSelectableAndBoundsAware = exports.isRoutingHandle = exports.isRoutable = exports.isNonRoutableSelectedBoundsAware = exports.isNonRoutableSelectedMovableBoundsAware = exports.removeCssClasses = exports.addCssClasses = exports.isNotUndefined = exports.hasSelectedElements = exports.getSelectedElementCount = exports.getElements = exports.getMatchingElements = exports.forEachElement = exports.filter = void 0;
|
|
3
|
+
exports.getDescendantIds = exports.isVisibleOnCanvas = exports.calculateDeltaBetweenPoints = exports.findTopLevelElementByFeature = exports.getElementTypeId = exports.calcRoute = exports.calcElementAndRoute = exports.calcElementAndRoutingPoints = exports.ROUTE_KINDS = exports.ROUTING_POINT_KINDS = exports.ALL_ROUTING_POINTS = exports.toElementAndRoutingPoints = exports.toElementAndBounds = exports.isSelectableAndBoundsAware = exports.isRoutingHandle = exports.isRoutable = exports.isNonRoutableSelectedBoundsAware = exports.isNonRoutableSelectedMovableBoundsAware = exports.removeCssClasses = exports.addCssClasses = exports.isNotUndefined = exports.hasSelectedElements = exports.getSelectedElementCount = exports.getElements = exports.getMatchingElements = exports.forEachElement = exports.filter = void 0;
|
|
4
4
|
/********************************************************************************
|
|
5
5
|
* Copyright (c) 2019-2023 EclipseSource and others.
|
|
6
6
|
*
|
|
@@ -293,10 +293,8 @@ function findTopLevelElementByFeature(element, predicate, skip = _t => false) {
|
|
|
293
293
|
}
|
|
294
294
|
exports.findTopLevelElementByFeature = findTopLevelElementByFeature;
|
|
295
295
|
function calculateDeltaBetweenPoints(target, source, element) {
|
|
296
|
-
var _a;
|
|
297
296
|
const delta = sprotty_1.Point.subtract(target, source);
|
|
298
|
-
const
|
|
299
|
-
const zoom = (_a = viewport === null || viewport === void 0 ? void 0 : viewport.zoom) !== null && _a !== void 0 ? _a : 1;
|
|
297
|
+
const zoom = (0, sprotty_1.getZoom)(element);
|
|
300
298
|
const adaptedDelta = { x: delta.x / zoom, y: delta.y / zoom };
|
|
301
299
|
return adaptedDelta;
|
|
302
300
|
}
|
|
@@ -310,4 +308,16 @@ function isVisibleOnCanvas(model) {
|
|
|
310
308
|
modelBounds.y + modelBounds.height >= 0);
|
|
311
309
|
}
|
|
312
310
|
exports.isVisibleOnCanvas = isVisibleOnCanvas;
|
|
311
|
+
function getDescendantIds(element, skip) {
|
|
312
|
+
if (!element || (skip === null || skip === void 0 ? void 0 : skip(element))) {
|
|
313
|
+
return [];
|
|
314
|
+
}
|
|
315
|
+
const parent = element;
|
|
316
|
+
const ids = [parent.id];
|
|
317
|
+
if (parent instanceof sprotty_1.GParentElement) {
|
|
318
|
+
ids.push(...parent.children.flatMap(child => getDescendantIds(child, skip)));
|
|
319
|
+
}
|
|
320
|
+
return ids;
|
|
321
|
+
}
|
|
322
|
+
exports.getDescendantIds = getDescendantIds;
|
|
313
323
|
//# sourceMappingURL=gmodel-util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmodel-util.js","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gmodel-util.js","sourceRoot":"","sources":["../../src/utils/gmodel-util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-glsp/client",
|
|
3
|
-
"version": "2.3.0-next.
|
|
3
|
+
"version": "2.3.0-next.318+645e72f",
|
|
4
4
|
"description": "A sprotty-based client for GLSP",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eclipse",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"watch": "tsc -w"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@eclipse-glsp/sprotty": "2.3.0-next.
|
|
50
|
+
"@eclipse-glsp/sprotty": "2.3.0-next.318+645e72f",
|
|
51
51
|
"autocompleter": "^9.1.0",
|
|
52
52
|
"file-saver": "^2.0.5",
|
|
53
53
|
"lodash": "4.17.21"
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"publishConfig": {
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "645e72fe0e157729e056b93d9a3faa3df61fa1b2"
|
|
63
63
|
}
|
|
@@ -16,20 +16,21 @@
|
|
|
16
16
|
|
|
17
17
|
import {
|
|
18
18
|
Action,
|
|
19
|
+
BoundsData,
|
|
19
20
|
ComputedBoundsAction,
|
|
20
21
|
Deferred,
|
|
21
22
|
EdgeRouterRegistry,
|
|
22
23
|
ElementAndRoutingPoints,
|
|
23
24
|
GModelElement,
|
|
24
|
-
GRoutableElement,
|
|
25
25
|
HiddenBoundsUpdater,
|
|
26
26
|
IActionDispatcher,
|
|
27
|
+
ModelIndexImpl,
|
|
27
28
|
RequestAction,
|
|
28
29
|
ResponseAction
|
|
29
30
|
} from '@eclipse-glsp/sprotty';
|
|
30
31
|
import { inject, injectable, optional } from 'inversify';
|
|
31
32
|
import { VNode } from 'snabbdom';
|
|
32
|
-
import { calcElementAndRoute, isRoutable } from '../../utils/gmodel-util';
|
|
33
|
+
import { BoundsAwareModelElement, calcElementAndRoute, getDescendantIds, isRoutable } from '../../utils/gmodel-util';
|
|
33
34
|
import { LocalComputedBoundsAction, LocalRequestBoundsAction } from './local-bounds';
|
|
34
35
|
|
|
35
36
|
/**
|
|
@@ -42,8 +43,10 @@ export class GLSPHiddenBoundsUpdater extends HiddenBoundsUpdater {
|
|
|
42
43
|
@inject(EdgeRouterRegistry) @optional() protected readonly edgeRouterRegistry?: EdgeRouterRegistry;
|
|
43
44
|
|
|
44
45
|
protected element2route: ElementAndRoutingPoints[] = [];
|
|
45
|
-
|
|
46
|
-
protected
|
|
46
|
+
|
|
47
|
+
protected getElement2BoundsData(): Map<BoundsAwareModelElement, BoundsData> {
|
|
48
|
+
return this['element2boundsData'];
|
|
49
|
+
}
|
|
47
50
|
|
|
48
51
|
override decorate(vnode: VNode, element: GModelElement): VNode {
|
|
49
52
|
super.decorate(vnode, element);
|
|
@@ -54,6 +57,9 @@ export class GLSPHiddenBoundsUpdater extends HiddenBoundsUpdater {
|
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
override postUpdate(cause?: Action): void {
|
|
60
|
+
if (LocalRequestBoundsAction.is(cause) && cause.elementIDs) {
|
|
61
|
+
this.focusOnElements(cause.elementIDs);
|
|
62
|
+
}
|
|
57
63
|
const actions = this.captureActions(() => super.postUpdate(cause));
|
|
58
64
|
actions
|
|
59
65
|
.filter(action => ComputedBoundsAction.is(action))
|
|
@@ -61,6 +67,22 @@ export class GLSPHiddenBoundsUpdater extends HiddenBoundsUpdater {
|
|
|
61
67
|
this.element2route = [];
|
|
62
68
|
}
|
|
63
69
|
|
|
70
|
+
protected focusOnElements(elementIDs: string[]): void {
|
|
71
|
+
const data = this.getElement2BoundsData();
|
|
72
|
+
if (data.size > 0) {
|
|
73
|
+
// expand given IDs to their descendent element IDs as we need their bounding boxes as well
|
|
74
|
+
const index = [...data.keys()][0].index;
|
|
75
|
+
const relevantIds = new Set(elementIDs.flatMap(elementId => this.expandElementId(elementId, index, elementIDs)));
|
|
76
|
+
|
|
77
|
+
// ensure we only keep the bounds of the elements we are interested in
|
|
78
|
+
data.forEach((_bounds, element) => !relevantIds.has(element.id) && data.delete(element));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
protected expandElementId(id: string, index: ModelIndexImpl, elementIDs: string[]): string[] {
|
|
83
|
+
return getDescendantIds(index.getById(id));
|
|
84
|
+
}
|
|
85
|
+
|
|
64
86
|
protected captureActions(call: () => void): Action[] {
|
|
65
87
|
const capturingActionDispatcher = new CapturingActionDispatcher();
|
|
66
88
|
const actualActionDispatcher = this.actionDispatcher;
|
|
@@ -26,21 +26,38 @@ import {
|
|
|
26
26
|
GModelRootSchema,
|
|
27
27
|
RequestBoundsAction,
|
|
28
28
|
TYPES,
|
|
29
|
-
ViewerOptions
|
|
29
|
+
ViewerOptions,
|
|
30
|
+
hasArrayProp
|
|
30
31
|
} from '@eclipse-glsp/sprotty';
|
|
31
32
|
import { inject, injectable } from 'inversify';
|
|
32
33
|
import { ServerAction } from '../../base/model/glsp-model-source';
|
|
33
34
|
|
|
35
|
+
export interface LocalRequestBoundsAction extends RequestBoundsAction {
|
|
36
|
+
elementIDs?: string[];
|
|
37
|
+
}
|
|
38
|
+
|
|
34
39
|
export namespace LocalRequestBoundsAction {
|
|
35
|
-
export function is(object: unknown): object is
|
|
36
|
-
return RequestBoundsAction.is(object) && !ServerAction.is(object);
|
|
40
|
+
export function is(object: unknown): object is LocalRequestBoundsAction {
|
|
41
|
+
return RequestBoundsAction.is(object) && !ServerAction.is(object) && hasArrayProp(object, 'elementIDs', true);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function create(newRoot: GModelRootSchema, elementIDs?: string[]): LocalRequestBoundsAction {
|
|
45
|
+
return {
|
|
46
|
+
...RequestBoundsAction.create(newRoot),
|
|
47
|
+
elementIDs
|
|
48
|
+
};
|
|
37
49
|
}
|
|
38
50
|
|
|
39
|
-
export function fromCommand(
|
|
51
|
+
export function fromCommand(
|
|
52
|
+
{ root }: CommandExecutionContext,
|
|
53
|
+
actionDispatcher: ActionDispatcher,
|
|
54
|
+
cause?: Action,
|
|
55
|
+
elementIDs?: string[]
|
|
56
|
+
): CommandResult {
|
|
40
57
|
// do not modify the main model (modelChanged = false) but request local bounds calculation on hidden model
|
|
41
|
-
actionDispatcher.dispatch(
|
|
58
|
+
actionDispatcher.dispatch(LocalRequestBoundsAction.create(root as unknown as GModelRootSchema, elementIDs));
|
|
42
59
|
return {
|
|
43
|
-
model:
|
|
60
|
+
model: root,
|
|
44
61
|
modelChanged: false,
|
|
45
62
|
cause
|
|
46
63
|
};
|
|
@@ -65,6 +65,7 @@ export class SetBoundsFeedbackCommand extends SetBoundsCommand implements Feedba
|
|
|
65
65
|
element.layoutOptions = options;
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
-
|
|
68
|
+
const elementIDs = this.action.bounds.map(bounds => bounds.elementId);
|
|
69
|
+
return LocalRequestBoundsAction.fromCommand(context, this.actionDispatcher, this.action, elementIDs);
|
|
69
70
|
}
|
|
70
71
|
}
|
|
@@ -64,13 +64,14 @@ export class AddTemplateElementsFeedbackCommand extends FeedbackCommand {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
override execute(context: CommandExecutionContext): CommandResult {
|
|
67
|
-
this.action.templates
|
|
67
|
+
const templateElements = this.action.templates
|
|
68
68
|
.map(template => templateToSchema(template, context))
|
|
69
69
|
.filter(isNotUndefined)
|
|
70
70
|
.map(schema => context.modelFactory.createElement(schema))
|
|
71
|
-
.map(element => this.applyRootCssClasses(element, this.action.addClasses, this.action.removeClasses))
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
.map(element => this.applyRootCssClasses(element, this.action.addClasses, this.action.removeClasses));
|
|
72
|
+
templateElements.forEach(templateElement => context.root.add(templateElement));
|
|
73
|
+
const templateElementIDs = templateElements.map(element => element.id);
|
|
74
|
+
return LocalRequestBoundsAction.fromCommand(context, this.actionDispatcher, this.action, templateElementIDs);
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
protected applyRootCssClasses(element: GChildElement, addClasses?: string[], removeClasses?: string[]): GChildElement {
|
package/src/utils/gmodel-util.ts
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
GChildElement,
|
|
23
23
|
GModelElement,
|
|
24
24
|
GModelElementSchema,
|
|
25
|
+
GParentElement,
|
|
25
26
|
GRoutableElement,
|
|
26
27
|
GRoutingHandle,
|
|
27
28
|
ModelIndexImpl,
|
|
@@ -30,13 +31,12 @@ import {
|
|
|
30
31
|
Selectable,
|
|
31
32
|
TypeGuard,
|
|
32
33
|
distinctAdd,
|
|
33
|
-
findParentByFeature,
|
|
34
34
|
getAbsoluteBounds,
|
|
35
|
+
getZoom,
|
|
35
36
|
isBoundsAware,
|
|
36
37
|
isMoveable,
|
|
37
38
|
isSelectable,
|
|
38
39
|
isSelected,
|
|
39
|
-
isViewport,
|
|
40
40
|
remove
|
|
41
41
|
} from '@eclipse-glsp/sprotty';
|
|
42
42
|
|
|
@@ -346,8 +346,7 @@ export function findTopLevelElementByFeature<T>(
|
|
|
346
346
|
|
|
347
347
|
export function calculateDeltaBetweenPoints(target: Point, source: Point, element: GModelElement): Point {
|
|
348
348
|
const delta = Point.subtract(target, source);
|
|
349
|
-
const
|
|
350
|
-
const zoom = viewport?.zoom ?? 1;
|
|
349
|
+
const zoom = getZoom(element);
|
|
351
350
|
const adaptedDelta = { x: delta.x / zoom, y: delta.y / zoom };
|
|
352
351
|
return adaptedDelta;
|
|
353
352
|
}
|
|
@@ -362,3 +361,15 @@ export function isVisibleOnCanvas(model: BoundsAwareModelElement): boolean {
|
|
|
362
361
|
modelBounds.y + modelBounds.height >= 0
|
|
363
362
|
);
|
|
364
363
|
}
|
|
364
|
+
|
|
365
|
+
export function getDescendantIds(element?: GModelElement, skip?: (t: GModelElement) => boolean): string[] {
|
|
366
|
+
if (!element || skip?.(element)) {
|
|
367
|
+
return [];
|
|
368
|
+
}
|
|
369
|
+
const parent = element;
|
|
370
|
+
const ids = [parent.id];
|
|
371
|
+
if (parent instanceof GParentElement) {
|
|
372
|
+
ids.push(...parent.children.flatMap(child => getDescendantIds(child, skip)));
|
|
373
|
+
}
|
|
374
|
+
return ids;
|
|
375
|
+
}
|