@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
79 lines (78 loc) • 2.89 kB
TypeScript
import { IChartField, EChartFieldType } from '@qn-pandora/app-sdk';
import { ChartType } from '../../../../constants/chart-style';
export interface IChartStyleOption {
chartType: ChartType;
displayColors?: IColor[];
}
export interface IColor {
name: string | number | boolean;
color: string;
fieldType?: EChartFieldType;
isOverlap?: boolean;
isCustomColor?: boolean;
}
export interface IChartStyleContextOption {
buckets: string[];
metrics: string[];
}
export interface IChartStyleInitOption extends IChartStyleContextOption {
fields: IChartField[];
}
/**
* style option 装饰器
* @param extraDesc 额外附加的装饰器,默认为observable.ref,设置为非函数值的时候不附加装饰器
*/
export declare function styleOption(extraDesc?: any): any;
export default abstract class ChartStyleService<T extends IChartStyleOption = IChartStyleOption> {
abstract readonly chartType: ChartType | string;
abstract option: T;
/**
* 当切换图表时使用这个值作为下一个图表的参数
*/
abstract contextOption: IChartStyleContextOption;
displayColors: IColor[];
/**
* 获取style option装饰器存储下来的内容
*/
private getStyleOptionNames;
/**
* 获取style option装饰器装饰的所有属性值
*/
protected getStyleOptions(): T;
/**
* 批量修改styleOption装饰过的值
* WARNING: 在父级类中使用请注意,此赋值方法也会识别到子类中styleOption装饰的
* @param obj 赋值操作的map映射
* @param allowNil 对obj中的nil值是否进行赋值操作
*/
set(obj: Partial<T>, allowNil?: boolean): void;
/**
* 单独修改某个styleOption装饰过的值
* @param key 被装饰过的值的名称,如果名称不存在,或者未被装饰则函数调用无效
* @param value 值
*/
set<K extends keyof T>(key: K, value: T[K]): void;
/**
* 提供属性自定义set的批量处理函数
* @param obj
* @param fieldHandlers
* @param allowNil
*/
executeFieldHandlers(obj: IKeyValues, fieldHandlers: Array<{
field: string;
handler: (fieldValue: any) => void;
}>, allowNil?: boolean): void;
setDisplayColors(colors: IColor[]): void;
constructor(_: T);
}
export declare type TChartStyleServiceClass = {
new (option: any): ChartStyleService;
/**
* @param option 上下文中的option
。 * 图表初始化时为配置文件中的option,图表切换时为上一个图表提供的contextOption
* @param initFirst 是否为初始化优先。
* true: 尽量按照option的值来初始化图表样式;
* false: 根据按照当前图表的类型结合option来初始化。
*/
getChartInitStyle(option: IChartStyleInitOption, initFirst: boolean): any;
};