UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

134 lines 5.64 kB
/** @packageDocumentation * @module PropertyGrid */ import "../common/DisposePolyfill.js"; import { PropertyRecord } from "@itwin/appui-abstract"; import { IPropertyDataProvider, PropertyData, PropertyDataChangeEvent } from "@itwin/components-react"; import { IModelConnection } from "@itwin/core-frontend"; import { CategoryDescription, DescriptorOverrides, Field, InstanceKey, Ruleset } from "@itwin/presentation-common"; import { CacheInvalidationProps, ContentDataProvider, IContentDataProvider } from "../common/ContentDataProvider.js"; import { DiagnosticsProps } from "../common/Diagnostics.js"; /** * Default presentation ruleset used by [[PresentationPropertyDataProvider]]. The ruleset just gets properties * of the selected elements. * * @public */ export declare const DEFAULT_PROPERTY_GRID_RULESET: Ruleset; /** * Interface for presentation rules-driven property data provider. * @public */ export type IPresentationPropertyDataProvider = IPropertyDataProvider & IContentDataProvider; /** * Properties for creating a [[PresentationPropertyDataProvider]] instance. * @public */ export interface PresentationPropertyDataProviderProps extends DiagnosticsProps { /** IModelConnection to use for requesting property data. */ imodel: IModelConnection; /** * Id of the ruleset to use when requesting properties or a ruleset itself. If not * set, default presentation rules are used which return content for the selected elements. */ ruleset?: string | Ruleset; /** * If true, additional 'favorites' category is not created. */ disableFavoritesCategory?: boolean; } /** * Presentation Rules-driven property data provider implementation. * @public */ export declare class PresentationPropertyDataProvider extends ContentDataProvider implements IPresentationPropertyDataProvider { #private; onDataChanged: PropertyDataChangeEvent; private _includeFieldsWithNoValues; private _includeFieldsWithCompositeValues; private _isNestedPropertyCategoryGroupingEnabled; private _onFavoritesChangedRemoveListener?; private _shouldCreateFavoritesCategory; /** * Constructor */ constructor(props: PresentationPropertyDataProviderProps); /** * Dispose the presentation property data provider. */ [Symbol.dispose](): void; /** @deprecated in 5.7. Use `[Symbol.dispose]` instead. */ dispose(): void; /** * Invalidates cached content and clears categorized data. */ protected invalidateCache(props: CacheInvalidationProps): void; /** * Provides content configuration for the property grid */ protected getDescriptorOverrides(): Promise<DescriptorOverrides>; /** * Hides the computed display label field from the list of properties */ protected isFieldHidden(field: Field): boolean; /** * Should fields with no values be included in the property list. No value means: * - For *primitive* fields: `null`, `undefined`, `""` (empty string) * - For *array* fields: `[]` (empty array) * - For *struct* fields: `{}` (object with no members) * * @deprecated in 3.x. Use [FilteringPropertyDataProvider]($components-react) and [IPropertyDataFilterer]($components-react) APIs for filtering-out properties. */ get includeFieldsWithNoValues(): boolean; set includeFieldsWithNoValues(value: boolean); /** * Should fields with composite values be included in the property list. * Fields with composite values: * - *array* fields. * - *struct* fields. * * @deprecated in 3.x. Use [FilteringPropertyDataProvider]($components-react) and [IPropertyDataFilterer]($components-react) APIs for filtering-out properties. */ get includeFieldsWithCompositeValues(): boolean; set includeFieldsWithCompositeValues(value: boolean); /** * Is nested property categories enabled. Defaults to `true`. */ get isNestedPropertyCategoryGroupingEnabled(): boolean; set isNestedPropertyCategoryGroupingEnabled(value: boolean); /** * Should the specified field be included in the favorites category. * @deprecated in 5.2. Use `isFieldFavoriteAsync` instead. */ protected isFieldFavorite(field: Field): boolean; /** Should the specified field be included in the favorites category. */ protected isFieldFavoriteAsync(field: Field): Promise<boolean>; /** * Sorts the specified list of categories by priority. May be overridden * to supply a different sorting algorithm. */ protected sortCategories(categories: CategoryDescription[]): void; /** * Sorts the specified list of fields by priority. May be overridden to supply a different sorting algorithm. * @deprecated in 5.2. Use `sortFieldsAsync` instead. */ protected sortFields(category: CategoryDescription, fields: Field[]): void; /** * Sorts the specified list of fields by priority. May be overridden to supply a different sorting algorithm. */ protected sortFieldsAsync(category: CategoryDescription, fields: Field[]): Promise<void>; /** * Returns property data. */ protected getMemoizedData: import("micro-memoize").Memoized<() => Promise<PropertyData>>; /** * Returns property data. */ getData(): Promise<PropertyData>; /** * Get keys of instances which were used to create given [PropertyRecord]($appui-abstract). */ getPropertyRecordInstanceKeys(record: PropertyRecord): Promise<InstanceKey[]>; private setupFavoritePropertiesListener; } //# sourceMappingURL=DataProvider.d.ts.map