@eclipse-glsp-examples/workflow-glsp 0.10.0-next.bb1c2fd.157 → 0.10.0-next.e5fcffe.169

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/diagram.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 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
@@ -20,10 +20,6 @@
20
20
  height: 100%;
21
21
  }
22
22
 
23
- .sprotty-popup {
24
- z-index: 1;
25
- }
26
-
27
23
  .sprotty-text {
28
24
  font-size: 12pt;
29
25
  text-anchor: middle;
@@ -34,15 +30,6 @@
34
30
  font-weight: bold;
35
31
  }
36
32
 
37
- .sprotty-node.mouseover:not(.selected) {
38
- stroke-width: 2;
39
- }
40
-
41
- .sprotty-comp {
42
- line-height: 3px;
43
- text-align: left;
44
- }
45
-
46
33
  .sprotty-label {
47
34
  stroke-width: 0;
48
35
  fill: #000;
@@ -53,132 +40,59 @@
53
40
 
54
41
  .sprotty-label.heading {
55
42
  font-weight: normal;
43
+ font-size: 0.7em;
44
+ fill: #f0f3f8;
56
45
  }
57
46
 
58
- .sprotty-icon {
59
- stroke: black;
60
- stroke-width: 0.5;
61
- fill: #ffffff;
62
- opacity: 0.5;
63
- }
64
-
65
- .sprotty-label.icon {
66
- fill: black;
67
- }
68
-
69
- .sprotty-button {
70
- fill: #152;
47
+ .icon path {
71
48
  stroke-width: 0;
49
+ fill: #f0f3f8;
72
50
  }
73
51
 
74
- .sprotty-edge {
75
- fill: none;
76
- stroke-width: 1px;
77
- }
78
-
79
- .sprotty-edge.selected {
80
- stroke-width: 3px;
81
- }
82
-
83
- .sprotty-edge.mouseover:not(.selected) {
84
- stroke-width: 2px;
85
- }
86
-
87
- .sprotty-edge > .sprotty-routing-handle {
88
- r: 7px;
89
- fill: #884;
90
- stroke: none;
91
- z-index: 1000;
92
- }
93
-
94
- .sprotty-edge > .sprotty-routing-handle[data-kind='line'] {
95
- opacity: 0.35;
96
- }
97
-
98
- .sprotty-edge > .sprotty-routing-handle.selected {
99
- fill: #66a;
100
- }
101
-
102
- .sprotty-edge > .sprotty-routing-handle.mouseover {
103
- stroke: #112;
104
- stroke-width: 1;
105
- }
106
-
107
- .sprotty-missing {
108
- stroke-width: 1;
109
- stroke: #f00;
110
- fill: #f00;
111
- font-size: 14pt;
112
- text-anchor: middle;
113
- }
114
-
115
- .sprotty-node:not(.selected) {
116
- stroke-width: 1px;
117
- }
118
-
119
- .sprotty-node.marquee {
120
- fill: lightgray;
121
- opacity: 0.2;
52
+ .icon .icon-background {
53
+ fill: transparent;
122
54
  }
123
55
 
124
56
  .task.automated > .sprotty-node {
125
- fill: lightgray;
57
+ fill: #5b9fa8;
126
58
  }
127
59
 
128
60
  .task.manual > .sprotty-node {
129
- fill: lightblue;
61
+ fill: #db8651;
130
62
  }
131
63
 
132
64
  .category > .sprotty-node {
133
- fill: lightblue;
134
- }
135
-
136
- text {
137
- stroke-width: 0;
138
- stroke: #000;
139
- fill: #000;
140
- font-family: sans-serif;
141
- font-size: 8pt;
142
- text-anchor: middle;
143
- }
144
-
145
- .sprotty-edge.weighted.low,
146
- .sprotty-edge.weighted.low .arrow {
147
- stroke: lightblue;
65
+ fill: #5c87bd;
148
66
  }
149
67
 
150
- .sprotty-edge.weighted.low .arrow {
151
- fill: lightblue;
68
+ .sprotty-edge.weighted.low:not(.selected),
69
+ .sprotty-edge.weighted.low:not(.selected) .arrow {
70
+ stroke: rgb(128, 90, 233);
152
71
  }
153
72
 
154
- .sprotty-edge.weighted,
155
- .sprotty-edge.weighted .arrow,
156
- .sprotty-edge.weighted.medium,
157
- .sprotty-edge.weighted.medium .arrow {
158
- stroke: #007fd4;
73
+ .sprotty-edge.weighted.low:not(.selected) .arrow {
74
+ fill: rgb(128, 90, 233);
159
75
  }
160
76
 
161
- .sprotty-edge.weighted .arrow,
162
- .sprotty-edge.weighted.medium .arrow {
163
- fill: #007fd4;
77
+ .sprotty-edge.weighted:not(.selected),
78
+ .sprotty-edge.weighted:not(.selected) .arrow,
79
+ .sprotty-edge.weighted.medium:not(.selected),
80
+ .sprotty-edge.weighted.medium:not(.selected) .arrow {
81
+ stroke: rgb(98, 60, 193);
164
82
  }
165
83
 
166
- .sprotty-edge.weighted.high,
167
- .sprotty-edge.weighted.high .arrow {
168
- stroke: darkblue;
84
+ .sprotty-edge.weighted:not(.selected) .arrow,
85
+ .sprotty-edge.weighted.medium:not(.selected) .arrow {
86
+ fill: rgb(98, 60, 193);
169
87
  }
170
88
 
171
- .sprotty-edge.weighted.high .arrow {
172
- fill: darkblue;
89
+ .sprotty-edge.weighted.high:not(.selected),
90
+ .sprotty-edge.weighted.high:not(.selected) .arrow {
91
+ stroke: rgb(68, 30, 163);
173
92
  }
174
93
 
175
- polygon.sprotty-node {
176
- fill: white;
177
- stroke-width: 1pt;
178
- }
179
-
180
- .sprotty-node.selected {
181
- stroke-width: 3px;
94
+ .sprotty-edge.weighted.high:not(.selected) .arrow {
95
+ fill: rgb(68, 30, 163);
182
96
  }
183
97
 
184
98
  .sprotty-comp {
@@ -186,38 +100,7 @@ polygon.sprotty-node {
186
100
  fill: transparent;
187
101
  }
188
102
 
189
- .sprotty-comp.debug {
190
- stroke: deepskyblue;
191
- }
192
-
193
- svg {
194
- border-style: solid;
195
- border-width: 1px;
196
- border-color: #bbb;
197
- }
198
-
199
103
  .label-edit input {
200
- margin-top: -1px;
201
- margin-left: -5px;
202
- }
203
-
204
- g .movement-not-allowed > .sprotty-node {
205
- stroke: var(--glsp-error-foreground) !important;
206
- }
207
-
208
- .sprotty-resize-handle.movement-not-allowed {
209
- stroke: var(--glsp-error-foreground) !important;
210
- fill: var(--glsp-error-foreground) !important;
211
- }
212
-
213
- .error > .sprotty-node {
214
- stroke: var(--glsp-error-foreground) !important;
215
- }
216
-
217
- .warning > .sprotty-node {
218
- stroke: var(--glsp-warning-foreground) !important;
219
- }
220
-
221
- .info > .sprotty-node {
222
- stroke: var(--glsp-info-foreground) !important;
104
+ margin-top: -3px;
105
+ margin-left: -3px;
223
106
  }
package/lib/di.config.js CHANGED
@@ -31,26 +31,26 @@ const workflowDiagramModule = new inversify_1.ContainerModule((bind, unbind, isB
31
31
  bind(client_1.TYPES.ICommandPaletteActionProvider).to(client_1.RevealNamedElementActionProvider);
32
32
  bind(client_1.TYPES.IContextMenuItemProvider).to(client_1.DeleteElementContextMenuItemProvider);
33
33
  const context = { bind, unbind, isBound, rebind };
34
- client_1.configureDefaultModelElements(context);
35
- client_1.configureModelElement(context, 'task:automated', model_1.TaskNode, client_1.RoundedCornerNodeView);
36
- client_1.configureModelElement(context, 'task:manual', model_1.TaskNode, client_1.RoundedCornerNodeView);
37
- client_1.configureModelElement(context, 'label:heading', client_1.SLabel, client_1.SLabelView, { enable: [client_1.editLabelFeature] });
38
- client_1.configureModelElement(context, 'comp:comp', client_1.SCompartment, client_1.SCompartmentView);
39
- client_1.configureModelElement(context, 'comp:header', client_1.SCompartment, client_1.SCompartmentView);
40
- client_1.configureModelElement(context, 'label:icon', client_1.SLabel, client_1.SLabelView);
41
- client_1.configureModelElement(context, protocol_1.DefaultTypes.EDGE, client_1.SEdge, workflow_views_1.WorkflowEdgeView);
42
- client_1.configureModelElement(context, 'edge:weighted', model_1.WeightedEdge, workflow_views_1.WorkflowEdgeView);
43
- client_1.configureModelElement(context, 'icon', model_1.Icon, workflow_views_1.IconView);
44
- client_1.configureModelElement(context, 'activityNode:merge', model_1.ActivityNode, client_1.DiamondNodeView);
45
- client_1.configureModelElement(context, 'activityNode:decision', model_1.ActivityNode, client_1.DiamondNodeView);
46
- client_1.configureModelElement(context, 'activityNode:fork', model_1.ActivityNode, client_1.RectangularNodeView);
47
- client_1.configureModelElement(context, 'activityNode:join', model_1.ActivityNode, client_1.RectangularNodeView);
48
- client_1.configureModelElement(context, 'category', model_1.CategoryNode, client_1.RoundedCornerNodeView);
49
- client_1.configureModelElement(context, 'struct', client_1.SCompartment, client_1.StructureCompartmentView);
34
+ (0, client_1.configureDefaultModelElements)(context);
35
+ (0, client_1.configureModelElement)(context, 'task:automated', model_1.TaskNode, client_1.RoundedCornerNodeView);
36
+ (0, client_1.configureModelElement)(context, 'task:manual', model_1.TaskNode, client_1.RoundedCornerNodeView);
37
+ (0, client_1.configureModelElement)(context, 'label:heading', client_1.SLabel, client_1.SLabelView, { enable: [client_1.editLabelFeature] });
38
+ (0, client_1.configureModelElement)(context, 'comp:comp', client_1.SCompartment, client_1.SCompartmentView);
39
+ (0, client_1.configureModelElement)(context, 'comp:header', client_1.SCompartment, client_1.SCompartmentView);
40
+ (0, client_1.configureModelElement)(context, 'label:icon', client_1.SLabel, client_1.SLabelView);
41
+ (0, client_1.configureModelElement)(context, protocol_1.DefaultTypes.EDGE, client_1.SEdge, workflow_views_1.WorkflowEdgeView);
42
+ (0, client_1.configureModelElement)(context, 'edge:weighted', model_1.WeightedEdge, workflow_views_1.WorkflowEdgeView);
43
+ (0, client_1.configureModelElement)(context, 'icon', model_1.Icon, workflow_views_1.IconView);
44
+ (0, client_1.configureModelElement)(context, 'activityNode:merge', model_1.ActivityNode, client_1.DiamondNodeView);
45
+ (0, client_1.configureModelElement)(context, 'activityNode:decision', model_1.ActivityNode, client_1.DiamondNodeView);
46
+ (0, client_1.configureModelElement)(context, 'activityNode:fork', model_1.ActivityNode, client_1.RectangularNodeView);
47
+ (0, client_1.configureModelElement)(context, 'activityNode:join', model_1.ActivityNode, client_1.RectangularNodeView);
48
+ (0, client_1.configureModelElement)(context, 'category', model_1.CategoryNode, client_1.RoundedCornerNodeView);
49
+ (0, client_1.configureModelElement)(context, 'struct', client_1.SCompartment, client_1.StructureCompartmentView);
50
50
  });
51
51
  function createContainer(widgetId) {
52
- const container = client_1.createClientContainer(workflowDiagramModule, di_config_1.directTaskEditor);
53
- client_1.overrideViewerOptions(container, {
52
+ const container = (0, client_1.createClientContainer)(workflowDiagramModule, di_config_1.directTaskEditor);
53
+ (0, client_1.overrideViewerOptions)(container, {
54
54
  baseDiv: widgetId,
55
55
  hiddenDiv: widgetId + '_hidden'
56
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"di.config.js","sourceRoot":"","sources":["../src/di.config.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAqB8B;AAC9B,qDAAsD;AACtD,uCAAqC;AACrC,yCAAuD;AACvD,sCAAoC;AACpC,8BAA4B;AAC5B,+DAAmE;AACnE,mCAAmF;AACnF,qDAA8D;AAE9D,MAAM,qBAAqB,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAChF,MAAM,CAAC,cAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3D,MAAM,CAAC,cAAK,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,cAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,oBAAW,CAAC,CAAC;IACrC,IAAI,CAAC,cAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,yCAAgC,CAAC,CAAC;IAC/E,IAAI,CAAC,cAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,6CAAoC,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAElD,sCAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,8BAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAQ,EAAE,8BAAqB,CAAC,CAAC;IAClF,8BAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAQ,EAAE,8BAAqB,CAAC,CAAC;IAC/E,8BAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,eAAM,EAAE,mBAAU,EAAE,EAAE,MAAM,EAAE,CAAC,yBAAgB,CAAC,EAAE,CAAC,CAAC;IACpG,8BAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAY,EAAE,yBAAgB,CAAC,CAAC;IAC5E,8BAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,qBAAY,EAAE,yBAAgB,CAAC,CAAC;IAC9E,8BAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,eAAM,EAAE,mBAAU,CAAC,CAAC;IACjE,8BAAqB,CAAC,OAAO,EAAE,uBAAY,CAAC,IAAI,EAAE,cAAK,EAAE,iCAAgB,CAAC,CAAC;IAC3E,8BAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,oBAAY,EAAE,iCAAgB,CAAC,CAAC;IAChF,8BAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAI,EAAE,yBAAQ,CAAC,CAAC;IACvD,8BAAqB,CAAC,OAAO,EAAE,oBAAoB,EAAE,oBAAY,EAAE,wBAAe,CAAC,CAAC;IACpF,8BAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,oBAAY,EAAE,wBAAe,CAAC,CAAC;IACvF,8BAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,oBAAY,EAAE,4BAAmB,CAAC,CAAC;IACvF,8BAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,oBAAY,EAAE,4BAAmB,CAAC,CAAC;IAEvF,8BAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,oBAAY,EAAE,8BAAqB,CAAC,CAAC;IAChF,8BAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAY,EAAE,iCAAwB,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC;AAEH,SAAwB,eAAe,CAAC,QAAgB;IACpD,MAAM,SAAS,GAAG,8BAAqB,CAAC,qBAAqB,EAAE,4BAAgB,CAAC,CAAC;IACjF,8BAAqB,CAAC,SAAS,EAAE;QAC7B,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,QAAQ,GAAG,SAAS;KAClC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC;AAPD,kCAOC"}
1
+ {"version":3,"file":"di.config.js","sourceRoot":"","sources":["../src/di.config.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,3 @@
1
- /********************************************************************************
2
- * Copyright (c) 2020 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
1
  import { ContainerModule } from 'inversify';
17
2
  export declare const directTaskEditor: ContainerModule;
18
3
  //# sourceMappingURL=di.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAK5C,eAAO,MAAM,gBAAgB,iBAG3B,CAAC"}
1
+ {"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,eAAO,MAAM,gBAAgB,iBAG3B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.directTaskEditor = void 0;
4
4
  /********************************************************************************
5
- * Copyright (c) 2020 EclipseSource and others.
5
+ * Copyright (c) 2020-2022 EclipseSource and others.
6
6
  *
7
7
  * This program and the accompanying materials are made available under the
8
8
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -16,11 +16,11 @@ exports.directTaskEditor = void 0;
16
16
  *
17
17
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
18
18
  ********************************************************************************/
19
+ const client_1 = require("@eclipse-glsp/client");
19
20
  const inversify_1 = require("inversify");
20
- const sprotty_1 = require("sprotty");
21
21
  const direct_task_editor_1 = require("./direct-task-editor");
22
22
  exports.directTaskEditor = new inversify_1.ContainerModule((bind, _unbind, isBound) => {
23
23
  bind(direct_task_editor_1.TaskEditor).toSelf().inSingletonScope();
24
- bind(sprotty_1.TYPES.IUIExtension).toService(direct_task_editor_1.TaskEditor);
24
+ bind(client_1.TYPES.IUIExtension).toService(direct_task_editor_1.TaskEditor);
25
25
  });
26
26
  //# sourceMappingURL=di.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA4C;AAC5C,qCAAgC;AAEhC,6DAAkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3E,IAAI,CAAC,+BAAU,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7C,IAAI,CAAC,eAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,+BAAU,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../src/direct-task-editing/di.config.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAA6C;AAC7C,yCAA4C;AAC5C,6DAAkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3E,IAAI,CAAC,+BAAU,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC7C,IAAI,CAAC,cAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,+BAAU,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -13,15 +13,31 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { AbstractUIExtension, Action, AutoCompleteWidget, EditorContextService, GLSPActionDispatcher, ILogger, LabeledAction, SModelRoot, ValidationStatus, ViewerOptions } from '@eclipse-glsp/client';
16
+ import { AbstractUIExtension, Action, AutoCompleteWidget, EditorContextService, GLSPActionDispatcher, ILogger, LabeledAction, Operation, SModelRoot, ValidationStatus, ViewerOptions } from '@eclipse-glsp/client';
17
17
  import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
18
18
  import { TaskNode } from '../model';
19
- export declare class ApplyTaskEditOperation implements Action {
20
- readonly taskId: string;
21
- readonly expression: string;
22
- static readonly KIND = "applyTaskEdit";
23
- readonly kind = "applyTaskEdit";
24
- constructor(taskId: string, expression: string);
19
+ /**
20
+ * Is send from the {@link TaskEditor} to the GLSP server
21
+ * to execute a task edit operation.
22
+ */
23
+ export interface ApplyTaskEditOperation extends Operation {
24
+ kind: typeof ApplyTaskEditOperation.KIND;
25
+ /**
26
+ * Id of the task that should be edited
27
+ */
28
+ taskId: string;
29
+ /**
30
+ * The edit expression
31
+ */
32
+ expression: string;
33
+ }
34
+ export declare namespace ApplyTaskEditOperation {
35
+ const KIND = "applyTaskEdit";
36
+ function is(object: any): object is ApplyTaskEditOperation;
37
+ function create(options: {
38
+ taskId: string;
39
+ expression: string;
40
+ }): ApplyTaskEditOperation;
25
41
  }
26
42
  export declare class TaskEditor extends AbstractUIExtension {
27
43
  static readonly ID = "task-editor";
@@ -1 +1 @@
1
- {"version":3,"file":"direct-task-editor.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EACpB,OAAO,EAGP,aAAa,EAIb,UAAU,EAGV,gBAAgB,EAChB,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAAc,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhD,qBAAa,sBAAuB,YAAW,MAAM;IAGrC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM;IAFhE,MAAM,CAAC,QAAQ,CAAC,IAAI,mBAAmB;IACvC,QAAQ,CAAC,IAAI,mBAA+B;gBACvB,MAAM,EAAE,MAAM,EAAW,UAAU,EAAE,MAAM;CACnE;AAED,qBACa,UAAW,SAAQ,mBAAmB;IAC/C,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB;IACnC,QAAQ,CAAC,sBAAsB;;;;;MAK7B;IAGF,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAGjD,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAG/B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IACzB,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE7C,EAAE,IAAI,MAAM;IAGZ,cAAc,IAAI,MAAM;IAIxB,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;IAkBjE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IAKtE,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IAMvH,SAAS,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;cAe1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;cAU5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQvE,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IAI/E,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKvD,IAAI,IAAI,IAAI;CAIf"}
1
+ {"version":3,"file":"direct-task-editor.d.ts","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EAEpB,OAAO,EACP,aAAa,EAEb,SAAS,EAKT,UAAU,EAIV,gBAAgB,EAChB,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAc,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACrD,IAAI,EAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC;IAEzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,yBAAiB,sBAAsB,CAAC;IAC7B,MAAM,IAAI,kBAAkB,CAAC;IAEpC,SAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,sBAAsB,CAEhE;IAED,SAAgB,MAAM,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,sBAAsB,CAM9F;CACJ;AAED,qBACa,UAAW,SAAQ,mBAAmB;IAC/C,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB;IACnC,QAAQ,CAAC,sBAAsB;;;;;MAK7B;IAGF,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAGjD,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAGvC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAE/B,UACmB,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IACzB,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE7C,EAAE,IAAI,MAAM;IAGZ,cAAc,IAAI,MAAM;IAIxB,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;IAkBxD,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;cAK5D,YAAY,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IAMhI,SAAS,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;cAe1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;cAU5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUvE,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IAI/E,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,IAAI,IAAI,IAAI;CAIxB"}
@@ -12,7 +12,7 @@ var TaskEditor_1;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.TaskEditor = exports.ApplyTaskEditOperation = void 0;
14
14
  /********************************************************************************
15
- * Copyright (c) 2020-2021 EclipseSource and others.
15
+ * Copyright (c) 2020-2022 EclipseSource and others.
16
16
  *
17
17
  * This program and the accompanying materials are made available under the
18
18
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -28,18 +28,20 @@ exports.TaskEditor = exports.ApplyTaskEditOperation = void 0;
28
28
  ********************************************************************************/
29
29
  const client_1 = require("@eclipse-glsp/client");
30
30
  const inversify_1 = require("inversify");
31
- const lib_1 = require("sprotty/lib");
32
31
  const dom_helper_1 = require("sprotty/lib/base/views/dom-helper");
33
32
  const model_1 = require("../model");
34
- class ApplyTaskEditOperation {
35
- constructor(taskId, expression) {
36
- this.taskId = taskId;
37
- this.expression = expression;
38
- this.kind = ApplyTaskEditOperation.KIND;
33
+ var ApplyTaskEditOperation;
34
+ (function (ApplyTaskEditOperation) {
35
+ ApplyTaskEditOperation.KIND = 'applyTaskEdit';
36
+ function is(object) {
37
+ return client_1.Operation.hasKind(object, ApplyTaskEditOperation.KIND) && (0, client_1.hasStringProp)(object, 'taskId') && (0, client_1.hasStringProp)(object, 'expression');
39
38
  }
40
- }
41
- exports.ApplyTaskEditOperation = ApplyTaskEditOperation;
42
- ApplyTaskEditOperation.KIND = 'applyTaskEdit';
39
+ ApplyTaskEditOperation.is = is;
40
+ function create(options) {
41
+ return Object.assign({ kind: ApplyTaskEditOperation.KIND, isOperation: true }, options);
42
+ }
43
+ ApplyTaskEditOperation.create = create;
44
+ })(ApplyTaskEditOperation = exports.ApplyTaskEditOperation || (exports.ApplyTaskEditOperation = {}));
43
45
  let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExtension {
44
46
  constructor() {
45
47
  super(...arguments);
@@ -69,7 +71,7 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
69
71
  this.autoSuggestion.open(root);
70
72
  }
71
73
  onBeforeShow(containerElement, root, ...contextElementIds) {
72
- this.task = getTask(contextElementIds, root)[0];
74
+ this.task = getTask(contextElementIds, root.index)[0];
73
75
  this.autoSuggestion.inputField.value = '';
74
76
  this.setPosition(containerElement);
75
77
  }
@@ -77,7 +79,7 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
77
79
  let x = 0;
78
80
  let y = 0;
79
81
  if (this.task) {
80
- const bounds = client_1.getAbsoluteClientBounds(this.task, this.domHelper, this.viewerOptions);
82
+ const bounds = (0, client_1.getAbsoluteClientBounds)(this.task, this.domHelper, this.viewerOptions);
81
83
  x = bounds.x + 5;
82
84
  y = bounds.y + 5;
83
85
  }
@@ -86,24 +88,24 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
86
88
  containerElement.style.width = '200px';
87
89
  }
88
90
  async retrieveSuggestions(input) {
89
- const response = await this.actionDispatcher.request(new client_1.RequestContextActions(TaskEditor_1.ID, this.editorContextService.get({ ['text']: input })));
90
- if (client_1.isSetContextActionsAction(response)) {
91
+ const response = await this.actionDispatcher.request(client_1.RequestContextActions.create({ contextId: TaskEditor_1.ID, editorContext: this.editorContextService.get({ ['text']: input }) }));
92
+ if (client_1.SetContextActions.is(response)) {
91
93
  return response.actions;
92
94
  }
93
95
  return Promise.reject();
94
96
  }
95
97
  async validateInput(input) {
96
- const response = await this.actionDispatcher.request(new client_1.RequestEditValidationAction(TaskEditor_1.ID, this.task.id, input));
97
- if (client_1.isSetEditValidationResultAction(response)) {
98
+ const response = await this.actionDispatcher.request(client_1.RequestEditValidationAction.create({ contextId: TaskEditor_1.ID, modelElementId: this.task.id, text: input }));
99
+ if (client_1.SetEditValidationResultAction.is(response)) {
98
100
  return response.status;
99
101
  }
100
102
  return Promise.reject();
101
103
  }
102
104
  executeFromSuggestion(input) {
103
- this.actionDispatcher.dispatchAll(client_1.toActionArray(input));
105
+ this.actionDispatcher.dispatchAll((0, client_1.toActionArray)(input));
104
106
  }
105
107
  executeFromTextOnlyInput(input) {
106
- const action = new ApplyTaskEditOperation(this.task.id, input);
108
+ const action = ApplyTaskEditOperation.create({ taskId: this.task.id, expression: input });
107
109
  this.actionDispatcher.dispatch(action);
108
110
  }
109
111
  hide() {
@@ -113,30 +115,30 @@ let TaskEditor = TaskEditor_1 = class TaskEditor extends client_1.AbstractUIExte
113
115
  };
114
116
  TaskEditor.ID = 'task-editor';
115
117
  __decorate([
116
- inversify_1.inject(lib_1.TYPES.IActionDispatcher),
118
+ (0, inversify_1.inject)(client_1.TYPES.IActionDispatcher),
117
119
  __metadata("design:type", client_1.GLSPActionDispatcher)
118
120
  ], TaskEditor.prototype, "actionDispatcher", void 0);
119
121
  __decorate([
120
- inversify_1.inject(client_1.EditorContextService),
122
+ (0, inversify_1.inject)(client_1.EditorContextService),
121
123
  __metadata("design:type", client_1.EditorContextService)
122
124
  ], TaskEditor.prototype, "editorContextService", void 0);
123
125
  __decorate([
124
- inversify_1.inject(lib_1.TYPES.ViewerOptions),
126
+ (0, inversify_1.inject)(client_1.TYPES.ViewerOptions),
125
127
  __metadata("design:type", Object)
126
128
  ], TaskEditor.prototype, "viewerOptions", void 0);
127
129
  __decorate([
128
- inversify_1.inject(lib_1.TYPES.DOMHelper),
130
+ (0, inversify_1.inject)(client_1.TYPES.DOMHelper),
129
131
  __metadata("design:type", dom_helper_1.DOMHelper)
130
132
  ], TaskEditor.prototype, "domHelper", void 0);
131
133
  __decorate([
132
- inversify_1.inject(lib_1.TYPES.ILogger),
134
+ (0, inversify_1.inject)(client_1.TYPES.ILogger),
133
135
  __metadata("design:type", Object)
134
136
  ], TaskEditor.prototype, "logger", void 0);
135
137
  TaskEditor = TaskEditor_1 = __decorate([
136
- inversify_1.injectable()
138
+ (0, inversify_1.injectable)()
137
139
  ], TaskEditor);
138
140
  exports.TaskEditor = TaskEditor;
139
- function getTask(ids, element) {
140
- return ids.map(id => element.index.getById(id)).filter(model_1.isTaskNode);
141
+ function getTask(ids, index) {
142
+ return ids.map(id => index.getById(id)).filter(element => element && (0, model_1.isTaskNode)(element));
141
143
  }
142
144
  //# sourceMappingURL=direct-task-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"direct-task-editor.js","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"direct-task-editor.js","sourceRoot":"","sources":["../../src/direct-task-editing/direct-task-editor.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
7
7
  o[k2] = m[k];
8
8
  }));
9
9
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.createWorkflowDiagramContainer = void 0;
package/lib/model.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -16,11 +16,11 @@
16
16
  import { DiamondNode, EditableLabel, LayoutContainer, Nameable, RectangularNode, SChildElement, SEdge, SModelElement, SShapeElement, WithEditableLabel } from '@eclipse-glsp/client';
17
17
  export declare class TaskNode extends RectangularNode implements Nameable, WithEditableLabel {
18
18
  static readonly DEFAULT_FEATURES: symbol[];
19
- name: string;
20
19
  duration?: number;
21
20
  taskType?: string;
22
21
  reference?: string;
23
22
  get editableLabel(): (SChildElement & EditableLabel) | undefined;
23
+ get name(): string;
24
24
  }
25
25
  export declare function isTaskNode(element: SModelElement): element is TaskNode;
26
26
  export declare class WeightedEdge extends SEdge {
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAIH,WAAW,EACX,aAAa,EAKb,eAAe,EAGf,QAAQ,EAGR,eAAe,EACf,aAAa,EACb,KAAK,EAEL,aAAa,EACb,aAAa,EACb,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,QAAS,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IAChF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAY9B;IACF,IAAI,SAAM;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAS/D;CACJ;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,QAAQ,CAEtE;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,QAAQ,EAAE,MAAM,CAA+B;IAC/C,IAAI;;;MAGF;IACF,WAAW,SAAK;CACnB;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,IAAI,CAAC;QACX,MAAM,OAAO,eAAe,CAAC;QAC7B,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,QAAQ,iBAAiB,CAAC;QAChC,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,SAAS,cAAc,CAAC;KACxC;CACJ;AAED,qBAAa,IAAK,SAAQ,aAAc,YAAW,eAAe;IAC9D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAgF;IAEhH,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7D,IAAI;;;MAGF;CACL;AAED,qBAAa,YAAa,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IACpF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAW9B;IAEF,IAAI,SAAM;IAEV,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAM/D;CACJ"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAIH,WAAW,EACX,aAAa,EAKb,eAAe,EAGf,QAAQ,EAGR,eAAe,EACf,aAAa,EACb,KAAK,EAEL,aAAa,EACb,aAAa,EACb,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,QAAS,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IAChF,gBAAyB,gBAAgB,WAYvC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAM/D;IAED,IAAI,IAAI,IAAI,MAAM,CAGjB;CACJ;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,QAAQ,CAEtE;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,WAAW;IACzC,QAAQ,EAAE,MAAM,CAA+B;IACtC,IAAI;;;MAGX;IACO,WAAW,SAAK;CAC5B;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,IAAI,CAAC;QACX,MAAM,OAAO,eAAe,CAAC;QAC7B,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,QAAQ,iBAAiB,CAAC;QAChC,MAAM,KAAK,cAAc,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,SAAS,cAAc,CAAC;KACxC;CACJ;AAED,qBAAa,IAAK,SAAQ,aAAc,YAAW,eAAe;IAC9D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAgF;IAEhH,MAAM,EAAE,MAAM,CAAC;IACN,aAAa,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7D,IAAI;;;MAGX;CACL;AAED,qBAAa,YAAa,SAAQ,eAAgB,YAAW,QAAQ,EAAE,iBAAiB;IACpF,gBAAyB,gBAAgB,WAWvC;IAEF,IAAI,SAAM;IAEV,IAAI,aAAa,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,SAAS,CAM/D;CACJ"}
package/lib/model.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CategoryNode = exports.Icon = exports.ActivityNode = exports.WeightedEdge = exports.isTaskNode = exports.TaskNode = void 0;
4
4
  /********************************************************************************
5
- * Copyright (c) 2020-2021 EclipseSource and others.
5
+ * Copyright (c) 2020-2022 EclipseSource and others.
6
6
  *
7
7
  * This program and the accompanying materials are made available under the
8
8
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -18,20 +18,18 @@ exports.CategoryNode = exports.Icon = exports.ActivityNode = exports.WeightedEdg
18
18
  ********************************************************************************/
19
19
  const client_1 = require("@eclipse-glsp/client");
20
20
  class TaskNode extends client_1.RectangularNode {
21
- constructor() {
22
- super(...arguments);
23
- this.name = '';
24
- }
25
21
  get editableLabel() {
26
- const headerComp = this.children.find(element => element.type === 'comp:header');
27
- if (headerComp) {
28
- const label = headerComp.children.find(element => element.type === 'label:heading');
29
- if (label && client_1.isEditableLabel(label)) {
30
- return label;
31
- }
22
+ const label = this.children.find(element => element.type === 'label:heading');
23
+ if (label && (0, client_1.isEditableLabel)(label)) {
24
+ return label;
32
25
  }
33
26
  return undefined;
34
27
  }
28
+ get name() {
29
+ var _a;
30
+ const labelText = (_a = this.editableLabel) === null || _a === void 0 ? void 0 : _a.text;
31
+ return labelText ? labelText : '<unknown>';
32
+ }
35
33
  }
36
34
  exports.TaskNode = TaskNode;
37
35
  TaskNode.DEFAULT_FEATURES = [
@@ -96,7 +94,7 @@ class CategoryNode extends client_1.RectangularNode {
96
94
  }
97
95
  get editableLabel() {
98
96
  const label = this.children.find(element => element.type === 'label:heading');
99
- if (label && client_1.isEditableLabel(label)) {
97
+ if (label && (0, client_1.isEditableLabel)(label)) {
100
98
  return label;
101
99
  }
102
100
  return undefined;
package/lib/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAwB8B;AAE9B,MAAa,QAAS,SAAQ,wBAAe;IAA7C;;QAcI,SAAI,GAAG,EAAE,CAAC;IAed,CAAC;IAVG,IAAI,aAAa;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACjF,IAAI,UAAU,EAAE;YACZ,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;YACpF,IAAI,KAAK,IAAI,wBAAe,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AA5BL,4BA6BC;AA5BmB,yBAAgB,GAAG;IAC/B,2BAAkB;IAClB,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC;AAkBN,SAAgB,UAAU,CAAC,OAAsB;IAC7C,OAAO,OAAO,YAAY,QAAQ,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED,MAAa,YAAa,SAAQ,cAAK;CAEtC;AAFD,oCAEC;AAED,MAAa,YAAa,SAAQ,oBAAW;IAA7C;;QACI,aAAQ,GAAW,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,SAAI,GAAG;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;QACF,gBAAW,GAAG,CAAC,CAAC;IACpB,CAAC;CAAA;AAPD,oCAOC;AAED,WAAiB,YAAY;IACzB,IAAiB,IAAI,CAQpB;IARD,WAAiB,IAAI;QACJ,YAAO,GAAG,YAAY,CAAC;QACvB,UAAK,GAAG,WAAW,CAAC;QACpB,aAAQ,GAAG,cAAc,CAAC;QAC1B,UAAK,GAAG,WAAW,CAAC;QACpB,SAAI,GAAG,UAAU,CAAC;QAClB,SAAI,GAAG,UAAU,CAAC;QAClB,cAAS,GAAG,WAAW,CAAC;IACzC,CAAC,EARgB,IAAI,GAAJ,iBAAI,KAAJ,iBAAI,QAQpB;AACL,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED,MAAa,IAAK,SAAQ,sBAAa;IAAvC;;QAKI,SAAI,GAAG;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;IACN,CAAC;;AATD,oBASC;AARmB,qBAAgB,GAAG,CAAC,sBAAa,EAAE,+BAAsB,EAAE,+BAAsB,EAAE,oBAAW,CAAC,CAAC;AAUpH,MAAa,YAAa,SAAQ,wBAAe;IAAjD;;QAcI,SAAI,GAAG,EAAE,CAAC;IASd,CAAC;IAPG,IAAI,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC9E,IAAI,KAAK,IAAI,wBAAe,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AAtBL,oCAuBC;AAtBmB,6BAAgB,GAAG;IAC/B,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAwB8B;AAE9B,MAAa,QAAS,SAAQ,wBAAe;IAkBzC,IAAI,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC9E,IAAI,KAAK,IAAI,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE;YACjC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;;QACJ,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,aAAa,0CAAE,IAAI,CAAC;QAC3C,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/C,CAAC;;AA7BL,4BA8BC;AA7B4B,yBAAgB,GAAG;IACxC,2BAAkB;IAClB,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC;AAmBN,SAAgB,UAAU,CAAC,OAAsB;IAC7C,OAAO,OAAO,YAAY,QAAQ,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED,MAAa,YAAa,SAAQ,cAAK;CAEtC;AAFD,oCAEC;AAED,MAAa,YAAa,SAAQ,oBAAW;IAA7C;;QACI,aAAQ,GAAW,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,SAAI,GAAG;YACZ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;QACO,gBAAW,GAAG,CAAC,CAAC;IAC7B,CAAC;CAAA;AAPD,oCAOC;AAED,WAAiB,YAAY;IACzB,IAAiB,IAAI,CAQpB;IARD,WAAiB,IAAI;QACJ,YAAO,GAAG,YAAY,CAAC;QACvB,UAAK,GAAG,WAAW,CAAC;QACpB,aAAQ,GAAG,cAAc,CAAC;QAC1B,UAAK,GAAG,WAAW,CAAC;QACpB,SAAI,GAAG,UAAU,CAAC;QAClB,SAAI,GAAG,UAAU,CAAC;QAClB,cAAS,GAAG,WAAW,CAAC;IACzC,CAAC,EARgB,IAAI,GAAJ,iBAAI,KAAJ,iBAAI,QAQpB;AACL,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED,MAAa,IAAK,SAAQ,sBAAa;IAAvC;;QAKa,SAAI,GAAG;YACZ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;IACN,CAAC;;AATD,oBASC;AARmB,qBAAgB,GAAG,CAAC,sBAAa,EAAE,+BAAsB,EAAE,+BAAsB,EAAE,oBAAW,CAAC,CAAC;AAUpH,MAAa,YAAa,SAAQ,wBAAe;IAAjD;;QAcI,SAAI,GAAG,EAAE,CAAC;IASd,CAAC;IAPG,IAAI,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC9E,IAAI,KAAK,IAAI,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE;YACjC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AAtBL,oCAuBC;AAtB4B,6BAAgB,GAAG;IACxC,yBAAgB;IAChB,sBAAa;IACb,sBAAa;IACb,oBAAW;IACX,+BAAsB;IACtB,oBAAW;IACX,6BAAoB;IACpB,qBAAY;IACZ,oBAAW;IACX,6BAAoB;CACvB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 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
@@ -13,14 +13,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { IView, Point, PolylineEdgeViewWithGapsOnIntersections, RenderingContext, SEdge } from '@eclipse-glsp/client';
16
+ import { Point, PolylineEdgeViewWithGapsOnIntersections, RenderingContext, SEdge, ShapeView } from '@eclipse-glsp/client';
17
17
  import { VNode } from 'snabbdom';
18
18
  import { Icon } from './model';
19
19
  export declare class WorkflowEdgeView extends PolylineEdgeViewWithGapsOnIntersections {
20
20
  protected renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[];
21
21
  }
22
- export declare class IconView implements IView {
23
- render(element: Icon, context: RenderingContext): VNode;
24
- getRadius(): number;
22
+ export declare class IconView extends ShapeView {
23
+ render(element: Icon, context: RenderingContext): VNode | undefined;
25
24
  }
26
25
  //# sourceMappingURL=workflow-views.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-views.d.ts","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAEH,KAAK,EACL,KAAK,EACL,uCAAuC,EACvC,gBAAgB,EAChB,KAAK,EAER,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B,qBACa,gBAAiB,SAAQ,uCAAuC;IACzE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,EAAE;CAiBlG;AAED,qBACa,QAAS,YAAW,KAAK;IAClC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK;IAUvD,SAAS,IAAI,MAAM;CAGtB"}
1
+ {"version":3,"file":"workflow-views.d.ts","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAIH,KAAK,EACL,uCAAuC,EACvC,gBAAgB,EAChB,KAAK,EAEL,SAAS,EAGZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,IAAI,EAAc,MAAM,SAAS,CAAC;AAK3C,qBACa,gBAAiB,SAAQ,uCAAuC;cACtD,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,EAAE;CAiB3G;AAED,qBACa,QAAS,SAAQ,SAAS;IACnC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,GAAG,SAAS;CAuCtE"}
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.IconView = exports.WorkflowEdgeView = void 0;
10
10
  /********************************************************************************
11
- * Copyright (c) 2019-2021 EclipseSource and others.
11
+ * Copyright (c) 2019-2022 EclipseSource and others.
12
12
  *
13
13
  * This program and the accompanying materials are made available under the
14
14
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -24,36 +24,58 @@ exports.IconView = exports.WorkflowEdgeView = void 0;
24
24
  ********************************************************************************/
25
25
  const client_1 = require("@eclipse-glsp/client");
26
26
  const inversify_1 = require("inversify");
27
- const sprotty_1 = require("sprotty");
27
+ const model_1 = require("./model");
28
28
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
- const JSX = { createElement: sprotty_1.svg };
29
+ const JSX = { createElement: client_1.svg };
30
30
  let WorkflowEdgeView = class WorkflowEdgeView extends client_1.PolylineEdgeViewWithGapsOnIntersections {
31
31
  renderAdditionals(edge, segments, context) {
32
32
  const additionals = super.renderAdditionals(edge, segments, context);
33
33
  const p1 = segments[segments.length - 2];
34
34
  const p2 = segments[segments.length - 1];
35
- const arrow = (JSX.createElement("path", { "class-sprotty-edge": true, "class-arrow": true, d: 'M 1.5,0 L 10,-4 L 10,4 Z', transform: `rotate(${client_1.toDegrees(client_1.angleOfPoint({ x: p1.x - p2.x, y: p1.y - p2.y }))} ${p2.x} ${p2.y}) translate(${p2.x} ${p2.y})` }));
35
+ const arrow = (JSX.createElement("path", { "class-sprotty-edge": true, "class-arrow": true, d: 'M 1,0 L 10,-4 L 10,4 Z', transform: `rotate(${(0, client_1.toDegrees)((0, client_1.angleOfPoint)({ x: p1.x - p2.x, y: p1.y - p2.y }))} ${p2.x} ${p2.y}) translate(${p2.x} ${p2.y})` }));
36
36
  additionals.push(arrow);
37
37
  return additionals;
38
38
  }
39
39
  };
40
40
  WorkflowEdgeView = __decorate([
41
- inversify_1.injectable()
41
+ (0, inversify_1.injectable)()
42
42
  ], WorkflowEdgeView);
43
43
  exports.WorkflowEdgeView = WorkflowEdgeView;
44
- let IconView = class IconView {
44
+ let IconView = class IconView extends client_1.ShapeView {
45
45
  render(element, context) {
46
- const radius = this.getRadius();
47
- return (JSX.createElement("g", null,
48
- JSX.createElement("circle", { "class-sprotty-icon": true, r: radius, cx: radius + 2, cy: radius + 2 }),
46
+ const taskNode = (0, client_1.findParentByFeature)(element, model_1.isTaskNode);
47
+ if (!taskNode || !this.isVisible(element, context)) {
48
+ return undefined;
49
+ }
50
+ let icon;
51
+ if (taskNode.type === 'task:manual') {
52
+ // From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/account.svg?short_path=8135b2d
53
+ icon =
54
+ // eslint-disable-next-line max-len
55
+ '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';
56
+ }
57
+ else {
58
+ // From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/gear.svg?short_path=8ee3ec4
59
+ icon =
60
+ // eslint-disable-next-line max-len
61
+ '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';
62
+ }
63
+ const vnode = (JSX.createElement("g", null,
64
+ JSX.createElement("path", { transform: 'scale(1.15),translate(0.75,0.75)',
65
+ // From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/terminal.svg?short_path=2ffc08e
66
+ // eslint-disable-next-line max-len
67
+ d: icon }),
68
+ JSX.createElement("rect", { "class-icon-background": true, x: 0, y: 0, width: 25, height: 20 }),
49
69
  context.renderChildren(element)));
50
- }
51
- getRadius() {
52
- return 14;
70
+ const subType = (0, client_1.getSubType)(element);
71
+ if (subType) {
72
+ (0, client_1.setAttr)(vnode, 'class', subType);
73
+ }
74
+ return vnode;
53
75
  }
54
76
  };
55
77
  IconView = __decorate([
56
- inversify_1.injectable()
78
+ (0, inversify_1.injectable)()
57
79
  ], IconView);
58
80
  exports.IconView = IconView;
59
81
  //# sourceMappingURL=workflow-views.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-views.js","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAQ8B;AAC9B,yCAAuC;AAEvC,qCAA8B;AAG9B,6DAA6D;AAC7D,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,aAAG,EAAE,CAAC;AAGnC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,gDAAuC;IAC/D,iBAAiB,CAAC,IAAW,EAAE,QAAiB,EAAE,OAAyB;QACjF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CACV,kDACwB,IAAI,iBACX,IAAI,EACjB,CAAC,EAAC,0BAA0B,EAC5B,SAAS,EAAE,UAAU,kBAAS,CAAC,qBAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAC/G,EAAE,CAAC,CACP,GAAG,GACL,CACL,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ,CAAA;AAlBY,gBAAgB;IAD5B,sBAAU,EAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqB7B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IACjB,MAAM,CAAC,OAAa,EAAE,OAAyB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CACH;YACI,oDAA4B,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAW;YACrF,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAChC,CACP,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAA;AAdY,QAAQ;IADpB,sBAAU,EAAE;GACA,QAAQ,CAcpB;AAdY,4BAAQ"}
1
+ {"version":3,"file":"workflow-views.js","sourceRoot":"","sources":["../src/workflow-views.tsx"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,iDAY8B;AAC9B,yCAAuC;AAEvC,mCAA2C;AAE3C,6DAA6D;AAC7D,MAAM,GAAG,GAAG,EAAE,aAAa,EAAE,YAAG,EAAE,CAAC;AAGnC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,gDAAuC;IACtD,iBAAiB,CAAC,IAAW,EAAE,QAAiB,EAAE,OAAyB;QAC1F,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CACV,kDACwB,IAAI,iBACX,IAAI,EACjB,CAAC,EAAC,wBAAwB,EAC1B,SAAS,EAAE,UAAU,IAAA,kBAAS,EAAC,IAAA,qBAAY,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAC/G,EAAE,CAAC,CACP,GAAG,GACL,CACL,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ,CAAA;AAlBY,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB;AAqB7B,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,kBAAS;IACnC,MAAM,CAAC,OAAa,EAAE,OAAyB;QAC3C,MAAM,QAAQ,GAAG,IAAA,4BAAmB,EAAC,OAAO,EAAE,kBAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YAChD,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,IAAI,CAAC;QACT,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;YACjC,iHAAiH;YACjH,IAAI;gBACA,mCAAmC;gBACnC,ksDAAksD,CAAC;SAC1sD;aAAM;YACH,8GAA8G;YAC9G,IAAI;gBACA,mCAAmC;gBACnC,wbAAwb,CAAC;SAChc;QAED,MAAM,KAAK,GAAG,CACV;YACI,4BACI,SAAS,EAAE,kCAAkC;gBAC7C,kHAAkH;gBAClH,mCAAmC;gBACnC,CAAC,EAAE,IAAI,GACT;YACF,2DAA4B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI;YAChE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAChC,CACP,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE;YACT,IAAA,gBAAO,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACpC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAxCY,QAAQ;IADpB,IAAA,sBAAU,GAAE;GACA,QAAQ,CAwCpB;AAxCY,4BAAQ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-glsp-examples/workflow-glsp",
3
- "version": "0.10.0-next.bb1c2fd.157+bb1c2fd",
3
+ "version": "0.10.0-next.e5fcffe.169+e5fcffe",
4
4
  "description": "GLSP diagrams for the Workflow DSL",
5
5
  "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
6
6
  "keywords": [
@@ -26,17 +26,15 @@
26
26
  }
27
27
  ],
28
28
  "dependencies": {
29
- "@eclipse-glsp/client": "0.10.0-next.bb1c2fd.157+bb1c2fd",
29
+ "@eclipse-glsp/client": "0.10.0-next.e5fcffe.169+e5fcffe",
30
30
  "balloon-css": "^0.5.0"
31
31
  },
32
32
  "devDependencies": {
33
- "mvn-artifact-download": "5.1.0",
34
- "rimraf": "^2.6.1",
35
- "typescript": "^3.9.2"
33
+ "mvn-artifact-download": "5.1.0"
36
34
  },
37
35
  "scripts": {
38
36
  "prepare": "yarn clean && yarn build && yarn lint",
39
- "clean": "rimraf lib",
37
+ "clean": "rimraf tsconfig.tsbuildinfo lib",
40
38
  "build": "tsc",
41
39
  "lint": "eslint -c ./.eslintrc.js --ext .ts,.tsx ./src",
42
40
  "watch": "tsc -w"
@@ -53,5 +51,5 @@
53
51
  "publishConfig": {
54
52
  "access": "public"
55
53
  },
56
- "gitHead": "bb1c2fd0120feb99965b33b6fdf57fcb7fe0d62d"
54
+ "gitHead": "e5fcffe323165bf82385707b49dcc02903ac9a2b"
57
55
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -13,9 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { TYPES } from '@eclipse-glsp/client';
16
17
  import { ContainerModule } from 'inversify';
17
- import { TYPES } from 'sprotty';
18
-
19
18
  import { TaskEditor } from './direct-task-editor';
20
19
 
21
20
  export const directTaskEditor = new ContainerModule((bind, _unbind, isBound) => {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -20,29 +20,58 @@ import {
20
20
  EditorContextService,
21
21
  getAbsoluteClientBounds,
22
22
  GLSPActionDispatcher,
23
+ hasStringProp,
23
24
  ILogger,
24
- isSetContextActionsAction,
25
- isSetEditValidationResultAction,
26
25
  LabeledAction,
26
+ ModelIndexImpl,
27
+ Operation,
27
28
  RequestContextActions,
28
29
  RequestEditValidationAction,
29
- SModelElement,
30
+ SetContextActions,
31
+ SetEditValidationResultAction,
30
32
  SModelRoot,
31
33
  toActionArray,
34
+ TYPES,
32
35
  ValidationDecorator,
33
36
  ValidationStatus,
34
37
  ViewerOptions
35
38
  } from '@eclipse-glsp/client';
36
39
  import { inject, injectable } from 'inversify';
37
- import { TYPES } from 'sprotty/lib';
38
40
  import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
39
-
40
41
  import { isTaskNode, TaskNode } from '../model';
41
42
 
42
- export class ApplyTaskEditOperation implements Action {
43
- static readonly KIND = 'applyTaskEdit';
44
- readonly kind = ApplyTaskEditOperation.KIND;
45
- constructor(readonly taskId: string, readonly expression: string) {}
43
+ /**
44
+ * Is send from the {@link TaskEditor} to the GLSP server
45
+ * to execute a task edit operation.
46
+ */
47
+ export interface ApplyTaskEditOperation extends Operation {
48
+ kind: typeof ApplyTaskEditOperation.KIND;
49
+
50
+ /**
51
+ * Id of the task that should be edited
52
+ */
53
+ taskId: string;
54
+
55
+ /**
56
+ * The edit expression
57
+ */
58
+ expression: string;
59
+ }
60
+
61
+ export namespace ApplyTaskEditOperation {
62
+ export const KIND = 'applyTaskEdit';
63
+
64
+ export function is(object: any): object is ApplyTaskEditOperation {
65
+ return Operation.hasKind(object, KIND) && hasStringProp(object, 'taskId') && hasStringProp(object, 'expression');
66
+ }
67
+
68
+ export function create(options: { taskId: string; expression: string }): ApplyTaskEditOperation {
69
+ return {
70
+ kind: KIND,
71
+ isOperation: true,
72
+ ...options
73
+ };
74
+ }
46
75
  }
47
76
 
48
77
  @injectable()
@@ -68,7 +97,7 @@ export class TaskEditor extends AbstractUIExtension {
68
97
  protected domHelper: DOMHelper;
69
98
 
70
99
  @inject(TYPES.ILogger)
71
- protected logger: ILogger;
100
+ protected override logger: ILogger;
72
101
 
73
102
  protected task: TaskNode;
74
103
  protected autoSuggestion: AutoCompleteWidget;
@@ -98,13 +127,13 @@ export class TaskEditor extends AbstractUIExtension {
98
127
  this.autoSuggestion.initialize(containerElement);
99
128
  }
100
129
 
101
- show(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
130
+ override show(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
102
131
  super.show(root, ...contextElementIds);
103
132
  this.autoSuggestion.open(root);
104
133
  }
105
134
 
106
- protected onBeforeShow(containerElement: HTMLElement, root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
107
- this.task = getTask(contextElementIds, root)[0];
135
+ protected override onBeforeShow(containerElement: HTMLElement, root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
136
+ this.task = getTask(contextElementIds, root.index)[0];
108
137
  this.autoSuggestion.inputField.value = '';
109
138
  this.setPosition(containerElement);
110
139
  }
@@ -126,17 +155,19 @@ export class TaskEditor extends AbstractUIExtension {
126
155
 
127
156
  protected async retrieveSuggestions(input: string): Promise<LabeledAction[]> {
128
157
  const response = await this.actionDispatcher.request(
129
- new RequestContextActions(TaskEditor.ID, this.editorContextService.get({ ['text']: input }))
158
+ RequestContextActions.create({ contextId: TaskEditor.ID, editorContext: this.editorContextService.get({ ['text']: input }) })
130
159
  );
131
- if (isSetContextActionsAction(response)) {
160
+ if (SetContextActions.is(response)) {
132
161
  return response.actions;
133
162
  }
134
163
  return Promise.reject();
135
164
  }
136
165
 
137
166
  protected async validateInput(input: string): Promise<ValidationStatus> {
138
- const response = await this.actionDispatcher.request(new RequestEditValidationAction(TaskEditor.ID, this.task.id, input));
139
- if (isSetEditValidationResultAction(response)) {
167
+ const response = await this.actionDispatcher.request(
168
+ RequestEditValidationAction.create({ contextId: TaskEditor.ID, modelElementId: this.task.id, text: input })
169
+ );
170
+ if (SetEditValidationResultAction.is(response)) {
140
171
  return response.status;
141
172
  }
142
173
  return Promise.reject();
@@ -147,16 +178,16 @@ export class TaskEditor extends AbstractUIExtension {
147
178
  }
148
179
 
149
180
  protected executeFromTextOnlyInput(input: string): void {
150
- const action = new ApplyTaskEditOperation(this.task.id, input);
181
+ const action = ApplyTaskEditOperation.create({ taskId: this.task.id, expression: input });
151
182
  this.actionDispatcher.dispatch(action);
152
183
  }
153
184
 
154
- hide(): void {
185
+ override hide(): void {
155
186
  this.autoSuggestion.dispose();
156
187
  super.hide();
157
188
  }
158
189
  }
159
190
 
160
- function getTask(ids: string[], element: SModelElement): TaskNode[] {
161
- return ids.map(id => element.index.getById(id)).filter(isTaskNode);
191
+ function getTask(ids: string[], index: ModelIndexImpl): TaskNode[] {
192
+ return ids.map(id => index.getById(id)).filter(element => element && isTaskNode(element)) as TaskNode[];
162
193
  }
package/src/model.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020-2021 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -40,7 +40,7 @@ import {
40
40
  } from '@eclipse-glsp/client';
41
41
 
42
42
  export class TaskNode extends RectangularNode implements Nameable, WithEditableLabel {
43
- static readonly DEFAULT_FEATURES = [
43
+ static override readonly DEFAULT_FEATURES = [
44
44
  connectableFeature,
45
45
  deletableFeature,
46
46
  selectFeature,
@@ -53,21 +53,22 @@ export class TaskNode extends RectangularNode implements Nameable, WithEditableL
53
53
  nameFeature,
54
54
  withEditLabelFeature
55
55
  ];
56
- name = '';
57
56
  duration?: number;
58
57
  taskType?: string;
59
58
  reference?: string;
60
59
 
61
60
  get editableLabel(): (SChildElement & EditableLabel) | undefined {
62
- const headerComp = this.children.find(element => element.type === 'comp:header');
63
- if (headerComp) {
64
- const label = headerComp.children.find(element => element.type === 'label:heading');
65
- if (label && isEditableLabel(label)) {
66
- return label;
67
- }
61
+ const label = this.children.find(element => element.type === 'label:heading');
62
+ if (label && isEditableLabel(label)) {
63
+ return label;
68
64
  }
69
65
  return undefined;
70
66
  }
67
+
68
+ get name(): string {
69
+ const labelText = this.editableLabel?.text;
70
+ return labelText ? labelText : '<unknown>';
71
+ }
71
72
  }
72
73
 
73
74
  export function isTaskNode(element: SModelElement): element is TaskNode {
@@ -80,11 +81,11 @@ export class WeightedEdge extends SEdge {
80
81
 
81
82
  export class ActivityNode extends DiamondNode {
82
83
  nodeType: string = ActivityNode.Type.UNDEFINED;
83
- size = {
84
+ override size = {
84
85
  width: 32,
85
86
  height: 32
86
87
  };
87
- strokeWidth = 1;
88
+ override strokeWidth = 1;
88
89
  }
89
90
 
90
91
  export namespace ActivityNode {
@@ -103,15 +104,15 @@ export class Icon extends SShapeElement implements LayoutContainer {
103
104
  static readonly DEFAULT_FEATURES = [boundsFeature, layoutContainerFeature, layoutableChildFeature, fadeFeature];
104
105
 
105
106
  layout: string;
106
- layoutOptions?: { [key: string]: string | number | boolean };
107
- size = {
107
+ override layoutOptions?: { [key: string]: string | number | boolean };
108
+ override size = {
108
109
  width: 32,
109
110
  height: 32
110
111
  };
111
112
  }
112
113
 
113
114
  export class CategoryNode extends RectangularNode implements Nameable, WithEditableLabel {
114
- static readonly DEFAULT_FEATURES = [
115
+ static override readonly DEFAULT_FEATURES = [
115
116
  deletableFeature,
116
117
  selectFeature,
117
118
  boundsFeature,
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2021 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,24 +15,27 @@
15
15
  ********************************************************************************/
16
16
  import {
17
17
  angleOfPoint,
18
- IView,
18
+ findParentByFeature,
19
+ getSubType,
19
20
  Point,
20
21
  PolylineEdgeViewWithGapsOnIntersections,
21
22
  RenderingContext,
22
23
  SEdge,
24
+ setAttr,
25
+ ShapeView,
26
+ svg,
23
27
  toDegrees
24
28
  } from '@eclipse-glsp/client';
25
29
  import { injectable } from 'inversify';
26
30
  import { VNode } from 'snabbdom';
27
- import { svg } from 'sprotty';
28
- import { Icon } from './model';
31
+ import { Icon, isTaskNode } from './model';
29
32
 
30
33
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
34
  const JSX = { createElement: svg };
32
35
 
33
36
  @injectable()
34
37
  export class WorkflowEdgeView extends PolylineEdgeViewWithGapsOnIntersections {
35
- protected renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[] {
38
+ protected override renderAdditionals(edge: SEdge, segments: Point[], context: RenderingContext): VNode[] {
36
39
  const additionals = super.renderAdditionals(edge, segments, context);
37
40
  const p1 = segments[segments.length - 2];
38
41
  const p2 = segments[segments.length - 1];
@@ -40,7 +43,7 @@ export class WorkflowEdgeView extends PolylineEdgeViewWithGapsOnIntersections {
40
43
  <path
41
44
  class-sprotty-edge={true}
42
45
  class-arrow={true}
43
- d='M 1.5,0 L 10,-4 L 10,4 Z'
46
+ d='M 1,0 L 10,-4 L 10,4 Z'
44
47
  transform={`rotate(${toDegrees(angleOfPoint({ x: p1.x - p2.x, y: p1.y - p2.y }))} ${p2.x} ${p2.y}) translate(${p2.x} ${
45
48
  p2.y
46
49
  })`}
@@ -52,18 +55,44 @@ export class WorkflowEdgeView extends PolylineEdgeViewWithGapsOnIntersections {
52
55
  }
53
56
 
54
57
  @injectable()
55
- export class IconView implements IView {
56
- render(element: Icon, context: RenderingContext): VNode {
57
- const radius = this.getRadius();
58
- return (
58
+ export class IconView extends ShapeView {
59
+ render(element: Icon, context: RenderingContext): VNode | undefined {
60
+ const taskNode = findParentByFeature(element, isTaskNode);
61
+ if (!taskNode || !this.isVisible(element, context)) {
62
+ return undefined;
63
+ }
64
+
65
+ let icon;
66
+ if (taskNode.type === 'task:manual') {
67
+ // From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/account.svg?short_path=8135b2d
68
+ icon =
69
+ // eslint-disable-next-line max-len
70
+ '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';
71
+ } else {
72
+ // From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/gear.svg?short_path=8ee3ec4
73
+ icon =
74
+ // eslint-disable-next-line max-len
75
+ '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';
76
+ }
77
+
78
+ const vnode = (
59
79
  <g>
60
- <circle class-sprotty-icon={true} r={radius} cx={radius + 2} cy={radius + 2}></circle>
80
+ <path
81
+ transform={'scale(1.15),translate(0.75,0.75)'}
82
+ // From codicons: https://github.com/microsoft/vscode-codicons/blob/main/src/icons/terminal.svg?short_path=2ffc08e
83
+ // eslint-disable-next-line max-len
84
+ d={icon}
85
+ />
86
+ <rect class-icon-background x={0} y={0} width={25} height={20} />
61
87
  {context.renderChildren(element)}
62
88
  </g>
63
89
  );
64
- }
65
90
 
66
- getRadius(): number {
67
- return 14;
91
+ const subType = getSubType(element);
92
+ if (subType) {
93
+ setAttr(vnode, 'class', subType);
94
+ }
95
+
96
+ return vnode;
68
97
  }
69
98
  }