import { GuidValue } from "../../shared"; import { EnterprisePropertyColumnMapping, EnterprisePropertyDefinition } from "../enterprise-properties"; import { PropertyIndexedType, UserPickingType } from "../Enums"; import { Identity } from "../identities"; import { PromotedTagOptions } from "../PromotedTagOptions"; import { FilterLogicalOperator, FilterOperator } from "../QueryFilter"; import { SidePanelPosition } from "../sidepanel"; import { ITypedFilterEngineHandler } from "./ITypedFilterEngineHandler"; export declare enum FilterEngineRenderType { Dropdown = 0, List = 1, Tags = 2, IconButtons = 3 } export declare enum FilterEngineDefaultPosition { Top = 0, Left = 1, Right = 2, Dialog = 3 } export declare enum FilterEngineChipColorType { Default = 0, EnterpriseGlossary = 1, Custom = 2 } export declare enum FilterEngineBooleanOption { No = 0, Yes = 1 } export declare enum FilterEngineSearchBoxMode { Properties = 0, FullText = 1 } export declare enum FilterEngineOperator { AND = 0, OR = 1 } export declare enum FilterEnginePersonValueSortOrder { Alphabetical = 0, Count = 1 } export declare enum FilterEngineTextValueSortOrder { Alphabetical = 0, Count = 1 } export declare enum FilterEngineTagsValueSortOrder { Alphabetical = 0, Count = 1 } export declare enum DateType { FromTo = 0, Period = 1 } export declare enum DateTimePeriod { MoreThanOneYearAgo = 0, OneYearAgo = 1, SixMonthsAgo = 2, OneMonthAgo = 3, OneWeekAgo = 4, Today = 5, LaterThanToday = 6 } export declare enum EnterprisePropertyDataTypeIds { EnterpriseKeywords = "c65cc969-4f63-41bf-9956-f6e2c843b196", Media = "8883bebf-4c38-4b70-8195-8a9cb66f8252", RichText = "927c1f21-d34b-4e7b-aa97-d12d5e31711e", Language = "19cd4544-e2a0-4498-8db8-c8fc74fcce54", Data = "502f7df9-e961-4c6a-85f0-2e2b0b06b476", Tags = "581eb7ee-a9af-42e0-a73e-d23af3332813", Text = "7667bdd4-7995-4536-b3e9-bacb829d6f5e", Number = "a7ad0d68-0fec-44ab-b468-028e718dbffc", DateTime = "b8549e8c-e60f-48bb-8f57-2d03ed84131d", Boolean = "f27cdaac-fd29-4552-bd56-72cd2f6fb3f1", Person = "8a96e2a9-963d-47fe-b0d8-851fbf948e33", Taxonomy = "786bfddc-df08-4441-b1ce-ec0730af8113", Extended = "e85eda7f-029e-4bb9-902d-fcd631ab564b" } export interface Refiner { name: string; entries?: Array; } export interface Refinement { refinementName: string; refinementValue: string; refinementToken: string; refinementCount: number; } export interface FilterEngineContextProperty { title: string; type: BaseFilterEnginePropertyType; inheritFromType?: GuidValue; internalName?: string; getSettings?: () => any; hideSquareBrackets?: boolean; } export interface FilterEngineContextPropertyDefinition { typedHandler: new (property: any, defaultRouterValue: any, isRefinable: boolean, hasFilterState: boolean, enterpriseProperty: EnterprisePropertyDefinition) => ITypedFilterEngineHandler; /** * @deprecated Will be removed in 8. Use propertyRendererManifestIds instead. */ propertyRendererManifestId: GuidValue; propertyRendererManifestIds?: GuidValue[]; propertySettingsManifestId?: GuidValue; propertyDefaultValueInputManifestId?: GuidValue; selectionsAreaPropertyRendererManifestId?: GuidValue; propertySettingsFixer?: (context: FilterEngineContext, property: BaseFilterEngineProperty, propertyDefinitionHash: { [internalName: string]: EnterprisePropertyDefinition; }) => void; } export type BaseFilterEnginePropertyType = PropertyIndexedType | GuidValue; export interface BaseFilterEngineProperty { value: unknown; name: string; type: BaseFilterEnginePropertyType; renderType: FilterEngineRenderType; collapsedByDefault: boolean; defaultPosition: FilterEngineDefaultPosition; defaultVisibleListItems?: number; width?: number; entries?: Array; } export interface TypedFilterEnginePropertyOutput { operator: FilterOperator.Equal | FilterOperator.GreaterThan | FilterOperator.LessThan | FilterOperator.NotEqual | FilterOperator.In; logicalOperator: FilterLogicalOperator; internalName: string; type: PropertyIndexedType.Boolean | PropertyIndexedType.Text | PropertyIndexedType.Number | PropertyIndexedType.Person | PropertyIndexedType.Taxonomy | PropertyIndexedType.EnterpriseKeywords | PropertyIndexedType.DateTime | PropertyIndexedType.Tags; sub: TypedFilterEnginePropertyOutput[]; } export interface BaseFilterEnginePropertyOutput { type: "query" | "refiner"; } export interface QueryFilterEnginePropertyOutput extends BaseFilterEnginePropertyOutput { type: "query"; value: TypedFilterEnginePropertyOutput; } export interface RefinerFilterEnginePropertyOutput extends BaseFilterEnginePropertyOutput { type: "refiner"; value: FilterEngineRefinementOutput; } export interface FilterEngineRefinementOutput { logicalOperator: FilterEngineOperator; isolatedRefinementEnabled: boolean; internalName: string; refinerName: string; refinements: Array; type: BaseFilterEnginePropertyType; } export interface PersonFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Person; value: Array; sub: PersonFilterEnginePropertyOutput[]; } export interface NumberFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Number; value: number; sub: NumberFilterEnginePropertyOutput[]; } export interface TextFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Text; value: string; sub: TextFilterEnginePropertyOutput[]; } export interface TagsFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Tags; value: Array; sub: TagsFilterEnginePropertyOutput[]; } export interface BooleanFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Boolean; value: FilterEngineBooleanOption; sub: BooleanFilterEnginePropertyOutput[]; } export interface DateTimeFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { value: DateFilterValue; type: PropertyIndexedType.DateTime; sub: DateTimeFilterEnginePropertyOutput[]; periodValue: [DateTimePeriod, DateTimePeriod]; } export interface TypeFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { value: Array; type: PropertyIndexedType.Text; sub: TypeFilterEnginePropertyOutput[]; } export interface TagFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { promotedTagOptions: PromotedTagOptions; } export interface DateTimeFilterEngineProperty extends BaseFilterEngineProperty { value: DateFilterValue; type: PropertyIndexedType.DateTime; dateType: DateType; periodValue: [DateTimePeriod, DateTimePeriod]; } export interface DateFilterValue { fromDate?: Date; toDate?: Date; } export interface BooleanFilterEngineProperty extends BaseFilterEngineProperty { value: FilterEngineBooleanOption; type: PropertyIndexedType.Boolean; } export interface TextFilterEngineProperty extends BaseFilterEngineProperty { value: string; type: PropertyIndexedType.Text; operator: FilterEngineOperator; showResultCount: boolean; valueSortOrder: FilterEngineTextValueSortOrder; showSearchValueBox: boolean; } export interface TagsFilterEngineProperty extends BaseFilterEngineProperty { value: Array; type: PropertyIndexedType.Tags; showChipsPropertyLabel: boolean; } export interface NumberFilterEngineProperty extends BaseFilterEngineProperty { value: number; type: PropertyIndexedType.Number; } export interface PersonFilterEngineProperty extends BaseFilterEngineProperty { value: Array; filterSelection: UserPickingType; type: PropertyIndexedType.Person; operator: FilterEngineOperator; showResultCount: boolean; valueSortOrder: FilterEnginePersonValueSortOrder; showTagsPropertyLabel: boolean; } export interface FilterEngineSearchBoxSettings { mode: FilterEngineSearchBoxMode; text: string; width?: number; properties: Array; } export interface FilterEngineSettings { showSearchBox: boolean; searchBoxSettings: FilterEngineSearchBoxSettings; enablePartialWordSearch: boolean; properties: Array; saveFilterState: boolean; showSelectedValuesArea: boolean; selectedValuesAreaPosition: FilterEngineDefaultPosition; selectedDialogPosition: SidePanelPosition; showPropertyLabel: boolean; maxVisibleSelections: number; outlinedStyle: boolean; roundedStyle: boolean; filledStyle: boolean; chipColors: FilterEngineChipColorType; customChipTextColor: string; customChipBackgroundColor: string; runQueryOnLoad: boolean; fixedFilter: boolean; breakLine: boolean; } export interface FilterEngineRouterState { id: GuidValue; keyword: string; filters: Array; pageNumber: number; } export interface FilterEngineRouterProperty { output: BaseFilterEnginePropertyOutput; name: string; } export declare abstract class FilterEngineContext { componentId: string; constructor(componentId: string); isRefinable(prop: BaseFilterEngineProperty): boolean; getAvailableProperties(): EnterprisePropertyDefinition[]; getAZFilterableProperties(): EnterprisePropertyColumnMapping[]; getExcludedPropertyTypeIds(): GuidValue[]; readonly abstract uniqueId: string; readonly supportFullTextSearch: boolean; readonly isSortableRefinementValue: boolean; } export declare abstract class DbQueryFilterEngineContext extends FilterEngineContext { componentId: string; readonly abstract uniqueId: string; constructor(componentId: string); }