UNPKG

6.63 kBTypeScriptView Raw
1// Type definitions for Chart.js
2// Project: https://github.com/nnnick/Chart.js
3// Definitions by: Steve Fenton <https://github.com/Steve-Fenton>
4// Alessio Fanelli <https://github.com/FanaHOVA>
5// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
6
7interface ChartDataSet {
8 label: string;
9 fillColor: string;
10 strokeColor: string;
11 type?: string;
12 yAxisID?: string;
13 xAxisID?: string;
14
15 borderColor?: string;
16 /* Line, Radar */
17 pointColor?: string;
18 pointStrokeColor?: string;
19 pointHighlightFill?: string;
20 pointHighlightStroke?: string;
21
22 /* Bar */
23 highlightFill?: string;
24 highlightStroke?: string;
25 backgroundColorHover?: string;
26
27 data: number[];
28}
29
30interface LinearChartData {
31 labels: string[];
32 datasets: ChartDataSet[];
33}
34
35interface CircularChartData {
36 value: number;
37 color?: string;
38 highlight?: string;
39 label?: string;
40}
41
42interface ChartSettings {
43 animation?: boolean;
44 animationSteps?: number;
45 animationEasing?: string;
46 showScale?: boolean;
47 scaleOverride?: boolean;
48 scaleSteps?: number;
49 scaleStepWidth?: number;
50 scaleStartValue?: number;
51 scaleLineColor?: string;
52 scaleLineWidth?: number;
53 scaleShowLabels?: boolean;
54 scaleLabel?: string;
55 scaleIntegersOnly?: boolean;
56 scaleBeginAtZero?: boolean;
57 scaleFontFamily?: string;
58 scaleFontSize?: number;
59 scaleFontStyle?: string;
60 scaleFontColor?: string;
61 responsive?: boolean;
62 maintainAspectRatio?: boolean;
63 showTooltips?: boolean;
64 tooltipEvents?: string[];
65 tooltipFillColor?: string;
66 tooltipFontFamily?: string;
67 tooltipFontSize?: number;
68 tooltipFontStyle?: string;
69 tooltipFontColor?: string;
70 tooltipTitleFontFamily?: string;
71 tooltipTitleFontSize?: number;
72 tooltipTitleFontStyle?: string;
73 tooltipTitleFontColor?: string;
74 tooltipYPadding?: number;
75 tooltipXPadding?: number;
76 tooltipCaretSize?: number;
77 tooltipCornerRadius?: number;
78 tooltipXOffset?: number;
79 tooltipTemplate?: string;
80 multiTooltipTemplate?: string;
81 onAnimationProgress?: () => any;
82 onAnimationComplete?: () => any;
83}
84
85interface ChartOptions extends ChartSettings {
86 scaleShowGridLines?: boolean;
87 scaleGridLineColor?: string;
88 scaleGridLineWidth?: number;
89 scaleShowHorizontalLines?: boolean;
90 scaleShowVerticalLines?: boolean;
91 legendTemplate?: string;
92 tooltips?: ChartTooltips;
93 legend?: ChartLegend;
94 scales?: ChartScales;
95 title?: ChartTitle;
96}
97
98interface ChartTooltips {
99 mode?: string;
100 intersect?: boolean;
101}
102
103interface ChartLegend {
104 display?: boolean;
105 position?: string;
106}
107
108interface ChartScales {
109 xAxes?: Array<ChartScalesOptions>;
110 yAxes?: Array<ChartScalesOptions>;
111}
112
113interface ChartScalesOptions {
114 stacked?: boolean;
115 position?: string;
116 id?: string;
117 ticks?: ScaleTicksOptions;
118}
119
120interface ScaleTicksOptions {
121 min?: number;
122 max?: number;
123}
124
125interface ChartTitle {
126 display?: boolean;
127 text?: string;
128}
129
130interface PointsAtEvent {
131 value: number;
132 label: string;
133 datasetLabel: string;
134 strokeColor: string;
135 fillColor: string;
136 highlightFill: string;
137 highlightStroke: string;
138 x: number;
139 y: number;
140}
141
142interface ChartInstance {
143 clear: () => void;
144 stop: () => void;
145 resize: () => void;
146 destroy: () => void;
147 toBase64Image: () => string;
148 generateLegend: () => string;
149}
150
151interface LinearInstance extends ChartInstance {
152 getPointsAtEvent: (event: Event) => PointsAtEvent[];
153 update: () => void;
154 addData: (valuesArray: number[], label: string) => void;
155 removeData: (index?: number) => void;
156}
157
158interface CircularInstance extends ChartInstance {
159 getSegmentsAtEvent: (event: Event) => {}[];
160 update: () => void;
161 addData: (valuesArray: CircularChartData, index?: number) => void;
162 removeData: (index: number) => void;
163 segments: Array<CircularChartData>;
164}
165
166interface LineChartOptions extends ChartOptions {
167 bezierCurve?: boolean;
168 bezierCurveTension?: number;
169 pointDot?: boolean;
170 pointDotRadius?: number;
171 pointDotStrokeWidth?: number;
172 pointHitDetectionRadius?: number;
173 datasetStroke?: boolean;
174 datasetStrokeWidth?: number;
175 datasetFill?: boolean;
176}
177
178interface BarChartOptions extends ChartOptions {
179 scaleBeginAtZero?: boolean;
180 barShowStroke?: boolean;
181 barStrokeWidth?: number;
182 barValueSpacing?: number;
183 barDatasetSpacing?: number;
184}
185
186interface RadarChartOptions extends ChartSettings {
187 scaleShowLine?: boolean;
188 angleShowLineOut?: boolean;
189 scaleShowLabels?: boolean;
190 scaleBeginAtZero?: boolean;
191 angleLineColor?: string;
192 angleLineWidth?: number;
193 pointLabelFontFamily?: string;
194 pointLabelFontStyle?: string;
195 pointLabelFontSize?: number;
196 pointLabelFontColor?: string;
197 pointDot?: boolean;
198 pointDotRadius?: number;
199 pointDotStrokeWidth?: number;
200 pointHitDetectionRadius?: number;
201 datasetStroke?: boolean;
202 datasetStrokeWidth?: number;
203 datasetFill?: boolean;
204 legendTemplate?: string;
205}
206
207interface PolarAreaChartOptions extends ChartSettings {
208 scaleShowLabelBackdrop?: boolean;
209 scaleBackdropColor?: string;
210 scaleBeginAtZero?: boolean;
211 scaleBackdropPaddingY?: number;
212 scaleBackdropPaddingX?: number;
213 scaleShowLine?: boolean;
214 segmentShowStroke?: boolean;
215 segmentStrokeColor?: string;
216 segmentStrokeWidth?: number;
217 animationSteps?: number;
218 animationEasing?: string;
219 animateRotate?: boolean;
220 animateScale?: boolean;
221 legendTemplate?: string;
222}
223
224interface PieChartOptions extends ChartSettings {
225 segmentShowStroke?: boolean;
226 segmentStrokeColor?: string;
227 segmentStrokeWidth?: number;
228 percentageInnerCutout?: number;
229 animationSteps?: number;
230 animationEasing?: string;
231 animateRotate?: boolean;
232 animateScale?: boolean;
233 legendTemplate?: string;
234}
235
236interface Chart {
237 Line(data: LinearChartData, options?: LineChartOptions): LinearInstance;
238 Bar(data: LinearChartData, options?: BarChartOptions): LinearInstance;
239 Radar(data: LinearChartData, options?: RadarChartOptions): LinearInstance;
240
241 PolarArea(data: CircularChartData[], options?: PolarAreaChartOptions): CircularInstance;
242 Pie(data: CircularChartData[], options?: PieChartOptions): CircularInstance;
243 Doughnut(data: CircularChartData[], options?: PieChartOptions): CircularInstance;
244}
245
246declare var Chart: {
247 new (context: CanvasRenderingContext2D): Chart;
248 defaults: {
249 global: ChartSettings;
250 }
251};