import type { AnimationOptions } from '../../animations/types';
import type { BaseComboStyleProps } from '../../elements/combos';
import type { Graph } from '../../runtime/graph';
import type { ComboData } from '../data';
import type { AnimationStage } from './animation';
import type { PaletteOptions } from './palette';
/**
* Combo 配置项
*
* Combo spec
*/
export interface ComboOptions {
/**
* 组合类型
*
* Combo type
*/
type?: string | ((this: Graph, datum: ComboData) => string);
/**
* 组合样式
*
* Combo style
*/
style?: ComboStyle | ((this: Graph, data: ComboData) => ComboStyle) | {
[K in keyof ComboStyle]: ComboStyle[K] | ((this: Graph, data: ComboData) => ComboStyle[K]);
};
/**
* 组合状态样式
*
* Combo state style
*/
state?: Record ComboStyle) | {
[K in keyof ComboStyle]: ComboStyle[K] | ((this: Graph, data: ComboData) => ComboStyle[K]);
}>;
/**
* 组合动画
*
* Combo animation
*/
animation?: false | Record;
/**
* 色板
*
* Palette
*/
palette?: PaletteOptions;
}
export interface StaticComboOptions {
style?: ComboStyle;
state?: Record;
animation?: false | Record;
palette?: PaletteOptions;
}
export interface ComboStyle extends Partial {
[key: string]: any;
}