import SeriesModel from '../../model/Series.js';
|
import { TreeNode } from '../../data/Tree.js';
|
import { SeriesOption, CircleLayoutOptionMixin, SeriesLabelOption, ItemStyleOption, OptionDataValue, CallbackDataParams, StatesOptionMixin, OptionDataItemObject, DefaultEmphasisFocus, SunburstColorByMixin } from '../../util/types.js';
|
import GlobalModel from '../../model/Global.js';
|
import SeriesData from '../../data/SeriesData.js';
|
import Model from '../../model/Model.js';
|
interface SunburstItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> {
|
borderRadius?: (number | string)[] | number | string;
|
}
|
interface SunburstLabelOption extends Omit<SeriesLabelOption, 'rotate' | 'position'> {
|
rotate?: 'radial' | 'tangential' | number;
|
minAngle?: number;
|
silent?: boolean;
|
position?: SeriesLabelOption['position'] | 'outside';
|
}
|
interface SunburstDataParams extends CallbackDataParams {
|
treePathInfo: {
|
name: string;
|
dataIndex: number;
|
value: SunburstSeriesNodeItemOption['value'];
|
}[];
|
}
|
interface SunburstStatesMixin {
|
emphasis?: {
|
focus?: DefaultEmphasisFocus | 'descendant' | 'ancestor';
|
};
|
}
|
export interface SunburstStateOption<TCbParams = never> {
|
itemStyle?: SunburstItemStyleOption<TCbParams>;
|
label?: SunburstLabelOption;
|
}
|
export interface SunburstSeriesNodeItemOption extends SunburstStateOption<CallbackDataParams>, StatesOptionMixin<SunburstStateOption<CallbackDataParams>, SunburstStatesMixin>, OptionDataItemObject<OptionDataValue> {
|
nodeClick?: 'rootToNode' | 'link' | false;
|
link?: string;
|
target?: string;
|
children?: SunburstSeriesNodeItemOption[];
|
collapsed?: boolean;
|
cursor?: string;
|
}
|
export interface SunburstSeriesLevelOption extends SunburstStateOption, StatesOptionMixin<SunburstStateOption, SunburstStatesMixin> {
|
radius?: (number | string)[];
|
/**
|
* @deprecated use radius instead
|
*/
|
r?: number | string;
|
/**
|
* @deprecated use radius instead
|
*/
|
r0?: number | string;
|
highlight?: {
|
itemStyle?: SunburstItemStyleOption;
|
label?: SunburstLabelOption;
|
};
|
}
|
interface SortParam {
|
dataIndex: number;
|
depth: number;
|
height: number;
|
getValue(): number;
|
}
|
export interface SunburstSeriesOption extends SeriesOption<SunburstStateOption, SunburstStatesMixin>, SunburstStateOption, SunburstColorByMixin, CircleLayoutOptionMixin {
|
type?: 'sunburst';
|
clockwise?: boolean;
|
startAngle?: number;
|
minAngle?: number;
|
/**
|
* If still show when all data zero.
|
*/
|
stillShowZeroSum?: boolean;
|
/**
|
* Policy of highlighting pieces when hover on one
|
* Valid values: 'none' (for not downplay others), 'descendant',
|
* 'ancestor', 'self'
|
*/
|
nodeClick?: 'rootToNode' | 'link' | false;
|
renderLabelForZeroData?: boolean;
|
levels?: SunburstSeriesLevelOption[];
|
animationType?: 'expansion' | 'scale';
|
sort?: 'desc' | 'asc' | ((a: SortParam, b: SortParam) => number);
|
}
|
interface SunburstSeriesModel {
|
getFormattedLabel(dataIndex: number, state?: 'emphasis' | 'normal' | 'highlight' | 'blur' | 'select'): string;
|
}
|
declare class SunburstSeriesModel extends SeriesModel<SunburstSeriesOption> {
|
static readonly type = "series.sunburst";
|
readonly type = "series.sunburst";
|
ignoreStyleOnData: boolean;
|
private _viewRoot;
|
private _levelModels;
|
getInitialData(option: SunburstSeriesOption, ecModel: GlobalModel): SeriesData<Model<any>, import("../../data/SeriesData").DefaultDataVisual>;
|
optionUpdated(): void;
|
getDataParams(dataIndex: number): SunburstDataParams;
|
getLevelModel(node: TreeNode): Model<SunburstSeriesLevelOption>;
|
static defaultOption: SunburstSeriesOption;
|
getViewRoot(): TreeNode;
|
resetViewRoot(viewRoot?: TreeNode): void;
|
enableAriaDecal(): void;
|
}
|
export default SunburstSeriesModel;
|