Whether to show a "Restore" button on each historical version row. Default false.
Map of Key → selected, used by the conditional chip system.
Conditional filter pills derived from loaded data. Always includes 'All' implicitly. Other pills only render when at least one matching change exists. Overflows into a popover when the count exceeds 2.
Highlighted change ID for the lineage-jump indicator (transient).
Whether the restore commit is in progress (between confirmation and host response).
If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.
The change record currently selected for restore preview, or null.
Visibility of the embedded restore preview slide-in.
Emitted when the user confirms a restore in the preview panel.
The host is responsible for applying the snapshot to the record and
saving with record.SetRestoreContext() set first.
Single selected type filter (legacy, kept for backwards compat).
Whether the overflow popover is open.
StaticɵdirStaticɵfacWhether any conditional pills are actually visible at all.
Returns true when no conditional pills are selected (i.e. "All" mode).
Returns either the default Metadata provider or the one specified in the Provider property, if it was specified
Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified
Returns either the default RunReport provider or the one specified in the Provider property, if it was specified
Returns either the default RunView provider or the one specified in the Provider property, if it was specified
Number of currently selected conditional pills (for the popover trigger label).
True when the conditional chips should collapse into an overflow popover because there are more than the threshold.
Badge text for the row's primary type tag. For restore rows we override
the underlying Type='Update' and show "Restore" instead — matches the
mockup's intent of treating restore as a first-class operation in the
timeline rather than a flavor of update.
Returns the source change for a given restored row, if found in the currently loaded changes. Returns null when the source isn't loaded (e.g., it's been pruned from history) or when this row isn't a restore.
Optional restore reason — pulled from the dynamic RestoreReason
column added by the lineage migration. Returns null when not present
or not a restore row.
True when this change is the most recent in the loaded history.
viewData is sorted DESC by ChangedAt, so the most recent is index 0.
Restoring to the most recent version is a no-op, so the timeline hides
the Restore button on this row.
True when the row was produced by a restore operation (either the
Source is 'Restore' OR RestoredFromID is populated).
Click handler for the lineage chip — scrolls/highlights the source change row in the timeline. Auto-clears after a few seconds.
A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.
A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.
Called when the user dismisses the restore preview without confirming.
Called when the user confirms the restore in the embedded panel. Translates the panel's RestoreCommitEvent into the broader-shape RestoreVersionEvent the host is wired to handle.
Opens the embedded restore preview panel for a given change record. The panel computes a full-record diff (current vs the change's FullRecordJSON snapshot) — this is the semantic-correctness fix: we restore TO the state at that point in time, not just undo the one delta the user clicked.
Reloads the record changes list from the database. Called by the parent container after a save completes while the drawer is open.
Toggles the "All" pill — clears every conditional selection.
Toggles a conditional pill on/off.
Slide-out timeline of all changes to a single record. Hosts the reusable RestorePreviewPanelComponent for the actual restore confirmation flow, and exposes a
RestoreRequestedevent the host can act on to persist the restore.Example