///
import { DataSet } from './DisplayInterfaces';
import { ChartConfiguration, ChartType } from 'chart.js';
import { IMultiSelectOption } from '../components/platform-multiselect';
export interface WidgetConfiguration {
name: string;
displayName?: string;
adminRequired?: boolean;
description: string;
area?: string;
supportMessage: string;
componentType: string;
config?: any;
dataConsumerConfiguration: DataConsumerConfiguration;
dataConsumerConfigurations?: DataConsumerConfiguration[];
contextMatchingRules: ContextMatchingRule[];
modified?: boolean;
unSavedData?: boolean;
dateModified?: string;
widgetAsApp?: boolean;
tags?: string[];
}
export interface ContextMatchingRule {
contextName: string;
valueMatch?: string;
optional: boolean;
historyItemsToKeep?: number;
}
export interface DataConsumerConfiguration {
name?: string;
dataPolicy: string;
fixedData?: DataSet;
fixedParameters?: NameValue[];
sortColumns?: NameValue[];
contextParameters?: NameValue[];
filterConfiguration?: FilterRule[];
overrideCacheRules?: CacheRules;
dataGrouping?: DataGrouping;
pivot?: Pivot;
columns?: string[];
overrideCustomHeaders?: NameValue[];
directUri?: string;
apiStoreAppKey?: string;
httpMethod?: string;
apiStoreSendMtAdfsOpenId?: boolean;
}
export interface DataPolicy {
name: string;
supportMessage: string;
supportGroup: string;
supportNameList: string;
sourceURL: string;
CacheRules: CacheRules;
DesignIdColumn?: string;
fixedParameters?: NameValue[];
columnRenameMap?: NameValue[];
customHeaders?: NameValue[];
dateModified?: string;
useMiddleLayer?: boolean;
dataFormat?: string;
isAWebSocket?: boolean;
httpMethod?: string;
useAPIStore?: boolean;
apiStoreAppKey?: string;
apiStoreSendMtAdfsOpenId?: boolean;
webSocketRegistrationMessage?: string;
}
export interface APIStoreTokenInfo {
appKey: string;
token: string;
expiration: Date;
}
export interface FilterRule {
column: string;
value?: string;
contextValueName?: string;
serverSide: boolean;
operator?: string;
}
export interface CacheRules {
period: string;
frequency?: number;
targetMinute?: number;
targetHour?: number;
targetDay?: number;
targetWorkWeekDay?: number;
}
export interface DataTableValueInfo {
colIdx: number;
rowIdx: number;
column: string;
row?: string[];
value: string;
event?: Event;
}
export interface TableButtonInfo {
name: string;
class: string;
iconClass: string;
text: string;
toolTip?: string;
}
export interface TableRowSelectionButton {
buttonName: string;
row: string[];
column: string[];
}
export declare type ActionButtonsPosition = 'start' | 'end';
export interface GenericTableConfiguration {
hideHeaderRow?: boolean;
sortAndfilterLocally?: boolean;
buttonNames?: string[];
buttonConfig?: ActionButtonConfig;
buttonInfoList?: TableButtonInfo[];
showFilterSortRow?: boolean;
showGlobalFilter?: boolean;
showPaginate?: boolean;
showColumnDropdowns?: boolean;
selectMode?: string;
pageSize?: number;
tableColumnRules?: TableColumnRules[];
showExportToCsv?: boolean;
csvExportOptions?: CsvExportOptions;
columnConfig?: ColumnConfig[];
columnHeaderConfigs?: ColumnHeaderConfigs[][];
rowColorProp?: string;
currentPage?: number;
showPageSizeSelector?: boolean;
showPageRecordsCount?: boolean;
showFirstLastPageSelector?: boolean;
showPageInput?: boolean;
showFilterToggleButton?: boolean;
showGlobalFilterLabel?: boolean;
tableTitle?: string;
tdClass?: string;
trClass?: string;
thClass?: string;
outerTrClass?: string;
TableClasses?: string[];
}
export declare class ActionButtonConfig {
buttonColumnName?: string;
buttonPosition?: ActionButtonsPosition;
}
export declare class Feedback {
type: string;
title: string;
desc: string;
userName: string;
underConsideration: boolean;
comment: Comment[];
context: any;
metaData: Map;
}
export interface TableColumnRules {
columnName: string;
hideColumn?: boolean;
alternateColorOnValueChange?: boolean;
heatmapRules?: HeatmapRules;
redmapRules?: HeatmapRules;
greenmapRules?: HeatmapRules;
showDropdown?: boolean;
valueLink?: boolean;
rowChangeBehavior?: RowChangeBehavior;
maxTextLength?: number;
showPareto?: boolean;
paretoRules?: ParetoRules;
isDate?: boolean;
textAlign?: string;
}
export interface ColumnConfig {
columnLabel: string;
columnLabelBgColor?: string;
columnLabelColor?: string;
columnProp: string;
sortClass?: string;
columnShowIcon?: boolean;
columnFixedWidth?: string;
columnSortByProp?: string;
columnHeaderFilterType?: string;
dropdownsVals?: string[];
multiSelectVals?: IMultiSelectOption[];
selectedValues?: string[];
}
export interface ColumnHeaderConfigs {
headercolumnLabel: string;
headercolumnFixedWidth?: string;
headercolumnColSpan?: string;
headercolumnLabelAlign?: string;
headercolumnLabelBgColor?: string;
headercolumnLabelColor?: string;
}
export interface RowChangeBehavior {
hideDuplicates?: boolean;
addDividor?: boolean;
whiteGray?: boolean;
randomColor?: boolean;
colorStringPallete?: string[];
}
export interface HeatmapRules {
low: string;
high: string;
columnsToInclude?: string[];
}
export interface ParetoRules {
min: number;
max: number;
}
export interface CsvExportOptions {
separator?: string;
fileName?: string;
}
export interface GenericFullChartConfiguration {
xTickLabels?: string[];
yTickLabels?: string[];
xAxisLabelColumns: string[];
pointLabelColumns: string[];
filterColumns: string[];
seriesGroups: SeriesGroupConfig[];
chartConfig: ChartConfiguration;
}
export interface GenericChartConfiguration {
labelSources?: NameValue[];
seriesGroups: SeriesGroupConfig[];
clickMap?: NameValue[];
}
export interface SeriesGroupConfig {
scalePosition: string;
id: string;
series: SeriesConfig[];
}
export interface SeriesConfig {
name: string;
sourceColumn: string;
sourceColumnY?: string;
type: ChartType;
}
export interface NameValue {
name: string;
value: string;
}
export interface NameIndex {
name: string;
index: number;
}
export interface DataGrouping {
serverSide?: boolean;
groupBy: string[];
aggregations: Aggregation[];
}
export interface Aggregation {
name: string;
operation: string;
rename: string;
separator?: string;
}
export interface Pivot {
name: string;
operation: string;
rename: string;
}
export interface ManagedDataReply {
CacheData: CacheDataInfo;
AppliedDataPolicy: DataPolicy;
}
export interface CacheDataInfo {
MinutesRemaining: number;
RetrievedFromCache: boolean;
key: string;
Payload: any;
CacheDate: string;
}