cpee 2.1.39 → 2.1.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/config.json +1 -1
  3. data/cockpit/css/graph.css +13 -0
  4. data/cockpit/graph.html +1 -0
  5. data/cockpit/js/instance.js +94 -74
  6. data/cockpit/js_libs.zip +0 -0
  7. data/cockpit/themes/compact/symbols/start_event.svg +2 -2
  8. data/cockpit/themes/compact/symbols/test.svg +74 -0
  9. data/cockpit/themes/control/symbols/start_event.svg +2 -2
  10. data/cockpit/themes/control/symbols/test.svg +74 -0
  11. data/cockpit/themes/default/symbols/start_event.svg +2 -2
  12. data/cockpit/themes/default/symbols/test.svg +74 -0
  13. data/cockpit/themes/extended/symbols/start_event.svg +2 -2
  14. data/cockpit/themes/extended/symbols/test.svg +74 -0
  15. data/cockpit/themes/model/symbols/start_event.svg +2 -2
  16. data/cockpit/themes/model/symbols/test.svg +74 -0
  17. data/cockpit/themes/packed/symbols/start_event.svg +2 -2
  18. data/cockpit/themes/packed/symbols/test.svg +74 -0
  19. data/cockpit/themes/preset/symbols/start_event.svg +2 -2
  20. data/cockpit/themes/preset/symbols/test.svg +74 -0
  21. data/cpee.gemspec +1 -1
  22. data/lib/cpee/implementation.rb +54 -32
  23. data/lib/cpee/message.rb +13 -4
  24. data/server/executionhandlers/ruby/controller.rb +1 -0
  25. data/server/executionhandlers/ruby/dsl_to_dslx.xsl +1 -11
  26. data/server/executionhandlers/ruby/execution.rb +1 -0
  27. data/server/routing/end.pid +1 -1
  28. data/server/routing/end.rb +1 -1
  29. data/server/routing/forward-events-00.pid +1 -0
  30. data/server/routing/forward-events-01.pid +1 -0
  31. data/server/routing/forward-events-02.pid +1 -0
  32. data/server/routing/forward-events-03.pid +1 -0
  33. data/server/routing/forward-events-04.pid +1 -0
  34. data/server/routing/forward-events.rb +20 -13
  35. data/server/routing/forward-votes.pid +1 -1
  36. data/server/routing/forward-votes.rb +2 -3
  37. data/server/routing/persist-00.pid +1 -0
  38. data/server/routing/persist-01.pid +1 -0
  39. data/server/routing/persist-02.pid +1 -0
  40. data/server/routing/persist-03.pid +1 -0
  41. data/server/routing/persist-04.pid +1 -0
  42. data/server/routing/persist.rb +38 -29
  43. data/server/server.conf +1 -1
  44. data/server/server.pid +1 -0
  45. data/tools/cpee +52 -12
  46. metadata +23 -6
  47. data/server/executionhandlers/ruby/test.xml +0 -43
  48. data/server/routing/forward-events.pid +0 -1
  49. data/server/routing/persist.pid +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9256c97fb6db6f726abc1135b36227812902da3e9e9904155812adaf7e210d4
4
- data.tar.gz: 331436cf6d23f7b2eb2f41e54c29955d82035db3fc3925d658edd3ee08798c3b
3
+ metadata.gz: d269456c4ed16bc2f73b834e4c680e93c6f187e4b4ae24da9b5158bf0df6f9c0
4
+ data.tar.gz: fc4b08c08ef7797727d14f02293c1087fc3ff4ed30ceb9febd86e07deec058c9
5
5
  SHA512:
6
- metadata.gz: ec187671b4741f712a2830d46f8e03972bbc98a39d6994ebad11c834f5dd0187fc7bb4dbf493d2463957885bd1e5b51c7383bf462558d82a8a8a37bb965d803c
7
- data.tar.gz: 9b5fb43a84305481a9c314694f41d18243ae39507b6c74290f1390477c5cfa98dfcb66c168946376b687bbac72874bce29fa4ec324aa2f7918a480ffcdab0186
6
+ metadata.gz: 29cd768da588727ae216e0d5c4474b791db7ac957e8b4b62035223fc8ac106efefaae8cababbac13dad6f77b4e76126dac5bf6e735fb9ad5b6151d04900c3d8b
7
+ data.tar.gz: 0ac57fa8dadd564b2c4eb3fa16e82e7694c7bafcee4f9276274f613234fe2c385307bd2b80da17016f81b471002f782d4bff2e31524a3354e06a9af6a56488ab
data/cockpit/config.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "res-url": "https://tango.wst.univie.ac.at/flow/resources/"
2
+ "res-url": "https://cpee.org/flow/resources/"
3
3
  }
@@ -0,0 +1,13 @@
1
+ #trackfull {
2
+ display: flex;
3
+ flex-direction:row;
4
+ align-items: stretch;
5
+ height: 100vh;
6
+ }
7
+ #graphcolumn {
8
+ flex: 0 1 auto;
9
+ width: 100vw;
10
+ min-width: 15em;
11
+ border-right: 0 none;
12
+ overflow: auto;
13
+ }
data/cockpit/graph.html CHANGED
@@ -56,6 +56,7 @@
56
56
  <script type="text/javascript" src="js/parameters.js"></script>
57
57
  <script type="text/javascript" src="js/modifiers.js"></script>
58
58
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
59
+ <link rel="stylesheet" href="css/graph.css" type="text/css"/>
59
60
  </head>
60
61
  <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
61
62
  <div class='hidden' id='relaxngworker'></div>
@@ -270,7 +270,7 @@ function sse() { //{{{
270
270
  if (data['type'] == 'event') {
271
271
  switch(data['topic']) {
272
272
  case 'dataelements':
273
- monitor_instance_values("dataelements");
273
+ monitor_instance_values("dataelements",data.content.values);
274
274
  break;
275
275
  case 'description':
276
276
  monitor_instance_dsl();
@@ -390,87 +390,106 @@ function monitor_instance(cin,rep,load,exec) {// {{{
390
390
  });
391
391
  }// }}}
392
392
 
393
- function monitor_instance_values(val) {// {{{
393
+ function monitor_instance_values(type,vals) {// {{{
394
394
  var url = $('body').attr('current-instance');
395
395
  var rep = $('body').attr('current-resources');
396
396
  var bas = $('body').attr('current-base');
397
397
 
398
- $.ajax({
399
- type: "GET",
400
- url: url + "/properties/" + val + "/",
401
- success: function(res){
402
- save[val].content(res);
403
- if (val == "endpoints") {
404
- save['endpoints_list'] = {};
405
- var tmp = {};
406
- $(res).find(" > endpoints > *").each(function(k,v) {
407
- save['endpoints_list'][v.localName] = v.lastChild.nodeValue;
408
- $.ajax({
409
- url: rep + 'endpoints/' + encodeURIComponent($(v).text()),
410
- success: function() {
411
- tmp[v.tagName] = {};
412
- var deferreds = [new $.Deferred(), new $.Deferred(), new $.Deferred()];
413
- $.ajax({
414
- url: rep + 'endpoints/' + encodeURIComponent($(v).text()) + "/symbol.svg",
415
- success: function(res) {
416
- tmp[v.tagName]['symbol'] = res;
417
- deferreds[0].resolve(true);
418
- },
419
- error: deferreds[0].resolve
420
- })
421
- $.ajax({
422
- url: rep + 'endpoints/' + encodeURIComponent($(v).text()) + "/schema.rng",
423
- success: function(res) {
424
- tmp[v.tagName]['schema'] = res;
425
- deferreds[1].resolve(true);
426
- },
427
- error: deferreds[1].resolve
428
- })
429
- $.ajax({
430
- url: rep + 'endpoints/' + encodeURIComponent($(v).text()) + "/properties.json",
431
- success: function(res) {
432
- tmp[v.tagName]['properties'] = res;
433
- deferreds[2].resolve(true);
434
- },
435
- error: deferreds[2].resolve
436
- })
437
- $.when.apply($, deferreds).then(function(x) {
438
- save['endpoints_cache'] = tmp;
439
- // when updating attributes clear the attributes, because they might change as well. New arguments are possible.
440
- $('#dat_details').empty();
441
- adaptor_update();
442
- });
443
- }
444
- });
445
- });
446
- } else if(val == "attributes") {
447
- if ($('#modifiers > div').length == 0) {
448
- modifiers_display().then(function(){ modifiers_select(); });
398
+ if (type == "dataelements" && save['state'] == "running") {
399
+ let de = save[type].save();
400
+ Object.entries(vals).forEach(([key,value]) => {
401
+ let entry = $(de).find(' > dataelements > ' + key);
402
+ if (entry.length > 0) {
403
+ if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number') {
404
+ entry.text(value)
449
405
  } else {
450
- modifiers_select();
451
- }
452
- var text = $(" > attributes > info",res).text() + " (" + url.replace(/\/$/,'').split(/[\\/]/).pop() + ")";
453
- $('#title').text(text);
454
- document.title = text;
455
- if ($('body').attr('current-save')) {
456
- $('body').attr('current-save-dir',$(" > attributes > design_dir",res).text());
406
+ entry.text(JSON.stringify(value))
457
407
  }
458
- if ($('body').attr('current-logs')) {
459
- var uuid = $(" > attributes > uuid",res).text();
460
- $("#current-log").show();
461
- $("#shifted-log").show();
462
- $("#current-log").attr('href',$('body').attr('current-logs') + uuid + '.xes.yaml');
463
- $("#shifted-log").attr('href',$('body').attr('current-logs') + uuid + '.xes.shift.yaml');
464
- if ($("#current-log").text() == '') {
465
- $("#current-log").text(uuid + '.xes.yaml');
408
+ } else {
409
+ let ele = $X('<' + key + ' xmlns="http://cpee.org/ns/properties/2.0"/>')
410
+ $(ele).text(value)
411
+ $(de).find(' > dataelements').append(ele)
412
+ }
413
+ });
414
+ save[type].content(de);
415
+ } else {
416
+ $.ajax({
417
+ type: "GET",
418
+ url: url + "/properties/" + type + "/",
419
+ success: function(res){
420
+ save[type].content(res);
421
+ if (type == "endpoints") {
422
+ save['endpoints_list'] = {};
423
+ var tmp = {};
424
+ $(res).find(" > endpoints > *").each(function(k,v) {
425
+ save['endpoints_list'][v.localName] = v.lastChild.nodeValue;
426
+ $.ajax({
427
+ url: rep + 'endpoints/' + encodeURIComponent($(v).text()),
428
+ success: function() {
429
+ tmp[v.tagName] = {};
430
+ var deferreds = [new $.Deferred(), new $.Deferred(), new $.Deferred()];
431
+ $.ajax({
432
+ url: rep + 'endpoints/' + encodeURIComponent($(v).text()) + "/symbol.svg",
433
+ success: function(res) {
434
+ tmp[v.tagName]['symbol'] = res;
435
+ deferreds[0].resolve(true);
436
+ },
437
+ error: deferreds[0].resolve
438
+ })
439
+ $.ajax({
440
+ url: rep + 'endpoints/' + encodeURIComponent($(v).text()) + "/schema.rng",
441
+ success: function(res) {
442
+ tmp[v.tagName]['schema'] = res;
443
+ deferreds[1].resolve(true);
444
+ },
445
+ error: deferreds[1].resolve
446
+ })
447
+ $.ajax({
448
+ url: rep + 'endpoints/' + encodeURIComponent($(v).text()) + "/properties.json",
449
+ success: function(res) {
450
+ tmp[v.tagName]['properties'] = res;
451
+ deferreds[2].resolve(true);
452
+ },
453
+ error: deferreds[2].resolve
454
+ })
455
+ $.when.apply($, deferreds).then(function(x) {
456
+ save['endpoints_cache'] = tmp;
457
+ // when updating attributes clear the attributes, because they might change as well. New arguments are possible.
458
+ $('#dat_details').empty();
459
+ adaptor_update();
460
+ });
461
+ }
462
+ });
463
+ });
464
+ } else if(type == "attributes") {
465
+ if ($('#modifiers > div').length == 0) {
466
+ modifiers_display().then(function(){ modifiers_select(); });
467
+ } else {
468
+ modifiers_select();
469
+ }
470
+ var text = $(" > attributes > info",res).text() + " (" + url.replace(/\/$/,'').split(/[\\/]/).pop() + ")";
471
+ $('#title').text(text);
472
+ document.title = text;
473
+ if ($('body').attr('current-save')) {
474
+ $('body').attr('current-save-dir',$(" > attributes > design_dir",res).text());
466
475
  }
467
- if ($("#shifted-log").text() == '') {
468
- $("#shifted-log").text(uuid + '.xes.shift.yaml');
476
+ if ($('body').attr('current-logs')) {
477
+ var uuid = $(" > attributes > uuid",res).text();
478
+ $("#current-log").show();
479
+ $("#shifted-log").show();
480
+ $("#current-log").attr('href',$('body').attr('current-logs') + uuid + '.xes.yaml');
481
+ $("#shifted-log").attr('href',$('body').attr('current-logs') + uuid + '.xes.shift.yaml');
482
+ if ($("#current-log").text() == '') {
483
+ $("#current-log").text(uuid + '.xes.yaml');
484
+ }
485
+ if ($("#shifted-log").text() == '') {
486
+ $("#shifted-log").text(uuid + '.xes.shift.yaml');
487
+ }
469
488
  }
470
489
  }
471
490
  }
472
- }
473
- });
491
+ });
492
+ }
474
493
  } // }}}
475
494
 
476
495
  function adaptor_update() { //{{{
@@ -1199,9 +1218,10 @@ function format_visual_remove(what,cls) {//{{{
1199
1218
  }//}}}
1200
1219
 
1201
1220
  function scroll_into_view(what) { //{{{
1202
- var tcontainer = $('#graphcanvas').parent()[0];
1221
+ if (save['state'] != "running") return;
1222
+ var tcontainer = $('#graphcolumn')[0];
1203
1223
  if ($('g[element-id="' + what + '"]').length > 0) {
1204
- var telement = $('g[element-id="' + what + '"]')[0].getBBox().y;
1224
+ var telement = $('g[element-id="' + what + '"]')[0].getBBox().y;
1205
1225
  if (tcontainer.scrollTop > telement) {
1206
1226
  tcontainer.scroll( { top: telement - 5, behavior: 'smooth' } );
1207
1227
  }
Binary file
@@ -1,5 +1,5 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
2
  <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <rect x="7" y="9" width="16" height="12" class="black" style="fill: none"/>
4
- <path d="m 7,9 8,6 8,-6" class="black" style="fill: none"/>
3
+ <rect x="7" y="10" width="16" height="11" class="black" style="fill: none"/>
4
+ <path d="m 7,10 8,6 8,-6" class="black" style="fill: none"/>
5
5
  </svg>
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ class="clickable"
11
+ version="1.1"
12
+ id="svg10"
13
+ sodipodi:docname="test.svg"
14
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
15
+ <metadata
16
+ id="metadata16">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <defs
27
+ id="defs14" />
28
+ <sodipodi:namedview
29
+ pagecolor="#ffffff"
30
+ bordercolor="#666666"
31
+ borderopacity="1"
32
+ objecttolerance="10"
33
+ gridtolerance="10"
34
+ guidetolerance="10"
35
+ inkscape:pageopacity="0"
36
+ inkscape:pageshadow="2"
37
+ inkscape:window-width="2062"
38
+ inkscape:window-height="1298"
39
+ id="namedview12"
40
+ showgrid="false"
41
+ inkscape:zoom="35.146667"
42
+ inkscape:cx="13.036699"
43
+ inkscape:cy="13.350011"
44
+ inkscape:window-x="0"
45
+ inkscape:window-y="27"
46
+ inkscape:window-maximized="0"
47
+ inkscape:current-layer="svg10" />
48
+ <rect
49
+ transform="rotate(45,14,12)"
50
+ x="7"
51
+ y="3"
52
+ width="21"
53
+ height="21"
54
+ class="cline hfill stand"
55
+ id="rect2"
56
+ style="fill:#3465a4" />
57
+ <circle
58
+ cx="15.5"
59
+ cy="15.5"
60
+ r="7"
61
+ class="stand"
62
+ id="circle4" />
63
+ <circle
64
+ cx="15.5"
65
+ cy="15.5"
66
+ r="7"
67
+ class="stand"
68
+ id="circle6" />
69
+ <path
70
+ d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
71
+ class="stand"
72
+ id="path8"
73
+ style="fill:#ef2929;stroke-width:1" />
74
+ </svg>
@@ -1,5 +1,5 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
2
  <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <rect x="7" y="9" width="16" height="12" class="black" style="fill: none"/>
4
- <path d="m 7,9 8,6 8,-6" class="black" style="fill: none"/>
3
+ <rect x="7" y="10" width="16" height="11" class="black" style="fill: none"/>
4
+ <path d="m 7,10 8,6 8,-6" class="black" style="fill: none"/>
5
5
  </svg>
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ class="clickable"
11
+ version="1.1"
12
+ id="svg10"
13
+ sodipodi:docname="test.svg"
14
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
15
+ <metadata
16
+ id="metadata16">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <defs
27
+ id="defs14" />
28
+ <sodipodi:namedview
29
+ pagecolor="#ffffff"
30
+ bordercolor="#666666"
31
+ borderopacity="1"
32
+ objecttolerance="10"
33
+ gridtolerance="10"
34
+ guidetolerance="10"
35
+ inkscape:pageopacity="0"
36
+ inkscape:pageshadow="2"
37
+ inkscape:window-width="2062"
38
+ inkscape:window-height="1298"
39
+ id="namedview12"
40
+ showgrid="false"
41
+ inkscape:zoom="35.146667"
42
+ inkscape:cx="13.036699"
43
+ inkscape:cy="13.350011"
44
+ inkscape:window-x="0"
45
+ inkscape:window-y="27"
46
+ inkscape:window-maximized="0"
47
+ inkscape:current-layer="svg10" />
48
+ <rect
49
+ transform="rotate(45,14,12)"
50
+ x="7"
51
+ y="3"
52
+ width="21"
53
+ height="21"
54
+ class="cline hfill stand"
55
+ id="rect2"
56
+ style="fill:#3465a4" />
57
+ <circle
58
+ cx="15.5"
59
+ cy="15.5"
60
+ r="7"
61
+ class="stand"
62
+ id="circle4" />
63
+ <circle
64
+ cx="15.5"
65
+ cy="15.5"
66
+ r="7"
67
+ class="stand"
68
+ id="circle6" />
69
+ <path
70
+ d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
71
+ class="stand"
72
+ id="path8"
73
+ style="fill:#ef2929;stroke-width:1" />
74
+ </svg>
@@ -1,5 +1,5 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
2
  <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <rect x="7" y="9" width="16" height="12" class="black" style="fill: none"/>
4
- <path d="m 7,9 8,6 8,-6" class="black" style="fill: none"/>
3
+ <rect x="7" y="10" width="16" height="11" class="black" style="fill: none"/>
4
+ <path d="m 7,10 8,6 8,-6" class="black" style="fill: none"/>
5
5
  </svg>
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ class="clickable"
11
+ version="1.1"
12
+ id="svg10"
13
+ sodipodi:docname="test.svg"
14
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
15
+ <metadata
16
+ id="metadata16">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <defs
27
+ id="defs14" />
28
+ <sodipodi:namedview
29
+ pagecolor="#ffffff"
30
+ bordercolor="#666666"
31
+ borderopacity="1"
32
+ objecttolerance="10"
33
+ gridtolerance="10"
34
+ guidetolerance="10"
35
+ inkscape:pageopacity="0"
36
+ inkscape:pageshadow="2"
37
+ inkscape:window-width="2062"
38
+ inkscape:window-height="1298"
39
+ id="namedview12"
40
+ showgrid="false"
41
+ inkscape:zoom="35.146667"
42
+ inkscape:cx="13.036699"
43
+ inkscape:cy="13.350011"
44
+ inkscape:window-x="0"
45
+ inkscape:window-y="27"
46
+ inkscape:window-maximized="0"
47
+ inkscape:current-layer="svg10" />
48
+ <rect
49
+ transform="rotate(45,14,12)"
50
+ x="7"
51
+ y="3"
52
+ width="21"
53
+ height="21"
54
+ class="cline hfill stand"
55
+ id="rect2"
56
+ style="fill:#3465a4" />
57
+ <circle
58
+ cx="15.5"
59
+ cy="15.5"
60
+ r="7"
61
+ class="stand"
62
+ id="circle4" />
63
+ <circle
64
+ cx="15.5"
65
+ cy="15.5"
66
+ r="7"
67
+ class="stand"
68
+ id="circle6" />
69
+ <path
70
+ d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
71
+ class="stand"
72
+ id="path8"
73
+ style="fill:#ef2929;stroke-width:1" />
74
+ </svg>
@@ -1,5 +1,5 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
2
  <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <rect x="7" y="9" width="16" height="12" class="black" style="fill: none"/>
4
- <path d="m 7,9 8,6 8,-6" class="black" style="fill: none"/>
3
+ <rect x="7" y="10" width="16" height="11" class="black" style="fill: none"/>
4
+ <path d="m 7,10 8,6 8,-6" class="black" style="fill: none"/>
5
5
  </svg>
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ class="clickable"
11
+ version="1.1"
12
+ id="svg10"
13
+ sodipodi:docname="test.svg"
14
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
15
+ <metadata
16
+ id="metadata16">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <defs
27
+ id="defs14" />
28
+ <sodipodi:namedview
29
+ pagecolor="#ffffff"
30
+ bordercolor="#666666"
31
+ borderopacity="1"
32
+ objecttolerance="10"
33
+ gridtolerance="10"
34
+ guidetolerance="10"
35
+ inkscape:pageopacity="0"
36
+ inkscape:pageshadow="2"
37
+ inkscape:window-width="2062"
38
+ inkscape:window-height="1298"
39
+ id="namedview12"
40
+ showgrid="false"
41
+ inkscape:zoom="35.146667"
42
+ inkscape:cx="13.036699"
43
+ inkscape:cy="13.350011"
44
+ inkscape:window-x="0"
45
+ inkscape:window-y="27"
46
+ inkscape:window-maximized="0"
47
+ inkscape:current-layer="svg10" />
48
+ <rect
49
+ transform="rotate(45,14,12)"
50
+ x="7"
51
+ y="3"
52
+ width="21"
53
+ height="21"
54
+ class="cline hfill stand"
55
+ id="rect2"
56
+ style="fill:#3465a4" />
57
+ <circle
58
+ cx="15.5"
59
+ cy="15.5"
60
+ r="7"
61
+ class="stand"
62
+ id="circle4" />
63
+ <circle
64
+ cx="15.5"
65
+ cy="15.5"
66
+ r="7"
67
+ class="stand"
68
+ id="circle6" />
69
+ <path
70
+ d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
71
+ class="stand"
72
+ id="path8"
73
+ style="fill:#ef2929;stroke-width:1" />
74
+ </svg>
@@ -1,5 +1,5 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
2
  <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <rect x="7" y="9" width="16" height="12" class="black" style="fill: none"/>
4
- <path d="m 7,9 8,6 8,-6" class="black" style="fill: none"/>
3
+ <rect x="7" y="10" width="16" height="11" class="black" style="fill: none"/>
4
+ <path d="m 7,10 8,6 8,-6" class="black" style="fill: none"/>
5
5
  </svg>
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ class="clickable"
11
+ version="1.1"
12
+ id="svg10"
13
+ sodipodi:docname="test.svg"
14
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
15
+ <metadata
16
+ id="metadata16">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <defs
27
+ id="defs14" />
28
+ <sodipodi:namedview
29
+ pagecolor="#ffffff"
30
+ bordercolor="#666666"
31
+ borderopacity="1"
32
+ objecttolerance="10"
33
+ gridtolerance="10"
34
+ guidetolerance="10"
35
+ inkscape:pageopacity="0"
36
+ inkscape:pageshadow="2"
37
+ inkscape:window-width="2062"
38
+ inkscape:window-height="1298"
39
+ id="namedview12"
40
+ showgrid="false"
41
+ inkscape:zoom="35.146667"
42
+ inkscape:cx="13.036699"
43
+ inkscape:cy="13.350011"
44
+ inkscape:window-x="0"
45
+ inkscape:window-y="27"
46
+ inkscape:window-maximized="0"
47
+ inkscape:current-layer="svg10" />
48
+ <rect
49
+ transform="rotate(45,14,12)"
50
+ x="7"
51
+ y="3"
52
+ width="21"
53
+ height="21"
54
+ class="cline hfill stand"
55
+ id="rect2"
56
+ style="fill:#3465a4" />
57
+ <circle
58
+ cx="15.5"
59
+ cy="15.5"
60
+ r="7"
61
+ class="stand"
62
+ id="circle4" />
63
+ <circle
64
+ cx="15.5"
65
+ cy="15.5"
66
+ r="7"
67
+ class="stand"
68
+ id="circle6" />
69
+ <path
70
+ d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
71
+ class="stand"
72
+ id="path8"
73
+ style="fill:#ef2929;stroke-width:1" />
74
+ </svg>