UNPKG

fabric-guideline-plugin

Version:

🤩 Help you easily append guidelines and auto-snap to your fabric.js canvas.

63 lines (62 loc) • 1.79 kB
import { fabric } from "fabric"; declare type VerticalLineCoords = { x: number; y1: number; y2: number; }; declare type HorizontalLineCoords = { y: number; x1: number; x2: number; }; declare type IgnoreObjTypes = { key: string; value: any; }[]; export declare class AlignGuidelines { aligningLineMargin: number; aligningLineWidth: number; aligningLineColor: string; ignoreObjTypes: IgnoreObjTypes; pickObjTypes: IgnoreObjTypes; canvas: fabric.Canvas; ctx: CanvasRenderingContext2D; viewportTransform: any; verticalLines: VerticalLineCoords[]; horizontalLines: HorizontalLineCoords[]; activeObj: fabric.Object; constructor({ canvas, aligningOptions, ignoreObjTypes, pickObjTypes, }: { canvas: fabric.Canvas; ignoreObjTypes?: IgnoreObjTypes; pickObjTypes?: IgnoreObjTypes; aligningOptions?: { lineMargin?: number; lineWidth?: number; lineColor?: string; }; }); private drawSign; private drawLine; private drawVerticalLine; private drawHorizontalLine; private isInRange; private watchMouseDown; private watchMouseUp; private watchMouseWheel; private clearLinesMeta; private watchObjectMoving; private getObjDraggingObjCoords; private omitCoords; private getObjMaxWidthHeightByCoords; /** * fabric.Object.getCenterPoint will return the center point of the object calc by mouse moving & dragging distance. * calcCenterPointByACoords will return real center point of the object position. */ private calcCenterPointByACoords; private traversAllObjects; private snap; clearGuideline(): void; watchRender(): void; init(): void; } export {};