UNPKG

editor-render-v2

Version:

编辑器渲染器

61 lines (60 loc) 1.76 kB
import { fabric } from 'fabric'; import Handler from './Handler'; type TransactionType = 'redo' | 'undo' | 'start' | 'modified' | 'fill' | 'stroke' | 'strokeWidth' | 'strokeDash' | 'strokeCap' | 'strokeJoin' | 'shadow' | 'effect' | 'property' | 'filter' | 'crop' | 'clipPath' | 'delete' | 'copy' | 'cut' | 'replace' | 'toGroup' | 'unGroup' | 'align' | 'arrow' | 'addImg' | 'addText' | 'addJson' | 'replaceImg' | 'resetEffect' | 'layer' | 'multiSize' | 'backReplace'; interface ITransactionEvent { json: string; type: TransactionType; } /** * 记录画布用户的操作记录,可以执行redo/undo操作 */ declare class TransactionHandler { /** @ignore */ handler: Handler; /** @ignore */ redos: ITransactionEvent[]; /** @ignore */ undos: ITransactionEvent[]; /** @ignore */ state: string; /** @ignore */ constructor(handler: Handler); /** @ignore */ initialize(): void; /** * 触发画布的存储操作 * @ignore * @param type 保存的类型 * @returns 返回最新渲染的状态 * * 保存旧的值并且返回最新的状态 */ save(type: TransactionType): fabric.Object[]; /** * 判断是否有undo操作 * @returns boolean */ hasUndo(): boolean; /** * 判断是否有redo操作 * @returns boolean */ hasRedo(): boolean; /** * 触发画布的undo操作 * @returns */ undo(): void; /** * 触发画布的redo操作 * @returns */ redo(): void; /** * undo/redo时候的画布重绘函数 * @ignore * @param transaction - 重绘时候的数据 */ replay(transaction: ITransactionEvent): void; } export default TransactionHandler;