@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
123 lines (122 loc) • 3.04 kB
TypeScript
import type { ReactNode } from 'react';
import { IChartStyleOption } from '../../base-pandora-visualization/services/chart-style/charts/base';
import { ITimeRange } from '../../services/search-condition';
import { IKeyValues } from '../../models/base';
import { EThemeTypes } from '../../constants';
export declare const CHART_VERSION = "0.1.0";
export declare enum EOperationBarState {
SHOW = "show",
HIDE = "hide"
}
export declare enum TypeOfChart {
Spl = "spl",
VisualizationGui = "visualization-gui"
}
export interface ISettings {
operationBarState: EOperationBarState;
screenScale: number[];
layoutCols: number;
layoutRowHeight: number;
layoutMargin: [number, number];
}
export declare enum EVariableType {
TIME_INTERVAL = "timeinterval",
QUERY_VALUE = "queryvalue",
CONSTANTS = "constants",
SERVER = "server"
}
interface IVariableTypeValue {
[EVariableType.TIME_INTERVAL]: {
num: number;
unit: string;
};
[EVariableType.QUERY_VALUE]: string[];
[EVariableType.CONSTANTS]: string[];
[EVariableType.SERVER]: string[];
}
interface IVariableTypeOption {
[EVariableType.TIME_INTERVAL]: void;
[EVariableType.QUERY_VALUE]: {
spl: string;
field: string;
multi: boolean;
autoUpdate: boolean;
};
[EVariableType.CONSTANTS]: {
presets: string[];
multi: boolean;
};
[EVariableType.SERVER]: {
mode: 'host' | 'ip';
multi: boolean;
};
}
export interface IVariable<T extends EVariableType = any> {
id: string;
name: string;
displayName?: string;
type: EVariableType;
value?: IVariableTypeValue[T];
option: IVariableTypeOption[T];
prefix?: string;
suffix?: string;
valuePrefix?: string;
valueSuffix?: string;
delimiter?: string;
}
export interface IDashboard {
id?: string;
title: string;
description: string;
refresh: number;
time: ITimeRange;
charts: IChart[];
variables?: IVariable[];
createTime?: number;
updateTime?: number;
version?: number;
theme?: EThemeTypes;
app?: string;
options?: {
settings?: ISettings;
[key: string]: any;
};
}
export interface IReport {
id?: string;
name: string;
chart: IChart;
time: ITimeRange;
}
export interface ILayout {
width: number;
height: number;
top: number;
left: number;
}
export interface ITitle {
name: string;
color?: string;
show?: boolean;
}
export interface IChart {
id?: string;
type?: TypeOfChart;
isNew?: boolean;
title?: ITitle;
layout: ILayout;
style: IChartStyleOption;
action?: IKeyValues;
line: {
time?: ITimeRange;
} & IKeyValues<any>;
description?: string;
version?: string;
variables?: ReactNode;
}
export declare const defaultSettings: ISettings;
export declare const defaultDashboard: IDashboard;
export declare const variableTypeMapping: {
[key in EVariableType]: string;
};
export {};