zz-chart
Version:
Alauda Chart components by Alauda Frontend Team
97 lines (96 loc) • 2.57 kB
TypeScript
/// <reference types="react" resolution-mode="require"/>
/// <reference types="web" />
import * as d3 from 'd3';
import { Data, PieShapeOption } from '../../types/options.js';
import { PolarShape } from './index.js';
export declare const DEFAULT_RADIUS_DIFF = 8;
export declare const ACTIVE_RADIUS_ENLARGE_SIZE = 2;
interface PieItemConfig {
padAngle: number;
startAngle: number;
endAngle: number;
innerRadius: number;
outerRadius: number;
borderRadius: number;
borderWidth: number;
color: string;
}
interface PieItemValue {
path: string;
config: PieItemConfig;
data: Data;
selected?: boolean;
polylinePoints?: [number, number][];
}
/**
* Pie 饼图 环形图
*/
export default class Pie extends PolarShape<PieShapeOption> {
type: string;
pieGuide: d3.Selection<HTMLDivElement, unknown, null, undefined>;
svgEl: d3.Selection<SVGSVGElement, unknown, null, undefined>;
data: Data;
get nullData(): boolean;
get totalValue(): number;
get colorVar(): Record<string, string>;
init(): void;
render(): void;
calculateLabelLength(data: any): number;
renderPie(clientHeight: number): void;
getLabel(d: any): string;
renderGuidelines(paths: any): void;
onMousemove(res: {
self: unknown;
data: PieItemValue;
event: MouseEvent;
}): void;
onMouseleave(res: {
self: unknown;
data: PieItemValue;
event: MouseEvent;
}): void;
addListener(): void;
renderLabel(): void;
redraw(): void;
}
export declare function getPath(config: {
padAngle: number;
startAngle: number;
endAngle: number;
innerRadius: number;
outerRadius: number;
borderRadius: number;
borderWidth: number;
color: string;
}): string;
export declare function calculatePaths(data: Data, option: PieShapeOption, color: string): ({
path: string;
config: {
padAngle?: number;
startAngle: number;
endAngle: number;
innerRadius?: number;
outerRadius?: number;
borderRadius?: number;
borderWidth?: number;
color: string;
};
} | {
path: string;
config: {
startAngle: number;
endAngle: number;
padAngle?: number;
innerRadius?: number;
outerRadius?: number;
borderRadius?: number;
borderWidth?: number;
color: string;
};
data: any;
})[];
export declare function getRadius(option: PieShapeOption): {
outerRadius: number;
innerRadius: number;
};
export {};