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
17
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