UNPKG

mark-tool-js

Version:
38 lines (37 loc) 1.15 kB
import { Circle, Polygon, Rect, Svg } from '@svgdotjs/svg.js'; export type TSVGChlid = Rect | Circle | Polygon; export type TCustomDragDetail = { event: MouseEvent | TouchEvent; __startOffset: { offsetX: number; offsetY: number; }; offsetX: number; offsetY: number; $svgContainer: Svg; }; export type TDrawType = 'rect' | 'circle' | 'polygon'; export type TDrawReturn = [Svg, TSVGChlid, TDrawType, TSvgData?]; export type TDrawValue = Partial<{ onMouseDown: (svgData: TSvgData, $svgContainer: Svg, ...args: any[]) => TDrawReturn; onDrag: (event: TCustomDragDetail, drawSvg: TDrawReturn, ...args: any[]) => void; onMouseUp: (event: TCustomDragDetail, drawSvg: TDrawReturn, ...args: any[]) => void; onCreate: (svgData: TSvgData, $svgContainer: Svg) => TDrawReturn; }>; export type TSvgData = { props: Record<string, any> & { label: string; }; svgId?: string; x: number; y: number; child: { type: TDrawType; svgId?: string; x: number; y: number; width: number; height: number; transform?: string; }; };