OptionalallowWhether drag-and-drop section reordering is allowed. Read by panels to show/hide drag handles.
OptionalcollapsibleWhether section headers may collapse/expand. When false, panels render always-expanded with no toggle chevron. Read by collapsible panels. Undefined / true means collapsible (the default).
OptionalenableWhether in-form record (FK) links are interactive. When false, FK values render as plain text instead of clickable links — used by dialog/slide-in surfaces so a modal context doesn't navigate the user away. Undefined / true means links are live (the default).
OptionalhiddenOptionalsectionCurrent search filter string for highlighting/filtering sections and fields
OptionalshowWhether to show fields that have empty values in read-only mode
OptionalshowSection-visibility rules, propagated from EntityFormConfig. Read by
every collapsible panel — including slot-injected BaseFormPanels — so
per-instance show/hide applies uniformly across generated, custom, and
injected sections. showRelatedEntities === false hides related-entity
panels; hiddenSectionKeys / visibleSectionKeys (allow-list) target
specific section keys.
OptionalshowWhen true, all fields show their validation errors regardless of touched state. Set to true after a failed save attempt; reset on successful save or cancel.
OptionalvalidationValidation errors from the most recent full-record Validate() call.
Fields filter by ValidationErrorInfo.Source === FieldName to find their errors.
OptionalvalidationIncrements every time the form publishes a fresh set of validationErrors (each failed save).
A field compares it with the revision current when the user last edited it: an edit made AFTER
the failure means the user is addressing the error, so the field goes back to its own live
validation; an edit made BEFORE it must not hide an error the save just reported — which is what
happened to a server-side ValidateAsync() refusal on the very field the user had just typed in.
Optionalvisible
Context object passed from the form to all child components (panels, fields). Eliminates the need for many individual
Input
properties.
Property names use camelCase to maintain structural compatibility with BaseFormContext from
@memberjunction/ng-base-forms. This allows BaseFormComponent.formContext to be passed directly to ng-forms components.