callman-core 1.28.0 → 1.29.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.
- package/ai-packs/scenario-nodes.md +451 -0
- package/dist/ai/index.d.ts +2 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/outputSchemas.d.ts +3 -0
- package/dist/ai/outputSchemas.d.ts.map +1 -1
- package/dist/ai/outputSchemas.js +1 -0
- package/dist/ai/outputSchemas.js.map +1 -1
- package/dist/ai/parse/diagram.d.ts.map +1 -1
- package/dist/ai/parse/diagram.js +6 -3
- package/dist/ai/parse/diagram.js.map +1 -1
- package/dist/ai/prompts/diagram.d.ts +7 -3
- package/dist/ai/prompts/diagram.d.ts.map +1 -1
- package/dist/ai/prompts/diagram.js +44 -5
- package/dist/ai/prompts/diagram.js.map +1 -1
- package/dist/ai/prompts/scenario.d.ts.map +1 -1
- package/dist/ai/prompts/scenario.js +9 -8
- package/dist/ai/prompts/scenario.js.map +1 -1
- package/dist/ai/prompts/scenarioNodeReference.d.ts +16 -0
- package/dist/ai/prompts/scenarioNodeReference.d.ts.map +1 -0
- package/dist/ai/prompts/scenarioNodeReference.js +882 -0
- package/dist/ai/prompts/scenarioNodeReference.js.map +1 -0
- package/dist/ai/types.d.ts +6 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/diagram/bpmn/derive.d.ts +74 -0
- package/dist/diagram/bpmn/derive.d.ts.map +1 -0
- package/dist/diagram/bpmn/derive.js +392 -0
- package/dist/diagram/bpmn/derive.js.map +1 -0
- package/dist/diagram/bpmn/index.d.ts +7 -0
- package/dist/diagram/bpmn/index.d.ts.map +1 -0
- package/dist/diagram/bpmn/index.js +12 -0
- package/dist/diagram/bpmn/index.js.map +1 -0
- package/dist/diagram/bpmn/patch.d.ts +14 -0
- package/dist/diagram/bpmn/patch.d.ts.map +1 -0
- package/dist/diagram/bpmn/patch.js +770 -0
- package/dist/diagram/bpmn/patch.js.map +1 -0
- package/dist/diagram/bpmn/place.d.ts +4 -0
- package/dist/diagram/bpmn/place.d.ts.map +1 -0
- package/dist/diagram/bpmn/place.js +65 -0
- package/dist/diagram/bpmn/place.js.map +1 -0
- package/dist/diagram/bpmn/serialize.d.ts +12 -0
- package/dist/diagram/bpmn/serialize.d.ts.map +1 -0
- package/dist/diagram/bpmn/serialize.js +292 -0
- package/dist/diagram/bpmn/serialize.js.map +1 -0
- package/dist/diagram/bpmn/types.d.ts +42 -0
- package/dist/diagram/bpmn/types.d.ts.map +1 -0
- package/dist/diagram/bpmn/types.js +84 -0
- package/dist/diagram/bpmn/types.js.map +1 -0
- package/dist/diagram/bpmn/xml.d.ts +60 -0
- package/dist/diagram/bpmn/xml.d.ts.map +1 -0
- package/dist/diagram/bpmn/xml.js +342 -0
- package/dist/diagram/bpmn/xml.js.map +1 -0
- package/dist/diagram/elkGraph.d.ts +1 -3
- package/dist/diagram/elkGraph.d.ts.map +1 -1
- package/dist/diagram/elkGraph.js +1 -0
- package/dist/diagram/elkGraph.js.map +1 -1
- package/dist/diagram/fixtures.d.ts +10 -0
- package/dist/diagram/fixtures.d.ts.map +1 -0
- package/dist/diagram/fixtures.js +113 -0
- package/dist/diagram/fixtures.js.map +1 -0
- package/dist/diagram/geometry.d.ts +27 -0
- package/dist/diagram/geometry.d.ts.map +1 -0
- package/dist/diagram/geometry.js +122 -0
- package/dist/diagram/geometry.js.map +1 -0
- package/dist/diagram/history.d.ts +36 -0
- package/dist/diagram/history.d.ts.map +1 -0
- package/dist/diagram/history.js +54 -0
- package/dist/diagram/history.js.map +1 -0
- package/dist/diagram/ids.d.ts +5 -0
- package/dist/diagram/ids.d.ts.map +1 -0
- package/dist/diagram/ids.js +52 -0
- package/dist/diagram/ids.js.map +1 -0
- package/dist/diagram/index.d.ts +14 -2
- package/dist/diagram/index.d.ts.map +1 -1
- package/dist/diagram/index.js +20 -8
- package/dist/diagram/index.js.map +1 -1
- package/dist/diagram/layout.d.ts +107 -0
- package/dist/diagram/layout.d.ts.map +1 -0
- package/dist/diagram/layout.js +356 -0
- package/dist/diagram/layout.js.map +1 -0
- package/dist/diagram/mermaid/derive.d.ts +55 -0
- package/dist/diagram/mermaid/derive.d.ts.map +1 -0
- package/dist/diagram/mermaid/derive.js +343 -0
- package/dist/diagram/mermaid/derive.js.map +1 -0
- package/dist/diagram/mermaid/index.d.ts +8 -0
- package/dist/diagram/mermaid/index.d.ts.map +1 -0
- package/dist/diagram/mermaid/index.js +24 -0
- package/dist/diagram/mermaid/index.js.map +1 -0
- package/dist/diagram/mermaid/parse.d.ts +96 -0
- package/dist/diagram/mermaid/parse.d.ts.map +1 -0
- package/dist/diagram/mermaid/parse.js +672 -0
- package/dist/diagram/mermaid/parse.js.map +1 -0
- package/dist/diagram/mermaid/patch.d.ts +16 -0
- package/dist/diagram/mermaid/patch.d.ts.map +1 -0
- package/dist/diagram/mermaid/patch.js +463 -0
- package/dist/diagram/mermaid/patch.js.map +1 -0
- package/dist/diagram/mermaid/serialize.d.ts +14 -0
- package/dist/diagram/mermaid/serialize.d.ts.map +1 -0
- package/dist/diagram/mermaid/serialize.js +125 -0
- package/dist/diagram/mermaid/serialize.js.map +1 -0
- package/dist/diagram/mermaid/shapes.d.ts +11 -0
- package/dist/diagram/mermaid/shapes.d.ts.map +1 -0
- package/dist/diagram/mermaid/shapes.js +320 -0
- package/dist/diagram/mermaid/shapes.js.map +1 -0
- package/dist/diagram/migrations.d.ts +1 -0
- package/dist/diagram/migrations.d.ts.map +1 -1
- package/dist/diagram/migrations.js +7 -2
- package/dist/diagram/migrations.js.map +1 -1
- package/dist/diagram/normalize.d.ts +9 -1
- package/dist/diagram/normalize.d.ts.map +1 -1
- package/dist/diagram/normalize.js +194 -0
- package/dist/diagram/normalize.js.map +1 -1
- package/dist/diagram/ops.d.ts +146 -0
- package/dist/diagram/ops.d.ts.map +1 -0
- package/dist/diagram/ops.js +823 -0
- package/dist/diagram/ops.js.map +1 -0
- package/dist/diagram/opsReference.d.ts +3 -0
- package/dist/diagram/opsReference.d.ts.map +1 -0
- package/dist/diagram/opsReference.js +51 -0
- package/dist/diagram/opsReference.js.map +1 -0
- package/dist/diagram/patchInput.d.ts +193 -0
- package/dist/diagram/patchInput.d.ts.map +1 -0
- package/dist/diagram/patchInput.js +621 -0
- package/dist/diagram/patchInput.js.map +1 -0
- package/dist/diagram/routing/batch.d.ts +45 -0
- package/dist/diagram/routing/batch.d.ts.map +1 -0
- package/dist/diagram/routing/batch.js +136 -0
- package/dist/diagram/routing/batch.js.map +1 -0
- package/dist/diagram/routing/curves.d.ts +7 -0
- package/dist/diagram/routing/curves.d.ts.map +1 -0
- package/dist/diagram/routing/curves.js +120 -0
- package/dist/diagram/routing/curves.js.map +1 -0
- package/dist/diagram/routing/grid.d.ts +15 -0
- package/dist/diagram/routing/grid.d.ts.map +1 -0
- package/dist/diagram/routing/grid.js +245 -0
- package/dist/diagram/routing/grid.js.map +1 -0
- package/dist/diagram/routing/index.d.ts +10 -0
- package/dist/diagram/routing/index.d.ts.map +1 -0
- package/dist/diagram/routing/index.js +10 -0
- package/dist/diagram/routing/index.js.map +1 -0
- package/dist/diagram/routing/legacy.d.ts +6 -0
- package/dist/diagram/routing/legacy.d.ts.map +1 -0
- package/dist/diagram/routing/legacy.js +27 -0
- package/dist/diagram/routing/legacy.js.map +1 -0
- package/dist/diagram/routing/nudge.d.ts +4 -0
- package/dist/diagram/routing/nudge.d.ts.map +1 -0
- package/dist/diagram/routing/nudge.js +96 -0
- package/dist/diagram/routing/nudge.js.map +1 -0
- package/dist/diagram/routing/orthogonal.d.ts +6 -0
- package/dist/diagram/routing/orthogonal.d.ts.map +1 -0
- package/dist/diagram/routing/orthogonal.js +56 -0
- package/dist/diagram/routing/orthogonal.js.map +1 -0
- package/dist/diagram/routing/path.d.ts +16 -0
- package/dist/diagram/routing/path.d.ts.map +1 -0
- package/dist/diagram/routing/path.js +128 -0
- package/dist/diagram/routing/path.js.map +1 -0
- package/dist/diagram/routing/sides.d.ts +22 -0
- package/dist/diagram/routing/sides.d.ts.map +1 -0
- package/dist/diagram/routing/sides.js +74 -0
- package/dist/diagram/routing/sides.js.map +1 -0
- package/dist/diagram/routing/types.d.ts +46 -0
- package/dist/diagram/routing/types.d.ts.map +1 -0
- package/dist/diagram/routing/types.js +11 -0
- package/dist/diagram/routing/types.js.map +1 -0
- package/dist/diagram/schema.d.ts +70 -37
- package/dist/diagram/schema.d.ts.map +1 -1
- package/dist/diagram/schema.js +62 -8
- package/dist/diagram/schema.js.map +1 -1
- package/dist/diagram/styleInput.d.ts +41 -0
- package/dist/diagram/styleInput.d.ts.map +1 -0
- package/dist/diagram/styleInput.js +105 -0
- package/dist/diagram/styleInput.js.map +1 -0
- package/dist/diagram/views.d.ts +9 -0
- package/dist/diagram/views.d.ts.map +1 -0
- package/dist/diagram/views.js +42 -0
- package/dist/diagram/views.js.map +1 -0
- package/dist/http-file/flatImport.d.ts +1 -0
- package/dist/http-file/flatImport.d.ts.map +1 -1
- package/dist/http-file/flatImport.js.map +1 -1
- package/dist/http-file/index.d.ts +1 -1
- package/dist/http-file/index.d.ts.map +1 -1
- package/dist/http-file/index.js +1 -1
- package/dist/http-file/index.js.map +1 -1
- package/dist/http-file/parseHttpFile.d.ts +1 -0
- package/dist/http-file/parseHttpFile.d.ts.map +1 -1
- package/dist/http-file/parseHttpFile.js +40 -8
- package/dist/http-file/parseHttpFile.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/request/requestBody.d.ts +55 -0
- package/dist/request/requestBody.d.ts.map +1 -0
- package/dist/request/requestBody.js +198 -0
- package/dist/request/requestBody.js.map +1 -0
- package/dist/runner/requestRunner.d.ts.map +1 -1
- package/dist/runner/requestRunner.js +127 -43
- package/dist/runner/requestRunner.js.map +1 -1
- package/dist/runner/runCollection.d.ts +1 -1
- package/dist/runner/runCollection.d.ts.map +1 -1
- package/dist/runner/runCollection.js +9 -2
- package/dist/runner/runCollection.js.map +1 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts +2 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.js +8 -40
- package/dist/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
- package/dist/scenario-runner/adapters/request-executor.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/request-executor.js +2 -29
- package/dist/scenario-runner/adapters/request-executor.js.map +1 -1
- package/dist/scenario-runner/index.d.ts +1 -0
- package/dist/scenario-runner/index.d.ts.map +1 -1
- package/dist/scenario-runner/index.js +1 -0
- package/dist/scenario-runner/index.js.map +1 -1
- package/dist/scenario-runner/labels.d.ts +3 -0
- package/dist/scenario-runner/labels.d.ts.map +1 -0
- package/dist/scenario-runner/labels.js +20 -0
- package/dist/scenario-runner/labels.js.map +1 -0
- package/dist/scenario-runner/runScenario.d.ts.map +1 -1
- package/dist/scenario-runner/runScenario.js +4 -11
- package/dist/scenario-runner/runScenario.js.map +1 -1
- package/dist/script/legacy.d.ts.map +1 -1
- package/dist/script/legacy.js +24 -9
- package/dist/script/legacy.js.map +1 -1
- package/dist/types/index.d.ts +18 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/variables/resolver.d.ts.map +1 -1
- package/dist/variables/resolver.js +27 -5
- package/dist/variables/resolver.js.map +1 -1
- package/dist-cjs/ai/index.js +4 -1
- package/dist-cjs/ai/index.js.map +1 -1
- package/dist-cjs/ai/outputSchemas.js +1 -0
- package/dist-cjs/ai/outputSchemas.js.map +1 -1
- package/dist-cjs/ai/parse/diagram.js +6 -3
- package/dist-cjs/ai/parse/diagram.js.map +1 -1
- package/dist-cjs/ai/prompts/diagram.js +44 -5
- package/dist-cjs/ai/prompts/diagram.js.map +1 -1
- package/dist-cjs/ai/prompts/scenario.js +9 -8
- package/dist-cjs/ai/prompts/scenario.js.map +1 -1
- package/dist-cjs/ai/prompts/scenarioNodeReference.js +886 -0
- package/dist-cjs/ai/prompts/scenarioNodeReference.js.map +1 -0
- package/dist-cjs/diagram/bpmn/derive.js +398 -0
- package/dist-cjs/diagram/bpmn/derive.js.map +1 -0
- package/dist-cjs/diagram/bpmn/index.js +31 -0
- package/dist-cjs/diagram/bpmn/index.js.map +1 -0
- package/dist-cjs/diagram/bpmn/patch.js +774 -0
- package/dist-cjs/diagram/bpmn/patch.js.map +1 -0
- package/dist-cjs/diagram/bpmn/place.js +69 -0
- package/dist-cjs/diagram/bpmn/place.js.map +1 -0
- package/dist-cjs/diagram/bpmn/serialize.js +299 -0
- package/dist-cjs/diagram/bpmn/serialize.js.map +1 -0
- package/dist-cjs/diagram/bpmn/types.js +99 -0
- package/dist-cjs/diagram/bpmn/types.js.map +1 -0
- package/dist-cjs/diagram/bpmn/xml.js +367 -0
- package/dist-cjs/diagram/bpmn/xml.js.map +1 -0
- package/dist-cjs/diagram/elkGraph.js +1 -0
- package/dist-cjs/diagram/elkGraph.js.map +1 -1
- package/dist-cjs/diagram/fixtures.js +117 -0
- package/dist-cjs/diagram/fixtures.js.map +1 -0
- package/dist-cjs/diagram/geometry.js +143 -0
- package/dist-cjs/diagram/geometry.js.map +1 -0
- package/dist-cjs/diagram/history.js +65 -0
- package/dist-cjs/diagram/history.js.map +1 -0
- package/dist-cjs/diagram/ids.js +58 -0
- package/dist-cjs/diagram/ids.js.map +1 -0
- package/dist-cjs/diagram/index.js +23 -8
- package/dist-cjs/diagram/index.js.map +1 -1
- package/dist-cjs/diagram/layout.js +364 -0
- package/dist-cjs/diagram/layout.js.map +1 -0
- package/dist-cjs/diagram/mermaid/derive.js +353 -0
- package/dist-cjs/diagram/mermaid/derive.js.map +1 -0
- package/dist-cjs/diagram/mermaid/index.js +44 -0
- package/dist-cjs/diagram/mermaid/index.js.map +1 -0
- package/dist-cjs/diagram/mermaid/parse.js +681 -0
- package/dist-cjs/diagram/mermaid/parse.js.map +1 -0
- package/dist-cjs/diagram/mermaid/patch.js +468 -0
- package/dist-cjs/diagram/mermaid/patch.js.map +1 -0
- package/dist-cjs/diagram/mermaid/serialize.js +133 -0
- package/dist-cjs/diagram/mermaid/serialize.js.map +1 -0
- package/dist-cjs/diagram/mermaid/shapes.js +327 -0
- package/dist-cjs/diagram/mermaid/shapes.js.map +1 -0
- package/dist-cjs/diagram/migrations.js +9 -3
- package/dist-cjs/diagram/migrations.js.map +1 -1
- package/dist-cjs/diagram/normalize.js +198 -1
- package/dist-cjs/diagram/normalize.js.map +1 -1
- package/dist-cjs/diagram/ops.js +829 -0
- package/dist-cjs/diagram/ops.js.map +1 -0
- package/dist-cjs/diagram/opsReference.js +55 -0
- package/dist-cjs/diagram/opsReference.js.map +1 -0
- package/dist-cjs/diagram/patchInput.js +636 -0
- package/dist-cjs/diagram/patchInput.js.map +1 -0
- package/dist-cjs/diagram/routing/batch.js +142 -0
- package/dist-cjs/diagram/routing/batch.js.map +1 -0
- package/dist-cjs/diagram/routing/curves.js +127 -0
- package/dist-cjs/diagram/routing/curves.js.map +1 -0
- package/dist-cjs/diagram/routing/grid.js +250 -0
- package/dist-cjs/diagram/routing/grid.js.map +1 -0
- package/dist-cjs/diagram/routing/index.js +29 -0
- package/dist-cjs/diagram/routing/index.js.map +1 -0
- package/dist-cjs/diagram/routing/legacy.js +32 -0
- package/dist-cjs/diagram/routing/legacy.js.map +1 -0
- package/dist-cjs/diagram/routing/nudge.js +100 -0
- package/dist-cjs/diagram/routing/nudge.js.map +1 -0
- package/dist-cjs/diagram/routing/orthogonal.js +62 -0
- package/dist-cjs/diagram/routing/orthogonal.js.map +1 -0
- package/dist-cjs/diagram/routing/path.js +137 -0
- package/dist-cjs/diagram/routing/path.js.map +1 -0
- package/dist-cjs/diagram/routing/sides.js +82 -0
- package/dist-cjs/diagram/routing/sides.js.map +1 -0
- package/dist-cjs/diagram/routing/types.js +15 -0
- package/dist-cjs/diagram/routing/types.js.map +1 -0
- package/dist-cjs/diagram/schema.js +64 -9
- package/dist-cjs/diagram/schema.js.map +1 -1
- package/dist-cjs/diagram/styleInput.js +113 -0
- package/dist-cjs/diagram/styleInput.js.map +1 -0
- package/dist-cjs/diagram/views.js +46 -0
- package/dist-cjs/diagram/views.js.map +1 -0
- package/dist-cjs/http-file/flatImport.js.map +1 -1
- package/dist-cjs/http-file/index.js +2 -1
- package/dist-cjs/http-file/index.js.map +1 -1
- package/dist-cjs/http-file/parseHttpFile.js +42 -9
- package/dist-cjs/http-file/parseHttpFile.js.map +1 -1
- package/dist-cjs/index.js +9 -1
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/request/requestBody.js +206 -0
- package/dist-cjs/request/requestBody.js.map +1 -0
- package/dist-cjs/runner/requestRunner.js +127 -43
- package/dist-cjs/runner/requestRunner.js.map +1 -1
- package/dist-cjs/runner/runCollection.js +9 -2
- package/dist-cjs/runner/runCollection.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js +7 -42
- package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/request-executor.js +3 -30
- package/dist-cjs/scenario-runner/adapters/request-executor.js.map +1 -1
- package/dist-cjs/scenario-runner/index.js +4 -1
- package/dist-cjs/scenario-runner/index.js.map +1 -1
- package/dist-cjs/scenario-runner/labels.js +24 -0
- package/dist-cjs/scenario-runner/labels.js.map +1 -0
- package/dist-cjs/scenario-runner/runScenario.js +4 -11
- package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
- package/dist-cjs/script/legacy.js +24 -9
- package/dist-cjs/script/legacy.js.map +1 -1
- package/dist-cjs/variables/resolver.js +27 -5
- package/dist-cjs/variables/resolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gridLayoutOps = exports.runLayout = exports.layoutResultToOps = exports.buildLayoutGraph = exports.layoutOptionsFor = exports.CONTAINER_PADDING = void 0;
|
|
4
|
+
// Automatic layout: build an ELK graph from the document, turn ELK's answer
|
|
5
|
+
// into OPS. elkjs itself is a HOST dependency (the desktop runs it in a Web
|
|
6
|
+
// Worker, the MCP server in-process); this module is the pure halves: the
|
|
7
|
+
// graph builder and the result-to-ops converter, plus a deterministic grid
|
|
8
|
+
// fallback for hosts without an engine.
|
|
9
|
+
//
|
|
10
|
+
// "Positions from layout, paths from the router": layout moves and resizes
|
|
11
|
+
// nodes and clears stale manual routes — it never bakes edge geometry, so
|
|
12
|
+
// what ELK decided survives the next drag instead of turning into pinned
|
|
13
|
+
// bends that go stale (the 1.28 behaviour this replaces).
|
|
14
|
+
//
|
|
15
|
+
// Modes:
|
|
16
|
+
// full — every visible, unlocked node; containers laid out inside
|
|
17
|
+
// and sized to fit (hierarchyHandling INCLUDE_CHILDREN).
|
|
18
|
+
// selection — only the given nodes (+ their contents); the result stays
|
|
19
|
+
// anchored where the selection was.
|
|
20
|
+
// tidy — ELK's interactive mode: keeps the user's ordering and
|
|
21
|
+
// layering, only cleans up spacing and alignment.
|
|
22
|
+
const geometry_js_1 = require("./geometry.js");
|
|
23
|
+
const resolveRequest = (request) => ({
|
|
24
|
+
algorithm: request.algorithm ?? "layered",
|
|
25
|
+
direction: request.direction ?? "DOWN",
|
|
26
|
+
mode: request.mode ?? "full",
|
|
27
|
+
nodeIds: request.nodeIds ?? [],
|
|
28
|
+
respectHandles: request.respectHandles ?? true,
|
|
29
|
+
assignSides: request.assignSides ?? false,
|
|
30
|
+
keepBendpoints: request.keepBendpoints ?? false,
|
|
31
|
+
spacing: { node: request.spacing?.node ?? 48, layer: request.spacing?.layer ?? 80 },
|
|
32
|
+
});
|
|
33
|
+
exports.CONTAINER_PADDING = { top: 48, left: 24, bottom: 24, right: 24 };
|
|
34
|
+
const layoutOptionsFor = (request) => {
|
|
35
|
+
const r = resolveRequest(request);
|
|
36
|
+
const common = {
|
|
37
|
+
"elk.hierarchyHandling": "INCLUDE_CHILDREN",
|
|
38
|
+
"elk.spacing.nodeNode": String(r.spacing.node),
|
|
39
|
+
"elk.layered.considerModelOrder.strategy": "NODES_AND_EDGES",
|
|
40
|
+
};
|
|
41
|
+
switch (r.algorithm) {
|
|
42
|
+
case "force":
|
|
43
|
+
case "organic":
|
|
44
|
+
return { ...common, "elk.algorithm": "stress", "elk.stress.desiredEdgeLength": String(r.spacing.layer * 2) };
|
|
45
|
+
case "radial":
|
|
46
|
+
return { ...common, "elk.algorithm": "radial", "elk.spacing.nodeNode": String(Math.max(r.spacing.node, 60)) };
|
|
47
|
+
case "tree":
|
|
48
|
+
return { ...common, "elk.algorithm": "mrtree", "elk.direction": r.direction };
|
|
49
|
+
case "layered":
|
|
50
|
+
default: {
|
|
51
|
+
const options = {
|
|
52
|
+
...common,
|
|
53
|
+
"elk.algorithm": "layered",
|
|
54
|
+
"elk.direction": r.direction,
|
|
55
|
+
"elk.layered.spacing.nodeNodeBetweenLayers": String(r.spacing.layer),
|
|
56
|
+
"elk.layered.spacing.edgeNodeBetweenLayers": "24",
|
|
57
|
+
"elk.edgeRouting": "ORTHOGONAL",
|
|
58
|
+
"elk.layered.nodePlacement.bk.fixedAlignment": "BALANCED",
|
|
59
|
+
};
|
|
60
|
+
if (r.mode === "tidy") {
|
|
61
|
+
Object.assign(options, {
|
|
62
|
+
"elk.interactiveLayout": "true",
|
|
63
|
+
"elk.layered.cycleBreaking.strategy": "INTERACTIVE",
|
|
64
|
+
"elk.layered.layering.strategy": "INTERACTIVE",
|
|
65
|
+
"elk.layered.crossingMinimization.semiInteractive": "true",
|
|
66
|
+
"elk.layered.nodePlacement.strategy": "INTERACTIVE",
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return options;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.layoutOptionsFor = layoutOptionsFor;
|
|
74
|
+
const ELK_SIDE = { top: "NORTH", right: "EAST", bottom: "SOUTH", left: "WEST" };
|
|
75
|
+
const portId = (nodeId, side) => `${nodeId}::${side}`;
|
|
76
|
+
const buildLayoutGraph = (doc, request = {}) => {
|
|
77
|
+
const r = resolveRequest(request);
|
|
78
|
+
const byId = (0, geometry_js_1.indexNodes)(doc.nodes);
|
|
79
|
+
const eligible = (node) => !node.hidden && !node.locked;
|
|
80
|
+
// The scope: which nodes move. Roots of the scope are laid out by ELK's
|
|
81
|
+
// root graph; their descendants are nested under them.
|
|
82
|
+
let roots;
|
|
83
|
+
if (r.mode === "selection") {
|
|
84
|
+
const wanted = new Set(r.nodeIds);
|
|
85
|
+
const selected = doc.nodes.filter((node) => wanted.has(node.id) && eligible(node));
|
|
86
|
+
// A selected node inside a selected container is nested, not a root.
|
|
87
|
+
roots = selected.filter((node) => !selected.some((other) => other.id !== node.id && (0, geometry_js_1.descendantIds)(other.id, doc.nodes).includes(node.id)));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
roots = doc.nodes.filter((node) => !node.parentId && eligible(node));
|
|
91
|
+
}
|
|
92
|
+
const scope = new Set();
|
|
93
|
+
for (const root of roots) {
|
|
94
|
+
scope.add(root.id);
|
|
95
|
+
for (const id of (0, geometry_js_1.descendantIds)(root.id, doc.nodes)) {
|
|
96
|
+
const node = byId.get(id);
|
|
97
|
+
if (eligible(node))
|
|
98
|
+
scope.add(id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const edgeIds = new Set();
|
|
102
|
+
const portsByNode = new Map();
|
|
103
|
+
const elkEdges = [];
|
|
104
|
+
for (const edge of doc.edges) {
|
|
105
|
+
if (!edge.source || !edge.target || !scope.has(edge.source) || !scope.has(edge.target))
|
|
106
|
+
continue;
|
|
107
|
+
if (edge.source === edge.target)
|
|
108
|
+
continue;
|
|
109
|
+
edgeIds.add(edge.id);
|
|
110
|
+
let sourceRef = edge.source;
|
|
111
|
+
let targetRef = edge.target;
|
|
112
|
+
if (r.respectHandles) {
|
|
113
|
+
if (edge.sourceHandle) {
|
|
114
|
+
sourceRef = portId(edge.source, edge.sourceHandle);
|
|
115
|
+
(portsByNode.get(edge.source) ?? portsByNode.set(edge.source, new Set()).get(edge.source))?.add(edge.sourceHandle);
|
|
116
|
+
}
|
|
117
|
+
if (edge.targetHandle) {
|
|
118
|
+
targetRef = portId(edge.target, edge.targetHandle);
|
|
119
|
+
(portsByNode.get(edge.target) ?? portsByNode.set(edge.target, new Set()).get(edge.target))?.add(edge.targetHandle);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
elkEdges.push({ id: edge.id, sources: [sourceRef], targets: [targetRef] });
|
|
123
|
+
}
|
|
124
|
+
const childrenOf = (parentId) => doc.nodes.filter((node) => node.parentId === parentId && scope.has(node.id));
|
|
125
|
+
const containerOptions = () => ({
|
|
126
|
+
"elk.algorithm": "layered",
|
|
127
|
+
"elk.direction": r.direction,
|
|
128
|
+
"elk.layered.spacing.nodeNodeBetweenLayers": String(Math.round(r.spacing.layer * 0.75)),
|
|
129
|
+
"elk.spacing.nodeNode": String(r.spacing.node),
|
|
130
|
+
"elk.padding": `[top=${exports.CONTAINER_PADDING.top},left=${exports.CONTAINER_PADDING.left},bottom=${exports.CONTAINER_PADDING.bottom},right=${exports.CONTAINER_PADDING.right}]`,
|
|
131
|
+
"elk.layered.considerModelOrder.strategy": "NODES_AND_EDGES",
|
|
132
|
+
});
|
|
133
|
+
const toElk = (node) => {
|
|
134
|
+
const kids = node.collapsed ? [] : childrenOf(node.id);
|
|
135
|
+
const size = node.collapsed && node.collapsedSize ? node.collapsedSize : node.size;
|
|
136
|
+
const ports = portsByNode.get(node.id);
|
|
137
|
+
const out = { id: node.id };
|
|
138
|
+
if (kids.length > 0) {
|
|
139
|
+
out.layoutOptions = containerOptions();
|
|
140
|
+
out.children = kids.map(toElk);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
out.width = size.width;
|
|
144
|
+
out.height = size.height;
|
|
145
|
+
}
|
|
146
|
+
if (ports && ports.size > 0) {
|
|
147
|
+
out.layoutOptions = { ...(out.layoutOptions ?? {}), "elk.portConstraints": "FIXED_SIDE" };
|
|
148
|
+
out.ports = [...ports].map((side) => ({ id: portId(node.id, side), layoutOptions: { "elk.port.side": ELK_SIDE[side] }, width: 1, height: 1 }));
|
|
149
|
+
}
|
|
150
|
+
if (r.mode === "tidy") {
|
|
151
|
+
const abs = (0, geometry_js_1.absolutePosition)(node, byId);
|
|
152
|
+
out.x = abs.x;
|
|
153
|
+
out.y = abs.y;
|
|
154
|
+
out.layoutOptions = { ...(out.layoutOptions ?? {}), "elk.position": `(${abs.x},${abs.y})` };
|
|
155
|
+
}
|
|
156
|
+
return out;
|
|
157
|
+
};
|
|
158
|
+
const rects = roots.map((node) => (0, geometry_js_1.absoluteRect)(node, byId));
|
|
159
|
+
const anchor = rects.length > 0 ? { x: Math.min(...rects.map((rect) => rect.x)), y: Math.min(...rects.map((rect) => rect.y)) } : { x: 80, y: 80 };
|
|
160
|
+
return {
|
|
161
|
+
graph: { id: "root", layoutOptions: (0, exports.layoutOptionsFor)(request), children: roots.map(toElk), edges: elkEdges },
|
|
162
|
+
scope,
|
|
163
|
+
anchor,
|
|
164
|
+
edgeIds,
|
|
165
|
+
request: r,
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
exports.buildLayoutGraph = buildLayoutGraph;
|
|
169
|
+
const nearestSideOf = (rect, point) => (0, geometry_js_1.anchorSide)({ x: rect.width > 0 ? (point.x - rect.x) / rect.width : 0.5, y: rect.height > 0 ? (point.y - rect.y) / rect.height : 0.5 });
|
|
170
|
+
const layoutResultToOps = (doc, built, result) => {
|
|
171
|
+
const byId = (0, geometry_js_1.indexNodes)(doc.nodes);
|
|
172
|
+
const absolute = new Map(); // laid-out nodes, absolute
|
|
173
|
+
const sizes = new Map();
|
|
174
|
+
const rawEdges = [];
|
|
175
|
+
const walk = (node, originX, originY) => {
|
|
176
|
+
for (const edge of node.edges ?? []) {
|
|
177
|
+
const section = edge.sections?.[0];
|
|
178
|
+
if (!section)
|
|
179
|
+
continue;
|
|
180
|
+
const toAbs = (p) => ({ x: Math.round(originX + p.x), y: Math.round(originY + p.y) });
|
|
181
|
+
rawEdges.push({
|
|
182
|
+
id: edge.id,
|
|
183
|
+
start: section.startPoint ? toAbs(section.startPoint) : undefined,
|
|
184
|
+
end: section.endPoint ? toAbs(section.endPoint) : undefined,
|
|
185
|
+
bends: (section.bendPoints ?? []).map(toAbs),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
for (const child of node.children ?? []) {
|
|
189
|
+
const x = originX + (child.x ?? 0);
|
|
190
|
+
const y = originY + (child.y ?? 0);
|
|
191
|
+
const width = child.width ?? byId.get(child.id)?.size.width ?? 0;
|
|
192
|
+
const height = child.height ?? byId.get(child.id)?.size.height ?? 0;
|
|
193
|
+
absolute.set(child.id, { x: Math.round(x), y: Math.round(y), width, height });
|
|
194
|
+
if (typeof child.width === "number" && typeof child.height === "number" && (child.children?.length ?? 0) > 0) {
|
|
195
|
+
sizes.set(child.id, { width: Math.round(child.width), height: Math.round(child.height) });
|
|
196
|
+
}
|
|
197
|
+
walk(child, x, y);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
walk(result, built.anchor.x, built.anchor.y);
|
|
201
|
+
// Absolute origin of any node: laid out → ELK, else the document.
|
|
202
|
+
const originOf = (id) => {
|
|
203
|
+
if (!id)
|
|
204
|
+
return { x: 0, y: 0 };
|
|
205
|
+
const laid = absolute.get(id);
|
|
206
|
+
if (laid)
|
|
207
|
+
return { x: laid.x, y: laid.y };
|
|
208
|
+
const node = byId.get(id);
|
|
209
|
+
return node ? (0, geometry_js_1.absolutePosition)(node, byId) : { x: 0, y: 0 };
|
|
210
|
+
};
|
|
211
|
+
const moves = [];
|
|
212
|
+
const resizes = [];
|
|
213
|
+
for (const node of doc.nodes) {
|
|
214
|
+
const laid = absolute.get(node.id);
|
|
215
|
+
if (!laid)
|
|
216
|
+
continue;
|
|
217
|
+
const parentOrigin = originOf(node.parentId);
|
|
218
|
+
const position = { x: laid.x - parentOrigin.x, y: laid.y - parentOrigin.y };
|
|
219
|
+
if (position.x !== node.position.x || position.y !== node.position.y)
|
|
220
|
+
moves.push({ id: node.id, position });
|
|
221
|
+
const size = sizes.get(node.id);
|
|
222
|
+
if (size && !node.collapsed && (size.width !== node.size.width || size.height !== node.size.height)) {
|
|
223
|
+
resizes.push({ op: "resizeNode", id: node.id, size });
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const sides = {};
|
|
227
|
+
const bendpoints = {};
|
|
228
|
+
const edgeOps = [];
|
|
229
|
+
const rawById = new Map(rawEdges.map((edge) => [edge.id, edge]));
|
|
230
|
+
for (const edge of doc.edges) {
|
|
231
|
+
if (!built.edgeIds.has(edge.id))
|
|
232
|
+
continue;
|
|
233
|
+
const raw = rawById.get(edge.id);
|
|
234
|
+
const changes = {};
|
|
235
|
+
// A laid-out edge starts fresh: manual bends and legacy pins go.
|
|
236
|
+
if (edge.waypoints)
|
|
237
|
+
changes.waypoints = null;
|
|
238
|
+
if (edge.sourceAnchor)
|
|
239
|
+
changes.sourceAnchor = null;
|
|
240
|
+
if (edge.targetAnchor)
|
|
241
|
+
changes.targetAnchor = null;
|
|
242
|
+
if (edge.routing === "straight" && (edge.sourceAnchor || edge.targetAnchor))
|
|
243
|
+
changes.routing = null;
|
|
244
|
+
if (raw) {
|
|
245
|
+
const source = edge.source ? absolute.get(edge.source) : undefined;
|
|
246
|
+
const target = edge.target ? absolute.get(edge.target) : undefined;
|
|
247
|
+
if (raw.start && source)
|
|
248
|
+
sides[edge.id] = { ...(sides[edge.id] ?? {}), source: nearestSideOf(source, raw.start) };
|
|
249
|
+
if (raw.end && target)
|
|
250
|
+
sides[edge.id] = { ...(sides[edge.id] ?? {}), target: nearestSideOf(target, raw.end) };
|
|
251
|
+
if (raw.bends.length > 0)
|
|
252
|
+
bendpoints[edge.id] = raw.bends;
|
|
253
|
+
if (built.request.assignSides) {
|
|
254
|
+
const chosen = sides[edge.id];
|
|
255
|
+
if (chosen?.source && !edge.sourceHandle)
|
|
256
|
+
changes.sourceHandle = chosen.source;
|
|
257
|
+
if (chosen?.target && !edge.targetHandle)
|
|
258
|
+
changes.targetHandle = chosen.target;
|
|
259
|
+
}
|
|
260
|
+
if (built.request.keepBendpoints && raw.bends.length > 0) {
|
|
261
|
+
changes.waypoints = raw.bends;
|
|
262
|
+
changes.routing = "orthogonal";
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (Object.keys(changes).length > 0)
|
|
266
|
+
edgeOps.push({ op: "updateEdge", id: edge.id, changes });
|
|
267
|
+
}
|
|
268
|
+
const ops = [];
|
|
269
|
+
if (moves.length > 0)
|
|
270
|
+
ops.push({ op: "moveNodes", moves });
|
|
271
|
+
ops.push(...resizes, ...edgeOps);
|
|
272
|
+
return { ops: ops.length > 0 ? [{ op: "batch", label: "Auto layout", ops }] : [], sides, bendpoints };
|
|
273
|
+
};
|
|
274
|
+
exports.layoutResultToOps = layoutResultToOps;
|
|
275
|
+
const runLayout = async (doc, request, engine) => {
|
|
276
|
+
const built = (0, exports.buildLayoutGraph)(doc, request);
|
|
277
|
+
if (built.scope.size === 0)
|
|
278
|
+
return { ops: [], engine: "elk" };
|
|
279
|
+
try {
|
|
280
|
+
const result = await engine.layout(built.graph);
|
|
281
|
+
return { ops: (0, exports.layoutResultToOps)(doc, built, result).ops, engine: "elk" };
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
return {
|
|
285
|
+
ops: (0, exports.gridLayoutOps)(doc, { nodeIds: request.mode === "selection" ? request.nodeIds : undefined }),
|
|
286
|
+
engine: "grid",
|
|
287
|
+
warning: `Automatic layout fell back to a grid: ${error instanceof Error ? error.message : String(error)}`,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
exports.runLayout = runLayout;
|
|
292
|
+
// Deterministic grid for hosts without elkjs: nodes in reading order, cell
|
|
293
|
+
// size = the largest node, children of a container placed inside it in a
|
|
294
|
+
// sub-grid and the container sized to fit. Emits the same op shape ELK does.
|
|
295
|
+
const gridLayoutOps = (doc, options = {}) => {
|
|
296
|
+
const gap = options.gap ?? 48;
|
|
297
|
+
const origin = options.origin ?? { x: 80, y: 80 };
|
|
298
|
+
const byId = (0, geometry_js_1.indexNodes)(doc.nodes);
|
|
299
|
+
const wanted = options.nodeIds ? new Set(options.nodeIds) : null;
|
|
300
|
+
const childrenOf = (parentId) => doc.nodes.filter((node) => (node.parentId ?? undefined) === parentId && !node.hidden && (!wanted || parentId !== undefined || wanted.has(node.id)));
|
|
301
|
+
const moves = [];
|
|
302
|
+
const resizes = [];
|
|
303
|
+
const layoutGroup = (nodes, padTop, padSide) => {
|
|
304
|
+
const sized = nodes.map((node) => {
|
|
305
|
+
const kids = node.collapsed ? [] : childrenOf(node.id);
|
|
306
|
+
if (kids.length === 0) {
|
|
307
|
+
const size = node.collapsed && node.collapsedSize ? node.collapsedSize : node.size;
|
|
308
|
+
return { node, width: size.width, height: size.height };
|
|
309
|
+
}
|
|
310
|
+
const inner = layoutGroup(kids, exports.CONTAINER_PADDING.top, exports.CONTAINER_PADDING.left);
|
|
311
|
+
if (inner.width !== node.size.width || inner.height !== node.size.height) {
|
|
312
|
+
resizes.push({ op: "resizeNode", id: node.id, size: inner });
|
|
313
|
+
}
|
|
314
|
+
return { node, width: inner.width, height: inner.height };
|
|
315
|
+
});
|
|
316
|
+
if (sized.length === 0)
|
|
317
|
+
return { width: padSide * 2, height: padTop + padSide };
|
|
318
|
+
const columns = options.columns ?? Math.max(1, Math.ceil(Math.sqrt(sized.length)));
|
|
319
|
+
const cellW = Math.max(...sized.map((entry) => entry.width));
|
|
320
|
+
const cellH = Math.max(...sized.map((entry) => entry.height));
|
|
321
|
+
sized.forEach((entry, index) => {
|
|
322
|
+
const col = index % columns;
|
|
323
|
+
const row = Math.floor(index / columns);
|
|
324
|
+
const position = { x: padSide + col * (cellW + gap), y: padTop + row * (cellH + gap) };
|
|
325
|
+
if (!entry.node.locked)
|
|
326
|
+
moves.push({ id: entry.node.id, position });
|
|
327
|
+
});
|
|
328
|
+
const rows = Math.ceil(sized.length / columns);
|
|
329
|
+
return {
|
|
330
|
+
width: padSide * 2 + columns * cellW + (columns - 1) * gap,
|
|
331
|
+
height: padTop + padSide + rows * cellH + (rows - 1) * gap,
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
const roots = childrenOf(undefined);
|
|
335
|
+
if (roots.length > 0)
|
|
336
|
+
layoutGroup(roots, 0, 0);
|
|
337
|
+
// Root-level positions get the origin; nested ones are already relative.
|
|
338
|
+
const rootIds = new Set(roots.map((node) => node.id));
|
|
339
|
+
const finalMoves = moves
|
|
340
|
+
.map((move) => (rootIds.has(move.id) ? { id: move.id, position: { x: move.position.x + origin.x, y: move.position.y + origin.y } } : move))
|
|
341
|
+
.filter((move) => {
|
|
342
|
+
const node = byId.get(move.id);
|
|
343
|
+
return node.position.x !== move.position.x || node.position.y !== move.position.y;
|
|
344
|
+
});
|
|
345
|
+
const edgeOps = doc.edges
|
|
346
|
+
.filter((edge) => edge.waypoints || edge.sourceAnchor || edge.targetAnchor)
|
|
347
|
+
.map((edge) => ({
|
|
348
|
+
op: "updateEdge",
|
|
349
|
+
id: edge.id,
|
|
350
|
+
changes: {
|
|
351
|
+
...(edge.waypoints ? { waypoints: null } : {}),
|
|
352
|
+
...(edge.sourceAnchor ? { sourceAnchor: null } : {}),
|
|
353
|
+
...(edge.targetAnchor ? { targetAnchor: null } : {}),
|
|
354
|
+
...(edge.routing === "straight" && (edge.sourceAnchor || edge.targetAnchor) ? { routing: null } : {}),
|
|
355
|
+
},
|
|
356
|
+
}));
|
|
357
|
+
const ops = [];
|
|
358
|
+
if (finalMoves.length > 0)
|
|
359
|
+
ops.push({ op: "moveNodes", moves: finalMoves });
|
|
360
|
+
ops.push(...resizes, ...edgeOps);
|
|
361
|
+
return ops.length > 0 ? [{ op: "batch", label: "Auto layout", ops }] : [];
|
|
362
|
+
};
|
|
363
|
+
exports.gridLayoutOps = gridLayoutOps;
|
|
364
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/diagram/layout.ts"],"names":[],"mappings":"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"}
|