UNPKG

@kinvolk/headlamp-plugin

Version:

The needed infrastructure for building Headlamp plugins.

69 lines (68 loc) 2.49 kB
import Namespace from '../../../lib/k8s/namespace'; import Node from '../../../lib/k8s/node'; import { GraphEdge, GraphNode } from './graphModel'; export type GroupBy = 'node' | 'namespace' | 'instance'; /** * Returns the amount of nodes in the graph */ export declare const getGraphSize: (graph: GraphNode) => number; /** * Try to find a "main" node in the workload group * If can't find anything return the first node */ export declare const getMainNode: (nodes: GraphNode[]) => GraphNode; /** * Groups the graph into separate 'group' Nodes * Nodes within groups are sorted by size * * @param nodes - List of nodes * @param edges - List of edge * @param params.groupBy - group by which property * @returns Graph, a single root node with groups as its' children */ export declare function groupGraph(nodes: GraphNode[], edges: GraphEdge[], { groupBy, namespaces, k8sNodes, }: { groupBy?: GroupBy; namespaces: Namespace[]; k8sNodes: Node[]; }): GraphNode; /** * Walks the graph do find the parent of the given node */ export declare function getParentNode(graph: GraphNode, elementId: string): GraphNode | undefined; /** * Finds a Node with a group type that contains a given node * @param graph - graph which contains the Node * @param elementId - ID of a given Node * @param strict - If set to false will try to find closest group, if set to true always returns the parent * @returns */ export declare function findGroupContaining(graph: GraphNode, elementId: string, strict?: boolean): GraphNode | undefined; /** * Given a graph with groups, this function will 'collapse' all groups without * the selected node. 'Collapsing' means that group won't show all children but * only a preview * * If selectedNodeId is passed, only shows group containing that node * * @param graph Single graph node * @param params.selectedNodeId Graph node that is selected * @param params.expandAll Display all the children within all groups * @returns Collapsed graph */ export declare function collapseGraph(graph: GraphNode, { selectedNodeId, expandAll }: { selectedNodeId?: string; expandAll: boolean; }): { id: string; label?: string; subtitle?: string; icon?: import("react").ReactNode; kubeObject?: import("../../../lib/k8s/KubeObject").KubeObject; nodes?: GraphNode[]; edges?: GraphEdge[]; collapsed?: boolean; detailsComponent?: import("react").ComponentType<{ node: GraphNode; }>; data?: any; };