import SeriesModel from '../../model/Series.js';
|
import { SeriesOption, CircleLayoutOptionMixin, LineStyleOption, ColorString, LabelOption, ItemStyleOption, OptionDataValueNumeric, StatesOptionMixin, SeriesEncodeOptionMixin, DefaultStatesMixinEmphasis, CallbackDataParams } from '../../util/types.js';
|
import GlobalModel from '../../model/Global.js';
|
import SeriesData from '../../data/SeriesData.js';
|
declare type GaugeColorStop = [number, ColorString];
|
interface LabelFormatter {
|
(value: number): string;
|
}
|
interface PointerOption {
|
icon?: string;
|
show?: boolean;
|
/**
|
* If pointer shows above title and detail
|
*/
|
showAbove?: boolean;
|
keepAspect?: boolean;
|
itemStyle?: ItemStyleOption;
|
/**
|
* Can be percent
|
*/
|
offsetCenter?: (number | string)[];
|
length?: number | string;
|
width?: number;
|
}
|
interface AnchorOption {
|
show?: boolean;
|
showAbove?: boolean;
|
size?: number;
|
icon?: string;
|
offsetCenter?: (number | string)[];
|
keepAspect?: boolean;
|
itemStyle?: ItemStyleOption;
|
}
|
interface ProgressOption {
|
show?: boolean;
|
overlap?: boolean;
|
width?: number;
|
roundCap?: boolean;
|
clip?: boolean;
|
itemStyle?: ItemStyleOption;
|
}
|
interface TitleOption extends LabelOption {
|
/**
|
* [x, y] offset
|
*/
|
offsetCenter?: (number | string)[];
|
formatter?: LabelFormatter | string;
|
/**
|
* If do value animtion.
|
*/
|
valueAnimation?: boolean;
|
}
|
interface DetailOption extends LabelOption {
|
/**
|
* [x, y] offset
|
*/
|
offsetCenter?: (number | string)[];
|
formatter?: LabelFormatter | string;
|
/**
|
* If do value animtion.
|
*/
|
valueAnimation?: boolean;
|
}
|
interface GaugeStatesMixin {
|
emphasis?: DefaultStatesMixinEmphasis;
|
}
|
export interface GaugeStateOption<TCbParams = never> {
|
itemStyle?: ItemStyleOption<TCbParams>;
|
}
|
export interface GaugeDataItemOption extends GaugeStateOption, StatesOptionMixin<GaugeStateOption<CallbackDataParams>, GaugeStatesMixin> {
|
name?: string;
|
value?: OptionDataValueNumeric;
|
pointer?: PointerOption;
|
progress?: ProgressOption;
|
title?: TitleOption;
|
detail?: DetailOption;
|
}
|
export interface GaugeSeriesOption extends SeriesOption<GaugeStateOption, GaugeStatesMixin>, GaugeStateOption<CallbackDataParams>, CircleLayoutOptionMixin, SeriesEncodeOptionMixin {
|
type?: 'gauge';
|
radius?: number | string;
|
startAngle?: number;
|
endAngle?: number;
|
clockwise?: boolean;
|
min?: number;
|
max?: number;
|
splitNumber?: number;
|
itemStyle?: ItemStyleOption;
|
axisLine?: {
|
show?: boolean;
|
roundCap?: boolean;
|
lineStyle?: Omit<LineStyleOption, 'color'> & {
|
color?: GaugeColorStop[];
|
};
|
};
|
progress?: ProgressOption;
|
splitLine?: {
|
show?: boolean;
|
/**
|
* Can be percent
|
*/
|
length?: number;
|
distance?: number;
|
lineStyle?: LineStyleOption;
|
};
|
axisTick?: {
|
show?: boolean;
|
splitNumber?: number;
|
/**
|
* Can be percent
|
*/
|
length?: number | string;
|
distance?: number;
|
lineStyle?: LineStyleOption;
|
};
|
axisLabel?: Omit<LabelOption, 'rotate'> & {
|
formatter?: LabelFormatter | string;
|
rotate?: 'tangential' | 'radial' | number;
|
};
|
pointer?: PointerOption;
|
anchor?: AnchorOption;
|
title?: TitleOption;
|
detail?: DetailOption;
|
data?: (OptionDataValueNumeric | GaugeDataItemOption)[];
|
}
|
declare class GaugeSeriesModel extends SeriesModel<GaugeSeriesOption> {
|
static type: "series.gauge";
|
type: "series.gauge";
|
visualStyleAccessPath: string;
|
getInitialData(option: GaugeSeriesOption, ecModel: GlobalModel): SeriesData;
|
static defaultOption: GaugeSeriesOption;
|
}
|
export default GaugeSeriesModel;
|