Angular Undo-Redo-History-Store | ng-hub-ui-history
Angular Undo- und Redo-History-Store mit Signals-freundlichen APIs, Transaktionen, Limits und Unterstützung für Reactive Forms.
API-Referenz
Hier ist der vollständige Vertrag für history: alles, was du binden, abhören, projizieren und gestalten kannst, an einem Ort gesammelt. Verdrahte, was du brauchst, und gestalte, was du willst — es ist standalone und Signals-freundlich.
Inputs
Noch keine Inputs dokumentiert.
Outputs
Noch keine Outputs dokumentiert.
Methoden
Steuere history aus dem Code heraus — 16 Methoden auf der programmatischen Schnittstelle.
| Name | Signatur | Rückgabe | Beschreibung |
|---|---|---|---|
createHistoryStore | createHistoryStore<T, K>(config?: HistoryStoreConfig<T, K>): HistoryStore<T, K> | HistoryStore<T, K> | Factory, die einen Signal-basierten History-Store erzeugt, der mehrere Objekte anhand ihrer id verfolgt. Akzeptiert optionale Aufbewahrungslimits (maxEntries, Standard 100; maxBytes, Standard 512000), einen keySelector sowie eigene Diff-/Patch-Strategien. |
HistoryStore.states | states: Signal<Map<K, T>> | Signal<Map<K, T>> | Computed Signal, das eine Map der aktuellen unveränderlichen Zustands-Snapshots bereitstellt, geschlüsselt nach Objekt-id. |
HistoryStore.registerObject | registerObject(id: K, initialState: T): void | — | Registriert ein verfolgtes Objekt mit seinem Anfangszustand und beginnt für diese id eine neue, leere History-Zeitleiste. |
HistoryStore.registerFromObject | registerFromObject(initialState: T): K | K | Registriert ein verfolgtes Objekt, leitet dessen id aus dem konfigurierten keySelector ab und gibt diese id zurück. Wirft einen Fehler, wenn kein keySelector konfiguriert wurde. |
HistoryStore.commit | commit(id: K, newState: T, options?: HistoryCommitOptions): boolean | boolean | Committet einen neuen Zustands-Snapshot für eine registrierte id, speichert Vorwärts- und Rückwärts-Patches und verwirft alle Redo-Einträge vor dem Zeiger. Gibt false zurück, wenn der neue Zustand keine Änderungen erzeugt. Innerhalb einer offenen Transaktion wird nur der aktuelle Zustand aktualisiert, ohne einen Eintrag zu erzeugen. |
HistoryStore.commitFromObject | commitFromObject(newState: T, options?: HistoryCommitOptions): boolean | boolean | Committet einen neuen Zustand und leitet die id aus dem konfigurierten keySelector ab. Wirft einen Fehler, wenn kein keySelector konfiguriert wurde. |
HistoryStore.undo | undo(id: K): boolean | boolean | Macht einen History-Schritt rückgängig, indem der Rückwärts-Patch des Eintrags angewendet wird. Gibt false zurück, wenn nichts rückgängig zu machen ist. |
HistoryStore.redo | redo(id: K): boolean | boolean | Wendet einen History-Schritt erneut an, indem der Vorwärts-Patch des Eintrags angewendet wird. Gibt false zurück, wenn nichts wiederherzustellen ist. |
HistoryStore.canUndo | canUndo(id: K): boolean | boolean | Gibt zurück, ob undo für die angegebene Objekt-id aktuell möglich ist. |
HistoryStore.canRedo | canRedo(id: K): boolean | boolean | Gibt zurück, ob redo für die angegebene Objekt-id aktuell möglich ist. |
HistoryStore.getState | getState(id: K): T | undefined | T | undefined | Gibt einen Deep Clone des aktuellen Zustands für die angegebene id zurück, oder undefined, wenn die id nicht registriert ist. |
HistoryStore.history | history(id: K): HistoryMetadata | HistoryMetadata | Gibt schreibgeschützte Metadaten zur History des Objekts zurück: den Zeiger, die Anzahl der Einträge, die ungefähre Anzahl vorgehaltener Bytes sowie je Eintrag Label, Zeitstempel und Bytes. |
HistoryStore.beginTransaction | beginTransaction(id: K, label?: string): void | — | Startet eine Transaktion, sodass nachfolgende Commits zu einem einzigen konsolidierten History-Eintrag zusammengefasst werden. Wirft einen Fehler, wenn für die id bereits eine Transaktion offen ist. |
HistoryStore.endTransaction | endTransaction(id: K): boolean | boolean | Beendet die offene Transaktion und committet einen konsolidierten Eintrag vom Zustand zu Transaktionsbeginn bis zum aktuellen Zustand. Gibt false zurück, wenn keine Transaktion offen war oder keine Änderungen vorgenommen wurden. |
HistoryStore.watchForm | watchForm(id: K, form: FormGroup, options?: WatchFormOptions): () => void | () => void | Abonniert die valueChanges einer FormGroup und committet automatisch jede Emission, optional unter Auslassung der ersten. Gibt einen Unsubscribe-Callback zurück. |
HistoryStore.clearHistory | clearHistory(id: K): void | — | Löscht alle History-Einträge für die angegebene id, behält den aktuellen Zustand als neuen Basis-Snapshot und verwirft eine gegebenenfalls offene Transaktion. |
Templates
Noch keine Templates dokumentiert.