UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

125 lines 6.01 kB
/** @packageDocumentation * @module InstancesFilter */ import { PropertyDescription } from "@itwin/appui-abstract"; import { PropertyFilterBuilderRuleValueRendererProps } from "@itwin/components-react"; import { IModelConnection } from "@itwin/core-frontend"; import { ClassId, ClassInfo, Descriptor, InstanceFilterDefinition, Keys, PropertiesField } from "@itwin/presentation-common"; import { WithConstraints } from "../common/ContentBuilder.js"; import { PresentationInstanceFilter, PresentationInstanceFilterConditionGroup } from "./PresentationInstanceFilter.js"; /** * Function that checks if supplied [[PresentationInstanceFilter]] is [[PresentationInstanceFilterConditionGroup]]. * @beta * @deprecated in 5.0. Use `PresentationInstanceFilter.isConditionGroup` instead. */ export declare function isPresentationInstanceFilterConditionGroup(filter: PresentationInstanceFilter): filter is PresentationInstanceFilterConditionGroup; /** * Converts [[PresentationInstanceFilter]] into [InstanceFilterDefinition]($presentation-common) that can be passed * to [PresentationManager]($presentation-frontend) through request options in order to filter results. * @beta * @deprecated in 5.0. Use `createInstanceFilterDefinition` instead. */ export declare function convertToInstanceFilterDefinition(filter: PresentationInstanceFilter, imodel: IModelConnection): Promise<InstanceFilterDefinition>; /** * Data structure that stores information about filter built by [[PresentationInstanceFilterDialog]]. * @public */ export interface PresentationInstanceFilterInfo { /** Instance filter. */ filter: PresentationInstanceFilter | undefined; /** Classes of the properties used in filter. */ usedClasses: ClassInfo[]; } /** * Data structure that contains information about property used for building filter. * @public */ export interface PresentationInstanceFilterPropertyInfo { /** Content descriptor field that represents this property. */ field: PropertiesField; /** Property description */ propertyDescription: WithConstraints<PropertyDescription>; /** Ids of the classes where this property is defined. */ sourceClassIds: ClassId[]; /** * Id of the class where this property is defined. * @deprecated in 5.8. Use [[sourceClassIds]] instead. */ sourceClassId: ClassId; /** Name of the class that was used to access this property. */ className: string; /** Label of related property category. */ categoryLabel?: string; } /** * Props for [[useInstanceFilterPropertyInfos]] hook. * @public */ export interface UseInstanceFilterPropertyInfosProps { /** Descriptor to pull properties from. */ descriptor: Descriptor; } /** * Custom hook that collects properties from descriptor for filter building. * @public */ export declare function useInstanceFilterPropertyInfos({ descriptor }: UseInstanceFilterPropertyInfosProps): { propertyInfos: PresentationInstanceFilterPropertyInfo[]; propertyRenderer: (name: string) => import("react/jsx-runtime.js").JSX.Element; }; /** * Props for [[PresentationFilterBuilderValueRenderer]]. * @public */ export interface PresentationFilterBuilderValueRendererProps extends PropertyFilterBuilderRuleValueRendererProps { /** iModel used to pull data from. */ imodel: IModelConnection; /** Descriptor used to get properties for filter builder. */ descriptor: Descriptor; /** Keys used to create the descriptor. */ descriptorInputKeys?: Keys; /** Currently Selected classes. Improves filter property value list relevence. If not provided, the filter may include broader, less relevant options.*/ selectedClasses?: ClassInfo[]; } /** * Custom renderer of the filter rule value input. It extends default value input functionality: * - For `IsEqual` and `IsNotEqual` operators it renders a selector with unique property values. Unique values are collected from * the instances described by the descriptor ([[PresentationFilterBuilderValueRendererProps.descriptor]] and [[PresentationFilterBuilderValueRendererProps.descriptorInputKeys]]). * - For kind of quantity properties it renders input with units support. * * @public */ export declare function PresentationFilterBuilderValueRenderer({ imodel, descriptor, descriptorInputKeys, selectedClasses, ...props }: PresentationFilterBuilderValueRendererProps): import("react/jsx-runtime.js").JSX.Element; /** * Props for [[PresentationInstanceFilterBuilder]] component. * @public */ export interface PresentationInstanceFilterBuilderProps { /** iModel connection to pull data from. */ imodel: IModelConnection; /** Descriptor containing properties and classes that should be available for building filter. */ descriptor: Descriptor; /** Callback that is invoked when filter changes. */ onInstanceFilterChanged: (filter?: PresentationInstanceFilterInfo) => void; /** * Specifies how deep rule groups can be nested. * @deprecated in 5.0. The component doesn't support multi-level nesting anymore. */ ruleGroupDepthLimit?: number; /** Initial filter that will be show when component is mounted. */ initialFilter?: PresentationInstanceFilterInfo; } /** * Component for building complex instance filters for filtering content and nodes produced * by [PresentationManager]($presentation-frontend). * * @public */ export declare function PresentationInstanceFilterBuilder(props: PresentationInstanceFilterBuilderProps): import("react/jsx-runtime.js").JSX.Element; /** * Creates [InstanceFilterDefinition]($presentation-common) from [[PresentationInstanceFilterInfo]]. Created definition * can be passed to [PresentationManager]($presentation-frontend) through request options in order to filter results. * @public */ export declare function createInstanceFilterDefinition(info: PresentationInstanceFilterInfo, imodel: IModelConnection): Promise<InstanceFilterDefinition>; //# sourceMappingURL=PresentationFilterBuilder.d.ts.map