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; }