cpee 2.1.129 → 2.1.130
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.
- checksums.yaml +4 -4
- data/cockpit/css/llm.css +19 -23
- data/cockpit/css/ui.css +1 -3
- data/cockpit/js/details.js +1 -1
- data/cockpit/js/instance.js +11 -8
- data/cockpit/js/wfadaptor.js +75 -67
- data/cockpit/llm.html +1 -1
- data/cockpit/llmmodel.html +1 -2
- data/cockpit/themes/base.js +21 -5
- data/cockpit/themes/control/symbols/alternative.svg +2 -2
- data/cockpit/themes/control/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/control/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/control/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/control/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/control/symbols/critical.svg +13 -3
- data/cockpit/themes/control/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/control/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/control/symbols/terminate.svg +1 -1
- data/cockpit/themes/dataflow/symbols/alternative.svg +2 -2
- data/cockpit/themes/dataflow/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/dataflow/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/dataflow/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/dataflow/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/dataflow/symbols/critical.svg +13 -3
- data/cockpit/themes/dataflow/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/dataflow/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/dataflow/symbols/terminate.svg +1 -1
- data/cockpit/themes/default/symbols/alternative.svg +2 -2
- data/cockpit/themes/default/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/default/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/default/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/default/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/default/symbols/critical.svg +13 -3
- data/cockpit/themes/default/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/default/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/default/symbols/terminate.svg +1 -1
- data/cockpit/themes/extended/symbols/alternative.svg +2 -2
- data/cockpit/themes/extended/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/extended/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/extended/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/extended/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/extended/symbols/critical.svg +13 -3
- data/cockpit/themes/extended/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/extended/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/extended/symbols/terminate.svg +1 -1
- data/cockpit/themes/felix/symbols/alternative.svg +2 -2
- data/cockpit/themes/felix/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/felix/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/felix/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/felix/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/felix/symbols/critical.svg +13 -3
- data/cockpit/themes/felix/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/felix/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/felix/symbols/terminate.svg +1 -1
- data/cockpit/themes/model/symbols/alternative.svg +2 -2
- data/cockpit/themes/model/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/model/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/model/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/model/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/model/symbols/critical.svg +13 -3
- data/cockpit/themes/model/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/model/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/model/symbols/terminate.svg +1 -1
- data/cockpit/themes/packed/symbols/alternative.svg +2 -2
- data/cockpit/themes/packed/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/packed/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/packed/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/packed/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/packed/symbols/critical.svg +13 -3
- data/cockpit/themes/packed/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/packed/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/packed/symbols/terminate.svg +1 -1
- data/cockpit/themes/preset/symbols/alternative.svg +2 -2
- data/cockpit/themes/preset/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/preset/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/preset/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/preset/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/preset/symbols/critical.svg +13 -3
- data/cockpit/themes/preset/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/preset/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/preset/symbols/terminate.svg +1 -1
- data/cockpit/themes/preset_model/symbols/alternative.svg +2 -2
- data/cockpit/themes/preset_model/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/preset_model/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/preset_model/symbols/terminate.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/alternative.svg +2 -2
- data/cockpit/themes/presetaltid/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/critical.svg +13 -3
- data/cockpit/themes/presetaltid/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/presetaltid/symbols/terminate.svg +1 -1
- data/cockpit/themes/presetid/symbols/alternative.svg +2 -2
- data/cockpit/themes/presetid/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/presetid/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/presetid/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/presetid/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/presetid/symbols/critical.svg +13 -3
- data/cockpit/themes/presetid/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/presetid/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/presetid/symbols/terminate.svg +1 -1
- data/cockpit/themes/reduced/symbols/alternative.svg +2 -2
- data/cockpit/themes/reduced/symbols/closed_loop.svg +1 -1
- data/cockpit/themes/reduced/symbols/closed_loop_cancel.svg +1 -1
- data/cockpit/themes/reduced/symbols/closed_loop_control.svg +1 -1
- data/cockpit/themes/reduced/symbols/closed_loop_measuring.svg +1 -1
- data/cockpit/themes/reduced/symbols/critical.svg +13 -3
- data/cockpit/themes/reduced/symbols/parallel_branch.svg +1 -1
- data/cockpit/themes/reduced/symbols/parallel_branch_normal.svg +1 -1
- data/cockpit/themes/reduced/symbols/terminate.svg +1 -1
- data/cpee.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 825594df724f06da6073b554297121d71ca0e6745788bf29ef403eb58abdd134
|
|
4
|
+
data.tar.gz: 785e81f35516662bc94bb7b3861e4f8c54cb21d3d9cf131fe8488aa68ec99bc1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f47fa192c73abb9072247b58e7e67a975dc794ecfd4efa31b8444c80e995fa3468de253c766e2d667bac028475b6396bdad0af67703a161f3cda033dcaa391a1
|
|
7
|
+
data.tar.gz: 1c9e2df7f50f90ec733b6a004907d8a2d53a6b4ab8669c723bd3828800383abc20fe616f3e6a4369caac5f1724026a29fc6445474e70b46c6303bb6ba2282a73
|
data/cockpit/css/llm.css
CHANGED
|
@@ -30,17 +30,6 @@
|
|
|
30
30
|
animation: dotty steps(1,end) 1s infinite;
|
|
31
31
|
content: '';
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
@keyframes dotty {
|
|
35
|
-
0% { content: ''; }
|
|
36
|
-
16% { content: '.'; }
|
|
37
|
-
32% { content: '..'; }
|
|
38
|
-
48% { content: '...'; }
|
|
39
|
-
64% { content: '..'; }
|
|
40
|
-
80% { content: '.'; }
|
|
41
|
-
100% { content: ''; }
|
|
42
|
-
}
|
|
43
|
-
|
|
44
33
|
@keyframes dotty {
|
|
45
34
|
0% { content: 'ₒₒₒ'; }
|
|
46
35
|
16% { content: 'ₒₒ∘'; }
|
|
@@ -54,22 +43,37 @@
|
|
|
54
43
|
#prompt_container {
|
|
55
44
|
padding: 0.2em 0.5em;
|
|
56
45
|
outline: none;
|
|
57
|
-
min-height: 7.3em;
|
|
58
46
|
display: flex;
|
|
47
|
+
align-items: stretch;
|
|
59
48
|
flex-wrap: nowrap;
|
|
49
|
+
flex: 1 1 auto;
|
|
50
|
+
min-height: 0;
|
|
60
51
|
}
|
|
61
52
|
|
|
62
|
-
|
|
63
|
-
|
|
53
|
+
#input {
|
|
54
|
+
flex: 1 0 auto;
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
min-height: 9.5em;
|
|
64
58
|
}
|
|
65
59
|
|
|
66
60
|
.stand_alone {
|
|
67
61
|
height: 100%;
|
|
68
62
|
}
|
|
63
|
+
|
|
64
|
+
#details {
|
|
65
|
+
padding-left: 1.5em;
|
|
66
|
+
min-height: 9em;
|
|
67
|
+
}
|
|
69
68
|
#prompt {
|
|
70
69
|
flex: 1 1 auto;
|
|
70
|
+
height: 100%;
|
|
71
|
+
overflow: scroll;
|
|
71
72
|
outline: none;
|
|
72
|
-
|
|
73
|
+
}
|
|
74
|
+
#prompt_submit_container {
|
|
75
|
+
flex: 0 0 auto;
|
|
76
|
+
align-self: stretch;
|
|
73
77
|
}
|
|
74
78
|
#prompt:empty:before {
|
|
75
79
|
font-family: adwaita-sans;
|
|
@@ -85,10 +89,6 @@
|
|
|
85
89
|
min-height: 2.66em;
|
|
86
90
|
}
|
|
87
91
|
|
|
88
|
-
#llmlabel {
|
|
89
|
-
width: 20%;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
92
|
.single {
|
|
93
93
|
width: 2.3em;
|
|
94
94
|
height: 2.3em;
|
|
@@ -119,7 +119,3 @@
|
|
|
119
119
|
#detailcolumn {
|
|
120
120
|
padding-left: 0em !important;
|
|
121
121
|
}
|
|
122
|
-
#details {
|
|
123
|
-
padding-left: 1.5em;
|
|
124
|
-
min-height: 7em;
|
|
125
|
-
}
|
data/cockpit/css/ui.css
CHANGED
|
@@ -186,12 +186,9 @@ span.vote {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
#details {
|
|
189
|
-
flex: 0 1 auto;
|
|
190
|
-
height: 100%;
|
|
191
189
|
overflow: scroll;
|
|
192
190
|
}
|
|
193
191
|
#modelling {
|
|
194
|
-
flex: 0 1 auto;
|
|
195
192
|
height: 100%;
|
|
196
193
|
overflow: scroll;
|
|
197
194
|
}
|
|
@@ -221,6 +218,7 @@ span.vote {
|
|
|
221
218
|
padding-left: 1.5em;
|
|
222
219
|
display: flex;
|
|
223
220
|
flex-direction: column;
|
|
221
|
+
overflow: hidden;
|
|
224
222
|
}
|
|
225
223
|
|
|
226
224
|
#dat_log tr:nth-child(odd) { background-color: #e8e8e8; color: #333; }
|
data/cockpit/js/details.js
CHANGED
|
@@ -82,7 +82,7 @@ function do_main_work(svgid) { //{{{
|
|
|
82
82
|
var tnewnode = ttarget.parents('g.element[element-id]');
|
|
83
83
|
var tnewtype = tnewnode.attr('element-type') + '_' + tnewnode.attr('element-endpoint');
|
|
84
84
|
|
|
85
|
-
desc.
|
|
85
|
+
desc.redraw(function(graphrealization){
|
|
86
86
|
var vtarget = manifestation.adaptor.illustrator.get_node_by_svg_id(svgid);
|
|
87
87
|
if (vtarget.length > 0) {
|
|
88
88
|
vtarget.parents('g.element[element-id]').addClass('selected');
|
data/cockpit/js/instance.js
CHANGED
|
@@ -360,6 +360,7 @@ async function sse() { //{{{
|
|
|
360
360
|
case 'description':
|
|
361
361
|
monitor_instance_dsl();
|
|
362
362
|
monitor_graph_change(false);
|
|
363
|
+
document.dispatchEvent(graph_changed);
|
|
363
364
|
break;
|
|
364
365
|
case 'endpoints':
|
|
365
366
|
monitor_instance_values("endpoints");
|
|
@@ -559,7 +560,11 @@ function monitor_instance_values(type,vals) {// {{{
|
|
|
559
560
|
});
|
|
560
561
|
}
|
|
561
562
|
});
|
|
562
|
-
$.when.apply($, deferreds).done()
|
|
563
|
+
$.when.apply($, deferreds).done(function(){
|
|
564
|
+
if (save['graph_adaptor'] && !suspended_redrawing) {
|
|
565
|
+
save['graph_adaptor'].redraw();
|
|
566
|
+
}
|
|
567
|
+
});
|
|
563
568
|
} else if(type == "attributes") {
|
|
564
569
|
$(" > attributes > *",res).each((k,v)=>{
|
|
565
570
|
save['attributes_raw'][v.nodeName] = v.textContent;
|
|
@@ -723,12 +728,10 @@ function adaptor_init(url,theme,dslx) { //{{{
|
|
|
723
728
|
suspended_redrawing = false;
|
|
724
729
|
});
|
|
725
730
|
} else {
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
format_instance_pos();
|
|
731
|
-
});
|
|
731
|
+
var svgid = manifestation.selected();
|
|
732
|
+
save['graph_adaptor'].set_description($(dslx));
|
|
733
|
+
manifestation.events.click(svgid);
|
|
734
|
+
format_instance_pos();
|
|
732
735
|
}
|
|
733
736
|
} //}}}
|
|
734
737
|
|
|
@@ -1402,7 +1405,7 @@ function format_visual_remove(what,cls,sum=true) {//{{{
|
|
|
1402
1405
|
|
|
1403
1406
|
function scroll_into_view(what) { //{{{
|
|
1404
1407
|
if (save['state'] != "running") return;
|
|
1405
|
-
var tcontainer = $('#
|
|
1408
|
+
var tcontainer = $('#modelling')[0];
|
|
1406
1409
|
if ($('g[element-id="' + what + '"]').length > 0) {
|
|
1407
1410
|
var telement = $('g[element-id="' + what + '"]')[0].getBBox().y;
|
|
1408
1411
|
if (tcontainer.scrollTop > telement) {
|
data/cockpit/js/wfadaptor.js
CHANGED
|
@@ -191,8 +191,6 @@ function WfAdaptor(theme_base,doit) { // Controller {{{
|
|
|
191
191
|
this.illustrator = illustrator = new WfIllustrator(this);
|
|
192
192
|
this.description = description = new WfDescription(this, this.illustrator);
|
|
193
193
|
|
|
194
|
-
this.update = function(doit){ doit(self); };
|
|
195
|
-
|
|
196
194
|
this.draw_element = function(type,id,label) {
|
|
197
195
|
let pos = {'row': 1,'col': 0};
|
|
198
196
|
let block = { 'max': {'row': pos.row, 'col': pos.col}, 'endnodes': [], 'svg': $X('<g class="group" xmlns="http://www.w3.org/2000/svg"/>') };
|
|
@@ -200,8 +198,8 @@ function WfAdaptor(theme_base,doit) { // Controller {{{
|
|
|
200
198
|
self.illustrator.set_svg(block);
|
|
201
199
|
}
|
|
202
200
|
|
|
203
|
-
this.redraw = function(){
|
|
204
|
-
description.redraw();
|
|
201
|
+
this.redraw = function(doit){
|
|
202
|
+
description.redraw(doit);
|
|
205
203
|
}
|
|
206
204
|
|
|
207
205
|
$.getScript(self.theme_base).done(function() {
|
|
@@ -230,6 +228,7 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
|
230
228
|
this.width_shift = this.width * 0.39;
|
|
231
229
|
this.width_shift_label = 7;
|
|
232
230
|
this.group_extend = 1;
|
|
231
|
+
this.structural_tighten = 3; // 'structural' borders are smaller in y
|
|
233
232
|
this.elements = {}; // the svgs
|
|
234
233
|
this.svg = {};
|
|
235
234
|
this.draw = {};
|
|
@@ -254,6 +253,9 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
|
254
253
|
' <marker id="arrow" viewBox="0 0 10 10" refX="28.5" refY="5" orient="auto" markerUnits="strokeWidth" markerWidth="14" markerHeight="3.5">' +
|
|
255
254
|
' <path d="m 2 2 l 6 3 l -6 3 z"/>' +
|
|
256
255
|
' </marker>' +
|
|
256
|
+
' <marker id="endarrow" viewBox="0 0 10 10" refX="7" refY="5" orient="auto" markerUnits="strokeWidth" markerWidth="14" markerHeight="5.2">' +
|
|
257
|
+
' <path d="M 2,2 L 6.21,4.11 Q 8,5 6.21,5.89 L 2,8 Z"/>' +
|
|
258
|
+
' </marker>' +
|
|
257
259
|
' <clipPath id="startclip">' +
|
|
258
260
|
' <rect x="-4" y="-4" width="35" height="38"/>' +
|
|
259
261
|
' </clipPath>' +
|
|
@@ -774,22 +776,23 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
|
774
776
|
|
|
775
777
|
return g;
|
|
776
778
|
} // }}}
|
|
777
|
-
var draw_border = this.draw.draw_border = function(id, p1, p2, group) { // {{{
|
|
779
|
+
var draw_border = this.draw.draw_border = function(id, p1, p2, group, yshrink) { // {{{
|
|
780
|
+
yshrink = yshrink || 0;
|
|
778
781
|
let bstart = get_x(p1.row,p1.col,'border from');
|
|
779
782
|
let bend = get_x_plus(p1.row,p2.row,p2.col,'border to');
|
|
780
783
|
group.prepend($X('<rect element-id="' + id + '" x="' + (bstart - 1.1 * self.width_shift - self.group_extend) + '" ' +
|
|
781
|
-
'y="' + ((p1.row-1)*self.height+self.height_shift/2-self.group_extend) + '" ' +
|
|
784
|
+
'y="' + ((p1.row-1)*self.height+self.height_shift/2-self.group_extend+yshrink) + '" ' +
|
|
782
785
|
'width="' + (bend-bstart+2*self.group_extend) + '" ' +
|
|
783
|
-
'height="' + (((p2.row+1)-p1.row)*self.height+2*self.group_extend) + '" ' +
|
|
786
|
+
'height="' + (((p2.row+1)-p1.row)*self.height+2*self.group_extend-2*yshrink) + '" ' +
|
|
784
787
|
'class="block" rx="12" ry="12" xmlns="http://www.w3.org/2000/svg"/>'));
|
|
785
788
|
} // }}}
|
|
786
|
-
var draw_tile = this.draw.draw_tile = function(id, p1, p2, group) { // {{{
|
|
789
|
+
var draw_tile = this.draw.draw_tile = function(id, p1, p2, group, yshrink=0) { // {{{
|
|
787
790
|
let bstart = get_x(p1.row,p1.col,'tile from');
|
|
788
791
|
let bend = get_x_plus(p1.row,p2.row,p2.col,'tile to');
|
|
789
792
|
group.prepend($X('<rect element-id="' + id + '" x="' + (bstart - 1.1 * self.width_shift - self.group_extend) + '" ' +
|
|
790
|
-
'y="' + ((p1.row-1)*self.height+self.height_shift/2-self.group_extend) + '" ' +
|
|
793
|
+
'y="' + ((p1.row-1)*self.height+self.height_shift/2-self.group_extend+yshrink) + '" ' +
|
|
791
794
|
'width="' + (bend-bstart+2*self.group_extend) + '" ' +
|
|
792
|
-
'height="' + (((p2.row+1)-p1.row)*self.height+2*self.group_extend) + '" ' +
|
|
795
|
+
'height="' + (((p2.row+1)-p1.row)*self.height+2*self.group_extend-2*yshrink) + '" ' +
|
|
793
796
|
'class="tile" rx="12" ry="12" xmlns="http://www.w3.org/2000/svg"/>'));
|
|
794
797
|
} // }}}
|
|
795
798
|
var draw_connection = this.draw.draw_connection = function(group, start, end, context_row, arrow) { // {{{
|
|
@@ -801,40 +804,40 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
|
801
804
|
if(((end['row']-start['row']) == 0) && ((end['col']-start['col']) == 0)) return;
|
|
802
805
|
var line;
|
|
803
806
|
if (arrow)
|
|
804
|
-
line = $X('<path xmlns="http://www.w3.org/2000/svg" class="edge" marker-end="url(#arrow)"/>');
|
|
807
|
+
line = $X('<path xmlns="http://www.w3.org/2000/svg" class="edge" marker-end="url(#' + (end.structural ? 'endarrow' : 'arrow') + ')"/>');
|
|
805
808
|
else
|
|
806
809
|
line = $X('<path xmlns="http://www.w3.org/2000/svg" class="edge"/>');
|
|
807
810
|
if (end['row']-start['row'] == 0 || end['col']-start['col'] == 0) { // straight line
|
|
808
|
-
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15) +" "+
|
|
809
|
-
String(cend) + "," + String(end['row']*self.height-15)
|
|
811
|
+
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15+start.yoffset) +" "+
|
|
812
|
+
String(cend) + "," + String(end['row']*self.height-15+end.yoffset)
|
|
810
813
|
);
|
|
811
814
|
} else if (end['row']-start['row'] > 0) { // downwards
|
|
812
815
|
if (end['col']-start['col'] > 0) {// left - right
|
|
813
816
|
if (self.compact) {
|
|
814
|
-
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15) +" "+
|
|
817
|
+
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15+start.yoffset) +" "+
|
|
815
818
|
String(cstart+14) + "," + String((end['row']-1)*self.height) +" "+ // first turn of horizontal-line going away from node
|
|
816
819
|
String(cend) + "," + String((end['row']-1)*self.height) +" "+
|
|
817
|
-
String(cend) + "," + String(end['row']*self.height-15)
|
|
820
|
+
String(cend) + "," + String(end['row']*self.height-15+end.yoffset)
|
|
818
821
|
);
|
|
819
822
|
} else {
|
|
820
|
-
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15) +" "+
|
|
821
|
-
String(cend) + "," + String(start['row']*self.height-15) +" "+
|
|
822
|
-
String(cend) + "," + String(end['row']*self.height-15)
|
|
823
|
+
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15+start.yoffset) +" "+
|
|
824
|
+
String(cend) + "," + String(start['row']*self.height-15+start.yoffset) +" "+
|
|
825
|
+
String(cend) + "," + String(end['row']*self.height-15+end.yoffset)
|
|
823
826
|
);
|
|
824
827
|
}
|
|
825
828
|
} else { // right - left
|
|
826
|
-
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15) +" "+
|
|
829
|
+
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15+start.yoffset) +" "+
|
|
827
830
|
String(cstart) + "," + String(end['row']*self.height-32) +" "+
|
|
828
831
|
String(cend+14) + "," + String(end['row']*self.height-32) +" "+ // last turn of horizontal-line going into the node
|
|
829
|
-
String(cend) + "," + String(end['row']*self.height-15)
|
|
832
|
+
String(cend) + "," + String(end['row']*self.height-15+end.yoffset)
|
|
830
833
|
);
|
|
831
834
|
}
|
|
832
835
|
} else if(end['row']-start['row'] < 0) { // upwards
|
|
833
|
-
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15) +" "+
|
|
836
|
+
line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15+start.yoffset) +" "+
|
|
834
837
|
String(cstart) + "," + String((self.dim.symbols.length-1)*self.height+4) +" "+
|
|
835
838
|
String(cend+15) + "," + String((self.dim.symbols.length-1)*self.height+4) +" "+
|
|
836
839
|
String(cend+15) + "," + String(end['row']*self.height+15)+" "+
|
|
837
|
-
String(cend) + "," + String(end['row']*self.height-15)
|
|
840
|
+
String(cend) + "," + String(end['row']*self.height-15+end.yoffset)
|
|
838
841
|
);
|
|
839
842
|
}
|
|
840
843
|
self.svg.container.append(line);
|
|
@@ -890,7 +893,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
890
893
|
labels = [];
|
|
891
894
|
let start = performance.now();
|
|
892
895
|
illustrator.clear();
|
|
893
|
-
var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false});
|
|
896
|
+
var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false,yoffset:0});
|
|
894
897
|
illustrator.set_svg(graph);
|
|
895
898
|
self.set_labels(graph);
|
|
896
899
|
illustrator.set_duration(start);
|
|
@@ -946,53 +949,38 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
946
949
|
used_id_list.push(prefix + id);
|
|
947
950
|
return prefix + id;
|
|
948
951
|
} // }}}
|
|
949
|
-
var
|
|
950
|
-
id_counter = {};
|
|
951
|
-
labels = [];
|
|
952
|
-
let start = performance.now();
|
|
953
|
-
illustrator.clear();
|
|
954
|
-
clean_description();
|
|
955
|
-
var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false});
|
|
956
|
-
illustrator.set_svg(graph);
|
|
957
|
-
self.set_labels(graph);
|
|
958
|
-
illustrator.set_duration(start);
|
|
959
|
-
doit(self);
|
|
960
|
-
}
|
|
961
|
-
var redraw = this.redraw = function(){
|
|
952
|
+
var redraw = this.redraw = function(doit) {
|
|
962
953
|
id_counter = {};
|
|
963
954
|
let start = performance.now();
|
|
964
955
|
labels = [];
|
|
965
956
|
illustrator.clear();
|
|
966
957
|
clean_description();
|
|
967
|
-
var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false});
|
|
958
|
+
var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false,yoffset:0});
|
|
968
959
|
illustrator.set_svg(graph);
|
|
969
960
|
self.set_labels(graph);
|
|
970
961
|
illustrator.set_duration(start);
|
|
962
|
+
if (doit) doit(self);
|
|
971
963
|
}
|
|
972
964
|
var update = this.update = function(svgid) { // {{{
|
|
973
965
|
id_counter = {};
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
966
|
+
var notify_target = () => {
|
|
967
|
+
var newn = $('*[new=true]',description);
|
|
968
|
+
newn.removeAttr('new');
|
|
969
|
+
|
|
970
|
+
if (newn.attr('svg-id') != undefined)
|
|
971
|
+
adaptor.notify(newn.attr('svg-id'));
|
|
972
|
+
else if (svgid != undefined)
|
|
973
|
+
adaptor.notify(svgid);
|
|
974
|
+
else if (newn.parents('[svg-id]').length > 0)
|
|
975
|
+
adaptor.notify(newn.parent('[svg-id]').attr('svg-id'));
|
|
976
|
+
else
|
|
977
|
+
console.info('Something went horribly wrong');
|
|
978
|
+
};
|
|
979
|
+
if (update_illustrator) {
|
|
980
|
+
self.redraw(notify_target);
|
|
981
|
+
} else {
|
|
982
|
+
notify_target();
|
|
983
983
|
}
|
|
984
|
-
|
|
985
|
-
var newn = $('*[new=true]',description);
|
|
986
|
-
newn.removeAttr('new');
|
|
987
|
-
|
|
988
|
-
if (newn.attr('svg-id') != undefined)
|
|
989
|
-
adaptor.notify(newn.attr('svg-id'));
|
|
990
|
-
else if (svgid != undefined)
|
|
991
|
-
adaptor.notify(svgid);
|
|
992
|
-
else if (newn.parents('[svg-id]').length > 0)
|
|
993
|
-
adaptor.notify(newn.parent('[svg-id]').attr('svg-id'));
|
|
994
|
-
else
|
|
995
|
-
console.info('Something went horribly wrong');
|
|
996
984
|
} // }}}
|
|
997
985
|
// }}}
|
|
998
986
|
// Adaption functions {{{
|
|
@@ -1181,6 +1169,16 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
1181
1169
|
[undefined, endnodes] = draw_position(ctname,parent_pos,pos,prev,block,[],context,{svg: g, pos: origpos});
|
|
1182
1170
|
}
|
|
1183
1171
|
prev = JSON.parse(JSON.stringify(endnodes));
|
|
1172
|
+
if (illustrator.elements[sname].border == 'structural') {
|
|
1173
|
+
// structural border: outgoing arrow starts at the group border instead of leaving from the icon
|
|
1174
|
+
// small y offset
|
|
1175
|
+
prev = prev.map(function(p) {
|
|
1176
|
+
if (!p) return p;
|
|
1177
|
+
var np = JSON.parse(JSON.stringify(p));
|
|
1178
|
+
np.yoffset = illustrator.height_shift/2 + illustrator.group_extend + 15 - illustrator.structural_tighten;
|
|
1179
|
+
return np;
|
|
1180
|
+
});
|
|
1181
|
+
}
|
|
1184
1182
|
}
|
|
1185
1183
|
});
|
|
1186
1184
|
|
|
@@ -1255,18 +1253,20 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
1255
1253
|
} else { console.log("no icon "+ sname);}
|
|
1256
1254
|
if (illustrator.elements[sname] && illustrator.elements[sname].border) {
|
|
1257
1255
|
let wide = (illustrator.elements[sname].wide == true && block.max.col == pos.col) ? pos.col + 1 : block.max.col;
|
|
1256
|
+
let yshrink = illustrator.elements[sname].border == 'structural' ? illustrator.structural_tighten : 0;
|
|
1258
1257
|
if (illustrator.elements[sname].closing_symbol) {
|
|
1259
|
-
illustrator.draw.draw_border($(context).attr('svg-id'), pos, { col: wide, row: block.max.row + 1 }, block.svg);
|
|
1258
|
+
illustrator.draw.draw_border($(context).attr('svg-id'), pos, { col: wide, row: block.max.row + 1 }, block.svg, yshrink);
|
|
1260
1259
|
} else {
|
|
1261
|
-
illustrator.draw.draw_border($(context).attr('svg-id'), pos, { col: wide, row: block.max.row }, block.svg);
|
|
1260
|
+
illustrator.draw.draw_border($(context).attr('svg-id'), pos, { col: wide, row: block.max.row }, block.svg, yshrink);
|
|
1262
1261
|
}
|
|
1263
1262
|
}
|
|
1264
1263
|
if (illustrator.elements[sname] && illustrator.elements[sname].type == 'complex') {
|
|
1265
1264
|
let wide = (illustrator.elements[sname].wide == true && block.max.col == pos.col) ? pos.col + 1 : block.max.col;
|
|
1265
|
+
let yshrink = illustrator.elements[sname].border == 'structural' ? illustrator.structural_tighten : 0;
|
|
1266
1266
|
if (illustrator.elements[sname].closing_symbol) {
|
|
1267
|
-
illustrator.draw.draw_tile($(context).attr('svg-id'), pos, { col: wide, row: block.max.row + 1 }, block.svg);
|
|
1267
|
+
illustrator.draw.draw_tile($(context).attr('svg-id'), pos, { col: wide, row: block.max.row + 1 }, block.svg, yshrink);
|
|
1268
1268
|
} else {
|
|
1269
|
-
illustrator.draw.draw_tile($(context).attr('svg-id'), pos, { col: wide, row: block.max.row }, block.svg);
|
|
1269
|
+
illustrator.draw.draw_tile($(context).attr('svg-id'), pos, { col: wide, row: block.max.row }, block.svg, yshrink);
|
|
1270
1270
|
}
|
|
1271
1271
|
}
|
|
1272
1272
|
}
|
|
@@ -1274,6 +1274,14 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
1274
1274
|
|
|
1275
1275
|
// Calculate Connection {{{
|
|
1276
1276
|
let connection_case = 0;
|
|
1277
|
+
var conn_target = pos;
|
|
1278
|
+
if (illustrator.elements[sname].border == 'structural' && !second) {
|
|
1279
|
+
// structural border: incoming arrow stops at the group border instead of reaching into the icon
|
|
1280
|
+
// (only a pixel-level yoffset, row/col stay integers so get_x() column lookups stay correct)
|
|
1281
|
+
conn_target = JSON.parse(JSON.stringify(pos));
|
|
1282
|
+
conn_target.yoffset = -illustrator.height + illustrator.height_shift/2 - illustrator.group_extend + 15 + illustrator.structural_tighten;
|
|
1283
|
+
conn_target.structural = true;
|
|
1284
|
+
}
|
|
1277
1285
|
if(illustrator.elements[sname] != undefined && illustrator.elements[sname].closeblock == true) { // Close Block if element e.g. loop
|
|
1278
1286
|
if (second) {
|
|
1279
1287
|
if (second.pos.row+1 < pos.row) { // when no content, dont paint the up arrow
|
|
@@ -1296,7 +1304,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
1296
1304
|
} else { endnodes = [JSON.parse(JSON.stringify(pos))]; } // sets this element as only endpoint (aggregate)
|
|
1297
1305
|
if(prev[0].row == 0 || prev[0].col == 0) { // this enforces the connection from description to the first element
|
|
1298
1306
|
connection_case = 3;
|
|
1299
|
-
illustrator.draw.draw_connection(block.svg, { row: 1, col: 1 },
|
|
1307
|
+
illustrator.draw.draw_connection(block.svg, { row: 1, col: 1, yoffset: 0 }, conn_target, 0, true);
|
|
1300
1308
|
} else {
|
|
1301
1309
|
if (illustrator.elements[sname].noarrow == undefined || illustrator.elements[sname].noarrow == false) {
|
|
1302
1310
|
for (let node=0; node < prev.length; node++) {
|
|
@@ -1308,15 +1316,15 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
1308
1316
|
}
|
|
1309
1317
|
connection_case = 4;
|
|
1310
1318
|
// console.log('++ case 4',prev[node].row,pos.row,illustrator.dim.debug());
|
|
1311
|
-
illustrator.draw.draw_connection(block.svg, pn,
|
|
1319
|
+
illustrator.draw.draw_connection(block.svg, pn, conn_target, 0, true);
|
|
1312
1320
|
} else {
|
|
1313
1321
|
connection_case = 5;
|
|
1314
1322
|
if (prev.length == 1) {
|
|
1315
1323
|
// console.log('++ case 5a',parent_pos.row, '---', prev[node].row,pos.row,illustrator.dim.debug());
|
|
1316
|
-
illustrator.draw.draw_connection(block.svg, prev[node],
|
|
1324
|
+
illustrator.draw.draw_connection(block.svg, prev[node], conn_target, 0, true);
|
|
1317
1325
|
} else {
|
|
1318
1326
|
// console.log('++ case 5b',prev[node].row,pos.row,illustrator.dim.debug());
|
|
1319
|
-
illustrator.draw.draw_connection(block.svg, prev[node],
|
|
1327
|
+
illustrator.draw.draw_connection(block.svg, prev[node], conn_target, 0, true);
|
|
1320
1328
|
}
|
|
1321
1329
|
}
|
|
1322
1330
|
}
|
|
@@ -1326,7 +1334,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
|
1326
1334
|
if (prev[node] && !prev[node].final) {
|
|
1327
1335
|
connection_case = 6;
|
|
1328
1336
|
// console.log('++ case 6',prev[node].row,pos.row,illustrator.dim.debug());
|
|
1329
|
-
illustrator.draw.draw_connection(block.svg, prev[node],
|
|
1337
|
+
illustrator.draw.draw_connection(block.svg, prev[node], conn_target, prev[node].row, false);
|
|
1330
1338
|
}
|
|
1331
1339
|
}
|
|
1332
1340
|
}
|
data/cockpit/llm.html
CHANGED
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
<ui-resizehandle class='hidden'>drag to resize</ui-resizehandle>
|
|
280
280
|
<ui-part id='input'>
|
|
281
281
|
<div id='status'></div>
|
|
282
|
-
<div id='prompt_container'
|
|
282
|
+
<div id='prompt_container'>
|
|
283
283
|
<div id='prompt' contenteditable="true" title="Please enter your modelling instructions here..." placeholder="Please enter your modelling instructions here..."></div>
|
|
284
284
|
<div id='prompt_submit_container' class="single">
|
|
285
285
|
<select name="generation" id="generation" class='hidden'>
|
data/cockpit/llmmodel.html
CHANGED
|
@@ -64,7 +64,6 @@
|
|
|
64
64
|
|
|
65
65
|
<script type="text/javascript" src="js/llm.js"></script>
|
|
66
66
|
<link rel="stylesheet" href="css/llm.css" type="text/css"/>
|
|
67
|
-
<link rel="stylesheet" href="css/llmmodel.css" type="text/css"/>
|
|
68
67
|
|
|
69
68
|
<link rel="stylesheet" href="css/ui.css" type="text/css"/>
|
|
70
69
|
<link rel="stylesheet" href="css/extended_columns-label.css" type="text/css"/>
|
|
@@ -178,7 +177,7 @@
|
|
|
178
177
|
<ui-resizehandle class='hidden'>drag to resize</ui-resizehandle>
|
|
179
178
|
<ui-part id='input'>
|
|
180
179
|
<div id='status'></div>
|
|
181
|
-
<div id='prompt_container'
|
|
180
|
+
<div id='prompt_container'>
|
|
182
181
|
<div id='prompt' contenteditable="true" title="Please enter your modelling instructions here..." placeholder="Please enter your modelling instructions here..."></div>
|
|
183
182
|
<div id='prompt_submit_container' class="single">
|
|
184
183
|
<select name="generation" id="generation" class='hidden'>
|
data/cockpit/themes/base.js
CHANGED
|
@@ -277,7 +277,6 @@ function WFAdaptorManifestationBase(adaptor) {
|
|
|
277
277
|
|
|
278
278
|
if (xml_node.get(0).tagName == "call" || xml_node.get(0).tagName == "manipulate" || xml_node.get(0).tagName == "stop") {
|
|
279
279
|
let exec_icon = contextMenuHandling_clean_icon(self.elements.call.illustrator.svg);
|
|
280
|
-
let mark_icon = self.resources.mark;
|
|
281
280
|
exec_icon.find('.part-normal').addClass('passive');
|
|
282
281
|
var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
|
|
283
282
|
if (vtarget.length > 0) {
|
|
@@ -298,6 +297,14 @@ function WFAdaptorManifestationBase(adaptor) {
|
|
|
298
297
|
'params': xml_node
|
|
299
298
|
}];
|
|
300
299
|
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
|
|
304
|
+
let mark_icon = self.resources.mark;
|
|
305
|
+
var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
|
|
306
|
+
if (vtarget.length > 0) {
|
|
307
|
+
if (!menu['Position']) { menu['Position'] = []; }
|
|
301
308
|
if (vtarget.parents('g.element.marked').length > 0) {
|
|
302
309
|
menu['Position'].push({
|
|
303
310
|
'label': 'Unmark for copy/move (' + ($.pressCmd() ? '⌘-Click' : 'CTRL-Click') + ')',
|
|
@@ -1243,14 +1250,16 @@ function WFAdaptorManifestationBase(adaptor) {
|
|
|
1243
1250
|
this.elements.critical = { /*{{{*/
|
|
1244
1251
|
'type': 'complex',
|
|
1245
1252
|
'illustrator': {//{{{
|
|
1253
|
+
'label': function(node){ return [ { column: 'Label', value: $(node).attr('sid') } ]; },
|
|
1246
1254
|
'endnodes': 'aggregate',
|
|
1247
1255
|
'closeblock': false,
|
|
1248
|
-
'border':
|
|
1256
|
+
'border': 'structural',
|
|
1257
|
+
'closing_symbol': 'critical_finish',
|
|
1249
1258
|
'expansion': function(node) {
|
|
1250
1259
|
return 'vertical';
|
|
1251
1260
|
},
|
|
1252
1261
|
'col_shift': function(node) {
|
|
1253
|
-
return
|
|
1262
|
+
return false;
|
|
1254
1263
|
},
|
|
1255
1264
|
'svg': self.adaptor.theme_dir + 'symbols/critical.svg'
|
|
1256
1265
|
},//}}}
|
|
@@ -1327,12 +1336,19 @@ function WFAdaptorManifestationBase(adaptor) {
|
|
|
1327
1336
|
'mouseout': self.events.mouseout,
|
|
1328
1337
|
}//}}}
|
|
1329
1338
|
}; /*}}}*/
|
|
1339
|
+
this.elements.critical_finish = { /*{{{*/
|
|
1340
|
+
'type': 'primitive',
|
|
1341
|
+
'illustrator': {//{{{
|
|
1342
|
+
'endnodes': 'this',
|
|
1343
|
+
'svg': self.adaptor.theme_dir + 'symbols/event_end.svg'
|
|
1344
|
+
}//}}}
|
|
1345
|
+
}; /*}}}*/
|
|
1330
1346
|
this.elements.group = { /*{{{*/
|
|
1331
1347
|
'type': 'complex',
|
|
1332
1348
|
'illustrator': {//{{{
|
|
1333
1349
|
'endnodes': 'aggregate',
|
|
1334
1350
|
'closeblock': false,
|
|
1335
|
-
'border': '
|
|
1351
|
+
'border': 'visual',
|
|
1336
1352
|
'expansion': function(node) {
|
|
1337
1353
|
return 'vertical';
|
|
1338
1354
|
},
|
|
@@ -1650,7 +1666,7 @@ function WFAdaptorManifestationBase(adaptor) {
|
|
|
1650
1666
|
'illustrator': {//{{{
|
|
1651
1667
|
'endnodes': 'this',
|
|
1652
1668
|
'noarrow': false,
|
|
1653
|
-
'border':
|
|
1669
|
+
'border': 'visual',
|
|
1654
1670
|
'wide': true,
|
|
1655
1671
|
'closing_symbol': 'event_end',
|
|
1656
1672
|
'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<g class="part-normal">
|
|
3
3
|
<rect x="11" y="6" width="9" height="18" rx="0" class="white"/>
|
|
4
|
-
<path class="stand" d="M 11,5 C 2,9 2,21 11,25 M 20,5 C 29,9 29,21 20,25" style="stroke-dasharray:1,4;"/>
|
|
4
|
+
<path class="stand colorstyle" d="M 11,5 C 2,9 2,21 11,25 M 20,5 C 29,9 29,21 20,25" style="stroke-dasharray:1,4;"/>
|
|
5
5
|
<line x1="15.6" y1="4" x2="15.6" y2="27" class="edge"/>
|
|
6
6
|
</g>
|
|
7
7
|
<g class="part-start">
|
|
8
8
|
<rect x="11" y="6" width="9" height="18" rx="0" class="white"/>
|
|
9
|
-
<path class="stand" d="M 11,5 C 2,9 2,21 11,25 M 20,5 C 29,9 29,21 20,25" style="stroke-dasharray:1,4;"/>
|
|
9
|
+
<path class="stand colorstyle" d="M 11,5 C 2,9 2,21 11,25 M 20,5 C 29,9 29,21 20,25" style="stroke-dasharray:1,4;"/>
|
|
10
10
|
<line x1="15.6" y1="4" x2="15.6" y2="27" class="edge"/>
|
|
11
11
|
</g>
|
|
12
12
|
<g class="part-middle" transform="translate(30,0)">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<rect transform="rotate(45,14,12)" x="7" y="3" width="21" height="21" class="stand"/>
|
|
2
|
+
<rect transform="rotate(45,14,12)" x="7" y="3" width="21" height="21" class="colorstyle stand"/>
|
|
3
3
|
<path d="m 17.620194,6.2873424 c 7.577463,7.5774646 -7.577463,10.5124376 0,18.0898996" class="stand" style="fill-opacity: 0"/>
|
|
4
4
|
<path d="m 14.036033,6.2873424 c 7.577463,7.5774646 -7.5774629,10.5124376 0,18.0898996" class="stand" style="fill-opacity: 0"/>
|
|
5
5
|
</svg>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<circle cx="15" cy="15" r="14" class="stand"/>
|
|
2
|
+
<circle cx="15" cy="15" r="14" class="colorstyle stand"/>
|
|
3
3
|
<circle cx="15" cy="15" r="11" class="execstyle stand"/>
|
|
4
4
|
<path d="M 7.8583963,10.061007 10.29692,7.6153325 15.17399,12.506704 20.051062,7.6153325 22.489583,10.06103 17.612536,14.952378 22.489583,19.84375 20.051062,22.289424 15.17399,17.398076 10.296942,22.289424 7.8583963,19.84375 12.735466,14.952378 Z" class="stand"/>
|
|
5
5
|
</svg>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<circle cx="15" cy="15" r="14" class="stand"/>
|
|
2
|
+
<circle cx="15" cy="15" r="14" class="colorstyle stand"/>
|
|
3
3
|
<circle cx="15" cy="15" r="11" class="execstyle stand"/>
|
|
4
4
|
<circle cx="15" cy="15" r="7" class="stand"/> <path d="M 17,17 19.84375,19.84375" class="black stand"/>
|
|
5
5
|
</svg>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<circle cx="15" cy="15" r="14" class="stand"/>
|
|
2
|
+
<circle cx="15" cy="15" r="14" class="colorstyle stand"/>
|
|
3
3
|
<circle cx="15" cy="15" r="11" class="execstyle stand"/>
|
|
4
4
|
<path d="M 14.904335,6.0646408 A 9.0152948,9.0152948 0 0 0 5.9550908,15.079625 H 23.985106 a 9.0152948,9.0152948 0 0 0 -9.015008,-9.0149842 9.0152948,9.0152948 0 0 0 -0.06567,0 z" class="standfat"/>
|
|
5
5
|
<path d="M 14.970098,15.079625 11.963937,10.870986" class="black stand"/>
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<g class="part-normal">
|
|
3
|
+
<circle cx="15" cy="15" r="14" class="colorstyle execstyle stand"/>
|
|
4
|
+
<path d="M 11,14 L 11,10 A 4,4 0 0 1 19,10 L 19,14" class="stand" style="fill:none;"/>
|
|
5
|
+
<rect x="9.5" y="13.5" width="11" height="9" rx="1.5" class="black"/>
|
|
6
|
+
</g>
|
|
7
|
+
<g class="part-start">
|
|
8
|
+
<circle cx="15" cy="15" r="14" class="colorstyle execstyle stand"/>
|
|
9
|
+
<path d="M 11,14 L 11,10 A 4,4 0 0 1 19,10 L 19,14" class="stand" style="fill:none;"/>
|
|
10
|
+
<rect x="9.5" y="13.5" width="11" height="9" rx="1.5" class="black"/>
|
|
11
|
+
</g>
|
|
12
|
+
<g class="part-middle" transform="translate(32,0)">
|
|
13
|
+
<text transform="translate(0,20)" class="label"></text>
|
|
14
|
+
</g>
|
|
5
15
|
</svg>
|