Christoph Cullmann 2024-04-28 17:33:09 +02:00
parent 4b35583782
commit e77051ccc4
1987 changed files with 1147290 additions and 5648 deletions

View file

@ -0,0 +1,12 @@
import type { TextDimensionCalculator } from '../../textDimensionCalculator.js';
import { BaseAxis } from './baseAxis.js';
import type { XYChartAxisThemeConfig, XYChartAxisConfig } from '../../interfaces.js';
export declare class BandAxis extends BaseAxis {
private scale;
private categories;
constructor(axisConfig: XYChartAxisConfig, axisThemeConfig: XYChartAxisThemeConfig, categories: string[], title: string, textDimensionCalculator: TextDimensionCalculator);
setRange(range: [number, number]): void;
recalculateScale(): void;
getTickValues(): (string | number)[];
getScaleValue(value: string): number;
}

View file

@ -0,0 +1,38 @@
import type { BoundingRect, Dimension, DrawableElem, Point, XYChartAxisConfig, XYChartAxisThemeConfig } from '../../interfaces.js';
import type { TextDimensionCalculator } from '../../textDimensionCalculator.js';
import type { Axis, AxisPosition } from './index.js';
export declare abstract class BaseAxis implements Axis {
protected axisConfig: XYChartAxisConfig;
protected title: string;
protected textDimensionCalculator: TextDimensionCalculator;
protected axisThemeConfig: XYChartAxisThemeConfig;
protected boundingRect: BoundingRect;
protected axisPosition: AxisPosition;
private range;
protected showTitle: boolean;
protected showLabel: boolean;
protected showTick: boolean;
protected showAxisLine: boolean;
protected outerPadding: number;
protected titleTextHeight: number;
protected labelTextHeight: number;
constructor(axisConfig: XYChartAxisConfig, title: string, textDimensionCalculator: TextDimensionCalculator, axisThemeConfig: XYChartAxisThemeConfig);
setRange(range: [number, number]): void;
getRange(): [number, number];
setAxisPosition(axisPosition: AxisPosition): void;
abstract getScaleValue(value: number | string): number;
abstract recalculateScale(): void;
abstract getTickValues(): Array<string | number>;
getTickDistance(): number;
getAxisOuterPadding(): number;
private getLabelDimension;
recalculateOuterPaddingToDrawBar(): void;
private calculateSpaceIfDrawnHorizontally;
private calculateSpaceIfDrawnVertical;
calculateSpace(availableSpace: Dimension): Dimension;
setBoundingBoxXY(point: Point): void;
private getDrawableElementsForLeftAxis;
private getDrawableElementsForBottomAxis;
private getDrawableElementsForTopAxis;
getDrawableElements(): DrawableElem[];
}

View file

@ -0,0 +1,12 @@
import type { Group } from '../../../../../diagram-api/types.js';
import type { AxisDataType, ChartComponent, XYChartAxisConfig, XYChartAxisThemeConfig } from '../../interfaces.js';
export type AxisPosition = 'left' | 'right' | 'top' | 'bottom';
export interface Axis extends ChartComponent {
getScaleValue(value: string | number): number;
setAxisPosition(axisPosition: AxisPosition): void;
getAxisOuterPadding(): number;
getTickDistance(): number;
recalculateOuterPaddingToDrawBar(): void;
setRange(range: [number, number]): void;
}
export declare function getAxis(data: AxisDataType, axisConfig: XYChartAxisConfig, axisThemeConfig: XYChartAxisThemeConfig, tmpSVGGroup: Group): Axis;

View file

@ -0,0 +1,11 @@
import type { TextDimensionCalculator } from '../../textDimensionCalculator.js';
import { BaseAxis } from './baseAxis.js';
import type { XYChartAxisThemeConfig, XYChartAxisConfig } from '../../interfaces.js';
export declare class LinearAxis extends BaseAxis {
private scale;
private domain;
constructor(axisConfig: XYChartAxisConfig, axisThemeConfig: XYChartAxisThemeConfig, domain: [number, number], title: string, textDimensionCalculator: TextDimensionCalculator);
getTickValues(): (string | number)[];
recalculateScale(): void;
getScaleValue(value: number): number;
}

View file

@ -0,0 +1,16 @@
import type { Group } from '../../../../diagram-api/types.js';
import type { ChartComponent, Dimension, DrawableElem, Point, XYChartData, XYChartThemeConfig, XYChartConfig } from '../interfaces.js';
import type { TextDimensionCalculator } from '../textDimensionCalculator.js';
export declare class ChartTitle implements ChartComponent {
private textDimensionCalculator;
private chartConfig;
private chartData;
private chartThemeConfig;
private boundingRect;
private showChartTitle;
constructor(textDimensionCalculator: TextDimensionCalculator, chartConfig: XYChartConfig, chartData: XYChartData, chartThemeConfig: XYChartThemeConfig);
setBoundingBoxXY(point: Point): void;
calculateSpace(availableSpace: Dimension): Dimension;
getDrawableElements(): DrawableElem[];
}
export declare function getChartTitleComponent(chartConfig: XYChartConfig, chartData: XYChartData, chartThemeConfig: XYChartThemeConfig, tmpSVGGroup: Group): ChartComponent;

View file

@ -0,0 +1,12 @@
import type { BarPlotData, BoundingRect, DrawableElem, XYChartConfig } from '../../interfaces.js';
import type { Axis } from '../axis/index.js';
export declare class BarPlot {
private barData;
private boundingRect;
private xAxis;
private yAxis;
private orientation;
private plotIndex;
constructor(barData: BarPlotData, boundingRect: BoundingRect, xAxis: Axis, yAxis: Axis, orientation: XYChartConfig['chartOrientation'], plotIndex: number);
getDrawableElement(): DrawableElem[];
}

View file

@ -0,0 +1,20 @@
import type { XYChartData, Dimension, DrawableElem, Point, XYChartThemeConfig, XYChartConfig } from '../../interfaces.js';
import type { Axis } from '../axis/index.js';
import type { ChartComponent } from '../../interfaces.js';
export interface Plot extends ChartComponent {
setAxes(xAxis: Axis, yAxis: Axis): void;
}
export declare class BasePlot implements Plot {
private chartConfig;
private chartData;
private chartThemeConfig;
private boundingRect;
private xAxis?;
private yAxis?;
constructor(chartConfig: XYChartConfig, chartData: XYChartData, chartThemeConfig: XYChartThemeConfig);
setAxes(xAxis: Axis, yAxis: Axis): void;
setBoundingBoxXY(point: Point): void;
calculateSpace(availableSpace: Dimension): Dimension;
getDrawableElements(): DrawableElem[];
}
export declare function getPlotComponent(chartConfig: XYChartConfig, chartData: XYChartData, chartThemeConfig: XYChartThemeConfig): Plot;

View file

@ -0,0 +1,11 @@
import type { DrawableElem, LinePlotData, XYChartConfig } from '../../interfaces.js';
import type { Axis } from '../axis/index.js';
export declare class LinePlot {
private plotData;
private xAxis;
private yAxis;
private orientation;
private plotIndex;
constructor(plotData: LinePlotData, xAxis: Axis, yAxis: Axis, orientation: XYChartConfig['chartOrientation'], plotIndex: number);
getDrawableElement(): DrawableElem[];
}