@eclipse-glsp-examples/workflow-glsp 0.9.0-rc-01 → 0.10.0-next.146a812.165
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/LICENSE +642 -277
- package/README.md +6 -4
- package/css/diagram.css +38 -135
- package/lib/di.config.d.ts +2 -17
- package/lib/di.config.d.ts.map +1 -1
- package/lib/di.config.js +28 -27
- package/lib/di.config.js.map +1 -1
- package/lib/direct-task-editing/di.config.js +4 -4
- package/lib/direct-task-editing/di.config.js.map +1 -1
- package/lib/direct-task-editing/direct-task-editor.d.ts +1 -1
- package/lib/direct-task-editing/direct-task-editor.d.ts.map +1 -1
- package/lib/direct-task-editing/direct-task-editor.js +89 -189
- package/lib/direct-task-editing/direct-task-editor.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/model.d.ts +7 -2
- package/lib/model.d.ts.map +1 -1
- package/lib/model.js +71 -69
- package/lib/model.js.map +1 -1
- package/lib/workflow-views.d.ts +7 -7
- package/lib/workflow-views.d.ts.map +1 -1
- package/lib/workflow-views.js +52 -50
- package/lib/workflow-views.js.map +1 -1
- package/package.json +9 -20
- package/scripts/download.ts +19 -16
- package/src/di.config.ts +14 -53
- package/src/direct-task-editing/direct-task-editor.ts +19 -18
- package/src/index.ts +1 -2
- package/src/model.ts +51 -15
- package/src/workflow-views.tsx +57 -22
package/src/workflow-views.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2022 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
|
|
@@ -15,46 +15,81 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import {
|
|
17
17
|
angleOfPoint,
|
|
18
|
-
|
|
19
|
-
IView,
|
|
18
|
+
getSubType,
|
|
20
19
|
Point,
|
|
20
|
+
PolylineEdgeViewWithGapsOnIntersections,
|
|
21
21
|
RenderingContext,
|
|
22
22
|
SEdge,
|
|
23
|
+
setAttr,
|
|
23
24
|
toDegrees
|
|
24
25
|
} from '@eclipse-glsp/client';
|
|
25
26
|
import { injectable } from 'inversify';
|
|
26
|
-
import
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
import { Icon } from './model';
|
|
27
|
+
import { VNode } from 'snabbdom';
|
|
28
|
+
import { findParentByFeature, ShapeView, svg } from 'sprotty';
|
|
29
|
+
import { Icon, isTaskNode } from './model';
|
|
30
30
|
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
32
|
-
const JSX = { createElement:
|
|
32
|
+
const JSX = { createElement: svg };
|
|
33
33
|
|
|
34
34
|
@injectable()
|
|
35
|
-
export class WorkflowEdgeView extends
|
|
36
|
-
protected renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[] {
|
|
35
|
+
export class WorkflowEdgeView extends PolylineEdgeViewWithGapsOnIntersections {
|
|
36
|
+
protected override renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[] {
|
|
37
37
|
const additionals = super.renderAdditionals(edge, segments, context);
|
|
38
38
|
const p1 = segments[segments.length - 2];
|
|
39
39
|
const p2 = segments[segments.length - 1];
|
|
40
|
-
const arrow =
|
|
41
|
-
|
|
40
|
+
const arrow = (
|
|
41
|
+
<path
|
|
42
|
+
class-sprotty-edge={true}
|
|
43
|
+
class-arrow={true}
|
|
44
|
+
d='M 1,0 L 10,-4 L 10,4 Z'
|
|
45
|
+
transform={`rotate(${toDegrees(angleOfPoint({ x: p1.x - p2.x, y: p1.y - p2.y }))} ${p2.x} ${p2.y}) translate(${p2.x} ${
|
|
46
|
+
p2.y
|
|
47
|
+
})`}
|
|
48
|
+
/>
|
|
49
|
+
);
|
|
42
50
|
additionals.push(arrow);
|
|
43
51
|
return additionals;
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
|
|
47
55
|
@injectable()
|
|
48
|
-
export class IconView
|
|
49
|
-
render(element: Icon, context: RenderingContext): VNode {
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
export class IconView extends ShapeView {
|
|
57
|
+
render(element: Icon, context: RenderingContext): VNode | undefined {
|
|
58
|
+
const taskNode = findParentByFeature(element, isTaskNode);
|
|
59
|
+
if (!taskNode || !this.isVisible(element, context)) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
let icon;
|
|
64
|
+
if (taskNode.type === 'task:manual') {
|
|
65
|
+
// From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/account.svg?short_path=8135b2d
|
|
66
|
+
icon =
|
|
67
|
+
// eslint-disable-next-line max-len
|
|
68
|
+
'M16 7.992C16 3.58 12.416 0 8 0S0 3.58 0 7.992c0 2.43 1.104 4.62 2.832 6.09.016.016.032.016.032.032.144.112.288.224.448.336.08.048.144.111.224.175A7.98 7.98 0 0 0 8.016 16a7.98 7.98 0 0 0 4.48-1.375c.08-.048.144-.111.224-.16.144-.111.304-.223.448-.335.016-.016.032-.016.032-.032 1.696-1.487 2.8-3.676 2.8-6.106zm-8 7.001c-1.504 0-2.88-.48-4.016-1.279.016-.128.048-.255.08-.383a4.17 4.17 0 0 1 .416-.991c.176-.304.384-.576.64-.816.24-.24.528-.463.816-.639.304-.176.624-.304.976-.4A4.15 4.15 0 0 1 8 10.342a4.185 4.185 0 0 1 2.928 1.166c.368.368.656.8.864 1.295.112.288.192.592.24.911A7.03 7.03 0 0 1 8 14.993zm-2.448-7.4a2.49 2.49 0 0 1-.208-1.024c0-.351.064-.703.208-1.023.144-.32.336-.607.576-.847.24-.24.528-.431.848-.575.32-.144.672-.208 1.024-.208.368 0 .704.064 1.024.208.32.144.608.336.848.575.24.24.432.528.576.847.144.32.208.672.208 1.023 0 .368-.064.704-.208 1.023a2.84 2.84 0 0 1-.576.848 2.84 2.84 0 0 1-.848.575 2.715 2.715 0 0 1-2.064 0 2.84 2.84 0 0 1-.848-.575 2.526 2.526 0 0 1-.56-.848zm7.424 5.306c0-.032-.016-.048-.016-.08a5.22 5.22 0 0 0-.688-1.406 4.883 4.883 0 0 0-1.088-1.135 5.207 5.207 0 0 0-1.04-.608 2.82 2.82 0 0 0 .464-.383 4.2 4.2 0 0 0 .624-.784 3.624 3.624 0 0 0 .528-1.934 3.71 3.71 0 0 0-.288-1.47 3.799 3.799 0 0 0-.816-1.199 3.845 3.845 0 0 0-1.2-.8 3.72 3.72 0 0 0-1.472-.287 3.72 3.72 0 0 0-1.472.288 3.631 3.631 0 0 0-1.2.815 3.84 3.84 0 0 0-.8 1.199 3.71 3.71 0 0 0-.288 1.47c0 .352.048.688.144 1.007.096.336.224.64.4.927.16.288.384.544.624.784.144.144.304.271.48.383a5.12 5.12 0 0 0-1.04.624c-.416.32-.784.703-1.088 1.119a4.999 4.999 0 0 0-.688 1.406c-.016.032-.016.064-.016.08C1.776 11.636.992 9.91.992 7.992.992 4.14 4.144.991 8 .991s7.008 3.149 7.008 7.001a6.96 6.96 0 0 1-2.032 4.907z';
|
|
69
|
+
} else {
|
|
70
|
+
// From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/gear.svg?short_path=8ee3ec4
|
|
71
|
+
icon =
|
|
72
|
+
// eslint-disable-next-line max-len
|
|
73
|
+
'M9.1 4.4L8.6 2H7.4l-.5 2.4-.7.3-2-1.3-.9.8 1.3 2-.2.7-2.4.5v1.2l2.4.5.3.8-1.3 2 .8.8 2-1.3.8.3.4 2.3h1.2l.5-2.4.8-.3 2 1.3.8-.8-1.3-2 .3-.8 2.3-.4V7.4l-2.4-.5-.3-.8 1.3-2-.8-.8-2 1.3-.7-.2zM9.4 1l.5 2.4L12 2.1l2 2-1.4 2.1 2.4.4v2.8l-2.4.5L14 12l-2 2-2.1-1.4-.5 2.4H6.6l-.5-2.4L4 13.9l-2-2 1.4-2.1L1 9.4V6.6l2.4-.5L2.1 4l2-2 2.1 1.4.4-2.4h2.8zm.6 7c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM8 9c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1z';
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const vnode = (
|
|
77
|
+
<g>
|
|
78
|
+
<path
|
|
79
|
+
transform={'scale(1.15),translate(0.75,0.75)'}
|
|
80
|
+
// From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/terminal.svg?short_path=2ffc08e
|
|
81
|
+
// eslint-disable-next-line max-len
|
|
82
|
+
d={icon}
|
|
83
|
+
/>
|
|
84
|
+
<rect class-icon-background x={0} y={0} width={25} height={20} />
|
|
85
|
+
{context.renderChildren(element)}
|
|
86
|
+
</g>
|
|
87
|
+
);
|
|
56
88
|
|
|
57
|
-
|
|
58
|
-
|
|
89
|
+
const subType = getSubType(element);
|
|
90
|
+
if (subType) {
|
|
91
|
+
setAttr(vnode, 'class', subType);
|
|
92
|
+
}
|
|
93
|
+
return vnode;
|
|
59
94
|
}
|
|
60
95
|
}
|