Angular Undo Redo History Store | ng-hub-ui-history
Angular undo and redo history store with Signals-friendly APIs, transactions, limits and reactive form support.
Overview
Why teams search for this library
Use this Angular history store when you need undo and redo on complex state without introducing a full external state library.
Install
npm install ng-hub-ui-historyJump to
Ideal for
- editors
- form builders
- low-code tools
- configuration UIs
About history
ng-hub-ui-history is especially useful in Angular editors, form builders and configuration screens where the user expects to go backwards safely. It brings undo and redo patterns to stateful workflows without forcing a heavyweight architecture decision.
Feature guides
Manual Commits and Time Travel
Track state changes and travel backwards/forwards through linear history.
Examples:
Basic History
Manual commit, undo and redo.
{
"title": "Getting Started with History",
"description": "Edit and commit to create undo/redo entries."
}Nested Objects and Arrays
Use patch-based tracking for deep object graphs and list mutations.
Examples:
Nested Object History
Nested properties and dynamic list updates.
{
"id": "invoice-1",
"customer": {
"name": "Acme Corp",
"city": "Madrid"
},
"lines": [
{
"name": "Support plan",
"quantity": 1,
"unitPrice": 150
}
]
}Automatic Form Tracking
Auto-commit form value changes with built-in watch helpers.
Examples:
Reactive Form Watch
watchForm() for automatic commits from FormGroup.
{
"name": "Maria",
"email": "maria@demo.local",
"role": "Editor"
}Transactions and Retention
Group multiple operations into one entry and trim old entries by configured limits.
Examples:
Transactions + Limits
Consolidated commits and FIFO retention.
Pointer: -1 / Entries: 0 / Bytes: 0
{
"id": "transaction-editor",
"title": "Release notes draft",
"content": "Initial draft content.",
"tags": [
"draft"
]
}Key features
Recent changes
Version 0.1.0 - 2/23/26, 12:00 AM
added: Initial release with multi-object linear history.
added: Undo/redo, transactions, and maxEntries/maxBytes retention limits.
added: Reactive Forms auto-commit integration via watchForm().