state-machine-cat 12.0.17 → 12.0.18

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.
@@ -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
- };
@@ -1,243 +0,0 @@
1
- import he from "he";
2
- import { getOptionValue } from "../../options.mjs";
3
- import StateMachineModel from "../../state-machine-model.mjs";
4
- import {
5
- buildGraphAttributes,
6
- buildNodeAttributes,
7
- buildEdgeAttributes,
8
- } from "./attributebuilder.mjs";
9
- import {
10
- escapeLabelString,
11
- formatActionType,
12
- getTransitionPorts,
13
- isCompositeSelf,
14
- isVertical,
15
- noteToLabel,
16
- normalizeState,
17
- stateNote,
18
- } from "./utl.mjs";
19
- function initial(pState, pIndent) {
20
- const lActiveAttribute = pState.active ? " penwidth=3.0" : "";
21
- return `${pIndent} "${pState.name}" [shape=circle style=filled class="${pState.class}" color="${pState.color}" fillcolor="${pState.color}" fixedsize=true height=0.15 label=""${lActiveAttribute}]${pState.noteText}`;
22
- }
23
- function regularStateActions(pActions, pIndent) {
24
- return pActions
25
- .map((pAction) =>
26
- he.escape(`${formatActionType(pAction.type)}${pAction.body}`),
27
- )
28
- .map((pActionString, pIndex) => {
29
- let lReturnValue = `<tr><td align="left" cellpadding="2">${pActionString}</td></tr>`;
30
- if (pIndex === 0) {
31
- lReturnValue = `<hr/>${lReturnValue}`;
32
- }
33
- return `\n${pIndent} ${lReturnValue}`;
34
- })
35
- .join("");
36
- }
37
- function compositeStateActions(pActions, pIndent) {
38
- return pActions
39
- .map((pAction) =>
40
- he.escape(`${formatActionType(pAction.type)}${pAction.body}`),
41
- )
42
- .map((pActionString, pIndex) => {
43
- let lReturnValue = `<tr><td align="left">${pActionString}</td></tr>`;
44
- if (pIndex === 0) {
45
- lReturnValue = `<hr/>${lReturnValue}`;
46
- }
47
- return `\n${pIndent} ${lReturnValue}`;
48
- })
49
- .join("");
50
- }
51
- function atomicRegular(pState, pIndent) {
52
- const lActiveAttribute = pState.active ? " peripheries=2 penwidth=3.0" : "";
53
- const lCellPadding = (pState.actions?.length ?? 0) > 0 ? 2 : 7;
54
- const lActions = regularStateActions(pState?.actions ?? [], pIndent);
55
- const lLabel = pState.active ? `<i>${pState.label}</i>` : pState.label;
56
- const lLabelTag = `
57
- ${pIndent} <table align="center" cellborder="0" border="2" style="rounded" width="48">
58
- ${pIndent} <tr><td width="48" cellpadding="${lCellPadding}">${lLabel}</td></tr>${lActions}
59
- ${pIndent} </table>`;
60
- return `${pIndent} "${pState.name}" [margin=0 class="${pState.class}" color="${pState.color}"${lActiveAttribute} label= <${lLabelTag}
61
- ${pIndent} >]${pState.noteText}`;
62
- }
63
- function compositeRegular(pState, pIndent, pOptions, pModel) {
64
- const lPenWidth = pState.isParallelArea
65
- ? "1.0"
66
- : pState.active
67
- ? "3.0"
68
- : "2.0";
69
- const lStyle = pState.isParallelArea ? "dashed" : "rounded";
70
- const lActions = compositeStateActions(pState?.actions ?? [], pIndent);
71
- const lLabel = pState.active ? `<i>${pState.label}</i>` : pState.label;
72
- const lLabelTag = `${pIndent} <table cellborder="0" border="0">
73
- ${pIndent} <tr><td>${lLabel}</td></tr>${lActions}
74
- ${pIndent} </table>`;
75
- const lSelfTransitionHelperPoints = pModel
76
- .findExternalSelfTransitions(pState.name)
77
- .map(
78
- (pTransition) =>
79
- `${pIndent} "self_tr_${pTransition.from}_${pTransition.to}_${pTransition.id}" [shape=point style=invis width=0 height=0 fixedsize=true]\n`,
80
- )
81
- .join("");
82
- return `${lSelfTransitionHelperPoints}${pIndent} subgraph "cluster_${pState.name}" {
83
- ${pIndent} class="${pState.class}" color="${pState.color}" label= <
84
- ${lLabelTag}
85
- ${pIndent} > style=${lStyle} penwidth=${lPenWidth}
86
- ${pIndent} "${pState.name}" [shape=point style=invis margin=0 width=0 height=0 fixedsize=true]
87
- ${machine(pState.statemachine ?? { states: [] }, `${pIndent} `, pOptions, pModel)}
88
- ${pIndent} }${pState.noteText}`;
89
- }
90
- function regular(pState, pIndent, pOptions, pModel) {
91
- if (pState.statemachine) {
92
- return compositeRegular(pState, pIndent, pOptions, pModel);
93
- }
94
- return atomicRegular(pState, pIndent);
95
- }
96
- function history(pState, pIndent) {
97
- const lActiveAttribute = pState.active ? " peripheries=2 penwidth=3.0" : "";
98
- return `${pIndent} "${pState.name}" [shape=circle class="${pState.class}" color="${pState.color}" label="H"${lActiveAttribute}]${pState.noteText}`;
99
- }
100
- function deepHistory(pState, pIndent) {
101
- const lActiveAttribute = pState.active ? " peripheries=2 penwidth=3.0" : "";
102
- return `${pIndent} "${pState.name}" [shape=circle class="${pState.class}" color="${pState.color}" label="H*"${lActiveAttribute}]${pState.noteText}`;
103
- }
104
- function choiceActions(pActions, pActive) {
105
- return pActions
106
- .map((pAction) => {
107
- let lReturnValue = he.escape(
108
- `${formatActionType(pAction.type)}${pAction.body}`,
109
- );
110
- if (pActive) {
111
- lReturnValue = `<i>${lReturnValue}</i>`;
112
- }
113
- return lReturnValue;
114
- })
115
- .join("\\n");
116
- }
117
- function choice(pState, pIndent) {
118
- const lActiveAttribute = pState.active ? "penwidth=3.0 " : "";
119
- const lActions = choiceActions(
120
- pState?.actions ?? [],
121
- pState?.active ?? false,
122
- );
123
- const lLabelTag = lActions;
124
- const lDiamond = `${pIndent} "${pState.name}" [shape=diamond fixedsize=true width=0.35 height=0.35 fontsize=10 label=" " class="${pState.class}" color="${pState.color}"${lActiveAttribute}]`;
125
- const lLabelConstruct = `${pIndent} "${pState.name}" -> "${pState.name}" [color="#FFFFFF01" fontcolor="${pState.color}" class="${pState.class}" label=<${lLabelTag}>]`;
126
- return `${lDiamond}\n${lLabelConstruct}${pState.noteText}`;
127
- }
128
- function forkjoin(pState, pIndent, pOptions) {
129
- const lActiveAttribute = pState.active ? "penwidth=3.0 " : "";
130
- const lDirection = getOptionValue(pOptions, "direction");
131
- const lSizingExtras = isVertical(lDirection) ? " height=0.1" : " width=0.1";
132
- return `${pIndent} "${pState.name}" [shape=rect fixedsize=true label=" " style=filled class="${pState.class}" color="${pState.color}" fillcolor="${pState.color}"${lActiveAttribute}${lSizingExtras}]${pState.noteText}`;
133
- }
134
- function junction(pState, pIndent) {
135
- const lActiveAttribute = pState.active ? " penwidth=3.0" : "";
136
- const lNote = stateNote(pState, pIndent);
137
- return `${pIndent} "${pState.name}" [shape=circle fixedsize=true height=0.15 label="" style=filled class="${pState.class}" color="${pState.color}" fillcolor="${pState.color}"${lActiveAttribute}]${lNote}`;
138
- }
139
- function terminate(pState, pIndent) {
140
- const lLabelTag = `
141
- ${pIndent} <table align="center" cellborder="0" border="0">
142
- ${pIndent} <tr><td cellpadding="0"><font color="${pState.color}" point-size="20">X</font></td></tr>
143
- ${pIndent} <tr><td cellpadding="0"><font color="${pState.color}">${pState.label}</font></td></tr>
144
- ${pIndent} </table>`;
145
- return `${pIndent} "${pState.name}" [label= <${lLabelTag}
146
- ${pIndent} > class="${pState.class}"]${pState.noteText}`;
147
- }
148
- function final(pState, pIndent) {
149
- const lActiveAttribute = pState.active ? " peripheries=2 penwidth=3.0" : "";
150
- return `${pIndent} "${pState.name}" [shape=circle style=filled class="${pState.class}" color="${pState.color}" fillcolor="${pState.color}" fixedsize=true height=0.15 peripheries=2 label=""${lActiveAttribute}]${pState.noteText}`;
151
- }
152
- const STATE_TYPE2FUNCTION = new Map([
153
- ["initial", initial],
154
- ["regular", regular],
155
- ["history", history],
156
- ["deephistory", deepHistory],
157
- ["choice", choice],
158
- ["fork", forkjoin],
159
- ["forkjoin", forkjoin],
160
- ["join", forkjoin],
161
- ["junction", junction],
162
- ["terminate", terminate],
163
- ["final", final],
164
- ]);
165
- function state(pState, pIndent, pOptions, pModel) {
166
- const lState = normalizeState(pState, pIndent);
167
- return (
168
- (STATE_TYPE2FUNCTION.get(pState.type) ?? regular)(
169
- lState,
170
- pIndent,
171
- pOptions,
172
- pModel,
173
- ) + "\n"
174
- );
175
- }
176
- function states(pStates, pIndent, pOptions, pModel) {
177
- return pStates
178
- .map((pState) => state(pState, pIndent, pOptions, pModel))
179
- .join("");
180
- }
181
- function transition(pTransition, pIndent, pOptions, pModel) {
182
- const lLabel = `${escapeLabelString(pTransition.label ?? " ")}`;
183
- const lColor = pTransition.color ?? "black";
184
- const lPenWidth = pTransition.width ? ` penwidth=${pTransition.width}` : "";
185
- const lClass = pTransition.class
186
- ? `transition${pTransition.type ? " " + pTransition.type + " " : " "}${pTransition.class}`
187
- : `transition${pTransition.type ? " " + pTransition.type : ""}`;
188
- const lTail = pModel.findStateByName(pTransition.from)?.statemachine
189
- ? `ltail="cluster_${pTransition.from}" `
190
- : "";
191
- const lHead = pModel.findStateByName(pTransition.to)?.statemachine
192
- ? `lhead="cluster_${pTransition.to}" `
193
- : "";
194
- const lTransitionName = `tr_${pTransition.from}_${pTransition.to}_${pTransition.id}`;
195
- if (pTransition.note) {
196
- const lNoteName = `note_${lTransitionName}`;
197
- const lNoteNodeName = `i_${lNoteName}`;
198
- const lNoteNode = `\n${pIndent} "${lNoteNodeName}" [shape=point style=invis margin=0 width=0 height=0 fixedsize=true]`;
199
- const lTransitionFrom = `\n${pIndent} "${pTransition.from}" -> "${lNoteNodeName}" [arrowhead=none ${lTail}color="${lColor}"]`;
200
- const lTransitionTo = `\n${pIndent} "${lNoteNodeName}" -> "${pTransition.to}" [label="${lLabel}" ${lHead}color="${lColor}" fontcolor="${lColor}"]`;
201
- const lLineToNote = `\n${pIndent} "${lNoteNodeName}" -> "${lNoteName}" [style=dashed arrowtail=none arrowhead=none weight=0]`;
202
- const lNote = `\n${pIndent} "${lNoteName}" [label="${noteToLabel(pTransition.note)}" shape=note fontsize=10 color=black fontcolor=black fillcolor="#ffffcc" penwidth=1.0]`;
203
- return lNoteNode + lTransitionFrom + lTransitionTo + lLineToNote + lNote;
204
- }
205
- if (isCompositeSelf(pModel, pTransition)) {
206
- const { lTailPorts, lHeadPorts } = getTransitionPorts(
207
- pOptions,
208
- pModel,
209
- pTransition,
210
- );
211
- const lTransitionFrom = `\n${pIndent} "${pTransition.from}" -> "self_tr_${pTransition.from}_${pTransition.to}_${pTransition.id}" [label="${lLabel}" arrowhead=none ${lTailPorts}${lTail}color="${lColor}" fontcolor="${lColor}" class="${lClass}"]`;
212
- const lTransitionTo = `\n${pIndent} "self_tr_${pTransition.from}_${pTransition.to}_${pTransition.id}" -> "${pTransition.to}" [${lHead}${lHeadPorts}color="${lColor}" ${lPenWidth}class="${lClass}"]`;
213
- return lTransitionFrom + lTransitionTo;
214
- }
215
- return `\n${pIndent} "${pTransition.from}" -> "${pTransition.to}" [label="${lLabel}" ${lTail}${lHead}color="${lColor}" fontcolor="${lColor}"${lPenWidth} class="${lClass}"]`;
216
- }
217
- function transitions(pTransitions, pIndent, pOptions, pModel) {
218
- return pTransitions
219
- .map((pTransition) => transition(pTransition, pIndent, pOptions, pModel))
220
- .join("");
221
- }
222
- function machine(pStateMachine, pIndent, pOptions, pModel) {
223
- return `${states(pStateMachine.states, pIndent, pOptions, pModel)}${transitions(pStateMachine.transitions || [], pIndent, pOptions, pModel)}`;
224
- }
225
- export default function renderDot(pStateMachine, pOptions = {}, pIndent = "") {
226
- const lGraphAttributes = buildGraphAttributes(
227
- getOptionValue(pOptions, "engine"),
228
- getOptionValue(pOptions, "direction"),
229
- pOptions?.dotGraphAttrs || [],
230
- );
231
- const lNodeAttributes = buildNodeAttributes(pOptions.dotNodeAttrs || []);
232
- const lEdgeAttributes = buildEdgeAttributes(pOptions.dotNodeAttrs || []);
233
- const lModel = new StateMachineModel(pStateMachine);
234
- const lMachine = machine(pStateMachine, pIndent, pOptions, lModel);
235
- return `digraph "state transitions" {
236
- ${lGraphAttributes}
237
- node [${lNodeAttributes}]
238
- edge [${lEdgeAttributes}]
239
-
240
- ${lMachine}
241
- }
242
- `;
243
- }