editor-render-v2
Version:
编辑器渲染器
61 lines (60 loc) • 1.76 kB
TypeScript
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;