| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 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[];
- };
- }
- 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[];
- };
- }
- 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 };
|