import * as ko from 'knockout'; import { DashboardLocalizationId } from '../../data/localization/_default'; import { IDisposable } from '../../model'; import { DataItem, DataItemLink } from '../../model/data-item/data-item'; import { DataItemContainer } from '../../model/items/data-item-container'; import { ConstrainedBindingProperty, ICollectionBindingProperty } from '../../model/items/_binding-model'; import { DataItemContainerPropertiesComposer, IComposeTabsArgs, IDataItemContainerComposeTabsArgs, IDetailsPropertiesComposerBase } from './properties-composers/_base-properties-composer'; export interface IDataSectionSurface extends IDisposable { template: string; } export interface IDataSectionInfo extends ISectionInfoBase { } export interface IDataItemContainerSectionInfo extends ISectionInfoBase { detailsPropertiesComposer?: DataItemContainerPropertiesComposer; } export interface ISectionInfoBase { title: DashboardLocalizationId; bindingProperty?: ICollectionBindingProperty; detailsPropertiesComposer?: IDetailsPropertiesComposerBase; actions?: { title: string; icon: string; action: () => void; }[]; } export interface IDataItemHolder { selectItem(holder: any, binding: ConstrainedBindingProperty): any; dataItemDisplayNameProvider(item: DataItem): string; removeDataItem(dataItemLink: DataItemLink): any; } export interface IItemsCollection { items: ko.ObservableArray; supportGroups: boolean; relocateItem: (item: DataItemContainer | DataItemLink, placeholderIndex: number) => void; isOlap: () => boolean; }