Member Junction
    Preparing search index...

    Class BaseFormPanel<TRecord>Abstract

    Abstract base for every dynamically-injectable form panel.

    Subclasses are standalone Angular components decorated with @RegisterClass(BaseFormPanel, { metadata: { entity, slot, sortKey? } }). At runtime, <mj-form-panel-slot> discovers matching registrations via ClassFactory.GetAllRegistrationsByMetadata, instantiates each via ViewContainerRef.createComponent, and wires Record + FormComponent + FormContext into the inputs.

    Lifecycle hooks: standard Angular ngOnInit / ngOnDestroy work as usual. Record is guaranteed to be set before the first change-detection pass.

    Optional validate() returns a synchronous validation result; the parent BaseFormComponent.Save() path will surface it via the existing validation pipeline when called. Panels that don't validate anything beyond what the record itself does can leave this method off.

    Type Parameters

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    FormComponent: BaseFormComponent

    The host form component (use for EditMode, dirty notifications, etc). Set by the slot host.

    FormContext?: FormContext

    Optional form context — same shape the collapsible-panel chrome expects. Set by the slot host.

    Record: TRecord

    The entity record being edited. Set by the slot host before view init.

    Accessors

    • get EditMode(): boolean

      Convenience getter for read-only / edit-mode rendering. Falls back to false when the panel is shown outside a BaseFormComponent host (e.g., a dashboard quick-edit dialog reusing the same panel — see the "composable panel" docs).

      Returns boolean

    Methods