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