@principal-ai/principal-view-react 0.6.12 → 0.6.14
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/dist/components/EdgeInfoPanel.d.ts +2 -3
- package/dist/components/EdgeInfoPanel.d.ts.map +1 -1
- package/dist/components/EdgeInfoPanel.js +31 -33
- package/dist/components/EdgeInfoPanel.js.map +1 -1
- package/dist/components/GraphRenderer.d.ts +6 -0
- package/dist/components/GraphRenderer.d.ts.map +1 -1
- package/dist/components/GraphRenderer.js +64 -6
- package/dist/components/GraphRenderer.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/graphConverter.d.ts +23 -0
- package/dist/utils/graphConverter.d.ts.map +1 -1
- package/dist/utils/graphConverter.js +61 -0
- package/dist/utils/graphConverter.js.map +1 -1
- package/package.json +1 -1
- package/src/components/EdgeInfoPanel.tsx +80 -70
- package/src/components/GraphRenderer.tsx +92 -2
- package/src/index.ts +3 -1
- package/src/stories/GraphRenderer.stories.tsx +1 -0
- package/src/utils/graphConverter.ts +72 -0
|
@@ -8,9 +8,8 @@ export interface EdgeInfoPanelProps {
|
|
|
8
8
|
onClose: () => void;
|
|
9
9
|
/** Optional callback to delete the edge. If not provided, delete button is hidden. */
|
|
10
10
|
onDelete?: (edgeId: string) => void;
|
|
11
|
+
/** Optional callback to update edge sides. If not provided, side selectors are disabled. */
|
|
12
|
+
onUpdateSides?: (edgeId: string, fromSide: string, toSide: string) => void;
|
|
11
13
|
}
|
|
12
|
-
/**
|
|
13
|
-
* Panel that displays information about a selected edge
|
|
14
|
-
*/
|
|
15
14
|
export declare const EdgeInfoPanel: React.FC<EdgeInfoPanelProps>;
|
|
16
15
|
//# sourceMappingURL=EdgeInfoPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeInfoPanel.d.ts","sourceRoot":"","sources":["../../src/components/EdgeInfoPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGvF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,kBAAkB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"EdgeInfoPanel.d.ts","sourceRoot":"","sources":["../../src/components/EdgeInfoPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGvF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,kBAAkB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,4FAA4F;IAC5F,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5E;AAOD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoOtD,CAAC"}
|
|
@@ -6,22 +6,10 @@ const industry_theme_1 = require("@principal-ade/industry-theme");
|
|
|
6
6
|
/**
|
|
7
7
|
* Panel that displays information about a selected edge
|
|
8
8
|
*/
|
|
9
|
-
const
|
|
9
|
+
const SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'];
|
|
10
|
+
const EdgeInfoPanel = ({ edge, typeDefinition, sourceNodeId, targetNodeId, onClose, onDelete, onUpdateSides, }) => {
|
|
10
11
|
const { theme } = (0, industry_theme_1.useTheme)();
|
|
11
12
|
const edgeColor = typeDefinition.color || theme.colors.primary;
|
|
12
|
-
// Get fields to display based on dataSchema
|
|
13
|
-
const displayFields = typeDefinition.dataSchema
|
|
14
|
-
? Object.entries(typeDefinition.dataSchema)
|
|
15
|
-
.filter(([, schema]) => schema.displayInInfo)
|
|
16
|
-
.map(([field, schema]) => ({
|
|
17
|
-
field,
|
|
18
|
-
label: schema.label || field,
|
|
19
|
-
value: edge.data?.[field],
|
|
20
|
-
}))
|
|
21
|
-
: [];
|
|
22
|
-
// Always show basic edge data if no schema is defined
|
|
23
|
-
const hasSchemaFields = displayFields.length > 0;
|
|
24
|
-
const edgeDataEntries = edge.data ? Object.entries(edge.data) : [];
|
|
25
13
|
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
26
14
|
position: 'absolute',
|
|
27
15
|
top: '60px',
|
|
@@ -71,25 +59,35 @@ const EdgeInfoPanel = ({ edge, typeDefinition, sourceNodeId, targetNodeId, onClo
|
|
|
71
59
|
backgroundColor: theme.colors.muted,
|
|
72
60
|
padding: '2px 6px',
|
|
73
61
|
borderRadius: '3px',
|
|
74
|
-
}, children: targetNodeId })] })] }),
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
62
|
+
}, children: targetNodeId })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '12px' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { fontSize: '10px', color: theme.colors.textSecondary, marginBottom: '8px' }, children: "Connection Sides" }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: '12px' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { flex: 1 }, children: [(0, jsx_runtime_1.jsx)("div", { style: { fontSize: '10px', color: theme.colors.textMuted, marginBottom: '4px' }, children: "From Side" }), (0, jsx_runtime_1.jsx)("select", { value: edge.data?.fromSide || 'right', onChange: (e) => {
|
|
63
|
+
if (onUpdateSides) {
|
|
64
|
+
onUpdateSides(edge.id, e.target.value, edge.data?.toSide || 'left');
|
|
65
|
+
}
|
|
66
|
+
}, disabled: !onUpdateSides, style: {
|
|
67
|
+
width: '100%',
|
|
68
|
+
padding: '6px 8px',
|
|
69
|
+
fontSize: '12px',
|
|
70
|
+
borderRadius: '4px',
|
|
71
|
+
border: `1px solid ${theme.colors.border}`,
|
|
72
|
+
backgroundColor: theme.colors.background,
|
|
73
|
+
color: theme.colors.text,
|
|
74
|
+
cursor: onUpdateSides ? 'pointer' : 'not-allowed',
|
|
75
|
+
opacity: onUpdateSides ? 1 : 0.6,
|
|
76
|
+
}, children: SIDE_OPTIONS.map((side) => ((0, jsx_runtime_1.jsx)("option", { value: side, children: side }, side))) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { flex: 1 }, children: [(0, jsx_runtime_1.jsx)("div", { style: { fontSize: '10px', color: theme.colors.textMuted, marginBottom: '4px' }, children: "To Side" }), (0, jsx_runtime_1.jsx)("select", { value: edge.data?.toSide || 'left', onChange: (e) => {
|
|
77
|
+
if (onUpdateSides) {
|
|
78
|
+
onUpdateSides(edge.id, edge.data?.fromSide || 'right', e.target.value);
|
|
79
|
+
}
|
|
80
|
+
}, disabled: !onUpdateSides, style: {
|
|
81
|
+
width: '100%',
|
|
82
|
+
padding: '6px 8px',
|
|
83
|
+
fontSize: '12px',
|
|
84
|
+
borderRadius: '4px',
|
|
85
|
+
border: `1px solid ${theme.colors.border}`,
|
|
86
|
+
backgroundColor: theme.colors.background,
|
|
87
|
+
color: theme.colors.text,
|
|
88
|
+
cursor: onUpdateSides ? 'pointer' : 'not-allowed',
|
|
89
|
+
opacity: onUpdateSides ? 1 : 0.6,
|
|
90
|
+
}, children: SIDE_OPTIONS.map((side) => ((0, jsx_runtime_1.jsx)("option", { value: side, children: side }, side))) })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
93
91
|
fontSize: '10px',
|
|
94
92
|
color: theme.colors.textMuted,
|
|
95
93
|
marginTop: '12px',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeInfoPanel.js","sourceRoot":"","sources":["../../src/components/EdgeInfoPanel.tsx"],"names":[],"mappings":";;;;AAEA,kEAAyD;
|
|
1
|
+
{"version":3,"file":"EdgeInfoPanel.js","sourceRoot":"","sources":["../../src/components/EdgeInfoPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,12 @@ export interface GraphRendererHandle {
|
|
|
53
53
|
interface GraphRendererBaseProps {
|
|
54
54
|
/** Optional violations to highlight */
|
|
55
55
|
violations?: Violation[];
|
|
56
|
+
/**
|
|
57
|
+
* Whether to automatically update edge sides (fromSide/toSide) when nodes are moved.
|
|
58
|
+
* Only updates edges where there is no cycle between the connected nodes.
|
|
59
|
+
* Uses position-based logic to determine optimal connection sides.
|
|
60
|
+
*/
|
|
61
|
+
autoUpdateEdgeSides?: boolean;
|
|
56
62
|
/** Optional configuration name for identification (used with multi-config setups) */
|
|
57
63
|
configName?: string;
|
|
58
64
|
/** Optional class name */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRenderer.d.ts","sourceRoot":"","sources":["../../src/components/GraphRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAIV,SAAS,EACT,UAAU,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphRenderer.d.ts","sourceRoot":"","sources":["../../src/components/GraphRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ const createEmptyEditState = () => ({
|
|
|
30
30
|
/**
|
|
31
31
|
* Inner component that uses ReactFlow hooks
|
|
32
32
|
*/
|
|
33
|
-
const GraphRendererInner = ({ configuration, nodes: propNodes, edges: propEdges, violations = [], configName: _configName, showMinimap = true, showControls = true, showBackground = true, events = [], onEventProcessed, editable = false, onPendingChangesChange, onEditStateChange, editStateRef, }) => {
|
|
33
|
+
const GraphRendererInner = ({ configuration, nodes: propNodes, edges: propEdges, violations = [], configName: _configName, showMinimap = true, showControls = true, showBackground = true, events = [], onEventProcessed, editable = false, autoUpdateEdgeSides = false, onPendingChangesChange, onEditStateChange, editStateRef, }) => {
|
|
34
34
|
const { fitView } = (0, react_2.useReactFlow)();
|
|
35
35
|
const { theme } = (0, industry_theme_1.useTheme)();
|
|
36
36
|
// Track active animations
|
|
@@ -117,6 +117,19 @@ const GraphRendererInner = ({ configuration, nodes: propNodes, edges: propEdges,
|
|
|
117
117
|
const onCloseEdgeInfoPanel = (0, react_1.useCallback)(() => {
|
|
118
118
|
setSelectedEdgeId(null);
|
|
119
119
|
}, []);
|
|
120
|
+
// Handle edge side updates from EdgeInfoPanel
|
|
121
|
+
const handleUpdateEdgeSides = (0, react_1.useCallback)((edgeId, fromSide, toSide) => {
|
|
122
|
+
setLocalEdges((currentEdges) => currentEdges.map((edge) => edge.id === edgeId
|
|
123
|
+
? {
|
|
124
|
+
...edge,
|
|
125
|
+
data: {
|
|
126
|
+
...edge.data,
|
|
127
|
+
fromSide,
|
|
128
|
+
toSide,
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
: edge));
|
|
132
|
+
}, []);
|
|
120
133
|
// Handle close node info panel
|
|
121
134
|
const onCloseNodeInfoPanel = (0, react_1.useCallback)(() => {
|
|
122
135
|
setSelectedNodeId(null);
|
|
@@ -559,8 +572,53 @@ const GraphRendererInner = ({ configuration, nodes: propNodes, edges: propEdges,
|
|
|
559
572
|
}
|
|
560
573
|
return { ...prev, positionChanges: newPositions };
|
|
561
574
|
});
|
|
575
|
+
// Auto-update edge sides if enabled
|
|
576
|
+
if (autoUpdateEdgeSides) {
|
|
577
|
+
setXyflowLocalNodes((currentNodes) => {
|
|
578
|
+
// Build a position map from current xyflow nodes
|
|
579
|
+
const nodePositions = new Map();
|
|
580
|
+
for (const node of currentNodes) {
|
|
581
|
+
nodePositions.set(node.id, node.position);
|
|
582
|
+
}
|
|
583
|
+
// Get moved node IDs
|
|
584
|
+
const movedNodeIds = new Set(positionChanges.map((c) => c.id));
|
|
585
|
+
// Update edges connected to moved nodes
|
|
586
|
+
setLocalEdges((currentEdges) => {
|
|
587
|
+
return currentEdges.map((edge) => {
|
|
588
|
+
// Only process edges connected to moved nodes
|
|
589
|
+
if (!movedNodeIds.has(edge.from) && !movedNodeIds.has(edge.to)) {
|
|
590
|
+
return edge;
|
|
591
|
+
}
|
|
592
|
+
// Check for cycles - skip if there's a cycle between these nodes
|
|
593
|
+
const edgesWithoutCurrent = currentEdges.filter((e) => e.id !== edge.id);
|
|
594
|
+
if ((0, graphConverter_1.hasCycleBetweenNodes)(edge.from, edge.to, edgesWithoutCurrent)) {
|
|
595
|
+
return edge; // Don't auto-update edges that are part of a cycle
|
|
596
|
+
}
|
|
597
|
+
// Get positions of both nodes
|
|
598
|
+
const fromPos = nodePositions.get(edge.from);
|
|
599
|
+
const toPos = nodePositions.get(edge.to);
|
|
600
|
+
if (!fromPos || !toPos) {
|
|
601
|
+
return edge;
|
|
602
|
+
}
|
|
603
|
+
// Compute optimal sides
|
|
604
|
+
const { fromSide, toSide } = (0, graphConverter_1.computeOptimalEdgeSides)(fromPos, toPos);
|
|
605
|
+
// Update edge data with new sides
|
|
606
|
+
return {
|
|
607
|
+
...edge,
|
|
608
|
+
data: {
|
|
609
|
+
...edge.data,
|
|
610
|
+
fromSide,
|
|
611
|
+
toSide,
|
|
612
|
+
},
|
|
613
|
+
updatedAt: Date.now(),
|
|
614
|
+
};
|
|
615
|
+
});
|
|
616
|
+
});
|
|
617
|
+
return currentNodes;
|
|
618
|
+
});
|
|
619
|
+
}
|
|
562
620
|
}
|
|
563
|
-
}, [editable, updateEditState]);
|
|
621
|
+
}, [editable, autoUpdateEdgeSides, updateEditState]);
|
|
564
622
|
const xyflowEdges = (0, react_1.useMemo)(() => {
|
|
565
623
|
const converted = (0, graphConverter_1.convertToXYFlowEdges)(edges, configuration, violations);
|
|
566
624
|
return converted.map((edge) => {
|
|
@@ -595,10 +653,10 @@ const GraphRendererInner = ({ configuration, nodes: propNodes, edges: propEdges,
|
|
|
595
653
|
// ============================================
|
|
596
654
|
// RENDER
|
|
597
655
|
// ============================================
|
|
598
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_2.ReactFlow, { nodes: xyflowNodes, edges: xyflowEdges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: 0.1, maxZoom: 4, defaultEdgeOptions: { type: 'custom' }, onEdgeClick: onEdgeClick, onNodeClick: onNodeClick, proOptions: { hideAttribution: true }, nodesDraggable: editable, elementsSelectable:
|
|
656
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(react_2.ReactFlow, { nodes: xyflowNodes, edges: xyflowEdges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: 0.1, maxZoom: 4, defaultEdgeOptions: { type: 'custom' }, onEdgeClick: onEdgeClick, onNodeClick: onNodeClick, proOptions: { hideAttribution: true }, nodesDraggable: editable, elementsSelectable: true, nodesConnectable: editable, edgesReconnectable: editable, reconnectRadius: 100, elevateEdgesOnSelect: true, onNodesChange: handleNodesChange, onConnect: handleConnect, onReconnectStart: handleReconnectStart, onReconnect: handleReconnect, onReconnectEnd: handleReconnectEnd, panOnDrag: true, selectionOnDrag: false, children: [showBackground && (0, jsx_runtime_1.jsx)(react_2.Background, { color: theme.colors.border, gap: 16, size: 1 }), showControls && (0, jsx_runtime_1.jsx)(react_2.Controls, { showZoom: true, showFitView: true, showInteractive: true }), showMinimap && ((0, jsx_runtime_1.jsx)(react_2.MiniMap, { nodeColor: (node) => {
|
|
599
657
|
const nodeData = node.data;
|
|
600
658
|
return nodeData?.typeDefinition?.color || theme.colors.secondary;
|
|
601
|
-
}, nodeBorderRadius: 2, pannable: true, zoomable: true }))] }, baseNodesKey), selectedEdge && selectedEdgeTypeDefinition && ((0, jsx_runtime_1.jsx)(EdgeInfoPanel_1.EdgeInfoPanel, { edge: selectedEdge, typeDefinition: selectedEdgeTypeDefinition, sourceNodeId: selectedEdge.from, targetNodeId: selectedEdge.to, onClose: onCloseEdgeInfoPanel, onDelete: editable ? handleEdgeDelete : undefined })), selectedNode && selectedNodeTypeDefinition && ((0, jsx_runtime_1.jsx)(NodeInfoPanel_1.NodeInfoPanel, { node: selectedNode, typeDefinition: selectedNodeTypeDefinition, availableNodeTypes: configuration.nodeTypes, onClose: onCloseNodeInfoPanel, onDelete: editable ? handleNodeDelete : undefined, onUpdate: editable ? handleNodeUpdate : undefined })), pendingConnection && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
659
|
+
}, nodeBorderRadius: 2, pannable: true, zoomable: true }))] }, baseNodesKey), selectedEdge && selectedEdgeTypeDefinition && ((0, jsx_runtime_1.jsx)(EdgeInfoPanel_1.EdgeInfoPanel, { edge: selectedEdge, typeDefinition: selectedEdgeTypeDefinition, sourceNodeId: selectedEdge.from, targetNodeId: selectedEdge.to, onClose: onCloseEdgeInfoPanel, onDelete: editable ? handleEdgeDelete : undefined, onUpdateSides: editable ? handleUpdateEdgeSides : undefined })), selectedNode && selectedNodeTypeDefinition && ((0, jsx_runtime_1.jsx)(NodeInfoPanel_1.NodeInfoPanel, { node: selectedNode, typeDefinition: selectedNodeTypeDefinition, availableNodeTypes: configuration.nodeTypes, onClose: onCloseNodeInfoPanel, onDelete: editable ? handleNodeDelete : undefined, onUpdate: editable ? handleNodeUpdate : undefined })), pendingConnection && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
602
660
|
position: 'absolute',
|
|
603
661
|
top: '50%',
|
|
604
662
|
left: '50%',
|
|
@@ -859,8 +917,8 @@ exports.GraphRenderer = (0, react_1.forwardRef)((props, ref) => {
|
|
|
859
917
|
}
|
|
860
918
|
const { configuration, nodes, edges } = canvasData;
|
|
861
919
|
// Extract only the props that inner component needs
|
|
862
|
-
const { violations, configName, showMinimap, showControls, showBackground, events, onEventProcessed, editable, onPendingChangesChange, } = props;
|
|
863
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: className, style: { width, height, position: 'relative' }, children: (0, jsx_runtime_1.jsx)(react_2.ReactFlowProvider, { children: (0, jsx_runtime_1.jsx)(GraphRendererInner, { configuration: configuration, nodes: nodes, edges: edges, violations: violations, configName: configName, showMinimap: showMinimap, showControls: showControls, showBackground: showBackground, events: events, onEventProcessed: onEventProcessed, editable: editable, onPendingChangesChange: onPendingChangesChange, editStateRef: editStateRef }) }) }));
|
|
920
|
+
const { violations, configName, showMinimap, showControls, showBackground, events, onEventProcessed, editable, autoUpdateEdgeSides, onPendingChangesChange, } = props;
|
|
921
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: className, style: { width, height, position: 'relative' }, children: (0, jsx_runtime_1.jsx)(react_2.ReactFlowProvider, { children: (0, jsx_runtime_1.jsx)(GraphRendererInner, { configuration: configuration, nodes: nodes, edges: edges, violations: violations, configName: configName, showMinimap: showMinimap, showControls: showControls, showBackground: showBackground, events: events, onEventProcessed: onEventProcessed, editable: editable, autoUpdateEdgeSides: autoUpdateEdgeSides, onPendingChangesChange: onPendingChangesChange, editStateRef: editStateRef }) }) }));
|
|
864
922
|
});
|
|
865
923
|
exports.GraphRenderer.displayName = 'GraphRenderer';
|
|
866
924
|
//# sourceMappingURL=GraphRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRenderer.js","sourceRoot":"","sources":["../../src/components/GraphRenderer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GraphRenderer.js","sourceRoot":"","sources":["../../src/components/GraphRenderer.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ export { GenericEdge } from './edges/GenericEdge';
|
|
|
26
26
|
export type { GenericEdgeProps } from './edges/GenericEdge';
|
|
27
27
|
export { CustomEdge } from './edges/CustomEdge';
|
|
28
28
|
export type { CustomEdgeData } from './edges/CustomEdge';
|
|
29
|
-
export { convertToXYFlowNodes, convertToXYFlowEdges, autoLayoutNodes, } from './utils/graphConverter';
|
|
30
|
-
export type { EdgeStateWithHandles } from './utils/graphConverter';
|
|
29
|
+
export { convertToXYFlowNodes, convertToXYFlowEdges, autoLayoutNodes, hasCycleBetweenNodes, computeOptimalEdgeSides, } from './utils/graphConverter';
|
|
30
|
+
export type { EdgeStateWithHandles, CanvasSide } from './utils/graphConverter';
|
|
31
31
|
export { Icon, resolveIcon } from './utils/iconResolver';
|
|
32
32
|
export type { IconProps } from './utils/iconResolver';
|
|
33
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EAEvB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EAEvB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* The actual "panel" application should be built separately using these components.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.resolveIcon = exports.Icon = exports.autoLayoutNodes = exports.convertToXYFlowEdges = exports.convertToXYFlowNodes = exports.CustomEdge = exports.GenericEdge = exports.CustomNode = exports.GenericNode = exports.ConfigurationSelector = exports.NodeInfoPanel = exports.EdgeInfoPanel = exports.MetricsDashboard = exports.EventLog = exports.GraphRenderer = void 0;
|
|
10
|
+
exports.resolveIcon = exports.Icon = exports.computeOptimalEdgeSides = exports.hasCycleBetweenNodes = exports.autoLayoutNodes = exports.convertToXYFlowEdges = exports.convertToXYFlowNodes = exports.CustomEdge = exports.GenericEdge = exports.CustomNode = exports.GenericNode = exports.ConfigurationSelector = exports.NodeInfoPanel = exports.EdgeInfoPanel = exports.MetricsDashboard = exports.EventLog = exports.GraphRenderer = void 0;
|
|
11
11
|
// Export components
|
|
12
12
|
var GraphRenderer_1 = require("./components/GraphRenderer");
|
|
13
13
|
Object.defineProperty(exports, "GraphRenderer", { enumerable: true, get: function () { return GraphRenderer_1.GraphRenderer; } });
|
|
@@ -35,6 +35,8 @@ var graphConverter_1 = require("./utils/graphConverter");
|
|
|
35
35
|
Object.defineProperty(exports, "convertToXYFlowNodes", { enumerable: true, get: function () { return graphConverter_1.convertToXYFlowNodes; } });
|
|
36
36
|
Object.defineProperty(exports, "convertToXYFlowEdges", { enumerable: true, get: function () { return graphConverter_1.convertToXYFlowEdges; } });
|
|
37
37
|
Object.defineProperty(exports, "autoLayoutNodes", { enumerable: true, get: function () { return graphConverter_1.autoLayoutNodes; } });
|
|
38
|
+
Object.defineProperty(exports, "hasCycleBetweenNodes", { enumerable: true, get: function () { return graphConverter_1.hasCycleBetweenNodes; } });
|
|
39
|
+
Object.defineProperty(exports, "computeOptimalEdgeSides", { enumerable: true, get: function () { return graphConverter_1.computeOptimalEdgeSides; } });
|
|
38
40
|
var iconResolver_1 = require("./utils/iconResolver");
|
|
39
41
|
Object.defineProperty(exports, "Icon", { enumerable: true, get: function () { return iconResolver_1.Icon; } });
|
|
40
42
|
Object.defineProperty(exports, "resolveIcon", { enumerable: true, get: function () { return iconResolver_1.resolveIcon; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAwBH,oBAAoB;AACpB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAQtB,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AAGjB,kEAAiE;AAAxD,oHAAA,gBAAgB,OAAA;AAGzB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAGtB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAGtB,4EAA2E;AAAlE,8HAAA,qBAAqB,OAAA;AAG9B,6BAA6B;AAC7B,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAGpB,iDAAgD;AAAvC,wGAAA,UAAU,OAAA;AAGnB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAGpB,iDAAgD;AAAvC,wGAAA,UAAU,OAAA;AAGnB,mBAAmB;AACnB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAwBH,oBAAoB;AACpB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAQtB,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AAGjB,kEAAiE;AAAxD,oHAAA,gBAAgB,OAAA;AAGzB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAGtB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAGtB,4EAA2E;AAAlE,8HAAA,qBAAqB,OAAA;AAG9B,6BAA6B;AAC7B,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAGpB,iDAAgD;AAAvC,wGAAA,UAAU,OAAA;AAGnB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAGpB,iDAAgD;AAAvC,wGAAA,UAAU,OAAA;AAGnB,mBAAmB;AACnB,yDAMgC;AAL9B,sHAAA,oBAAoB,OAAA;AACpB,sHAAA,oBAAoB,OAAA;AACpB,iHAAA,eAAe,OAAA;AACf,sHAAA,oBAAoB,OAAA;AACpB,yHAAA,uBAAuB,OAAA;AAGzB,qDAAyD;AAAhD,oGAAA,IAAI,OAAA;AAAE,2GAAA,WAAW,OAAA"}
|
|
@@ -19,4 +19,27 @@ export declare function convertToXYFlowEdges(edges: (EdgeState | EdgeStateWithHa
|
|
|
19
19
|
* Auto-layout nodes if they don't have positions
|
|
20
20
|
*/
|
|
21
21
|
export declare function autoLayoutNodes<T extends Record<string, unknown>>(nodes: Node<T>[], edges: Edge[], layoutType?: 'hierarchical' | 'force-directed' | 'circular' | 'manual'): Node<T>[];
|
|
22
|
+
/**
|
|
23
|
+
* Check if there is a cycle between two nodes (i.e., a path from target back to source).
|
|
24
|
+
* Returns true if adding an edge from `from` to `to` would complete a cycle.
|
|
25
|
+
*/
|
|
26
|
+
export declare function hasCycleBetweenNodes(from: string, to: string, edges: Array<{
|
|
27
|
+
from: string;
|
|
28
|
+
to: string;
|
|
29
|
+
}>): boolean;
|
|
30
|
+
export type CanvasSide = 'top' | 'right' | 'bottom' | 'left';
|
|
31
|
+
/**
|
|
32
|
+
* Compute optimal edge sides based on relative node positions.
|
|
33
|
+
* Returns the best fromSide and toSide for connecting two nodes.
|
|
34
|
+
*/
|
|
35
|
+
export declare function computeOptimalEdgeSides(fromPosition: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
}, toPosition: {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
}): {
|
|
42
|
+
fromSide: CanvasSide;
|
|
43
|
+
toSide: CanvasSide;
|
|
44
|
+
};
|
|
22
45
|
//# sourceMappingURL=graphConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphConverter.d.ts","sourceRoot":"","sources":["../../src/utils/graphConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,SAAS,EACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAAE,EAClB,aAAa,EAAE,kBAAkB,EACjC,UAAU,GAAE,SAAS,EAAO,GAC3B,IAAI,CAAC,cAAc,CAAC,EAAE,CA6BxB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAmBD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,CAAC,SAAS,GAAG,oBAAoB,CAAC,EAAE,EAC3C,aAAa,EAAE,kBAAkB,EACjC,UAAU,GAAE,SAAS,EAAO,GAC3B,IAAI,CAAC,cAAc,CAAC,EAAE,CAgDxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAChB,KAAK,EAAE,IAAI,EAAE,EACb,UAAU,GAAE,cAAc,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAyB,GACrF,IAAI,CAAC,CAAC,CAAC,EAAE,CAmBX"}
|
|
1
|
+
{"version":3,"file":"graphConverter.d.ts","sourceRoot":"","sources":["../../src/utils/graphConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,SAAS,EACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAAE,EAClB,aAAa,EAAE,kBAAkB,EACjC,UAAU,GAAE,SAAS,EAAO,GAC3B,IAAI,CAAC,cAAc,CAAC,EAAE,CA6BxB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAmBD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,CAAC,SAAS,GAAG,oBAAoB,CAAC,EAAE,EAC3C,aAAa,EAAE,kBAAkB,EACjC,UAAU,GAAE,SAAS,EAAO,GAC3B,IAAI,CAAC,cAAc,CAAC,EAAE,CAgDxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAChB,KAAK,EAAE,IAAI,EAAE,EACb,UAAU,GAAE,cAAc,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAyB,GACrF,IAAI,CAAC,CAAC,CAAC,EAAE,CAmBX;AA2GD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GACzC,OAAO,CAyBT;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACtC,UAAU,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CA0B9C"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.convertToXYFlowNodes = convertToXYFlowNodes;
|
|
4
4
|
exports.convertToXYFlowEdges = convertToXYFlowEdges;
|
|
5
5
|
exports.autoLayoutNodes = autoLayoutNodes;
|
|
6
|
+
exports.hasCycleBetweenNodes = hasCycleBetweenNodes;
|
|
7
|
+
exports.computeOptimalEdgeSides = computeOptimalEdgeSides;
|
|
6
8
|
const react_1 = require("@xyflow/react");
|
|
7
9
|
/**
|
|
8
10
|
* Convert our NodeState to xyflow Node format
|
|
@@ -203,4 +205,63 @@ function applyCircularLayout(nodes) {
|
|
|
203
205
|
};
|
|
204
206
|
});
|
|
205
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Check if there is a cycle between two nodes (i.e., a path from target back to source).
|
|
210
|
+
* Returns true if adding an edge from `from` to `to` would complete a cycle.
|
|
211
|
+
*/
|
|
212
|
+
function hasCycleBetweenNodes(from, to, edges) {
|
|
213
|
+
// Check if there's already a path from `to` back to `from`
|
|
214
|
+
// using BFS/DFS from `to` node
|
|
215
|
+
const visited = new Set();
|
|
216
|
+
const queue = [to];
|
|
217
|
+
while (queue.length > 0) {
|
|
218
|
+
const current = queue.shift();
|
|
219
|
+
if (current === from) {
|
|
220
|
+
return true; // Found a path back, there would be a cycle
|
|
221
|
+
}
|
|
222
|
+
if (visited.has(current)) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
visited.add(current);
|
|
226
|
+
// Find all outgoing edges from current node
|
|
227
|
+
for (const edge of edges) {
|
|
228
|
+
if (edge.from === current && !visited.has(edge.to)) {
|
|
229
|
+
queue.push(edge.to);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Compute optimal edge sides based on relative node positions.
|
|
237
|
+
* Returns the best fromSide and toSide for connecting two nodes.
|
|
238
|
+
*/
|
|
239
|
+
function computeOptimalEdgeSides(fromPosition, toPosition) {
|
|
240
|
+
const dx = toPosition.x - fromPosition.x;
|
|
241
|
+
const dy = toPosition.y - fromPosition.y;
|
|
242
|
+
// Determine primary direction based on which axis has larger delta
|
|
243
|
+
const isHorizontalDominant = Math.abs(dx) > Math.abs(dy);
|
|
244
|
+
if (isHorizontalDominant) {
|
|
245
|
+
// Horizontal connection
|
|
246
|
+
if (dx > 0) {
|
|
247
|
+
// Target is to the right of source
|
|
248
|
+
return { fromSide: 'right', toSide: 'left' };
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// Target is to the left of source
|
|
252
|
+
return { fromSide: 'left', toSide: 'right' };
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
// Vertical connection
|
|
257
|
+
if (dy > 0) {
|
|
258
|
+
// Target is below source
|
|
259
|
+
return { fromSide: 'bottom', toSide: 'top' };
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
// Target is above source
|
|
263
|
+
return { fromSide: 'top', toSide: 'bottom' };
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
206
267
|
//# sourceMappingURL=graphConverter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphConverter.js","sourceRoot":"","sources":["../../src/utils/graphConverter.ts"],"names":[],"mappings":";;AAaA,oDAiCC;AA4BD,oDAoDC;AAKD,0CAuBC;
|
|
1
|
+
{"version":3,"file":"graphConverter.js","sourceRoot":"","sources":["../../src/utils/graphConverter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,11 +10,15 @@ export interface EdgeInfoPanelProps {
|
|
|
10
10
|
onClose: () => void;
|
|
11
11
|
/** Optional callback to delete the edge. If not provided, delete button is hidden. */
|
|
12
12
|
onDelete?: (edgeId: string) => void;
|
|
13
|
+
/** Optional callback to update edge sides. If not provided, side selectors are disabled. */
|
|
14
|
+
onUpdateSides?: (edgeId: string, fromSide: string, toSide: string) => void;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
/**
|
|
16
18
|
* Panel that displays information about a selected edge
|
|
17
19
|
*/
|
|
20
|
+
const SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'] as const;
|
|
21
|
+
|
|
18
22
|
export const EdgeInfoPanel: React.FC<EdgeInfoPanelProps> = ({
|
|
19
23
|
edge,
|
|
20
24
|
typeDefinition,
|
|
@@ -22,25 +26,11 @@ export const EdgeInfoPanel: React.FC<EdgeInfoPanelProps> = ({
|
|
|
22
26
|
targetNodeId,
|
|
23
27
|
onClose,
|
|
24
28
|
onDelete,
|
|
29
|
+
onUpdateSides,
|
|
25
30
|
}) => {
|
|
26
31
|
const { theme } = useTheme();
|
|
27
32
|
const edgeColor = typeDefinition.color || theme.colors.primary;
|
|
28
33
|
|
|
29
|
-
// Get fields to display based on dataSchema
|
|
30
|
-
const displayFields = typeDefinition.dataSchema
|
|
31
|
-
? Object.entries(typeDefinition.dataSchema)
|
|
32
|
-
.filter(([, schema]) => schema.displayInInfo)
|
|
33
|
-
.map(([field, schema]) => ({
|
|
34
|
-
field,
|
|
35
|
-
label: schema.label || field,
|
|
36
|
-
value: edge.data?.[field],
|
|
37
|
-
}))
|
|
38
|
-
: [];
|
|
39
|
-
|
|
40
|
-
// Always show basic edge data if no schema is defined
|
|
41
|
-
const hasSchemaFields = displayFields.length > 0;
|
|
42
|
-
const edgeDataEntries = edge.data ? Object.entries(edge.data) : [];
|
|
43
|
-
|
|
44
34
|
return (
|
|
45
35
|
<div
|
|
46
36
|
style={{
|
|
@@ -139,65 +129,85 @@ export const EdgeInfoPanel: React.FC<EdgeInfoPanelProps> = ({
|
|
|
139
129
|
</div>
|
|
140
130
|
</div>
|
|
141
131
|
|
|
142
|
-
{/*
|
|
143
|
-
{
|
|
144
|
-
<div style={{ marginBottom: '
|
|
145
|
-
|
|
146
|
-
style={{
|
|
147
|
-
fontSize: '10px',
|
|
148
|
-
color: theme.colors.textSecondary,
|
|
149
|
-
marginBottom: '8px',
|
|
150
|
-
fontWeight: 'bold',
|
|
151
|
-
}}
|
|
152
|
-
>
|
|
153
|
-
Properties
|
|
154
|
-
</div>
|
|
155
|
-
{displayFields.map(({ field, label, value }) => (
|
|
156
|
-
<div key={field} style={{ marginBottom: '8px' }}>
|
|
157
|
-
<div style={{ fontSize: '10px', color: theme.colors.textSecondary, marginBottom: '2px' }}>
|
|
158
|
-
{label}
|
|
159
|
-
</div>
|
|
160
|
-
<div style={{ fontSize: '12px' }}>
|
|
161
|
-
{value !== undefined && value !== null
|
|
162
|
-
? typeof value === 'object'
|
|
163
|
-
? JSON.stringify(value, null, 2)
|
|
164
|
-
: String(value)
|
|
165
|
-
: '-'}
|
|
166
|
-
</div>
|
|
167
|
-
</div>
|
|
168
|
-
))}
|
|
132
|
+
{/* Connection Sides */}
|
|
133
|
+
<div style={{ marginBottom: '12px' }}>
|
|
134
|
+
<div style={{ fontSize: '10px', color: theme.colors.textSecondary, marginBottom: '8px' }}>
|
|
135
|
+
Connection Sides
|
|
169
136
|
</div>
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
137
|
+
<div style={{ display: 'flex', gap: '12px' }}>
|
|
138
|
+
<div style={{ flex: 1 }}>
|
|
139
|
+
<div style={{ fontSize: '10px', color: theme.colors.textMuted, marginBottom: '4px' }}>
|
|
140
|
+
From Side
|
|
141
|
+
</div>
|
|
142
|
+
<select
|
|
143
|
+
value={(edge.data?.fromSide as string) || 'right'}
|
|
144
|
+
onChange={(e) => {
|
|
145
|
+
if (onUpdateSides) {
|
|
146
|
+
onUpdateSides(
|
|
147
|
+
edge.id,
|
|
148
|
+
e.target.value,
|
|
149
|
+
(edge.data?.toSide as string) || 'left'
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
}}
|
|
153
|
+
disabled={!onUpdateSides}
|
|
154
|
+
style={{
|
|
155
|
+
width: '100%',
|
|
156
|
+
padding: '6px 8px',
|
|
157
|
+
fontSize: '12px',
|
|
158
|
+
borderRadius: '4px',
|
|
159
|
+
border: `1px solid ${theme.colors.border}`,
|
|
160
|
+
backgroundColor: theme.colors.background,
|
|
161
|
+
color: theme.colors.text,
|
|
162
|
+
cursor: onUpdateSides ? 'pointer' : 'not-allowed',
|
|
163
|
+
opacity: onUpdateSides ? 1 : 0.6,
|
|
164
|
+
}}
|
|
165
|
+
>
|
|
166
|
+
{SIDE_OPTIONS.map((side) => (
|
|
167
|
+
<option key={side} value={side}>
|
|
168
|
+
{side}
|
|
169
|
+
</option>
|
|
170
|
+
))}
|
|
171
|
+
</select>
|
|
184
172
|
</div>
|
|
185
|
-
{
|
|
186
|
-
<div
|
|
187
|
-
|
|
188
|
-
{key}
|
|
189
|
-
</div>
|
|
190
|
-
<div style={{ fontSize: '12px', wordBreak: 'break-word' }}>
|
|
191
|
-
{value !== undefined && value !== null
|
|
192
|
-
? typeof value === 'object'
|
|
193
|
-
? JSON.stringify(value, null, 2)
|
|
194
|
-
: String(value)
|
|
195
|
-
: '-'}
|
|
196
|
-
</div>
|
|
173
|
+
<div style={{ flex: 1 }}>
|
|
174
|
+
<div style={{ fontSize: '10px', color: theme.colors.textMuted, marginBottom: '4px' }}>
|
|
175
|
+
To Side
|
|
197
176
|
</div>
|
|
198
|
-
|
|
177
|
+
<select
|
|
178
|
+
value={(edge.data?.toSide as string) || 'left'}
|
|
179
|
+
onChange={(e) => {
|
|
180
|
+
if (onUpdateSides) {
|
|
181
|
+
onUpdateSides(
|
|
182
|
+
edge.id,
|
|
183
|
+
(edge.data?.fromSide as string) || 'right',
|
|
184
|
+
e.target.value
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
}}
|
|
188
|
+
disabled={!onUpdateSides}
|
|
189
|
+
style={{
|
|
190
|
+
width: '100%',
|
|
191
|
+
padding: '6px 8px',
|
|
192
|
+
fontSize: '12px',
|
|
193
|
+
borderRadius: '4px',
|
|
194
|
+
border: `1px solid ${theme.colors.border}`,
|
|
195
|
+
backgroundColor: theme.colors.background,
|
|
196
|
+
color: theme.colors.text,
|
|
197
|
+
cursor: onUpdateSides ? 'pointer' : 'not-allowed',
|
|
198
|
+
opacity: onUpdateSides ? 1 : 0.6,
|
|
199
|
+
}}
|
|
200
|
+
>
|
|
201
|
+
{SIDE_OPTIONS.map((side) => (
|
|
202
|
+
<option key={side} value={side}>
|
|
203
|
+
{side}
|
|
204
|
+
</option>
|
|
205
|
+
))}
|
|
206
|
+
</select>
|
|
207
|
+
</div>
|
|
199
208
|
</div>
|
|
200
|
-
|
|
209
|
+
</div>
|
|
210
|
+
|
|
201
211
|
|
|
202
212
|
{/* Metadata */}
|
|
203
213
|
<div
|
|
@@ -40,6 +40,8 @@ import {
|
|
|
40
40
|
convertToXYFlowNodes,
|
|
41
41
|
convertToXYFlowEdges,
|
|
42
42
|
autoLayoutNodes,
|
|
43
|
+
hasCycleBetweenNodes,
|
|
44
|
+
computeOptimalEdgeSides,
|
|
43
45
|
} from '../utils/graphConverter';
|
|
44
46
|
import { EdgeInfoPanel } from './EdgeInfoPanel';
|
|
45
47
|
import { NodeInfoPanel } from './NodeInfoPanel';
|
|
@@ -90,6 +92,13 @@ interface GraphRendererBaseProps {
|
|
|
90
92
|
/** Optional violations to highlight */
|
|
91
93
|
violations?: Violation[];
|
|
92
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Whether to automatically update edge sides (fromSide/toSide) when nodes are moved.
|
|
97
|
+
* Only updates edges where there is no cycle between the connected nodes.
|
|
98
|
+
* Uses position-based logic to determine optimal connection sides.
|
|
99
|
+
*/
|
|
100
|
+
autoUpdateEdgeSides?: boolean;
|
|
101
|
+
|
|
93
102
|
/** Optional configuration name for identification (used with multi-config setups) */
|
|
94
103
|
configName?: string;
|
|
95
104
|
|
|
@@ -209,6 +218,7 @@ interface GraphRendererInnerProps {
|
|
|
209
218
|
events?: GraphEvent[];
|
|
210
219
|
onEventProcessed?: (event: GraphEvent) => void;
|
|
211
220
|
editable?: boolean;
|
|
221
|
+
autoUpdateEdgeSides?: boolean;
|
|
212
222
|
onPendingChangesChange?: (hasChanges: boolean) => void;
|
|
213
223
|
onEditStateChange?: (editState: EditState) => void;
|
|
214
224
|
editStateRef: React.MutableRefObject<EditState>;
|
|
@@ -229,6 +239,7 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
229
239
|
events = [],
|
|
230
240
|
onEventProcessed,
|
|
231
241
|
editable = false,
|
|
242
|
+
autoUpdateEdgeSides = false,
|
|
232
243
|
onPendingChangesChange,
|
|
233
244
|
onEditStateChange,
|
|
234
245
|
editStateRef,
|
|
@@ -351,6 +362,27 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
351
362
|
setSelectedEdgeId(null);
|
|
352
363
|
}, []);
|
|
353
364
|
|
|
365
|
+
// Handle edge side updates from EdgeInfoPanel
|
|
366
|
+
const handleUpdateEdgeSides = useCallback(
|
|
367
|
+
(edgeId: string, fromSide: string, toSide: string) => {
|
|
368
|
+
setLocalEdges((currentEdges) =>
|
|
369
|
+
currentEdges.map((edge) =>
|
|
370
|
+
edge.id === edgeId
|
|
371
|
+
? {
|
|
372
|
+
...edge,
|
|
373
|
+
data: {
|
|
374
|
+
...edge.data,
|
|
375
|
+
fromSide,
|
|
376
|
+
toSide,
|
|
377
|
+
},
|
|
378
|
+
}
|
|
379
|
+
: edge
|
|
380
|
+
)
|
|
381
|
+
);
|
|
382
|
+
},
|
|
383
|
+
[]
|
|
384
|
+
);
|
|
385
|
+
|
|
354
386
|
// Handle close node info panel
|
|
355
387
|
const onCloseNodeInfoPanel = useCallback(() => {
|
|
356
388
|
setSelectedNodeId(null);
|
|
@@ -909,9 +941,62 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
909
941
|
}
|
|
910
942
|
return { ...prev, positionChanges: newPositions };
|
|
911
943
|
});
|
|
944
|
+
|
|
945
|
+
// Auto-update edge sides if enabled
|
|
946
|
+
if (autoUpdateEdgeSides) {
|
|
947
|
+
setXyflowLocalNodes((currentNodes) => {
|
|
948
|
+
// Build a position map from current xyflow nodes
|
|
949
|
+
const nodePositions = new Map<string, { x: number; y: number }>();
|
|
950
|
+
for (const node of currentNodes) {
|
|
951
|
+
nodePositions.set(node.id, node.position);
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
// Get moved node IDs
|
|
955
|
+
const movedNodeIds = new Set(positionChanges.map((c) => c.id));
|
|
956
|
+
|
|
957
|
+
// Update edges connected to moved nodes
|
|
958
|
+
setLocalEdges((currentEdges) => {
|
|
959
|
+
return currentEdges.map((edge) => {
|
|
960
|
+
// Only process edges connected to moved nodes
|
|
961
|
+
if (!movedNodeIds.has(edge.from) && !movedNodeIds.has(edge.to)) {
|
|
962
|
+
return edge;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
// Check for cycles - skip if there's a cycle between these nodes
|
|
966
|
+
const edgesWithoutCurrent = currentEdges.filter((e) => e.id !== edge.id);
|
|
967
|
+
if (hasCycleBetweenNodes(edge.from, edge.to, edgesWithoutCurrent)) {
|
|
968
|
+
return edge; // Don't auto-update edges that are part of a cycle
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
// Get positions of both nodes
|
|
972
|
+
const fromPos = nodePositions.get(edge.from);
|
|
973
|
+
const toPos = nodePositions.get(edge.to);
|
|
974
|
+
if (!fromPos || !toPos) {
|
|
975
|
+
return edge;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
// Compute optimal sides
|
|
979
|
+
const { fromSide, toSide } = computeOptimalEdgeSides(fromPos, toPos);
|
|
980
|
+
|
|
981
|
+
// Update edge data with new sides
|
|
982
|
+
return {
|
|
983
|
+
...edge,
|
|
984
|
+
data: {
|
|
985
|
+
...edge.data,
|
|
986
|
+
fromSide,
|
|
987
|
+
toSide,
|
|
988
|
+
},
|
|
989
|
+
updatedAt: Date.now(),
|
|
990
|
+
};
|
|
991
|
+
});
|
|
992
|
+
});
|
|
993
|
+
|
|
994
|
+
return currentNodes;
|
|
995
|
+
});
|
|
996
|
+
}
|
|
912
997
|
}
|
|
913
998
|
},
|
|
914
|
-
[editable, updateEditState]
|
|
999
|
+
[editable, autoUpdateEdgeSides, updateEditState]
|
|
915
1000
|
);
|
|
916
1001
|
|
|
917
1002
|
const xyflowEdges = useMemo(() => {
|
|
@@ -968,9 +1053,11 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
968
1053
|
onNodeClick={onNodeClick}
|
|
969
1054
|
proOptions={{ hideAttribution: true }}
|
|
970
1055
|
nodesDraggable={editable}
|
|
971
|
-
elementsSelectable={
|
|
1056
|
+
elementsSelectable={true}
|
|
972
1057
|
nodesConnectable={editable}
|
|
973
1058
|
edgesReconnectable={editable}
|
|
1059
|
+
reconnectRadius={100}
|
|
1060
|
+
elevateEdgesOnSelect={true}
|
|
974
1061
|
onNodesChange={handleNodesChange}
|
|
975
1062
|
onConnect={handleConnect}
|
|
976
1063
|
onReconnectStart={handleReconnectStart}
|
|
@@ -1002,6 +1089,7 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
1002
1089
|
targetNodeId={selectedEdge.to}
|
|
1003
1090
|
onClose={onCloseEdgeInfoPanel}
|
|
1004
1091
|
onDelete={editable ? handleEdgeDelete : undefined}
|
|
1092
|
+
onUpdateSides={editable ? handleUpdateEdgeSides : undefined}
|
|
1005
1093
|
/>
|
|
1006
1094
|
)}
|
|
1007
1095
|
|
|
@@ -1364,6 +1452,7 @@ export const GraphRenderer = forwardRef<GraphRendererHandle, GraphRendererProps>
|
|
|
1364
1452
|
events,
|
|
1365
1453
|
onEventProcessed,
|
|
1366
1454
|
editable,
|
|
1455
|
+
autoUpdateEdgeSides,
|
|
1367
1456
|
onPendingChangesChange,
|
|
1368
1457
|
} = props;
|
|
1369
1458
|
|
|
@@ -1382,6 +1471,7 @@ export const GraphRenderer = forwardRef<GraphRendererHandle, GraphRendererProps>
|
|
|
1382
1471
|
events={events}
|
|
1383
1472
|
onEventProcessed={onEventProcessed}
|
|
1384
1473
|
editable={editable}
|
|
1474
|
+
autoUpdateEdgeSides={autoUpdateEdgeSides}
|
|
1385
1475
|
onPendingChangesChange={onPendingChangesChange}
|
|
1386
1476
|
editStateRef={editStateRef}
|
|
1387
1477
|
/>
|
package/src/index.ts
CHANGED
|
@@ -70,7 +70,9 @@ export {
|
|
|
70
70
|
convertToXYFlowNodes,
|
|
71
71
|
convertToXYFlowEdges,
|
|
72
72
|
autoLayoutNodes,
|
|
73
|
+
hasCycleBetweenNodes,
|
|
74
|
+
computeOptimalEdgeSides,
|
|
73
75
|
} from './utils/graphConverter';
|
|
74
|
-
export type { EdgeStateWithHandles } from './utils/graphConverter';
|
|
76
|
+
export type { EdgeStateWithHandles, CanvasSide } from './utils/graphConverter';
|
|
75
77
|
export { Icon, resolveIcon } from './utils/iconResolver';
|
|
76
78
|
export type { IconProps } from './utils/iconResolver';
|
|
@@ -258,3 +258,75 @@ function applyCircularLayout<T extends Record<string, unknown>>(nodes: Node<T>[]
|
|
|
258
258
|
};
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Check if there is a cycle between two nodes (i.e., a path from target back to source).
|
|
264
|
+
* Returns true if adding an edge from `from` to `to` would complete a cycle.
|
|
265
|
+
*/
|
|
266
|
+
export function hasCycleBetweenNodes(
|
|
267
|
+
from: string,
|
|
268
|
+
to: string,
|
|
269
|
+
edges: Array<{ from: string; to: string }>
|
|
270
|
+
): boolean {
|
|
271
|
+
// Check if there's already a path from `to` back to `from`
|
|
272
|
+
// using BFS/DFS from `to` node
|
|
273
|
+
const visited = new Set<string>();
|
|
274
|
+
const queue = [to];
|
|
275
|
+
|
|
276
|
+
while (queue.length > 0) {
|
|
277
|
+
const current = queue.shift()!;
|
|
278
|
+
if (current === from) {
|
|
279
|
+
return true; // Found a path back, there would be a cycle
|
|
280
|
+
}
|
|
281
|
+
if (visited.has(current)) {
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
visited.add(current);
|
|
285
|
+
|
|
286
|
+
// Find all outgoing edges from current node
|
|
287
|
+
for (const edge of edges) {
|
|
288
|
+
if (edge.from === current && !visited.has(edge.to)) {
|
|
289
|
+
queue.push(edge.to);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export type CanvasSide = 'top' | 'right' | 'bottom' | 'left';
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Compute optimal edge sides based on relative node positions.
|
|
301
|
+
* Returns the best fromSide and toSide for connecting two nodes.
|
|
302
|
+
*/
|
|
303
|
+
export function computeOptimalEdgeSides(
|
|
304
|
+
fromPosition: { x: number; y: number },
|
|
305
|
+
toPosition: { x: number; y: number }
|
|
306
|
+
): { fromSide: CanvasSide; toSide: CanvasSide } {
|
|
307
|
+
const dx = toPosition.x - fromPosition.x;
|
|
308
|
+
const dy = toPosition.y - fromPosition.y;
|
|
309
|
+
|
|
310
|
+
// Determine primary direction based on which axis has larger delta
|
|
311
|
+
const isHorizontalDominant = Math.abs(dx) > Math.abs(dy);
|
|
312
|
+
|
|
313
|
+
if (isHorizontalDominant) {
|
|
314
|
+
// Horizontal connection
|
|
315
|
+
if (dx > 0) {
|
|
316
|
+
// Target is to the right of source
|
|
317
|
+
return { fromSide: 'right', toSide: 'left' };
|
|
318
|
+
} else {
|
|
319
|
+
// Target is to the left of source
|
|
320
|
+
return { fromSide: 'left', toSide: 'right' };
|
|
321
|
+
}
|
|
322
|
+
} else {
|
|
323
|
+
// Vertical connection
|
|
324
|
+
if (dy > 0) {
|
|
325
|
+
// Target is below source
|
|
326
|
+
return { fromSide: 'bottom', toSide: 'top' };
|
|
327
|
+
} else {
|
|
328
|
+
// Target is above source
|
|
329
|
+
return { fromSide: 'top', toSide: 'bottom' };
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|