@logicflow/core
Version:
LogicFlow, help you quickly create flowcharts
71 lines (70 loc) • 3.07 kB
TypeScript
import { createElement as h } from 'preact/compat';
import LogicFlow from '../LogicFlow';
import { GraphModel, Model, BaseNodeModel } from '../model';
import Point = LogicFlow.Point;
import Direction = LogicFlow.Direction;
import NodeConfig = LogicFlow.NodeConfig;
import AnchorInfo = Model.AnchorInfo;
import BoxBoundsPoint = Model.BoxBoundsPoint;
export declare const getAnchors: (data: BaseNodeModel) => Model.AnchorConfig[];
export type NodeContaint = {
node: BaseNodeModel;
anchorIndex: number;
anchor: Model.AnchorConfig;
};
export declare const targetNodeInfo: (position: Point, graphModel: GraphModel) => NodeContaint;
export declare const getClosestAnchor: (position: Point, node: BaseNodeModel) => AnchorInfo;
export declare const distance: (x1: number, y1: number, x2: number, y2: number) => number;
export declare const isInNode: (position: Point, node: BaseNodeModel, offset?: number) => boolean;
export declare const isInNodeBbox: (position: Point, node: BaseNodeModel) => boolean;
export type NodeBBox = {
x: number;
y: number;
width: number;
height: number;
centerX: number;
centerY: number;
} & BoxBoundsPoint;
export declare const getNodeBBox: (node: BaseNodeModel) => NodeBBox;
type RadiusCircle = {
x: number;
y: number;
r: number;
};
export declare const getRectRadiusCircle: (node: BaseNodeModel) => [RadiusCircle, RadiusCircle, RadiusCircle, RadiusCircle];
export declare const getClosestRadiusCenter: (point: Point, direction: Direction, node: BaseNodeModel) => Point;
export declare const getCrossPointWithCircle: (point: Point, direction: Direction, node: RadiusCircle) => Point;
export declare const pointEdgeDirection: (point: Point, node: BaseNodeModel) => Direction;
export declare const inStraightLineOfRect: (point: Point, node: BaseNodeModel) => boolean;
export declare const getCrossPointWithEllipse: (point: Point, direction: Direction, node: BaseNodeModel) => Point;
export declare const getCrossPointWithPolygon: (point: Point, direction: Direction, node: BaseNodeModel) => Point;
export declare const pickNodeConfig: (data: NodeConfig) => NodeConfig;
/**
* 基于节点的边,重新获取新的节点
*/
export declare const getNodeAnchorPosition: (center: BaseNodeModel, point: Point, width: number, height: number) => {
x: number;
y: number;
};
/*********************************************************
* Text 节点文本相关工具函数
********************************************************/
export declare const getHtmlTextHeight: ({ rows, style, rowsLength, className, }: {
rows: string[];
style: h.JSX.CSSProperties;
rowsLength: number;
className: string;
}) => number;
export declare const getSvgTextWidthHeight: ({ rows, rowsLength, fontSize, }: {
rows: string[];
rowsLength: number;
fontSize: number;
}) => {
width: number;
height: number;
};
/**
* @description 格式化边校验信息
*/
export declare const formatAnchorConnectValidateData: (data: Model.ConnectRuleResult) => Model.ConnectRuleResult;
export {};