import React, { ErrorInfo } from 'react'; import { Graph as IGraph } from '@antv/g6'; /** types */ import { IconLoader } from './typings/type'; import './index.less'; /** 内置布局 */ import LayoutController from './layout'; import { ApisType } from './apis/types'; export interface RegisterFunction { (name: string, options: { [key: string]: any; }, extendName?: string): void; } declare class Graphin extends React.PureComponent { static registerNode: RegisterFunction; static registerEdge: RegisterFunction; static registerCombo: RegisterFunction; static registerBehavior(behaviorName: string, behavior: any): void; static registerFontFamily(iconLoader: IconLoader): { [icon: string]: any; }; static registerLayout(layoutName: string, layout: any): void; /** Graph的DOM */ graphDOM: HTMLDivElement | null; /** G6 instance */ graph: IGraph; /** layout */ layout: LayoutController; width: number; height: number; /** 是否为 Tree Graph */ isTree: boolean; /** G6实例中的 nodes,edges,combos 的 model,会比props.data中多一些引用赋值产生的属性,比如node中的 x,y */ data: Graphin.TreeData | Graphin.GraphData; /** 默认样式 */ defaultStyle: { node: {}; edge: {}; combo: {}; theme: 'light' | 'dark'; background: string; }; options: { [key: string]: any; }; apis: ApisType; constructor(props: Graphin.Props); initData: (data: Graphin.Props['data']) => void; initGraphInstance: () => void; updateLayout: () => void; componentDidMount(): void; /** * 组件更新的时候 * @param prevProps */ updateOptions: () => any; /** 初始化状态 */ initStatus: () => void; componentDidUpdate(prevProps: Graphin.Props): void; /** * 组件移除的时候 */ componentWillUnmount(): void; /** * 组件崩溃的时候 * @param error * @param info */ componentDidCatch(error: Error, info: ErrorInfo): void; clear: () => void; shouldUpdate(prevProps: Graphin.Props, key: string): boolean; render(): JSX.Element; } export default Graphin;