@statewalker/fsm-charts 0.2.3 → 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 +11 -11
  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,113 +1,111 @@
1
- import { _ } from '../lodash-es/index.ts';
2
- import { Graph } from '../graphlib/index.js';
3
- import { addBorderSegments } from './add-border-segments.js';
4
- import * as coordinateSystem from './coordinate-system.js';
5
- import * as acyclic from './acyclic.js';
6
- import * as normalize from './normalize.js';
7
- import { rank } from './rank/index.js';
8
- import * as nestingGraph from './nesting-graph.js';
9
- import { order } from './order/index.js';
10
- import { parentDummyChains } from './parent-dummy-chains.js';
11
- import { position } from './position/index.js';
12
- import * as util from './util.js';
1
+ import { Graph } from "../graphlib/index.js";
2
+ import { _ } from "../lodash-es/index.ts";
3
+ import * as acyclic from "./acyclic.js";
4
+ import { addBorderSegments } from "./add-border-segments.js";
5
+ import * as coordinateSystem from "./coordinate-system.js";
6
+ import * as nestingGraph from "./nesting-graph.js";
7
+ import * as normalize from "./normalize.js";
8
+ import { order } from "./order/index.js";
9
+ import { parentDummyChains } from "./parent-dummy-chains.js";
10
+ import { position } from "./position/index.js";
11
+ import { rank } from "./rank/index.js";
12
+ import * as util from "./util.js";
13
13
 
14
14
  export { layout };
15
15
 
16
16
  function layout(g, opts) {
17
- var time = opts && opts.debugTiming ? util.time : util.notime;
18
- time('layout', function () {
19
- var layoutGraph = time(' buildLayoutGraph', function () {
20
- return buildLayoutGraph(g);
21
- });
22
- time(' runLayout', function () {
17
+ var time = opts?.debugTiming ? util.time : util.notime;
18
+ time("layout", () => {
19
+ var layoutGraph = time(" buildLayoutGraph", () => buildLayoutGraph(g));
20
+ time(" runLayout", () => {
23
21
  runLayout(layoutGraph, time);
24
22
  });
25
- time(' updateInputGraph', function () {
23
+ time(" updateInputGraph", () => {
26
24
  updateInputGraph(g, layoutGraph);
27
25
  });
28
26
  });
29
27
  }
30
28
 
31
29
  function runLayout(g, time) {
32
- time(' makeSpaceForEdgeLabels', function () {
30
+ time(" makeSpaceForEdgeLabels", () => {
33
31
  makeSpaceForEdgeLabels(g);
34
32
  });
35
- time(' removeSelfEdges', function () {
33
+ time(" removeSelfEdges", () => {
36
34
  removeSelfEdges(g);
37
35
  });
38
- time(' acyclic', function () {
36
+ time(" acyclic", () => {
39
37
  acyclic.run(g);
40
38
  });
41
- time(' nestingGraph.run', function () {
39
+ time(" nestingGraph.run", () => {
42
40
  nestingGraph.run(g);
43
41
  });
44
- time(' rank', function () {
42
+ time(" rank", () => {
45
43
  rank(util.asNonCompoundGraph(g));
46
44
  });
47
- time(' injectEdgeLabelProxies', function () {
45
+ time(" injectEdgeLabelProxies", () => {
48
46
  injectEdgeLabelProxies(g);
49
47
  });
50
- time(' removeEmptyRanks', function () {
48
+ time(" removeEmptyRanks", () => {
51
49
  util.removeEmptyRanks(g);
52
50
  });
53
- time(' nestingGraph.cleanup', function () {
51
+ time(" nestingGraph.cleanup", () => {
54
52
  nestingGraph.cleanup(g);
55
53
  });
56
- time(' normalizeRanks', function () {
54
+ time(" normalizeRanks", () => {
57
55
  util.normalizeRanks(g);
58
56
  });
59
- time(' assignRankMinMax', function () {
57
+ time(" assignRankMinMax", () => {
60
58
  assignRankMinMax(g);
61
59
  });
62
- time(' removeEdgeLabelProxies', function () {
60
+ time(" removeEdgeLabelProxies", () => {
63
61
  removeEdgeLabelProxies(g);
64
62
  });
65
- time(' normalize.run', function () {
63
+ time(" normalize.run", () => {
66
64
  normalize.run(g);
67
65
  });
68
- time(' parentDummyChains', function () {
66
+ time(" parentDummyChains", () => {
69
67
  parentDummyChains(g);
70
68
  });
71
- time(' addBorderSegments', function () {
69
+ time(" addBorderSegments", () => {
72
70
  addBorderSegments(g);
73
71
  });
74
- time(' order', function () {
72
+ time(" order", () => {
75
73
  order(g);
76
74
  });
77
- time(' insertSelfEdges', function () {
75
+ time(" insertSelfEdges", () => {
78
76
  insertSelfEdges(g);
79
77
  });
80
- time(' adjustCoordinateSystem', function () {
78
+ time(" adjustCoordinateSystem", () => {
81
79
  coordinateSystem.adjust(g);
82
80
  });
83
- time(' position', function () {
81
+ time(" position", () => {
84
82
  position(g);
85
83
  });
86
- time(' positionSelfEdges', function () {
84
+ time(" positionSelfEdges", () => {
87
85
  positionSelfEdges(g);
88
86
  });
89
- time(' removeBorderNodes', function () {
87
+ time(" removeBorderNodes", () => {
90
88
  removeBorderNodes(g);
91
89
  });
92
- time(' normalize.undo', function () {
90
+ time(" normalize.undo", () => {
93
91
  normalize.undo(g);
94
92
  });
95
- time(' fixupEdgeLabelCoords', function () {
93
+ time(" fixupEdgeLabelCoords", () => {
96
94
  fixupEdgeLabelCoords(g);
97
95
  });
98
- time(' undoCoordinateSystem', function () {
96
+ time(" undoCoordinateSystem", () => {
99
97
  coordinateSystem.undo(g);
100
98
  });
101
- time(' translateGraph', function () {
99
+ time(" translateGraph", () => {
102
100
  translateGraph(g);
103
101
  });
104
- time(' assignNodeIntersects', function () {
102
+ time(" assignNodeIntersects", () => {
105
103
  assignNodeIntersects(g);
106
104
  });
107
- time(' reversePoints', function () {
105
+ time(" reversePoints", () => {
108
106
  reversePointsForReversedEdges(g);
109
107
  });
110
- time(' acyclic.undo', function () {
108
+ time(" acyclic.undo", () => {
111
109
  acyclic.undo(g);
112
110
  });
113
111
  }
@@ -119,7 +117,7 @@ function runLayout(g, time) {
119
117
  * attributes can influence layout.
120
118
  */
121
119
  function updateInputGraph(inputGraph, layoutGraph) {
122
- _.forEach(inputGraph.nodes(), function (v) {
120
+ _.forEach(inputGraph.nodes(), (v) => {
123
121
  var inputLabel = inputGraph.node(v);
124
122
  var layoutLabel = layoutGraph.node(v);
125
123
 
@@ -134,12 +132,12 @@ function updateInputGraph(inputGraph, layoutGraph) {
134
132
  }
135
133
  });
136
134
 
137
- _.forEach(inputGraph.edges(), function (e) {
135
+ _.forEach(inputGraph.edges(), (e) => {
138
136
  var inputLabel = inputGraph.edge(e);
139
137
  var layoutLabel = layoutGraph.edge(e);
140
138
 
141
139
  inputLabel.points = layoutLabel.points;
142
- if (_.has(layoutLabel, 'x')) {
140
+ if (_.has(layoutLabel, "x")) {
143
141
  inputLabel.x = layoutLabel.x;
144
142
  inputLabel.y = layoutLabel.y;
145
143
  }
@@ -149,21 +147,21 @@ function updateInputGraph(inputGraph, layoutGraph) {
149
147
  inputGraph.graph().height = layoutGraph.graph().height;
150
148
  }
151
149
 
152
- var graphNumAttrs = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'];
153
- var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' };
154
- var graphAttrs = ['acyclicer', 'ranker', 'rankdir', 'align'];
155
- var nodeNumAttrs = ['width', 'height'];
150
+ var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
151
+ var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
152
+ var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
153
+ var nodeNumAttrs = ["width", "height"];
156
154
  var nodeDefaults = { width: 0, height: 0 };
157
- var edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];
155
+ var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
158
156
  var edgeDefaults = {
159
157
  minlen: 1,
160
158
  weight: 1,
161
159
  width: 0,
162
160
  height: 0,
163
161
  labeloffset: 10,
164
- labelpos: 'r',
162
+ labelpos: "r",
165
163
  };
166
- var edgeAttrs = ['labelpos'];
164
+ var edgeAttrs = ["labelpos"];
167
165
 
168
166
  /*
169
167
  * Constructs a new graph from the input graph, which can be used for layout.
@@ -176,20 +174,33 @@ function buildLayoutGraph(inputGraph) {
176
174
  var graph = canonicalize(inputGraph.graph());
177
175
 
178
176
  g.setGraph(
179
- _.merge({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), _.pick(graph, graphAttrs))
177
+ _.merge(
178
+ {},
179
+ graphDefaults,
180
+ selectNumberAttrs(graph, graphNumAttrs),
181
+ _.pick(graph, graphAttrs),
182
+ ),
180
183
  );
181
184
 
182
- _.forEach(inputGraph.nodes(), function (v) {
185
+ _.forEach(inputGraph.nodes(), (v) => {
183
186
  var node = canonicalize(inputGraph.node(v));
184
- g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));
187
+ g.setNode(
188
+ v,
189
+ _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults),
190
+ );
185
191
  g.setParent(v, inputGraph.parent(v));
186
192
  });
187
193
 
188
- _.forEach(inputGraph.edges(), function (e) {
194
+ _.forEach(inputGraph.edges(), (e) => {
189
195
  var edge = canonicalize(inputGraph.edge(e));
190
196
  g.setEdge(
191
197
  e,
192
- _.merge({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), _.pick(edge, edgeAttrs))
198
+ _.merge(
199
+ {},
200
+ edgeDefaults,
201
+ selectNumberAttrs(edge, edgeNumAttrs),
202
+ _.pick(edge, edgeAttrs),
203
+ ),
193
204
  );
194
205
  });
195
206
 
@@ -207,11 +218,11 @@ function buildLayoutGraph(inputGraph) {
207
218
  function makeSpaceForEdgeLabels(g) {
208
219
  var graph = g.graph();
209
220
  graph.ranksep /= 2;
210
- _.forEach(g.edges(), function (e) {
221
+ _.forEach(g.edges(), (e) => {
211
222
  var edge = g.edge(e);
212
223
  edge.minlen *= 2;
213
- if (edge.labelpos.toLowerCase() !== 'c') {
214
- if (graph.rankdir === 'TB' || graph.rankdir === 'BT') {
224
+ if (edge.labelpos.toLowerCase() !== "c") {
225
+ if (graph.rankdir === "TB" || graph.rankdir === "BT") {
215
226
  edge.width += edge.labeloffset;
216
227
  } else {
217
228
  edge.height += edge.labeloffset;
@@ -227,20 +238,20 @@ function makeSpaceForEdgeLabels(g) {
227
238
  * label's position.
228
239
  */
229
240
  function injectEdgeLabelProxies(g) {
230
- _.forEach(g.edges(), function (e) {
241
+ _.forEach(g.edges(), (e) => {
231
242
  var edge = g.edge(e);
232
243
  if (edge.width && edge.height) {
233
244
  var v = g.node(e.v);
234
245
  var w = g.node(e.w);
235
246
  var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };
236
- util.addDummyNode(g, 'edge-proxy', label, '_ep');
247
+ util.addDummyNode(g, "edge-proxy", label, "_ep");
237
248
  }
238
249
  });
239
250
  }
240
251
 
241
252
  function assignRankMinMax(g) {
242
253
  var maxRank = 0;
243
- _.forEach(g.nodes(), function (v) {
254
+ _.forEach(g.nodes(), (v) => {
244
255
  var node = g.node(v);
245
256
  if (node.borderTop) {
246
257
  node.minRank = g.node(node.borderTop).rank;
@@ -253,9 +264,9 @@ function assignRankMinMax(g) {
253
264
  }
254
265
 
255
266
  function removeEdgeLabelProxies(g) {
256
- _.forEach(g.nodes(), function (v) {
267
+ _.forEach(g.nodes(), (v) => {
257
268
  var node = g.node(v);
258
- if (node.dummy === 'edge-proxy') {
269
+ if (node.dummy === "edge-proxy") {
259
270
  g.edge(node.e).labelRank = node.rank;
260
271
  g.removeNode(v);
261
272
  }
@@ -282,12 +293,12 @@ function translateGraph(g) {
282
293
  maxY = Math.max(maxY, y + h / 2);
283
294
  }
284
295
 
285
- _.forEach(g.nodes(), function (v) {
296
+ _.forEach(g.nodes(), (v) => {
286
297
  getExtremes(g.node(v));
287
298
  });
288
- _.forEach(g.edges(), function (e) {
299
+ _.forEach(g.edges(), (e) => {
289
300
  var edge = g.edge(e);
290
- if (_.has(edge, 'x')) {
301
+ if (_.has(edge, "x")) {
291
302
  getExtremes(edge);
292
303
  }
293
304
  });
@@ -295,22 +306,22 @@ function translateGraph(g) {
295
306
  minX -= marginX;
296
307
  minY -= marginY;
297
308
 
298
- _.forEach(g.nodes(), function (v) {
309
+ _.forEach(g.nodes(), (v) => {
299
310
  var node = g.node(v);
300
311
  node.x -= minX;
301
312
  node.y -= minY;
302
313
  });
303
314
 
304
- _.forEach(g.edges(), function (e) {
315
+ _.forEach(g.edges(), (e) => {
305
316
  var edge = g.edge(e);
306
- _.forEach(edge.points, function (p) {
317
+ _.forEach(edge.points, (p) => {
307
318
  p.x -= minX;
308
319
  p.y -= minY;
309
320
  });
310
- if (_.has(edge, 'x')) {
321
+ if (_.has(edge, "x")) {
311
322
  edge.x -= minX;
312
323
  }
313
- if (_.has(edge, 'y')) {
324
+ if (_.has(edge, "y")) {
314
325
  edge.y -= minY;
315
326
  }
316
327
  });
@@ -320,7 +331,7 @@ function translateGraph(g) {
320
331
  }
321
332
 
322
333
  function assignNodeIntersects(g) {
323
- _.forEach(g.edges(), function (e) {
334
+ _.forEach(g.edges(), (e) => {
324
335
  var edge = g.edge(e);
325
336
  var nodeV = g.node(e.v);
326
337
  var nodeW = g.node(e.w);
@@ -339,17 +350,17 @@ function assignNodeIntersects(g) {
339
350
  }
340
351
 
341
352
  function fixupEdgeLabelCoords(g) {
342
- _.forEach(g.edges(), function (e) {
353
+ _.forEach(g.edges(), (e) => {
343
354
  var edge = g.edge(e);
344
- if (_.has(edge, 'x')) {
345
- if (edge.labelpos === 'l' || edge.labelpos === 'r') {
355
+ if (_.has(edge, "x")) {
356
+ if (edge.labelpos === "l" || edge.labelpos === "r") {
346
357
  edge.width -= edge.labeloffset;
347
358
  }
348
359
  switch (edge.labelpos) {
349
- case 'l':
360
+ case "l":
350
361
  edge.x -= edge.width / 2 + edge.labeloffset;
351
362
  break;
352
- case 'r':
363
+ case "r":
353
364
  edge.x += edge.width / 2 + edge.labeloffset;
354
365
  break;
355
366
  }
@@ -358,7 +369,7 @@ function fixupEdgeLabelCoords(g) {
358
369
  }
359
370
 
360
371
  function reversePointsForReversedEdges(g) {
361
- _.forEach(g.edges(), function (e) {
372
+ _.forEach(g.edges(), (e) => {
362
373
  var edge = g.edge(e);
363
374
  if (edge.reversed) {
364
375
  edge.points.reverse();
@@ -367,7 +378,7 @@ function reversePointsForReversedEdges(g) {
367
378
  }
368
379
 
369
380
  function removeBorderNodes(g) {
370
- _.forEach(g.nodes(), function (v) {
381
+ _.forEach(g.nodes(), (v) => {
371
382
  if (g.children(v).length) {
372
383
  var node = g.node(v);
373
384
  var t = g.node(node.borderTop);
@@ -382,15 +393,15 @@ function removeBorderNodes(g) {
382
393
  }
383
394
  });
384
395
 
385
- _.forEach(g.nodes(), function (v) {
386
- if (g.node(v).dummy === 'border') {
396
+ _.forEach(g.nodes(), (v) => {
397
+ if (g.node(v).dummy === "border") {
387
398
  g.removeNode(v);
388
399
  }
389
400
  });
390
401
  }
391
402
 
392
403
  function removeSelfEdges(g) {
393
- _.forEach(g.edges(), function (e) {
404
+ _.forEach(g.edges(), (e) => {
394
405
  if (e.v === e.w) {
395
406
  var node = g.node(e.v);
396
407
  if (!node.selfEdges) {
@@ -404,15 +415,15 @@ function removeSelfEdges(g) {
404
415
 
405
416
  function insertSelfEdges(g) {
406
417
  var layers = util.buildLayerMatrix(g);
407
- _.forEach(layers, function (layer) {
418
+ _.forEach(layers, (layer) => {
408
419
  var orderShift = 0;
409
- _.forEach(layer, function (v, i) {
420
+ _.forEach(layer, (v, i) => {
410
421
  var node = g.node(v);
411
422
  node.order = i + orderShift;
412
- _.forEach(node.selfEdges, function (selfEdge) {
423
+ _.forEach(node.selfEdges, (selfEdge) => {
413
424
  util.addDummyNode(
414
425
  g,
415
- 'selfedge',
426
+ "selfedge",
416
427
  {
417
428
  width: selfEdge.label.width,
418
429
  height: selfEdge.label.height,
@@ -421,7 +432,7 @@ function insertSelfEdges(g) {
421
432
  e: selfEdge.e,
422
433
  label: selfEdge.label,
423
434
  },
424
- '_se'
435
+ "_se",
425
436
  );
426
437
  });
427
438
  delete node.selfEdges;
@@ -430,9 +441,9 @@ function insertSelfEdges(g) {
430
441
  }
431
442
 
432
443
  function positionSelfEdges(g) {
433
- _.forEach(g.nodes(), function (v) {
444
+ _.forEach(g.nodes(), (v) => {
434
445
  var node = g.node(v);
435
- if (node.dummy === 'selfedge') {
446
+ if (node.dummy === "selfedge") {
436
447
  var selfNode = g.node(node.e.v);
437
448
  var x = selfNode.x + selfNode.width / 2;
438
449
  var y = selfNode.y;
@@ -459,7 +470,7 @@ function selectNumberAttrs(obj, attrs) {
459
470
 
460
471
  function canonicalize(attrs) {
461
472
  var newAttrs = {};
462
- _.forEach(attrs, function (v, k) {
473
+ _.forEach(attrs, (v, k) => {
463
474
  newAttrs[k.toLowerCase()] = v;
464
475
  });
465
476
  return newAttrs;
@@ -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 { run, cleanup };
5
5
 
@@ -27,7 +27,7 @@ export { run, cleanup };
27
27
  * Graphs."
28
28
  */
29
29
  function run(g) {
30
- var root = util.addDummyNode(g, 'root', {}, '_root');
30
+ var root = util.addDummyNode(g, "root", {}, "_root");
31
31
  var depths = treeDepths(g);
32
32
  var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array
33
33
  var nodeSep = 2 * height + 1;
@@ -35,7 +35,7 @@ function run(g) {
35
35
  g.graph().nestingRoot = root;
36
36
 
37
37
  // Multiply minlen by nodeSep to align nodes on non-border ranks.
38
- _.forEach(g.edges(), function (e) {
38
+ _.forEach(g.edges(), (e) => {
39
39
  g.edge(e).minlen *= nodeSep;
40
40
  });
41
41
 
@@ -43,7 +43,7 @@ function run(g) {
43
43
  var weight = sumWeights(g) + 1;
44
44
 
45
45
  // Create border nodes and link them up
46
- _.forEach(g.children(), function (child) {
46
+ _.forEach(g.children(), (child) => {
47
47
  dfs(g, root, nodeSep, weight, height, depths, child);
48
48
  });
49
49
 
@@ -61,8 +61,8 @@ function dfs(g, root, nodeSep, weight, height, depths, v) {
61
61
  return;
62
62
  }
63
63
 
64
- var top = util.addBorderNode(g, '_bt');
65
- var bottom = util.addBorderNode(g, '_bb');
64
+ var top = util.addBorderNode(g, "_bt");
65
+ var bottom = util.addBorderNode(g, "_bb");
66
66
  var label = g.node(v);
67
67
 
68
68
  g.setParent(top, v);
@@ -70,7 +70,7 @@ function dfs(g, root, nodeSep, weight, height, depths, v) {
70
70
  g.setParent(bottom, v);
71
71
  label.borderBottom = bottom;
72
72
 
73
- _.forEach(children, function (child) {
73
+ _.forEach(children, (child) => {
74
74
  dfs(g, root, nodeSep, weight, height, depths, child);
75
75
 
76
76
  var childNode = g.node(child);
@@ -101,34 +101,28 @@ function treeDepths(g) {
101
101
  var depths = {};
102
102
  function dfs(v, depth) {
103
103
  var children = g.children(v);
104
- if (children && children.length) {
105
- _.forEach(children, function (child) {
104
+ if (children?.length) {
105
+ _.forEach(children, (child) => {
106
106
  dfs(child, depth + 1);
107
107
  });
108
108
  }
109
109
  depths[v] = depth;
110
110
  }
111
- _.forEach(g.children(), function (v) {
111
+ _.forEach(g.children(), (v) => {
112
112
  dfs(v, 1);
113
113
  });
114
114
  return depths;
115
115
  }
116
116
 
117
117
  function sumWeights(g) {
118
- return _.reduce(
119
- g.edges(),
120
- function (acc, e) {
121
- return acc + g.edge(e).weight;
122
- },
123
- 0
124
- );
118
+ return _.reduce(g.edges(), (acc, e) => acc + g.edge(e).weight, 0);
125
119
  }
126
120
 
127
121
  function cleanup(g) {
128
122
  var graphLabel = g.graph();
129
123
  g.removeNode(graphLabel.nestingRoot);
130
124
  delete graphLabel.nestingRoot;
131
- _.forEach(g.edges(), function (e) {
125
+ _.forEach(g.edges(), (e) => {
132
126
  var edge = g.edge(e);
133
127
  if (edge.nestingEdge) {
134
128
  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 { run, undo };
5
5
 
@@ -21,7 +21,7 @@ export { run, undo };
21
21
  */
22
22
  function run(g) {
23
23
  g.graph().dummyChains = [];
24
- _.forEach(g.edges(), function (edge) {
24
+ _.forEach(g.edges(), (edge) => {
25
25
  normalizeEdge(g, edge);
26
26
  });
27
27
  }
@@ -49,12 +49,12 @@ function normalizeEdge(g, e) {
49
49
  edgeObj: e,
50
50
  rank: vRank,
51
51
  };
52
- dummy = util.addDummyNode(g, 'edge', attrs, '_d');
52
+ dummy = util.addDummyNode(g, "edge", attrs, "_d");
53
53
  if (vRank === labelRank) {
54
54
  attrs.width = edgeLabel.width;
55
55
  attrs.height = edgeLabel.height;
56
56
  // @ts-expect-error
57
- attrs.dummy = 'edge-label';
57
+ attrs.dummy = "edge-label";
58
58
  // @ts-expect-error
59
59
  attrs.labelpos = edgeLabel.labelpos;
60
60
  }
@@ -69,7 +69,7 @@ function normalizeEdge(g, e) {
69
69
  }
70
70
 
71
71
  function undo(g) {
72
- _.forEach(g.graph().dummyChains, function (v) {
72
+ _.forEach(g.graph().dummyChains, (v) => {
73
73
  var node = g.node(v);
74
74
  var origLabel = node.edgeLabel;
75
75
  var w;
@@ -78,7 +78,7 @@ function undo(g) {
78
78
  w = g.successors(v)[0];
79
79
  g.removeNode(v);
80
80
  origLabel.points.push({ x: node.x, y: node.y });
81
- if (node.dummy === 'edge-label') {
81
+ if (node.dummy === "edge-label") {
82
82
  origLabel.x = node.x;
83
83
  origLabel.y = node.y;
84
84
  origLabel.width = node.width;
@@ -1,4 +1,4 @@
1
- import { _ } from '../../lodash-es/index.ts';
1
+ import { _ } from "../../lodash-es/index.ts";
2
2
 
3
3
  export { addSubgraphConstraints };
4
4
 
@@ -6,7 +6,7 @@ function addSubgraphConstraints(g, cg, vs) {
6
6
  var prev = {},
7
7
  rootPrev;
8
8
 
9
- _.forEach(vs, function (v) {
9
+ _.forEach(vs, (v) => {
10
10
  var child = g.parent(v),
11
11
  parent,
12
12
  prevChild;
@@ -1,6 +1,6 @@
1
1
  export function barycenter(
2
2
  g: any,
3
- movable: any
3
+ movable: any,
4
4
  ): (
5
5
  | {
6
6
  v: any;
@@ -1,16 +1,16 @@
1
- import { _ } from '../../lodash-es/index.ts';
1
+ import { _ } from "../../lodash-es/index.ts";
2
2
 
3
3
  export { barycenter };
4
4
 
5
5
  function barycenter(g, movable) {
6
- return _.map(movable, function (v) {
6
+ return _.map(movable, (v) => {
7
7
  var inV = g.inEdges(v);
8
8
  if (!inV.length) {
9
9
  return { v: v };
10
10
  } else {
11
11
  var result = _.reduce(
12
12
  inV,
13
- function (acc, e) {
13
+ (acc, e) => {
14
14
  var edge = g.edge(e),
15
15
  nodeU = g.node(e.v);
16
16
  return {
@@ -18,7 +18,7 @@ function barycenter(g, movable) {
18
18
  weight: acc.weight + edge.weight,
19
19
  };
20
20
  },
21
- { sum: 0, weight: 0 }
21
+ { sum: 0, weight: 0 },
22
22
  );
23
23
 
24
24
  return {
@@ -1,2 +1,2 @@
1
1
  export function buildLayerGraph(g: any, rank: any, relationship: any): Graph;
2
- import { Graph } from '../../graphlib/index.js';
2
+ import { Graph } from "../../graphlib/index.js";