Skip to content

@luminaphoto/lumina-js


@luminaphoto/lumina-js / Client / HistoryManager

Class: HistoryManager

Linear undo/redo history manager for the Client Editor

Maintains a chronological list of applied operations with a movable cursor. New operations clear the redo tail (standard branching behavior). History depth is bounded by a configurable maximum size.

Constructors

Constructor

ts
new HistoryManager(maxSize?): HistoryManager;

Parameters

ParameterTypeDefault valueDescription
maxSizenumber50Maximum number of operations to retain (default: 50)

Returns

HistoryManager

Methods

addOperation()

ts
addOperation(nodeType, payload): void;

Add a new operation to the history after it has been successfully applied

Parameters

ParameterTypeDescription
nodeTypeNodeTypeThe type of operation that was applied
payloadRecord<string, unknown>The complete parameters that were passed to the apply method

Returns

void


canRedo()

ts
canRedo(): boolean;

Check if a redo operation is possible

Returns

boolean

True if there are undone operations that can be redone


canUndo()

ts
canUndo(): boolean;

Check if an undo operation is possible

Returns

boolean

True if there are operations that can be undone


clear()

ts
clear(): void;

Clears all history entries and resets to initial state

Returns

void


getAllEntries()

ts
getAllEntries(): HistoryEntry[];

Get all entries in the history, including undone operations

Returns

HistoryEntry[]

Copy of the complete history array


getCurrentIndex()

ts
getCurrentIndex(): number;

Get the current position in the history

Returns

number

Current index (-1 if no operations applied)


getCurrentState()

ts
getCurrentState(): HistoryEntry[];

Get all currently applied operations in chronological order

Returns

HistoryEntry[]

Array of history entries up to the current position


getHistoryLength()

ts
getHistoryLength(): number;

Get the total number of operations in history (including undone)

Returns

number

Total entry count


getNextRedoOperation()

ts
getNextRedoOperation(): NodeType | null;

Get the NodeType of the operation that would be redone next

Returns

NodeType | null

The NodeType of the next redo candidate, or null if nothing to redo


getNextUndoOperation()

ts
getNextUndoOperation(): NodeType | null;

Get the NodeType of the operation that would be undone next

Returns

NodeType | null

The NodeType of the next undo candidate, or null if nothing to undo


redo()

ts
redo(): void;

Moves the history position forward by one step (redo)

Returns

void


undo()

ts
undo(): void;

Moves the history position backward by one step (undo)

Returns

void

Proprietary. All rights reserved.