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; } export interface RollupSetting { includeTotal: boolean; itemLimit?: number; skip?: number; orderBy: Array; resources: Array; customFilters?: Array; displayFields: Array; } export interface ResourceSetting { id: string; idProperty: string; filters?: Array; } 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; displayNames: Array; 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; termNames: Array; filterType: RollupEnums.TaxonomyFilterType; includeChildTerms: boolean; includeEmpty: boolean; targetingPropertyIds: Array; userPropertyBindingId?: string; } export interface TagPropertyFilterValue extends RollupFilterValue { value: Array; } export interface TexSearchestPropFilterValue extends TextPropFilterValue { orProperties: Array; } 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; } export interface RollupFilterSlimmed { property: string; valueObj: RollupFilterValue; }