state-machine-cat 10.1.6 → 10.1.7
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/bin/smcat.mjs +5 -4
- package/dist/commonjs/bundle.js +67 -67
- package/{src → dist/esm}/cli/actions.mjs +24 -40
- package/dist/esm/cli/attributes-parser.mjs +981 -0
- package/dist/esm/cli/file-name-to-stream.mjs +13 -0
- package/dist/esm/cli/make-description.mjs +21 -0
- package/dist/esm/cli/normalize.mjs +95 -0
- package/dist/esm/cli/validations.mjs +70 -0
- package/dist/esm/index-node.mjs +16 -0
- package/dist/esm/index.mjs +19 -0
- package/dist/esm/options.mjs +61 -0
- package/dist/esm/parse/index.mjs +27 -0
- package/dist/esm/parse/parser-helpers.mjs +175 -0
- package/dist/esm/parse/scxml/index.mjs +136 -0
- package/dist/esm/parse/scxml/normalize-machine.mjs +44 -0
- package/dist/esm/parse/smcat/smcat-parser.mjs +2924 -0
- package/dist/esm/parse/smcat-ast.schema.mjs +170 -0
- package/dist/esm/render/dot/attributebuilder.mjs +51 -0
- package/dist/esm/render/dot/counter.mjs +16 -0
- package/dist/esm/render/dot/dot.states.template.js +26 -0
- package/dist/esm/render/dot/dot.template.js +14 -0
- package/dist/esm/render/dot/index.mjs +106 -0
- package/dist/esm/render/dot/render-dot-from-ast.js +29 -0
- package/dist/esm/render/dot/state-transformers.mjs +113 -0
- package/dist/esm/render/dot/transition-transformers.mjs +49 -0
- package/dist/esm/render/dot/utl.mjs +29 -0
- package/dist/esm/render/index-node.mjs +28 -0
- package/dist/esm/render/index.mjs +20 -0
- package/dist/esm/render/scjson/index.mjs +121 -0
- package/dist/esm/render/scjson/make-valid-event-names.mjs +27 -0
- package/dist/esm/render/scjson/make-valid-xml-name.mjs +19 -0
- package/dist/esm/render/scxml/index.mjs +4 -0
- package/dist/esm/render/scxml/render-from-scjson.js +9 -0
- package/dist/esm/render/scxml/scxml.states.template.js +14 -0
- package/dist/esm/render/scxml/scxml.template.js +6 -0
- package/dist/esm/render/smcat/index.js +63 -0
- package/dist/esm/render/smcat/smcat.template.js +13 -0
- package/dist/esm/render/vector/dot-to-vector-native.mjs +35 -0
- package/dist/esm/render/vector/vector-native-dot-with-fallback.mjs +37 -0
- package/dist/esm/render/vector/vector-with-viz-js.mjs +13 -0
- package/dist/esm/state-machine-model.mjs +58 -0
- package/dist/esm/transform/desugar.mjs +77 -0
- package/dist/esm/transform/utl.mjs +16 -0
- package/dist/esm/version.mjs +1 -0
- package/package.json +32 -41
- package/src/render/dot/dot.states.template.js +1 -1
- package/src/render/dot/index.mjs +14 -14
- package/types/state-machine-cat.d.ts +4 -4
- package/src/cli/file-name-to-stream.mjs +0 -25
- package/src/cli/make-description.mjs +0 -45
- package/src/cli/normalize.mjs +0 -204
- package/src/cli/validations.mjs +0 -140
- package/src/index-node.mjs +0 -55
- package/src/index.mjs +0 -58
- package/src/options.mjs +0 -78
- package/src/parse/index.mjs +0 -47
- package/src/parse/parser-helpers.mjs +0 -297
- package/src/parse/scxml/normalize-machine.mjs +0 -73
- package/src/parse/smcat-ast.schema.mjs +0 -187
- package/src/render/dot/attributebuilder.mjs +0 -68
- package/src/render/dot/counter.mjs +0 -33
- package/src/render/dot/render-dot-from-ast.js +0 -70
- package/src/render/dot/state-transformers.mjs +0 -128
- package/src/render/dot/transition-transformers.mjs +0 -52
- package/src/render/dot/utl.mjs +0 -56
- package/src/render/index-node.mjs +0 -36
- package/src/render/index.mjs +0 -22
- package/src/render/scjson/index.mjs +0 -175
- package/src/render/scjson/make-valid-event-names.mjs +0 -71
- package/src/render/scjson/make-valid-xml-name.mjs +0 -70
- package/src/render/scxml/index.mjs +0 -8
- package/src/render/smcat/index.js +0 -129
- package/src/render/vector/dot-to-vector-native.mjs +0 -60
- package/src/render/vector/vector-native-dot-with-fallback.mjs +0 -55
- package/src/render/vector/vector-with-viz-js.mjs +0 -18
- package/src/state-machine-model.mjs +0 -124
- package/src/transform/desugar.mjs +0 -222
- package/src/transform/utl.mjs +0 -26
- package/src/version.mjs +0 -2
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import cloneDeep from "lodash/cloneDeep.js";
|
|
2
|
+
import reject from "lodash/reject.js";
|
|
3
|
+
import StateMachineModel from "../state-machine-model.mjs";
|
|
4
|
+
import utl from "./utl.mjs";
|
|
5
|
+
function fuseTransitionAttribute(pIncomingThing, pOutgoingThing, pJoinChar) {
|
|
6
|
+
return pIncomingThing
|
|
7
|
+
? `${pIncomingThing}${pJoinChar}${pOutgoingThing}`
|
|
8
|
+
: pOutgoingThing;
|
|
9
|
+
}
|
|
10
|
+
function fuseIncomingToOutgoing(pIncomingTransition, pOutgoingTransition) {
|
|
11
|
+
const lReturnValue = {
|
|
12
|
+
...pIncomingTransition,
|
|
13
|
+
...pOutgoingTransition,
|
|
14
|
+
from: pIncomingTransition.from,
|
|
15
|
+
to: pOutgoingTransition.to,
|
|
16
|
+
};
|
|
17
|
+
if (pOutgoingTransition.action) {
|
|
18
|
+
lReturnValue.action = fuseTransitionAttribute(pIncomingTransition.action, pOutgoingTransition.action, "\n");
|
|
19
|
+
}
|
|
20
|
+
if (lReturnValue.event || lReturnValue.cond || lReturnValue.action) {
|
|
21
|
+
lReturnValue.label = utl.formatLabel(lReturnValue.event, lReturnValue.cond, lReturnValue.action);
|
|
22
|
+
}
|
|
23
|
+
return lReturnValue;
|
|
24
|
+
}
|
|
25
|
+
function fuseTransitions(pTransitions, pPseudoStateNames, pOutgoingTransitionMap) {
|
|
26
|
+
return pTransitions.reduce((pAll, pTransition) => {
|
|
27
|
+
pPseudoStateNames.forEach((pStateName, pIndex) => {
|
|
28
|
+
if (pStateName === pTransition.to &&
|
|
29
|
+
pOutgoingTransitionMap[pStateName]) {
|
|
30
|
+
pAll = pAll.concat(pOutgoingTransitionMap[pStateName].map((pOutgoingTransition) => fuseIncomingToOutgoing(pTransition, pOutgoingTransition)));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
pAll = pIndex === 0 ? pAll.concat(pTransition) : pAll;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return pAll;
|
|
37
|
+
}, []);
|
|
38
|
+
}
|
|
39
|
+
function deSugarPseudoStates(pMachine, pPseudoStateNames, pOutgoingTransitionMap) {
|
|
40
|
+
const lMachine = cloneDeep(pMachine);
|
|
41
|
+
if (lMachine.transitions && pPseudoStateNames.length > 0) {
|
|
42
|
+
lMachine.transitions = fuseTransitions(lMachine.transitions, pPseudoStateNames, pOutgoingTransitionMap);
|
|
43
|
+
}
|
|
44
|
+
lMachine.states = lMachine.states.map((pState) => pState.statemachine
|
|
45
|
+
? {
|
|
46
|
+
...pState,
|
|
47
|
+
statemachine: deSugarPseudoStates(pState.statemachine, pPseudoStateNames, pOutgoingTransitionMap),
|
|
48
|
+
}
|
|
49
|
+
: pState);
|
|
50
|
+
return lMachine;
|
|
51
|
+
}
|
|
52
|
+
function removeStatesCascading(pMachine, pStateNames) {
|
|
53
|
+
const lMachine = cloneDeep(pMachine);
|
|
54
|
+
if (lMachine.transitions) {
|
|
55
|
+
lMachine.transitions = reject(lMachine.transitions, (pTransition) => pStateNames.some((pJunctionStateName) => pJunctionStateName === pTransition.from ||
|
|
56
|
+
pJunctionStateName === pTransition.to));
|
|
57
|
+
}
|
|
58
|
+
lMachine.states = reject(lMachine.states, (pState) => pStateNames.includes(pState.name)).map((pState) => pState.statemachine
|
|
59
|
+
? {
|
|
60
|
+
...pState,
|
|
61
|
+
statemachine: removeStatesCascading(pState.statemachine, pStateNames),
|
|
62
|
+
}
|
|
63
|
+
: pState);
|
|
64
|
+
return lMachine;
|
|
65
|
+
}
|
|
66
|
+
export default (pMachine, pDesugarableStates = ["fork", "junction", "choice"]) => {
|
|
67
|
+
const lModel = new StateMachineModel(pMachine);
|
|
68
|
+
const lPseudoStateNames = lModel
|
|
69
|
+
.findStatesByTypes(pDesugarableStates)
|
|
70
|
+
.map(({ name }) => name);
|
|
71
|
+
const lOutgoingTransitionMap = lPseudoStateNames.reduce((pAll, pStateName) => {
|
|
72
|
+
pAll[pStateName] = lModel.findTransitionsByFrom(pStateName);
|
|
73
|
+
return pAll;
|
|
74
|
+
}, {});
|
|
75
|
+
const lMachine = deSugarPseudoStates(pMachine, lPseudoStateNames, lOutgoingTransitionMap);
|
|
76
|
+
return removeStatesCascading(lMachine, lPseudoStateNames);
|
|
77
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function formatLabel(pEvent, pCond, pActions) {
|
|
2
|
+
let lReturnValue = "";
|
|
3
|
+
if (pEvent) {
|
|
4
|
+
lReturnValue += pEvent;
|
|
5
|
+
}
|
|
6
|
+
if (pCond) {
|
|
7
|
+
lReturnValue += ` [${pCond}]`;
|
|
8
|
+
}
|
|
9
|
+
if (pActions) {
|
|
10
|
+
lReturnValue += `/ ${pActions}`;
|
|
11
|
+
}
|
|
12
|
+
return lReturnValue.trim();
|
|
13
|
+
}
|
|
14
|
+
export default {
|
|
15
|
+
formatLabel,
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const version = "10.1.6";
|
package/package.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "state-machine-cat",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.7",
|
|
4
4
|
"description": "write beautiful state charts",
|
|
5
5
|
"main": "./dist/commonjs/index.js",
|
|
6
|
-
"module": "./
|
|
6
|
+
"module": "./dist/esm/index.mjs",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": [
|
|
9
9
|
{
|
|
10
|
-
"import": "./
|
|
10
|
+
"import": "./dist/esm/index.mjs",
|
|
11
11
|
"require": "./dist/commonjs/index.js"
|
|
12
12
|
},
|
|
13
13
|
"./dist/commonjs/index.js"
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"sideEffects": [
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
17
|
+
"dist/esm/render/smcat/smcat.template.js",
|
|
18
|
+
"dist/esm/render/dot/dot.states.template.js",
|
|
19
|
+
"dist/esm/render/dot/dot.template.js",
|
|
20
|
+
"dist/esm/render/scxml/scxml.states.template.js",
|
|
21
|
+
"dist/esm/render/scxml/scxml.template.js"
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "make clean dist pages",
|
|
25
|
-
"build:cli": "make cli-build",
|
|
25
|
+
"build:cli": "make cli-build && rm -rf dist/esm && tsc",
|
|
26
26
|
"check": "wireit",
|
|
27
27
|
"cachefolder": "wireit",
|
|
28
28
|
"depcruise": "wireit",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"lint:types": "wireit",
|
|
48
48
|
"lint:types:tsc": "wireit",
|
|
49
49
|
"lint:types:eslint": "wireit",
|
|
50
|
+
"lint:eslint:clear-caches": "rm -rf node_modules/.cache/eslint/",
|
|
50
51
|
"lint:fix": "wireit",
|
|
51
52
|
"lint:fix:eslint": "wireit",
|
|
52
53
|
"lint:fix:prettier": "wireit",
|
|
@@ -65,7 +66,7 @@
|
|
|
65
66
|
"scm:stage": "git add .",
|
|
66
67
|
"test": "wireit",
|
|
67
68
|
"test:cover": "wireit",
|
|
68
|
-
"update-dependencies": "run-s upem:update upem:install lint:fix check",
|
|
69
|
+
"update-dependencies": "run-s upem:update upem:install lint:eslint:clear-caches lint:fix check",
|
|
69
70
|
"upem-outdated": "npm outdated --json --long | upem --dry-run",
|
|
70
71
|
"upem:install": "npm install",
|
|
71
72
|
"upem:update": "npm outdated --json --long | upem | pbcopy && pbpaste",
|
|
@@ -289,13 +290,13 @@
|
|
|
289
290
|
]
|
|
290
291
|
},
|
|
291
292
|
"lint:types:tsc": {
|
|
292
|
-
"command": "tsc --noEmit --strict --types --noUnusedLocals --noUnusedParameters --pretty types/*.d.ts src/cli/*.d.
|
|
293
|
+
"command": "tsc --noEmit --strict --types --noUnusedLocals --noUnusedParameters --pretty types/*.d.ts src/cli/*.d.ts src/parse/scxml/*.d.ts",
|
|
293
294
|
"files": [
|
|
294
295
|
"types/*.d.ts"
|
|
295
296
|
]
|
|
296
297
|
},
|
|
297
298
|
"lint:types:eslint": {
|
|
298
|
-
"command": "eslint types/*.d.ts src/cli/*.d.
|
|
299
|
+
"command": "eslint types/*.d.ts src/cli/*.d.ts src/parse/scxml/*.d.ts",
|
|
299
300
|
"files": [
|
|
300
301
|
"{src,types}/**/*.d.{ts,mts}",
|
|
301
302
|
".eslintrc.json"
|
|
@@ -329,26 +330,26 @@
|
|
|
329
330
|
]
|
|
330
331
|
},
|
|
331
332
|
"lint:fix:types": {
|
|
332
|
-
"command": "eslint --fix types/*.d.ts src/cli/*.d.
|
|
333
|
+
"command": "eslint --fix types/*.d.ts src/cli/*.d.ts src/cli/*.d.ts src/parse/scxml/*.d.ts",
|
|
333
334
|
"files": [
|
|
334
335
|
"{src,types}/**/*.d.{ts,mts}",
|
|
335
336
|
".eslintrc.json"
|
|
336
337
|
]
|
|
337
338
|
},
|
|
338
339
|
"test": {
|
|
339
|
-
"command": "mocha",
|
|
340
|
+
"command": "mocha --no-warnings",
|
|
340
341
|
"files": [
|
|
341
|
-
"{src,test}/**/*.{js,mjs,json}"
|
|
342
|
+
"{src,test}/**/*.{js,mjs,json,ts,mts,cts}"
|
|
342
343
|
]
|
|
343
344
|
},
|
|
344
345
|
"test:cover": {
|
|
345
|
-
"command": "
|
|
346
|
+
"command": "NODE_OPTIONS=--no-warnings c8 mocha",
|
|
346
347
|
"output": [
|
|
347
348
|
"coverage/lcov.info",
|
|
348
349
|
"coverage/coverage-summary.json"
|
|
349
350
|
],
|
|
350
351
|
"files": [
|
|
351
|
-
"{src,test}/**/*.{js,mjs,json}"
|
|
352
|
+
"{src,test}/**/*.{js,mjs,json,ts,mts,cts}"
|
|
352
353
|
]
|
|
353
354
|
}
|
|
354
355
|
},
|
|
@@ -385,16 +386,21 @@
|
|
|
385
386
|
"wrap-ansi": "8.1.0"
|
|
386
387
|
},
|
|
387
388
|
"devDependencies": {
|
|
388
|
-
"@
|
|
389
|
-
"@
|
|
389
|
+
"@types/chai": "4.3.4",
|
|
390
|
+
"@types/chai-xml": "0.3.2",
|
|
391
|
+
"@types/he": "1.2.0",
|
|
392
|
+
"@types/lodash": "4.14.191",
|
|
393
|
+
"@types/mocha": "10.0.1",
|
|
394
|
+
"@typescript-eslint/eslint-plugin": "5.52.0",
|
|
395
|
+
"@typescript-eslint/parser": "5.52.0",
|
|
390
396
|
"c8": "7.12.0",
|
|
391
397
|
"chai": "4.3.7",
|
|
392
398
|
"chai-as-promised": "7.1.1",
|
|
393
399
|
"chai-json-schema": "1.5.1",
|
|
394
400
|
"chai-xml": "0.4.0",
|
|
395
|
-
"dependency-cruiser": "12.
|
|
396
|
-
"esbuild": "0.17.
|
|
397
|
-
"eslint": "8.
|
|
401
|
+
"dependency-cruiser": "12.9.0",
|
|
402
|
+
"esbuild": "0.17.8",
|
|
403
|
+
"eslint": "8.34.0",
|
|
398
404
|
"eslint-config-moving-meadow": "4.0.2",
|
|
399
405
|
"eslint-config-prettier": "8.6.0",
|
|
400
406
|
"eslint-plugin-budapestian": "5.0.1",
|
|
@@ -407,27 +413,19 @@
|
|
|
407
413
|
"husky": "8.0.3",
|
|
408
414
|
"is-pdf": "1.0.0",
|
|
409
415
|
"is-png": "3.0.1",
|
|
410
|
-
"lint-staged": "13.1.
|
|
416
|
+
"lint-staged": "13.1.2",
|
|
411
417
|
"mocha": "10.2.0",
|
|
412
418
|
"npm-run-all": "4.1.5",
|
|
413
419
|
"peggy": "2.0.1",
|
|
414
|
-
"prettier": "2.8.
|
|
420
|
+
"prettier": "2.8.4",
|
|
415
421
|
"query-string": "8.1.0",
|
|
422
|
+
"ts-node": "10.9.1",
|
|
416
423
|
"typescript": "4.9.5",
|
|
417
424
|
"upem": "7.3.1",
|
|
418
425
|
"watskeburt": "0.9.1",
|
|
419
|
-
"wireit": "0.9.
|
|
426
|
+
"wireit": "0.9.5",
|
|
420
427
|
"xml-name-validator": "4.0.0"
|
|
421
428
|
},
|
|
422
|
-
"eslintIgnore": [
|
|
423
|
-
"coverage",
|
|
424
|
-
"docs",
|
|
425
|
-
"dist",
|
|
426
|
-
"node_modules",
|
|
427
|
-
"public",
|
|
428
|
-
"src/**/*-parser.mjs",
|
|
429
|
-
"src/**/*.template.js"
|
|
430
|
-
],
|
|
431
429
|
"engines": {
|
|
432
430
|
"node": "^14.13.1||^16||>=18"
|
|
433
431
|
},
|
|
@@ -444,12 +442,5 @@
|
|
|
444
442
|
},
|
|
445
443
|
"bugs": {
|
|
446
444
|
"url": "https://github.com/sverweij/state-machine-cat/issues"
|
|
447
|
-
},
|
|
448
|
-
"lint-staged": {
|
|
449
|
-
"{src,test}/**/*.{js,cjs}": [
|
|
450
|
-
"eslint --cache --cache-location .cache --fix",
|
|
451
|
-
"prettier --loglevel warn --write",
|
|
452
|
-
"depcruise --output-type err-long --config config/dependency-cruiser.js"
|
|
453
|
-
]
|
|
454
445
|
}
|
|
455
446
|
}
|
|
@@ -1 +1 @@
|
|
|
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,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},r="",c=null!=(c=o(e,"nestedExternalSelfTransitions")||(null!=n?o(n,"nestedExternalSelfTransitions"):n))?c:l.hooks.helperMissing,t={name:"nestedExternalSelfTransitions",hash:{},fn:l.program(2,t,0),inverse:l.noop,data:t,loc:{start:{line:2,column:2},end:{line:4,column:36}}},c="function"==typeof c?c.call(null!=n?n:l.nullContext||{},t):c;return null!=(c=o(e,"nestedExternalSelfTransitions")?c:l.hooks.blockHelperMissing.call(n,c,t))&&(r+=c),r},2:function(l,n,e,a,t){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,t){var o,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!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:7,column:3},end:{line:7,column:13}}}):r)?o:"")+'" [shape=circle style=filled class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:7,column:49},end:{line:7,column:60}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,t,0),inverse:l.program(7,t,0),data:t,loc:{start:{line:7,column:62},end:{line:7,column:150}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:7,column:150},end:{line:7,column:184}}}))?o:"")+'fixedsize=true height=0.15 label=""]\n'},5:function(l,n,e,a,t){var o,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!=(o=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:u)==i?r.call(c,{name:"color",hash:{},data:t,loc:{start:{line:7,column:82},end:{line:7,column:93}}}):r)?o:"")+'" fillcolor="'+(null!=(o=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:u)==i?r.call(c,{name:"color",hash:{},data:t,loc:{start:{line:7,column:106},end:{line:7,column:117}}}):r)?o:"")+'" '},7:function(l,n,e,a,t){return"fillcolor=black "},9:function(l,n,e,a,t){return"penwidth=3.0 "},11:function(l,n,e,a,t){var o=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(o,{name:"name",hash:{},data:t,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(o,{name:"class",hash:{},data:t,loc:{start:{line:10,column:32},end:{line:10,column:43}}}):s)?m:"")+'" '+(null!=(m=u(e,"if").call(o,null!=n?u(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:10,column:45},end:{line:10,column:85}}}))?m:"")+(null!=(m=u(e,"if").call(o,null!=n?u(n,"active"):n,{name:"if",hash:{},fn:l.program(14,t,0),inverse:l.noop,data:t,loc:{start:{line:10,column:85},end:{line:10,column:134}}}))?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(o,null!=n?u(n,"actions"):n,{name:"if",hash:{},fn:l.program(16,t,0),inverse:l.program(18,t,0),data:t,loc:{start:{line:12,column:24},end:{line:12,column:86}}}))?m:"")+">"+(null!=(m=u(e,"if").call(o,null!=n?u(n,"active"):n,{name:"if",hash:{},fn:l.program(20,t,0),inverse:l.program(22,t,0),data:t,loc:{start:{line:12,column:87},end:{line:12,column:141}}}))?m:"")+"</td></tr>\n",s=null!=(s=u(e,"actions")||(null!=n?u(n,"actions"):n))?s:r,r={name:"actions",hash:{},fn:l.program(24,t,0),inverse:l.noop,data:t,loc:{start:{line:13,column:6},end:{line:16,column:18}}},m=typeof s==c?s.call(o,r):s;return null!=(m=u(e,"actions")?m:l.hooks.blockHelperMissing.call(n,m,r))&&(i+=m),i+" </table>\n >]\n"},12:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(o="function"==typeof(e=null!=(e=o(e,"color")||(null!=n?o(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:t,loc:{start:{line:10,column:65},end:{line:10,column:76}}}):e)?o:"")+'" '},14:function(l,n,e,a,t){return"peripheries=1 style=rounded "},16:function(l,n,e,a,t){return' cellpadding="2"'},18:function(l,n,e,a,t){return' cellpadding="7"'},20:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"<i>"+l.escapeExpression("function"==typeof(e=null!=(e=o(e,"label")||(null!=n?o(n,"label"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"label",hash:{},data:t,loc:{start:{line:12,column:104},end:{line:12,column:113}}}):e)+"</i>"},22:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return l.escapeExpression("function"==typeof(e=null!=(e=o(e,"label")||(null!=n?o(n,"label"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"label",hash:{},data:t,loc:{start:{line:12,column:125},end:{line:12,column:134}}}):e)},24:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(e=o(e,"if").call(null!=n?n:l.nullContext||{},t&&o(t,"first"),{name:"if",hash:{},fn:l.program(25,t,0),inverse:l.noop,data:t,loc:{start:{line:14,column:8},end:{line:14,column:34}}}))?e:"")+'\n <tr><td align="left" cellpadding="2">'+l.escapeExpression(l.lambda(n,n))+"</td></tr>\n"},25:function(l,n,e,a,t){return"<hr/>"},27:function(l,n,e,a,t){var o,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!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:21,column:3},end:{line:21,column:13}}}):r)?o:"")+'" [shape=circle class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:21,column:36},end:{line:21,column:47}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:21,column:49},end:{line:21,column:89}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:21,column:89},end:{line:21,column:123}}}))?o:"")+'label="H"]\n'},29:function(l,n,e,a,t){var o,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!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:24,column:3},end:{line:24,column:13}}}):r)?o:"")+'" [shape=circle class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:24,column:36},end:{line:24,column:47}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:24,column:49},end:{line:24,column:89}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:24,column:89},end:{line:24,column:123}}}))?o:"")+'label="H*"]\n'},31:function(l,n,e,a,t,o,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=' "'+(null!=(d=typeof(f=null!=(f=m(e,"name")||(null!=n?m(n,"name"):n))?f:u)==i?f.call(c,{name:"name",hash:{},data:t,loc:{start:{line:27,column:3},end:{line:27,column:13}}}):f)?d:"")+'" [shape=diamond fixedsize=true width=0.35 height=0.35 fontsize=10 class="'+(null!=(d=typeof(f=null!=(f=m(e,"class")||(null!=n?m(n,"class"):n))?f:u)==i?f.call(c,{name:"class",hash:{},data:t,loc:{start:{line:27,column:87},end:{line:27,column:98}}}):f)?d:"")+'" '+(null!=(d=m(e,"if").call(c,null!=n?m(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:27,column:100},end:{line:27,column:140}}}))?d:"")+(null!=(d=m(e,"if").call(c,null!=n?m(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:27,column:140},end:{line:27,column:174}}}))?d:"")+'label=" "]\n "'+(null!=(d=typeof(f=null!=(f=m(e,"name")||(null!=n?m(n,"name"):n))?f:u)==i?f.call(c,{name:"name",hash:{},data:t,loc:{start:{line:28,column:3},end:{line:28,column:13}}}):f)?d:"")+'" -> "'+(null!=(d=typeof(f=null!=(f=m(e,"name")||(null!=n?m(n,"name"):n))?f:u)==i?f.call(c,{name:"name",hash:{},data:t,loc:{start:{line:28,column:19},end:{line:28,column:29}}}):f)?d:"")+'" [label=<',f=null!=(f=m(e,"actions")||(null!=n?m(n,"actions"):n))?f:u,h={name:"actions",hash:{},fn:l.program(32,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:28,column:39},end:{line:28,column:144}}},d=typeof f==i?f.call(c,h):f;return null!=(d=m(e,"actions")?d:s.call(n,d,h))&&(p+=d),p+='> color="#FFFFFF01"',f=null!=(f=m(e,"color")||(null!=n?m(n,"color"):n))?f:u,h={name:"color",hash:{},fn:l.program(41,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:28,column:163},end:{line:28,column:203}}},d=typeof f==i?f.call(c,h):f,null!=(d=m(e,"color")?d:s.call(n,d,h))&&(p+=d),p+' class="'+(null!=(d=typeof(f=null!=(f=m(e,"class")||(null!=n?m(n,"class"):n))?f:u)==i?f.call(c,{name:"class",hash:{},data:t,loc:{start:{line:28,column:211},end:{line:28,column:222}}}):f)?d:"")+'"];\n'},32:function(l,n,e,a,t,o,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,t&&u(t,"first"),{name:"if",hash:{},fn:l.program(33,t,0,o,r),inverse:l.program(35,t,0,o,r),data:t,loc:{start:{line:28,column:51},end:{line:28,column:82}}}))?c:"")+(null!=(c=u(e,"if").call(n,null!=r[1]?u(r[1],"active"):r[1],{name:"if",hash:{},fn:l.program(37,t,0,o,r),inverse:l.program(39,t,0,o,r),data:t,loc:{start:{line:28,column:82},end:{line:28,column:131}}}))?c:"")},33:function(l,n,e,a,t){return""},35:function(l,n,e,a,t){return"\\n"},37:function(l,n,e,a,t){return"<i>"+l.escapeExpression(l.lambda(n,n))+"</i>"},39:function(l,n,e,a,t){return l.escapeExpression(l.lambda(n,n))},41:function(l,n,e,a,t){return' fontcolor="'+(null!=(l=l.lambda(n,n))?l:"")+'"'},43:function(l,n,e,a,t){var o,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!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:31,column:3},end:{line:31,column:13}}}):r)?o:"")+'" [shape=rect class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:31,column:34},end:{line:31,column:45}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,t,0),inverse:l.program(7,t,0),data:t,loc:{start:{line:31,column:47},end:{line:31,column:135}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:31,column:135},end:{line:31,column:169}}}))?o:"")+'label=" " fixedsize=true style=filled '+(null!=(o=typeof(r=null!=(r=s(e,"sizingExtras")||(null!=n?s(n,"sizingExtras"):n))?r:u)==i?r.call(c,{name:"sizingExtras",hash:{},data:t,loc:{start:{line:31,column:207},end:{line:31,column:225}}}):r)?o:"")+"]\n"},45:function(l,n,e,a,t){var o,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!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:37,column:3},end:{line:37,column:13}}}):r)?o:"")+'" [label= < \n <table align="center" cellborder="0" border="0">\n <tr><td cellpadding="0"><font '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:39,column:38},end:{line:39,column:78}}}))?o:"")+'point-size="20">X</font></td></tr>\n <tr><td cellpadding="0"><font '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(46,t,0),inverse:l.noop,data:t,loc:{start:{line:40,column:38},end:{line:40,column:77}}}))?o:"")+">"+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:t,loc:{start:{line:40,column:78},end:{line:40,column:87}}}):r)+'</font></td></tr>\n </table>\n > class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:42,column:13},end:{line:42,column:24}}}):r)?o:"")+'"]\n'},46:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(o="function"==typeof(e=null!=(e=o(e,"color")||(null!=n?o(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:t,loc:{start:{line:40,column:58},end:{line:40,column:69}}}):e)?o:"")+'"'},48:function(l,n,e,a,t){var o,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!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:u)==i?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:45,column:3},end:{line:45,column:13}}}):r)?o:"")+'" [shape=circle style=filled class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:u)==i?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:45,column:49},end:{line:45,column:60}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,t,0),inverse:l.program(7,t,0),data:t,loc:{start:{line:45,column:62},end:{line:45,column:150}}}))?o:"")+"fixedsize=true height=0.15 peripheries=2 "+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:45,column:191},end:{line:45,column:225}}}))?o:"")+'label=""]\n'},50:function(l,n,e,a,t){var o=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(o,{name:"name",hash:{},data:t,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(o,{name:"class",hash:{},data:t,loc:{start:{line:49,column:11},end:{line:49,column:22}}}):s)?p:"")+'" '+(null!=(p=u(e,"if").call(o,null!=n?u(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:49,column:24},end:{line:49,column:64}}}))?p:"")+'label= <\n <table cellborder="0" border="0">\n <tr><td>'+(null!=(p=u(e,"if").call(o,null!=n?u(n,"active"):n,{name:"if",hash:{},fn:l.program(20,t,0),inverse:l.program(22,t,0),data:t,loc:{start:{line:51,column:14},end:{line:51,column:68}}}))?p:"")+"</td></tr>\n",s=null!=(s=u(e,"actions")||(null!=n?u(n,"actions"):n))?s:r,m={name:"actions",hash:{},fn:l.program(51,t,0),inverse:l.noop,data:t,loc:{start:{line:52,column:6},end:{line:55,column:18}}},p=typeof s==c?s.call(o,m):s;return null!=(p=u(e,"actions")?p:l.hooks.blockHelperMissing.call(n,p,m))&&(i+=p),i+" </table>\n > "+(null!=(p=u(e,"if").call(o,null!=n?u(n,"parentIsParallel"):n,{name:"if",hash:{},fn:l.program(53,t,0),inverse:l.program(55,t,0),data:t,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(o,{name:"name",hash:{},data:t,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(o,null!=n?u(n,"statemachine"):n,{name:"stateSection",hash:{},fn:l.program(33,t,0),inverse:l.noop,data:t,loc:{start:{line:59,column:4},end:{line:59,column:51}}}))?p:"")+"\n }\n"},51:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(e=o(e,"if").call(null!=n?n:l.nullContext||{},t&&o(t,"first"),{name:"if",hash:{},fn:l.program(25,t,0),inverse:l.noop,data:t,loc:{start:{line:53,column:8},end:{line:53,column:34}}}))?e:"")+'\n <tr><td align="left">'+l.escapeExpression(l.lambda(n,n))+"</td></tr>\n"},53:function(l,n,e,a,t){return'style="dashed" penwidth=1'},55:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"style=rounded "+(null!=(e=o(e,"if").call(null!=n?n:l.nullContext||{},null!=n?o(n,"active"):n,{name:"if",hash:{},fn:l.program(56,t,0),inverse:l.program(58,t,0),data:t,loc:{start:{line:57,column:77},end:{line:57,column:130}}}))?e:"")},56:function(l,n,e,a,t){return"penwidth=3.0"},58:function(l,n,e,a,t){return"penwidth=2.0"},60:function(l,n,e,a,t,o,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,o={name:"noteName",hash:{},fn:l.program(61,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:63,column:4},end:{line:66,column:17}}},r="function"==typeof i?i.call(null!=n?n:l.nullContext||{},o):i;return null!=(r=c(e,"noteName")?r:l.hooks.blockHelperMissing.call(n,r,o))&&(u+=r),u},61:function(l,n,e,a,t,o,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,t,o,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,t,0,o,r),inverse:l.noop,data:t,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,t,0,o,r),inverse:l.noop,data:t,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,t,0,o,r),inverse:l.noop,data:t,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(27,t,0,o,r),inverse:l.noop,data:t,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(29,t,0,o,r),inverse:l.noop,data:t,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(31,t,0,o,r),inverse:l.noop,data:t,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(43,t,0,o,r),inverse:l.noop,data:t,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(4,t,0,o,r),inverse:l.noop,data:t,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(45,t,0,o,r),inverse:l.noop,data:t,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(48,t,0,o,r),inverse:l.noop,data:t,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(50,t,0,o,r),inverse:l.noop,data:t,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(60,t,0,o,r),inverse:l.noop,data:t,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
|
+
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,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},r="",c=null!=(c=o(e,"nestedExternalSelfTransitions")||(null!=n?o(n,"nestedExternalSelfTransitions"):n))?c:l.hooks.helperMissing,t={name:"nestedExternalSelfTransitions",hash:{},fn:l.program(2,t,0),inverse:l.noop,data:t,loc:{start:{line:2,column:2},end:{line:4,column:36}}},c="function"==typeof c?c.call(null!=n?n:l.nullContext||{},t):c;return null!=(c=o(e,"nestedExternalSelfTransitions")?c:l.hooks.blockHelperMissing.call(n,c,t))&&(r+=c),r},2:function(l,n,e,a,t){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,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:i)==u?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:7,column:3},end:{line:7,column:13}}}):r)?o:"")+'" [shape=circle style=filled class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:i)==u?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:7,column:49},end:{line:7,column:60}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,t,0),inverse:l.program(7,t,0),data:t,loc:{start:{line:7,column:62},end:{line:7,column:150}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:7,column:150},end:{line:7,column:184}}}))?o:"")+'fixedsize=true height=0.15 label=""]\n'},5:function(l,n,e,a,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(o=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:i)==u?r.call(c,{name:"color",hash:{},data:t,loc:{start:{line:7,column:82},end:{line:7,column:93}}}):r)?o:"")+'" fillcolor="'+(null!=(o=typeof(r=null!=(r=l(e,"color")||(null!=n?l(n,"color"):n))?r:i)==u?r.call(c,{name:"color",hash:{},data:t,loc:{start:{line:7,column:106},end:{line:7,column:117}}}):r)?o:"")+'" '},7:function(l,n,e,a,t){return"fillcolor=black "},9:function(l,n,e,a,t){return"penwidth=3.0 "},11:function(l,n,e,a,t){var o=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,c="function",i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},u=' "'+(null!=(m=typeof(s=null!=(s=i(e,"name")||(null!=n?i(n,"name"):n))?s:r)==c?s.call(o,{name:"name",hash:{},data:t,loc:{start:{line:10,column:3},end:{line:10,column:13}}}):s)?m:"")+'" [margin=0 class="'+(null!=(m=typeof(s=null!=(s=i(e,"class")||(null!=n?i(n,"class"):n))?s:r)==c?s.call(o,{name:"class",hash:{},data:t,loc:{start:{line:10,column:32},end:{line:10,column:43}}}):s)?m:"")+'" '+(null!=(m=i(e,"if").call(o,null!=n?i(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:10,column:45},end:{line:10,column:85}}}))?m:"")+(null!=(m=i(e,"if").call(o,null!=n?i(n,"active"):n,{name:"if",hash:{},fn:l.program(14,t,0),inverse:l.noop,data:t,loc:{start:{line:10,column:85},end:{line:10,column:134}}}))?m:"")+'label= < \n <table align="center" cellborder="0" border="2" style="rounded" width="48">\n <tr><td width="48"'+(null!=(m=i(e,"if").call(o,null!=n?i(n,"actionStrings"):n,{name:"if",hash:{},fn:l.program(16,t,0),inverse:l.program(18,t,0),data:t,loc:{start:{line:12,column:24},end:{line:12,column:92}}}))?m:"")+">"+(null!=(m=i(e,"if").call(o,null!=n?i(n,"active"):n,{name:"if",hash:{},fn:l.program(20,t,0),inverse:l.program(22,t,0),data:t,loc:{start:{line:12,column:93},end:{line:12,column:147}}}))?m:"")+"</td></tr>\n",s=null!=(s=i(e,"actionStrings")||(null!=n?i(n,"actionStrings"):n))?s:r,r={name:"actionStrings",hash:{},fn:l.program(24,t,0),inverse:l.noop,data:t,loc:{start:{line:13,column:6},end:{line:16,column:24}}},m=typeof s==c?s.call(o,r):s;return null!=(m=i(e,"actionStrings")?m:l.hooks.blockHelperMissing.call(n,m,r))&&(u+=m),u+" </table>\n >]\n"},12:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(o="function"==typeof(e=null!=(e=o(e,"color")||(null!=n?o(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:t,loc:{start:{line:10,column:65},end:{line:10,column:76}}}):e)?o:"")+'" '},14:function(l,n,e,a,t){return"peripheries=1 style=rounded "},16:function(l,n,e,a,t){return' cellpadding="2"'},18:function(l,n,e,a,t){return' cellpadding="7"'},20:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"<i>"+l.escapeExpression("function"==typeof(e=null!=(e=o(e,"label")||(null!=n?o(n,"label"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"label",hash:{},data:t,loc:{start:{line:12,column:110},end:{line:12,column:119}}}):e)+"</i>"},22:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return l.escapeExpression("function"==typeof(e=null!=(e=o(e,"label")||(null!=n?o(n,"label"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"label",hash:{},data:t,loc:{start:{line:12,column:131},end:{line:12,column:140}}}):e)},24:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(e=o(e,"if").call(null!=n?n:l.nullContext||{},t&&o(t,"first"),{name:"if",hash:{},fn:l.program(25,t,0),inverse:l.noop,data:t,loc:{start:{line:14,column:8},end:{line:14,column:34}}}))?e:"")+'\n <tr><td align="left" cellpadding="2">'+l.escapeExpression(l.lambda(n,n))+"</td></tr>\n"},25:function(l,n,e,a,t){return"<hr/>"},27:function(l,n,e,a,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:i)==u?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:21,column:3},end:{line:21,column:13}}}):r)?o:"")+'" [shape=circle class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:i)==u?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:21,column:36},end:{line:21,column:47}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:21,column:49},end:{line:21,column:89}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:21,column:89},end:{line:21,column:123}}}))?o:"")+'label="H"]\n'},29:function(l,n,e,a,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:i)==u?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:24,column:3},end:{line:24,column:13}}}):r)?o:"")+'" [shape=circle class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:i)==u?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:24,column:36},end:{line:24,column:47}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:24,column:49},end:{line:24,column:89}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:24,column:89},end:{line:24,column:123}}}))?o:"")+'label="H*"]\n'},31:function(l,n,e,a,t,o,r){var c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.hooks.blockHelperMissing,m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},p=' "'+(null!=(d=typeof(f=null!=(f=m(e,"name")||(null!=n?m(n,"name"):n))?f:i)==u?f.call(c,{name:"name",hash:{},data:t,loc:{start:{line:27,column:3},end:{line:27,column:13}}}):f)?d:"")+'" [shape=diamond fixedsize=true width=0.35 height=0.35 fontsize=10 class="'+(null!=(d=typeof(f=null!=(f=m(e,"class")||(null!=n?m(n,"class"):n))?f:i)==u?f.call(c,{name:"class",hash:{},data:t,loc:{start:{line:27,column:87},end:{line:27,column:98}}}):f)?d:"")+'" '+(null!=(d=m(e,"if").call(c,null!=n?m(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:27,column:100},end:{line:27,column:140}}}))?d:"")+(null!=(d=m(e,"if").call(c,null!=n?m(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:27,column:140},end:{line:27,column:174}}}))?d:"")+'label=" "]\n "'+(null!=(d=typeof(f=null!=(f=m(e,"name")||(null!=n?m(n,"name"):n))?f:i)==u?f.call(c,{name:"name",hash:{},data:t,loc:{start:{line:28,column:3},end:{line:28,column:13}}}):f)?d:"")+'" -> "'+(null!=(d=typeof(f=null!=(f=m(e,"name")||(null!=n?m(n,"name"):n))?f:i)==u?f.call(c,{name:"name",hash:{},data:t,loc:{start:{line:28,column:19},end:{line:28,column:29}}}):f)?d:"")+'" [label=<',f=null!=(f=m(e,"actionStrings")||(null!=n?m(n,"actionStrings"):n))?f:i,h={name:"actionStrings",hash:{},fn:l.program(32,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:28,column:39},end:{line:28,column:156}}},d=typeof f==u?f.call(c,h):f;return null!=(d=m(e,"actionStrings")?d:s.call(n,d,h))&&(p+=d),p+='> color="#FFFFFF01"',f=null!=(f=m(e,"color")||(null!=n?m(n,"color"):n))?f:i,h={name:"color",hash:{},fn:l.program(41,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:28,column:175},end:{line:28,column:215}}},d=typeof f==u?f.call(c,h):f,null!=(d=m(e,"color")?d:s.call(n,d,h))&&(p+=d),p+' class="'+(null!=(d=typeof(f=null!=(f=m(e,"class")||(null!=n?m(n,"class"):n))?f:i)==u?f.call(c,{name:"class",hash:{},data:t,loc:{start:{line:28,column:223},end:{line:28,column:234}}}):f)?d:"")+'"];\n'},32:function(l,n,e,a,t,o,r){var c,n=null!=n?n:l.nullContext||{},i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return(null!=(c=i(e,"if").call(n,t&&i(t,"first"),{name:"if",hash:{},fn:l.program(33,t,0,o,r),inverse:l.program(35,t,0,o,r),data:t,loc:{start:{line:28,column:57},end:{line:28,column:88}}}))?c:"")+(null!=(c=i(e,"if").call(n,null!=r[1]?i(r[1],"active"):r[1],{name:"if",hash:{},fn:l.program(37,t,0,o,r),inverse:l.program(39,t,0,o,r),data:t,loc:{start:{line:28,column:88},end:{line:28,column:137}}}))?c:"")},33:function(l,n,e,a,t){return""},35:function(l,n,e,a,t){return"\\n"},37:function(l,n,e,a,t){return"<i>"+l.escapeExpression(l.lambda(n,n))+"</i>"},39:function(l,n,e,a,t){return l.escapeExpression(l.lambda(n,n))},41:function(l,n,e,a,t){return' fontcolor="'+(null!=(l=l.lambda(n,n))?l:"")+'"'},43:function(l,n,e,a,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:i)==u?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:31,column:3},end:{line:31,column:13}}}):r)?o:"")+'" [shape=rect class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:i)==u?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:31,column:34},end:{line:31,column:45}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,t,0),inverse:l.program(7,t,0),data:t,loc:{start:{line:31,column:47},end:{line:31,column:135}}}))?o:"")+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:31,column:135},end:{line:31,column:169}}}))?o:"")+'label=" " fixedsize=true style=filled '+(null!=(o=typeof(r=null!=(r=s(e,"sizingExtras")||(null!=n?s(n,"sizingExtras"):n))?r:i)==u?r.call(c,{name:"sizingExtras",hash:{},data:t,loc:{start:{line:31,column:207},end:{line:31,column:225}}}):r)?o:"")+"]\n"},45:function(l,n,e,a,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:i)==u?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:37,column:3},end:{line:37,column:13}}}):r)?o:"")+'" [label= < \n <table align="center" cellborder="0" border="0">\n <tr><td cellpadding="0"><font '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:39,column:38},end:{line:39,column:78}}}))?o:"")+'point-size="20">X</font></td></tr>\n <tr><td cellpadding="0"><font '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(46,t,0),inverse:l.noop,data:t,loc:{start:{line:40,column:38},end:{line:40,column:77}}}))?o:"")+">"+l.escapeExpression(typeof(r=null!=(r=s(e,"label")||(null!=n?s(n,"label"):n))?r:i)==u?r.call(c,{name:"label",hash:{},data:t,loc:{start:{line:40,column:78},end:{line:40,column:87}}}):r)+'</font></td></tr>\n </table>\n > class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:i)==u?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:42,column:13},end:{line:42,column:24}}}):r)?o:"")+'"]\n'},46:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'color="'+(null!=(o="function"==typeof(e=null!=(e=o(e,"color")||(null!=n?o(n,"color"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"color",hash:{},data:t,loc:{start:{line:40,column:58},end:{line:40,column:69}}}):e)?o:"")+'"'},48:function(l,n,e,a,t){var o,r,c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="function",s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(o=typeof(r=null!=(r=s(e,"name")||(null!=n?s(n,"name"):n))?r:i)==u?r.call(c,{name:"name",hash:{},data:t,loc:{start:{line:45,column:3},end:{line:45,column:13}}}):r)?o:"")+'" [shape=circle style=filled class="'+(null!=(o=typeof(r=null!=(r=s(e,"class")||(null!=n?s(n,"class"):n))?r:i)==u?r.call(c,{name:"class",hash:{},data:t,loc:{start:{line:45,column:49},end:{line:45,column:60}}}):r)?o:"")+'" '+(null!=(o=s(e,"if").call(c,null!=n?s(n,"color"):n,{name:"if",hash:{},fn:l.program(5,t,0),inverse:l.program(7,t,0),data:t,loc:{start:{line:45,column:62},end:{line:45,column:150}}}))?o:"")+"fixedsize=true height=0.15 peripheries=2 "+(null!=(o=s(e,"if").call(c,null!=n?s(n,"active"):n,{name:"if",hash:{},fn:l.program(9,t,0),inverse:l.noop,data:t,loc:{start:{line:45,column:191},end:{line:45,column:225}}}))?o:"")+'label=""]\n'},50:function(l,n,e,a,t){var o=null!=n?n:l.nullContext||{},r=l.hooks.helperMissing,c="function",i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},u=' subgraph "cluster_'+(null!=(p=typeof(s=null!=(s=i(e,"name")||(null!=n?i(n,"name"):n))?s:r)==c?s.call(o,{name:"name",hash:{},data:t,loc:{start:{line:48,column:20},end:{line:48,column:30}}}):s)?p:"")+'" {\n class="'+(null!=(p=typeof(s=null!=(s=i(e,"class")||(null!=n?i(n,"class"):n))?s:r)==c?s.call(o,{name:"class",hash:{},data:t,loc:{start:{line:49,column:11},end:{line:49,column:22}}}):s)?p:"")+'" '+(null!=(p=i(e,"if").call(o,null!=n?i(n,"color"):n,{name:"if",hash:{},fn:l.program(12,t,0),inverse:l.noop,data:t,loc:{start:{line:49,column:24},end:{line:49,column:64}}}))?p:"")+'label= <\n <table cellborder="0" border="0">\n <tr><td>'+(null!=(p=i(e,"if").call(o,null!=n?i(n,"active"):n,{name:"if",hash:{},fn:l.program(20,t,0),inverse:l.program(22,t,0),data:t,loc:{start:{line:51,column:14},end:{line:51,column:68}}}))?p:"")+"</td></tr>\n",s=null!=(s=i(e,"actionStrings")||(null!=n?i(n,"actionStrings"):n))?s:r,m={name:"actionStrings",hash:{},fn:l.program(51,t,0),inverse:l.noop,data:t,loc:{start:{line:52,column:6},end:{line:55,column:24}}},p=typeof s==c?s.call(o,m):s;return null!=(p=i(e,"actionStrings")?p:l.hooks.blockHelperMissing.call(n,p,m))&&(u+=p),u+" </table>\n > "+(null!=(p=i(e,"if").call(o,null!=n?i(n,"parentIsParallel"):n,{name:"if",hash:{},fn:l.program(53,t,0),inverse:l.program(55,t,0),data:t,loc:{start:{line:57,column:6},end:{line:57,column:137}}}))?p:"")+'\n "'+(null!=(p=typeof(s=null!=(s=i(e,"name")||(null!=n?i(n,"name"):n))?s:r)==c?s.call(o,{name:"name",hash:{},data:t,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=(i(e,"stateSection")||n&&i(n,"stateSection")||r).call(o,null!=n?i(n,"statemachine"):n,{name:"stateSection",hash:{},fn:l.program(33,t,0),inverse:l.noop,data:t,loc:{start:{line:59,column:4},end:{line:59,column:51}}}))?p:"")+"\n }\n"},51:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(e=o(e,"if").call(null!=n?n:l.nullContext||{},t&&o(t,"first"),{name:"if",hash:{},fn:l.program(25,t,0),inverse:l.noop,data:t,loc:{start:{line:53,column:8},end:{line:53,column:34}}}))?e:"")+'\n <tr><td align="left">'+l.escapeExpression(l.lambda(n,n))+"</td></tr>\n"},53:function(l,n,e,a,t){return'style="dashed" penwidth=1'},55:function(l,n,e,a,t){var o=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"style=rounded "+(null!=(e=o(e,"if").call(null!=n?n:l.nullContext||{},null!=n?o(n,"active"):n,{name:"if",hash:{},fn:l.program(56,t,0),inverse:l.program(58,t,0),data:t,loc:{start:{line:57,column:77},end:{line:57,column:130}}}))?e:"")},56:function(l,n,e,a,t){return"penwidth=3.0"},58:function(l,n,e,a,t){return"penwidth=2.0"},60:function(l,n,e,a,t,o,r){var c=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},i="",u=null!=(u=c(e,"noteName")||(null!=n?c(n,"noteName"):n))?u:l.hooks.helperMissing,o={name:"noteName",hash:{},fn:l.program(61,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:63,column:4},end:{line:66,column:17}}},r="function"==typeof u?u.call(null!=n?n:l.nullContext||{},o):u;return null!=(r=c(e,"noteName")?r:l.hooks.blockHelperMissing.call(n,r,o))&&(i+=r),i},61:function(l,n,e,a,t,o,r){var c,i=l.lambda,l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(c=i(n,n))?c:"")+'" [color=black fontcolor=black label="'+(null!=(c=i(null!=r[1]?l(r[1],"noteFlattened"):r[1],n))?c:"")+'" shape=note fontsize=10 fillcolor="#ffffcc" penwidth=1.0]\n "'+(null!=(c=i(null!=r[1]?l(r[1],"name"):r[1],n))?c:"")+'" -> "'+(null!=(c=i(n,n))?c:"")+'" [style=dashed arrowtail=none arrowhead=none]\n'},compiler:[8,">= 4.3.0"],main:function(l,n,e,a,t,o,r){var c=null!=n?n:l.nullContext||{},i=l.hooks.helperMissing,u="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:i,h={name:"compositeStates",hash:{},fn:l.program(1,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:1,column:0},end:{line:5,column:20}}},d=typeof f==u?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:i,h={name:"initialStates",hash:{},fn:l.program(4,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:6,column:0},end:{line:8,column:18}}},d=typeof f==u?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:i,h={name:"regularStates",hash:{},fn:l.program(11,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:9,column:0},end:{line:19,column:18}}},d=typeof f==u?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:i,h={name:"historyStates",hash:{},fn:l.program(27,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:20,column:0},end:{line:22,column:18}}},d=typeof f==u?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:i,h={name:"deepHistoryStates",hash:{},fn:l.program(29,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:23,column:0},end:{line:25,column:22}}},d=typeof f==u?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:i,h={name:"choiceStates",hash:{},fn:l.program(31,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:26,column:0},end:{line:29,column:17}}},d=typeof f==u?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:i,h={name:"forkjoinStates",hash:{},fn:l.program(43,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:30,column:0},end:{line:32,column:19}}},d=typeof f==u?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:i,h={name:"junctionStates",hash:{},fn:l.program(4,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:33,column:0},end:{line:35,column:19}}},d=typeof f==u?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:i,h={name:"terminateStates",hash:{},fn:l.program(45,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:36,column:0},end:{line:43,column:20}}},d=typeof f==u?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:i,h={name:"finalStates",hash:{},fn:l.program(48,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:44,column:0},end:{line:46,column:16}}},d=typeof f==u?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:i,h={name:"compositeStates",hash:{},fn:l.program(50,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:47,column:0},end:{line:61,column:20}}},d=typeof f==u?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:i,h={name:"states",hash:{},fn:l.program(60,t,0,o,r),inverse:l.noop,data:t,loc:{start:{line:62,column:0},end:{line:67,column:11}}},d=typeof f==u?f.call(c,h):f,null!=(d=m(e,"states")?d:s.call(n,d,h))&&(p+=d),p},useData:!0,useDepths:!0});
|
package/src/render/dot/index.mjs
CHANGED
|
@@ -8,8 +8,6 @@ import Counter from "./counter.mjs";
|
|
|
8
8
|
import renderDotFromAST from "./render-dot-from-ast.js";
|
|
9
9
|
import utl from "./utl.mjs";
|
|
10
10
|
|
|
11
|
-
let gCounter = {};
|
|
12
|
-
|
|
13
11
|
/**
|
|
14
12
|
* @param {StateMachineModel} pStateMachineModel
|
|
15
13
|
* @returns {(pState: import("../../../types/state-machine-cat.js").IState) => import("../../../types/state-machine-cat.js").IState}
|
|
@@ -135,16 +133,18 @@ function addCompositeSelfFlag(pStateMachineModel) {
|
|
|
135
133
|
};
|
|
136
134
|
}
|
|
137
135
|
|
|
138
|
-
function nameTransition(
|
|
139
|
-
pTransition
|
|
140
|
-
pTransition.
|
|
141
|
-
|
|
136
|
+
function nameTransition(pCounter) {
|
|
137
|
+
return (pTransition) => {
|
|
138
|
+
pTransition.name = `tr_${pTransition.from}_${
|
|
139
|
+
pTransition.to
|
|
140
|
+
}_${pCounter.nextAsString()}`;
|
|
142
141
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
142
|
+
if (Boolean(pTransition.note)) {
|
|
143
|
+
pTransition.noteName = `note_${pTransition.name}`;
|
|
144
|
+
}
|
|
146
145
|
|
|
147
|
-
|
|
146
|
+
return pTransition;
|
|
147
|
+
};
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
/**
|
|
@@ -152,9 +152,9 @@ function nameTransition(pTransition) {
|
|
|
152
152
|
* @param {string} pDirection
|
|
153
153
|
* @returns {import("../../../types/state-machine-cat.js").ITransition}
|
|
154
154
|
*/
|
|
155
|
-
function transformTransitions(pStateMachineModel, pDirection) {
|
|
155
|
+
function transformTransitions(pStateMachineModel, pDirection, pCounter) {
|
|
156
156
|
return pStateMachineModel.flattenedTransitions
|
|
157
|
-
.map(nameTransition)
|
|
157
|
+
.map(nameTransition(pCounter))
|
|
158
158
|
.map(transitionTransformers.escapeTransitionStrings)
|
|
159
159
|
.map(transitionTransformers.classifyTransition)
|
|
160
160
|
.map(stateTransformers.flattenNote)
|
|
@@ -166,14 +166,14 @@ function transformTransitions(pStateMachineModel, pDirection) {
|
|
|
166
166
|
/** @type {import("../../../types/state-machine-cat.js").StringRenderFunctionType} */
|
|
167
167
|
export default (pStateMachine, pOptions) => {
|
|
168
168
|
pOptions = pOptions || {};
|
|
169
|
-
gCounter = new Counter();
|
|
170
169
|
|
|
171
170
|
let lStateMachine = cloneDeep(pStateMachine);
|
|
172
171
|
const lStateMachineModel = new StateMachineModel(lStateMachine);
|
|
173
172
|
|
|
174
173
|
lStateMachine.transitions = transformTransitions(
|
|
175
174
|
lStateMachineModel,
|
|
176
|
-
pOptions.direction
|
|
175
|
+
pOptions.direction,
|
|
176
|
+
new Counter()
|
|
177
177
|
);
|
|
178
178
|
|
|
179
179
|
lStateMachine.states = transformStates(
|
|
@@ -257,13 +257,13 @@ export interface IRenderOptions extends IBaseRenderOptions {
|
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
export type StringRenderFunctionType = (
|
|
260
|
-
|
|
261
|
-
pOptions
|
|
260
|
+
pStateMachine: IStateMachine,
|
|
261
|
+
pOptions?: IRenderOptions
|
|
262
262
|
) => string;
|
|
263
263
|
|
|
264
264
|
export type WhateverRenderFunctionType = (
|
|
265
|
-
|
|
266
|
-
pOptions
|
|
265
|
+
pStateMachine: IStateMachine,
|
|
266
|
+
pOptions?: IRenderOptions
|
|
267
267
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
268
268
|
) => any;
|
|
269
269
|
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
3
|
-
import fs from "node:fs";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @param {string} pOutputTo
|
|
7
|
-
* @returns {NodeJS.WritableStream}
|
|
8
|
-
*/
|
|
9
|
-
export function getOutStream(pOutputTo) {
|
|
10
|
-
if ("-" === pOutputTo) {
|
|
11
|
-
return process.stdout;
|
|
12
|
-
}
|
|
13
|
-
return fs.createWriteStream(pOutputTo);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @param {string} pInputFrom
|
|
18
|
-
* @returns {NodeJS.ReadableStream}
|
|
19
|
-
*/
|
|
20
|
-
export function getInStream(pInputFrom) {
|
|
21
|
-
if ("-" === pInputFrom) {
|
|
22
|
-
return process.stdin;
|
|
23
|
-
}
|
|
24
|
-
return fs.createReadStream(pInputFrom);
|
|
25
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
// seems eslint-plugin-import and eslint-plugin-node can't handle exports
|
|
3
|
-
// fields yet. No man overboard not checking against this, because dependency-cruiser
|
|
4
|
-
// will also find them
|
|
5
|
-
|
|
6
|
-
import chalk from "chalk";
|
|
7
|
-
import indentString from "indent-string";
|
|
8
|
-
import wrapAnsi from "wrap-ansi";
|
|
9
|
-
import dotToVectorNative from "../render/vector/dot-to-vector-native.mjs";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @param {string} pString
|
|
13
|
-
* @returns {string}
|
|
14
|
-
*/
|
|
15
|
-
function wrapAndIndent(pString) {
|
|
16
|
-
const lDogmaticMaxConsoleWidth = 78;
|
|
17
|
-
const lDefaultIndent = 2;
|
|
18
|
-
|
|
19
|
-
const lMaxWidth = lDogmaticMaxConsoleWidth - lDefaultIndent;
|
|
20
|
-
|
|
21
|
-
return indentString(wrapAnsi(pString, lMaxWidth), lDefaultIndent);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @param {boolean} pDotIsAvailable
|
|
26
|
-
* @return {string}
|
|
27
|
-
*/
|
|
28
|
-
export default (pDotIsAvailable = dotToVectorNative.isAvailable({})) => {
|
|
29
|
-
const lDescription =
|
|
30
|
-
"Write beautiful state charts - https://github.com/sverweij/state-machine-cat";
|
|
31
|
-
const lNode12Warning =
|
|
32
|
-
"When you want to output svg and the native GraphViz isn't installed, " +
|
|
33
|
-
"state-machine-cat will fall back to viz.js and you might see " +
|
|
34
|
-
`${chalk.italic(
|
|
35
|
-
"'Invalid asm.js: Function definition doesn't match use'"
|
|
36
|
-
)}. ` +
|
|
37
|
-
"It's harmless and your svg will come out ok. See " +
|
|
38
|
-
`https://github.com/sverweij/state-machine-cat/blob/develop/docs/faq.md#viz`;
|
|
39
|
-
|
|
40
|
-
return indentString(
|
|
41
|
-
pDotIsAvailable
|
|
42
|
-
? lDescription
|
|
43
|
-
: `${lDescription}\n\n${wrapAndIndent(chalk.dim(lNode12Warning))}`
|
|
44
|
-
);
|
|
45
|
-
};
|