UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

68 lines 3.61 kB
/** @packageDocumentation * @module InstancesFilter */ import { PrimitiveValue } from "@itwin/appui-abstract"; import { PropertyFilter, PropertyFilterRuleGroupOperator, PropertyFilterRuleOperator } from "@itwin/components-react"; import { GenericInstanceFilter } from "@itwin/core-common"; import { ClassInfo, Descriptor, PropertiesField } from "@itwin/presentation-common"; /** * Type that describes instance filter based on [Descriptor]($presentation-common) fields. It can be * one filter condition or group of filter conditions joined by logical operator. * @public */ export type PresentationInstanceFilter = PresentationInstanceFilterConditionGroup | PresentationInstanceFilterCondition; /** * Data structure that describes group of filter condition joined by logical operator. * @public */ export interface PresentationInstanceFilterConditionGroup { /** Operator that should be used to join conditions. */ operator: `${PropertyFilterRuleGroupOperator}`; /** Conditions in this group. */ conditions: PresentationInstanceFilter[]; } /** * Data structure that describes single filter condition. * @public */ export interface PresentationInstanceFilterCondition { /** [PropertiesField]($presentation-common) that contains property used in this condition. */ field: PropertiesField; /** Operator that should be used to compare property value. */ operator: `${PropertyFilterRuleOperator}`; /** Value that property should be compared to. */ value?: PrimitiveValue; } /** @public */ export declare namespace PresentationInstanceFilter { /** * Converts filter built by [usePropertyFilterBuilder]($components-react) into presentation specific format. * @throws if presentation data cannot be found for properties used in `filter`. */ function fromComponentsPropertyFilter(descriptor: Descriptor, filter: PropertyFilter): PresentationInstanceFilter; /** * Converts [[PresentationInstanceFilter]] into format used by [usePropertyFilterBuilder]($components-react). * @throws if fields used in filter cannot be found in `descriptor`. */ function toComponentsPropertyFilter(descriptor: Descriptor, filter: PresentationInstanceFilter): PropertyFilter; /** * Extracts information from [[PresentationInstanceFilter]] and creates a [GenericInstanceFilter]($common) for building queries. */ function toGenericInstanceFilter(filter: PresentationInstanceFilter, filteredClasses?: ClassInfo[]): GenericInstanceFilter; /** * Creates [[PresentationInstanceFilter]] from given [GenericInstanceFilter]($common). * @throws if fields used in `filter` cannot be found in `descriptor`. */ function fromGenericInstanceFilter(descriptor: Descriptor, filter: GenericInstanceFilter): PresentationInstanceFilter; /** * Function that checks if supplied [[PresentationInstanceFilter]] is [[PresentationInstanceFilterConditionGroup]]. */ function isConditionGroup(filter: PresentationInstanceFilter): filter is PresentationInstanceFilterConditionGroup; /** * Function that creates equality condition based on supplied [[PropertiesField]] and [[PrimitiveValue]] that is compatible * with `UniquePropertyValuesSelector`. * If [[PrimitiveValue.value]] is `undefined` created condition uses `is-null` or `is-not-null` operator. */ function createPrimitiveValueEqualityCondition(field: PropertiesField, operator: "is-equal" | "is-not-equal", value: PrimitiveValue): PresentationInstanceFilterCondition; } //# sourceMappingURL=PresentationInstanceFilter.d.ts.map