mirror of
https://github.com/grafana/grafana.git
synced 2025-09-25 10:54:49 +08:00
Node Graph: Emphasize hovered or connected nodes (#51925)
* Node Graph: Emphasize hovered or connected nodes * Add tests and refactor into util functions
This commit is contained in:
@ -404,3 +404,30 @@ export const applyOptionsToFrames = (frames: DataFrame[], options: NodeGraphOpti
|
||||
return frame;
|
||||
});
|
||||
};
|
||||
|
||||
// Returns an array of node ids which are connected to a given edge
|
||||
export const findConnectedNodesForEdge = (nodes: NodeDatum[], edges: EdgeDatum[], edgeId: string): string[] => {
|
||||
const edge = edges.find((edge) => edge.id === edgeId);
|
||||
if (edge) {
|
||||
return [
|
||||
...new Set(nodes.filter((node) => edge.source === node.id || edge.target === node.id).map((node) => node.id)),
|
||||
];
|
||||
}
|
||||
return [];
|
||||
};
|
||||
|
||||
// Returns an array of node ids which are connected to a given node
|
||||
export const findConnectedNodesForNode = (nodes: NodeDatum[], edges: EdgeDatum[], nodeId: string): string[] => {
|
||||
const node = nodes.find((node) => node.id === nodeId);
|
||||
if (node) {
|
||||
const linkedEdges = edges.filter((edge) => edge.source === node.id || edge.target === node.id);
|
||||
return [
|
||||
...new Set(
|
||||
linkedEdges.flatMap((edge) =>
|
||||
nodes.filter((n) => edge.source === n.id || edge.target === n.id).map((n) => n.id)
|
||||
)
|
||||
),
|
||||
];
|
||||
}
|
||||
return [];
|
||||
};
|
||||
|
Reference in New Issue
Block a user