8
8
NgZone ,
9
9
OnChanges ,
10
10
OnDestroy ,
11
- OnInit ,
12
11
Output ,
13
12
Renderer2 ,
14
13
SimpleChanges ,
@@ -31,8 +30,7 @@ let nextId = 0;
31
30
templateUrl : './chartjs.component.html' ,
32
31
styleUrls : [ './chartjs.component.scss' ]
33
32
} )
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 {
36
34
37
35
static ngAcceptInputType_height : NumberInput ;
38
36
static ngAcceptInputType_width : NumberInput ;
@@ -66,14 +64,15 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
66
64
67
65
@Input ( ) type : ChartType = 'bar' ;
68
66
67
+ @HostBinding ( 'style.width.px' )
69
68
@Input ( )
70
- set width ( value : number ) {
69
+ set width ( value : number | undefined ) {
71
70
this . _width = coerceNumberProperty ( value ) ;
72
71
}
73
72
get width ( ) {
74
73
return this . _width ;
75
74
}
76
- private _width = 300 ;
75
+ private _width : number | undefined ;
77
76
78
77
@Input ( ) wrapper = true ;
79
78
@@ -107,20 +106,36 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
107
106
private renderer : Renderer2
108
107
) { }
109
108
110
- ngOnInit ( ) : void {
111
- // this.setupChart();
112
- // this.updateChart();
113
- }
114
-
115
109
ngAfterViewInit ( ) : void {
116
110
this . setupChart ( ) ;
117
111
this . updateChart ( ) ;
118
112
}
119
113
114
+ ngOnChanges ( changes : SimpleChanges ) : void {
115
+ this . updateChart ( ) ;
116
+ }
117
+
120
118
ngOnDestroy ( ) : void {
121
119
this . destroyChart ( ) ;
122
120
}
123
121
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
+
124
139
setupChart ( ) {
125
140
if ( ! this . canvasElement ) return ;
126
141
@@ -146,23 +161,6 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
146
161
} ) ;
147
162
}
148
163
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
-
166
164
updateChart ( ) {
167
165
if ( ! this . chart ) return ;
168
166
@@ -171,6 +169,7 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
171
169
setTimeout ( ( ) => {
172
170
this . setupChart ( ) ;
173
171
} ) ;
172
+ return ;
174
173
}
175
174
176
175
if ( this . options ) {
@@ -221,8 +220,4 @@ export class ChartjsComponent implements IChartjs, AfterViewInit, OnDestroy, OnI
221
220
} ) ;
222
221
} ) ;
223
222
}
224
-
225
- ngOnChanges ( changes : SimpleChanges ) : void {
226
- this . updateChart ( ) ;
227
- }
228
223
}
0 commit comments