UNPKG

ag-charts-enterprise

Version:

Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue

87 lines (86 loc) 3.65 kB
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 {};