1
+ // Type definitions for react-chartjs-2 2.0
2
+ // Project: https://github.com/gor181/react-chartjs-2
3
+ // Definitions by: Alexandre Paré <https://github.com/apare>
4
+ // Fabien Lavocat <https://github.com/FabienLavocat>
5
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
6
+ // TypeScript Version: 2.3
1
7
2
- import * as React from 'react' ;
3
-
4
- interface ChartComponentProps {
5
- data :Object ;
6
- height ? :number ;
7
- legend ? :Object ;
8
- onElementsClick ? :Function ;
9
- options ? :Object ;
10
- redraw ? :boolean ;
11
- type ? :String ;
12
- width ? :number ;
13
- }
14
-
15
- export class Doughnut extends React . Component < ChartComponentProps , any > { }
16
- export class Pie extends React . Component < ChartComponentProps , any > { }
17
- export class Line extends React . Component < ChartComponentProps , any > { }
18
- export class Bar extends React . Component < ChartComponentProps , any > { }
19
- export class HorizontalBar extends React . Component < ChartComponentProps , any > { }
20
- export class Radar extends React . Component < ChartComponentProps , any > { }
21
- export class Polar extends React . Component < ChartComponentProps , any > { }
22
- export class Scatter extends React . Component < ChartComponentProps , any > { }
8
+ import * as React from "react" ;
9
+ import * as chartjs from "chart.js" ;
10
+
11
+ export type ChartDataFunction < T extends chartjs . ChartData > = ( element : HTMLElement ) => T ;
12
+ export type ChartData < T extends chartjs . ChartData > = ChartDataFunction < T > | T ;
13
+
14
+ export interface ChartComponentProps {
15
+ data : ChartData < chartjs . ChartData > ;
16
+ type ?: chartjs . ChartType ;
17
+ getDatasetAtEvent ?( e : any ) : void ;
18
+ getElementAtEvent ?( e : any ) : void ;
19
+ getElementsAtEvent ?( e : any ) : void ;
20
+ height ?: number ;
21
+ legend ?: chartjs . ChartLegendOptions ;
22
+ onElementsClick ?( e : any ) : void ; // alias for getElementsAtEvent (backward compatibility)
23
+ options ?: chartjs . ChartOptions ;
24
+ redraw ?: boolean ;
25
+ width ?: number ;
26
+ }
27
+
28
+ export interface LinearComponentProps extends ChartComponentProps {
29
+ data : ChartData < chartjs . ChartData > ;
30
+ }
31
+
32
+ export default class ChartComponent < P extends ChartComponentProps > extends React . Component < P > {
33
+ chart_instance : chartjs ;
34
+ }
35
+
36
+ export class Doughnut extends ChartComponent < ChartComponentProps > {
37
+ }
38
+
39
+ export class Pie extends ChartComponent < ChartComponentProps > {
40
+ }
41
+
42
+ export class Line extends ChartComponent < LinearComponentProps > {
43
+ }
44
+
45
+ export class Bar extends ChartComponent < LinearComponentProps > {
46
+ }
47
+
48
+ export class HorizontalBar extends ChartComponent < ChartComponentProps > {
49
+ }
50
+
51
+ export class Radar extends ChartComponent < ChartComponentProps > {
52
+ }
53
+
54
+ export class Polar extends ChartComponent < ChartComponentProps > {
55
+ }
56
+
57
+ export class Bubble extends ChartComponent < ChartComponentProps > {
58
+ }
0 commit comments