Skip to content

History Plugin

历史记录插件,用于记录和管理 ImageMark 中的操作历史,支持撤销和重做功能。

Types

typescript
export type HistoryPluginOptions = {
	// 历史记录插件配置项
}

constructor

ts
// 创建 HistoryPlugin 实例
constructor(
  imageMarkInstance: ImageMark
): HistoryPlugin

静态属性

pluginName

history

实例属性

stack

历史记录栈,存储可撤销的历史操作

redoStack

重做栈,存储可重做的历史操作

实例方法

getStackInfo

ts
// 获取历史记录栈信息
getStackInfo(): {
  undo: number,
  redo: number
}

push

ts
// 推送新的历史记录到栈中
push(history: History, clear = true): void

undo

ts
// 撤销上一步操作
undo(): void

redo

ts
// 重做上一步撤销的操作
redo(): void

clear

ts
// 清除所有历史记录
clear(): void

destroy

ts
// 销毁插件
destroy(): void

内部类

History

历史记录的抽象基类

typescript
export abstract class History<T extends object | number | string = object> {
	static operate: string
	oldData: T | undefined
	newData: T | undefined
	constructor(oldData?: T, newData?: T)
	setOldData(oldData: T): void
	setNewData(newData: T): void
	abstract undo(imageMarkInstance: ImageMark): void
	abstract redo(imageMarkInstance: ImageMark): void
}

ShapeEditHistory

图形编辑历史记录类

typescript
export class ShapeEditHistory extends History<ShapeData> {
	static operate = 'edit'
	constructor(oldData?: ShapeData, newData?: ShapeData)
	undo(imageMark: ImageMark): void
	redo(imageMark: ImageMark): void
}

ShapeExistHistory

图形添加删除历史记录类

typescript
export class ShapeExistHistory extends History<ShapeData> {
	static operate = 'exist'
	constructor(oldData?: ShapeData, newData?: ShapeData)
	undo(imageMark: ImageMark): void
	redo(imageMark: ImageMark): void
}