Store Undo Redo для Angular | ng-hub-ui-history

Store отмены и повтора для Angular с API, дружественными к Signals, транзакциями, лимитами и поддержкой реактивных форм.

Последнее обновление 8 авг. 2026 г.

Обзор

Почему команды ищут эту библиотеку

Используйте этот history store для Angular, когда нужны отмена и повтор для сложного состояния без подключения полноценной внешней библиотеки управления состоянием.

Установка

npm install ng-hub-ui-history

Перейти к

Идеально для

  • редакторы
  • конструкторы форм
  • low-code-инструменты
  • интерфейсы конфигурации

О библиотеке history

ng-hub-ui-history особенно полезен в редакторах Angular, конструкторах форм и экранах конфигурации, где пользователь ожидает возможности безопасно вернуться назад. Он привносит паттерны отмены и повтора в потоки с состоянием, не заставляя принимать тяжеловесное архитектурное решение.

Руководства по возможностям

Ручные коммиты и путешествие во времени

Отслеживайте изменения состояния и перемещайтесь назад/вперёд по линейной истории.

Примеры:
Basic History

Manual commit, undo and redo.

{
  "title": "Getting Started with History",
  "description": "Edit and commit to create undo/redo entries."
}

Вложенные объекты и массивы

Используйте отслеживание на основе патчей для глубоких графов объектов и мутаций списков.

Примеры:
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
    }
  ]
}

Автоматическое отслеживание форм

Автоматически коммитьте изменения значений формы с помощью встроенных watch-помощников.

Примеры:
Reactive Form Watch

watchForm() for automatic commits from FormGroup.

{
  "name": "Maria",
  "email": "maria@demo.local",
  "role": "Editor"
}

Транзакции и хранение

Группируйте несколько операций в одну запись и обрезайте старые записи по настроенным лимитам.

Примеры:
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"
  ]
}

Ключевые возможности

Последние изменения

Version 22.0.2 - 8/8/26, 12:00 AM

fixed: Documentation links now point at the canonical localized URLs. The README linked to https://hubui.dev/<path> with no locale prefix and no trailing slash, and both forms are 301-redirected, so every reader arriving from npm or GitHub landed on a redirect instead of the canonical page.

Version 22.0.1 - 7/28/26, 12:00 AM

added: Test suite for the diff/patch/clone utilities and multi-object undo/redo: cloneDeep isolation (nested structures, Dates), createDefaultDiff/applyDefaultPatch round-trips across representative shapes (nested objects, array insert/remove/reorder, key deletion, null transitions, deep nesting), estimateBytes sanity, and store-level coverage for independent per-object timelines, no-op transactions and redo invalidation after transactional commits. No runtime changes.

Version 22.0.0 - 6/17/26, 12:00 AM

changed: Aligned with Angular 22.

changed: README documentation standardized.

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().