/** * 颜色相关 */ interface BaseStyle { color?: string; shadowBlur?: number; shadowColor?: string; shadowOffsetX?: number; shadowOffsetY?: number; shadowStyle?: ShadowStyle; opacity?: number; } interface ItemStyle extends BaseStyle { color?: string; borderColor?: string; borderWidth?: number; borderType?: 'solid' | 'dashed' | 'dotted'; borderRadius?: number; borderStyle?: BorderStyle; decal?: any; // TODO } interface LineStyle extends BaseStyle { width?: number; type?: 'solid' | 'dashed' | 'dotted'; dashOffset?: number; cap?: 'butt' | 'round' | 'square'; join?: 'miter' | 'round' | 'bevel'; mitreLimit?: number; } interface BorderStyle { borderColor?: string; borderWidth?: number; borderType?: 'solid' | 'dashed' | 'dotted'; borderRadius?: number; } interface ShadowStyle { shadowBlur?: number; shadowColor?: string; shadowOffsetX?: number; shadowOffsetY?: number; } /** * data: * 数据源: * 如系列指定了data,则使用系列的data;否则使用dataSet的data * 坐标轴: * 在 直角坐标系 (grid) 中『维度X』和『维度Y』会默认对应于 xAxis 和 yAxis * 在 极坐标系 (polar) 中『维度X』和『维度Y』会默认对应于 radiusAxis 和 angleAxis */ interface DataItem { name: string; value: number; isFake?: boolean; label?: LabelOptions; labelLine?: LabelLine; itemStyle?: ItemStyle; emphasis?: Emphsis; blur?: Blur; select?: Select; } interface FlatDataItem { name: string; value: number; } /** * label相关 */ interface LabelOptions { show?: boolean; distance?: number; rotate?: number; offset?: number; formatter?: (value: number) => string; color?: string; fontStyle?: string; fontWeight?: string; fontFamily?: string; fontSzie?: number; align?: 'left' | 'center' | 'right'; verticalAlign?: 'top' | 'middle' | 'bottom'; lineHeight?: number; backgroundColor?: string; borderColor?: string; borderWidth?: number; borderType?: 'solid' | 'dashed' | 'dotted'; borderDashOffset?: number; borderRadius?: number; padding?: number; shadowBlur?: number; shadowColor?: string; shadowOffsetX?: number; shadowOffsetY?: number; width?: number; height?: number; textBorderColor?: string; textBorderWidth?: number; textBorderType?: 'solid' | 'dashed' | 'dotted'; textBorderDashOffset?: number; textshadowColor?: string; textshadowBlur?: number; textshadowOffsetX?: number; textshadowOffsetY?: number; overflow?: 'visible' | 'hidden'; ellipsis?: boolean; } interface LabelLine { show?: boolean; lineStyle?: LineStyle; } interface LabelLayout { x?: number; y?: number; dx?: number; dy?: number; rotate?: number; width?: number; height?: number; align?: string; verticalAlign?: string; fontSize?: number; } interface Emphsis { focus?: boolean; blurScope?: string; label?: LabelOptions; labelLine?: LabelLine; itemStyle?: ItemStyle; } interface Blur { label?: LabelOptions; labelLine?: LabelLine; itemStyle?: ItemStyle; } interface Select { label?: LabelOptions; labelLine?: LabelLine; itemStyle?: ItemStyle; } type Data = number | [string, number] | DataItem; export type GraphType = 'line' | 'bar' | 'pie' | 'venn'; interface BaseGraphOptions { type: GraphType; name?: string; id?: string; colorBy?: 'series' | 'data'; // TODO coordinateSystem?: 'cartesian2d' | 'polar'; label?: LabelOptions; labelLine?: LabelLine; labelLayout?: LabelLayout; itemStyle?: ItemStyle; emphasis?: Emphsis; blur?: Blur; select?: Select; selectMode?: boolean; cursor?: string; category?: string; data?: Array; } export { BaseGraphOptions, BaseStyle, LineStyle, DataItem, FlatDataItem, LabelOptions, ItemStyle, BorderStyle, ShadowStyle, Emphsis, Blur, Data, };