UNPKG

@omnia/fx-models

Version:
138 lines (137 loc) 4.01 kB
import { Identity, Tag, PromotedTagOptions } from "."; import { PropertyIndexedType, UserPickingType } from "./Enums"; import { GuidValue } from "@omnia/fx-models/internal-do-not-import-from-here/shared/models"; export interface RollupQueryResult { total?: number; items: Array<object>; } export interface RollupSetting { includeTotal: boolean; itemLimit?: number; skip?: number; orderBy: Array<OrderBy>; resources: Array<ResourceSetting>; customFilters?: Array<RollupFilter>; displayFields: Array<string>; } export interface ResourceSetting { id: string; idProperty: string; filters?: Array<RollupFilter>; } export interface OrderBy { descending: boolean; propertyName: string; } export declare enum RollupOtherTypes { TextSearches = 80, TitleAndLink = 20 } export interface RollupFilter { property: string; type: PropertyIndexedType.Boolean | PropertyIndexedType.Number | PropertyIndexedType.DateTime | PropertyIndexedType.Text | PropertyIndexedType.Person | PropertyIndexedType.Taxonomy | RollupOtherTypes.TextSearches | PropertyIndexedType.RichText | PropertyIndexedType.EnterpriseKeywords | PropertyIndexedType.Tags; elementName?: string; valueObj: RollupFilterValue; managedProperty?: string; title?: string; } export interface TagRollupFilter extends RollupFilter { promotedTagOptions: PromotedTagOptions; } export interface RollupFilterValue { } export interface BooleanPropFilterValue extends RollupFilterValue { value: boolean; } export interface NumberPropFilterValue extends RollupFilterValue { value: number; } export interface TextPropFilterValue extends RollupFilterValue { value: string; } export interface PersonPropFilterValue extends RollupFilterValue { value: Array<Identity>; displayNames: Array<string>; filterSelection: UserPickingType; } export interface DatePropFilterValue extends RollupFilterValue { fromDate?: Date; toDate?: Date; } export interface DatePropertyFilterCustomValue { fromTodayValue: number; operator: RollupEnums.CustomDateOperator; unit: RollupEnums.TimePeriodTypes; } export interface DatePeriodPropFilterValue extends RollupFilterValue { datePeriod: RollupEnums.DatePeriods; customValueDetails?: { from: DatePropertyFilterCustomValue; to: DatePropertyFilterCustomValue; }; } export interface TaxonomyPropFilterValue extends RollupFilterValue { fixedTermIds?: Array<GuidValue>; termNames: Array<string>; filterType: RollupEnums.TaxonomyFilterType; includeChildTerms: boolean; includeEmpty: boolean; targetingPropertyIds: Array<GuidValue>; userPropertyBindingId?: string; } export interface TagPropertyFilterValue extends RollupFilterValue { value: Array<Tag>; } export interface TexSearchestPropFilterValue extends TextPropFilterValue { orProperties: Array<RollupFilter>; } export declare module RollupEnums { enum DatePeriods { OneWeekFromToday = 1, TwoWeeksFromToday = 2, OneMonthFromToday = 3, LaterThanToday = 4, EarlierThanToday = 5, Custom = 6 } enum CustomDateOperator { Add = 0, Subtract = 1 } enum TimePeriodTypes { Years = 0, Months = 1, Days = 2 } enum TaxonomyFilterType { FixedValue = 1, CurrentPage = 2, /** * This is the old way of doing it using targeting properties */ User = 3, CurrentUser = 4, SelectedUser = 5 } enum PagingType { NoPaging = 1, Classic = 2, Scroll = 3 } enum DateTimeMode { Normal = 1, Social = 2 } enum BooleamFilterOption { Yes = 1, No = 2 } } export interface RollupFilterComponentState { componentid: GuidValue; filters: Array<RollupFilterSlimmed>; } export interface RollupFilterSlimmed { property: string; valueObj: RollupFilterValue; }