import { BaseFilterEngineProperty, DatePropertyFilterCustomValue, FilterEngineSettings, GuidValue, Identity, IIcon, Language, MultilingualString, PropertyIndexedType, RollupOtherTypes, SpacingSettings, Tag, TypedFilterEnginePropertyOutput, UserPickingType } from "@omnia/fx-models"; import { Page, PageCalendarViewMode, PageDialogPropertiesMapping, PageItemNode, PageRollupEnums, PagingTypes, TaxonomyQueryFilter, TaxonomyUIFilter } from ".."; import { PublishingChannelId } from "../channels"; import { PageId } from "../pages"; import { VariationId } from "../variations"; export interface PageRollupViewSettingsRuntimeSettings { navigateWithVariationTargeting: boolean; } export interface PageRollupViewSettings { selectProperties: Array; showContentAsDialog: boolean; enableRichText: boolean; disableViewButtonOnDialog?: boolean; enableMention?: boolean; enableBestReply: boolean; enableSubscription: boolean; showLink: boolean; linkUrl: string; linkInNewTab: boolean; linkTitle: MultilingualString; pageDialogPropsMapping: PageDialogPropertiesMapping & PageRollupDateSettings; borderRadius: number; sortBy?: string; sortDescending?: boolean; viewFilters?: Array; showExportToExcel: boolean; pageInNewTab: boolean; openInEditor: boolean; navigationStartNodeId?: number; hideStartNode?: boolean; showAZPaging?: boolean; internalNamePropertyAZFilter?: string; isAutoSelectFirstPropertyAZFilter?: boolean; } export interface PageRollupDateSettings { dateProp: string; dateMode?: PageRollupEnums.DateTimeModes; dateFormat?: string; } export interface PageRollupViewSettingsColumnMapping { internalName: string; isShowHeading: boolean; } /** * * BASE FILTER * * */ export interface PageRollupPropertyFilter { property: string; type: PropertyIndexedType.Boolean | PropertyIndexedType.DateTime | PropertyIndexedType.Text | PropertyIndexedType.Number | PropertyIndexedType.Person | PropertyIndexedType.Taxonomy | PropertyIndexedType.EnterpriseKeywords | PropertyIndexedType.Language | PropertyIndexedType.Tags; valueObj: PageRollupPropertyFilterValue; } export interface PageRollupPropertyFilterValue { } export interface PageRollupBooleanPropertyFilterValue extends PageRollupPropertyFilterValue { value: boolean; } export interface PageRollupTextPropertyFilterValue extends PageRollupPropertyFilterValue { value: string; text?: string; } export interface PageRollupNumberPropertyFilterValue extends PageRollupPropertyFilterValue { value: number; } export interface PageRollupPersonPropertyFilterValue extends PageRollupPropertyFilterValue { value: Array; filterSelection: UserPickingType; } export interface PageRollupDatePropertyFilterValue extends PageRollupPropertyFilterValue { value: PageRollupEnums.DatePeriods; customValueDetails?: { from: DatePropertyFilterCustomValue; to: DatePropertyFilterCustomValue; }; } export interface PageRollupTagPropertyFilterValue extends PageRollupPropertyFilterValue { value: Array; filterType: PageRollupEnums.FilterTypes; } export interface PageRollupTaxonomyPropertyFilterValue extends TaxonomyQueryFilter { userPropertyBindingId?: string; } export interface PageRollupLanguagePropertyFilterValue extends PageRollupPropertyFilterValue { value: string[]; filterType: PageRollupEnums.FilterTypes; } export interface PageRollupLanguageFilterValue extends PageRollupPropertyFilterValue { value: Language; filterType: PageRollupEnums.FilterTypes; } export interface PageRollupDatePropCalendarFilterValue extends PageRollupPropertyFilterValue { calendarType: PageCalendarViewMode; fromDate?: Date; toDate?: Date; } /** * * UI FILTER * * */ export interface PageRollupUiFilter { property: string; type: PropertyIndexedType.Boolean | PropertyIndexedType.DateTime | PropertyIndexedType.Text | PropertyIndexedType.Number | PropertyIndexedType.Person | PropertyIndexedType.Taxonomy | PropertyIndexedType.EnterpriseKeywords | PropertyIndexedType.Tags | RollupOtherTypes.TextSearches; valueObj: PageRollupUiFilterValue; } export interface PageRollupUiFilterValue { } export interface PageRollupUiDatePeriodsFilterValue extends PageRollupUiDatePropFilterValue { value: PageRollupEnums.DatePeriods; } export interface PageRollupUiDatePropFilterValue extends PageRollupUiFilterValue { from: string; to: string; } export interface PageRollupUiBooleanPropFilterValue extends PageRollupUiFilterValue { value: PageRollupEnums.BooleanFilterOptions; } export interface PageRollupUiTextPropFilterValue extends PageRollupUiFilterValue { text: string; } export interface PageRollupUiNumberPropFilterValue extends PageRollupUiFilterValue { value: number; } export interface PageRollupUiPersonPropFilterValue extends PageRollupUiFilterValue { value: Array; filterSelection: UserPickingType; } export interface PageRollupUiTaxonomyPropFilterValue extends TaxonomyUIFilter { } export interface PageRollupUiSearchboxFilterValue extends PageRollupUiTextPropFilterValue { properties: Array; } export interface PageRollupUiTagFilterValue extends PageRollupUiFilterValue { value: Array; } export interface PageRollupVariationPropertyFilterValue extends PageRollupPropertyFilterValue { value: string; variationId: VariationId; defaultVariationId: VariationId; } export interface PageRollupPublishingAppPropertyFilterValue extends PageRollupPropertyFilterValue { value: Array; } export interface PageRollupPageTypePropertyFilterValue extends PageRollupPropertyFilterValue { value: Array; } export interface PageRollupChannelFilterValue extends PageRollupPropertyFilterValue { value: Array; currentUserSubscription: boolean; } export interface PublishingAppFilterEngineProperty extends BaseFilterEngineProperty { value: Array; type: PropertyIndexedType.Text; showSearchValueBox: boolean; } export interface PageTypeFilterEngineProperty extends BaseFilterEngineProperty { value: Array; type: PropertyIndexedType.Number; showSearchValueBox: boolean; } export interface ChannelFilterEngineProperty extends BaseFilterEngineProperty { value: Array; type: PropertyIndexedType.Number; showSearchValueBox: boolean; } export interface CheckedOutByFilterEngineProperty extends BaseFilterEngineProperty { value: Array; type: PropertyIndexedType.Person; } export interface PublishingAppFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Text; value: Array; sub: PublishingAppFilterEnginePropertyOutput[]; } export interface PageTypeFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Number; value: Array; sub: PageTypeFilterEnginePropertyOutput[]; } export interface ChannelFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Number; value: Array; sub: ChannelFilterEnginePropertyOutput[]; } export interface CheckedOutByFilterEnginePropertyOutput extends TypedFilterEnginePropertyOutput { type: PropertyIndexedType.Person; value: Array; sub: CheckedOutByFilterEnginePropertyOutput[]; } export interface PageRollupWorkflowStatusPropertyFilterValue extends PageRollupPropertyFilterValue { value: PageRollupEnums.WorkflowStatus; } export interface PageRollupBlockBreakPointSettings { selectedViewId: string; selectedViewManifestId?: GuidValue; viewSettings: PageRollupViewSettings; title: string | MultilingualString; showCreateButton?: boolean; createButtonLabel: string; showLink?: boolean; linkLabel?: MultilingualString; linkUrl?: string; openInNewTab?: boolean; spacing?: SpacingSettings; hideReadNews?: boolean; hideBlockWhenNoResult?: boolean; noResultText: string | MultilingualString; pagingType: PagingTypes; itemLimit: number; currentUserSubscription?: boolean; openPageInNewTab?: boolean; openInEditor?: boolean; } export interface PageRollupBlockProperty { pickedPages?: Array; } export interface PageRollupBlockSettings { scope: PageRollupEnums.RollupScopes; excludeCurrentPage: boolean; excludeVariations: boolean; resources: Array<{ id: string; typeId?: GuidValue; filters?: Array; }>; itemLimit: number; queryItemLimit: number; priority: number; noResultText: MultilingualString; hideBlockWhenNoResult: boolean; trimDupplicates: boolean; enableClientCaching: boolean; pagingType: PagingTypes; selectedViewManifestId: GuidValue; selectedSettingsViewManifestId?: GuidValue; selectedViewId?: string; viewSettings: PageRollupViewSettings; title: MultilingualString; likePeriod?: PageRollupEnums.DatePeriods; commentPeriod?: PageRollupEnums.DatePeriods; ratingPeriod?: PageRollupEnums.DatePeriods; feedbackPeriod?: PageRollupEnums.DatePeriods; pageStatisticsPeriod?: PageRollupEnums.DatePeriods; sortBy?: string; sortDescending?: boolean; showCreateButton?: boolean; createButtonLabel: string; createButtonForPageCollectionId: string; showLink?: boolean; linkLabel?: MultilingualString; linkUrl?: string; openInNewTab?: boolean; spacing?: SpacingSettings; hideReadNews?: boolean; highlightNonRead?: boolean; excludeStartNode: boolean; searchBoxOutlined: boolean; searchBoxRounded: boolean; searchBoxFilled: boolean; breakPointSettings?: { [breakPointId: string]: PageRollupBlockBreakPointSettings; }; queryConfiguration?: { type: PageRollupEnums.QueryConfigurationType; pickInWriteMode: boolean; }; pickedPages?: Array; defaultExpandedSectionIndex?: number; useRouter: boolean; navigationDepthLevel: number; navigationStartNode?: PageItemNode; currentUserSubscription?: boolean; nodeType?: PageRollupEnums.NodeType; versionStatus: PageRollupEnums.VersionStatus; openPageInNewTab?: boolean; openInEditor?: boolean; showMetric?: boolean; metricSetting?: PageRollupMetricSettings; filterEngine?: FilterEngineSettings; } export interface PageRollupMetricSettings { title: MultilingualString; description?: MultilingualString; icon?: IIcon; color?: string; width: number; height?: number; } export interface PageTypeSelection extends Page { title: string; } export interface CalendarViewWeekdaysValue { value: Array; viewStartOffset: Array; viewEndOffset: Array; }