Skip to content

Latest commit

 

History

History
560 lines (494 loc) · 22.8 KB

presentation-components.api.md

File metadata and controls

560 lines (494 loc) · 22.8 KB

API Report File for "@bentley/presentation-components"

Do not edit this file. It is a report generated by API Extractor.

import { AbstractTreeNodeLoaderWithProvider } from '@bentley/ui-components';
import { ActiveMatchInfo } from '@bentley/ui-components';
import { CategoryDescription } from '@bentley/presentation-common';
import { ColumnDescription } from '@bentley/ui-components';
import { Content } from '@bentley/presentation-common';
import { ControlledTreeProps } from '@bentley/ui-components';
import { DelayLoadedTreeNodeItem } from '@bentley/ui-components';
import { Descriptor } from '@bentley/presentation-common';
import { DescriptorOverrides } from '@bentley/presentation-common';
import { ExtendedHierarchyRequestOptions } from '@bentley/presentation-common';
import { FavoritePropertiesScope } from '@bentley/presentation-frontend';
import { Field } from '@bentley/presentation-common';
import { HighlightableTreeProps } from '@bentley/ui-components';
import { Id64Arg } from '@bentley/bentleyjs-core';
import { IDisposable } from '@bentley/bentleyjs-core';
import { IModelConnection } from '@bentley/imodeljs-frontend';
import { InstanceKey } from '@bentley/presentation-common';
import { IPropertyDataProvider } from '@bentley/ui-components';
import { IPropertyValueRenderer } from '@bentley/ui-components';
import { Item } from '@bentley/presentation-common';
import { ITreeDataProvider } from '@bentley/ui-components';
import { Keys } from '@bentley/presentation-common';
import { KeySet } from '@bentley/presentation-common';
import { Node } from '@bentley/presentation-common';
import { NodeKey } from '@bentley/presentation-common';
import { NodePathElement } from '@bentley/presentation-common';
import { Omit } from '@bentley/presentation-common';
import { Paged } from '@bentley/presentation-common';
import { PagedTreeNodeLoader } from '@bentley/ui-components';
import { PageOptions } from '@bentley/presentation-common';
import { PageOptions as PageOptions_2 } from '@bentley/ui-components';
import { PropertyData } from '@bentley/ui-components';
import { PropertyDataChangeEvent } from '@bentley/ui-components';
import { PropertyDataFiltererBase } from '@bentley/ui-components';
import { PropertyDataFilterResult } from '@bentley/ui-components';
import { PropertyDescription } from '@bentley/ui-abstract';
import { PropertyGridProps } from '@bentley/ui-components';
import { PropertyRecord } from '@bentley/ui-abstract';
import { PropertyValueRendererContext } from '@bentley/ui-components';
import * as React from 'react';
import { RowItem } from '@bentley/ui-components';
import { Ruleset } from '@bentley/presentation-common';
import { RulesetsFactory } from '@bentley/presentation-common';
import { SelectionChangeType } from '@bentley/presentation-frontend';
import { SelectionHandler } from '@bentley/presentation-frontend';
import { SelectionInfo } from '@bentley/presentation-common';
import { SortDirection } from '@bentley/ui-core';
import { TableDataChangeEvent } from '@bentley/ui-components';
import { TableDataProvider } from '@bentley/ui-components';
import { TableProps } from '@bentley/ui-components';
import { TreeEditingParams } from '@bentley/ui-components';
import { TreeEventHandler } from '@bentley/ui-components';
import { TreeModelChanges } from '@bentley/ui-components';
import { TreeModelSource } from '@bentley/ui-components';
import { TreeNodeItem } from '@bentley/ui-components';
import { TreeProps } from '@bentley/ui-components';
import { TreeSelectionModificationEventArgs } from '@bentley/ui-components';
import { TreeSelectionReplacementEventArgs } from '@bentley/ui-components';
import { ViewportProps } from '@bentley/ui-components';

// @public
export interface CacheInvalidationProps {
    content?: boolean;
    descriptor?: boolean;
    descriptorConfiguration?: boolean;
    size?: boolean;
}

// @public (undocumented)
export namespace CacheInvalidationProps {
    const full: () => CacheInvalidationProps;
}

// @internal
export class ContentBuilder {
    static createPropertyDescription(field: Field, props?: PropertyDescriptionCreationProps): PropertyDescription;
    static createPropertyRecord(field: Field, item: Item, props?: NestedContentCreationProps & PropertyDescriptionCreationProps): PropertyRecord | undefined;
}

// @public
export class ContentDataProvider implements IContentDataProvider {
    constructor(props: ContentDataProviderProps);
    // @deprecated
    protected configureContentDescriptor(descriptor: Readonly<Descriptor>): Descriptor;
    get displayType(): string;
    dispose(): void;
    getContent(pageOptions?: PageOptions): Promise<Content | undefined>;
    getContentDescriptor: import("micro-memoize").MicroMemoize.Memoized<() => Promise<Descriptor | undefined>>;
    getContentSetSize(): Promise<number>;
    protected getDescriptorOverrides(): DescriptorOverrides;
    getFieldByPropertyRecord(propertyRecord: PropertyRecord): Promise<Field | undefined>;
    get imodel(): IModelConnection;
    set imodel(imodel: IModelConnection);
    protected invalidateCache(props: CacheInvalidationProps): void;
    // @deprecated
    protected isFieldHidden(_field: Field): boolean;
    get keys(): KeySet;
    set keys(keys: KeySet);
    get pagingSize(): number | undefined;
    set pagingSize(value: number | undefined);
    get rulesetId(): string;
    set rulesetId(value: string);
    get selectionInfo(): SelectionInfo | undefined;
    set selectionInfo(info: SelectionInfo | undefined);
    // @deprecated
    protected shouldConfigureContentDescriptor(): boolean;
    // @deprecated
    protected shouldExcludeFromDescriptor(field: Field): boolean;
    protected shouldRequestContentForEmptyKeyset(): boolean;
}

// @public
export interface ContentDataProviderProps {
    displayType: string;
    // @alpha
    enableContentAutoUpdate?: boolean;
    imodel: IModelConnection;
    pagingSize?: number;
    ruleset: string | Ruleset;
}

// @beta
export interface ControlledTreeFilteringProps {
    // (undocumented)
    activeMatchIndex?: number;
    // (undocumented)
    filter?: string;
    // (undocumented)
    nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
}

// @beta @deprecated
export interface ControlledTreeWithFilteringSupportProps {
    activeMatchIndex?: number;
    filter?: string;
    nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
    onFilterApplied?: (filter: string) => void;
    onMatchesCounted?: (count: number) => void;
    onNodeLoaderChanged?: (nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider> | undefined) => void;
}

// @beta @deprecated
export interface ControlledTreeWithVisibleNodesProps extends Omit<ControlledTreeProps, "visibleNodes"> {
    nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
}

// @public
export class DataProvidersFactory {
    constructor(props?: DataProvidersFactoryProps);
    createSimilarInstancesTableDataProvider(propertiesProvider: IPresentationPropertyDataProvider, record: PropertyRecord, props: Omit<PresentationTableDataProviderProps, "imodel" | "ruleset">): Promise<IPresentationTableDataProvider & {
        description: string;
    }>;
    }

// @public
export interface DataProvidersFactoryProps {
    rulesetsFactory?: RulesetsFactory;
}

// @beta
export const DEFAULT_PROPERTY_GRID_RULESET: Ruleset;

// @beta @deprecated
export function DEPRECATED_controlledTreeWithFilteringSupport<P extends ControlledTreeWithVisibleNodesProps>(TreeComponent: React.FC<P>): React.FC<Pick<P & ControlledTreeWithFilteringSupportProps, "filter" | "nodeLoader" | "onFilterApplied" | "onMatchesCounted" | "onNodeLoaderChanged" | "activeMatchIndex" | Exclude<keyof P, "visibleNodes">>>;

// @beta @deprecated
export function DEPRECATED_controlledTreeWithVisibleNodes<P extends ControlledTreeProps>(TreeComponent: React.FC<P>): React.FC<Pick<P & ControlledTreeWithVisibleNodesProps, "className" | "style" | "selectionMode" | "nodeHighlightingProps" | "nodeLoader" | "treeEvents" | "descriptionsEnabled" | "iconsEnabled" | "treeRenderer" | "spinnerRenderer" | "noDataRenderer" | Exclude<keyof P, "visibleNodes">>>;

// @public @deprecated
export function DEPRECATED_treeWithFilteringSupport<P extends TreeProps>(TreeComponent: React.ComponentType<P>): React.ComponentType<P & TreeWithFilteringSupportProps>;

// @public @deprecated
export function DEPRECATED_treeWithUnifiedSelection<P extends TreeProps>(TreeComponent: React.ComponentClass<P>): React.ForwardRefExoticComponent<React.PropsWithoutRef<P & TreeWithUnifiedSelectionProps> & React.RefAttributes<React.Component<P, any, any>>>;

// @alpha
export class FavoritePropertiesDataFilterer extends PropertyDataFiltererBase {
    constructor(props: FavoritePropertiesDataFiltererProps);
    // (undocumented)
    categoryMatchesFilter(): Promise<PropertyDataFilterResult>;
    get isActive(): boolean;
    set isActive(value: boolean);
    // (undocumented)
    recordMatchesFilter(node: PropertyRecord, parents: PropertyRecord[]): Promise<PropertyDataFilterResult>;
    }

// @alpha
export interface FavoritePropertiesDataFiltererProps {
    favoritesScope: FavoritePropertiesScope;
    isActive?: boolean;
    isFavorite?: (field: Field, imodel: IModelConnection, scope: FavoritePropertiesScope) => boolean;
    source: IPresentationPropertyDataProvider;
}

// @beta
export class FavoritePropertiesDataProvider implements IFavoritePropertiesDataProvider {
    constructor(props?: FavoritePropertiesDataProviderProps);
    getData(imodel: IModelConnection, elementIds: Id64Arg | KeySet): Promise<PropertyData>;
    includeFieldsWithCompositeValues: boolean;
    includeFieldsWithNoValues: boolean;
    }

// @beta (undocumented)
export interface FavoritePropertiesDataProviderProps {
    // @internal (undocumented)
    propertyDataProviderFactory?: (imodel: IModelConnection, ruleset?: Ruleset | string) => PresentationPropertyDataProvider;
    ruleset?: Ruleset | string;
}

// @public
export interface IContentDataProvider extends IPresentationDataProvider {
    readonly displayType: string;
    getContent: (pageOptions?: PageOptions) => Promise<Content | undefined>;
    getContentDescriptor: () => Promise<Descriptor | undefined>;
    getContentSetSize: () => Promise<number>;
    getFieldByPropertyRecord: (propertyRecord: PropertyRecord) => Promise<Field | undefined>;
    keys: KeySet;
    selectionInfo: SelectionInfo | undefined;
}

// @public
export interface IFilteredPresentationTreeDataProvider extends IPresentationTreeDataProvider {
    countFilteringResults(nodePaths: ReadonlyArray<Readonly<NodePathElement>>): number;
    filter: string;
    getActiveMatch(index: number): ActiveMatchInfo | undefined;
    nodeMatchesFilter(node: TreeNodeItem): boolean;
}

// @beta
export class InstanceKeyValueRenderer implements IPropertyValueRenderer {
    // (undocumented)
    canRender(record: PropertyRecord): boolean;
    // (undocumented)
    render(record: PropertyRecord, context?: PropertyValueRendererContext): JSX.Element;
}

// @public
export interface IPresentationDataProvider extends IDisposable {
    readonly imodel: IModelConnection;
    readonly rulesetId: string;
}

// @public
export interface IPresentationLabelsProvider {
    getLabel(key: InstanceKey): Promise<string>;
    getLabels(keys: InstanceKey[]): Promise<string[]>;
    readonly imodel: IModelConnection;
}

// @public
export type IPresentationPropertyDataProvider = IPropertyDataProvider & IContentDataProvider;

// @public
export type IPresentationTableDataProvider = TableDataProvider & IContentDataProvider & {
    getRowKey: (row: RowItem) => InstanceKey;
};

// @public
export interface IPresentationTreeDataProvider extends ITreeDataProvider, IPresentationDataProvider {
    getFilteredNodePaths(filter: string): Promise<NodePathElement[]>;
    getNodeKey(node: TreeNodeItem): NodeKey;
    // @alpha
    loadHierarchy?(): Promise<void>;
}

// @public
export interface IUnifiedSelectionComponent {
    readonly imodel: IModelConnection;
    readonly selectionHandler?: SelectionHandler;
}

// @beta
export enum PresentationComponentsLoggerCategory {
    Content = "presentation-components.Content",
    Hierarchy = "presentation-components.Hierarchy",
    // (undocumented)
    Package = "presentation-components"
}

// @public
export class PresentationLabelsProvider implements IPresentationLabelsProvider {
    constructor(props: PresentationLabelsProviderProps);
    getLabel(key: InstanceKey): Promise<string>;
    getLabels(keys: InstanceKey[]): Promise<string[]>;
    // (undocumented)
    readonly imodel: IModelConnection;
}

// @public
export interface PresentationLabelsProviderProps {
    imodel: IModelConnection;
}

// @public
export class PresentationPropertyDataProvider extends ContentDataProvider implements IPresentationPropertyDataProvider {
    constructor(props: PresentationPropertyDataProviderProps);
    dispose(): void;
    getData(): Promise<PropertyData>;
    protected getDescriptorOverrides(): DescriptorOverrides;
    protected getMemoizedData: import("micro-memoize").MicroMemoize.Memoized<() => Promise<PropertyData>>;
    get includeFieldsWithCompositeValues(): boolean;
    set includeFieldsWithCompositeValues(value: boolean);
    get includeFieldsWithNoValues(): boolean;
    set includeFieldsWithNoValues(value: boolean);
    protected invalidateCache(props: CacheInvalidationProps): void;
    protected isFieldFavorite: (field: Field) => boolean;
    protected isFieldHidden(field: Field): boolean;
    // @beta
    get isNestedPropertyCategoryGroupingEnabled(): boolean;
    set isNestedPropertyCategoryGroupingEnabled(value: boolean);
    // (undocumented)
    onDataChanged: PropertyDataChangeEvent;
    protected shouldConfigureContentDescriptor(): boolean;
    protected sortCategories(categories: CategoryDescription[]): void;
    protected sortFields: (category: CategoryDescription, fields: Field[]) => void;
    }

// @public
export interface PresentationPropertyDataProviderProps {
    // @alpha
    disableFavoritesCategory?: boolean;
    // @alpha
    enableContentAutoUpdate?: boolean;
    imodel: IModelConnection;
    ruleset?: string | Ruleset;
}

// @public
export class PresentationTableDataProvider extends ContentDataProvider implements IPresentationTableDataProvider {
    constructor(props: PresentationTableDataProviderProps);
    get filterExpression(): string | undefined;
    set filterExpression(value: string | undefined);
    getColumns: import("micro-memoize").MicroMemoize.Memoized<() => Promise<ColumnDescription[]>>;
    protected getDescriptorOverrides(): DescriptorOverrides;
    getLoadedRow(rowIndex: number): Readonly<RowItem> | undefined;
    getRow(rowIndex: number): Promise<RowItem>;
    getRowKey(row: RowItem): InstanceKey;
    getRowsCount(): Promise<number>;
    // (undocumented)
    protected invalidateCache(props: CacheInvalidationProps): void;
    // (undocumented)
    onColumnsChanged: TableDataChangeEvent;
    // (undocumented)
    onRowsChanged: TableDataChangeEvent;
    protected shouldConfigureContentDescriptor(): boolean;
    sort(columnIndex: number, sortDirection: SortDirection): Promise<void>;
    get sortColumn(): Promise<ColumnDescription | undefined>;
    get sortColumnKey(): string | undefined;
    get sortDirection(): SortDirection;
    }

// @public
export interface PresentationTableDataProviderProps {
    cachedPagesCount?: number;
    displayType?: string;
    // @alpha
    enableContentAutoUpdate?: boolean;
    imodel: IModelConnection;
    pageSize?: number;
    ruleset: string | Ruleset;
}

// @public
export class PresentationTreeDataProvider implements IPresentationTreeDataProvider, IDisposable {
    constructor(props: PresentationTreeDataProviderProps);
    dispose(): void;
    getFilteredNodePaths: (filter: string) => Promise<NodePathElement[]>;
    getNodeKey(node: TreeNodeItem): NodeKey;
    getNodes(parentNode?: TreeNodeItem, pageOptions?: PageOptions_2): Promise<DelayLoadedTreeNodeItem[]>;
    getNodesCount(parentNode?: TreeNodeItem): Promise<number>;
    get imodel(): IModelConnection;
    // @alpha
    loadHierarchy(): Promise<void>;
    get pagingSize(): number | undefined;
    set pagingSize(value: number | undefined);
    get rulesetId(): string;
    }

// @alpha (undocumented)
export interface PresentationTreeDataProviderDataSourceEntryPoints {
    // (undocumented)
    getFilteredNodePaths: (requestOptions: ExtendedHierarchyRequestOptions<IModelConnection, NodeKey>, filterText: string) => Promise<NodePathElement[]>;
    // (undocumented)
    getNodesAndCount: (requestOptions: Paged<ExtendedHierarchyRequestOptions<IModelConnection, NodeKey>>) => Promise<{
        nodes: Node[];
        count: number;
    }>;
    // (undocumented)
    getNodesCount: (requestOptions: ExtendedHierarchyRequestOptions<IModelConnection, NodeKey>) => Promise<number>;
}

// @public
export interface PresentationTreeDataProviderProps {
    // @beta
    appendChildrenCountForGroupingNodes?: boolean;
    // @alpha
    dataSourceOverrides?: Partial<PresentationTreeDataProviderDataSourceEntryPoints>;
    imodel: IModelConnection;
    pagingSize?: number;
    ruleset: string | Ruleset;
}

// @beta
export interface PresentationTreeNodeLoaderProps extends PresentationTreeDataProviderProps {
    // @internal
    dataProvider?: IPresentationTreeDataProvider;
    // @alpha
    enableHierarchyAutoUpdate?: boolean;
    pagingSize: number;
    // @alpha
    preloadingEnabled?: boolean;
}

// @beta
export interface PropertyDataProviderWithUnifiedSelectionProps {
    dataProvider: IPresentationPropertyDataProvider;
    requestedContentInstancesLimit?: number;
    // @internal (undocumented)
    selectionHandler?: SelectionHandler;
}

// @public @deprecated
export function propertyGridWithUnifiedSelection<P extends PropertyGridProps>(PropertyGridComponent: React.ComponentType<P>): React.ComponentType<P & PropertyGridWithUnifiedSelectionProps>;

// @public @deprecated
export interface PropertyGridWithUnifiedSelectionProps {
    dataProvider: IPresentationPropertyDataProvider;
    requestedContentInstancesLimit?: number;
    // @internal (undocumented)
    selectionHandler?: SelectionHandler;
}

// @public
export function tableWithUnifiedSelection<P extends TableProps>(TableComponent: React.ComponentType<P>): React.ComponentType<P & TableWithUnifiedSelectionProps>;

// @public
export interface TableWithUnifiedSelectionProps {
    dataProvider: IPresentationTableDataProvider;
    // @internal (undocumented)
    selectionHandler?: SelectionHandler;
    selectionLevel?: number;
}

// @public @deprecated
export interface TreeWithFilteringSupportProps {
    activeMatchIndex?: number;
    dataProvider: IPresentationTreeDataProvider;
    filter?: string;
    onFilterApplied?: (filter: string, filteredProvider: IPresentationTreeDataProvider) => void;
    onMatchesCounted?: (count: number) => void;
}

// @public @deprecated
export interface TreeWithUnifiedSelectionProps {
    dataProvider: IPresentationTreeDataProvider;
    onNodesDeselected?: (items: TreeNodeItem[]) => boolean;
    onNodesSelected?: (items: TreeNodeItem[], replace: boolean) => boolean;
    // @internal (undocumented)
    selectionHandler?: SelectionHandler;
}

// @beta
export interface UnifiedSelectionContext {
    addToSelection(keys: Keys, level?: number): void;
    clearSelection(level?: number): void;
    getSelection: UnifiedSelectionState;
    imodel: IModelConnection;
    removeFromSelection(keys: Keys, level?: number): void;
    replaceSelection(keys: Keys, level?: number): void;
    selectionLevel: number;
}

// @beta
export function UnifiedSelectionContextProvider(props: UnifiedSelectionContextProviderProps): React.ReactElement;

// @beta
export interface UnifiedSelectionContextProviderProps {
    children?: React.ReactNode;
    imodel: IModelConnection;
    selectionLevel?: number;
}

// @beta
export type UnifiedSelectionState = (selectionLevel?: number) => Readonly<KeySet>;

// @beta
export class UnifiedSelectionTreeEventHandler extends TreeEventHandler implements IDisposable {
    constructor(params: UnifiedSelectionTreeEventHandlerParams);
    protected createKeysForSelection(nodes: TreeNodeItem[], _selectionType: SelectionChangeType): Keys;
    // (undocumented)
    dispose(): void;
    // (undocumented)
    protected getKeys(nodes: TreeNodeItem[]): Keys;
    // (undocumented)
    protected getNodeKey(node: TreeNodeItem): NodeKey;
    // (undocumented)
    get modelSource(): TreeModelSource;
    // (undocumented)
    onSelectionModified({ modifications }: TreeSelectionModificationEventArgs): import("@bentley/ui-components").Subscription | undefined;
    // (undocumented)
    onSelectionReplaced({ replacements }: TreeSelectionReplacementEventArgs): import("@bentley/ui-components").Subscription | undefined;
    // (undocumented)
    selectNodes(modelChange?: TreeModelChanges): void;
    protected shouldSelectNode(node: TreeNodeItem, selection: Readonly<KeySet>): boolean;
    }

// @beta
export interface UnifiedSelectionTreeEventHandlerParams {
    collapsedChildrenDisposalEnabled?: boolean;
    editingParams?: TreeEditingParams;
    name?: string;
    nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
    // @internal
    selectionHandler?: SelectionHandler;
}

// @beta
export function useControlledTreeFiltering(props: ControlledTreeFilteringProps): {
    nodeHighlightingProps: HighlightableTreeProps | undefined;
    filteredNodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>;
    filteredModelSource: TreeModelSource;
    isFiltering: boolean;
    matchesCount: number | undefined;
};

// @beta
export function usePresentationTreeNodeLoader(props: PresentationTreeNodeLoaderProps): PagedTreeNodeLoader<IPresentationTreeDataProvider>;

// @beta
export function usePropertyDataProviderWithUnifiedSelection(props: PropertyDataProviderWithUnifiedSelectionProps): {
    isOverLimit: boolean;
};

// @public
export function useRulesetRegistration(ruleset: Ruleset): void;

// @beta
export function useUnifiedSelectionContext(): UnifiedSelectionContext | undefined;

// @beta
export function useUnifiedSelectionTreeEventHandler(props: UnifiedSelectionTreeEventHandlerParams): UnifiedSelectionTreeEventHandler;

// @public
export function viewWithUnifiedSelection<P extends ViewportProps>(ViewportComponent: React.ComponentType<P>): React.ComponentType<P & ViewWithUnifiedSelectionProps>;

// @public
export interface ViewWithUnifiedSelectionProps {
    // @internal (undocumented)
    selectionHandler?: ViewportSelectionHandler;
}


// (No @packageDocumentation comment for this package)