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

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

Справочник API

Вот полный контракт history: всё, что можно привязать, прослушать, спроецировать и тематизировать, собрано в одном месте. Подключите то, что нужно, и оформите так, как хотите — это standalone и дружит с сигналами.

Входные свойства

Настройте history с помощью 4 входных свойств. Привязывайте их, как любой @Input в Angular.

ИмяТипПо умолчаниюОписание
createHistoryStore(config)HistoryStoreConfig<T, K>Создаёт хранилище на основе Signals с необязательными ограничениями и пользовательскими функциями diff/patch.
registerObject(id, initialState)Обязательно(id: K, initialState: T) => voidРегистрирует базовое состояние объекта и начинает линейную историю для этого ключа.
commit(id, newState, options?)Обязательно(id: K, state: T, options?: { label?: string }) => booleanСохраняет diff-патч, инвалидирует ветку redo, если указатель не находился в конце.
watchForm(id, form, options?)(id: K, form: FormGroup, options?: WatchFormOptions) => () => voidАвтоматически фиксирует изменения значений формы и возвращает callback отписки.

События

Реагируйте на то, что делает history, — 1 событий, к которым можно подключить вашу логику.

ИмяТипОписание
statesSignal<Map<K, T>>Реактивная карта Signals с текущими неизменяемыми снимками для каждого id объекта.

Шаблоны

Шаблоны пока не задокументированы.

CSS-переменные

CSS-переменные пока не задокументированы.

Стилизация и тематизация

Примеры стилизации пока не задокументированы. В этом разделе будут рецепты кастомизации и примеры тематизации.