import { TFunction } from "i18next"; import React from "react"; export declare enum DonutChartColor { RED = "red", GREEN = "green", YeLLOW = "yellow", BLUE = "blue", PURPLE = "purple" } export type IDonutChartProps = { "data-testid"?: string; /** * 默认支持单色系展示,如果是单色系直接传入颜色类型 */ color?: DonutChartColor; /** * 支持自定义图形外部样式 */ className?: string; /** * 支持自定义图形宽度 */ width?: number; /** * 支持自定义图形的内半径 */ innerRadius?: number; /** * 支持自定义图形的外半径 */ outerRadius?: number; /** * 支持自定义图形高度 */ height?: number; /** * 支持自定义 tooltip 样式 */ overlayClassName?: string; /** * * centerRender 对应 Donut Chart 中间的展示 * * 可直接传入 object 类型,object 中的 number 为数值, text为数值下面的文案展示 * * 支持传入 ReactNode 自定义组件 */ centerRender?: React.ReactElement | { number: number; text: string; }; /** * * 图形展示的数据 * * 数据合并展示规则: * * 如果 data 的长度不超过 5 并且没有 otherData 时,会全部展示 * * 如果 data 的长度小于等于 4 并且有 otherData 时,会全部展示 * * 如果 data 的长度大于 4 并且有 otherData 时,会将第 3 项之后的数据合并为一项,在 tooltip 中展示, * * 如果 data 的长度大于 5 不管是否有 otherData 会将第 4 项之后对 data 进行合并展示 * * 如果有希望合并的数据,建议在传入数据时进行排序 * * data 中每一项支持 onClick 事件,支持自定义颜色,当有自定义颜色时优先展示 */ data: { name: string; value: number; color?: string; tooltip?: string; onClick?: (name: string) => void; }[]; /** * otherData中的数据会默认合并为其他,name 和 value 会在tooltip中展示详情 */ otherData?: { name: string; value: number; }[]; /** * 当 data 数据合并时展示的文案 */ collapseText?: string; /** * 是否展示间隔, 当组件作为二元组件时传入false */ widthPadding?: boolean; /** * 是否展示legend */ showLegend?: boolean; }; export declare const formatCollapse: (collapseData?: { name: string; value: number; }[]) => { tooltip: { name: string; value: number; }[]; value: number; }; export declare const formatChartData: ({ otherData, data, t, collapseText, }: IDonutChartProps & { t: TFunction<"translation", undefined>; }) => ({ name: string; value: number; color?: string | undefined; tooltip?: string | undefined; onClick?: ((name: string) => void) | undefined; } | { name: string; value: number; color: null; tooltip: { name: string; value: number; }[]; } | { name: string; value: number; color: "#D8DEEB"; tooltip: { name: string; value: number; }[]; })[]; declare const DonutChart: React.FC; export default DonutChart;