Skip to content

Commit 9858f30

Browse files
committed
refactor(chartjs): minor cleanups
1 parent 543bb11 commit 9858f30

File tree

2 files changed

+27
-32
lines changed

2 files changed

+27
-32
lines changed

projects/coreui-angular-chartjs/src/lib/chartjs.component.ts

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
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
}

projects/coreui-angular-chartjs/src/lib/chartjs.interface.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export interface IChartjs {
2121
height?: number;
2222

2323
/**
24-
* id html attribute applied to the rendered canvas.
24+
* Html id attribute applied to the rendered canvas.
2525
*/
2626
id?: string;
2727

0 commit comments

Comments
 (0)