proportions-chart
Version:
A one-dimensional proportional chart web component for visualizing categorical data
51 lines (41 loc) • 1.61 kB
TypeScript
interface ConfigOptions {}
type Accessor<In, Out> = Out | string | ((obj: In) => Out);
type SeriesAccessor<T> = Accessor<SeriesD, T>;
interface SeriesD {
__dataNode?: DataNode;
}
interface DataNode {
data: SeriesD;
id: number;
value: number;
startAngle?: number;
endAngle?: number;
padAngle?: number;
}
type SeriesCompareFn = (a: SeriesD, b: SeriesD) => number;
type TooltipFn = (series: SeriesD, dataNode: DataNode) => string;
declare class ProportionsChart {
constructor(element: HTMLElement, configOptions?: ConfigOptions);
width(): number;
width(width: number): ProportionsChart;
height(): number;
height(height: number): ProportionsChart;
data(): SeriesD[];
data(data: SeriesD[]): ProportionsChart;
label(): SeriesAccessor<string>;
label(textAccessor: SeriesAccessor<string>): ProportionsChart;
size(): SeriesAccessor<number>;
size(textAccessor: SeriesAccessor<number>): ProportionsChart;
color(): SeriesAccessor<string>;
color(textAccessor: SeriesAccessor<string>): ProportionsChart;
sort(): SeriesCompareFn | null;
sort(fn: SeriesCompareFn): ProportionsChart;
showLabels(): boolean;
showLabels(show: boolean): ProportionsChart;
tooltipContent(): TooltipFn;
tooltipContent(fn: TooltipFn): ProportionsChart;
onClick(cb: (series: SeriesD, event: MouseEvent) => void): ProportionsChart;
onRightClick(cb: (series: SeriesD, event: MouseEvent) => void): ProportionsChart;
onHover(cb: (series: SeriesD | null, event: MouseEvent) => void): ProportionsChart;
}
export { type ConfigOptions, type DataNode, type SeriesD, ProportionsChart as default };