systelab-charts
Version:
Component to show a Chart
884 lines (861 loc) • 29.9 kB
TypeScript
import * as i0 from '@angular/core';
import { AfterViewInit, ElementRef, EventEmitter, ApplicationRef, AfterContentInit, Type, ModuleWithProviders } from '@angular/core';
import * as ChartJS from 'chart.js';
import { InteractionMode as InteractionMode$1, Chart, LinearScale, LogarithmicScale, TimeScale } from 'chart.js';
import { Locale } from 'date-fns';
import { Context } from 'chartjs-plugin-datalabels';
import * as i3 from '@angular/common';
import * as i4 from '@angular/forms';
declare class DecimalFormatService {
/**
* @fieldOf decimalFormat
* @type String
*/
prefix: string;
/**
* @fieldOf decimalFormat
* @type String
*/
suffix: string;
/**
* @description Grouping size
* @fieldOf decimalFormat
* @type String
*/
comma: number;
/**
* @description Minimum integer digits to be displayed
* @fieldOf decimalFormat
* @type Number
*/
minInt: number;
/**
* @description Minimum fractional digits to be displayed
* @fieldOf decimalFormat
* @type String
*/
minFrac: number;
/**
* @description Maximum fractional digits to be displayed
* @fieldOf decimalFormat
* @type String
*/
maxFrac: number;
/**
* @description Formats given value
* @methodOf decimalFormat
* @param numStr
* @param formatStr
* @return Formatted number
* @author Oskan Savli
*/
execute(numStr: any, formatStr: string): any;
private configureService;
/**
* @description Converts formatted value back to non-formatted value
* @methodOf decimalFormat
* @param fNumStr Formatted number
* @return Original number
* @author Oskan Savli
*/
private formatBack;
/**
* @description We shouldn't return strings like 1.000 in formatBack method.
* However, using only Number(str) is not enough, because it omits . in big numbers
* like 23423423423342234.34 => 23423423423342236 . There's a conflict in cases
* 6143 and 6541.
* @methodOf decimalFormat
* @param str Numberic string
* @return Corrected numeric string
* @author Serdar Bicer
*/
private getNumericString;
static ɵfac: i0.ɵɵFactoryDeclaration<DecimalFormatService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DecimalFormatService>;
}
declare class ChartTooltipItem {
title?: string;
label?: string;
afterLabel?: string;
valueInAfterLabel?: boolean;
numberFormat?: string;
constructor(title?: string, label?: string, afterLabel?: string, valueInAfterLabel?: boolean, numberFormat?: string);
}
declare class ChartTooltipSettings {
backgroundColor?: string;
borderColor?: string;
borderWidth?: number;
bodyFontColor?: string;
bodyFontSize?: number;
titleFontSize?: number;
titleFontColor?: string;
constructor(backgroundColor?: string, borderColor?: string, borderWidth?: number, bodyFontColor?: string, bodyFontSize?: number, titleFontSize?: number, titleFontColor?: string);
}
declare class TooltipLegacyService {
private readonly decimalFormatService;
constructor(decimalFormatService: DecimalFormatService);
title(tooltipItems: any): any;
tooltipLabel(tooltipItem: any, tooltipTimeFormatConstant: any): any;
tooltipAfterLabel(tooltipItem: any): string;
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipLegacyService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TooltipLegacyService>;
}
interface MultipleAxis {
id: string;
type: string;
position: string;
stacked: boolean;
max: number;
min: number;
ticks: {
min: number;
max: number;
stepSize?: number;
display?: boolean;
callbackFunction?(any: any): any;
};
border: {
drawBorder: boolean;
};
grid: {
display: boolean;
};
title: {
text: string;
};
}
declare class ChartItem {
label: string;
data: Array<any>;
borderColor?: string;
backgroundColor?: string;
fill?: boolean;
showLine?: boolean;
isGradient?: boolean;
borderWidth?: number;
chartType?: string;
chartTooltipItem?: ChartTooltipItem | Array<ChartTooltipItem>;
pointRadius?: number;
yAxisID?: string;
legendType?: string;
labelBorderColors?: Array<number[]>;
labelBackgroundColors?: Array<number[]>;
constructor(label: string, data: Array<any>, borderColor?: string, backgroundColor?: string, fill?: boolean, showLine?: boolean, isGradient?: boolean, borderWidth?: number, chartType?: string, chartTooltipItem?: ChartTooltipItem | Array<ChartTooltipItem>, pointRadius?: number, yAxisID?: string, legendType?: string, labelBorderColors?: Array<number[]>, labelBackgroundColors?: Array<number[]>);
}
declare class Annotation$1 {
drawTime: string;
type: string;
borderColor?: string;
borderWidth?: number;
scaleId: string;
constructor(drawTime: string, type: string, borderColor?: string, borderWidth?: number, scaleId?: string);
}
declare class ChartLineAnnotation extends Annotation$1 {
label: ChartLabelAnnotation;
value: number;
orientation: string;
borderDash?: Array<number>;
endValue?: number;
constructor(label: ChartLabelAnnotation, value: number, orientation: string, drawTime: string, type: string, borderDash?: Array<number>, borderColor?: string, borderWidth?: number, endValue?: number);
}
declare class ChartLine {
xMinValue: number;
yMinValue: number;
xMaxValue: number;
yMaxValue: number;
borderColor?: string;
borderWidth?: number;
constructor(xMinValue: number, yMinValue: number, xMaxValue: number, yMaxValue: number, borderColor?: string, borderWidth?: number);
}
declare class ChartBoxAnnotation extends Annotation$1 {
xMin: number;
xMax: number;
yMin: number;
yMax: number;
backgroundColor?: string;
constructor(drawTime: string, xMin: number, xMax: number, yMin: number, yMax: number, type: string, backgroundColor?: string, borderColor?: string, borderWidth?: number);
}
declare class ChartLabelAnnotation {
text?: string;
position?: string;
backgroundColor?: string;
fontStyle?: string;
fontColor?: string;
constructor(text?: string, position?: string, backgroundColor?: string, fontStyle?: string, fontColor?: string);
}
declare class ChartLabelSettings {
position?: ChartLabelPosition;
labelColors?: ChartLabelColor;
chartLabelFont?: ChartLabelFont;
chartLabelPadding?: ChartLabelPadding;
chartLabelText?: ChartLabelText;
formatter?: (value: any, context: any) => string;
constructor(position?: ChartLabelPosition, labelColors?: ChartLabelColor, chartLabelFont?: ChartLabelFont, chartLabelPadding?: ChartLabelPadding, chartLabelText?: ChartLabelText, formatter?: (value: any, context: any) => string);
}
declare class ChartLabelPosition {
align?: string | number;
anchor?: string;
clamp?: boolean;
clip?: boolean;
display?: ((context: any) => (boolean | string)) | boolean | string;
offset?: number;
rotation?: number;
constructor(align?: string | number, anchor?: string, clamp?: boolean, clip?: boolean, display?: ((context: any) => (boolean | string)) | boolean | string, offset?: number, rotation?: number);
}
declare class ChartLabelColor {
backgroundColor?: string;
color?: string;
borderColor?: string;
borderRadius?: number;
borderWidth?: number;
opacity?: number;
constructor(backgroundColor?: string, color?: string, borderColor?: string, borderRadius?: number, borderWidth?: number, opacity?: number);
}
declare class ChartLabelFont {
font?: object;
family?: string;
size?: number;
style?: string;
weight?: string | number;
lineHeight?: string | number;
constructor(font?: object, family?: string, size?: number, style?: string, weight?: string | number, lineHeight?: string | number);
}
declare class ChartLabelPadding {
padding?: number | object;
top?: number;
right?: number;
bottom?: number;
left?: number;
constructor(padding?: number | object, top?: number, right?: number, bottom?: number, left?: number);
}
declare class ChartLabelText {
textAlign?: string;
textStrokeColor?: string;
textShadowBlur?: number;
textStrokeWidth?: number;
textShadowColor?: string;
constructor(textAlign?: string, textStrokeColor?: string, textShadowBlur?: number, textStrokeWidth?: number, textShadowColor?: string);
}
declare class ChartMultipleYAxisScales {
id?: string;
type?: string;
position?: string;
stacked: boolean;
ticks?: {
min: number;
max: number;
stepSize?: number;
display?: boolean;
};
gridLines?: {
display: boolean;
drawBorder: boolean;
};
scaleLabel?: {
display: boolean;
labelString: string;
};
constructor(id?: string, type?: string, position?: string, stacked?: boolean, ticks?: {
min: number;
max: number;
stepSize?: number;
display?: boolean;
}, gridLines?: {
display: boolean;
drawBorder: boolean;
}, scaleLabel?: {
display: boolean;
labelString: string;
});
getScaleDefinition(callbackFunction?: (value: any, index: any, values: any) => string): MultipleAxis;
}
declare class ChartIntersectionSettings {
intersect: boolean;
mode: string;
constructor(intersect?: boolean, mode?: InteractionMode$1);
}
declare class ChartLegacyComponent implements AfterViewInit {
private readonly appRef;
private readonly tooltipsService;
canvas: ElementRef;
topLegend: ElementRef;
bottomLegend: ElementRef;
labels: Array<any>;
data: Array<ChartItem>;
annotations: Array<Annotation$1 | ChartLineAnnotation | ChartBoxAnnotation>;
showLegend: boolean;
legendPosition: string;
intersectionSettings: ChartIntersectionSettings;
isHorizontal: boolean;
yMinValue: any;
yMaxValue: any;
xMinValue: any;
xMaxValue: any;
xAutoSkip: boolean;
yLabelAxis: string;
xLabelAxis: string;
lineTension: number;
isBackgroundGrid: boolean;
type: string;
responsive: boolean;
maintainAspectRatio: boolean;
tooltipSettings: ChartTooltipSettings;
chartLabelSettings: ChartLabelSettings;
isStacked: boolean;
animationDuration: number;
minValueForRadar: number;
maxValueForRadar: number;
multipleYAxisScales: ChartMultipleYAxisScales[];
timeScale: boolean;
timeUnit: string;
tooltipTimeFormat: string;
customLegend: boolean;
legendWithoutBox: boolean;
hideInitialAndFinalTick: boolean;
hideFinalTick: boolean;
chartLine: ChartLine;
pointStyle: string | 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
canvasBackground: string;
itemSelectedChange: EventEmitter<any>;
action: EventEmitter<any>;
chart: Chart;
chartResized: boolean;
private defaultColors;
private _itemSelected;
private dataset;
private _annotations;
private axesVisible;
private yAxisLabelVisible;
private xAxisLabelVisible;
constructor(appRef: ApplicationRef, tooltipsService: TooltipLegacyService);
get itemSelected(): any;
set itemSelected(value: any);
ngAfterViewInit(): void;
rgba(colour: Array<number>, alpha: number): string;
getResizedBase64Image(height?: number, width?: number): string;
doResizeChart(height: number, width: number): boolean;
doUpdate(): void;
drawLine(chartData: any, chartLine: ChartLine): void;
private initCustomLegend;
private buildCustomLegend;
private generateLegend;
private drawChart;
private legendCallback;
private scales;
private initDatalabelsFontProperties;
private initDatalabelsPaddingProperties;
private setData;
private addAnnotations;
private addLineAnnotation;
private getColorNumber;
private addBoxAnnotation;
private setAxisVisibility;
private legendClickCallback;
static ɵfac: i0.ɵɵFactoryDeclaration<ChartLegacyComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ChartLegacyComponent, "systelab-chart-legacy", never, { "labels": { "alias": "labels"; "required": false; }; "data": { "alias": "data"; "required": false; }; "annotations": { "alias": "annotations"; "required": false; }; "showLegend": { "alias": "showLegend"; "required": false; }; "legendPosition": { "alias": "legendPosition"; "required": false; }; "intersectionSettings": { "alias": "intersectionSettings"; "required": false; }; "isHorizontal": { "alias": "isHorizontal"; "required": false; }; "yMinValue": { "alias": "yMinValue"; "required": false; }; "yMaxValue": { "alias": "yMaxValue"; "required": false; }; "xMinValue": { "alias": "xMinValue"; "required": false; }; "xMaxValue": { "alias": "xMaxValue"; "required": false; }; "xAutoSkip": { "alias": "xAutoSkip"; "required": false; }; "yLabelAxis": { "alias": "yLabelAxis"; "required": false; }; "xLabelAxis": { "alias": "xLabelAxis"; "required": false; }; "lineTension": { "alias": "lineTension"; "required": false; }; "isBackgroundGrid": { "alias": "isBackgroundGrid"; "required": false; }; "type": { "alias": "type"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "maintainAspectRatio": { "alias": "maintainAspectRatio"; "required": false; }; "tooltipSettings": { "alias": "tooltipSettings"; "required": false; }; "chartLabelSettings": { "alias": "chartLabelSettings"; "required": false; }; "isStacked": { "alias": "isStacked"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "minValueForRadar": { "alias": "minValueForRadar"; "required": false; }; "maxValueForRadar": { "alias": "maxValueForRadar"; "required": false; }; "multipleYAxisScales": { "alias": "multipleYAxisScales"; "required": false; }; "timeScale": { "alias": "timeScale"; "required": false; }; "timeUnit": { "alias": "timeUnit"; "required": false; }; "tooltipTimeFormat": { "alias": "tooltipTimeFormat"; "required": false; }; "customLegend": { "alias": "customLegend"; "required": false; }; "legendWithoutBox": { "alias": "legendWithoutBox"; "required": false; }; "hideInitialAndFinalTick": { "alias": "hideInitialAndFinalTick"; "required": false; }; "hideFinalTick": { "alias": "hideFinalTick"; "required": false; }; "chartLine": { "alias": "chartLine"; "required": false; }; "pointStyle": { "alias": "pointStyle"; "required": false; }; "canvasBackground": { "alias": "canvasBackground"; "required": false; }; "itemSelected": { "alias": "itemSelected"; "required": false; }; }, { "itemSelectedChange": "itemSelectedChange"; "action": "action"; }, never, never, false, never>;
}
type AnnotationTypes = LineAnnotation | BoxAnnotation | PointAnnotation | EllipseAnnotation;
interface Annotation {
type: AnnotationType;
axisID?: string;
drawTime?: AnnotationDrawTime;
backgroundColor?: string;
}
declare enum AnnotationType {
line = "line",
box = "box",
point = "point",
ellipse = "ellipse"
}
declare enum AnnotationDrawTime {
afterDraw = "afterDraw",
afterDatasetsDraw = "afterDatasetsDraw",
beforeDraw = "beforeDraw",
beforeDatasetsDraw = "beforeDatasetsDraw"
}
interface LineAnnotation extends Annotation {
label?: AnnotationLabel;
value: number | string;
endValue?: number;
orientation?: LineAnnotationOrientation;
border?: {
width?: number;
color?: string;
dash?: boolean;
};
}
declare enum LineAnnotationOrientation {
vertical = "vertical",
horizontal = "horizontal"
}
interface LineAnnotationDefaultConfiguration extends Omit<LineAnnotation, 'value' | 'type' | 'label'> {
label?: Omit<AnnotationLabel, 'display' | 'text'>;
}
interface AnnotationLabel {
display: boolean;
text: string;
position?: AnnotationLabelLabelPosition;
backgroundColor?: string;
font?: {
style: string;
color: string;
};
border?: {
width?: number;
color?: string;
radius?: number;
};
}
declare enum AnnotationLabelLabelPosition {
start = "start",
center = "center",
end = "end"
}
interface BoxAnnotation extends Annotation {
limits: {
x: {
min: number;
max: number;
};
y: {
min: number;
max: number;
};
};
xAxisID?: string;
yAxisID?: string;
border?: {
width?: number;
radius?: number;
color?: string;
};
}
interface PointAnnotation extends Annotation {
x: number;
y: number;
xAxisID?: string;
yAxisID?: string;
radius?: number;
border?: {
width?: number;
color?: string;
};
}
interface EllipseAnnotation extends Annotation {
xMax: number;
xMin: number;
yMax: number;
yMin: number;
xAxisID?: string;
yAxisID?: string;
rotation: number;
backgroundColor?: string;
border?: {
width?: number;
color?: string;
};
}
interface Axes {
isHorizontal?: boolean;
mainAxis?: 'x' | 'y';
dataAxes?: Axis;
}
interface Axis {
[id: string]: AxisContent;
}
interface AxisContent {
title?: {
display: boolean;
text: string;
};
type?: string;
position?: string;
distribution?: string;
time?: {
unit: string;
minUnit: string;
};
stacked?: boolean;
min?: number;
max?: number;
ticks?: Ticks;
border?: {
drawBorder?: boolean;
};
grid?: {
display: boolean;
};
adapters?: {
date: {
locale: Locale;
};
};
}
interface Ticks {
display?: boolean;
min?: number;
max?: number;
stepSize?: number;
autoSkip?: boolean;
initialTick?: boolean;
finalTick?: boolean;
callback?: (val: any, index: any) => string | string[];
}
interface Legend {
enabled?: boolean;
title?: {
enabled: boolean;
text: string;
color?: string;
font?: {
size?: number;
style?: string;
weight?: string;
};
};
labels?: {
enabled: boolean;
pointStyle: LegendPointStyle | HTMLImageElement;
};
position?: LegendPosition;
align?: LegendAlign;
disabledClickEvent?: boolean;
}
declare enum LegendPointStyle {
circle = "circle",
cross = "cross",
crossRot = "crossRot",
dash = "dash",
line = "line",
rect = "rect",
rectRounded = "rectRounded",
rectRot = "rectRot",
star = "star",
triangle = "triangle"
}
declare enum LegendPosition {
top = "top",
right = "right",
bottom = "bottom",
left = "left",
chartArea = "chartArea"
}
declare enum LegendAlign {
start = "start",
center = "center",
end = "end"
}
declare enum LegendType {
line = "line"
}
type Dataset = LineDataset | BarDataset | BubbleDataset | TimeDataset | ScatterDataset;
type ChartPointStyleAllowedType = ChartPointStyle | LegendPointStyle | HTMLImageElement | undefined;
interface BaseDataset {
label?: string;
type?: ChartType;
backgroundColor?: string | number[][];
pointStyle?: ChartPointStyleAllowedType;
isGradient?: boolean;
fill?: boolean;
yAxisID?: string;
datalabels?: {
align: string;
anchor: string;
};
pointRadius?: number;
}
interface LineDataset extends BaseDataset {
data: number[];
border?: LineDatasetBorderStyle | LineDatasetBorderStyle[];
}
interface LineDatasetBorderStyle {
color?: string | number[];
width?: number;
dash?: number[];
}
interface BarDataset extends BaseDataset {
data: number[];
border?: BarDatasetBorderStyle | BarDatasetBorderStyle[];
}
interface BarDatasetBorderStyle {
width?: number;
color?: string | number[];
radius?: number;
}
interface BubbleDataset extends BaseDataset {
data: BubblePoint[];
border?: BubbleDatasetBorderStyle | BubbleDatasetBorderStyle[];
}
interface BubblePoint {
x: number;
y: number;
r: number;
}
interface BubbleDatasetBorderStyle {
width?: number;
color?: string | number[];
}
interface TimeDataset extends BaseDataset {
data: TimePoint[];
border?: TimeDatasetBorderStyle | TimeDatasetBorderStyle[];
}
interface TimePoint {
x: string | Date;
y: number;
}
interface TimeDatasetBorderStyle {
width?: number;
color?: string | number[];
}
interface ScatterDataset extends BaseDataset {
data: ScatterPoint[];
showLine: boolean;
border?: ScatterDatasetBorderStyle | ScatterDatasetBorderStyle[];
}
interface ScatterPoint {
x: number;
y: number;
}
interface ScatterDatasetBorderStyle {
color?: string | number[];
width?: number;
dash?: number[];
}
interface Tooltip {
enabled: boolean;
position?: string;
backgroundColor?: string;
title?: {
enabled?: boolean;
text?: string;
prefix?: string;
fontSize?: string;
fontColor?: string;
};
}
interface ClickPoint {
x: number;
y: number;
}
interface Zoom {
zoom?: {
wheel: {
enabled: boolean;
};
pinch: {
enabled: boolean;
};
mode: 'x' | 'y' | 'xy';
scaleMode?: 'x' | 'y' | 'xy';
overScaleMode?: 'x' | 'y' | 'xy';
};
pan?: {
enabled: boolean;
mode: 'x' | 'y' | 'xy';
scaleMode?: 'x' | 'y' | 'xy';
overScaleMode?: 'x' | 'y' | 'xy';
};
limits?: {
x: {
min: number;
max: number;
};
y: {
min: number;
max: number;
};
};
}
interface ChartConfiguration {
type: ChartType;
labels?: {
data: (string | Date)[];
skipItems?: number;
showOnlyIntegers?: boolean;
};
datasets: Dataset[];
annotations?: AnnotationTypes[];
tooltip?: Tooltip;
customTooltip?: CustomTooltipFn;
legend?: Legend;
grid?: {
enabled: boolean;
limits: {
x: {
max: number;
min: number;
};
y: {
max: number;
min: number;
};
};
};
axes?: Axes;
options?: {
responsive?: boolean;
line?: {
tension: number;
};
maintainAspectRatio?: boolean;
animations?: {
duration: number;
};
interaction?: {
intersect: boolean;
mode: InteractionMode;
};
datalabels?: {
display: boolean | DatalabelsDisplayFunction;
formatter: DatalabelsFormatterFunction;
font?: {
color: string;
weight: string;
};
};
onClick?: OnClickCallbackFunction;
zoom?: Zoom;
};
}
type ChartJSContext = Context;
type DatalabelsFormatterFunction = (value: any, context: ChartJSContext) => number | string;
type DatalabelsDisplayFunction = (context: ChartJSContext) => boolean;
type OnClickCallbackFunction = (data: ClickPoint) => void;
type CustomTooltipFn = (context: ChartJSContext) => void;
declare enum ChartType {
line = "line",
bar = "bar",
pie = "pie",
radar = "radar",
doughnut = "doughnut",
polarArea = "polarArea",
scatter = "scatter",
bubble = "bubble"
}
declare enum ChartPointStyle {
Circle = "circle",
Cross = "cross",
CrossRotated = "crossRot",
Line = "line",
Rectangle = "rect",
RectangleRounded = "rectRounded",
RectangleRotated = "rectRot",
Star = "star",
Triangle = "triangle"
}
declare enum InteractionMode {
point = "point",
nearest = "nearest",
index = "index",
dataset = "dataset",
x = "x",
y = "y"
}
declare class AxesService {
mapConfiguration(configuration: ChartConfiguration): (LinearScale | LogarithmicScale | TimeScale | undefined);
static ɵfac: i0.ɵɵFactoryDeclaration<AxesService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AxesService>;
}
declare class DatasetService {
private readonly defaultColors;
mapDatasets(chartConfiguration: ChartConfiguration, cx: CanvasRenderingContext2D): any[];
private mapDataset;
private buildOutputDataset;
private setPointStyle;
private getPieDoughnutPolarAreaColors;
private toRGBA;
private fillForScatterChart;
static ɵfac: i0.ɵɵFactoryDeclaration<DatasetService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DatasetService>;
}
declare class AnnotationService {
mapAnnotations(annotations: AnnotationTypes[]): any[];
private mapBoxAnnotation;
private mapPointAnnotation;
private mapLineAnnotation;
private mapEllipseAnnotation;
private isBoxAnnotation;
private isPointAnnotation;
private isLineAnnotation;
private isEllipseAnnotation;
static ɵfac: i0.ɵɵFactoryDeclaration<AnnotationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AnnotationService>;
}
declare class LegendService {
mapLegend(legend: Legend): {
onClick: () => void;
position: LegendPosition;
align: LegendAlign;
labels: {
usePointStyle: boolean;
pointStyle: HTMLImageElement | LegendPointStyle;
};
title: {
enabled: boolean;
text: string;
};
display: boolean;
};
static ɵfac: i0.ɵɵFactoryDeclaration<LegendService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<LegendService>;
}
declare class TooltipService {
mapTooltip(chartConfiguration: ChartConfiguration): {
enabled: boolean;
usePointStyle: boolean;
callbacks: {
title: (tooltipItems: any) => string;
};
external: CustomTooltipFn;
};
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TooltipService>;
}
type ChartJSOnClick = (event: ChartJS.ChartEvent, elements: ChartJS.ActiveElement[], chart: ChartJS.Chart) => void;
declare class ClickService {
map(userOnClick: OnClickCallbackFunction): ChartJSOnClick;
private toClickPoint;
static ɵfac: i0.ɵɵFactoryDeclaration<ClickService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ClickService>;
}
declare class ZoomService {
mapZoom(chartConfiguration: ChartConfiguration): Zoom;
static ɵfac: i0.ɵɵFactoryDeclaration<ZoomService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ZoomService>;
}
declare class ChartService {
private readonly axesService;
private readonly datasetService;
private readonly annotationService;
private readonly legendService;
private readonly tooltipService;
private readonly clickService;
private readonly zoomService;
private _cx;
constructor(axesService: AxesService, datasetService: DatasetService, annotationService: AnnotationService, legendService: LegendService, tooltipService: TooltipService, clickService: ClickService, zoomService: ZoomService);
mapConfiguration(configuration: ChartConfiguration, cx: CanvasRenderingContext2D): ChartJS.ChartConfiguration;
private mapBasicInformation;
static ɵfac: i0.ɵɵFactoryDeclaration<ChartService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ChartService>;
}
declare class ChartComponent implements AfterContentInit {
private readonly chartService;
config: ChartConfiguration;
chartCanvas: ElementRef;
chart: ChartJS.Chart;
drawing: boolean;
constructor(chartService: ChartService);
ngAfterContentInit(): void;
refresh(): void;
private drawChart;
static ɵfac: i0.ɵɵFactoryDeclaration<ChartComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "systelab-chart", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
}
declare class SystelabChartsModule {
static forRoot(entryComponents?: Array<Type<any> | any[]>): ModuleWithProviders<SystelabChartsModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<SystelabChartsModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<SystelabChartsModule, [typeof ChartLegacyComponent, typeof ChartComponent], [typeof i3.CommonModule, typeof i4.FormsModule], [typeof ChartLegacyComponent, typeof ChartComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<SystelabChartsModule>;
}
export { Annotation$1 as Annotation, AnnotationDrawTime, AnnotationLabelLabelPosition, AnnotationType, ChartBoxAnnotation, ChartComponent, ChartIntersectionSettings, ChartItem, ChartLabelAnnotation, ChartLabelColor, ChartLabelFont, ChartLabelPadding, ChartLabelPosition, ChartLabelSettings, ChartLabelText, ChartLegacyComponent, ChartLine, ChartLineAnnotation, ChartMultipleYAxisScales, ChartPointStyle, ChartTooltipItem, ChartTooltipSettings, ChartType, InteractionMode, LegendAlign, LegendPointStyle, LegendPosition, LegendType, LineAnnotationOrientation, SystelabChartsModule, TooltipLegacyService };
export type { AnnotationLabel, AnnotationTypes, Axes, Axis, AxisContent, BarDataset, BarDatasetBorderStyle, BaseDataset, BoxAnnotation, BubbleDataset, BubbleDatasetBorderStyle, BubblePoint, ChartConfiguration, ChartJSContext, ChartPointStyleAllowedType, ClickPoint, CustomTooltipFn, DatalabelsDisplayFunction, DatalabelsFormatterFunction, Dataset, EllipseAnnotation, Legend, LineAnnotation, LineAnnotationDefaultConfiguration, LineDataset, LineDatasetBorderStyle, OnClickCallbackFunction, PointAnnotation, ScatterDataset, ScatterDatasetBorderStyle, ScatterPoint, Ticks, TimeDataset, TimeDatasetBorderStyle, TimePoint, Tooltip };