@statelyai/layout 0.4.1 → 0.4.3
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/README.md +8 -0
- package/dist/elkjs/index.cjs +2 -2
- package/dist/elkjs/index.mjs +2 -2
- package/dist/elkjs/main.cjs +1 -1
- package/dist/elkjs/main.mjs +1 -1
- package/dist/elkjs/worker.cjs +2 -2
- package/dist/elkjs/worker.mjs +2 -2
- package/dist/{elkjs-BBfKN4Dw.mjs → elkjs-B5kN_zS6.mjs} +40 -8
- package/dist/{elkjs-DNfXDPup.cjs → elkjs-Cj-lWiK1.cjs} +40 -8
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/layered/index.cjs +1 -1
- package/dist/layered/index.mjs +1 -1
- package/dist/{layered-5RxQhryb.cjs → layered-BJu8A21s.cjs} +231 -121
- package/dist/{layered-DSesbctm.mjs → layered-BsAdm_u8.mjs} +231 -121
- package/dist/{layout-engine-CLFySz3R.cjs → layout-engine-BFP1TZbF.cjs} +1 -1
- package/dist/{layout-engine-GpBIX6ng.mjs → layout-engine-DnlmGxHL.mjs} +1 -1
- package/package.json +1 -1
- package/src/elkjs/index.ts +49 -5
- package/src/layered/bk-node-placement.ts +10 -7
- package/src/layered/crossing-counter.ts +10 -4
- package/src/layered/crossing-graph.ts +2 -2
- package/src/layered/greedy-switch-decider.ts +44 -17
- package/src/layered/index.ts +15 -10
- package/src/layered/loop-envelopes.ts +10 -4
- package/src/layered/node-lookup.ts +29 -0
- package/src/layered/port-distributor.ts +26 -14
- package/src/layered/port-edge-order.ts +2 -1
- package/src/layered/spacing.ts +4 -3
- package/src/layered/strategies.ts +176 -96
package/README.md
CHANGED
|
@@ -276,6 +276,14 @@ and Box SIMPLE geometry, including provider bounds and whether edge sections
|
|
|
276
276
|
are routed or left authored. Rectangle Packing has an exact default baseline;
|
|
277
277
|
its full Java packing strategy remains in progress.
|
|
278
278
|
|
|
279
|
+
<!-- size snapping from src/elkjs/index.ts snapSizes -->
|
|
280
|
+
|
|
281
|
+
Node, port and label sizes are snapped to the browser's 1/64px layout unit
|
|
282
|
+
before layout, and the result reports the snapped sizes. Measured sizes carry
|
|
283
|
+
float noise, such as a rect divided by a zoom factor, and exact ties in layered
|
|
284
|
+
layout would otherwise let that noise move nodes. Sizes already on that grid,
|
|
285
|
+
including all integer sizes, are unchanged.
|
|
286
|
+
|
|
279
287
|
The compatibility entry's named graph, edge, option, and result types are
|
|
280
288
|
mutually assignable with the declarations shipped by `elkjs@0.11.1`. Its
|
|
281
289
|
default class also accepts the library's broader internal graph inputs.
|
package/dist/elkjs/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2
|
-
require('../layered-
|
|
3
|
-
const require_elkjs = require('../elkjs-
|
|
2
|
+
require('../layered-BJu8A21s.cjs');
|
|
3
|
+
const require_elkjs = require('../elkjs-Cj-lWiK1.cjs');
|
|
4
4
|
|
|
5
5
|
exports.compileStatechartLayout = require_elkjs.compileStatechartLayout;
|
|
6
6
|
exports.default = require_elkjs.ELK;
|
package/dist/elkjs/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../layered-
|
|
2
|
-
import { a as scoreStatechartLayout, i as layoutStatechart, n as getElkRoutes, r as compileStatechartLayout, t as ELK } from "../elkjs-
|
|
1
|
+
import "../layered-BsAdm_u8.mjs";
|
|
2
|
+
import { a as scoreStatechartLayout, i as layoutStatechart, n as getElkRoutes, r as compileStatechartLayout, t as ELK } from "../elkjs-B5kN_zS6.mjs";
|
|
3
3
|
|
|
4
4
|
export { compileStatechartLayout, ELK as default, getElkRoutes, layoutStatechart, scoreStatechartLayout };
|
package/dist/elkjs/main.cjs
CHANGED
package/dist/elkjs/main.mjs
CHANGED
package/dist/elkjs/worker.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require('../layered-
|
|
2
|
-
const require_elkjs = require('../elkjs-
|
|
1
|
+
require('../layered-BJu8A21s.cjs');
|
|
2
|
+
const require_elkjs = require('../elkjs-Cj-lWiK1.cjs');
|
|
3
3
|
|
|
4
4
|
//#region src/elkjs/worker.ts
|
|
5
5
|
/*******************************************************************************
|
package/dist/elkjs/worker.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../layered-
|
|
2
|
-
import { t as ELK } from "../elkjs-
|
|
1
|
+
import "../layered-BsAdm_u8.mjs";
|
|
2
|
+
import { t as ELK } from "../elkjs-B5kN_zS6.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/elkjs/worker.ts
|
|
5
5
|
/*******************************************************************************
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { T as pathFromPoints, g as pathFromSplinePoints, j as freeze } from "./routing-CR8flv8b.mjs";
|
|
2
|
-
import { $ as attachExternalPortDummy, R as createLayerSweepSession, S as CROSSING_MODEL, Z as minimizeHierarchyCrossings, b as elkjs0111ResultPolicy, c as elkLayeredOptionDefinitions, et as createExternalPortDummy, h as separateOpposingTracks, nt as createOrthogonalHypersegments, t as createLayeredScopePipeline, tt as externalPortDummyOf, v as isPerpendicularPortRestored, y as hierarchicalPortSides } from "./layered-
|
|
3
|
-
import { n as executeElkjs0111Layout } from "./layout-engine-
|
|
2
|
+
import { $ as attachExternalPortDummy, R as createLayerSweepSession, S as CROSSING_MODEL, Z as minimizeHierarchyCrossings, b as elkjs0111ResultPolicy, c as elkLayeredOptionDefinitions, et as createExternalPortDummy, h as separateOpposingTracks, nt as createOrthogonalHypersegments, t as createLayeredScopePipeline, tt as externalPortDummyOf, v as isPerpendicularPortRestored, y as hierarchicalPortSides } from "./layered-BsAdm_u8.mjs";
|
|
3
|
+
import { n as executeElkjs0111Layout } from "./layout-engine-DnlmGxHL.mjs";
|
|
4
4
|
import { createGraph } from "@statelyai/graph";
|
|
5
5
|
|
|
6
6
|
//#region src/layered/hierarchy-sweepiness.ts
|
|
@@ -1049,6 +1049,27 @@ function isLayoutEdgeLabel(label) {
|
|
|
1049
1049
|
}
|
|
1050
1050
|
/** The crossing-model setting a layout passes to crossing minimization. */
|
|
1051
1051
|
const crossingModel = Symbol("crossingModel");
|
|
1052
|
+
const LAYOUT_UNITS_PER_PX = 64;
|
|
1053
|
+
/**
|
|
1054
|
+
* Measured sizes carry float noise (a browser rect divided by zoom), and a
|
|
1055
|
+
* layered layout is full of exact ties that noise decides. Snap sizes to the
|
|
1056
|
+
* browser's 1/64px layout unit so the same graph always lays out the same way;
|
|
1057
|
+
* sizes already on that grid are unchanged.
|
|
1058
|
+
*/
|
|
1059
|
+
function snapSizes(node) {
|
|
1060
|
+
const snap = (shape) => {
|
|
1061
|
+
if (typeof shape.width === "number") shape.width = Math.round(shape.width * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
|
|
1062
|
+
if (typeof shape.height === "number") shape.height = Math.round(shape.height * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
|
|
1063
|
+
};
|
|
1064
|
+
snap(node);
|
|
1065
|
+
for (const label of node.labels ?? []) snap(label);
|
|
1066
|
+
for (const port of node.ports ?? []) {
|
|
1067
|
+
snap(port);
|
|
1068
|
+
for (const label of port.labels ?? []) snap(label);
|
|
1069
|
+
}
|
|
1070
|
+
for (const edge of node.edges ?? []) for (const label of edge.labels ?? []) snap(label);
|
|
1071
|
+
for (const child of node.children ?? []) snapSizes(child);
|
|
1072
|
+
}
|
|
1052
1073
|
var ELK = class {
|
|
1053
1074
|
#options;
|
|
1054
1075
|
#algorithmIds;
|
|
@@ -1119,6 +1140,7 @@ var ELK = class {
|
|
|
1119
1140
|
}
|
|
1120
1141
|
terminateWorker() {}
|
|
1121
1142
|
async layout(graph, arguments_ = {}) {
|
|
1143
|
+
snapSizes(graph);
|
|
1122
1144
|
const options = {
|
|
1123
1145
|
...this.#options.defaultLayoutOptions,
|
|
1124
1146
|
...arguments_.layoutOptions
|
|
@@ -1805,6 +1827,13 @@ var ELK = class {
|
|
|
1805
1827
|
return (sourceConstraint === "FIRST" || sourceConstraint === "FIRST_SEPARATE") && (targetConstraint === "FIRST" || targetConstraint === "FIRST_SEPARATE");
|
|
1806
1828
|
})) throw new Error("org.eclipse.elk.core.UnsupportedConfigurationException: Layer constraints conflict");
|
|
1807
1829
|
const padding = parsePadding(getOption(layoutOptions, "padding"), algorithm === "layered" ? 12 : 0);
|
|
1830
|
+
const parsedSettings = /* @__PURE__ */ new WeakMap();
|
|
1831
|
+
const elementSettings = (elementOptions) => {
|
|
1832
|
+
const key = elementOptions ?? noElementOptions;
|
|
1833
|
+
let settings = parsedSettings.get(key);
|
|
1834
|
+
if (!settings) parsedSettings.set(key, settings = getElementLayeredSettings(key));
|
|
1835
|
+
return settings;
|
|
1836
|
+
};
|
|
1808
1837
|
const options = {
|
|
1809
1838
|
direction: getDirection(layoutOptions),
|
|
1810
1839
|
spacing: {
|
|
@@ -1821,13 +1850,13 @@ var ELK = class {
|
|
|
1821
1850
|
},
|
|
1822
1851
|
nodeSettings: (node) => {
|
|
1823
1852
|
const child = findById(graph.children, node.id)?.item;
|
|
1824
|
-
return
|
|
1853
|
+
return elementSettings(child?.layoutOptions);
|
|
1825
1854
|
},
|
|
1826
1855
|
edgeSettings: (edge) => {
|
|
1827
1856
|
const elkEdge = findById(graph.edges, edge.id)?.item;
|
|
1828
1857
|
return {
|
|
1829
|
-
...
|
|
1830
|
-
...
|
|
1858
|
+
...elementSettings(elkEdge?.layoutOptions),
|
|
1859
|
+
...elementSettings(elkEdge?.labels?.[0]?.layoutOptions),
|
|
1831
1860
|
"edge.hierarchyRank": elkEdge && hierarchySegmentRank.get(elkEdge)
|
|
1832
1861
|
};
|
|
1833
1862
|
},
|
|
@@ -1836,7 +1865,7 @@ var ELK = class {
|
|
|
1836
1865
|
const found = findById(child?.ports, port.name);
|
|
1837
1866
|
const elkPort = found?.item;
|
|
1838
1867
|
return {
|
|
1839
|
-
...
|
|
1868
|
+
...elementSettings(elkPort?.layoutOptions),
|
|
1840
1869
|
"port.authoredIndex": found?.position,
|
|
1841
1870
|
"port.labelWidth": Math.max(0, ...(elkPort?.labels ?? []).map((label) => label.width ?? 0)),
|
|
1842
1871
|
"port.labelHeight": Math.max(0, ...(elkPort?.labels ?? []).map((label) => label.height ?? 0))
|
|
@@ -2302,12 +2331,14 @@ function applyNodeMicroLayout(graph, globalOptions) {
|
|
|
2302
2331
|
node.height = height;
|
|
2303
2332
|
}
|
|
2304
2333
|
}
|
|
2334
|
+
const exactKeysBySuffix = /* @__PURE__ */ new Map();
|
|
2305
2335
|
function getOption(options, suffix) {
|
|
2306
|
-
|
|
2336
|
+
let exactKeys = exactKeysBySuffix.get(suffix);
|
|
2337
|
+
if (!exactKeys) exactKeysBySuffix.set(suffix, exactKeys = [
|
|
2307
2338
|
suffix,
|
|
2308
2339
|
`elk.${suffix}`,
|
|
2309
2340
|
`org.eclipse.elk.${suffix}`
|
|
2310
|
-
];
|
|
2341
|
+
]);
|
|
2311
2342
|
for (const key of exactKeys) if (options[key] !== void 0) return options[key];
|
|
2312
2343
|
}
|
|
2313
2344
|
const ergonomicallyMappedLayeredSettings = new Set([
|
|
@@ -2386,6 +2417,7 @@ function findById(items, id) {
|
|
|
2386
2417
|
position
|
|
2387
2418
|
};
|
|
2388
2419
|
}
|
|
2420
|
+
const noElementOptions = {};
|
|
2389
2421
|
function getElementLayeredSettings(options) {
|
|
2390
2422
|
const settings = {};
|
|
2391
2423
|
const chosen = /* @__PURE__ */ new Map();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_routing = require('./routing-QIdGGFBe.cjs');
|
|
2
|
-
const require_layered = require('./layered-
|
|
3
|
-
const require_layout_engine = require('./layout-engine-
|
|
2
|
+
const require_layered = require('./layered-BJu8A21s.cjs');
|
|
3
|
+
const require_layout_engine = require('./layout-engine-BFP1TZbF.cjs');
|
|
4
4
|
let _statelyai_graph = require("@statelyai/graph");
|
|
5
5
|
|
|
6
6
|
//#region src/layered/hierarchy-sweepiness.ts
|
|
@@ -1049,6 +1049,27 @@ function isLayoutEdgeLabel(label) {
|
|
|
1049
1049
|
}
|
|
1050
1050
|
/** The crossing-model setting a layout passes to crossing minimization. */
|
|
1051
1051
|
const crossingModel = Symbol("crossingModel");
|
|
1052
|
+
const LAYOUT_UNITS_PER_PX = 64;
|
|
1053
|
+
/**
|
|
1054
|
+
* Measured sizes carry float noise (a browser rect divided by zoom), and a
|
|
1055
|
+
* layered layout is full of exact ties that noise decides. Snap sizes to the
|
|
1056
|
+
* browser's 1/64px layout unit so the same graph always lays out the same way;
|
|
1057
|
+
* sizes already on that grid are unchanged.
|
|
1058
|
+
*/
|
|
1059
|
+
function snapSizes(node) {
|
|
1060
|
+
const snap = (shape) => {
|
|
1061
|
+
if (typeof shape.width === "number") shape.width = Math.round(shape.width * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
|
|
1062
|
+
if (typeof shape.height === "number") shape.height = Math.round(shape.height * LAYOUT_UNITS_PER_PX) / LAYOUT_UNITS_PER_PX;
|
|
1063
|
+
};
|
|
1064
|
+
snap(node);
|
|
1065
|
+
for (const label of node.labels ?? []) snap(label);
|
|
1066
|
+
for (const port of node.ports ?? []) {
|
|
1067
|
+
snap(port);
|
|
1068
|
+
for (const label of port.labels ?? []) snap(label);
|
|
1069
|
+
}
|
|
1070
|
+
for (const edge of node.edges ?? []) for (const label of edge.labels ?? []) snap(label);
|
|
1071
|
+
for (const child of node.children ?? []) snapSizes(child);
|
|
1072
|
+
}
|
|
1052
1073
|
var ELK = class {
|
|
1053
1074
|
#options;
|
|
1054
1075
|
#algorithmIds;
|
|
@@ -1119,6 +1140,7 @@ var ELK = class {
|
|
|
1119
1140
|
}
|
|
1120
1141
|
terminateWorker() {}
|
|
1121
1142
|
async layout(graph, arguments_ = {}) {
|
|
1143
|
+
snapSizes(graph);
|
|
1122
1144
|
const options = {
|
|
1123
1145
|
...this.#options.defaultLayoutOptions,
|
|
1124
1146
|
...arguments_.layoutOptions
|
|
@@ -1805,6 +1827,13 @@ var ELK = class {
|
|
|
1805
1827
|
return (sourceConstraint === "FIRST" || sourceConstraint === "FIRST_SEPARATE") && (targetConstraint === "FIRST" || targetConstraint === "FIRST_SEPARATE");
|
|
1806
1828
|
})) throw new Error("org.eclipse.elk.core.UnsupportedConfigurationException: Layer constraints conflict");
|
|
1807
1829
|
const padding = parsePadding(getOption(layoutOptions, "padding"), algorithm === "layered" ? 12 : 0);
|
|
1830
|
+
const parsedSettings = /* @__PURE__ */ new WeakMap();
|
|
1831
|
+
const elementSettings = (elementOptions) => {
|
|
1832
|
+
const key = elementOptions ?? noElementOptions;
|
|
1833
|
+
let settings = parsedSettings.get(key);
|
|
1834
|
+
if (!settings) parsedSettings.set(key, settings = getElementLayeredSettings(key));
|
|
1835
|
+
return settings;
|
|
1836
|
+
};
|
|
1808
1837
|
const options = {
|
|
1809
1838
|
direction: getDirection(layoutOptions),
|
|
1810
1839
|
spacing: {
|
|
@@ -1821,13 +1850,13 @@ var ELK = class {
|
|
|
1821
1850
|
},
|
|
1822
1851
|
nodeSettings: (node) => {
|
|
1823
1852
|
const child = findById(graph.children, node.id)?.item;
|
|
1824
|
-
return
|
|
1853
|
+
return elementSettings(child?.layoutOptions);
|
|
1825
1854
|
},
|
|
1826
1855
|
edgeSettings: (edge) => {
|
|
1827
1856
|
const elkEdge = findById(graph.edges, edge.id)?.item;
|
|
1828
1857
|
return {
|
|
1829
|
-
...
|
|
1830
|
-
...
|
|
1858
|
+
...elementSettings(elkEdge?.layoutOptions),
|
|
1859
|
+
...elementSettings(elkEdge?.labels?.[0]?.layoutOptions),
|
|
1831
1860
|
"edge.hierarchyRank": elkEdge && hierarchySegmentRank.get(elkEdge)
|
|
1832
1861
|
};
|
|
1833
1862
|
},
|
|
@@ -1836,7 +1865,7 @@ var ELK = class {
|
|
|
1836
1865
|
const found = findById(child?.ports, port.name);
|
|
1837
1866
|
const elkPort = found?.item;
|
|
1838
1867
|
return {
|
|
1839
|
-
...
|
|
1868
|
+
...elementSettings(elkPort?.layoutOptions),
|
|
1840
1869
|
"port.authoredIndex": found?.position,
|
|
1841
1870
|
"port.labelWidth": Math.max(0, ...(elkPort?.labels ?? []).map((label) => label.width ?? 0)),
|
|
1842
1871
|
"port.labelHeight": Math.max(0, ...(elkPort?.labels ?? []).map((label) => label.height ?? 0))
|
|
@@ -2302,12 +2331,14 @@ function applyNodeMicroLayout(graph, globalOptions) {
|
|
|
2302
2331
|
node.height = height;
|
|
2303
2332
|
}
|
|
2304
2333
|
}
|
|
2334
|
+
const exactKeysBySuffix = /* @__PURE__ */ new Map();
|
|
2305
2335
|
function getOption(options, suffix) {
|
|
2306
|
-
|
|
2336
|
+
let exactKeys = exactKeysBySuffix.get(suffix);
|
|
2337
|
+
if (!exactKeys) exactKeysBySuffix.set(suffix, exactKeys = [
|
|
2307
2338
|
suffix,
|
|
2308
2339
|
`elk.${suffix}`,
|
|
2309
2340
|
`org.eclipse.elk.${suffix}`
|
|
2310
|
-
];
|
|
2341
|
+
]);
|
|
2311
2342
|
for (const key of exactKeys) if (options[key] !== void 0) return options[key];
|
|
2312
2343
|
}
|
|
2313
2344
|
const ergonomicallyMappedLayeredSettings = new Set([
|
|
@@ -2386,6 +2417,7 @@ function findById(items, id) {
|
|
|
2386
2417
|
position
|
|
2387
2418
|
};
|
|
2388
2419
|
}
|
|
2420
|
+
const noElementOptions = {};
|
|
2389
2421
|
function getElementLayeredSettings(options) {
|
|
2390
2422
|
const settings = {};
|
|
2391
2423
|
const chosen = /* @__PURE__ */ new Map();
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_routing = require('./routing-QIdGGFBe.cjs');
|
|
2
|
-
const require_layered = require('./layered-
|
|
3
|
-
const require_layout_engine = require('./layout-engine-
|
|
2
|
+
const require_layered = require('./layered-BJu8A21s.cjs');
|
|
3
|
+
const require_layout_engine = require('./layout-engine-BFP1TZbF.cjs');
|
|
4
4
|
let _statelyai_graph = require("@statelyai/graph");
|
|
5
5
|
|
|
6
6
|
//#region src/layout.ts
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { C as getPointAtLength, D as toSvgPath, E as roundCorners, F as LayoutError, I as UnsupportedLayoutError, 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
|
-
import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, _ as statechartHints, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, f as assignLayersWithStretchWidth, g as hint, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, m as c, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, w as assignLayersByDepthFirstModelOrder } from "./layered-
|
|
3
|
-
import { a as getSporeCompactionLayout, c as sporeOverlapRemovalAlgorithm, d as getRectanglePackingLayout, f as rectanglePackingAlgorithm, g as getFixedLayout, h as fixedAlgorithm, i as getBuiltInLayoutAlgorithm, l as getRandomLayout, m as getBoxLayout, o as getSporeOverlapRemovalLayout, p as boxAlgorithm, r as executeLayoutAlgorithm, s as sporeCompactionAlgorithm, t as builtInLayoutAlgorithms, u as randomAlgorithm } from "./layout-engine-
|
|
2
|
+
import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, _ as statechartHints, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, f as assignLayersWithStretchWidth, g as hint, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, m as c, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, w as assignLayersByDepthFirstModelOrder } from "./layered-BsAdm_u8.mjs";
|
|
3
|
+
import { a as getSporeCompactionLayout, c as sporeOverlapRemovalAlgorithm, d as getRectanglePackingLayout, f as rectanglePackingAlgorithm, g as getFixedLayout, h as fixedAlgorithm, i as getBuiltInLayoutAlgorithm, l as getRandomLayout, m as getBoxLayout, o as getSporeOverlapRemovalLayout, p as boxAlgorithm, r as executeLayoutAlgorithm, s as sporeCompactionAlgorithm, t as builtInLayoutAlgorithms, u as randomAlgorithm } from "./layout-engine-DnlmGxHL.mjs";
|
|
4
4
|
import { getGraphIssues } from "@statelyai/graph";
|
|
5
5
|
|
|
6
6
|
//#region src/layout.ts
|
package/dist/layered/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_layered = require('../layered-
|
|
1
|
+
const require_layered = require('../layered-BJu8A21s.cjs');
|
|
2
2
|
|
|
3
3
|
exports.assignLayersByBreadthFirstModelOrder = require_layered.assignLayersByBreadthFirstModelOrder;
|
|
4
4
|
exports.assignLayersByDepthFirstModelOrder = require_layered.assignLayersByDepthFirstModelOrder;
|
package/dist/layered/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, d as placeNodesWithBrandesKoepf, f as assignLayersWithStretchWidth, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, l as placeNodesWithNetworkSimplex, n as elkjs0111LayeredAlgorithm, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, t as createLayeredScopePipeline, u as placeNodesWithLinearSegments, w as assignLayersByDepthFirstModelOrder } from "../layered-
|
|
1
|
+
import { A as breakCyclesByStronglyConnectedConnectivity, B as minimizeCrossingsInteractively, C as assignLayersByBreadthFirstModelOrder, D as assignLayersInteractively, E as assignLayersByLongestPathToSink, F as breakCyclesWithDepthFirstSearch, G as placeNodesInteractively, H as minimizeCrossingsWithMedian, I as breakCyclesWithModelOrderBreadthFirstSearch, J as routeEdgesWithPolylines, L as breakCyclesWithModelOrderDepthFirstSearch, M as breakCyclesGreedily, N as breakCyclesGreedilyByModelOrder, O as assignLayersWithCoffmanGraham, P as breakCyclesInteractively, Q as assignLayersWithNetworkSimplex, T as assignLayersByLongestPath, U as minimizeCrossingsWithModelOrder, V as minimizeCrossingsWithBarycenter, W as placeNodesInLayers, Y as routeEdgesWithSplines, a as fromElkLayeredOptionId, c as elkLayeredOptionDefinitions, d as placeNodesWithBrandesKoepf, f as assignLayersWithStretchWidth, i as layeredAlgorithm, j as breakCyclesByStronglyConnectedNodeType, k as breakCyclesByModelOrder, l as placeNodesWithNetworkSimplex, n as elkjs0111LayeredAlgorithm, o as toElkLayeredOptions, p as assignLayersWithMinWidth, q as routeEdgesOrthogonally, r as getLayeredLayout, s as elkLayeredEnumValues, t as createLayeredScopePipeline, u as placeNodesWithLinearSegments, w as assignLayersByDepthFirstModelOrder } from "../layered-BsAdm_u8.mjs";
|
|
2
2
|
|
|
3
3
|
export { assignLayersByBreadthFirstModelOrder, assignLayersByDepthFirstModelOrder, assignLayersByLongestPath, assignLayersByLongestPathToSink, assignLayersInteractively, assignLayersWithCoffmanGraham, assignLayersWithMinWidth, assignLayersWithNetworkSimplex, assignLayersWithStretchWidth, breakCyclesByModelOrder, breakCyclesByStronglyConnectedConnectivity, breakCyclesByStronglyConnectedNodeType, breakCyclesGreedily, breakCyclesGreedilyByModelOrder, breakCyclesInteractively, breakCyclesWithDepthFirstSearch, breakCyclesWithModelOrderBreadthFirstSearch, breakCyclesWithModelOrderDepthFirstSearch, createLayeredScopePipeline, elkLayeredEnumValues, elkLayeredOptionDefinitions, elkjs0111LayeredAlgorithm, fromElkLayeredOptionId, getLayeredLayout, layeredAlgorithm, minimizeCrossingsInteractively, minimizeCrossingsWithBarycenter, minimizeCrossingsWithMedian, minimizeCrossingsWithModelOrder, placeNodesInLayers, placeNodesInteractively, placeNodesWithBrandesKoepf, placeNodesWithLinearSegments, placeNodesWithNetworkSimplex, routeEdgesOrthogonally, routeEdgesWithPolylines, routeEdgesWithSplines, toElkLayeredOptions };
|