@statewalker/fsm-charts 0.2.4 → 0.2.5

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.
Files changed (123) hide show
  1. package/dist/{chunk-AZBRQNTU.js → chunk-2LFUT2C6.js} +1062 -1110
  2. package/dist/{chunk-SVKVQY7B.js → chunk-ARZYBFNA.js} +4 -4
  3. package/dist/{chunk-36ZLXJVD.js → chunk-CR2M4445.js} +35 -33
  4. package/dist/{chunk-TZHCBZVP.js → chunk-GW2Z65BN.js} +22 -15
  5. package/dist/chunk-PKBMQBKP.js +5 -0
  6. package/dist/{chunk-VILLJJJD.js → chunk-RZ4FP6JB.js} +11 -9
  7. package/dist/index-config.js +2 -1
  8. package/dist/index-dom.js +2 -1
  9. package/dist/{index-html-DgSCNHkR.d.ts → index-html-BBQqYoST.d.ts} +10 -10
  10. package/dist/index-html.d.ts +1 -1
  11. package/dist/index-html.js +2 -1
  12. package/dist/index-layout.d.ts +15 -15
  13. package/dist/index-layout.js +2 -1
  14. package/dist/index-runtime.js +2 -1
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.js +6 -5
  17. package/package.json +16 -18
  18. package/src/config/concatTransitionsToString.ts +2 -2
  19. package/src/config/index.ts +4 -4
  20. package/src/config/serializeProcessConfig.ts +3 -3
  21. package/src/config/splitTransitionString.ts +2 -2
  22. package/src/config/toFsmStateConfig.ts +3 -3
  23. package/src/dagre/acyclic.js +9 -10
  24. package/src/dagre/add-border-segments.js +11 -7
  25. package/src/dagre/coordinate-system.js +12 -12
  26. package/src/dagre/data/list.js +2 -2
  27. package/src/dagre/debug.d.ts +1 -1
  28. package/src/dagre/debug.js +11 -11
  29. package/src/dagre/greedy-fas.js +17 -21
  30. package/src/dagre/index.d.ts +4 -4
  31. package/src/dagre/index.js +4 -4
  32. package/src/dagre/layout.js +107 -96
  33. package/src/dagre/nesting-graph.js +13 -19
  34. package/src/dagre/normalize.js +7 -7
  35. package/src/dagre/order/add-subgraph-constraints.js +2 -2
  36. package/src/dagre/order/barycenter.d.ts +1 -1
  37. package/src/dagre/order/barycenter.js +4 -4
  38. package/src/dagre/order/build-layer-graph.d.ts +1 -1
  39. package/src/dagre/order/build-layer-graph.js +7 -9
  40. package/src/dagre/order/cross-count.js +14 -17
  41. package/src/dagre/order/index.js +19 -17
  42. package/src/dagre/order/init-order.js +5 -15
  43. package/src/dagre/order/resolve-conflicts.js +10 -14
  44. package/src/dagre/order/sort-subgraph.d.ts +1 -1
  45. package/src/dagre/order/sort-subgraph.js +13 -14
  46. package/src/dagre/order/sort.d.ts +1 -1
  47. package/src/dagre/order/sort.js +6 -10
  48. package/src/dagre/parent-dummy-chains.js +10 -4
  49. package/src/dagre/position/bk.d.ts +3 -3
  50. package/src/dagre/position/bk.js +84 -65
  51. package/src/dagre/position/index.js +7 -11
  52. package/src/dagre/rank/feasible-tree.d.ts +1 -1
  53. package/src/dagre/rank/feasible-tree.js +6 -6
  54. package/src/dagre/rank/index.js +6 -6
  55. package/src/dagre/rank/network-simplex.d.ts +0 -1
  56. package/src/dagre/rank/network-simplex.js +20 -25
  57. package/src/dagre/rank/util.js +2 -6
  58. package/src/dagre/util.d.ts +12 -6
  59. package/src/dagre/util.js +31 -37
  60. package/src/dom/buildSections.ts +16 -12
  61. package/src/dom/description-panels.ts +3 -3
  62. package/src/dom/getStatesDescriptions.ts +1 -1
  63. package/src/full/index.ts +1 -1
  64. package/src/full/toFsmStateCharts.ts +10 -10
  65. package/src/graphlib/alg/components.js +2 -2
  66. package/src/graphlib/alg/dfs.js +5 -5
  67. package/src/graphlib/alg/dijkstra-all.js +4 -4
  68. package/src/graphlib/alg/dijkstra.js +9 -12
  69. package/src/graphlib/alg/find-cycles.js +7 -5
  70. package/src/graphlib/alg/floyd-warshall.js +8 -11
  71. package/src/graphlib/alg/index.d.ts +11 -11
  72. package/src/graphlib/alg/index.js +11 -11
  73. package/src/graphlib/alg/is-acyclic.js +1 -1
  74. package/src/graphlib/alg/postorder.js +2 -2
  75. package/src/graphlib/alg/preorder.js +2 -2
  76. package/src/graphlib/alg/prim.d.ts +1 -1
  77. package/src/graphlib/alg/prim.js +5 -5
  78. package/src/graphlib/alg/tarjan.js +3 -3
  79. package/src/graphlib/alg/topsort.js +1 -1
  80. package/src/graphlib/data/priority-queue.js +8 -10
  81. package/src/graphlib/graph.js +53 -52
  82. package/src/graphlib/index.d.ts +2 -2
  83. package/src/graphlib/index.js +2 -2
  84. package/src/graphlib/json.d.ts +1 -1
  85. package/src/graphlib/json.js +6 -6
  86. package/src/html/buildStatechartCss.ts +2 -2
  87. package/src/html/buildStatechartStyles.ts +1 -1
  88. package/src/html/buildStatechartSvg.ts +7 -7
  89. package/src/html/buildStatechartsPanel.ts +2 -2
  90. package/src/html/index.ts +4 -4
  91. package/src/index-config.ts +2 -2
  92. package/src/index-dom.ts +1 -1
  93. package/src/index-html.ts +2 -2
  94. package/src/index-layout.ts +2 -2
  95. package/src/index-runtime.ts +2 -2
  96. package/src/index.ts +8 -8
  97. package/src/layout/buildCharts.ts +5 -5
  98. package/src/layout/buildFlatCharts.ts +11 -13
  99. package/src/layout/getGraphParamsProvider.ts +5 -8
  100. package/src/layout/getLabelDimensions.ts +5 -5
  101. package/src/layout/index.ts +5 -4
  102. package/src/lodash-es/index.ts +2 -2
  103. package/src/lodash-es/types.ts +37 -35
  104. package/src/runtime/RuntimeStatechartApi.ts +12 -23
  105. package/src/runtime/StateChartIndex.ts +3 -3
  106. package/src/runtime/index.ts +2 -2
  107. package/src/types/FsmStateConfig.ts +1 -1
  108. package/src/types/GraphParamsProvider.ts +2 -2
  109. package/src/types/Position.ts +1 -1
  110. package/src/types/StateChart.ts +2 -2
  111. package/src/types/StateGraphEdge.ts +2 -2
  112. package/src/types/StateGraphNode.ts +2 -2
  113. package/src/types/TransitionsGraph.ts +4 -4
  114. package/src/types/index.ts +11 -11
  115. package/src/utils/BasisCurve.ts +3 -3
  116. package/src/utils/domToText.ts +1 -1
  117. package/src/utils/getPadding.ts +1 -1
  118. package/src/utils/newRegistry.ts +1 -1
  119. package/src/utils/serializeAttrs.ts +6 -6
  120. package/src/utils/serializeCss.ts +3 -3
  121. package/src/utils/serializeStyle.ts +2 -2
  122. package/src/utils/toKebabCase.ts +1 -1
  123. package/CHANGELOG.md +0 -1
@@ -1,22 +1,21 @@
1
- import { _ } from '../lodash-es/index.ts';
2
- import { greedyFAS } from './greedy-fas.js';
1
+ import { _ } from "../lodash-es/index.ts";
2
+ import { greedyFAS } from "./greedy-fas.js";
3
3
 
4
4
  export { run, undo };
5
5
 
6
6
  function run(g) {
7
- var fas = g.graph().acyclicer === 'greedy' ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
8
- _.forEach(fas, function (e) {
7
+ var fas =
8
+ g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
9
+ _.forEach(fas, (e) => {
9
10
  var label = g.edge(e);
10
11
  g.removeEdge(e);
11
12
  label.forwardName = e.name;
12
13
  label.reversed = true;
13
- g.setEdge(e.w, e.v, label, _.uniqueId('rev'));
14
+ g.setEdge(e.w, e.v, label, _.uniqueId("rev"));
14
15
  });
15
16
 
16
17
  function weightFn(g) {
17
- return function (e) {
18
- return g.edge(e).weight;
19
- };
18
+ return (e) => g.edge(e).weight;
20
19
  }
21
20
  }
22
21
 
@@ -31,7 +30,7 @@ function dfsFAS(g) {
31
30
  }
32
31
  visited[v] = true;
33
32
  stack[v] = true;
34
- _.forEach(g.outEdges(v), function (e) {
33
+ _.forEach(g.outEdges(v), (e) => {
35
34
  if (_.has(stack, e.w)) {
36
35
  fas.push(e);
37
36
  } else {
@@ -46,7 +45,7 @@ function dfsFAS(g) {
46
45
  }
47
46
 
48
47
  function undo(g) {
49
- _.forEach(g.edges(), function (e) {
48
+ _.forEach(g.edges(), (e) => {
50
49
  var label = g.edge(e);
51
50
  if (label.reversed) {
52
51
  g.removeEdge(e);
@@ -1,5 +1,5 @@
1
- import { _ } from '../lodash-es/index.ts';
2
- import * as util from './util.js';
1
+ import { _ } from "../lodash-es/index.ts";
2
+ import * as util from "./util.js";
3
3
 
4
4
  export { addBorderSegments };
5
5
 
@@ -11,12 +11,16 @@ function addBorderSegments(g) {
11
11
  _.forEach(children, dfs);
12
12
  }
13
13
 
14
- if (_.has(node, 'minRank')) {
14
+ if (_.has(node, "minRank")) {
15
15
  node.borderLeft = [];
16
16
  node.borderRight = [];
17
- for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {
18
- addBorderNode(g, 'borderLeft', '_bl', v, node, rank);
19
- addBorderNode(g, 'borderRight', '_br', v, node, rank);
17
+ for (
18
+ var rank = node.minRank, maxRank = node.maxRank + 1;
19
+ rank < maxRank;
20
+ ++rank
21
+ ) {
22
+ addBorderNode(g, "borderLeft", "_bl", v, node, rank);
23
+ addBorderNode(g, "borderRight", "_br", v, node, rank);
20
24
  }
21
25
  }
22
26
  }
@@ -27,7 +31,7 @@ function addBorderSegments(g) {
27
31
  function addBorderNode(g, prop, prefix, sg, sgNode, rank) {
28
32
  var label = { width: 0, height: 0, rank: rank, borderType: prop };
29
33
  var prev = sgNode[prop][rank - 1];
30
- var curr = util.addDummyNode(g, 'border', label, prefix);
34
+ var curr = util.addDummyNode(g, "border", label, prefix);
31
35
  sgNode[prop][rank] = curr;
32
36
  g.setParent(curr, sg);
33
37
  if (prev) {
@@ -1,31 +1,31 @@
1
- import { _ } from '../lodash-es/index.ts';
1
+ import { _ } from "../lodash-es/index.ts";
2
2
 
3
3
  export { adjust, undo };
4
4
 
5
5
  function adjust(g) {
6
6
  var rankDir = g.graph().rankdir.toLowerCase();
7
- if (rankDir === 'lr' || rankDir === 'rl') {
7
+ if (rankDir === "lr" || rankDir === "rl") {
8
8
  swapWidthHeight(g);
9
9
  }
10
10
  }
11
11
 
12
12
  function undo(g) {
13
13
  var rankDir = g.graph().rankdir.toLowerCase();
14
- if (rankDir === 'bt' || rankDir === 'rl') {
14
+ if (rankDir === "bt" || rankDir === "rl") {
15
15
  reverseY(g);
16
16
  }
17
17
 
18
- if (rankDir === 'lr' || rankDir === 'rl') {
18
+ if (rankDir === "lr" || rankDir === "rl") {
19
19
  swapXY(g);
20
20
  swapWidthHeight(g);
21
21
  }
22
22
  }
23
23
 
24
24
  function swapWidthHeight(g) {
25
- _.forEach(g.nodes(), function (v) {
25
+ _.forEach(g.nodes(), (v) => {
26
26
  swapWidthHeightOne(g.node(v));
27
27
  });
28
- _.forEach(g.edges(), function (e) {
28
+ _.forEach(g.edges(), (e) => {
29
29
  swapWidthHeightOne(g.edge(e));
30
30
  });
31
31
  }
@@ -37,14 +37,14 @@ function swapWidthHeightOne(attrs) {
37
37
  }
38
38
 
39
39
  function reverseY(g) {
40
- _.forEach(g.nodes(), function (v) {
40
+ _.forEach(g.nodes(), (v) => {
41
41
  reverseYOne(g.node(v));
42
42
  });
43
43
 
44
- _.forEach(g.edges(), function (e) {
44
+ _.forEach(g.edges(), (e) => {
45
45
  var edge = g.edge(e);
46
46
  _.forEach(edge.points, reverseYOne);
47
- if (_.has(edge, 'y')) {
47
+ if (_.has(edge, "y")) {
48
48
  reverseYOne(edge);
49
49
  }
50
50
  });
@@ -55,14 +55,14 @@ function reverseYOne(attrs) {
55
55
  }
56
56
 
57
57
  function swapXY(g) {
58
- _.forEach(g.nodes(), function (v) {
58
+ _.forEach(g.nodes(), (v) => {
59
59
  swapXYOne(g.node(v));
60
60
  });
61
61
 
62
- _.forEach(g.edges(), function (e) {
62
+ _.forEach(g.edges(), (e) => {
63
63
  var edge = g.edge(e);
64
64
  _.forEach(edge.points, swapXYOne);
65
- if (_.has(edge, 'x')) {
65
+ if (_.has(edge, "x")) {
66
66
  swapXYOne(edge);
67
67
  }
68
68
  });
@@ -37,7 +37,7 @@ class List {
37
37
  strs.push(JSON.stringify(curr, filterOutLinks));
38
38
  curr = curr._prev;
39
39
  }
40
- return '[' + strs.join(', ') + ']';
40
+ return `[${strs.join(", ")}]`;
41
41
  }
42
42
  }
43
43
 
@@ -49,7 +49,7 @@ function unlink(entry) {
49
49
  }
50
50
 
51
51
  function filterOutLinks(k, v) {
52
- if (k !== '_next' && k !== '_prev') {
52
+ if (k !== "_next" && k !== "_prev") {
53
53
  return v;
54
54
  }
55
55
  }
@@ -1,2 +1,2 @@
1
1
  export function debugOrdering(g: any): Graph;
2
- import { Graph } from '../graphlib/index.js';
2
+ import { Graph } from "../graphlib/index.js";
@@ -1,6 +1,6 @@
1
- import { _ } from '../lodash-es/index.ts';
2
- import { Graph } from '../graphlib/index.js';
3
- import * as util from './util.js';
1
+ import { Graph } from "../graphlib/index.js";
2
+ import { _ } from "../lodash-es/index.ts";
3
+ import * as util from "./util.js";
4
4
 
5
5
  export { debugOrdering };
6
6
 
@@ -10,20 +10,20 @@ function debugOrdering(g) {
10
10
 
11
11
  var h = new Graph({ compound: true, multigraph: true }).setGraph({});
12
12
 
13
- _.forEach(g.nodes(), function (v) {
13
+ _.forEach(g.nodes(), (v) => {
14
14
  h.setNode(v, { label: v });
15
- h.setParent(v, 'layer' + g.node(v).rank);
15
+ h.setParent(v, `layer${g.node(v).rank}`);
16
16
  });
17
17
 
18
- _.forEach(g.edges(), function (e) {
18
+ _.forEach(g.edges(), (e) => {
19
19
  h.setEdge(e.v, e.w, {}, e.name);
20
20
  });
21
21
 
22
- _.forEach(layerMatrix, function (layer, i) {
23
- var layerV = 'layer' + i;
24
- h.setNode(layerV, { rank: 'same' });
25
- _.reduce(layer, function (u, v) {
26
- h.setEdge(u, v, { style: 'invis' });
22
+ _.forEach(layerMatrix, (layer, i) => {
23
+ var layerV = `layer${i}`;
24
+ h.setNode(layerV, { rank: "same" });
25
+ _.reduce(layer, (u, v) => {
26
+ h.setEdge(u, v, { style: "invis" });
27
27
  return v;
28
28
  });
29
29
  });
@@ -1,6 +1,6 @@
1
- import { _ } from '../lodash-es/index.ts';
2
- import { Graph } from '../graphlib/index.js';
3
- import { List } from './data/list.js';
1
+ import { Graph } from "../graphlib/index.js";
2
+ import { _ } from "../lodash-es/index.ts";
3
+ import { List } from "./data/list.js";
4
4
 
5
5
  /*
6
6
  * A greedy heuristic for finding a feedback arc set for a graph. A feedback
@@ -21,11 +21,7 @@ function greedyFAS(g, weightFn) {
21
21
  var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);
22
22
 
23
23
  // Expand multi-edges
24
- return _.flatten(
25
- _.map(results, function (e) {
26
- return g.outEdges(e.v, e.w);
27
- })
28
- );
24
+ return _.flatten(_.map(results, (e) => g.outEdges(e.v, e.w)));
29
25
  }
30
26
 
31
27
  function doGreedyFAS(g, buckets, zeroIdx) {
@@ -45,7 +41,9 @@ function doGreedyFAS(g, buckets, zeroIdx) {
45
41
  for (var i = buckets.length - 2; i > 0; --i) {
46
42
  entry = buckets[i].dequeue();
47
43
  if (entry) {
48
- results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
44
+ results = results.concat(
45
+ removeNode(g, buckets, zeroIdx, entry, true),
46
+ );
49
47
  break;
50
48
  }
51
49
  }
@@ -58,7 +56,7 @@ function doGreedyFAS(g, buckets, zeroIdx) {
58
56
  function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
59
57
  var results = collectPredecessors ? [] : undefined;
60
58
 
61
- _.forEach(g.inEdges(entry.v), function (edge) {
59
+ _.forEach(g.inEdges(entry.v), (edge) => {
62
60
  var weight = g.edge(edge);
63
61
  var uEntry = g.node(edge.v);
64
62
 
@@ -70,11 +68,11 @@ function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
70
68
  assignBucket(buckets, zeroIdx, uEntry);
71
69
  });
72
70
 
73
- _.forEach(g.outEdges(entry.v), function (edge) {
71
+ _.forEach(g.outEdges(entry.v), (edge) => {
74
72
  var weight = g.edge(edge);
75
73
  var w = edge.w;
76
74
  var wEntry = g.node(w);
77
- wEntry['in'] -= weight;
75
+ wEntry.in -= weight;
78
76
  assignBucket(buckets, zeroIdx, wEntry);
79
77
  });
80
78
 
@@ -88,27 +86,25 @@ function buildState(g, weightFn) {
88
86
  var maxIn = 0;
89
87
  var maxOut = 0;
90
88
 
91
- _.forEach(g.nodes(), function (v) {
89
+ _.forEach(g.nodes(), (v) => {
92
90
  fasGraph.setNode(v, { v: v, in: 0, out: 0 });
93
91
  });
94
92
 
95
93
  // Aggregate weights on nodes, but also sum the weights across multi-edges
96
94
  // into a single edge for the fasGraph.
97
- _.forEach(g.edges(), function (e) {
95
+ _.forEach(g.edges(), (e) => {
98
96
  var prevWeight = fasGraph.edge(e.v, e.w) || 0;
99
97
  var weight = weightFn(e);
100
98
  var edgeWeight = prevWeight + weight;
101
99
  fasGraph.setEdge(e.v, e.w, edgeWeight);
102
100
  maxOut = Math.max(maxOut, (fasGraph.node(e.v).out += weight));
103
- maxIn = Math.max(maxIn, (fasGraph.node(e.w)['in'] += weight));
101
+ maxIn = Math.max(maxIn, (fasGraph.node(e.w).in += weight));
104
102
  });
105
103
 
106
- var buckets = _.range(maxOut + maxIn + 3).map(function () {
107
- return new List();
108
- });
104
+ var buckets = _.range(maxOut + maxIn + 3).map(() => new List());
109
105
  var zeroIdx = maxIn + 1;
110
106
 
111
- _.forEach(fasGraph.nodes(), function (v) {
107
+ _.forEach(fasGraph.nodes(), (v) => {
112
108
  assignBucket(buckets, zeroIdx, fasGraph.node(v));
113
109
  });
114
110
 
@@ -118,9 +114,9 @@ function buildState(g, weightFn) {
118
114
  function assignBucket(buckets, zeroIdx, entry) {
119
115
  if (!entry.out) {
120
116
  buckets[0].enqueue(entry);
121
- } else if (!entry['in']) {
117
+ } else if (!entry.in) {
122
118
  buckets[buckets.length - 1].enqueue(entry);
123
119
  } else {
124
- buckets[entry.out - entry['in'] + zeroIdx].enqueue(entry);
120
+ buckets[entry.out - entry.in + zeroIdx].enqueue(entry);
125
121
  }
126
122
  }
@@ -1,5 +1,5 @@
1
- import * as acyclic from './acyclic.js';
2
- import * as normalize from './normalize.js';
3
- import { rank } from './rank/index.js';
4
- import { layout } from './layout.js';
1
+ import * as acyclic from "./acyclic.js";
2
+ import * as normalize from "./normalize.js";
3
+ import { rank } from "./rank/index.js";
4
+ import { layout } from "./layout.js";
5
5
  export { acyclic, normalize, rank, layout };
@@ -1,6 +1,6 @@
1
- import * as acyclic from './acyclic.js';
2
- import { layout } from './layout.js';
3
- import * as normalize from './normalize.js';
4
- import { rank } from './rank/index.js';
1
+ import * as acyclic from "./acyclic.js";
2
+ import { layout } from "./layout.js";
3
+ import * as normalize from "./normalize.js";
4
+ import { rank } from "./rank/index.js";
5
5
 
6
6
  export { acyclic, normalize, rank, layout };