UNPKG

@orca-fe/painter

Version:
63 lines (62 loc) 2.06 kB
import React from 'react'; import type { ShapeDataType, ShapeType } from './def'; export type PainterRef = { /** * 绘制图形 * @param {ShapeType} shapeType - 图形类型 * @param {Record<string, any>} attr - 图形属性 */ draw: (shapeType: ShapeType, attr?: Record<string, any>) => void; /** * 取消绘制 */ cancelDraw: () => void; /** * 是否正在绘制 * @returns {boolean} - 是否正在绘制 */ isDrawing: () => boolean; /** * 获取根元素 * @returns {HTMLElement | null} - 根元素 */ getRoot: () => HTMLElement | null; }; export type DrawMode = { shapeType: ShapeType; attr?: Record<string, any>; }; type Action = 'add' | 'change' | 'delete'; export interface PainterProps<T extends ShapeDataType> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultChecked'> { /** 缩放比例 */ zoom?: number; /** 默认绘画模式 */ defaultDrawMode?: DrawMode | false; drawMode?: DrawMode | false; onDrawModeChange?: (drawMode: DrawMode | false) => void; /** 默认图形数据 */ defaultData?: T[]; /** 图形数据 */ data?: T[]; /** 图形数据变化回调 */ onDataChange?: (data: T[], action: Action, index: number) => void; /** 渲染变换框 */ renderTransformingRect?: (shape: T, index: number) => React.ReactNode; /** 默认选中项 */ defaultChecked?: number; /** 选中项 */ checked?: number; /** 选中项变化回调 */ onCheck?: (checked: number) => void; /** 取消绘图 */ onCancelDraw?: () => void; /** 自动选择最后创建的元素 */ autoCheck?: boolean; /** 开始拖拽事件 */ onChangeStart?: (index: number) => void; /** 整个PDF,所有图型的数据 */ dataList?: T[][]; } declare const Painter: React.ForwardRefExoticComponent<PainterProps<ShapeDataType> & React.RefAttributes<PainterRef>>; export declare const usePainterRef: () => React.RefObject<PainterRef>; export default Painter;