@itwin/presentation-components
Version:
React components based on iTwin.js Presentation library
134 lines • 5.64 kB
TypeScript
/** @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