echarts
Version:
Apache ECharts is a powerful, interactive charting and data visualization library for browser
86 lines (85 loc) • 3.28 kB
TypeScript
import SeriesModel from '../../model/Series.js';
import { SeriesOption, CallbackDataParams, CircleLayoutOptionMixin, LabelLineOption, ItemStyleOption, BoxLayoutOptionMixin, OptionDataValueNumeric, SeriesEncodeOptionMixin, OptionDataItemObject, StatesOptionMixin, SeriesLabelOption, DefaultEmphasisFocus } from '../../util/types.js';
import type SeriesData from '../../data/SeriesData.js';
interface PieItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> {
borderRadius?: (number | string)[] | number | string;
}
export interface PieCallbackDataParams extends CallbackDataParams {
percent: number;
}
export interface PieStateOption<TCbParams = never> {
itemStyle?: PieItemStyleOption<TCbParams>;
label?: PieLabelOption;
labelLine?: PieLabelLineOption;
}
interface PieLabelOption extends Omit<SeriesLabelOption, 'rotate' | 'position'> {
rotate?: number | boolean | 'radial' | 'tangential';
alignTo?: 'none' | 'labelLine' | 'edge';
edgeDistance?: string | number;
/**
* @deprecated Use `edgeDistance` instead
*/
margin?: string | number;
bleedMargin?: number;
distanceToLabelLine?: number;
position?: SeriesLabelOption['position'] | 'outer' | 'inner' | 'center' | 'outside';
}
interface PieLabelLineOption extends LabelLineOption {
/**
* Max angle between labelLine and surface normal.
* 0 - 180
*/
maxSurfaceAngle?: number;
}
interface ExtraStateOption {
emphasis?: {
focus?: DefaultEmphasisFocus;
scale?: boolean;
scaleSize?: number;
};
}
export interface PieDataItemOption extends OptionDataItemObject<OptionDataValueNumeric>, PieStateOption, StatesOptionMixin<PieStateOption, ExtraStateOption> {
cursor?: string;
}
export interface PieSeriesOption extends Omit<SeriesOption<PieStateOption<PieCallbackDataParams>, ExtraStateOption>, 'labelLine'>, PieStateOption<PieCallbackDataParams>, Omit<CircleLayoutOptionMixin, 'center'>, BoxLayoutOptionMixin, SeriesEncodeOptionMixin {
type?: 'pie';
roseType?: 'radius' | 'area';
center?: string | number | (string | number)[];
clockwise?: boolean;
startAngle?: number;
endAngle?: number | 'auto';
padAngle?: number;
minAngle?: number;
minShowLabelAngle?: number;
selectedOffset?: number;
avoidLabelOverlap?: boolean;
percentPrecision?: number;
stillShowZeroSum?: boolean;
animationType?: 'expansion' | 'scale';
animationTypeUpdate?: 'transition' | 'expansion';
showEmptyCircle?: boolean;
emptyCircleStyle?: PieItemStyleOption;
data?: (OptionDataValueNumeric | OptionDataValueNumeric[] | PieDataItemOption)[];
}
declare class PieSeriesModel extends SeriesModel<PieSeriesOption> {
static type: "series.pie";
/**
* @overwrite
*/
init(option: PieSeriesOption): void;
/**
* @overwrite
*/
mergeOption(): void;
/**
* @overwrite
*/
getInitialData(this: PieSeriesModel): SeriesData;
/**
* @overwrite
*/
getDataParams(dataIndex: number): PieCallbackDataParams;
private _defaultLabelLine;
static defaultOption: Omit<PieSeriesOption, 'type'>;
}
export default PieSeriesModel;