@eclipse-glsp/client 2.7.0-next.0 → 2.7.0-next.11
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/auto-complete/auto-complete-widget.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +3 -5
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +1 -4
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/default.module.d.ts +1 -1
- package/lib/base/default.module.js +2 -2
- package/lib/base/default.module.js.map +1 -1
- package/lib/base/feedback/feedback-action-dispatcher.d.ts +1 -1
- package/lib/base/feedback/feedback-action-dispatcher.js +2 -4
- package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/base/feedback/feedback-command.d.ts +1 -1
- package/lib/base/feedback/feedback-command.js +2 -2
- package/lib/base/feedback/feedback-command.js.map +1 -1
- package/lib/base/focus/focus-tracker.d.ts +1 -1
- package/lib/base/focus/focus-tracker.js +1 -1
- package/lib/base/model/model-change-service.d.ts +1 -1
- package/lib/base/model/model-change-service.js +1 -1
- package/lib/base/ui-extension/ui-extension.d.ts +1 -1
- package/lib/base/ui-extension/ui-extension.js +3 -3
- package/lib/base/ui-extension/ui-extension.js.map +1 -1
- package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.d.ts +1 -1
- package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.js +1 -1
- package/lib/features/bounds/bounds-module.d.ts +1 -1
- package/lib/features/bounds/bounds-module.js +2 -2
- package/lib/features/bounds/bounds-module.js.map +1 -1
- package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +1 -1
- package/lib/features/bounds/glsp-hidden-bounds-updater.js +1 -1
- package/lib/features/bounds/hbox-layout.d.ts +1 -1
- package/lib/features/bounds/hbox-layout.js +1 -2
- package/lib/features/bounds/hbox-layout.js.map +1 -1
- package/lib/features/bounds/vbox-layout.d.ts +1 -1
- package/lib/features/bounds/vbox-layout.js +1 -2
- package/lib/features/bounds/vbox-layout.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +1 -2
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/point-position-updater.d.ts +1 -1
- package/lib/features/change-bounds/point-position-updater.js +3 -4
- package/lib/features/change-bounds/point-position-updater.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +1 -1
- package/lib/features/change-bounds/snap.js +15 -0
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/command-palette.d.ts +1 -1
- package/lib/features/command-palette/command-palette.js +1 -1
- package/lib/features/context-menu/context-menu-module.d.ts +1 -1
- package/lib/features/context-menu/context-menu-module.js +1 -2
- package/lib/features/context-menu/context-menu-module.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +2 -2
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/debug/debug-bounds-decorator.d.ts +1 -1
- package/lib/features/debug/debug-bounds-decorator.js +12 -13
- package/lib/features/debug/debug-bounds-decorator.js.map +1 -1
- package/lib/features/label-edit-ui/label-edit-ui.d.ts +4 -1
- package/lib/features/label-edit-ui/label-edit-ui.d.ts.map +1 -1
- package/lib/features/label-edit-ui/label-edit-ui.js +38 -1
- package/lib/features/label-edit-ui/label-edit-ui.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +1 -1
- package/lib/features/navigation/navigation-action-handler.js +1 -1
- package/lib/features/routing/edge-router.d.ts +2 -1
- package/lib/features/routing/edge-router.d.ts.map +1 -1
- package/lib/features/routing/edge-router.js +2 -1
- package/lib/features/routing/edge-router.js.map +1 -1
- package/lib/features/routing/routing-module.d.ts +1 -1
- package/lib/features/routing/routing-module.d.ts.map +1 -1
- package/lib/features/routing/routing-module.js +7 -1
- package/lib/features/routing/routing-module.js.map +1 -1
- package/lib/features/routing/sticky-manhattan-anchors.d.ts +29 -0
- package/lib/features/routing/sticky-manhattan-anchors.d.ts.map +1 -0
- package/lib/features/routing/sticky-manhattan-anchors.js +62 -0
- package/lib/features/routing/sticky-manhattan-anchors.js.map +1 -0
- package/lib/features/routing/sticky-manhattan-edge-router.d.ts +107 -0
- package/lib/features/routing/sticky-manhattan-edge-router.d.ts.map +1 -0
- package/lib/features/routing/sticky-manhattan-edge-router.js +626 -0
- package/lib/features/routing/sticky-manhattan-edge-router.js.map +1 -0
- package/lib/features/tool-palette/tool-palette.d.ts +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +1 -3
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/index.d.ts +5 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/views/gedge-view-with-gaps-on-intersections.d.ts +39 -0
- package/lib/views/gedge-view-with-gaps-on-intersections.d.ts.map +1 -0
- package/lib/views/gedge-view-with-gaps-on-intersections.js +85 -0
- package/lib/views/gedge-view-with-gaps-on-intersections.js.map +1 -0
- package/lib/views/issue-marker-view.d.ts +1 -1
- package/lib/views/issue-marker-view.js +9 -10
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-manhattan-edge-view.d.ts +58 -0
- package/lib/views/rounded-corner-manhattan-edge-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-manhattan-edge-view.js +170 -0
- package/lib/views/rounded-corner-manhattan-edge-view.js.map +1 -0
- package/package.json +4 -4
- package/src/base/action-dispatcher.spec.ts +2 -2
- package/src/base/action-dispatcher.ts +1 -1
- package/src/base/auto-complete/auto-complete-widget.ts +3 -3
- package/src/base/auto-complete/validation-decorator.ts +3 -4
- package/src/base/default.module.ts +2 -2
- package/src/base/feedback/feedback-action-dispatcher.ts +2 -2
- package/src/base/feedback/feedback-command.ts +2 -2
- package/src/base/focus/focus-tracker.ts +1 -1
- package/src/base/model/model-change-service.ts +1 -1
- package/src/base/model/model-initialization-constraint.spec.ts +2 -2
- package/src/base/selection-service.spec.ts +3 -4
- package/src/base/ui-extension/ui-extension.ts +3 -3
- package/src/default-modules.spec.ts +2 -2
- package/src/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.ts +1 -1
- package/src/features/bounds/bounds-module.ts +2 -2
- package/src/features/bounds/glsp-hidden-bounds-updater.ts +1 -1
- package/src/features/bounds/hbox-layout.spec.ts +2 -2
- package/src/features/bounds/hbox-layout.ts +2 -2
- package/src/features/bounds/vbox-layout.spec.ts +2 -2
- package/src/features/bounds/vbox-layout.ts +2 -2
- package/src/features/change-bounds/model.ts +1 -2
- package/src/features/change-bounds/point-position-updater.spec.ts +3 -3
- package/src/features/change-bounds/point-position-updater.ts +4 -4
- package/src/features/change-bounds/snap.ts +2 -2
- package/src/features/command-palette/command-palette.ts +1 -1
- package/src/features/context-menu/context-menu-module.ts +2 -2
- package/src/features/context-menu/delete-element-context-menu.ts +2 -2
- package/src/features/copy-paste/copy-paste-context-menu.ts +2 -2
- package/src/features/debug/debug-bounds-decorator.tsx +2 -2
- package/src/features/label-edit-ui/label-edit-ui.ts +36 -3
- package/src/features/layout/layout-elements-action.spec.ts +2 -2
- package/src/features/navigation/navigation-action-handler.ts +3 -3
- package/src/features/routing/edge-router.ts +2 -2
- package/src/features/routing/routing-module.ts +8 -1
- package/src/features/routing/sticky-manhattan-anchors.ts +53 -0
- package/src/features/routing/sticky-manhattan-edge-router.spec.ts +212 -0
- package/src/features/routing/sticky-manhattan-edge-router.ts +713 -0
- package/src/features/tool-palette/tool-palette.ts +1 -3
- package/src/index.ts +5 -1
- package/src/views/gedge-view-with-gaps-on-intersections.tsx +99 -0
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-manhattan-edge-view.ts +171 -0
|
@@ -0,0 +1,170 @@
|
|
|
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.RoundedCornerManhattanEdgeView = void 0;
|
|
10
|
+
/********************************************************************************
|
|
11
|
+
* Copyright (c) 2022-2026 Imixs Software Solutions GmbH.
|
|
12
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
13
|
+
*
|
|
14
|
+
* This program and the accompanying materials are made available under the
|
|
15
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
16
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
17
|
+
*
|
|
18
|
+
* This Source Code may also be made available under the following Secondary
|
|
19
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
20
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
21
|
+
* with the GNU Classpath Exception which is available at
|
|
22
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
23
|
+
*
|
|
24
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
25
|
+
********************************************************************************/
|
|
26
|
+
const sprotty_1 = require("@eclipse-glsp/sprotty");
|
|
27
|
+
const inversify_1 = require("inversify");
|
|
28
|
+
const gedge_view_with_gaps_on_intersections_1 = require("./gedge-view-with-gaps-on-intersections");
|
|
29
|
+
/**
|
|
30
|
+
* Manhattan edge view with rounded bends rendered as quadratic Béziers.
|
|
31
|
+
* Non-orthogonal inputs render as sharp corners. Radius is clamped per corner;
|
|
32
|
+
* override {@link cornerRadius} or {@link computeMaxRadius} to tune.
|
|
33
|
+
*
|
|
34
|
+
* Inherits gap / line-jump rendering from {@link GEdgeViewWithGapsOnIntersections}.
|
|
35
|
+
* The rendered line splices intersection fragments between points; the mouse-
|
|
36
|
+
* handle overlay skips them so the hit area stays contiguous.
|
|
37
|
+
*
|
|
38
|
+
* Based on Ralph Soika's `BPMNEdgeView`; see
|
|
39
|
+
* https://github.com/eclipse-glsp/glsp/discussions/1642.
|
|
40
|
+
*/
|
|
41
|
+
let RoundedCornerManhattanEdgeView = class RoundedCornerManhattanEdgeView extends gedge_view_with_gaps_on_intersections_1.GEdgeViewWithGapsOnIntersections {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
/** Target corner radius in pixels. The effective radius is clamped per corner. */
|
|
45
|
+
this.cornerRadius = 10;
|
|
46
|
+
/** Lower bound for the effective radius, even on very short adjacent segments. */
|
|
47
|
+
this.minCornerRadius = 2;
|
|
48
|
+
/** Upper fraction of the shorter adjacent segment to use for the radius. */
|
|
49
|
+
this.maxRadiusFactor = 0.45;
|
|
50
|
+
/** Segment length (px) below which {@link shortSegmentRadiusFactor} tightens the radius further. */
|
|
51
|
+
this.shortSegmentThreshold = 5;
|
|
52
|
+
/** Fraction of the shorter adjacent segment to use as the radius below {@link shortSegmentThreshold}. */
|
|
53
|
+
this.shortSegmentRadiusFactor = 0.3;
|
|
54
|
+
}
|
|
55
|
+
createPathForSegments(segments, edge, addIntersectionPoints, args) {
|
|
56
|
+
if (segments.length === 0) {
|
|
57
|
+
return '';
|
|
58
|
+
}
|
|
59
|
+
let path = `M ${segments[0].x},${segments[0].y}`;
|
|
60
|
+
for (let i = 1; i < segments.length; i++) {
|
|
61
|
+
const p = segments[i];
|
|
62
|
+
if (addIntersectionPoints && (0, sprotty_1.isIntersectingRoutedPoint)(p)) {
|
|
63
|
+
const effective = this.filterCornerZoneIntersections(p, segments, i);
|
|
64
|
+
if (effective.intersections.length > 0) {
|
|
65
|
+
path += this.intersectionPath(edge, segments, effective, args);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (i < segments.length - 1) {
|
|
69
|
+
const prev = segments[i - 1];
|
|
70
|
+
const next = segments[i + 1];
|
|
71
|
+
const radius = this.computeMaxRadius(p, prev, next);
|
|
72
|
+
path += this.renderRoundedCorner(p, prev, next, radius);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
path += ` L ${p.x},${p.y}`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return path;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Drops intersections inside either endpoint's rounded-corner zone (padded
|
|
82
|
+
* by the gap's skip-offset). The gap fragment can't be placed there without
|
|
83
|
+
* drawing backward into the curve on one side, and the crossing is hidden
|
|
84
|
+
* behind the curve anyway.
|
|
85
|
+
*/
|
|
86
|
+
filterCornerZoneIntersections(intersectingPoint, segments, pointIndex) {
|
|
87
|
+
const p1 = segments[pointIndex - 1];
|
|
88
|
+
const p2 = segments[pointIndex];
|
|
89
|
+
const p1Threshold = this.getCornerRadius(segments, pointIndex - 1) + this.skipOffsetBefore;
|
|
90
|
+
const p2Threshold = this.getCornerRadius(segments, pointIndex) + this.skipOffsetAfter;
|
|
91
|
+
const filtered = intersectingPoint.intersections.filter(intersection => sprotty_1.Point.maxDistance(intersection.intersectionPoint, p1) > p1Threshold &&
|
|
92
|
+
sprotty_1.Point.maxDistance(intersection.intersectionPoint, p2) > p2Threshold);
|
|
93
|
+
return { ...intersectingPoint, intersections: filtered };
|
|
94
|
+
}
|
|
95
|
+
/** Curve radius at `segments[cornerIndex]`, or 0 for source / target. */
|
|
96
|
+
getCornerRadius(segments, cornerIndex) {
|
|
97
|
+
if (cornerIndex <= 0 || cornerIndex >= segments.length - 1) {
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
const corner = segments[cornerIndex];
|
|
101
|
+
const prev = segments[cornerIndex - 1];
|
|
102
|
+
const next = segments[cornerIndex + 1];
|
|
103
|
+
return this.computeMaxRadius(corner, prev, next);
|
|
104
|
+
}
|
|
105
|
+
/** SVG fragment for one rounded corner; falls back to `L` if not a right angle. */
|
|
106
|
+
renderRoundedCorner(corner, prev, next, radius) {
|
|
107
|
+
// Round only right-angle bends; diagonal / collinear inputs render sharp.
|
|
108
|
+
const horizIn = sprotty_1.Point.isHorizontalAligned(prev, corner);
|
|
109
|
+
const vertIn = sprotty_1.Point.isVerticalAligned(prev, corner);
|
|
110
|
+
const horizOut = sprotty_1.Point.isHorizontalAligned(corner, next);
|
|
111
|
+
const vertOut = sprotty_1.Point.isVerticalAligned(corner, next);
|
|
112
|
+
const isRightAngle = (horizIn && vertOut && !vertIn) || (vertIn && horizOut && !horizIn);
|
|
113
|
+
if (!isRightAngle) {
|
|
114
|
+
return ` L ${corner.x},${corner.y}`;
|
|
115
|
+
}
|
|
116
|
+
if (prev.x < corner.x && corner.y < next.y) {
|
|
117
|
+
// right → down
|
|
118
|
+
return ` L ${corner.x - radius},${corner.y} Q ${corner.x},${corner.y} ${corner.x},${corner.y + radius}`;
|
|
119
|
+
}
|
|
120
|
+
if (prev.y < corner.y && corner.x < next.x) {
|
|
121
|
+
// down → right
|
|
122
|
+
return ` L ${corner.x},${corner.y - radius} Q ${corner.x},${corner.y} ${corner.x + radius},${corner.y}`;
|
|
123
|
+
}
|
|
124
|
+
if (prev.x < corner.x && corner.y > next.y) {
|
|
125
|
+
// right → up
|
|
126
|
+
return ` L ${corner.x - radius},${corner.y} Q ${corner.x},${corner.y} ${corner.x},${corner.y - radius}`;
|
|
127
|
+
}
|
|
128
|
+
if (prev.y > corner.y && corner.x < next.x) {
|
|
129
|
+
// up → right
|
|
130
|
+
return ` L ${corner.x},${corner.y + radius} Q ${corner.x},${corner.y} ${corner.x + radius},${corner.y}`;
|
|
131
|
+
}
|
|
132
|
+
if (prev.y < corner.y && corner.x > next.x) {
|
|
133
|
+
// down → left
|
|
134
|
+
return ` L ${corner.x},${corner.y - radius} Q ${corner.x},${corner.y} ${corner.x - radius},${corner.y}`;
|
|
135
|
+
}
|
|
136
|
+
if (prev.x > corner.x && corner.y < next.y) {
|
|
137
|
+
// left → down
|
|
138
|
+
return ` L ${corner.x + radius},${corner.y} Q ${corner.x},${corner.y} ${corner.x},${corner.y + radius}`;
|
|
139
|
+
}
|
|
140
|
+
if (prev.y > corner.y && corner.x > next.x) {
|
|
141
|
+
// up → left
|
|
142
|
+
return ` L ${corner.x},${corner.y + radius} Q ${corner.x},${corner.y} ${corner.x - radius},${corner.y}`;
|
|
143
|
+
}
|
|
144
|
+
if (prev.x > corner.x && corner.y > next.y) {
|
|
145
|
+
// left → up
|
|
146
|
+
return ` L ${corner.x + radius},${corner.y} Q ${corner.x},${corner.y} ${corner.x},${corner.y - radius}`;
|
|
147
|
+
}
|
|
148
|
+
return ` L ${corner.x},${corner.y}`;
|
|
149
|
+
}
|
|
150
|
+
/** Clamps {@link cornerRadius} to a fraction of the shorter adjacent segment. */
|
|
151
|
+
computeMaxRadius(corner, prev, next) {
|
|
152
|
+
const segBefore = sprotty_1.Point.maxDistance(corner, prev);
|
|
153
|
+
const segAfter = sprotty_1.Point.maxDistance(next, corner);
|
|
154
|
+
if (segBefore === 0 || segAfter === 0) {
|
|
155
|
+
return this.minCornerRadius;
|
|
156
|
+
}
|
|
157
|
+
const shortest = Math.min(segBefore, segAfter);
|
|
158
|
+
let radius = Math.min(this.cornerRadius, shortest * this.maxRadiusFactor);
|
|
159
|
+
if (shortest < this.shortSegmentThreshold) {
|
|
160
|
+
radius = Math.min(radius, shortest * this.shortSegmentRadiusFactor);
|
|
161
|
+
}
|
|
162
|
+
radius = Math.min(radius, shortest / 2);
|
|
163
|
+
return Math.max(this.minCornerRadius, radius);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
exports.RoundedCornerManhattanEdgeView = RoundedCornerManhattanEdgeView;
|
|
167
|
+
exports.RoundedCornerManhattanEdgeView = RoundedCornerManhattanEdgeView = __decorate([
|
|
168
|
+
(0, inversify_1.injectable)()
|
|
169
|
+
], RoundedCornerManhattanEdgeView);
|
|
170
|
+
//# sourceMappingURL=rounded-corner-manhattan-edge-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rounded-corner-manhattan-edge-view.js","sourceRoot":"","sources":["../../src/views/rounded-corner-manhattan-edge-view.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.7.0-next.
|
|
3
|
+
"version": "2.7.0-next.11+d9a287b",
|
|
4
4
|
"description": "A sprotty-based client for GLSP",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eclipse",
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
"build": "tsc -b",
|
|
40
40
|
"clean": "rimraf lib *.tsbuildinfo coverage .nyc_output",
|
|
41
41
|
"generate:index": "glsp generateIndex src -f -s",
|
|
42
|
-
"lint": "eslint
|
|
42
|
+
"lint": "eslint ./src",
|
|
43
43
|
"test": "mocha --config ../../.mocharc \"./src/**/*.spec.?(ts|tsx)\"",
|
|
44
44
|
"test:ci": "yarn test --reporter mocha-ctrf-json-reporter",
|
|
45
45
|
"test:coverage": "nyc yarn test",
|
|
46
46
|
"watch": "tsc -w"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@eclipse-glsp/sprotty": "2.7.0-next.
|
|
49
|
+
"@eclipse-glsp/sprotty": "2.7.0-next.11+d9a287b",
|
|
50
50
|
"autocompleter": "^9.1.2",
|
|
51
51
|
"file-saver": "^2.0.5",
|
|
52
52
|
"lodash": "4.17.23",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "d9a287bcaf96a4449a20f462498355b21f60da85"
|
|
67
67
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2023-
|
|
2
|
+
* Copyright (c) 2023-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -44,7 +44,7 @@ const testHandler: IActionHandler = {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
registry.register('request', testHandler);
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
registry.register('response', { handle: () => {} });
|
|
49
49
|
actionDispatcher.initialize().then(() => {
|
|
50
50
|
actionDispatcher['blockUntil'] = undefined;
|
|
@@ -46,7 +46,7 @@ export class GLSPActionDispatcher extends ActionDispatcher implements IGModelRoo
|
|
|
46
46
|
protected override actionHandlerRegistry: ActionHandlerRegistry;
|
|
47
47
|
|
|
48
48
|
/** @deprecated No longer in used. The {@link ActionHandlerRegistry} is now directly injected */
|
|
49
|
-
// eslint-disable-next-line
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
50
50
|
@inject(TYPES.ActionHandlerRegistryProvider) protected override actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
|
|
51
51
|
protected postUpdateQueue: Action[] = [];
|
|
52
52
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -61,7 +61,7 @@ export interface AutoCompleteWidgetOptions {
|
|
|
61
61
|
selectedSuggestionChanged?: (suggestion?: LabeledAction) => void;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
65
65
|
const configureAutocomplete: (settings: AutocompleteSettings<LabeledAction>) => AutocompleteResult = require('autocompleter');
|
|
66
66
|
|
|
67
67
|
/**
|
|
@@ -91,7 +91,7 @@ export class AutoCompleteWidget {
|
|
|
91
91
|
public autoSuggestionSettings: AutoCompleteSettings,
|
|
92
92
|
public suggestionProvider: SuggestionProvider,
|
|
93
93
|
public suggestionSubmitHandler: SuggestionSubmitHandler,
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
protected notifyClose: (reason: CloseReason) => void = () => {},
|
|
96
96
|
protected logger?: ILogger,
|
|
97
97
|
protected options?: AutoCompleteWidgetOptions
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -24,14 +24,13 @@ export interface IValidationDecorator {
|
|
|
24
24
|
|
|
25
25
|
export namespace IValidationDecorator {
|
|
26
26
|
export const NO_DECORATION: IValidationDecorator = {
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
28
27
|
decorateValidationResult(_status: ValidationStatus) {},
|
|
29
28
|
isValidatedOk(): boolean {
|
|
30
29
|
return false;
|
|
31
30
|
},
|
|
32
|
-
|
|
31
|
+
|
|
33
32
|
invalidate() {},
|
|
34
|
-
|
|
33
|
+
|
|
35
34
|
dispose() {}
|
|
36
35
|
};
|
|
37
36
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -75,7 +75,7 @@ export const defaultModule = new FeatureModule(
|
|
|
75
75
|
|
|
76
76
|
bind(EditorContextService).toSelf().inSingletonScope();
|
|
77
77
|
bind(TYPES.IDiagramStartup).toService(EditorContextService);
|
|
78
|
-
// eslint-disable-next-line
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
79
79
|
bind(TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
|
|
80
80
|
ctx => async () => ctx.container.get(EditorContextService)
|
|
81
81
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -109,7 +109,7 @@ export class FeedbackActionDispatcher implements IFeedbackActionDispatcher, Disp
|
|
|
109
109
|
if (feedbackEmitter instanceof GModelElement) {
|
|
110
110
|
this.logger.log(
|
|
111
111
|
this,
|
|
112
|
-
|
|
112
|
+
|
|
113
113
|
'GModelElements as feedback emitters are discouraged, as they usually change between model updates and are considered unstable.'
|
|
114
114
|
);
|
|
115
115
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
/* eslint-disable
|
|
16
|
+
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
17
17
|
import { Command, CommandExecutionContext, CommandReturn, ICommand } from '@eclipse-glsp/sprotty';
|
|
18
18
|
import { Ranked } from '../ranked';
|
|
19
19
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021-
|
|
2
|
+
* Copyright (c) 2021-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2025 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2025-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2023 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2023-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -22,7 +22,7 @@ import { DefaultModelInitializationConstraint, ModelInitializationConstraint } f
|
|
|
22
22
|
const sandbox = sinon.createSandbox();
|
|
23
23
|
const container = new Container();
|
|
24
24
|
let constraint: ModelInitializationConstraint;
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
const listener = sandbox.spy((): void => {});
|
|
27
27
|
|
|
28
28
|
describe('DefaultModelInitializationConstraint', () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -65,20 +65,19 @@ class MockSelectionListener implements ISelectionListener {
|
|
|
65
65
|
|
|
66
66
|
function createContainer(): Container {
|
|
67
67
|
const container = initializeContainer(new Container(), defaultModule);
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
container.rebind(TYPES.IFeedbackActionDispatcher).to(MockFeedbackActionDispatcher).inSingletonScope();
|
|
70
70
|
return container;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
describe('SelectionService', () => {
|
|
74
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
75
74
|
let root: GModelRoot;
|
|
76
75
|
let selectionService: SelectionService;
|
|
77
76
|
let feedbackDispatcher: MockFeedbackActionDispatcher;
|
|
78
77
|
|
|
79
78
|
beforeEach(() => {
|
|
80
79
|
const container = createContainer();
|
|
81
|
-
|
|
80
|
+
|
|
82
81
|
root = createRoot('node1', 'node2', 'node3', 'node4', 'node5');
|
|
83
82
|
selectionService = container.get<SelectionService>(SelectionService);
|
|
84
83
|
feedbackDispatcher = container.get<MockFeedbackActionDispatcher>(TYPES.IFeedbackActionDispatcher);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2024-
|
|
2
|
+
* Copyright (c) 2024-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -53,7 +53,7 @@ export abstract class GLSPAbstractUIExtension extends AbstractUIExtension {
|
|
|
53
53
|
this.initializeContainer(this.containerElement);
|
|
54
54
|
this.initializeContents(this.containerElement);
|
|
55
55
|
} catch (error) {
|
|
56
|
-
const msg = error instanceof Error ? error.message : `Could not retrieve container element for UI extension ${this.id}`;
|
|
56
|
+
const msg = error instanceof Error ? error.message : `Could not retrieve container element for UI extension ${this.id()}`;
|
|
57
57
|
this.logger.error(this, msg);
|
|
58
58
|
return false;
|
|
59
59
|
}
|
|
@@ -73,7 +73,7 @@ export abstract class GLSPAbstractUIExtension extends AbstractUIExtension {
|
|
|
73
73
|
// to create a container the parent container
|
|
74
74
|
const parent = this.getParentContainer();
|
|
75
75
|
if (!parent?.isConnected) {
|
|
76
|
-
throw new Error(`Could not obtain attached parent for initializing UI extension ${this.id}`);
|
|
76
|
+
throw new Error(`Could not obtain attached parent for initializing UI extension ${this.id()}`);
|
|
77
77
|
}
|
|
78
78
|
const container = this.createContainer(parent);
|
|
79
79
|
this.insertContainerIntoParent(container, parent);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2024 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2024-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -46,7 +46,7 @@ describe('default-modules', () => {
|
|
|
46
46
|
it('should throw an error if the base (default) module is removed via configuration', () => {
|
|
47
47
|
expect(() => initializeDiagramContainer(container, { remove: defaultModule })).to.throw(/Invalid module configuration/);
|
|
48
48
|
});
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
it('should throw an error if the base (default) module is not the first module of the resolved configured (removed and added again)', () => {
|
|
51
51
|
expect(() => initializeDiagramContainer(container, { remove: defaultModule, add: defaultModule })).to.throw(
|
|
52
52
|
/Invalid module configuration/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2023-
|
|
2
|
+
* Copyright (c) 2023-2026 Business Informatics Group (TU Wien) and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -60,7 +60,7 @@ export const boundsModule = new FeatureModule(
|
|
|
60
60
|
configureActionHandler(context, MoveElementRelativeAction.KIND, MoveElementHandler);
|
|
61
61
|
|
|
62
62
|
// backwards compatibility
|
|
63
|
-
// eslint-disable-next-line
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
64
64
|
bind(PositionSnapper).toSelf();
|
|
65
65
|
},
|
|
66
66
|
{ featureId: Symbol('bounds') }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 TypeFox, STMicroelectronics and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
import { expect } from 'chai';
|
|
18
18
|
import 'mocha';
|
|
19
19
|
import 'reflect-metadata';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021-
|
|
2
|
+
* Copyright (c) 2021-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -204,7 +204,7 @@ export class HBoxLayouterExt extends HBoxLayouter {
|
|
|
204
204
|
layouter: StatefulLayouter
|
|
205
205
|
): Bounds {
|
|
206
206
|
const currentContainer = container;
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
if (isBoundsAware(currentContainer)) {
|
|
209
209
|
const bounds = currentContainer.bounds;
|
|
210
210
|
const elementOptions = this.getElementLayoutOptions(currentContainer);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 TypeFox, STMicroelectronics and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
import { expect } from 'chai';
|
|
18
18
|
import 'mocha';
|
|
19
19
|
import 'reflect-metadata';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021-
|
|
2
|
+
* Copyright (c) 2021-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -204,7 +204,7 @@ export class VBoxLayouterExt extends VBoxLayouter {
|
|
|
204
204
|
layouter: StatefulLayouter
|
|
205
205
|
): Bounds {
|
|
206
206
|
const currentContainer = container;
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
if (isBoundsAware(currentContainer)) {
|
|
209
209
|
const bounds = currentContainer.bounds;
|
|
210
210
|
const elementOptions = this.getElementLayoutOptions(currentContainer);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -35,7 +35,6 @@ export function isResizable(element: GModelElement): element is ResizableModelEl
|
|
|
35
35
|
return isBoundsAware(element) && isSelectable(element) && element instanceof GParentElement && element.hasFeature(resizeFeature);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
// eslint-disable-next-line no-shadow
|
|
39
38
|
export enum ResizeHandleLocation {
|
|
40
39
|
TopLeft = 'top-left',
|
|
41
40
|
Top = 'top',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
/* eslint-disable import/no-deprecated */
|
|
17
|
-
/* eslint-disable
|
|
16
|
+
/* eslint-disable import-x/no-deprecated */
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
18
18
|
|
|
19
19
|
import { GModelElement } from '@eclipse-glsp/sprotty';
|
|
20
20
|
import { expect } from 'chai';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
17
|
-
/* eslint-disable import/no-deprecated */
|
|
18
|
-
/* eslint-disable
|
|
16
|
+
|
|
17
|
+
/* eslint-disable import-x/no-deprecated */
|
|
18
|
+
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
19
19
|
|
|
20
20
|
import { GModelElement, ISnapper, Point, Writable } from '@eclipse-glsp/sprotty';
|
|
21
21
|
import { calculateDeltaBetweenPoints } from '../../utils/gmodel-util';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
import { KeyboardModifier } from '@eclipse-glsp/sprotty';
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2024 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2024-2026 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|