@logicflow/extension
Version:
LogicFlow Extensions
43 lines (42 loc) • 1.65 kB
TypeScript
import LogicFlow, { Model, BaseNodeModel, BaseEdgeModel } from '@logicflow/core';
import AnchorConfig = Model.AnchorConfig;
import Point = LogicFlow.Point;
export type ProximityConnectProps = {
enable: boolean;
distance: number;
reverseDirection: boolean;
virtualEdgeStyle: Record<string, unknown>;
};
export declare class ProximityConnect {
static pluginName: string;
enable: boolean;
lf: LogicFlow;
closestNode?: BaseNodeModel;
currentDistance: number;
thresholdDistance: number;
currentNode?: BaseNodeModel;
reverseDirection: boolean;
currentAnchor?: AnchorConfig;
closestAnchor?: AnchorConfig;
virtualEdge?: BaseEdgeModel;
virtualEdgeStyle: Record<string, unknown>;
constructor({ lf, options, }: LogicFlow.IExtensionProps & {
options: ProximityConnectProps;
});
render(): void;
addEventListeners(): void;
handleNodeDrag(): void;
handleDrop(): void;
handleAnchorDrag(clientX: number, clientY: number): void;
findClosestAnchorOfNode(draggingNode: BaseNodeModel, allNodes: BaseNodeModel[]): void;
findClosestAnchorOfAnchor(draggingPoint: Point, allNodes: BaseNodeModel[]): void;
anchorAllowConnect(node: BaseNodeModel, anchor: AnchorConfig, draggingAnchor: AnchorConfig | undefined): boolean | undefined;
sameEdgeIsExist(edge: BaseEdgeModel): boolean;
addVirtualEdge(): void;
addActualEdge(): void;
setVirtualEdgeStyle(value: Record<string, unknown>): void;
setThresholdDistance(distance: number): void;
setReverseDirection(value: boolean): void;
setEnable(enable: boolean): void;
resetData(): void;
}