import type { UmbVariantId } from '../../variant/variant-id.class.js'; import type { UmbPropertyValueData } from '../types.js'; import type { UmbContext } from '../../../../libs/class-api/index.js'; import type { Observable } from '../../../../external/rxjs/index.js'; import type { UmbEntityUnique } from '../../entity/index.js'; /** * A property dataset context, represents the data of a set of properties. * This can take form as many, so to list a few: * - A specific variant of content. * - Content that does not vary. * - A block. * - A DataType configuration. * - A property editor that hosts a set of properties. * * The base type of this holds a Name and some Properties. * Some might be enriches with Variant Info, like culture and segment. * Others might have saved publishing status. * Also setting the name is an additional feature. */ export interface UmbPropertyDatasetContext extends UmbContext { getEntityType(): string; getUnique(): UmbEntityUnique | undefined; getVariantId: () => UmbVariantId; getName(): string | undefined; readonly name: Observable; getReadOnly(): boolean; readonly readOnly: Observable; readonly properties: Observable | undefined>; getProperties(): Promise | undefined>; propertyVariantId?: (propertyAlias: string) => Promise>; propertyValueByAlias(propertyAlias: string): Promise | undefined>; setPropertyValue(propertyAlias: string, value: unknown): void; }