@statelyai/layout 0.3.0 → 0.4.0

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 (110) hide show
  1. package/NOTICE.md +4 -2
  2. package/README.md +150 -11
  3. package/dist/elkjs/index.cjs +2 -2
  4. package/dist/elkjs/index.d.cts +2 -0
  5. package/dist/elkjs/index.d.mts +2 -0
  6. package/dist/elkjs/index.mjs +2 -2
  7. package/dist/elkjs/main.cjs +1 -1
  8. package/dist/elkjs/main.mjs +1 -1
  9. package/dist/elkjs/worker.cjs +2 -2
  10. package/dist/elkjs/worker.mjs +2 -2
  11. package/dist/elkjs-UciYx7lD.mjs +2973 -0
  12. package/dist/elkjs-ggjsBuVP.cjs +3002 -0
  13. package/dist/{index-BEA_pzeT.d.cts → index-B6cWNrMw.d.cts} +9 -1
  14. package/dist/{index-DNTLRsDl.d.mts → index-CJQLUKD9.d.mts} +9 -1
  15. package/dist/{index-DNixtE3h.d.mts → index-DT6lPMfS.d.cts} +85 -5
  16. package/dist/{index-D9dhxrRl.d.cts → index-F1U-fCTu.d.mts} +85 -5
  17. package/dist/index.cjs +6 -3
  18. package/dist/index.d.cts +3 -3
  19. package/dist/index.d.mts +3 -3
  20. package/dist/index.mjs +4 -4
  21. package/dist/layered/index.cjs +3 -1
  22. package/dist/layered/index.d.cts +2 -2
  23. package/dist/layered/index.d.mts +2 -2
  24. package/dist/layered/index.mjs +2 -2
  25. package/dist/{layered-DGFTeQSl.mjs → layered-C7ERzZjR.mjs} +9605 -1655
  26. package/dist/{layered-B2buJqMf.cjs → layered-CBPg6_6_.cjs} +12481 -4435
  27. package/dist/{layout-engine-Dn1PiFwP.cjs → layout-engine-DAw06RhN.cjs} +5 -18
  28. package/dist/{layout-engine-Cs5tatA6.mjs → layout-engine-DC3IYkIy.mjs} +3 -10
  29. package/dist/routing/index.cjs +2 -1
  30. package/dist/routing/index.d.cts +2 -2
  31. package/dist/routing/index.d.mts +2 -2
  32. package/dist/routing/index.mjs +2 -2
  33. package/dist/{routing-A2hrK9MP.mjs → routing-CR8flv8b.mjs} +977 -593
  34. package/dist/{routing-ujEP7Qh6.cjs → routing-QIdGGFBe.cjs} +986 -596
  35. package/package.json +8 -2
  36. package/src/authoring/coordinates.ts +28 -8
  37. package/src/authoring/partial.ts +7 -2
  38. package/src/authoring/routing.ts +4 -1
  39. package/src/constraints.ts +174 -6
  40. package/src/elkjs/index.ts +1392 -449
  41. package/src/elkjs/layout-quality.ts +219 -0
  42. package/src/elkjs/opposing-tracks.ts +161 -0
  43. package/src/elkjs/orthogonal-junctions.ts +174 -0
  44. package/src/elkjs/statechart.ts +9 -3
  45. package/src/elkjs/types.ts +2 -0
  46. package/src/index.ts +2 -0
  47. package/src/internal/elkjs-compatibility.ts +4 -1
  48. package/src/internal/layered-trace.ts +48 -0
  49. package/src/internal/layout-engine.ts +2 -1
  50. package/src/java-random.ts +6 -0
  51. package/src/layered/bk-node-placement.ts +403 -92
  52. package/src/layered/center-labels.ts +398 -0
  53. package/src/layered/compaction-bounds.ts +26 -0
  54. package/src/layered/compaction-errors.ts +2 -0
  55. package/src/layered/compaction-scanline.ts +63 -0
  56. package/src/layered/compound-boundaries.ts +99 -0
  57. package/src/layered/compound.ts +35 -7
  58. package/src/layered/constraint-orientation.ts +141 -0
  59. package/src/layered/crossing-constraints.ts +243 -0
  60. package/src/layered/crossing-counter.ts +221 -0
  61. package/src/layered/crossing-graph.ts +401 -0
  62. package/src/layered/cycle-random.ts +22 -0
  63. package/src/layered/elk-port-lists.ts +243 -0
  64. package/src/layered/end-labels.ts +124 -0
  65. package/src/layered/external-port-dummy.ts +137 -0
  66. package/src/layered/feedback-chains.ts +114 -0
  67. package/src/layered/fixed-self-loop.ts +150 -0
  68. package/src/layered/greedy-switch-decider.ts +356 -0
  69. package/src/layered/grouped-compaction.ts +787 -0
  70. package/src/layered/gwt-sort.ts +53 -0
  71. package/src/layered/hierarchical-port-phases.ts +242 -0
  72. package/src/layered/hierarchical-port-restoration.ts +233 -0
  73. package/src/layered/hierarchical-port-routing.ts +179 -0
  74. package/src/layered/hierarchy-crossing.ts +121 -0
  75. package/src/layered/hierarchy-sweepiness.ts +83 -0
  76. package/src/layered/hints.ts +371 -0
  77. package/src/layered/hyperedge-dummy-merger.ts +195 -0
  78. package/src/layered/index.ts +886 -161
  79. package/src/layered/initial-model-order.ts +404 -0
  80. package/src/layered/inverted-ports.ts +207 -0
  81. package/src/layered/label-dummy-switcher.ts +200 -0
  82. package/src/layered/long-edges.ts +135 -44
  83. package/src/layered/loop-envelopes.ts +184 -0
  84. package/src/layered/native-routing.ts +275 -0
  85. package/src/layered/network-simplex.ts +11 -15
  86. package/src/layered/node-margins.ts +59 -0
  87. package/src/layered/north-south-ports.ts +271 -0
  88. package/src/layered/opposing-tracks.ts +944 -0
  89. package/src/layered/orthogonal-cycle-order.ts +106 -0
  90. package/src/layered/orthogonal-hypersegments.ts +92 -0
  91. package/src/layered/orthogonal-junctions.ts +202 -0
  92. package/src/layered/orthogonal-segments.ts +243 -0
  93. package/src/layered/placement-orientation.ts +22 -0
  94. package/src/layered/port-distributor.ts +192 -0
  95. package/src/layered/port-edge-order.ts +20 -0
  96. package/src/layered/replace-routing.ts +45 -0
  97. package/src/layered/routing-coordinates.ts +32 -0
  98. package/src/layered/separate-exterior-labels.ts +24 -6
  99. package/src/layered/spacing.ts +34 -12
  100. package/src/layered/splitter-order.ts +106 -0
  101. package/src/layered/strategies.ts +2024 -883
  102. package/src/layered/types.ts +13 -0
  103. package/src/layered/weighted-compaction.ts +84 -0
  104. package/src/routing/adapters.ts +32 -0
  105. package/src/routing/algorithms.ts +433 -21
  106. package/src/routing/coordination.ts +8 -3
  107. package/src/routing/index.ts +1 -0
  108. package/src/routing/search.ts +93 -11
  109. package/dist/elkjs-DaHMISnQ.mjs +0 -1677
  110. package/dist/elkjs-dMghiiWW.cjs +0 -1706
@@ -1,4 +1,4 @@
1
- const require_layered = require('./layered-B2buJqMf.cjs');
1
+ const require_layered = require('./layered-CBPg6_6_.cjs');
2
2
  let _statelyai_graph_layout = require("@statelyai/graph/layout");
3
3
 
4
4
  //#region src/fixed.ts
@@ -68,14 +68,6 @@ const fixedAlgorithm = {
68
68
  }
69
69
  };
70
70
 
71
- //#endregion
72
- //#region src/internal/elkjs-compatibility.ts
73
- const elkjs0111ResultPolicy = Symbol("elkjs0111ResultPolicy");
74
- function setElkjs0111ResultPolicy(graph, policy) {
75
- Object.defineProperty(graph, elkjs0111ResultPolicy, { value: policy });
76
- return graph;
77
- }
78
-
79
71
  //#endregion
80
72
  //#region src/box.ts
81
73
  function getPadding$3(value) {
@@ -207,7 +199,7 @@ const elkjs0111BoxAlgorithm = {
207
199
  layout(graph, options = {}) {
208
200
  const result = getBoxLayout(graph, options);
209
201
  const padding = getPadding$3(options.padding);
210
- return setElkjs0111ResultPolicy(result, {
202
+ return require_layered.setElkjs0111ResultPolicy(result, {
211
203
  providerBounds: result.nodes.length === 0 ? {
212
204
  width: 0,
213
205
  height: 0
@@ -292,7 +284,7 @@ const elkjs0111RectanglePackingAlgorithm = {
292
284
  layout(graph, options = {}) {
293
285
  const result = getRectanglePackingLayout(graph, options);
294
286
  const padding = getPadding$2(options.padding);
295
- return setElkjs0111ResultPolicy(result, {
287
+ return require_layered.setElkjs0111ResultPolicy(result, {
296
288
  providerBounds: result.nodes.length === 0 ? {
297
289
  width: 0,
298
290
  height: 0
@@ -453,7 +445,7 @@ function getRandomLayoutWithBehavior(graph, options, behavior) {
453
445
  nodes,
454
446
  edges
455
447
  }, { direction: options.direction ?? graph.direction });
456
- if (behavior.preserveProviderBounds) setElkjs0111ResultPolicy(result, { providerBounds: {
448
+ if (behavior.preserveProviderBounds) require_layered.setElkjs0111ResultPolicy(result, { providerBounds: {
457
449
  width: drawWidth + 2 * (padding.left + padding.right),
458
450
  height: drawHeight + 2 * (padding.top + padding.bottom)
459
451
  } });
@@ -577,6 +569,7 @@ const elkjs0111LayoutAlgorithms = {
577
569
  ...builtInLayoutAlgorithms,
578
570
  box: elkjs0111BoxAlgorithm,
579
571
  random: elkjs0111RandomAlgorithm,
572
+ layered: require_layered.elkjs0111LayeredAlgorithm,
580
573
  rectpacking: elkjs0111RectanglePackingAlgorithm
581
574
  };
582
575
  function getBuiltInLayoutAlgorithm(id) {
@@ -620,12 +613,6 @@ Object.defineProperty(exports, 'builtInLayoutAlgorithms', {
620
613
  return builtInLayoutAlgorithms;
621
614
  }
622
615
  });
623
- Object.defineProperty(exports, 'elkjs0111ResultPolicy', {
624
- enumerable: true,
625
- get: function () {
626
- return elkjs0111ResultPolicy;
627
- }
628
- });
629
616
  Object.defineProperty(exports, 'executeElkjs0111Layout', {
630
617
  enumerable: true,
631
618
  get: function () {
@@ -1,4 +1,4 @@
1
- import { B as JavaRandom, I as placePorts, k as getPolylineMidpoint, n as layeredAlgorithm } from "./layered-DGFTeQSl.mjs";
1
+ import { G as placePorts, R as getPolylineMidpoint, Y as JavaRandom, i as layeredAlgorithm, n as elkjs0111LayeredAlgorithm, x as setElkjs0111ResultPolicy } from "./layered-C7ERzZjR.mjs";
2
2
  import { getNodeSize } from "@statelyai/graph/layout";
3
3
 
4
4
  //#region src/fixed.ts
@@ -68,14 +68,6 @@ const fixedAlgorithm = {
68
68
  }
69
69
  };
70
70
 
71
- //#endregion
72
- //#region src/internal/elkjs-compatibility.ts
73
- const elkjs0111ResultPolicy = Symbol("elkjs0111ResultPolicy");
74
- function setElkjs0111ResultPolicy(graph, policy) {
75
- Object.defineProperty(graph, elkjs0111ResultPolicy, { value: policy });
76
- return graph;
77
- }
78
-
79
71
  //#endregion
80
72
  //#region src/box.ts
81
73
  function getPadding$3(value) {
@@ -577,6 +569,7 @@ const elkjs0111LayoutAlgorithms = {
577
569
  ...builtInLayoutAlgorithms,
578
570
  box: elkjs0111BoxAlgorithm,
579
571
  random: elkjs0111RandomAlgorithm,
572
+ layered: elkjs0111LayeredAlgorithm,
580
573
  rectpacking: elkjs0111RectanglePackingAlgorithm
581
574
  };
582
575
  function getBuiltInLayoutAlgorithm(id) {
@@ -608,4 +601,4 @@ function executeElkjs0111Layout({ algorithm: algorithm$1, graph, options }) {
608
601
  }
609
602
 
610
603
  //#endregion
611
- export { getFixedLayout as _, getSporeCompactionLayout as a, sporeOverlapRemovalAlgorithm as c, getRectanglePackingLayout as d, rectanglePackingAlgorithm as f, fixedAlgorithm as g, elkjs0111ResultPolicy as h, getBuiltInLayoutAlgorithm as i, getRandomLayout as l, getBoxLayout as m, executeElkjs0111Layout as n, getSporeOverlapRemovalLayout as o, boxAlgorithm as p, executeLayoutAlgorithm as r, sporeCompactionAlgorithm as s, builtInLayoutAlgorithms as t, randomAlgorithm as u };
604
+ export { getSporeCompactionLayout as a, sporeOverlapRemovalAlgorithm as c, getRectanglePackingLayout as d, rectanglePackingAlgorithm as f, getFixedLayout as g, fixedAlgorithm as h, getBuiltInLayoutAlgorithm as i, getRandomLayout as l, getBoxLayout as m, executeElkjs0111Layout as n, getSporeOverlapRemovalLayout as o, boxAlgorithm as p, executeLayoutAlgorithm as r, sporeCompactionAlgorithm as s, builtInLayoutAlgorithms as t, randomAlgorithm as u };
@@ -1,4 +1,4 @@
1
- const require_routing = require('../routing-ujEP7Qh6.cjs');
1
+ const require_routing = require('../routing-QIdGGFBe.cjs');
2
2
 
3
3
  exports.applyRoutePatches = require_routing.applyRoutePatches;
4
4
  exports.bezierRouting = require_routing.bezierRouting;
@@ -21,6 +21,7 @@ exports.pathFromSplinePoints = require_routing.pathFromSplinePoints;
21
21
  exports.polylineRouting = require_routing.polylineRouting;
22
22
  exports.roundCorners = require_routing.roundCorners;
23
23
  exports.routeToGraphPatch = require_routing.routeToGraphPatch;
24
+ exports.routeToPoints = require_routing.routeToPoints;
24
25
  exports.routeToPolylines = require_routing.routeToPolylines;
25
26
  exports.routingStrategies = require_routing.routingStrategies;
26
27
  exports.selfLoopRouting = require_routing.selfLoopRouting;
@@ -1,3 +1,3 @@
1
1
  import { _ as RoutingMetrics, a as RouteBounds, b as RoutingStrategy, c as RoutePath, d as RouteSegment, f as RouteSide, g as RoutingGraph, h as RoutingDiagnosticCode, i as RouteAttachment, l as RoutePoint, m as RoutingDiagnostic, n as NativeRoutingStrategy, o as RouteEndpoint, p as RouteStyle, r as Route, s as RoutePatch, t as EdgeRoutingSettings, u as RouteSection, v as RoutingSettings, x as RoutingUpdate, y as RoutingSnapshot } from "../types-uxPlGRof.cjs";
2
- import { C as getTangentAtLength, D as applyRoutePatches, E as toSvgPath, S as getPointAtLength, T as roundCorners, _ as routeToPolylines, a as fanRouting, b as getPathBounds, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as FlattenPathOptions, w as pathFromPoints, x as getPathLength, y as flattenPath } from "../index-BEA_pzeT.cjs";
3
- export { EdgeRoutingSettings, FlattenPathOptions, NativeRoutingStrategy, Route, RouteAttachment, RouteBounds, RouteEndpoint, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingMetrics, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingUpdate, applyRoutePatches, bezierRouting, bundleRouting, busRouting, curvedRouting, fanRouting, flattenPath, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getTangentAtLength, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, polylineRouting, roundCorners, routeToGraphPatch, routeToPolylines, routingStrategies, selfLoopRouting, straightRouting, toSvgPath };
2
+ import { C as getPointAtLength, D as toSvgPath, E as roundCorners, O as applyRoutePatches, S as getPathLength, T as pathFromPoints, _ as routeToPoints, a as fanRouting, b as flattenPath, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPolylines, w as getTangentAtLength, x as getPathBounds, y as FlattenPathOptions } from "../index-B6cWNrMw.cjs";
3
+ export { EdgeRoutingSettings, FlattenPathOptions, NativeRoutingStrategy, Route, RouteAttachment, RouteBounds, RouteEndpoint, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingMetrics, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingUpdate, applyRoutePatches, bezierRouting, bundleRouting, busRouting, curvedRouting, fanRouting, flattenPath, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getTangentAtLength, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, polylineRouting, roundCorners, routeToGraphPatch, routeToPoints, routeToPolylines, routingStrategies, selfLoopRouting, straightRouting, toSvgPath };
@@ -1,3 +1,3 @@
1
1
  import { _ as RoutingMetrics, a as RouteBounds, b as RoutingStrategy, c as RoutePath, d as RouteSegment, f as RouteSide, g as RoutingGraph, h as RoutingDiagnosticCode, i as RouteAttachment, l as RoutePoint, m as RoutingDiagnostic, n as NativeRoutingStrategy, o as RouteEndpoint, p as RouteStyle, r as Route, s as RoutePatch, t as EdgeRoutingSettings, u as RouteSection, v as RoutingSettings, x as RoutingUpdate, y as RoutingSnapshot } from "../types-CT2akdK0.mjs";
2
- import { C as getTangentAtLength, D as applyRoutePatches, E as toSvgPath, S as getPointAtLength, T as roundCorners, _ as routeToPolylines, a as fanRouting, b as getPathBounds, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as FlattenPathOptions, w as pathFromPoints, x as getPathLength, y as flattenPath } from "../index-DNTLRsDl.mjs";
3
- export { EdgeRoutingSettings, FlattenPathOptions, NativeRoutingStrategy, Route, RouteAttachment, RouteBounds, RouteEndpoint, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingMetrics, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingUpdate, applyRoutePatches, bezierRouting, bundleRouting, busRouting, curvedRouting, fanRouting, flattenPath, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getTangentAtLength, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, polylineRouting, roundCorners, routeToGraphPatch, routeToPolylines, routingStrategies, selfLoopRouting, straightRouting, toSvgPath };
2
+ import { C as getPointAtLength, D as toSvgPath, E as roundCorners, O as applyRoutePatches, S as getPathLength, T as pathFromPoints, _ as routeToPoints, a as fanRouting, b as flattenPath, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPolylines, w as getTangentAtLength, x as getPathBounds, y as FlattenPathOptions } from "../index-CJQLUKD9.mjs";
3
+ export { EdgeRoutingSettings, FlattenPathOptions, NativeRoutingStrategy, Route, RouteAttachment, RouteBounds, RouteEndpoint, RoutePatch, RoutePath, RoutePoint, RouteSection, RouteSegment, RouteSide, RouteStyle, RoutingDiagnostic, RoutingDiagnosticCode, RoutingGraph, RoutingMetrics, RoutingSettings, RoutingSnapshot, RoutingStrategy, RoutingUpdate, applyRoutePatches, bezierRouting, bundleRouting, busRouting, curvedRouting, fanRouting, flattenPath, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getTangentAtLength, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, polylineRouting, roundCorners, routeToGraphPatch, routeToPoints, routeToPolylines, routingStrategies, selfLoopRouting, straightRouting, toSvgPath };
@@ -1,3 +1,3 @@
1
- import { A as toSvgPath, C as flattenPath, D as getTangentAtLength, E as getPointAtLength, O as pathFromPoints, T as getPathLength, _ as routeToPolylines, a as fanRouting, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as routeToGraphPatch, h as pathFromSplinePoints, i as curvedRouting, k as roundCorners, l as parallelRouting, m as getLayoutRoutes, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, w as getPathBounds, x as applyRoutePatches } from "../routing-A2hrK9MP.mjs";
1
+ import { C as getPointAtLength, D as toSvgPath, E as roundCorners, S as getPathLength, T as pathFromPoints, _ as routeToGraphPatch, a as fanRouting, b as flattenPath, c as orthogonalRouting, d as routingStrategies, f as selfLoopRouting, g as pathFromSplinePoints, h as getLayoutRoutes, i as curvedRouting, l as parallelRouting, m as applyRoutePatches, n as bundleRouting, o as octilinearRouting, p as straightRouting, r as busRouting, s as organicRouting, t as bezierRouting, u as polylineRouting, v as routeToPoints, w as getTangentAtLength, x as getPathBounds, y as routeToPolylines } from "../routing-CR8flv8b.mjs";
2
2
 
3
- export { applyRoutePatches, bezierRouting, bundleRouting, busRouting, curvedRouting, fanRouting, flattenPath, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getTangentAtLength, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, polylineRouting, roundCorners, routeToGraphPatch, routeToPolylines, routingStrategies, selfLoopRouting, straightRouting, toSvgPath };
3
+ export { applyRoutePatches, bezierRouting, bundleRouting, busRouting, curvedRouting, fanRouting, flattenPath, getLayoutRoutes, getPathBounds, getPathLength, getPointAtLength, getTangentAtLength, octilinearRouting, organicRouting, orthogonalRouting, parallelRouting, pathFromPoints, pathFromSplinePoints, polylineRouting, roundCorners, routeToGraphPatch, routeToPoints, routeToPolylines, routingStrategies, selfLoopRouting, straightRouting, toSvgPath };