flowappplatform-appbuilder-graphs
Version:
Graph Module for Flow App Builder
68 lines (67 loc) • 2.59 kB
TypeScript
/**
* @class KonvaGraph
*/
import * as React from "react";
import { IGraph } from "./interfaces/Graph";
import { IComponent, IConnection } from "./interfaces/Component";
import { KonvaEventObject } from "konva";
import { IPort } from "./interfaces/ComponentDefinition";
export declare type Props = {
graph: IGraph;
onComponentMoved(component: IComponent, x: number, y: number): void;
onComponentMoveFinished(component: IComponent): void;
onConnectionCreated(connection: IConnection): void;
onConnectionRemoved(connection: IConnection): void;
onConnectionClicked(component: IComponent, connection: IConnection): void;
onComponentSelected(component: IComponent | null): void;
onComponentDeleted(component: IComponent): void;
};
declare type State = {
addingConnection: boolean;
mouseX: number;
mouseY: number;
selectedComponentId: string | null;
componentMousedOver: IComponent | null;
};
export default class KonvaGraph extends React.Component<Props, State> {
connectionFromComponent: IComponent;
connectionFromPort: IPort;
needRAF: boolean;
state: {
addingConnection: boolean;
mouseX: number;
mouseY: number;
selectedComponentId: null;
componentMousedOver: null;
};
stage: any;
connections: any;
componentDidMount(): void;
componentWillUnmount(): void;
componentWillReceiveProps(newProps: any): void;
componentDidUpdate(): void;
showConnections(): void;
hideConnections(): void;
keyDown: (ev: KeyboardEvent) => void;
onWheel: (ev: KonvaEventObject<WheelEvent>) => void;
getScaledPointerPosition: () => {
x: number;
y: number;
};
onMouseMove: (ev: KonvaEventObject<MouseEvent>) => void;
onMouseDown: (ev: KonvaEventObject<MouseEvent>) => void;
onConnectionStart: (component: IComponent, port: IPort) => void;
onConnectionClicked: (component: IComponent, connection: IConnection) => void;
onComponentDeleted: (component: IComponent) => void;
onComponentMousedOver: (component: IComponent, x: number, y: number) => void;
onComponentMousedOut: (component: IComponent) => void;
render(): JSX.Element;
computeConnectionsSharingPath(connection: IConnection, allConnections: Array<IConnection>): {
port: IPort | undefined;
fromPortId: string;
toComponentId: string;
fromComponentId: string;
}[];
computeConnectionGroups(connections: Array<IConnection>): any[];
}
export {};