@plait/draw
Version:
Implementation of the core logic of the flowchart drawing tool plugin.
146 lines (145 loc) • 5.15 kB
TypeScript
import { PlaitBoard, Point, RectangleClient, ThemeColorMode } from '@plait/core';
import { GeometryShapes, BasicShapes, PlaitGeometry, FlowchartSymbols, UMLSymbols } from '../interfaces/geometry';
import { Element } from 'slate';
import { DrawPointerType } from '../constants';
import { Alignment, CustomText } from '@plait/common';
import { Options } from 'roughjs/bin/core';
import { PlaitShapeElement } from '../interfaces';
import { DrawTextInfo } from '../generators/text.generator';
export type GeometryStyleOptions = Pick<PlaitGeometry, 'fill' | 'strokeColor' | 'strokeWidth'>;
export type TextProperties = Partial<CustomText> & {
align?: Alignment;
textHeight?: number;
};
export declare const createGeometryElement: (shape: GeometryShapes, points: [Point, Point], text: string | Element, options?: GeometryStyleOptions, textProperties?: TextProperties) => PlaitGeometry;
export declare const createGeometryElementWithText: (shape: GeometryShapes, points: [Point, Point], text: string | Element, options?: GeometryStyleOptions, textProperties?: TextProperties) => PlaitGeometry;
export declare const createGeometryElementWithoutText: (shape: GeometryShapes, points: [Point, Point], options?: GeometryStyleOptions) => PlaitGeometry;
export declare const drawGeometry: (board: PlaitBoard, outerRectangle: RectangleClient, shape: GeometryShapes, roughOptions: Options) => SVGGElement;
export declare const getNearestPoint: (element: PlaitShapeElement, point: Point) => Point;
export declare const getCenterPointsOnPolygon: (points: Point[]) => Point[];
export declare const getDefaultFlowchartProperty: (symbol: FlowchartSymbols) => {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
};
export declare const getDefaultBasicShapeProperty: (shape: BasicShapes) => {
width: number;
height: number;
};
export declare const getDefaultUMLProperty: (shape: UMLSymbols) => {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
texts: {
id: import("../interfaces").GeometryCommonTextKeys;
text: string;
align: Alignment;
}[];
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
} | {
width: number;
height: number;
texts: {
id: import("../interfaces").GeometryCommonTextKeys;
text: string;
align: Alignment;
}[];
} | {
width: number;
height: number;
texts: {
text: string;
align: Alignment;
}[];
} | {
width: number;
height: number;
texts: {
text: string;
align: Alignment;
}[];
};
export declare const getAutoCompletePoints: (board: PlaitBoard, element: PlaitShapeElement, isToActive?: boolean) => [Point, Point, Point, Point];
export declare const getHitIndexOfAutoCompletePoint: (movingPoint: Point, points: Point[]) => number;
export declare const getDrawDefaultStrokeColor: (theme: ThemeColorMode) => string;
export declare const getFlowchartDefaultFill: (theme: ThemeColorMode) => string;
export declare const getTextShapeProperty: (board: PlaitBoard, text: string | Element, fontSize?: number | string) => {
width: number;
height: number;
};
export declare const getDefaultGeometryPoints: (pointer: DrawPointerType, centerPoint: Point) => [Point, Point];
export declare const getDefaultGeometryProperty: (pointer: DrawPointerType) => {
width: number;
height: number;
};
export declare const getDefaultTextPoints: (board: PlaitBoard, centerPoint: Point, fontSize?: number | string) => [Point, Point];
export declare const createTextElement: (board: PlaitBoard, points: [Point, Point], text: string | Element, textHeight?: number) => PlaitGeometry;
export declare const createDefaultGeometry: (board: PlaitBoard, points: [Point, Point], shape: GeometryShapes) => import("../interfaces").PlaitCommonGeometry<"geometry", [Point, Point], GeometryShapes>;
export declare const editText: (board: PlaitBoard, element: PlaitGeometry, text?: DrawTextInfo) => void;
export declare const isGeometryIncludeText: (element: PlaitGeometry) => boolean;
export declare const isSingleTextShape: (shape: GeometryShapes) => boolean;
export declare const isSingleTextGeometry: (element: PlaitGeometry) => boolean;
export declare const isGeometryClosed: (element: PlaitGeometry) => boolean;