/** @packageDocumentation * @module PropertyGrid */ import { immerable } from "immer"; import { PropertyRecord } from "@bentley/ui-abstract"; import { PropertyCategory } from "../../PropertyDataProvider"; /** * Types of FlatGridItems for differentiating what property FlatGridItem is wrapping. * Category for PropertyCategory * (Primitive, Array, Struct) for PropertyRecord with valueFormats: (Primitive, Array, Struct) * @beta */ export declare enum FlatGridItemType { Category = 0, Primitive = 1, Array = 2, Struct = 3 } /** * Type which extracts FlatGridItemTypes relevant for working with CategorizedProperties * @beta */ export declare type CategorizedPropertyTypes = FlatGridItemType.Array | FlatGridItemType.Primitive | FlatGridItemType.Struct; /** * Base mutable data structure defining common methods and properties for both CategorizedProperties and GridCategoryItems * @beta */ export interface IMutableFlatPropertyGridItem { readonly type: FlatGridItemType; readonly key: string; readonly selectionKey: string; readonly parentSelectionKey: string | undefined; readonly parentCategorySelectionKey: string | undefined; readonly depth: number; readonly label: string; lastInNumberOfCategories: number; isLastInRootCategory: boolean; isExpanded: boolean; getDescendantsAndSelf(): IMutableFlatGridItem[]; getVisibleDescendantsAndSelf(): IMutableFlatGridItem[]; getChildren(): IMutableFlatGridItem[]; getLastVisibleDescendantOrSelf(): IMutableFlatGridItem; } /** * Base class for all FlatPropertyGrid items * @beta */ export declare abstract class MutableFlatPropertyGridItem implements IMutableFlatPropertyGridItem { private _depth; private _parentSelectionKey; private _parentCategorySelectionKey; [immerable]: boolean; readonly key: string; protected _isExpanded: boolean; protected _lastInNumberOfCategories: number; protected _isLastInRootCategory: boolean; constructor(_depth: number, _parentSelectionKey: string | undefined, _parentCategorySelectionKey: string | undefined); abstract type: FlatGridItemType; abstract label: string; abstract selectionKey: string; get depth(): number; get parentSelectionKey(): string | undefined; get parentCategorySelectionKey(): string | undefined; get isExpanded(): boolean; set isExpanded(value: boolean); abstract getChildren(): IMutableFlatGridItem[]; abstract getSelf(): IMutableFlatGridItem; protected getDescendants(): IMutableFlatGridItem[]; /** * Gets a flat list of all FlatGridItems beneath this flat grid item including itself in depth first visiting order. */ getDescendantsAndSelf(): IMutableFlatGridItem[]; /** * Gets a flat list of visible FlatGridItems beneath this flat grid item. */ getVisibleDescendants(): IMutableFlatGridItem[]; /** * Gets a flat list of visible FlatGridItems beneath this flat grid item and itself in depth first visiting order. */ getVisibleDescendantsAndSelf(): IMutableFlatGridItem[]; /** * @returns self if item is not expanded, last visible descendant of this item otherwise. */ getLastVisibleDescendantOrSelf(): IMutableFlatGridItem; /** * Sets lastInNumberOfCategories value and sends it down to this items last child * @internal */ get lastInNumberOfCategories(): number; set lastInNumberOfCategories(value: number); /** * Gets and sets isLastInRootCategory value and sends it down to this items last child * @internal */ get isLastInRootCategory(): boolean; set isLastInRootCategory(value: boolean); } /** * Data structure which describes methods and properties to be held by Mutable GridCategoryItems * @beta */ export interface IMutableGridCategoryItem extends IMutableFlatPropertyGridItem { type: FlatGridItemType.Category; name: string; derivedCategory: PropertyCategory; isRootCategory: boolean; getChildCategories(): IMutableGridCategoryItem[]; getDescendantCategoriesAndSelf(): IMutableGridCategoryItem[]; } /** * Data structure which describes methods and properties to be held by Mutable CategorizedPropertyItems * @beta */ export interface IMutableCategorizedPropertyItem extends IMutableFlatPropertyGridItem { readonly type: CategorizedPropertyTypes; readonly derivedRecord: PropertyRecord; readonly parentCategorySelectionKey: string; readonly parentSelectionKey: string; getChildren(): IMutableCategorizedPropertyItem[]; } /** * Type which describes mutable GridCategoryItem or CategorizedProperty * @beta */ export declare type IMutableFlatGridItem = IMutableCategorizedPropertyItem | IMutableGridCategoryItem; /** * Base class for all Mutable CategorizedProperties * @beta */ export declare abstract class MutableCategorizedProperty extends MutableFlatPropertyGridItem implements Partial { private _derivedRecord; private _selectionKey; constructor(type: CategorizedPropertyTypes, record: PropertyRecord, parentSelectionKey: string, parentCategorySelectionKey: string, depth: number, overrideName?: string, overrideDisplayLabel?: string); abstract type: CategorizedPropertyTypes; abstract getChildren(): IMutableCategorizedPropertyItem[]; /** * Maps PropertyRecord valueFormat to FlatGridItemType * @param valueType valueFormat to map * @returns mapped FlatGridItemType */ private valueTypeToFlatGridType; /** * Make new property description with overriden fields. * @param propertyDescription property description to override. * @param overrideName property description name to override. * @param overrideDisplay property description display name to override. */ private makeOverridenProperty; /** * Gets derived property record that has it's property description field overriden */ private makeDerivedRecord; getSelf(): IMutableCategorizedPropertyItem; get parentCategorySelectionKey(): string; get parentSelectionKey(): string; /** * Unique selection key made of parent selectionKey and this property name. */ get selectionKey(): string; get label(): string; /** * Record with overriden property description. */ get derivedRecord(): PropertyRecord; } //# sourceMappingURL=MutableFlatGridItem.d.ts.map