88 NgZone ,
99 OnChanges ,
1010 OnDestroy ,
11- OnInit ,
1211 Output ,
1312 Renderer2 ,
1413 SimpleChanges ,
@@ -31,8 +30,7 @@ let nextId = 0;
3130 templateUrl : './chartjs.component.html' ,
3231 styleUrls : [ './chartjs.component.scss' ]
3332} )
34- // export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnInit {
35- export class ChartjsComponent implements IChartjs , AfterViewInit , OnDestroy , OnInit , OnChanges {
33+ export class ChartjsComponent implements IChartjs , AfterViewInit , OnDestroy , OnChanges {
3634
3735 static ngAcceptInputType_height : NumberInput ;
3836 static ngAcceptInputType_width : NumberInput ;
@@ -66,14 +64,15 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
6664
6765 @Input ( ) type : ChartType = 'bar' ;
6866
67+ @HostBinding ( 'style.width.px' )
6968 @Input ( )
70- set width ( value : number ) {
69+ set width ( value : number | undefined ) {
7170 this . _width = coerceNumberProperty ( value ) ;
7271 }
7372 get width ( ) {
7473 return this . _width ;
7574 }
76- private _width = 300 ;
75+ private _width : number | undefined ;
7776
7877 @Input ( ) wrapper = true ;
7978
@@ -107,20 +106,36 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
107106 private renderer : Renderer2
108107 ) { }
109108
110- ngOnInit ( ) : void {
111- // this.setupChart();
112- // this.updateChart();
113- }
114-
115109 ngAfterViewInit ( ) : void {
116110 this . setupChart ( ) ;
117111 this . updateChart ( ) ;
118112 }
119113
114+ ngOnChanges ( changes : SimpleChanges ) : void {
115+ this . updateChart ( ) ;
116+ }
117+
120118 ngOnDestroy ( ) : void {
121119 this . destroyChart ( ) ;
122120 }
123121
122+ handleOnClick ( $event : MouseEvent ) {
123+ if ( ! this . chart ) return ;
124+
125+ const datasetAtEvent = this . chart . getElementsAtEventForMode ( $event , 'dataset' , { intersect : true } , false ) ;
126+ this . getDatasetAtEvent . emit ( datasetAtEvent ) ;
127+
128+ const elementAtEvent = this . chart . getElementsAtEventForMode ( $event , 'nearest' , { intersect : true } , false ) ;
129+ this . getElementAtEvent . emit ( elementAtEvent ) ;
130+
131+ const elementsAtEvent = this . chart . getElementsAtEventForMode ( $event , 'index' , { intersect : true } , false ) ;
132+ this . getElementsAtEvent . emit ( elementsAtEvent ) ;
133+ }
134+
135+ destroyChart ( ) {
136+ this . chart ?. destroy ( ) ;
137+ }
138+
124139 setupChart ( ) {
125140 if ( ! this . canvasElement ) return ;
126141
@@ -146,23 +161,6 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
146161 } ) ;
147162 }
148163
149- handleOnClick ( $event : MouseEvent ) {
150- if ( ! this . chart ) return ;
151-
152- const datasetAtEvent = this . chart . getElementsAtEventForMode ( $event , 'dataset' , { intersect : true } , false ) ;
153- this . getDatasetAtEvent . emit ( datasetAtEvent ) ;
154-
155- const elementAtEvent = this . chart . getElementsAtEventForMode ( $event , 'nearest' , { intersect : true } , false ) ;
156- this . getElementAtEvent . emit ( elementAtEvent ) ;
157-
158- const elementsAtEvent = this . chart . getElementsAtEventForMode ( $event , 'index' , { intersect : true } , false ) ;
159- this . getElementsAtEvent . emit ( elementsAtEvent ) ;
160- }
161-
162- destroyChart ( ) {
163- this . chart ?. destroy ( ) ;
164- }
165-
166164 updateChart ( ) {
167165 if ( ! this . chart ) return ;
168166
@@ -171,6 +169,7 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
171169 setTimeout ( ( ) => {
172170 this . setupChart ( ) ;
173171 } ) ;
172+ return ;
174173 }
175174
176175 if ( this . options ) {
@@ -221,8 +220,4 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
221220 } ) ;
222221 } ) ;
223222 }
224-
225- ngOnChanges ( changes : SimpleChanges ) : void {
226- this . updateChart ( ) ;
227- }
228223}
0 commit comments