state-machine-cat 12.0.17 → 12.0.19
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/README.md +1 -1
- package/dist/cli/cli.mjs +2 -17
- package/dist/index.mjs +5 -4
- package/dist/options.mjs +0 -1
- package/dist/parse/scxml/index.mjs +1 -1
- package/dist/render/dot/attributebuilder.mjs +20 -14
- package/dist/render/dot/index.mjs +263 -142
- package/dist/render/dot/utl.mjs +83 -11
- package/dist/render/index-node.mjs +1 -2
- package/dist/state-machine-model.mjs +19 -12
- package/dist/version.mjs +1 -1
- package/package.json +2 -8
- package/dist/render/dot/dot.states.template.cjs +0 -1
- package/dist/render/dot/dot.template.cjs +0 -1
- package/dist/render/dot/render-dot-from-ast.mjs +0 -44
- package/dist/render/dot/state-transformers.mjs +0 -119
- package/dist/render/dot/transition-transformers.mjs +0 -45
- package/dist/render/ndot/attributebuilder.mjs +0 -60
- package/dist/render/ndot/index.mjs +0 -243
- package/dist/render/ndot/utl.mjs +0 -77
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import smcatRendererAsImported from "./smcat.mjs";
|
|
2
2
|
import renderDot from "./dot/index.mjs";
|
|
3
|
-
import renderNDot from "./ndot/index.mjs";
|
|
4
3
|
import vector from "./vector/vector-native-dot-with-fallback.mjs";
|
|
5
4
|
import oldVector from "./vector/vector-with-wasm.mjs";
|
|
6
5
|
import scjson from "./scjson/index.mjs";
|
|
@@ -10,8 +9,8 @@ export default function getRenderFunction(pOutputType) {
|
|
|
10
9
|
const lOutputType2RenderFunctionMap = new Map([
|
|
11
10
|
["smcat", smcat],
|
|
12
11
|
["dot", renderDot],
|
|
13
|
-
["ndot", renderNDot],
|
|
14
12
|
["svg", vector],
|
|
13
|
+
["dot", renderDot],
|
|
15
14
|
["eps", vector],
|
|
16
15
|
["ps", vector],
|
|
17
16
|
["ps2", vector],
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
function
|
|
2
|
-
let lReturnValue = [];
|
|
1
|
+
function flattenStatesToMap(pStates, pMap, pParent = "") {
|
|
3
2
|
pStates
|
|
4
3
|
.filter((pState) => Boolean(pState.statemachine))
|
|
5
4
|
.forEach((pState) => {
|
|
6
5
|
if (Object.hasOwn(pState.statemachine, "states")) {
|
|
7
|
-
|
|
8
|
-
flattenStates(pState.statemachine.states, true),
|
|
9
|
-
);
|
|
6
|
+
flattenStatesToMap(pState.statemachine.states, pMap, pState.name);
|
|
10
7
|
}
|
|
11
8
|
});
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
pStates.forEach((pState) =>
|
|
10
|
+
pMap.set(pState.name, {
|
|
14
11
|
name: pState.name,
|
|
15
12
|
type: pState.type,
|
|
16
13
|
statemachine: Boolean(pState.statemachine),
|
|
17
|
-
|
|
18
|
-
})
|
|
14
|
+
parent: pParent,
|
|
15
|
+
}),
|
|
19
16
|
);
|
|
20
17
|
}
|
|
21
18
|
function flattenTransitions(pStateMachine) {
|
|
@@ -38,17 +35,18 @@ export default class StateMachineModel {
|
|
|
38
35
|
_flattenedTransitions;
|
|
39
36
|
_flattenedStates;
|
|
40
37
|
constructor(pStateMachine) {
|
|
41
|
-
this._flattenedStates =
|
|
38
|
+
this._flattenedStates = new Map();
|
|
39
|
+
flattenStatesToMap(pStateMachine.states ?? [], this._flattenedStates);
|
|
42
40
|
this._flattenedTransitions = flattenTransitions(pStateMachine);
|
|
43
41
|
}
|
|
44
42
|
get flattenedTransitions() {
|
|
45
43
|
return this._flattenedTransitions;
|
|
46
44
|
}
|
|
47
45
|
findStateByName(pName) {
|
|
48
|
-
return this._flattenedStates.
|
|
46
|
+
return this._flattenedStates.get(pName);
|
|
49
47
|
}
|
|
50
48
|
findStatesByTypes(pTypes) {
|
|
51
|
-
return this._flattenedStates.filter((pState) =>
|
|
49
|
+
return Array.from(this._flattenedStates.values()).filter((pState) =>
|
|
52
50
|
pTypes.includes(pState.type),
|
|
53
51
|
);
|
|
54
52
|
}
|
|
@@ -70,4 +68,13 @@ export default class StateMachineModel {
|
|
|
70
68
|
(pTransition) => pTransition.to === pToStateName,
|
|
71
69
|
);
|
|
72
70
|
}
|
|
71
|
+
findTransitionsToSiblings(pStateName, pExcludeIds) {
|
|
72
|
+
return this._flattenedTransitions.filter(
|
|
73
|
+
(pTransition) =>
|
|
74
|
+
!pExcludeIds.has(pTransition.id) &&
|
|
75
|
+
pTransition.from === pStateName &&
|
|
76
|
+
this._flattenedStates.get(pTransition.to)?.parent ===
|
|
77
|
+
this._flattenedStates.get(pStateName)?.parent,
|
|
78
|
+
);
|
|
79
|
+
}
|
|
73
80
|
}
|
package/dist/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "12.0.
|
|
1
|
+
export const version = "12.0.19";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "state-machine-cat",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.19",
|
|
4
4
|
"description": "write beautiful state charts",
|
|
5
5
|
"main": "./dist/index.mjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -16,10 +16,6 @@
|
|
|
16
16
|
"imports": {
|
|
17
17
|
"#*": "./src/*"
|
|
18
18
|
},
|
|
19
|
-
"sideEffects": [
|
|
20
|
-
"dist/render/dot/dot.states.template.cjs",
|
|
21
|
-
"dist/render/dot/dot.template.cjs"
|
|
22
|
-
],
|
|
23
19
|
"files": [
|
|
24
20
|
"dist/",
|
|
25
21
|
"types/",
|
|
@@ -47,10 +43,8 @@
|
|
|
47
43
|
"@hpcc-js/wasm-graphviz": "1.7.0",
|
|
48
44
|
"ajv": "8.17.1",
|
|
49
45
|
"fast-xml-parser": "4.5.1",
|
|
50
|
-
"handlebars": "4.7.8",
|
|
51
46
|
"he": "1.2.0",
|
|
52
|
-
"
|
|
53
|
-
"traverse": "0.6.8"
|
|
47
|
+
"neotraverse": "0.6.18"
|
|
54
48
|
},
|
|
55
49
|
"engines": {
|
|
56
50
|
"node": "^18.17||>=20"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var Handlebars=require("handlebars/dist/handlebars.runtime"),template=Handlebars.template,templates=Handlebars.templates=Handlebars.templates||{};templates["dot.states.template.hbs"]=template({1:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},r="",c=null!=(c=t(e,"nestedExternalSelfTransitions")||(null!=n?t(n,"nestedExternalSelfTransitions"):n))?c:l.hooks.helperMissing,o={name:"nestedExternalSelfTransitions",hash:{},fn:l.program(2,o,0),inverse:l.noop,data:o,loc:{start:{line:2,column:2},end:{line:4,column:36}}},c="function"==typeof c?c.call(null!=n?n:l.nullContext||{},o):c;return null!=(c=t(e,"nestedExternalSelfTransitions")?c:l.hooks.blockHelperMissing.call(n,c,o))&&(r+=c),r},2:function(l,n,e,a,o){return' "self_'+(null!=(l=l.lambda(n,n))?l:"")+'" [shape=point style=invis width=0 height=0 fixedsize=true]\n'},4:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:7,column:3},end:{line:7,column:13}}}):r)?t:"")+'" [shape=circle style=filled class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:7,column:49},end:{line:7,column:60}}}):r)?t:"")+'" '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,o,0),inverse:l.program(7,o,0),data:o,loc:{start:{line:7,column:62},end:{line:7,column:166}}}))?t:"")+(null!=(t=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,o,0),inverse:l.noop,data:o,loc:{start:{line:7,column:166},end:{line:7,column:200}}}))?t:"")+'fixedsize=true height=0.15 label=""]\n'},5:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(t=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:u)==i?r.call(c,{name:"color",hash:{},data:o,loc:{start:{line:7,column:82},end:{line:7,column:93}}}):r)?t:"")+'" fillcolor="'+(null!=(t=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:u)==i?r.call(c,{name:"color",hash:{},data:o,loc:{start:{line:7,column:106},end:{line:7,column:117}}}):r)?t:"")+'" '},7:function(l,n,e,a,o){return'color="black" fillcolor="black" '},9:function(l,n,e,a,o){return"penwidth=3.0 "},11:function(l,n,e,a,o){var t=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,c="function",u=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},i=' "'+(null!=(m=typeof(s=null!=(s=u(e,"name")||(null!=n?u(n,"name"):n))?s:r)==c?s.call(t,{name:"name",hash:{},data:o,loc:{start:{line:10,column:3},end:{line:10,column:13}}}):s)?m:"")+'" [margin=0 class="'+(null!=(m=typeof(s=null!=(s=u(e,"class")||(null!=n?u(n,"class"):n))?s:r)==c?s.call(t,{name:"class",hash:{},data:o,loc:{start:{line:10,column:32},end:{line:10,column:43}}}):s)?m:"")+'" '+(null!=(m=u(e,"if").call(t,null!=n?u(n,"color"):n,{name:"if",hash:{},fn:l.program(12,o,0),inverse:l.program(14,o,0),data:o,loc:{start:{line:10,column:45},end:{line:10,column:107}}}))?m:"")+(null!=(m=u(e,"if").call(t,null!=n?u(n,"active"):n,{name:"if",hash:{},fn:l.program(16,o,0),inverse:l.noop,data:o,loc:{start:{line:10,column:107},end:{line:10,column:156}}}))?m:"")+'label= <\n <table align="center" cellborder="0" border="2" style="rounded" width="48">\n <tr><td width="48"'+(null!=(m=u(e,"if").call(t,null!=n?u(n,"actionStrings"):n,{name:"if",hash:{},fn:l.program(18,o,0),inverse:l.program(20,o,0),data:o,loc:{start:{line:12,column:24},end:{line:12,column:92}}}))?m:"")+">"+(null!=(m=u(e,"if").call(t,null!=n?u(n,"active"):n,{name:"if",hash:{},fn:l.program(22,o,0),inverse:l.program(24,o,0),data:o,loc:{start:{line:12,column:93},end:{line:12,column:147}}}))?m:"")+"</td></tr>\n",s=null!=(s=u(e,"actionStrings")||(null!=n?u(n,"actionStrings"):n))?s:r,r={name:"actionStrings",hash:{},fn:l.program(26,o,0),inverse:l.noop,data:o,loc:{start:{line:13,column:6},end:{line:16,column:24}}},m=typeof s==c?s.call(t,r):s;return null!=(m=u(e,"actionStrings")?m:l.hooks.blockHelperMissing.call(n,m,r))&&(i+=m),i+" </table>\n >]\n"},12:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(t="function"==typeof(e=null!=(e=t(e,"color")||(null!=n?t(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:o,loc:{start:{line:10,column:65},end:{line:10,column:76}}}):e)?t:"")+'" '},14:function(l,n,e,a,o){return'color="black" '},16:function(l,n,e,a,o){return"peripheries=1 style=rounded "},18:function(l,n,e,a,o){return' cellpadding="2"'},20:function(l,n,e,a,o){return' cellpadding="7"'},22:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"<i>"+l.escapeExpression("function"==typeof(e=null!=(e=t(e,"label")||(null!=n?t(n,"label"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"label",hash:{},data:o,loc:{start:{line:12,column:110},end:{line:12,column:119}}}):e)+"</i>"},24:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return l.escapeExpression("function"==typeof(e=null!=(e=t(e,"label")||(null!=n?t(n,"label"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"label",hash:{},data:o,loc:{start:{line:12,column:131},end:{line:12,column:140}}}):e)},26:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(e=t(e,"if").call(null!=n?n:l.nullContext||{},o&&t(o,"first"),{name:"if",hash:{},fn:l.program(27,o,0),inverse:l.noop,data:o,loc:{start:{line:14,column:8},end:{line:14,column:35}}}))?e:"")+'<tr><td align="left" cellpadding="2">'+l.escapeExpression(l.lambda(n,n))+"</td></tr>\n"},27:function(l,n,e,a,o){return"<hr/>"},29:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:21,column:3},end:{line:21,column:13}}}):r)?t:"")+'" [shape=circle class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:21,column:36},end:{line:21,column:47}}}):r)?t:"")+'" '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,o,0),inverse:l.program(14,o,0),data:o,loc:{start:{line:21,column:49},end:{line:21,column:111}}}))?t:"")+(null!=(t=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,o,0),inverse:l.noop,data:o,loc:{start:{line:21,column:111},end:{line:21,column:145}}}))?t:"")+'label="H"]\n'},31:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:24,column:3},end:{line:24,column:13}}}):r)?t:"")+'" [shape=circle class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:24,column:36},end:{line:24,column:47}}}):r)?t:"")+'" '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,o,0),inverse:l.program(14,o,0),data:o,loc:{start:{line:24,column:49},end:{line:24,column:111}}}))?t:"")+(null!=(t=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,o,0),inverse:l.noop,data:o,loc:{start:{line:24,column:111},end:{line:24,column:145}}}))?t:"")+'label="H*"]\n'},33:function(l,n,e,a,o,t,r){var c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},m=' "'+(null!=(f=typeof(p=null!=(p=s(e,"name")||(null!=n?s(n,"name"):n))?p:u)==i?p.call(c,{name:"name",hash:{},data:o,loc:{start:{line:27,column:3},end:{line:27,column:13}}}):p)?f:"")+'" [shape=diamond fixedsize=true width=0.35 height=0.35 fontsize=10 label=" " class="'+(null!=(f=typeof(p=null!=(p=s(e,"class")||(null!=n?s(n,"class"):n))?p:u)==i?p.call(c,{name:"class",hash:{},data:o,loc:{start:{line:27,column:97},end:{line:27,column:108}}}):p)?f:"")+'" '+(null!=(f=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(34,o,0,t,r),inverse:l.program(36,o,0,t,r),data:o,loc:{start:{line:27,column:110},end:{line:27,column:170}}}))?f:"")+(null!=(f=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(38,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:27,column:170},end:{line:27,column:204}}}))?f:"")+']\n "'+(null!=(f=typeof(p=null!=(p=s(e,"name")||(null!=n?s(n,"name"):n))?p:u)==i?p.call(c,{name:"name",hash:{},data:o,loc:{start:{line:28,column:3},end:{line:28,column:13}}}):p)?f:"")+'" -> "'+(null!=(f=typeof(p=null!=(p=s(e,"name")||(null!=n?s(n,"name"):n))?p:u)==i?p.call(c,{name:"name",hash:{},data:o,loc:{start:{line:28,column:19},end:{line:28,column:29}}}):p)?f:"")+'" [color="#FFFFFF01"'+(null!=(f=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(40,o,0,t,r),inverse:l.program(42,o,0,t,r),data:o,loc:{start:{line:28,column:49},end:{line:28,column:119}}}))?f:"")+' class="'+(null!=(f=typeof(p=null!=(p=s(e,"class")||(null!=n?s(n,"class"):n))?p:u)==i?p.call(c,{name:"class",hash:{},data:o,loc:{start:{line:28,column:127},end:{line:28,column:138}}}):p)?f:"")+'" label=<',p=null!=(p=s(e,"actionStrings")||(null!=n?s(n,"actionStrings"):n))?p:u,u={name:"actionStrings",hash:{},fn:l.program(44,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:28,column:147},end:{line:28,column:264}}},f=typeof p==i?p.call(c,u):p;return null!=(f=s(e,"actionStrings")?f:l.hooks.blockHelperMissing.call(n,f,u))&&(m+=f),m+">]\n"},34:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(t="function"==typeof(e=null!=(e=t(e,"color")||(null!=n?t(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:o,loc:{start:{line:27,column:130},end:{line:27,column:141}}}):e)?t:"")+'"'},36:function(l,n,e,a,o){return'color="black"'},38:function(l,n,e,a,o){return" penwidth=3.0"},40:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' fontcolor="'+(null!=(t="function"==typeof(e=null!=(e=t(e,"color")||(null!=n?t(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:o,loc:{start:{line:28,column:74},end:{line:28,column:85}}}):e)?t:"")+'"'},42:function(l,n,e,a,o){return' fontcolor="black"'},44:function(l,n,e,a,o,t,r){var c,n=null!=n?n:l.nullContext||{},u=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return(null!=(c=u(e,"if").call(n,o&&u(o,"first"),{name:"if",hash:{},fn:l.program(45,o,0,t,r),inverse:l.program(47,o,0,t,r),data:o,loc:{start:{line:28,column:165},end:{line:28,column:196}}}))?c:"")+(null!=(c=u(e,"if").call(n,null!=r[1]?u(r[1],"active"):r[1],{name:"if",hash:{},fn:l.program(49,o,0,t,r),inverse:l.program(51,o,0,t,r),data:o,loc:{start:{line:28,column:196},end:{line:28,column:245}}}))?c:"")},45:function(l,n,e,a,o){return""},47:function(l,n,e,a,o){return"\\n"},49:function(l,n,e,a,o){return"<i>"+l.escapeExpression(l.lambda(n,n))+"</i>"},51:function(l,n,e,a,o){return l.escapeExpression(l.lambda(n,n))},53:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:31,column:3},end:{line:31,column:13}}}):r)?t:"")+'" [shape=rect fixedsize=true label=" " style=filled class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:31,column:72},end:{line:31,column:83}}}):r)?t:"")+'" '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(54,o,0),inverse:l.program(56,o,0),data:o,loc:{start:{line:31,column:85},end:{line:31,column:187}}}))?t:"")+(null!=(t=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(38,o,0),inverse:l.noop,data:o,loc:{start:{line:31,column:187},end:{line:31,column:221}}}))?t:"")+(null!=(t=typeof(r=null!=(r=s(e,"sizingExtras")||(null!=n?s(n,"sizingExtras"):n))?r:u)==i?r.call(c,{name:"sizingExtras",hash:{},data:o,loc:{start:{line:31,column:221},end:{line:31,column:239}}}):r)?t:"")+"]\n"},54:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(t=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:u)==i?r.call(c,{name:"color",hash:{},data:o,loc:{start:{line:31,column:105},end:{line:31,column:116}}}):r)?t:"")+'" fillcolor="'+(null!=(t=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:u)==i?r.call(c,{name:"color",hash:{},data:o,loc:{start:{line:31,column:129},end:{line:31,column:140}}}):r)?t:"")+'"'},56:function(l,n,e,a,o){return'color="black" fillcolor="black"'},58:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:34,column:3},end:{line:34,column:13}}}):r)?t:"")+'" [shape=circle fixedsize=true height=0.15 label="" style=filled class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:34,column:85},end:{line:34,column:96}}}):r)?t:"")+'" '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(54,o,0),inverse:l.program(56,o,0),data:o,loc:{start:{line:34,column:98},end:{line:34,column:200}}}))?t:"")+(null!=(t=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(38,o,0),inverse:l.noop,data:o,loc:{start:{line:34,column:200},end:{line:34,column:234}}}))?t:"")+"]\n"},60:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:37,column:3},end:{line:37,column:13}}}):r)?t:"")+'" [label= <\n <table align="center" cellborder="0" border="0">\n <tr><td cellpadding="0"><font '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,o,0),inverse:l.program(14,o,0),data:o,loc:{start:{line:39,column:38},end:{line:39,column:100}}}))?t:"")+'point-size="20">X</font></td></tr>\n <tr><td cellpadding="0"><font '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(34,o,0),inverse:l.program(36,o,0),data:o,loc:{start:{line:40,column:38},end:{line:40,column:98}}}))?t:"")+">"+l.escapeExpression(typeof(r=null!=(r=s(e,"label")||(null!=n?s(n,"label"):n))?r:u)==i?r.call(c,{name:"label",hash:{},data:o,loc:{start:{line:40,column:99},end:{line:40,column:108}}}):r)+'</font></td></tr>\n </table>\n > class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:42,column:13},end:{line:42,column:24}}}):r)?t:"")+'"]\n'},62:function(l,n,e,a,o){var t,r,c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(t=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:o,loc:{start:{line:45,column:3},end:{line:45,column:13}}}):r)?t:"")+'" [shape=circle style=filled class="'+(null!=(t=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:o,loc:{start:{line:45,column:49},end:{line:45,column:60}}}):r)?t:"")+'" '+(null!=(t=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,o,0),inverse:l.program(7,o,0),data:o,loc:{start:{line:45,column:62},end:{line:45,column:166}}}))?t:"")+"fixedsize=true height=0.15 peripheries=2 "+(null!=(t=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,o,0),inverse:l.noop,data:o,loc:{start:{line:45,column:207},end:{line:45,column:241}}}))?t:"")+'label=""]\n'},64:function(l,n,e,a,o){var t=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,c="function",u=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},i=' subgraph "cluster_'+(null!=(p=typeof(s=null!=(s=u(e,"name")||(null!=n?u(n,"name"):n))?s:r)==c?s.call(t,{name:"name",hash:{},data:o,loc:{start:{line:48,column:20},end:{line:48,column:30}}}):s)?p:"")+'" {\n class="'+(null!=(p=typeof(s=null!=(s=u(e,"class")||(null!=n?u(n,"class"):n))?s:r)==c?s.call(t,{name:"class",hash:{},data:o,loc:{start:{line:49,column:11},end:{line:49,column:22}}}):s)?p:"")+'" '+(null!=(p=u(e,"if").call(t,null!=n?u(n,"color"):n,{name:"if",hash:{},fn:l.program(12,o,0),inverse:l.program(14,o,0),data:o,loc:{start:{line:49,column:24},end:{line:49,column:86}}}))?p:"")+'label= <\n <table cellborder="0" border="0">\n <tr><td>'+(null!=(p=u(e,"if").call(t,null!=n?u(n,"active"):n,{name:"if",hash:{},fn:l.program(22,o,0),inverse:l.program(24,o,0),data:o,loc:{start:{line:51,column:14},end:{line:51,column:68}}}))?p:"")+"</td></tr>\n",s=null!=(s=u(e,"actionStrings")||(null!=n?u(n,"actionStrings"):n))?s:r,m={name:"actionStrings",hash:{},fn:l.program(65,o,0),inverse:l.noop,data:o,loc:{start:{line:52,column:6},end:{line:55,column:24}}},p=typeof s==c?s.call(t,m):s;return null!=(p=u(e,"actionStrings")?p:l.hooks.blockHelperMissing.call(n,p,m))&&(i+=p),i+" </table>\n > "+(null!=(p=u(e,"if").call(t,null!=n?u(n,"parentIsParallel"):n,{name:"if",hash:{},fn:l.program(67,o,0),inverse:l.program(69,o,0),data:o,loc:{start:{line:57,column:6},end:{line:57,column:137}}}))?p:"")+'\n "'+(null!=(p=typeof(s=null!=(s=u(e,"name")||(null!=n?u(n,"name"):n))?s:r)==c?s.call(t,{name:"name",hash:{},data:o,loc:{start:{line:58,column:5},end:{line:58,column:15}}}):s)?p:"")+'" [shape=point style=invis margin=0 width=0 height=0 fixedsize=true]\n '+(null!=(p=(u(e,"stateSection")||n&&u(n,"stateSection")||r).call(t,null!=n?u(n,"statemachine"):n,{name:"stateSection",hash:{},fn:l.program(45,o,0),inverse:l.noop,data:o,loc:{start:{line:59,column:4},end:{line:59,column:51}}}))?p:"")+"\n }\n"},65:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(e=t(e,"if").call(null!=n?n:l.nullContext||{},o&&t(o,"first"),{name:"if",hash:{},fn:l.program(27,o,0),inverse:l.noop,data:o,loc:{start:{line:53,column:8},end:{line:53,column:35}}}))?e:"")+'<tr><td align="left">'+l.escapeExpression(l.lambda(n,n))+"</td></tr>\n"},67:function(l,n,e,a,o){return"style=dashed penwidth=1.0"},69:function(l,n,e,a,o){var t=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"style=rounded "+(null!=(e=t(e,"if").call(null!=n?n:l.nullContext||{},null!=n?t(n,"active"):n,{name:"if",hash:{},fn:l.program(70,o,0),inverse:l.program(72,o,0),data:o,loc:{start:{line:57,column:77},end:{line:57,column:130}}}))?e:"")},70:function(l,n,e,a,o){return"penwidth=3.0"},72:function(l,n,e,a,o){return"penwidth=2.0"},74:function(l,n,e,a,o,t,r){var c=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},u="",i=null!=(i=c(e,"noteName")||(null!=n?c(n,"noteName"):n))?i:l.hooks.helperMissing,t={name:"noteName",hash:{},fn:l.program(75,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:63,column:4},end:{line:66,column:17}}},r="function"==typeof i?i.call(null!=n?n:l.nullContext||{},t):i;return null!=(r=c(e,"noteName")?r:l.hooks.blockHelperMissing.call(n,r,t))&&(u+=r),u},75:function(l,n,e,a,o,t,r){var c,u=l.lambda,l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(c=u(n,n))?c:"")+'" [color=black fontcolor=black label="'+(null!=(c=u(null!=r[1]?l(r[1],"noteFlattened"):r[1],n))?c:"")+'" shape=note fontsize=10 fillcolor="#ffffcc" penwidth=1.0]\n "'+(null!=(c=u(null!=r[1]?l(r[1],"name"):r[1],n))?c:"")+'" -> "'+(null!=(c=u(n,n))?c:"")+'" [style=dashed arrowtail=none arrowhead=none]\n'},compiler:[8,">= 4.3.0"],main:function(l,n,e,a,o,t,r){var c=null!=n?n:l.nullContext||{},u=l.hooks.helperMissing,i="function",s=l.hooks.blockHelperMissing,m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},p="",f=null!=(f=m(e,"compositeStates")||(null!=n?m(n,"compositeStates"):n))?f:u,h={name:"compositeStates",hash:{},fn:l.program(1,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:1,column:0},end:{line:5,column:20}}},d=typeof f==i?f.call(c,h):f;return null!=(d=m(e,"compositeStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"initialStates")||(null!=n?m(n,"initialStates"):n))?f:u,h={name:"initialStates",hash:{},fn:l.program(4,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:18}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"initialStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"regularStates")||(null!=n?m(n,"regularStates"):n))?f:u,h={name:"regularStates",hash:{},fn:l.program(11,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:9,column:0},end:{line:19,column:18}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"regularStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"historyStates")||(null!=n?m(n,"historyStates"):n))?f:u,h={name:"historyStates",hash:{},fn:l.program(29,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:20,column:0},end:{line:22,column:18}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"historyStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"deepHistoryStates")||(null!=n?m(n,"deepHistoryStates"):n))?f:u,h={name:"deepHistoryStates",hash:{},fn:l.program(31,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:23,column:0},end:{line:25,column:22}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"deepHistoryStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"choiceStates")||(null!=n?m(n,"choiceStates"):n))?f:u,h={name:"choiceStates",hash:{},fn:l.program(33,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:26,column:0},end:{line:29,column:17}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"choiceStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"forkjoinStates")||(null!=n?m(n,"forkjoinStates"):n))?f:u,h={name:"forkjoinStates",hash:{},fn:l.program(53,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:30,column:0},end:{line:32,column:19}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"forkjoinStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"junctionStates")||(null!=n?m(n,"junctionStates"):n))?f:u,h={name:"junctionStates",hash:{},fn:l.program(58,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:33,column:0},end:{line:35,column:19}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"junctionStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"terminateStates")||(null!=n?m(n,"terminateStates"):n))?f:u,h={name:"terminateStates",hash:{},fn:l.program(60,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:36,column:0},end:{line:43,column:20}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"terminateStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"finalStates")||(null!=n?m(n,"finalStates"):n))?f:u,h={name:"finalStates",hash:{},fn:l.program(62,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:44,column:0},end:{line:46,column:16}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"finalStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"compositeStates")||(null!=n?m(n,"compositeStates"):n))?f:u,h={name:"compositeStates",hash:{},fn:l.program(64,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:47,column:0},end:{line:61,column:20}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"compositeStates")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(e,"states")||(null!=n?m(n,"states"):n))?f:u,h={name:"states",hash:{},fn:l.program(74,o,0,t,r),inverse:l.noop,data:o,loc:{start:{line:62,column:0},end:{line:67,column:11}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"states")?d:s.call(n,d,h))&&(p+=d),p},useData:!0,useDepths:!0});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var Handlebars=require("handlebars/dist/handlebars.runtime"),template=Handlebars.template,templates=Handlebars.templates=Handlebars.templates||{};templates["dot.template.hbs"]=template({1:function(l,n,o,e,t,a,r){var u=null!=n?n:l.nullContext||{},c=l.hooks.helperMissing,i="function",s=l.hooks.blockHelperMissing,m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},p="",f=null!=(f=m(o,"noteName")||(null!=n?m(n,"noteName"):n))?f:c,h={name:"noteName",hash:{},fn:l.noop,inverse:l.program(2,t,0,a,r),data:t,loc:{start:{line:9,column:2},end:{line:26,column:15}}},d=typeof f==i?f.call(u,h):f;return null!=(d=m(o,"noteName")?d:s.call(n,d,h))&&(p+=d),f=null!=(f=m(o,"noteName")||(null!=n?m(n,"noteName"):n))?f:c,h={name:"noteName",hash:{},fn:l.program(23,t,0,a,r),inverse:l.noop,data:t,loc:{start:{line:27,column:2},end:{line:37,column:15}}},d=typeof f==i?f.call(u,h):f,null!=(d=m(o,"noteName")?d:s.call(n,d,h))&&(p+=d),p},2:function(l,n,o,e,t){var a=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,u="function",c=l.hooks.blockHelperMissing,i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},s="",m=null!=(m=i(o,"isCompositeSelf")||(null!=n?i(n,"isCompositeSelf"):n))?m:r,p={name:"isCompositeSelf",hash:{},fn:l.noop,inverse:l.program(3,t,0),data:t,loc:{start:{line:10,column:4},end:{line:16,column:24}}},f=typeof m==u?m.call(a,p):m;return null!=(f=i(o,"isCompositeSelf")?f:c.call(n,f,p))&&(s+=f),m=null!=(m=i(o,"isCompositeSelf")||(null!=n?i(n,"isCompositeSelf"):n))?m:r,p={name:"isCompositeSelf",hash:{},fn:l.program(16,t,0),inverse:l.noop,data:t,loc:{start:{line:17,column:4},end:{line:25,column:24}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"isCompositeSelf")?f:c.call(n,f,p))&&(s+=f),s},3:function(l,n,o,e,t){var a=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,u="function",c=l.hooks.blockHelperMissing,i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},s=' "'+(null!=(f=typeof(m=null!=(m=i(o,"from")||(null!=n?i(n,"from"):n))?m:r)==u?m.call(a,{name:"from",hash:{},data:t,loc:{start:{line:11,column:5},end:{line:11,column:15}}}):m)?f:"")+'" -> "'+(null!=(f=typeof(m=null!=(m=i(o,"to")||(null!=n?i(n,"to"):n))?m:r)==u?m.call(a,{name:"to",hash:{},data:t,loc:{start:{line:11,column:21},end:{line:11,column:29}}}):m)?f:"")+'" [label="',m=null!=(m=i(o,"label")||(null!=n?i(n,"label"):n))?m:r,p={name:"label",hash:{},fn:l.noop,inverse:l.program(4,t,0),data:t,loc:{start:{line:11,column:39},end:{line:11,column:60}}},f=typeof m==u?m.call(a,p):m;return null!=(f=i(o,"label")?f:c.call(n,f,p))&&(s+=f),s+=(null!=(f=typeof(m=null!=(m=i(o,"label")||(null!=n?i(n,"label"):n))?m:r)==u?m.call(a,{name:"label",hash:{},data:t,loc:{start:{line:11,column:60},end:{line:11,column:71}}}):m)?f:"")+'"',m=null!=(m=i(o,"fromComposite")||(null!=n?i(n,"fromComposite"):n))?m:r,p={name:"fromComposite",hash:{},fn:l.program(6,t,0),inverse:l.noop,data:t,loc:{start:{line:12,column:28},end:{line:12,column:92}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"fromComposite")?f:c.call(n,f,p))&&(s+=f),m=null!=(m=i(o,"toComposite")||(null!=n?i(n,"toComposite"):n))?m:r,p={name:"toComposite",hash:{},fn:l.program(8,t,0),inverse:l.noop,data:t,loc:{start:{line:13,column:28},end:{line:13,column:86}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"toComposite")?f:c.call(n,f,p))&&(s+=f),s+=null!=(f=i(o,"if").call(a,null!=n?i(n,"color"):n,{name:"if",hash:{},fn:l.program(10,t,0),inverse:l.program(12,t,0),data:t,loc:{start:{line:14,column:28},end:{line:14,column:133}}}))?f:"",m=null!=(m=i(o,"width")||(null!=n?i(n,"width"):n))?m:r,p={name:"width",hash:{},fn:l.program(14,t,0),inverse:l.noop,data:t,loc:{start:{line:15,column:28},end:{line:15,column:68}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"width")?f:c.call(n,f,p))&&(s+=f),s+' class="'+(null!=(f=typeof(m=null!=(m=i(o,"class")||(null!=n?i(n,"class"):n))?m:r)==u?m.call(a,{name:"class",hash:{},data:t,loc:{start:{line:15,column:76},end:{line:15,column:87}}}):m)?f:"")+'"]\n'},4:function(l,n,o,e,t){return" "},6:function(l,n,o,e,t){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' ltail="cluster_'+(null!=(a="function"==typeof(o=null!=(o=a(o,"from")||(null!=n?a(n,"from"):n))?o:l.hooks.helperMissing)?o.call(null!=n?n:l.nullContext||{},{name:"from",hash:{},data:t,loc:{start:{line:12,column:63},end:{line:12,column:73}}}):o)?a:"")+'"'},8:function(l,n,o,e,t){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' lhead="cluster_'+(null!=(a="function"==typeof(o=null!=(o=a(o,"to")||(null!=n?a(n,"to"):n))?o:l.hooks.helperMissing)?o.call(null!=n?n:l.nullContext||{},{name:"to",hash:{},data:t,loc:{start:{line:13,column:61},end:{line:13,column:69}}}):o)?a:"")+'"'},10:function(l,n,o,e,t){var a,r,u=null!=n?n:l.nullContext||{},c=l.hooks.helperMissing,i="function",l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' color="'+(null!=(a=typeof(r=null!=(r=l(o,"color")||(null!=n?l(n,"color"):n))?r:c)==i?r.call(u,{name:"color",hash:{},data:t,loc:{start:{line:14,column:50},end:{line:14,column:61}}}):r)?a:"")+'" fontcolor="'+(null!=(a=typeof(r=null!=(r=l(o,"color")||(null!=n?l(n,"color"):n))?r:c)==i?r.call(u,{name:"color",hash:{},data:t,loc:{start:{line:14,column:74},end:{line:14,column:85}}}):r)?a:"")+'"'},12:function(l,n,o,e,t){return' color="black" fontcolor="black"'},14:function(l,n,o,e,t){return' penwidth="'+(null!=(l=l.lambda(n,n))?l:"")+'"'},16:function(l,n,o,e,t){var a=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,u="function",c=l.hooks.blockHelperMissing,i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},s=' "'+(null!=(f=typeof(m=null!=(m=i(o,"from")||(null!=n?i(n,"from"):n))?m:r)==u?m.call(a,{name:"from",hash:{},data:t,loc:{start:{line:18,column:7},end:{line:18,column:17}}}):m)?f:"")+'" -> "self_'+(null!=(f=typeof(m=null!=(m=i(o,"name")||(null!=n?i(n,"name"):n))?m:r)==u?m.call(a,{name:"name",hash:{},data:t,loc:{start:{line:18,column:28},end:{line:18,column:38}}}):m)?f:"")+'" [label="',m=null!=(m=i(o,"label")||(null!=n?i(n,"label"):n))?m:r,p={name:"label",hash:{},fn:l.noop,inverse:l.program(4,t,0),data:t,loc:{start:{line:18,column:48},end:{line:18,column:69}}},f=typeof m==u?m.call(a,p):m;return null!=(f=i(o,"label")?f:c.call(n,f,p))&&(s+=f),s+=(null!=(f=typeof(m=null!=(m=i(o,"label")||(null!=n?i(n,"label"):n))?m:r)==u?m.call(a,{name:"label",hash:{},data:t,loc:{start:{line:18,column:69},end:{line:18,column:80}}}):m)?f:"")+'" arrowhead=none',m=null!=(m=i(o,"tailportflags")||(null!=n?i(n,"tailportflags"):n))?m:r,p={name:"tailportflags",hash:{},fn:l.program(17,t,0),inverse:l.noop,data:t,loc:{start:{line:19,column:28},end:{line:19,column:73}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"tailportflags")?f:c.call(n,f,p))&&(s+=f),s+=' ltail="cluster_'+(null!=(f=typeof(m=null!=(m=i(o,"from")||(null!=n?i(n,"from"):n))?m:r)==u?m.call(a,{name:"from",hash:{},data:t,loc:{start:{line:19,column:89},end:{line:19,column:99}}}):m)?f:"")+'"'+(null!=(f=i(o,"if").call(a,null!=n?i(n,"color"):n,{name:"if",hash:{},fn:l.program(10,t,0),inverse:l.program(12,t,0),data:t,loc:{start:{line:20,column:28},end:{line:20,column:133}}}))?f:"")+' class="'+(null!=(f=typeof(m=null!=(m=i(o,"class")||(null!=n?i(n,"class"):n))?m:r)==u?m.call(a,{name:"class",hash:{},data:t,loc:{start:{line:20,column:141},end:{line:20,column:152}}}):m)?f:"")+'"]\n "self_'+(null!=(f=typeof(m=null!=(m=i(o,"name")||(null!=n?i(n,"name"):n))?m:r)==u?m.call(a,{name:"name",hash:{},data:t,loc:{start:{line:21,column:12},end:{line:21,column:22}}}):m)?f:"")+'" -> "'+(null!=(f=typeof(m=null!=(m=i(o,"from")||(null!=n?i(n,"from"):n))?m:r)==u?m.call(a,{name:"from",hash:{},data:t,loc:{start:{line:21,column:28},end:{line:21,column:38}}}):m)?f:"")+'" [lhead="cluster_'+(null!=(f=typeof(m=null!=(m=i(o,"from")||(null!=n?i(n,"from"):n))?m:r)==u?m.call(a,{name:"from",hash:{},data:t,loc:{start:{line:21,column:56},end:{line:21,column:66}}}):m)?f:"")+'"',m=null!=(m=i(o,"headportflags")||(null!=n?i(n,"headportflags"):n))?m:r,p={name:"headportflags",hash:{},fn:l.program(17,t,0),inverse:l.noop,data:t,loc:{start:{line:22,column:28},end:{line:22,column:73}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"headportflags")?f:c.call(n,f,p))&&(s+=f),s+=null!=(f=i(o,"if").call(a,null!=n?i(n,"color"):n,{name:"if",hash:{},fn:l.program(19,t,0),inverse:l.program(21,t,0),data:t,loc:{start:{line:23,column:28},end:{line:23,column:91}}}))?f:"",m=null!=(m=i(o,"width")||(null!=n?i(n,"width"):n))?m:r,p={name:"width",hash:{},fn:l.program(14,t,0),inverse:l.noop,data:t,loc:{start:{line:24,column:28},end:{line:24,column:68}}},f=typeof m==u?m.call(a,p):m,null!=(f=i(o,"width")?f:c.call(n,f,p))&&(s+=f),s+' class="'+(null!=(f=typeof(m=null!=(m=i(o,"class")||(null!=n?i(n,"class"):n))?m:r)==u?m.call(a,{name:"class",hash:{},data:t,loc:{start:{line:24,column:76},end:{line:24,column:87}}}):m)?f:"")+'"]\n'},17:function(l,n,o,e,t){return" "+(null!=(l=l.lambda(n,n))?l:"")},19:function(l,n,o,e,t){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' color="'+(null!=(a="function"==typeof(o=null!=(o=a(o,"color")||(null!=n?a(n,"color"):n))?o:l.hooks.helperMissing)?o.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:t,loc:{start:{line:23,column:50},end:{line:23,column:61}}}):o)?a:"")+'"'},21:function(l,n,o,e,t){return' color="black"'},23:function(l,n,o,e,t,a,r){var u,c=l.lambda,i=l.hooks.blockHelperMissing,s=null!=n?n:l.nullContext||{},m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "i_'+(null!=(u=c(n,n))?u:"")+'" [shape=point style=invis margin=0 width=0 height=0 fixedsize=true]\n "'+(null!=(u=c(null!=r[1]?m(r[1],"from"):r[1],n))?u:"")+'" -> "i_'+(null!=(u=c(n,n))?u:"")+'" [arrowhead=none'+(null!=(u=i.call(n,c(null!=r[1]?m(r[1],"fromComposite"):r[1],n),{name:"../fromComposite",hash:{},fn:l.program(24,t,0,a,r),inverse:l.noop,data:t,loc:{start:{line:30,column:32},end:{line:30,column:105}}}))?u:"")+(null!=(u=m(o,"if").call(s,null!=r[1]?m(r[1],"color"):r[1],{name:"if",hash:{},fn:l.program(26,t,0,a,r),inverse:l.program(21,t,0,a,r),data:t,loc:{start:{line:31,column:32},end:{line:31,column:101}}}))?u:"")+']\n "i_'+(null!=(u=c(n,n))?u:"")+'" -> "'+(null!=(u=c(null!=r[1]?m(r[1],"to"):r[1],n))?u:"")+'" [label="'+(null!=(u=i.call(n,c(null!=r[1]?m(r[1],"label"):r[1],n),{name:"../label",hash:{},fn:l.noop,inverse:l.program(4,t,0,a,r),data:t,loc:{start:{line:32,column:43},end:{line:32,column:70}}}))?u:"")+(null!=(u=c(null!=r[1]?m(r[1],"label"):r[1],n))?u:"")+'"'+(null!=(u=i.call(n,c(null!=r[1]?m(r[1],"toComposite"):r[1],n),{name:"../toComposite",hash:{},fn:l.program(28,t,0,a,r),inverse:l.noop,data:t,loc:{start:{line:33,column:32},end:{line:33,column:99}}}))?u:"")+(null!=(u=m(o,"if").call(s,null!=r[1]?m(r[1],"color"):r[1],{name:"if",hash:{},fn:l.program(30,t,0,a,r),inverse:l.program(12,t,0,a,r),data:t,loc:{start:{line:34,column:32},end:{line:34,column:146}}}))?u:"")+']\n "i_'+(null!=(u=c(n,n))?u:"")+'" -> "'+(null!=(u=c(n,n))?u:"")+'" [style=dashed arrowtail=none arrowhead=none weight=0]\n "'+(null!=(u=c(n,n))?u:"")+'" [label="'+(null!=(u=c(null!=r[1]?m(r[1],"noteFlattened"):r[1],n))?u:"")+'" shape=note fontsize=10 color=black fontcolor=black fillcolor="#ffffcc" penwidth=1.0]\n'},24:function(l,n,o,e,t,a,r){var u=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' ltail="cluster_'+(null!=(l=l.lambda(null!=r[1]?u(r[1],"from"):r[1],n))?l:"")+'"'},26:function(l,n,o,e,t,a,r){var u=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' color="'+(null!=(l=l.lambda(null!=r[1]?u(r[1],"color"):r[1],n))?l:"")+'"'},28:function(l,n,o,e,t,a,r){var u=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' lhead="cluster_'+(null!=(l=l.lambda(null!=r[1]?u(r[1],"to"):r[1],n))?l:"")+'"'},30:function(l,n,o,e,t,a,r){var u,c=l.lambda,l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' color="'+(null!=(u=c(null!=r[1]?l(r[1],"color"):r[1],n))?u:"")+'" fontcolor="'+(null!=(u=c(null!=r[1]?l(r[1],"color"):r[1],n))?u:"")+'"'},compiler:[8,">= 4.3.0"],main:function(l,n,o,e,t,a,r){var u=null!=n?n:l.nullContext||{},c=l.hooks.helperMissing,i="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},e='digraph "state transitions" {\n '+(null!=(p=typeof(m=null!=(m=s(o,"graphAttributes")||(null!=n?s(n,"graphAttributes"):n))?m:c)==i?m.call(u,{name:"graphAttributes",hash:{},data:t,loc:{start:{line:2,column:2},end:{line:2,column:23}}}):m)?p:"")+"\n node ["+(null!=(p=typeof(m=null!=(m=s(o,"nodeAttributes")||(null!=n?s(n,"nodeAttributes"):n))?m:c)==i?m.call(u,{name:"nodeAttributes",hash:{},data:t,loc:{start:{line:3,column:8},end:{line:3,column:28}}}):m)?p:"")+"]\n edge ["+(null!=(p=typeof(m=null!=(m=s(o,"edgeAttributes")||(null!=n?s(n,"edgeAttributes"):n))?m:c)==i?m.call(u,{name:"edgeAttributes",hash:{},data:t,loc:{start:{line:4,column:8},end:{line:4,column:28}}}):m)?p:"")+"]\n\n"+(null!=(p=l.invokePartial(s(e,"dot.states.template.hbs"),n,{name:"dot.states.template.hbs",data:t,indent:" ",helpers:o,partials:e,decorators:l.decorators}))?p:"")+"\n",m=null!=(m=s(o,"transitions")||(null!=n?s(n,"transitions"):n))?m:c,c={name:"transitions",hash:{},fn:l.program(1,t,0,a,r),inverse:l.noop,data:t,loc:{start:{line:8,column:2},end:{line:38,column:18}}},p=typeof m==i?m.call(u,c):m;return null!=(p=s(o,"transitions")?p:l.hooks.blockHelperMissing.call(n,p,c))&&(e+=p),e+"}\n"},usePartial:!0,useData:!0,useDepths:!0});
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import Handlebars from "handlebars/dist/handlebars.runtime.js";
|
|
2
|
-
await import("./dot.template.cjs");
|
|
3
|
-
await import("./dot.states.template.cjs");
|
|
4
|
-
Handlebars.registerPartial(
|
|
5
|
-
"dot.states.template.hbs",
|
|
6
|
-
Handlebars.templates["dot.states.template.hbs"],
|
|
7
|
-
);
|
|
8
|
-
Handlebars.registerHelper("stateSection", (pStateMachine) =>
|
|
9
|
-
Handlebars.templates["dot.states.template.hbs"](splitStates(pStateMachine)),
|
|
10
|
-
);
|
|
11
|
-
function isType(pString) {
|
|
12
|
-
return (pState) => pState.type === pString;
|
|
13
|
-
}
|
|
14
|
-
function isOneOfTypes(pStringArray) {
|
|
15
|
-
return (pState) => pStringArray.includes(pState.type);
|
|
16
|
-
}
|
|
17
|
-
function splitStates(pStateMachine) {
|
|
18
|
-
pStateMachine.initialStates = pStateMachine.states.filter(isType("initial"));
|
|
19
|
-
pStateMachine.regularStates = pStateMachine.states.filter(
|
|
20
|
-
(pState) => isType("regular")(pState) && !pState.statemachine,
|
|
21
|
-
);
|
|
22
|
-
pStateMachine.historyStates = pStateMachine.states.filter(isType("history"));
|
|
23
|
-
pStateMachine.deepHistoryStates = pStateMachine.states.filter(
|
|
24
|
-
isType("deephistory"),
|
|
25
|
-
);
|
|
26
|
-
pStateMachine.choiceStates = pStateMachine.states.filter(isType("choice"));
|
|
27
|
-
pStateMachine.forkjoinStates = pStateMachine.states.filter(
|
|
28
|
-
isOneOfTypes(["fork", "join", "forkjoin"]),
|
|
29
|
-
);
|
|
30
|
-
pStateMachine.junctionStates = pStateMachine.states.filter(
|
|
31
|
-
isType("junction"),
|
|
32
|
-
);
|
|
33
|
-
pStateMachine.terminateStates = pStateMachine.states.filter(
|
|
34
|
-
isType("terminate"),
|
|
35
|
-
);
|
|
36
|
-
pStateMachine.finalStates = pStateMachine.states.filter(isType("final"));
|
|
37
|
-
pStateMachine.compositeStates = pStateMachine.states.filter(
|
|
38
|
-
(pState) => pState.statemachine,
|
|
39
|
-
);
|
|
40
|
-
return pStateMachine;
|
|
41
|
-
}
|
|
42
|
-
export default function renderDotFromAST(pStateMachine) {
|
|
43
|
-
return Handlebars.templates["dot.template.hbs"](pStateMachine);
|
|
44
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import utl from "./utl.mjs";
|
|
2
|
-
function isType(pString) {
|
|
3
|
-
return (pState) => pState.type === pString;
|
|
4
|
-
}
|
|
5
|
-
function isOneOfTypes(pStringArray) {
|
|
6
|
-
return (pState) => pStringArray.includes(pState.type);
|
|
7
|
-
}
|
|
8
|
-
function setLabel(pState) {
|
|
9
|
-
const lState = structuredClone(pState);
|
|
10
|
-
lState.label = pState.label ?? pState.name;
|
|
11
|
-
return lState;
|
|
12
|
-
}
|
|
13
|
-
function nameNote(pState) {
|
|
14
|
-
if (pState.note) {
|
|
15
|
-
return {
|
|
16
|
-
noteName: `note_${pState.name}`,
|
|
17
|
-
...pState,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return pState;
|
|
21
|
-
}
|
|
22
|
-
function classifyState(pState) {
|
|
23
|
-
const lState = { ...pState };
|
|
24
|
-
const lClasses = ["state", pState.type];
|
|
25
|
-
if (pState.class) {
|
|
26
|
-
lClasses.push(pState.class.trim().replace(/[ ]{2,}/g, " "));
|
|
27
|
-
}
|
|
28
|
-
lState.class = lClasses.join(" ");
|
|
29
|
-
return lState;
|
|
30
|
-
}
|
|
31
|
-
function formatActionType(pString) {
|
|
32
|
-
return pString === "activity" ? "" : `${pString}/ `;
|
|
33
|
-
}
|
|
34
|
-
function flattenActions(pState) {
|
|
35
|
-
if (pState.actions) {
|
|
36
|
-
return {
|
|
37
|
-
...pState,
|
|
38
|
-
actionStrings: pState.actions.map(
|
|
39
|
-
(pAction) => `${formatActionType(pAction.type)}${pAction.body}`,
|
|
40
|
-
),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
return pState;
|
|
44
|
-
}
|
|
45
|
-
function flattenNote(pState) {
|
|
46
|
-
if (pState.note) {
|
|
47
|
-
return {
|
|
48
|
-
...pState,
|
|
49
|
-
noteFlattened: pState.note.join(""),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return pState;
|
|
53
|
-
}
|
|
54
|
-
function recolor(pNodeAttributes) {
|
|
55
|
-
return (pState) => {
|
|
56
|
-
const lNodeColor = (pNodeAttributes || []).find(
|
|
57
|
-
(pAttribute) => pAttribute.name === "color",
|
|
58
|
-
)?.value;
|
|
59
|
-
if (
|
|
60
|
-
lNodeColor &&
|
|
61
|
-
!pState.color &&
|
|
62
|
-
isOneOfTypes([
|
|
63
|
-
"initial",
|
|
64
|
-
"fork",
|
|
65
|
-
"join",
|
|
66
|
-
"junction",
|
|
67
|
-
"forkjoin",
|
|
68
|
-
"final",
|
|
69
|
-
])(pState)
|
|
70
|
-
) {
|
|
71
|
-
pState.color = lNodeColor;
|
|
72
|
-
}
|
|
73
|
-
return pState;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
function escapeStateStrings(pState) {
|
|
77
|
-
if (pState.note) {
|
|
78
|
-
return {
|
|
79
|
-
...pState,
|
|
80
|
-
note: pState.note.map(utl.escapeString),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return pState;
|
|
84
|
-
}
|
|
85
|
-
function tipForkJoinStates(pDirection) {
|
|
86
|
-
return (pState) => {
|
|
87
|
-
if (isOneOfTypes(["fork", "join", "forkjoin"])(pState)) {
|
|
88
|
-
return {
|
|
89
|
-
sizingExtras: utl.isVertical(pDirection) ? " height=0.1" : " width=0.1",
|
|
90
|
-
...pState,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
return pState;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
function flagParallelChildren(pState) {
|
|
97
|
-
if (pState.type === "parallel" && pState.statemachine?.states) {
|
|
98
|
-
pState.statemachine.states = pState.statemachine.states.map(
|
|
99
|
-
(pChildState) =>
|
|
100
|
-
isType("regular")(pChildState)
|
|
101
|
-
? { ...pChildState, parentIsParallel: true }
|
|
102
|
-
: pChildState,
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
return pState;
|
|
106
|
-
}
|
|
107
|
-
export default {
|
|
108
|
-
isType,
|
|
109
|
-
isOneOfTypes,
|
|
110
|
-
setLabel,
|
|
111
|
-
classifyState,
|
|
112
|
-
nameNote,
|
|
113
|
-
flattenActions,
|
|
114
|
-
flattenNote,
|
|
115
|
-
recolor,
|
|
116
|
-
escapeStateStrings,
|
|
117
|
-
tipForkJoinStates,
|
|
118
|
-
flagParallelChildren,
|
|
119
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import utl from "./utl.mjs";
|
|
2
|
-
function escapeTransitionStrings(pTransition) {
|
|
3
|
-
const lTransition = { ...pTransition };
|
|
4
|
-
if (lTransition.note) {
|
|
5
|
-
lTransition.note = lTransition.note.map(utl.escapeString);
|
|
6
|
-
}
|
|
7
|
-
lTransition.label = utl.escapeLabelString(lTransition.label ?? " ");
|
|
8
|
-
return lTransition;
|
|
9
|
-
}
|
|
10
|
-
function addPorts(pDirection) {
|
|
11
|
-
return (pTransition) => {
|
|
12
|
-
let lAdditionalAttributes = {};
|
|
13
|
-
if (pTransition.isCompositeSelf) {
|
|
14
|
-
if (utl.isVertical(pDirection)) {
|
|
15
|
-
lAdditionalAttributes = {
|
|
16
|
-
tailportflags: `tailport="e" headport="e"`,
|
|
17
|
-
headportflags: `tailport="w"`,
|
|
18
|
-
};
|
|
19
|
-
} else if (pTransition.hasParent) {
|
|
20
|
-
lAdditionalAttributes = {
|
|
21
|
-
tailportflags: `tailport="n" headport="n"`,
|
|
22
|
-
headportflags: `tailport="s"`,
|
|
23
|
-
};
|
|
24
|
-
} else {
|
|
25
|
-
lAdditionalAttributes = {
|
|
26
|
-
tailportflags: `tailport="s" headport="s"`,
|
|
27
|
-
headportflags: `tailport="n"`,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return { ...pTransition, ...lAdditionalAttributes };
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function classifyTransition(pTransition) {
|
|
35
|
-
const lClasses = ["transition"];
|
|
36
|
-
if (pTransition.type) {
|
|
37
|
-
lClasses.push(pTransition.type);
|
|
38
|
-
}
|
|
39
|
-
if (pTransition.class) {
|
|
40
|
-
lClasses.push(pTransition.class.trim().replace(/[ ]{2,}/g, " "));
|
|
41
|
-
}
|
|
42
|
-
pTransition.class = lClasses.join(" ");
|
|
43
|
-
return pTransition;
|
|
44
|
-
}
|
|
45
|
-
export default { escapeTransitionStrings, addPorts, classifyTransition };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
const GENERIC_GRAPH_ATTRIBUTES = [
|
|
2
|
-
{ name: "fontname", value: '"Helvetica"' },
|
|
3
|
-
{ name: "fontsize", value: "12" },
|
|
4
|
-
{ name: "penwidth", value: "2.0" },
|
|
5
|
-
];
|
|
6
|
-
const GRAPH_ATTRIBUTES = {
|
|
7
|
-
dot: [
|
|
8
|
-
{ name: "splines", value: "true" },
|
|
9
|
-
{ name: "ordering", value: "out" },
|
|
10
|
-
{ name: "compound", value: "true" },
|
|
11
|
-
{ name: "overlap", value: "scale" },
|
|
12
|
-
{ name: "nodesep", value: "0.3" },
|
|
13
|
-
{ name: "ranksep", value: "0.1" },
|
|
14
|
-
],
|
|
15
|
-
fdp: [{ name: "K", value: "0.9" }],
|
|
16
|
-
osage: [{ name: "pack", value: "42" }],
|
|
17
|
-
neato: [{ name: "epsilon", value: "0.9" }],
|
|
18
|
-
};
|
|
19
|
-
const DIRECTION_ATTRIBUTES = {
|
|
20
|
-
"bottom-top": [{ name: "rankdir", value: "BT" }],
|
|
21
|
-
"left-right": [{ name: "rankdir", value: "LR" }],
|
|
22
|
-
"right-left": [{ name: "rankdir", value: "RL" }],
|
|
23
|
-
};
|
|
24
|
-
const NODE_ATTRIBUTES = [
|
|
25
|
-
{ name: "shape", value: "plaintext" },
|
|
26
|
-
{ name: "style", value: "filled" },
|
|
27
|
-
{ name: "fillcolor", value: '"#FFFFFF01"' },
|
|
28
|
-
{ name: "fontname", value: "Helvetica" },
|
|
29
|
-
{ name: "fontsize", value: 12 },
|
|
30
|
-
{ name: "penwidth", value: "2.0" },
|
|
31
|
-
];
|
|
32
|
-
const EDGE_ATTRIBUTES = [
|
|
33
|
-
{ name: "fontname", value: "Helvetica" },
|
|
34
|
-
{ name: "fontsize", value: 10 },
|
|
35
|
-
];
|
|
36
|
-
function toNameValueString(pAttribute) {
|
|
37
|
-
return `${pAttribute.name}=${pAttribute.value}`;
|
|
38
|
-
}
|
|
39
|
-
export function buildGraphAttributes(pEngine, pDirection, pDotGraphAttributes) {
|
|
40
|
-
return GENERIC_GRAPH_ATTRIBUTES.concat(GRAPH_ATTRIBUTES[pEngine] || [])
|
|
41
|
-
.concat(DIRECTION_ATTRIBUTES[pDirection] || [])
|
|
42
|
-
.concat(pDotGraphAttributes || [])
|
|
43
|
-
.map(toNameValueString)
|
|
44
|
-
.join(" ");
|
|
45
|
-
}
|
|
46
|
-
export function buildNodeAttributes(pDotNodeAttributes) {
|
|
47
|
-
return NODE_ATTRIBUTES.concat(pDotNodeAttributes || [])
|
|
48
|
-
.map(toNameValueString)
|
|
49
|
-
.join(" ");
|
|
50
|
-
}
|
|
51
|
-
export function buildEdgeAttributes(pDotEdgeAttributes) {
|
|
52
|
-
return EDGE_ATTRIBUTES.concat(pDotEdgeAttributes || [])
|
|
53
|
-
.map(toNameValueString)
|
|
54
|
-
.join(" ");
|
|
55
|
-
}
|
|
56
|
-
export default {
|
|
57
|
-
buildGraphAttributes,
|
|
58
|
-
buildNodeAttributes,
|
|
59
|
-
buildEdgeAttributes,
|
|
60
|
-
};
|