UNPKG

@plait/draw

Version:

Implementation of the core logic of the flowchart drawing tool plugin.

146 lines (145 loc) 5.15 kB
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;