making symptoms for scatter chart axes selectable
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,13 @@
|
||||
class PageInitializer {
|
||||
|
||||
static #symptomVsSymptomChartView;
|
||||
static #symptomX = 'Immunosuppression';
|
||||
static #symptomY = 'Immunoglobulin therapy';
|
||||
|
||||
static initializePage({ symptom, vaccine, symptomVsSymptomChartViewElement }) {
|
||||
static initializePage({ symptom, vaccine, symptomVsSymptomChart }) {
|
||||
PageInitializer.#configureSymptom(symptom);
|
||||
PageInitializer.#configureVaccine(vaccine);
|
||||
PageInitializer.#symptomVsSymptomChartView = new SymptomVsSymptomChartView(symptomVsSymptomChartViewElement);
|
||||
PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart('Immunosuppression', 'Immunoglobulin therapy');
|
||||
PageInitializer.#configureSymptomVsSymptomChart(symptomVsSymptomChart);
|
||||
}
|
||||
|
||||
static #configureSymptom({ symptomSelectElement, prrByVaccineTableElement, downloadPrrByVaccineTableButton }) {
|
||||
@@ -29,6 +30,29 @@ class PageInitializer {
|
||||
});
|
||||
}
|
||||
|
||||
static #configureSymptomVsSymptomChart({ symptomSelectXElement, symptomSelectYElement, symptomVsSymptomChartViewElement }) {
|
||||
PageInitializer.#symptomVsSymptomChartView = new SymptomVsSymptomChartView(symptomVsSymptomChartViewElement);
|
||||
PageInitializer.#initializeSelectElement(
|
||||
{
|
||||
selectElement: symptomSelectXElement,
|
||||
onValueSelected: symptomX => {
|
||||
PageInitializer.#symptomX = symptomX;
|
||||
PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(PageInitializer.#symptomX, PageInitializer.#symptomY);
|
||||
},
|
||||
minimumInputLength: 0
|
||||
});
|
||||
PageInitializer.#initializeSelectElement(
|
||||
{
|
||||
selectElement: symptomSelectYElement,
|
||||
onValueSelected: symptomY => {
|
||||
PageInitializer.#symptomY = symptomY;
|
||||
PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(PageInitializer.#symptomX, PageInitializer.#symptomY);
|
||||
},
|
||||
minimumInputLength: 0
|
||||
});
|
||||
PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(PageInitializer.#symptomX, PageInitializer.#symptomY);
|
||||
}
|
||||
|
||||
static #initializeSelectElement({ selectElement, onValueSelected, minimumInputLength }) {
|
||||
selectElement.select2({ minimumInputLength: minimumInputLength });
|
||||
selectElement.on(
|
||||
|
||||
@@ -7,7 +7,6 @@ class SymptomVsSymptomChartView {
|
||||
this.#canvas = canvas;
|
||||
}
|
||||
|
||||
// FK-TODO: refactor
|
||||
loadAndDisplayChart(symptomX, symptomY) {
|
||||
Promise
|
||||
.all([symptomX, symptomY].map(symptom => PrrByVaccineProvider.getPrrByVaccine(symptom)))
|
||||
@@ -18,12 +17,6 @@ class SymptomVsSymptomChartView {
|
||||
});
|
||||
}
|
||||
|
||||
setData(histoDescr) {
|
||||
const data = this.#getData(histoDescr);
|
||||
this.#chart.config.data = data;
|
||||
this.#chart.update();
|
||||
}
|
||||
|
||||
#displayChart(symptomX, symptomY, labels, data) {
|
||||
if (this.#chart != null) {
|
||||
this.#chart.destroy();
|
||||
|
||||
Reference in New Issue
Block a user