ObjectMetadataSectionComponent
Component Metadata
Section titled “Component Metadata”Selector: yuv-object-metadata-section
Standalone: No
Inputs
Section titled “Inputs”elementExtensions
Section titled “elementExtensions”Type: IObjectFormElementExtension[]
Default Value: []
expandedInput
Section titled “expandedInput”Type: boolean
Default Value: false, \{ alias: 'expanded' \}
readonly
Section titled “readonly”Type: boolean
section
Section titled “section”Type: ObjectMetadataSectionInput
Required: Yes
skipExpand
Section titled “skipExpand”Type: boolean
When true, the section’s expand/collapse feature is removed: the content is always visible, cannot be collapsed, and the accordion toggle (arrow) is hidden.
skipTitle
Section titled “skipTitle”Type: boolean
When true, the section header (title, icon and toggle) is not rendered while the content region is still shown. Typically combined with skipExpand to display a title-less, always-open section.
Outputs
Section titled “Outputs”statusChanged
Section titled “statusChanged”Type: FormStatusChangedEvent
Properties
Section titled “Properties”animate
Section titled “animate”Type: unknown
Default Value: signal(false)
Gate for the reveal/collapse transition. Stays false for the first render so a section that mounts already expanded (auto-expanded first section or skipExpand) appears instantly without a slide. Enabled after the initial render so that only subsequent user-driven toggles animate.
Type: unknown
Default Value: signal(false)
customStatus
Section titled “customStatus”Type: unknown
Default Value: signal<FormStatusChangedEvent | undefined>(undefined)
Last status emitted by a custom renderer. Used to drive the host dirty/invalid classes when the default yuv-object-form (and thus objectForm()) is absent.
customTemplate
Section titled “customTemplate”Type: unknown
Default Value: computed(() => this.#sotRenderers.getSotTemplate(this.section().id, this.section().situation ?? Situation.EDIT) )
A custom SOT renderer registered for this section’s SOT id, or undefined when the default schema-driven form should be used.
expanded
Section titled “expanded”Type: unknown
Default Value: linkedSignal(this.expandedInput)
formOptions
Section titled “formOptions”Type: unknown
Default Value: linkedSignal<ObjectMetadataSectionInput, ObjectFormOptions | undefined>(\{ source: this.section, computation: () => undefined \})
formStatus
Section titled “formStatus”Type: unknown
Default Value: signal<FormStatusChangedEvent | undefined>(undefined)
Settled status of the default yuv-object-form, captured from its statusChanged output. The host classes read this signal instead of the live form.invalid/ form.dirty for two reasons:* it is only updated once the form has emitted a settled status (after the model is built and its values are patched), so the transient window where required controls are momentarily invalid never reaches the DOM (no red flash);* a signal value is stable within a change-detection cycle, so expanding a section mid-cycle no longer throws NG0100 (removing the consumer-side “defer expand by a tick” workaround).
isExpanded
Section titled “isExpanded”Type: unknown
Default Value: computed(() => !!this.skipExpand() || this.expanded())
Effective expanded state. When skipExpand is set the section is always visible and cannot be collapsed, so it is treated as permanently expanded.
objectForm
Section titled “objectForm”Type: unknown
Default Value: viewChild<ObjectFormComponent>(ObjectFormComponent)
renderCustom
Section titled “renderCustom”Type: unknown
Default Value: computed(() => !!this.customTemplate() && this.#hasExpanded())
showDirty
Section titled “showDirty”Type: unknown
Default Value: computed(() => !!this.#status()?.dirty)
showInvalid
Section titled “showInvalid”Type: unknown
Default Value: computed(() => \{ const status = this.#status(); return !!status?.invalid && !!status?.dirty; \})
Reflect the invalid styling only once the form has been edited (dirty). This suppresses the load transient and follows the convention of not surfacing errors before the user interacts. A form that is genuinely invalid after user interaction still shows the red border/outline.
sotContext
Section titled “sotContext”Type: unknown
Default Value: computed<SotRendererContext>(() => \{ const section = this.section(); const fo = this.formOptions(); return \{ sot: section.id, situation: section.situation ?? Situation.EDIT, readonly: !!this.readonly(), formModel: fo?.formModel, data: fo?.data ?? section.data ?? \{\}, setStatus: this.#setCustomStatus, command$: this.#commandSubject.asObservable() \}; \})
Methods
Section titled “Methods”onFormStatusChanged
Section titled “onFormStatusChanged”Capture the default form’s settled status, then re-emit it to consumers.
onFormStatusChanged(evt: FormStatusChangedEvent): voidArguments
Section titled “Arguments”| Name | Type | Description |
|---|---|---|
| evt | FormStatusChangedEvent |
resetForm
Section titled “resetForm”resetForm(): voidsetFormPristine
Section titled “setFormPristine”setFormPristine(): voidtoggle
Section titled “toggle”toggle(): void