UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

40 lines 2.38 kB
/** @packageDocumentation * @module InstancesFilter */ import "./InstanceFilterBuilder.scss"; import { PropertyFilterBuilderRendererProps } from "@itwin/components-react"; import { IModelConnection } from "@itwin/core-frontend"; import { ClassInfo, Descriptor, Keys } from "@itwin/presentation-common"; /** * Props for [[InstanceFilterBuilder]] component. * @internal */ export interface InstanceFilterBuilderProps extends PropertyFilterBuilderRendererProps { /** Currently selected classes. */ selectedClasses: ClassInfo[]; /** List of all available classes. */ classes: ClassInfo[]; /** Callback that is invoked when selected classes changes. */ onSelectedClassesChanged: (classIds: string[]) => void; /** iModel connection that will be used for getting [[navigationPropertyEditorContext]] */ imodel: IModelConnection; /** [Descriptor]($presentation-common) that will be used for getting [[navigationPropertyEditorContext]]. */ descriptor: Descriptor; /** [Keys]($presentation-common) that will be passed through to [[FilterBuilderValueRenderer]] */ descriptorInputKeys?: Keys; } /** * Component for building complex instance filters based on instance properties. In addition to filter builder component * it renders selector for classes that can be used to filter out available properties in filter rules. * @internal */ export declare function InstanceFilterBuilder(props: InstanceFilterBuilderProps): import("react/jsx-runtime").JSX.Element; /** * Custom hook that extracts properties and classes from [Descriptor]($presentation-common) and creates props that can be used by [[InstanceFilterBuilder]] component. * * This hook also makes sure that when classes are selected available properties list is updated to contain only properties found on selected classes and vice versa - * when property is selected in one of the rules selected classes list is updated to contain only classes that has access to that property. * @internal */ export declare function usePresentationInstanceFilteringProps(descriptor: Descriptor, imodel: IModelConnection, initialActiveClasses?: ClassInfo[]): Required<Pick<InstanceFilterBuilderProps, "properties" | "classes" | "selectedClasses" | "onSelectedClassesChanged" | "propertyRenderer" | "onRulePropertySelected" | "isDisabled">>; //# sourceMappingURL=InstanceFilterBuilder.d.ts.map