@coral-viz/viz 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.
- package/README.md +25 -4
- package/dist/compatibility/CompatibilityEdge.d.ts +16 -11
- package/dist/compatibility/CompatibilityEdge.d.ts.map +1 -1
- package/dist/compatibility/CompatibilityEdge.js +144 -28
- package/dist/compatibility/CompatibilityEdge.js.map +1 -1
- package/dist/components/DiagramFontFaces.d.ts +8 -0
- package/dist/components/DiagramFontFaces.d.ts.map +1 -0
- package/dist/components/DiagramFontFaces.js +18 -0
- package/dist/components/DiagramFontFaces.js.map +1 -0
- package/dist/components/SymbolNode.d.ts.map +1 -1
- package/dist/components/SymbolNode.js +59 -11
- package/dist/components/SymbolNode.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/editor/CoralEditor.js +1 -1
- package/dist/editor/CoralEditor.js.map +1 -1
- package/dist/editor/converter.d.ts +1 -1
- package/dist/editor/converter.d.ts.map +1 -1
- package/dist/editor/converter.js +41 -21
- package/dist/editor/converter.js.map +1 -1
- package/dist/editor/dimensions.d.ts +7 -0
- package/dist/editor/dimensions.d.ts.map +1 -0
- package/dist/editor/dimensions.js +26 -0
- package/dist/editor/dimensions.js.map +1 -0
- package/dist/file/deserialize.d.ts.map +1 -1
- package/dist/file/deserialize.js +9 -14
- package/dist/file/deserialize.js.map +1 -1
- package/dist/file/index.d.ts +2 -1
- package/dist/file/index.d.ts.map +1 -1
- package/dist/file/index.js +2 -1
- package/dist/file/index.js.map +1 -1
- package/dist/file/layoutProfile.d.ts +11 -0
- package/dist/file/layoutProfile.d.ts.map +1 -0
- package/dist/file/layoutProfile.js +89 -0
- package/dist/file/layoutProfile.js.map +1 -0
- package/dist/file/migrate.d.ts.map +1 -1
- package/dist/file/migrate.js +15 -3
- package/dist/file/migrate.js.map +1 -1
- package/dist/file/schema.d.ts +27 -0
- package/dist/file/schema.d.ts.map +1 -1
- package/dist/file/schema.js +70 -0
- package/dist/file/schema.js.map +1 -1
- package/dist/file/serialize.d.ts.map +1 -1
- package/dist/file/serialize.js +61 -16
- package/dist/file/serialize.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/layout/elk.d.ts +2 -51
- package/dist/layout/elk.d.ts.map +1 -1
- package/dist/layout/elk.js +107 -337
- package/dist/layout/elk.js.map +1 -1
- package/dist/layout/nodeSizing.d.ts +4 -61
- package/dist/layout/nodeSizing.d.ts.map +1 -1
- package/dist/layout/nodeSizing.js +4 -315
- package/dist/layout/nodeSizing.js.map +1 -1
- package/dist/layout/positionStability.d.ts +2 -1
- package/dist/layout/positionStability.d.ts.map +1 -1
- package/dist/layout/positionStability.js +40 -29
- package/dist/layout/positionStability.js.map +1 -1
- package/dist/layout/useAxisConstrain.d.ts.map +1 -1
- package/dist/layout/useAxisConstrain.js +20 -20
- package/dist/layout/useAxisConstrain.js.map +1 -1
- package/dist/layout/useDiagramState.d.ts +2 -1
- package/dist/layout/useDiagramState.d.ts.map +1 -1
- package/dist/layout/useLayoutHistory.d.ts +8 -0
- package/dist/layout/useLayoutHistory.d.ts.map +1 -1
- package/dist/layout/useLayoutHistory.js +78 -100
- package/dist/layout/useLayoutHistory.js.map +1 -1
- package/dist/properties/NodePropertiesPanel.d.ts +5 -1
- package/dist/properties/NodePropertiesPanel.d.ts.map +1 -1
- package/dist/properties/NodePropertiesPanel.js +95 -28
- package/dist/properties/NodePropertiesPanel.js.map +1 -1
- package/dist/settings/FontSettingsForm.d.ts.map +1 -1
- package/dist/settings/FontSettingsForm.js +9 -4
- package/dist/settings/FontSettingsForm.js.map +1 -1
- package/dist/settings/LayoutSettingsForm.d.ts +3 -1
- package/dist/settings/LayoutSettingsForm.d.ts.map +1 -1
- package/dist/settings/LayoutSettingsForm.js +43 -20
- package/dist/settings/LayoutSettingsForm.js.map +1 -1
- package/dist/settings/SettingsPanel.d.ts +10 -2
- package/dist/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/settings/SettingsPanel.js +45 -3
- package/dist/settings/SettingsPanel.js.map +1 -1
- package/dist/settings/useSettings.d.ts +8 -2
- package/dist/settings/useSettings.d.ts.map +1 -1
- package/dist/settings/useSettings.js +29 -7
- package/dist/settings/useSettings.js.map +1 -1
- package/dist/text-editor/SplitEditor.d.ts +5 -1
- package/dist/text-editor/SplitEditor.d.ts.map +1 -1
- package/dist/text-editor/SplitEditor.js +5 -12
- package/dist/text-editor/SplitEditor.js.map +1 -1
- package/dist/text-editor/TextEditor.d.ts +45 -33
- package/dist/text-editor/TextEditor.d.ts.map +1 -1
- package/dist/text-editor/TextEditor.js +178 -168
- package/dist/text-editor/TextEditor.js.map +1 -1
- package/dist/text-editor/hooks/useBidirectionalSync.d.ts +15 -0
- package/dist/text-editor/hooks/useBidirectionalSync.d.ts.map +1 -1
- package/dist/text-editor/hooks/useBidirectionalSync.js +9 -22
- package/dist/text-editor/hooks/useBidirectionalSync.js.map +1 -1
- package/dist/text-editor/index.d.ts +2 -2
- package/dist/text-editor/index.d.ts.map +1 -1
- package/dist/text-editor/index.js +1 -1
- package/dist/text-editor/index.js.map +1 -1
- package/dist/types.d.ts +24 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/viewMetadata.d.ts +4 -0
- package/dist/viewMetadata.d.ts.map +1 -0
- package/dist/viewMetadata.js +63 -0
- package/dist/viewMetadata.js.map +1 -0
- package/dist/waypoints/useWaypointManager.d.ts.map +1 -1
- package/dist/waypoints/useWaypointManager.js +60 -84
- package/dist/waypoints/useWaypointManager.js.map +1 -1
- package/package.json +10 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, Grou
|
|
|
5
5
|
// New symbol-aware components
|
|
6
6
|
export { ShapeRenderer } from './ShapeRenderer.js';
|
|
7
7
|
export { SymbolNode } from './SymbolNode.js';
|
|
8
|
+
export { DiagramFontFaces, } from './DiagramFontFaces.js';
|
|
8
9
|
// Edit context for inline label editing
|
|
9
10
|
export { EditProvider, useEditContext, useIsEditing, } from './EditContext.js';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAuB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAuB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAE/B,wCAAwC;AACxC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,GAGb,MAAM,kBAAkB,CAAC"}
|
|
@@ -100,7 +100,7 @@ export const CoralEditor = ({ graph, config: userConfig, callbacks, className, s
|
|
|
100
100
|
export function useGraphIR(nodes, edges, originalGraph) {
|
|
101
101
|
return useMemo(() => {
|
|
102
102
|
const graphNodes = convertFlowToGraphNodes(nodes, originalGraph.nodes);
|
|
103
|
-
const graphEdges = convertFlowToGraphEdges(edges);
|
|
103
|
+
const graphEdges = convertFlowToGraphEdges(edges, originalGraph.edges);
|
|
104
104
|
return {
|
|
105
105
|
...originalGraph,
|
|
106
106
|
nodes: graphNodes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoralEditor.js","sourceRoot":"","sources":["../../src/editor/CoralEditor.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CoralEditor.js","sourceRoot":"","sources":["../../src/editor/CoralEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,5 +33,5 @@ export declare function convertFlowToGraphNodes(flowNodes: CoralNode[], original
|
|
|
33
33
|
/**
|
|
34
34
|
* Convert React Flow edges back to Graph-IR edges
|
|
35
35
|
*/
|
|
36
|
-
export declare function convertFlowToGraphEdges(flowEdges: CoralEdge[]): GraphEdge[];
|
|
36
|
+
export declare function convertFlowToGraphEdges(flowEdges: CoralEdge[], originalEdges?: GraphEdge[]): GraphEdge[];
|
|
37
37
|
//# sourceMappingURL=converter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/editor/converter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EAGV,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/editor/converter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EAGV,MAAM,aAAa,CAAC;AAoErB;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,SAAS,CAgDX;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAmB5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CA4CtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG;IAClD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB,CAKA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,EAAE,SAAS,EAAE,GACzB,SAAS,EAAE,CAkEb;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,GAAE,SAAS,EAAO,GAC9B,SAAS,EAAE,CAwCb"}
|
package/dist/editor/converter.js
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Transforms Graph-IR nodes and edges to React Flow format.
|
|
5
5
|
*/
|
|
6
|
+
import { CORAL_NODE_VIEW_METADATA } from '../types.js';
|
|
7
|
+
import { dimensionsForGraphProjection } from './dimensions.js';
|
|
6
8
|
/**
|
|
7
9
|
* Default node dimensions by type
|
|
8
10
|
*/
|
|
@@ -14,6 +16,14 @@ const DEFAULT_DIMENSIONS = {
|
|
|
14
16
|
module: { width: 120, height: 40 },
|
|
15
17
|
group: { width: 200, height: 150 },
|
|
16
18
|
};
|
|
19
|
+
function canonicalNodePayload(node) {
|
|
20
|
+
const { id: _id, type: _type, label: _label, description: _description, properties: _properties, position: _position, pinned: _pinned, children: _children, ...canonical } = node;
|
|
21
|
+
return canonical;
|
|
22
|
+
}
|
|
23
|
+
function canonicalEdgePayload(edge) {
|
|
24
|
+
const { id: _id, source: _source, target: _target, sourcePort: _sourcePort, targetPort: _targetPort, type: _type, label: _label, properties: _properties, ...canonical } = edge;
|
|
25
|
+
return canonical;
|
|
26
|
+
}
|
|
17
27
|
/**
|
|
18
28
|
* Map Graph-IR node type to React Flow node type
|
|
19
29
|
*/
|
|
@@ -51,15 +61,10 @@ export function convertNode(node, index, parentId) {
|
|
|
51
61
|
variant: node.variant,
|
|
52
62
|
isGroup: hasChildren || node.type === 'group',
|
|
53
63
|
childCount: node.children?.length,
|
|
54
|
-
canonical:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
...(node.ports !== undefined ? { ports: node.ports } : {}),
|
|
59
|
-
...(node.dimensions !== undefined ? { dimensions: node.dimensions } : {}),
|
|
60
|
-
...(node.layoutOptions !== undefined ? { layoutOptions: node.layoutOptions } : {}),
|
|
61
|
-
...(node.sourceInfo !== undefined ? { sourceInfo: node.sourceInfo } : {}),
|
|
62
|
-
},
|
|
64
|
+
canonical: canonicalNodePayload(node),
|
|
65
|
+
...(node.dimensions !== undefined
|
|
66
|
+
? { [CORAL_NODE_VIEW_METADATA]: { dimensionSource: 'graph' } }
|
|
67
|
+
: {}),
|
|
63
68
|
};
|
|
64
69
|
const flowNode = {
|
|
65
70
|
id: node.id,
|
|
@@ -117,11 +122,8 @@ export function convertEdge(edge) {
|
|
|
117
122
|
edgeType: edge.type,
|
|
118
123
|
properties: edge.properties,
|
|
119
124
|
lineStyle: edge.style?.lineStyle,
|
|
120
|
-
routingPoints: edge.
|
|
121
|
-
canonical:
|
|
122
|
-
...(edge.style !== undefined ? { style: edge.style } : {}),
|
|
123
|
-
...(edge.sourceInfo !== undefined ? { sourceInfo: edge.sourceInfo } : {}),
|
|
124
|
-
},
|
|
125
|
+
routingPoints: edge.routeIntent?.waypoints.flatMap((waypoint) => waypoint.placement.kind === 'absolute' ? [waypoint.placement.position] : []),
|
|
126
|
+
canonical: canonicalEdgePayload(edge),
|
|
125
127
|
};
|
|
126
128
|
const flowEdge = {
|
|
127
129
|
id: edge.id,
|
|
@@ -185,6 +187,7 @@ export function convertFlowToGraphNodes(flowNodes, originalNodes) {
|
|
|
185
187
|
const original = originalMap.get(flowNode.id);
|
|
186
188
|
const canonical = flowNode.data.canonical;
|
|
187
189
|
const graphNode = {
|
|
190
|
+
...original,
|
|
188
191
|
...canonical,
|
|
189
192
|
id: flowNode.id,
|
|
190
193
|
type: flowNode.data.nodeType,
|
|
@@ -193,10 +196,17 @@ export function convertFlowToGraphNodes(flowNodes, originalNodes) {
|
|
|
193
196
|
properties: flowNode.data.properties,
|
|
194
197
|
position: flowNode.position,
|
|
195
198
|
pinned: flowNode.data.pinned ?? original?.pinned,
|
|
196
|
-
dimensions: (typeof flowNode.width === 'number' && typeof flowNode.height === 'number')
|
|
197
|
-
? { width: flowNode.width, height: flowNode.height }
|
|
198
|
-
: canonical?.dimensions,
|
|
199
199
|
};
|
|
200
|
+
const dimensions = dimensionsForGraphProjection(flowNode);
|
|
201
|
+
if (dimensions)
|
|
202
|
+
graphNode.dimensions = dimensions;
|
|
203
|
+
else
|
|
204
|
+
delete graphNode.dimensions;
|
|
205
|
+
// The current flat React Flow topology owns hierarchy. Starting from the
|
|
206
|
+
// original preserves extensions, but stale parent/children links must not
|
|
207
|
+
// resurrect nodes that were detached or deleted in the visual editor.
|
|
208
|
+
delete graphNode.parent;
|
|
209
|
+
delete graphNode.children;
|
|
200
210
|
if (flowNode.parentId) {
|
|
201
211
|
graphNode.parent = flowNode.parentId;
|
|
202
212
|
if (!childMap.has(flowNode.parentId)) {
|
|
@@ -224,10 +234,13 @@ export function convertFlowToGraphNodes(flowNodes, originalNodes) {
|
|
|
224
234
|
/**
|
|
225
235
|
* Convert React Flow edges back to Graph-IR edges
|
|
226
236
|
*/
|
|
227
|
-
export function convertFlowToGraphEdges(flowEdges) {
|
|
237
|
+
export function convertFlowToGraphEdges(flowEdges, originalEdges = []) {
|
|
238
|
+
const originalMap = new Map(originalEdges.map((edge) => [edge.id, edge]));
|
|
228
239
|
return flowEdges.map(flowEdge => {
|
|
240
|
+
const original = originalMap.get(flowEdge.id);
|
|
229
241
|
const canonical = flowEdge.data?.canonical;
|
|
230
242
|
const graphEdge = {
|
|
243
|
+
...original,
|
|
231
244
|
...canonical,
|
|
232
245
|
id: flowEdge.id,
|
|
233
246
|
source: flowEdge.source,
|
|
@@ -235,8 +248,11 @@ export function convertFlowToGraphEdges(flowEdges) {
|
|
|
235
248
|
label: flowEdge.data?.label,
|
|
236
249
|
type: flowEdge.data?.edgeType,
|
|
237
250
|
properties: flowEdge.data?.properties,
|
|
238
|
-
routingPoints: flowEdge.data?.routingPoints,
|
|
239
251
|
};
|
|
252
|
+
// Handles are visual-owned. A missing current handle means the port was
|
|
253
|
+
// cleared, not that the original port should be restored.
|
|
254
|
+
delete graphEdge.sourcePort;
|
|
255
|
+
delete graphEdge.targetPort;
|
|
240
256
|
if (flowEdge.sourceHandle) {
|
|
241
257
|
graphEdge.sourcePort = flowEdge.sourceHandle;
|
|
242
258
|
}
|
|
@@ -247,8 +263,12 @@ export function convertFlowToGraphEdges(flowEdges) {
|
|
|
247
263
|
?? (flowEdge.style?.strokeDasharray
|
|
248
264
|
? (String(flowEdge.style.strokeDasharray).includes('2') ? 'dotted' : 'dashed')
|
|
249
265
|
: undefined);
|
|
250
|
-
|
|
251
|
-
|
|
266
|
+
const { lineStyle: _oldLineStyle, ...canonicalStyle } = canonical?.style ?? original?.style ?? {};
|
|
267
|
+
if (lineStyle || Object.keys(canonicalStyle).length > 0) {
|
|
268
|
+
graphEdge.style = { ...canonicalStyle, ...(lineStyle ? { lineStyle } : {}) };
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
delete graphEdge.style;
|
|
252
272
|
}
|
|
253
273
|
return graphEdge;
|
|
254
274
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/editor/converter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/editor/converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CoralNode, Dimensions } from '../types.js';
|
|
2
|
+
import type { DimensionSource } from '../types.js';
|
|
3
|
+
/** Read only recognized dimension provenance from collision-safe metadata. */
|
|
4
|
+
export declare function nodeDimensionSource(node: CoralNode): DimensionSource | undefined;
|
|
5
|
+
/** Resolve the dimensions that may cross a GraphIR persistence/text boundary. */
|
|
6
|
+
export declare function dimensionsForGraphProjection(node: CoralNode): Dimensions | undefined;
|
|
7
|
+
//# sourceMappingURL=dimensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../src/editor/dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAcnD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAEhF;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAOpF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { readNodeViewMetadata } from '../viewMetadata.js';
|
|
2
|
+
function finiteDimensions(value) {
|
|
3
|
+
if (!value || typeof value !== 'object')
|
|
4
|
+
return undefined;
|
|
5
|
+
const candidate = value;
|
|
6
|
+
return typeof candidate.width === 'number'
|
|
7
|
+
&& Number.isFinite(candidate.width)
|
|
8
|
+
&& typeof candidate.height === 'number'
|
|
9
|
+
&& Number.isFinite(candidate.height)
|
|
10
|
+
? { width: candidate.width, height: candidate.height }
|
|
11
|
+
: undefined;
|
|
12
|
+
}
|
|
13
|
+
/** Read only recognized dimension provenance from collision-safe metadata. */
|
|
14
|
+
export function nodeDimensionSource(node) {
|
|
15
|
+
return readNodeViewMetadata(node.data)?.dimensionSource;
|
|
16
|
+
}
|
|
17
|
+
/** Resolve the dimensions that may cross a GraphIR persistence/text boundary. */
|
|
18
|
+
export function dimensionsForGraphProjection(node) {
|
|
19
|
+
const source = nodeDimensionSource(node);
|
|
20
|
+
if (source === 'editor-font')
|
|
21
|
+
return undefined;
|
|
22
|
+
const current = finiteDimensions({ width: node.width, height: node.height });
|
|
23
|
+
const canonical = finiteDimensions(node.data.canonical?.dimensions);
|
|
24
|
+
return source === 'graph' ? canonical ?? current : current ?? canonical;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dimensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimensions.js","sourceRoot":"","sources":["../../src/editor/dimensions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,SAAS,GAAG,KAA8C,CAAC;IACjE,OAAO,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;WACrC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;WAChC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;WACpC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QACpC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE;QACtD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;AAC1D,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,4BAA4B,CAAC,IAAe;IAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpE,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../src/file/deserialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../src/file/deserialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAuHlF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,iBAAiB,CAoDjE"}
|
package/dist/file/deserialize.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { assertValidDocument } from './validate.js';
|
|
7
7
|
import { migrateDocument } from './migrate.js';
|
|
8
|
+
import { CORAL_NODE_VIEW_METADATA } from '../types.js';
|
|
8
9
|
/**
|
|
9
10
|
* Default position for nodes without positions
|
|
10
11
|
*/
|
|
@@ -14,6 +15,7 @@ const DEFAULT_POSITION = { x: 0, y: 0 };
|
|
|
14
15
|
*/
|
|
15
16
|
function graphNodeToNode(graphNode, positions) {
|
|
16
17
|
const position = positions[graphNode.id] ?? graphNode.position ?? DEFAULT_POSITION;
|
|
18
|
+
const { id: _id, type: _type, label: _label, description: _description, properties: _properties, position: _position, pinned: _pinned, children: _children, ...canonical } = graphNode;
|
|
17
19
|
return {
|
|
18
20
|
id: graphNode.id,
|
|
19
21
|
type: graphNode.type,
|
|
@@ -30,15 +32,10 @@ function graphNodeToNode(graphNode, positions) {
|
|
|
30
32
|
variant: graphNode.variant,
|
|
31
33
|
isGroup: graphNode.children && graphNode.children.length > 0,
|
|
32
34
|
childCount: graphNode.children?.length,
|
|
33
|
-
canonical
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
...(graphNode.ports !== undefined ? { ports: graphNode.ports } : {}),
|
|
38
|
-
...(graphNode.dimensions !== undefined ? { dimensions: graphNode.dimensions } : {}),
|
|
39
|
-
...(graphNode.layoutOptions !== undefined ? { layoutOptions: graphNode.layoutOptions } : {}),
|
|
40
|
-
...(graphNode.sourceInfo !== undefined ? { sourceInfo: graphNode.sourceInfo } : {}),
|
|
41
|
-
},
|
|
35
|
+
canonical,
|
|
36
|
+
...(graphNode.dimensions !== undefined
|
|
37
|
+
? { [CORAL_NODE_VIEW_METADATA]: { dimensionSource: 'graph' } }
|
|
38
|
+
: {}),
|
|
42
39
|
},
|
|
43
40
|
...(graphNode.dimensions && {
|
|
44
41
|
width: graphNode.dimensions.width,
|
|
@@ -50,6 +47,7 @@ function graphNodeToNode(graphNode, positions) {
|
|
|
50
47
|
* Convert a GraphEdge to a CoralEdge
|
|
51
48
|
*/
|
|
52
49
|
function graphEdgeToEdge(graphEdge) {
|
|
50
|
+
const { id: _id, source: _source, target: _target, sourcePort: _sourcePort, targetPort: _targetPort, type: _type, label: _label, properties: _properties, ...canonical } = graphEdge;
|
|
53
51
|
return {
|
|
54
52
|
id: graphEdge.id,
|
|
55
53
|
source: graphEdge.source,
|
|
@@ -63,11 +61,8 @@ function graphEdgeToEdge(graphEdge) {
|
|
|
63
61
|
edgeType: graphEdge.type,
|
|
64
62
|
properties: graphEdge.properties,
|
|
65
63
|
lineStyle: graphEdge.style?.lineStyle,
|
|
66
|
-
routingPoints: graphEdge.
|
|
67
|
-
canonical
|
|
68
|
-
...(graphEdge.style !== undefined ? { style: graphEdge.style } : {}),
|
|
69
|
-
...(graphEdge.sourceInfo !== undefined ? { sourceInfo: graphEdge.sourceInfo } : {}),
|
|
70
|
-
},
|
|
64
|
+
routingPoints: graphEdge.routeIntent?.waypoints.flatMap((waypoint) => waypoint.placement.kind === 'absolute' ? [waypoint.placement.position] : []),
|
|
65
|
+
canonical,
|
|
71
66
|
},
|
|
72
67
|
};
|
|
73
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../src/file/deserialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../src/file/deserialize.ts"],"names":[],"mappings":"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"}
|
package/dist/file/index.d.ts
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* - Serialization/Deserialization
|
|
8
8
|
* - Migration
|
|
9
9
|
*/
|
|
10
|
-
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, type CoralDocument, type DocumentMetadata, type DocumentContent, type DocumentSettings, type LayoutDirection, type LayoutSettings, type LayoutSpacing, type ViewState, type NodePosition, type DslType, type CreateDocumentOptions, type SerializeOptions, type DeserializeResult, type ValidationResult, type EdgeRouting, type LayoutAlgorithm, type LayoutPresetId, type LayoutPreset, type UserPreferences, type LLMProviderPreference, type SpeechRecognitionMode, type SettingsPanelState, DEFAULT_USER_PREFERENCES, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, } from './schema.js';
|
|
10
|
+
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, type CoralDocument, type DocumentMetadata, type DocumentContent, type DocumentSettings, type LayoutDirection, type LayoutSettings, type LayoutSpacing, type LayoutProfileOverrides, type ViewState, type NodePosition, type DslType, type CreateDocumentOptions, type SerializeOptions, type DeserializeResult, type ValidationResult, type FontSettings, type DiagramFontSettings, type FontFamilyPreset, type FontSizePreset, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, type EdgeRouting, type LayoutAlgorithm, type LayoutPresetId, type LayoutPreset, type UserPreferences, type LLMProviderPreference, type SpeechRecognitionMode, type SettingsPanelState, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, } from './schema.js';
|
|
11
|
+
export { resolveNotationLayout, type LayoutProfileDiagnostic, type ResolvedLayoutProfile, } from './layoutProfile.js';
|
|
11
12
|
export { validateDocument, assertValidDocument } from './validate.js';
|
|
12
13
|
export { createDocument, serialize } from './serialize.js';
|
|
13
14
|
export { deserialize } from './deserialize.js';
|
package/dist/file/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,qBAAqB,EACrB,6BAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAE5B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/file/index.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* - Migration
|
|
9
9
|
*/
|
|
10
10
|
// Schema
|
|
11
|
-
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, DEFAULT_USER_PREFERENCES, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, } from './schema.js';
|
|
11
|
+
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, } from './schema.js';
|
|
12
|
+
export { resolveNotationLayout, } from './layoutProfile.js';
|
|
12
13
|
// Validation
|
|
13
14
|
export { validateDocument, assertValidDocument } from './validate.js';
|
|
14
15
|
// Serialization
|
package/dist/file/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,SAAS;AACT,OAAO,EACL,sBAAsB,EACtB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,SAAS;AACT,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EAoBzB,qBAAqB,EACrB,6BAA6B,EAC7B,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAU5B,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEtE,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LayoutSettings } from './schema.js';
|
|
2
|
+
export interface LayoutProfileDiagnostic {
|
|
3
|
+
code: 'layout.profile.unsupported' | 'layout.option.invalid';
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ResolvedLayoutProfile {
|
|
7
|
+
settings: LayoutSettings;
|
|
8
|
+
diagnostics: LayoutProfileDiagnostic[];
|
|
9
|
+
}
|
|
10
|
+
export declare function resolveNotationLayout(notationId: string, legacy: LayoutSettings): ResolvedLayoutProfile;
|
|
11
|
+
//# sourceMappingURL=layoutProfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layoutProfile.d.ts","sourceRoot":"","sources":["../../src/file/layoutProfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,4BAA4B,GAAG,uBAAuB,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACrB,qBAAqB,CAwBvB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { notationRegistry } from '@coral-viz/render';
|
|
2
|
+
export function resolveNotationLayout(notationId, legacy) {
|
|
3
|
+
if (legacy.profile === undefined)
|
|
4
|
+
return { settings: legacy, diagnostics: [] };
|
|
5
|
+
if (legacy.profile !== 'notation')
|
|
6
|
+
return unsupported(legacy, 'Unknown layout profile');
|
|
7
|
+
const profile = notationRegistry.get(notationId)?.layoutProfile;
|
|
8
|
+
if (!profile)
|
|
9
|
+
return unsupported(legacy, 'No layout profile is registered for this notation');
|
|
10
|
+
const overrides = legacy.profileOverrides;
|
|
11
|
+
if (!validOverrides(overrides))
|
|
12
|
+
return invalid(legacy);
|
|
13
|
+
const elkOptions = {
|
|
14
|
+
'elk.edgeRouting': profile.edgeRouting,
|
|
15
|
+
...profile.elkOptions,
|
|
16
|
+
...overrides?.elkOptions,
|
|
17
|
+
};
|
|
18
|
+
if (overrides?.edgeRouting)
|
|
19
|
+
elkOptions['elk.edgeRouting'] = overrides.edgeRouting;
|
|
20
|
+
return {
|
|
21
|
+
diagnostics: [],
|
|
22
|
+
settings: {
|
|
23
|
+
...legacy,
|
|
24
|
+
algorithm: overrides?.algorithm ?? profile.algorithm,
|
|
25
|
+
direction: overrides?.direction ?? profile.direction,
|
|
26
|
+
spacing: { ...profile.spacing, ...withoutUndefined(overrides?.spacing) },
|
|
27
|
+
elkOptions,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const ALGORITHMS = new Set(['layered', 'mrtree', 'tree', 'stress', 'force', 'radial', 'box', 'fixed']);
|
|
32
|
+
const DIRECTIONS = new Set(['UP', 'DOWN', 'LEFT', 'RIGHT']);
|
|
33
|
+
const ROUTING = new Set(['ORTHOGONAL', 'POLYLINE', 'SPLINES']);
|
|
34
|
+
const OVERRIDE_FIELDS = new Set(['algorithm', 'direction', 'spacing', 'edgeRouting', 'elkOptions']);
|
|
35
|
+
const SPACING_FIELDS = new Set(['nodeNode', 'edgeNode', 'layerSpacing']);
|
|
36
|
+
const ELK_FIELDS = new Set([
|
|
37
|
+
'elk.layered.considerModelOrder.strategy',
|
|
38
|
+
'elk.layered.crossingMinimization.forceNodeModelOrder',
|
|
39
|
+
]);
|
|
40
|
+
function withoutUndefined(value) {
|
|
41
|
+
return Object.fromEntries(Object.entries(value ?? {}).filter(([, item]) => item !== undefined));
|
|
42
|
+
}
|
|
43
|
+
function validOverrides(value) {
|
|
44
|
+
if (value === undefined)
|
|
45
|
+
return true;
|
|
46
|
+
if (!isRecord(value))
|
|
47
|
+
return false;
|
|
48
|
+
const candidate = value;
|
|
49
|
+
if (Object.keys(candidate).some((key) => !OVERRIDE_FIELDS.has(key)))
|
|
50
|
+
return false;
|
|
51
|
+
if (candidate.algorithm !== undefined && !ALGORITHMS.has(candidate.algorithm))
|
|
52
|
+
return false;
|
|
53
|
+
if (candidate.direction !== undefined && !DIRECTIONS.has(candidate.direction))
|
|
54
|
+
return false;
|
|
55
|
+
if (candidate.edgeRouting !== undefined && !ROUTING.has(candidate.edgeRouting))
|
|
56
|
+
return false;
|
|
57
|
+
if (candidate.spacing !== undefined) {
|
|
58
|
+
if (!isRecord(candidate.spacing))
|
|
59
|
+
return false;
|
|
60
|
+
if (Object.keys(candidate.spacing).some((key) => !SPACING_FIELDS.has(key)))
|
|
61
|
+
return false;
|
|
62
|
+
if (Object.values(candidate.spacing).some((item) => item !== undefined
|
|
63
|
+
&& (typeof item !== 'number' || !Number.isFinite(item) || item <= 0)))
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (candidate.elkOptions !== undefined) {
|
|
67
|
+
if (!isRecord(candidate.elkOptions))
|
|
68
|
+
return false;
|
|
69
|
+
if (Object.keys(candidate.elkOptions).some((key) => !ELK_FIELDS.has(key)))
|
|
70
|
+
return false;
|
|
71
|
+
const strategy = candidate.elkOptions['elk.layered.considerModelOrder.strategy'];
|
|
72
|
+
if (strategy !== undefined && strategy !== 'NODES_AND_EDGES')
|
|
73
|
+
return false;
|
|
74
|
+
const force = candidate.elkOptions['elk.layered.crossingMinimization.forceNodeModelOrder'];
|
|
75
|
+
if (force !== undefined && typeof force !== 'boolean')
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
function isRecord(value) {
|
|
81
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
82
|
+
}
|
|
83
|
+
function unsupported(settings, message) {
|
|
84
|
+
return { settings, diagnostics: [{ code: 'layout.profile.unsupported', message }] };
|
|
85
|
+
}
|
|
86
|
+
function invalid(settings) {
|
|
87
|
+
return { settings, diagnostics: [{ code: 'layout.option.invalid', message: 'Invalid layout profile override' }] };
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=layoutProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layoutProfile.js","sourceRoot":"","sources":["../../src/file/layoutProfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAyEjD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAkCjE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,EAAE,CAE9D"}
|
package/dist/file/migrate.js
CHANGED
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
* Handles schema version upgrades for backward compatibility.
|
|
5
5
|
*/
|
|
6
6
|
import { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS } from './schema.js';
|
|
7
|
+
import { migrateIR } from '@graph-ir/core';
|
|
8
|
+
function migrateGraphIR(doc) {
|
|
9
|
+
const graph = doc.content.graphIR;
|
|
10
|
+
if (!graph || (graph.version !== '1.0' && graph.version !== '1.0.0'))
|
|
11
|
+
return doc;
|
|
12
|
+
const result = migrateIR(graph);
|
|
13
|
+
if (!result.success || !result.migrated) {
|
|
14
|
+
const detail = [...result.errors, ...result.losses.map((loss) => `${loss.path}: ${loss.reason}`)].join('; ');
|
|
15
|
+
throw new Error(`GraphIR 1.x document requires an explicit ambiguous-geometry migration decision: ${detail}`);
|
|
16
|
+
}
|
|
17
|
+
return { ...doc, content: { ...doc.content, graphIR: result.migrated } };
|
|
18
|
+
}
|
|
7
19
|
/**
|
|
8
20
|
* Migration registry: maps "fromVersion→toVersion" to migration function
|
|
9
21
|
*/
|
|
@@ -59,11 +71,11 @@ export function migrateDocument(doc) {
|
|
|
59
71
|
const currentVersion = doc.schemaVersion;
|
|
60
72
|
// Already at current version
|
|
61
73
|
if (currentVersion === CURRENT_SCHEMA_VERSION) {
|
|
62
|
-
return doc;
|
|
74
|
+
return migrateGraphIR(doc);
|
|
63
75
|
}
|
|
64
76
|
// 1.0 was emitted briefly before semantic-version normalization.
|
|
65
77
|
if (currentVersion === '1.0') {
|
|
66
|
-
return { ...doc, schemaVersion: CURRENT_SCHEMA_VERSION };
|
|
78
|
+
return migrateGraphIR({ ...doc, schemaVersion: CURRENT_SCHEMA_VERSION });
|
|
67
79
|
}
|
|
68
80
|
// Check if version is known
|
|
69
81
|
if (!isKnownVersion(currentVersion)) {
|
|
@@ -80,7 +92,7 @@ export function migrateDocument(doc) {
|
|
|
80
92
|
result = migrateFn(result);
|
|
81
93
|
}
|
|
82
94
|
}
|
|
83
|
-
return result;
|
|
95
|
+
return migrateGraphIR(result);
|
|
84
96
|
}
|
|
85
97
|
/**
|
|
86
98
|
* Check if a document needs migration
|
package/dist/file/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"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"}
|