ag-charts-enterprise
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
87 lines (86 loc) • 3.65 kB
TypeScript
import type { AgAngleAxisLabelOrientation, TextOrSegments } from 'ag-charts-community';
import { _ModuleSupport } from 'ag-charts-community';
import { type AxisID, ChartAxisDirection, type DynamicContext, type NormalisedAngleAxisLabelOptions, type NormalisedBaseAngleAxisOptions, type Scale } from 'ag-charts-core';
export interface AngleAxisLabelDatum {
text: TextOrSegments;
x: number;
y: number;
hidden: boolean;
rotation: number;
textAlign: CanvasTextAlign;
textBaseline: CanvasTextBaseline;
box: _ModuleSupport.BBox | undefined;
}
interface AngleAxisTickDatum<TDatum> {
value: TDatum;
visible: boolean;
}
export declare abstract class AngleAxis<TDomain, TScale extends Scale<TDomain, any>, TOptions extends NormalisedBaseAngleAxisOptions<NormalisedAngleAxisLabelOptions> = NormalisedBaseAngleAxisOptions<NormalisedAngleAxisLabelOptions>> extends _ModuleSupport.PolarAxis<TScale, any, TOptions> {
protected tickLineGroupSelection: _ModuleSupport.Selection<AngleAxisTickDatum<TDomain>, _ModuleSupport.Line<AngleAxisTickDatum<TDomain>>>;
protected gridLineGroupSelection: _ModuleSupport.Selection<AngleAxisTickDatum<TDomain>, _ModuleSupport.Line<AngleAxisTickDatum<TDomain>>>;
protected labelData: AngleAxisLabelDatum[];
protected tickData: AngleAxisTickDatum<TDomain>[];
protected radiusLineGroup: _ModuleSupport.TransformableGroup<unknown>;
protected radiusLine: _ModuleSupport.Path;
constructor(moduleCtx: DynamicContext<_ModuleSupport.ChartRegistry>, id: AxisID, scale: TScale, options: TOptions);
get direction(): ChartAxisDirection;
calculateRotations(): {
rotation: number;
parallelFlipRotation: number;
regularFlipRotation: number;
};
calculateTickLayout(domain: TDomain[]): {
niceDomain: any[];
tickDomain: TDomain[];
ticks: TDomain[];
rawTickCount: number | undefined;
fractionDigits: number;
timeInterval: undefined;
bbox: _ModuleSupport.BBox;
};
update(): void;
private normalizedAngles;
computeRange(): void;
protected abstract generateAngleTicks(domain: TDomain[]): AngleAxisTickDatum<TDomain>[];
protected updateSelections(): void;
updatePosition(): void;
protected updateRadiusLine(): void;
getAxisLinePoints(): {
points: ({
x: number;
y: number;
moveTo: boolean;
radius?: undefined;
startAngle?: undefined;
endAngle?: undefined;
arc?: undefined;
} | {
x: number;
y: number;
radius: number;
startAngle: number;
endAngle: number;
arc: boolean;
moveTo: boolean;
})[];
closePath: boolean;
};
private updateGridLines;
protected updateLabels(): void;
private updateTickLines;
protected createLabelNodeData(ticks: any[], options: {
hideWhenNecessary: boolean;
}, seriesRect: _ModuleSupport.BBox): AngleAxisLabelDatum[];
protected abstract avoidLabelCollisions(labelData: AngleAxisLabelDatum[]): void;
computeLabelsBBox(options: {
hideWhenNecessary: boolean;
}, seriesRect: _ModuleSupport.BBox): _ModuleSupport.BBox | null;
protected getLabelOrientation(): AgAngleAxisLabelOrientation;
protected getLabelRotation(tickAngle: number): number;
protected getLabelAlign(tickAngle: number): {
textAlign: "left" | "right" | "center";
textBaseline: "top" | "bottom" | "middle";
};
protected computePolarLayout(): _ModuleSupport.PolarAxisLayout;
}
export {};