Skip to content

History Plugin ​

History plugin, used to record and manage operation history in ImageMark, supporting undo and redo functionality.

Types ​

typescript
export type HistoryPluginOptions = {
	// History plugin configuration options
}

constructor ​

ts
// Create HistoryPlugin instance
constructor(
  imageMarkInstance: ImageMark
): HistoryPlugin

Static Properties ​

pluginName ​

history

Instance Properties ​

stack ​

History record stack, storing undoable historical operations

redoStack ​

Redo stack, storing redoable historical operations

Instance Methods ​

getStackInfo ​

ts
// Get history stack information
getStackInfo(): {
  undo: number,
  redo: number
}

push ​

ts
// Push new history record to the stack
push(history: History, clear = true): void

undo ​

ts
// Undo the previous operation
undo(): void

redo ​

ts
// Redo the previously undone operation
redo(): void

clear ​

ts
// Clear all history records
clear(): void

destroy ​

ts
// Destroy the plugin
destroy(): void

Internal Classes ​

History ​

Abstract base class for history records

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

ShapeEditHistory ​

Shape edit history record class

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

ShapeExistHistory ​

Shape add/delete history record class

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