@logicflow/core
Version:
LogicFlow, help you quickly create flowcharts
52 lines (51 loc) • 1.86 kB
TypeScript
import { createElement as h, Component } from 'preact/compat';
import { IReactionDisposer } from 'mobx';
import LogicFlow from '../../LogicFlow';
import { GraphModel, BaseNodeModel, Model } from '../../model';
import { StepDrag, IDragParams } from '../../util';
type IProps = {
model: BaseNodeModel;
graphModel: GraphModel;
};
type IState = {
isDragging?: boolean;
};
export declare abstract class BaseNode<P extends IProps = IProps> extends Component<P, IState> {
static isObserved: boolean;
static extendsKey?: string;
t: any;
moveOffset?: LogicFlow.OffsetData;
stepDrag: StepDrag;
mouseUpDrag?: boolean;
startTime?: number;
modelDisposer: IReactionDisposer;
constructor(props: IProps);
componentWillUnmount(): void;
componentDidMount(): void;
componentDidUpdate(): void;
abstract getShape(): h.JSX.Element | null;
getAnchorShape(_anchorData?: Model.AnchorConfig): h.JSX.Element | null;
getAnchors(): h.JSX.Element[];
getRotateControl(): h.JSX.Element | undefined;
getResizeControl(): h.JSX.Element | null;
getText(): h.JSX.Element | null;
getStateClassName(): string;
onDragStart: ({ event }: Partial<IDragParams>) => void;
onDragging: ({ event }: IDragParams) => void;
onDragEnd: () => void;
onMouseOut: (ev: MouseEvent) => void;
handleMouseUp: () => void;
handleClick: (e: MouseEvent) => void;
handleContextMenu: (ev: MouseEvent) => void;
handleMouseDown: (ev: MouseEvent) => void;
handleFocus: () => void;
handleBlur: () => void;
setHoverOn: (ev: MouseEvent) => void;
setHoverOff: (ev: MouseEvent) => void;
/**
* @overridable 支持重写, 节点置顶,可以被某些不需要置顶的节点重写,如group节点。
*/
toFront(): void;
render(): h.JSX.Element;
}
export default BaseNode;