Skip to content

DynamicCatalogRendererComponent

component

Renders the value(s) of a dynamic catalog field (schema field carrying a catalog reference).

Those fields store the technical entry name, so the label has to be resolved from the catalog entry’s localizations — the same resolution yuv-dynamic-catalog does for the form element. The entries are fetched and cached by CatalogLabelService (once per catalog, not once per renderer instance — a summary or tile list mounts many rows of the same catalog). Values without a matching entry fall back to the technical value.

Selector: yuv-dynamic-catalog-renderer

Standalone: No

Type: Record<string, unknown> | U

Type: string | undefined

Default Value: undefined

ID of the object type (or secondary object type) the property is rendered for, when known. Some schema attributes — most notably the dynamic catalog a property is bound to — may be overridden per type, and can only be resolved with that context.

Type: string

Required: Yes

Type: T | null

Required: Yes

Type: unknown

Default Value: computed<string>(() => \{ const value = this.value(); if (value === null || value === undefined) return ''; // Catalog fields may be multi-select, in which case the value is an array of technical values. const values = Array.isArray(value) ? value : [value]; const catalogName = this.#catalogName(); // Not catalog backed after all — nothing to resolve against. if (!catalogName) return values.join(', '); // Don't flash the technical value while the entries are on their way. if (this.#catalogLabels.isLoading(catalogName)) return ''; return values.map((val) => this.#catalogLabels.getLabel(catalogName, val) ?? val).join(', '); \})