Files
HowBadIsMyBatch/docs/IntensiveCareCapacitiesChartView.js
2022-04-01 10:00:34 +02:00

82 lines
2.0 KiB
JavaScript

class IntensiveCareCapacitiesChartView {
#canvas;
#chart;
constructor(canvas) {
this.#canvas = canvas;
}
displayChart({ data, title }) {
if (this.#chart != null) {
this.#chart.destroy();
}
this.#chart = new Chart(
this.#canvas,
{
type: 'bar',
data: this.#getData(data),
options: this.#getOptions(title)
});
}
setData(data) {
this.#chart.config.data.datasets[0].data = data;
this.#chart.config.data.datasets[1].data = data;
this.#chart.update();
}
#getData(data) {
return {
datasets: [
{
label: 'Belegte Betten',
data: data,
parsing: {
yAxisKey: 'betten_belegt'
},
backgroundColor: 'rgba(255, 0, 0, 1)'
},
{
label: 'Freie Betten',
data: data,
parsing: {
yAxisKey: 'betten_frei'
},
backgroundColor: 'rgba(0, 255, 0, 1)'
}
]
};
}
#getOptions(title) {
return {
plugins: {
title: {
display: true,
text: title
},
},
responsive: true,
scales: {
x: {
stacked: true,
type: 'time',
time: {
tooltipFormat: 'DD.MM.YYYY',
unit: 'month',
displayFormats: {
'month': 'MMM YYYY'
}
}
},
y: {
stacked: true
}
},
parsing: {
xAxisKey: 'date'
}
};
}
}