@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
276 lines (275 loc) • 9.87 kB
TypeScript
import { GuidValue } from "../../shared";
import { 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<T> {
name: string;
entries?: Array<T>;
}
export interface Refinement {
refinementName: string;
refinementValue: string;
refinementToken: string;
refinementCount: number;
}
export interface FilterEngineContextProperty {
title: string;
type: BaseFilterEnginePropertyType;
inheritFromType?: GuidValue;
}
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<Refinement>;
}
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<Refinement>;
type: BaseFilterEnginePropertyType;
}
export interface PersonFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput {
type: PropertyIndexedType.Person;
value: Array<Identity>;
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<string>;
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<GuidValue>;
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<string>;
type: PropertyIndexedType.Tags;
showChipsPropertyLabel: boolean;
}
export interface NumberFilterEngineProperty extends BaseFilterEngineProperty {
value: number;
type: PropertyIndexedType.Number;
}
export interface PersonFilterEngineProperty extends BaseFilterEngineProperty {
value: Array<Identity>;
filterSelection: UserPickingType;
type: PropertyIndexedType.Person;
operator: FilterEngineOperator;
showResultCount: boolean;
valueSortOrder: FilterEnginePersonValueSortOrder;
showTagsPropertyLabel: boolean;
}
export interface FilterEngineSearchBoxSettings {
mode: FilterEngineSearchBoxMode;
text: string;
width?: number;
properties: Array<string>;
}
export interface FilterEngineSettings {
showSearchBox: boolean;
searchBoxSettings: FilterEngineSearchBoxSettings;
enablePartialWordSearch: boolean;
properties: Array<BaseFilterEngineProperty>;
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<FilterEngineRouterProperty>;
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[];
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);
}