UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

79 lines (78 loc) 2.89 kB
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; };