@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
138 lines (137 loc) • 4.01 kB
TypeScript
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;
}