@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
46 lines • 1.98 kB
TypeScript
import { ComponentFormatFunction } from '../i18n/context';
import { PieChartProps } from './interfaces';
export interface Dimension {
innerRadius: number;
outerRadius: number;
padding: number;
paddingLabels: number;
innerLabelPadding: number;
cornerRadius?: number;
}
export declare const minLabelLineAngularPadding: number;
export declare const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
export declare const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
/**
* When `size` is a string ("small", "medium" or "large") the predefined pie chart element dimensions for classic and visual refresh are used.
* When `size` is a number the outer and inner radii are computed and the rest of the dimensions are taken from the closest predefined size.
*/
export declare function getDimensionsBySize({
size,
hasLabels,
visualRefresh
}: {
size: NonNullable<PieChartProps['size']> | number;
hasLabels: boolean;
visualRefresh?: boolean;
}): Dimension & {
size: NonNullable<PieChartProps['size']>;
};
export declare const defaultDetails: (i18n: ComponentFormatFunction<"pie-chart">, i18nStrings: PieChartProps.I18nStrings) => (datum: PieChartProps.Datum, dataSum: number) => ({
key: string;
value: number;
} | {
key: string;
value: string;
})[];
/**
* Adjusts the position of the given label nodes to avoid visual overlapping.
* @param nodes List of label nodes of the entire chart (both left and right side)
* @param markers Markers array that was calculated in <Labels>, but we just need the `endY` values
* @param leftSide Boolean flag whether we are processing the left or right side of the chart labels
*/
export declare const balanceLabelNodes: (nodes: NodeListOf<SVGGElement>, markers: Array<{
endY: number;
endX: number;
}>, leftSide: boolean, radius: number) => void;
export declare const computeSmartAngle: (startAngle: number, endAngle: number, optimize?: boolean) => number;