@davidyaha/graphql-birdseye
Version:
graphql visualizer
71 lines (70 loc) • 2.03 kB
TypeScript
import { GraphQLNamedType, GraphQLInputObjectType, GraphQLEnumType, GraphQLScalarType, GraphQLUnionType } from "graphql/type/definition";
import { TypeMap } from "graphql/type/schema";
import { Theme } from "../defaultTheme";
export declare type FilteredGraphqlOutputType = Exclude<GraphQLNamedType, GraphQLInputObjectType | GraphQLEnumType | GraphQLScalarType | GraphQLUnionType>;
export declare type EventType = "loading:start" | "loading:stop";
export default class JointJS {
/**
* config
*/
private theme;
private activeType;
private animation;
private typeMap;
private maxZoom;
/**
* internal
*/
private eventMap;
private graph;
private paper;
private panZoom;
private cachedCells;
private cachedLinks;
private mounted;
constructor(opts: {
theme?: Theme;
});
init(el: any, bounds: any, typeMap: TypeMap): Promise<void>;
destroy(): Promise<void>;
private bindInteractionEvents;
get(key: any): any;
/**
* Events
*/
on(key: EventType, callback: () => any): void;
startLoading(): Promise<any>;
stopLoading(): Promise<any>;
enableAnimation(): void;
disableAnimation(): void;
setTypeMap(newTypeMap: any): Promise<void>;
setActiveType(activeType: any): Promise<void>;
setSize(width: number, height: number): Promise<void>;
/**
*
* Render
*/
renderElements(opts?: {
typeMap?: any;
activeType?: string;
animate?: boolean;
}): Promise<void>;
private getToRenderTypes;
private removeUnusedElements;
private addNewElements;
private layoutGraph;
/**
* Helpers
*/
private createNode;
private createLink;
private addTools;
private getHoveredPort;
private highlightLinks;
/**
* Zoom
*/
private resizeToFit;
focusBBox(bBox: any): void;
animatePanAndZoom(x: any, y: any, zoomEnd: any): void;
}