Whether the variant dropdown menu is currently open. Toggled by the control's click handler; closed on blur or after a row is picked.
Emitted BEFORE cancel - can be cancelled by setting event.Cancel = true
Emitted BEFORE delete - can be cancelled by setting event.Cancel = true
Emitted BEFORE history view - can be cancelled by setting event.Cancel = true
Emitted BEFORE list management - can be cancelled by setting event.Cancel = true
Emitted BEFORE save - can be cancelled by setting event.Cancel = true
Emitted when cancel is requested (only in standalone mode)
Override ID currently rendered. The picker highlights this entry. May be null when the active form is a class-based
Emitted when a custom toolbar button is clicked
Emitted when delete is confirmed (host app handles actual deletion)
Emitted when edit mode changes (only in standalone mode; FormComponent mode handled internally)
Emitted when favorite toggle is requested
Reference to the parent form component (e.g. BaseFormComponent subclass). When provided, the container derives toolbar state from this reference and handles Save/Cancel/Edit internally by calling its methods.
Emitted when history view is requested
Emitted when list management is requested
Emitted for all navigation actions (the host app maps these to its routing)
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 entity record being displayed/edited
Emitted when save is requested (only in standalone mode)
Emitted when show-changes is requested
Controls visibility of list management dialog
Controls visibility of record changes drawer
Controls visibility of section manager drawer
Controls visibility of tags panel
Number of tags on this record
Persisted tags panel width
Emitted when the user chooses a different form variant from the picker. Carries the selected variant's override ID, or null when the user picks the "Default form" row. The host is responsible for persisting the choice (via FormResolverService.SetSelectedVariant) and reloading the record so the new form mounts.
Variants available for this entity record. When more than one variant is provided, a compact picker appears between the toolbar and the form body letting the user switch which form is rendered. Empty / single-variant lists hide the picker entirely.
Each item is a plain object — we don't take a hard dep on the resolver's row type from here (this is a Generic component; the Explorer-level single-record component shapes the resolver row into this minimal form).
Number of tracked record change versions for this record
StaticɵdirStaticɵfacLabel for the currently-selected variant (or "Default form" if none).
Whether the in-form toolbar renders at all. Driven by the form's
Config.Toolbar: an explicit null (the dialog/slide-in default) hides
the entire toolbar so the surrounding chrome can own Save/Cancel/title.
Any other value (undefined or a partial config) keeps the toolbar.
Effective toolbar config: the bound ToolbarConfig (or the default)
with the form's Config.Toolbar partial merged on top. This is the
no-regeneration bridge — generated templates never bind [Config],
yet per-instance toolbar tweaks still take effect through fc.Config.
Effective variants — prefer the form component's list (set by the host
resolver) when present, fall back to the directly-bound @Input. This
means generated form templates don't need to bind [Variants] explicitly;
the host populates instance.Variants post-construction and the
container reads it through this accessor.
Whether the current record has IS-A related items to display in the side panel
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
Builds section info array from projected panels for the section manager drawer
Current section order from the form component
Whether to show the variant picker at all. Hidden when the entity has zero or one applicable variant — there's nothing to switch between.
A callback method that is invoked immediately after Angular has completed initialization of all of the directive's content. It is invoked only once when the directive is instantiated.
A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.
Cancel: delegate to FormComponent if available, otherwise re-emit.
Delete, Favorite, History, Lists, ShowChanges: always re-emit for host app.
Edit mode change: delegate to FormComponent if available, otherwise re-emit.
Fired when the list-management dialog applies changes. Surfaces the outcome — especially silently-skipped duplicates and failures, which users otherwise misread as "everything was added".
Navigation events are always re-emitted for the host app to handle.
Handles a restore request from the record-changes panel.
The event payload now carries the FULL snapshot the user opted to apply
(the panel computes current-vs-snapshot diffs using the source change's
FullRecordJSON, and the user can deselect individual fields). Setting
the restore context before Save() causes the data provider to write the
resulting RecordChange row with Source='Restore', RestoredFromID,
and RestoreReason populated — building the auditable lineage chain.
Save: delegate to FormComponent if available, otherwise re-emit.
Handles live tag count updates from the tags panel component.
User picked an item from the variant menu. If the host installed a
handler via instance.OnVariantChanged, call it; otherwise emit the
VariantChange event for standalone consumers.
Compact subtitle: scope + status, e.g. "User · Active".
Top-level container that composes the toolbar, content slots, and sticky behavior.
Two usage modes:
With FormComponent (generated forms): Pass
[FormComponent]="this"and the container derives all state from the BaseFormComponent instance. Save/Cancel/Edit are handled internally by calling FormComponent methods.Standalone: Pass individual
Input
properties and handle all
Output
events.
Example: Generated form usage: