UNPKG

echarts

Version:

Apache ECharts is a powerful, interactive charting and data visualization library for browser

140 lines (139 loc) 4 kB
import { Dictionary } from 'zrender/lib/core/types.js'; import SeriesData from './SeriesData.js'; import Model from '../model/Model.js'; import Element from 'zrender/lib/Element.js'; import { DimensionLoose, ParsedValue } from '../util/types.js'; declare class Graph { type: 'graph'; readonly nodes: GraphNode[]; readonly edges: GraphEdge[]; data: SeriesData; edgeData: SeriesData; /** * Whether directed graph. */ private _directed; private _nodesMap; /** * @type {Object.<string, module:echarts/data/Graph.Edge>} * @private */ private _edgesMap; constructor(directed?: boolean); /** * If is directed graph */ isDirected(): boolean; /** * Add a new node */ addNode(id: string | number, dataIndex?: number): GraphNode; /** * Get node by data index */ getNodeByIndex(dataIndex: number): GraphNode; /** * Get node by id */ getNodeById(id: string): GraphNode; /** * Add a new edge */ addEdge(n1: GraphNode | number | string, n2: GraphNode | number | string, dataIndex?: number): GraphEdge; /** * Get edge by data index */ getEdgeByIndex(dataIndex: number): GraphEdge; /** * Get edge by two linked nodes */ getEdge(n1: string | GraphNode, n2: string | GraphNode): GraphEdge; /** * Iterate all nodes */ eachNode<Ctx>(cb: (this: Ctx, node: GraphNode, idx: number) => void, context?: Ctx): void; /** * Iterate all edges */ eachEdge<Ctx>(cb: (this: Ctx, edge: GraphEdge, idx: number) => void, context?: Ctx): void; /** * Breadth first traverse * Return true to stop traversing */ breadthFirstTraverse<Ctx>(cb: (this: Ctx, node: GraphNode, fromNode: GraphNode) => boolean | void, startNode: GraphNode | string, direction: 'none' | 'in' | 'out', context?: Ctx): void; update(): void; /** * @return {module:echarts/data/Graph} */ clone(): Graph; } declare class GraphNode { id: string; inEdges: GraphEdge[]; outEdges: GraphEdge[]; edges: GraphEdge[]; hostGraph: Graph; dataIndex: number; __visited: boolean; constructor(id?: string, dataIndex?: number); /** * @return {number} */ degree(): number; /** * @return {number} */ inDegree(): number; /** * @return {number} */ outDegree(): number; getModel<T = unknown>(): Model<T>; getModel<T = unknown, S extends keyof T = keyof T>(path: S): Model<T[S]>; getAdjacentDataIndices(): { node: number[]; edge: number[]; }; getTrajectoryDataIndices(): { node: number[]; edge: number[]; }; } declare class GraphEdge { /** * The first node. If directed graph, it represents the source node. */ node1: GraphNode; /** * The second node. If directed graph, it represents the target node. */ node2: GraphNode; dataIndex: number; hostGraph: Graph; constructor(n1: GraphNode, n2: GraphNode, dataIndex?: number); getModel<T = unknown>(): Model<T>; getModel<T = unknown, S extends keyof T = keyof T>(path: S): Model<T[S]>; getAdjacentDataIndices(): { node: number[]; edge: number[]; }; getTrajectoryDataIndices(): { node: number[]; edge: number[]; }; } interface GraphDataProxyMixin { getValue(dimension?: DimensionLoose): ParsedValue; setVisual(key: string | Dictionary<any>, value?: any): void; getVisual(key: string): any; setLayout(layout: any, merge?: boolean): void; getLayout(): any; getGraphicEl(): Element; getRawIndex(): number; } interface GraphEdge extends GraphDataProxyMixin { } interface GraphNode extends GraphDataProxyMixin { } export default Graph; export { GraphNode, GraphEdge };