refactoring
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
class Dict2CsvConverter {
|
||||
|
||||
static convertDict2CSV(dict) {
|
||||
const { 'keys': columns, 'values': firstRow } = Utils.getKeysAlignedWithValues(dict);
|
||||
return `${Dict2CsvConverter.#quoteValues(columns)}\n${firstRow}`;
|
||||
}
|
||||
|
||||
static #quoteValues(values) {
|
||||
return values.map(Dict2CsvConverter.#quoteValue);
|
||||
}
|
||||
|
||||
static #quoteValue(value) {
|
||||
return '"' + value + '"';
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,6 @@
|
||||
<link href="gentelella/build/css/custom.css" rel="stylesheet" />
|
||||
<link href="forkMeOnGitHub.css" rel="stylesheet" type="text/css" />
|
||||
<script src="./Utils.js"></script>
|
||||
<script src="./Dict2CsvConverter.js"></script>
|
||||
<script src="./UIUtils.js"></script>
|
||||
<script src="./DataTablesFilter.js"></script>
|
||||
<script src="./NumberWithBarElementFactory.js"></script>
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
<link href="../gentelella/build/css/custom.css" rel="stylesheet" />
|
||||
<link href="../forkMeOnGitHub.css" rel="stylesheet" type="text/css" />
|
||||
<script src="../Utils.js"></script>
|
||||
<script src="../Dict2CsvConverter.js"></script>
|
||||
<script src="../UIUtils.js"></script>
|
||||
<script src="../NumberWithBarElementFactory.js"></script>
|
||||
<script src="./js/PrrByKey2CsvConverter.js"></script>
|
||||
<script src="./js/PageInitializer.js"></script>
|
||||
<script src="./js/PrrByVaccineProvider.js"></script>
|
||||
<script src="./js/PrrByVaccineTable.js"></script>
|
||||
|
||||
34
docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js
Normal file
34
docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js
Normal file
@@ -0,0 +1,34 @@
|
||||
class PrrByKey2CsvConverter {
|
||||
|
||||
static convertPrrByKey2Csv({ prrByKey, keyColumn, prrColumn }) {
|
||||
return PrrByKey2CsvConverter.#convert2Csv(
|
||||
{
|
||||
prrByKey: PrrByKey2CsvConverter.#quoteKeys(prrByKey),
|
||||
keyColumn: PrrByKey2CsvConverter.#quote(keyColumn),
|
||||
prrColumn: PrrByKey2CsvConverter.#quote(prrColumn)
|
||||
});
|
||||
}
|
||||
|
||||
static #quoteKeys(prrByKey) {
|
||||
return Object.fromEntries(
|
||||
Object
|
||||
.entries(prrByKey)
|
||||
.map(([key, prr]) => [PrrByKey2CsvConverter.#quote(key), prr]))
|
||||
}
|
||||
|
||||
static #quote(str) {
|
||||
return '"' + str + '"';
|
||||
}
|
||||
|
||||
static #convert2Csv({ prrByKey, keyColumn, prrColumn }) {
|
||||
const header = `${keyColumn},${prrColumn}`;
|
||||
return `${header}\n${PrrByKey2CsvConverter.#convertDict2Csv(prrByKey)}`;
|
||||
}
|
||||
|
||||
static #convertDict2Csv(dict) {
|
||||
return Object
|
||||
.entries(dict)
|
||||
.map(([key, value]) => `${key},${value}`)
|
||||
.join('\n');
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,14 @@ class PrrByVaccineTableView {
|
||||
UIUtils.downloadUrlAsFilename(
|
||||
window.URL.createObjectURL(
|
||||
new Blob(
|
||||
[Utils.convertDict2CSV(this.#prrByVaccine)],
|
||||
[
|
||||
PrrByKey2CsvConverter.convertPrrByKey2Csv(
|
||||
{
|
||||
prrByKey: this.#prrByVaccine,
|
||||
keyColumn: 'Vaccine',
|
||||
prrColumn: 'Proportional Reporting Ratio'
|
||||
})
|
||||
],
|
||||
{ type: 'text/csv' })),
|
||||
this.#symptom
|
||||
);
|
||||
|
||||
@@ -24,8 +24,4 @@ class Utils {
|
||||
static sliceDict(dict, start, end) {
|
||||
return Object.fromEntries(Object.entries(dict).slice(start, end));
|
||||
}
|
||||
|
||||
static convertDict2CSV(dict) {
|
||||
return Dict2CsvConverter.convertDict2CSV(dict);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<script charset="utf8" src="https://cdn.datatables.net/1.13.1/js/jquery.dataTables.min.js"
|
||||
type="text/javascript"></script>
|
||||
<script src="./Utils.js"></script>
|
||||
<script src="./Dict2CsvConverter.js"></script>
|
||||
<script src="./UIUtils.js"></script>
|
||||
<script src="./DataTablesFilter.js"></script>
|
||||
<script src="./VaccineDistributionByZipcodeTableInitializer.js"></script>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<script charset="utf8" src="https://cdn.datatables.net/1.13.1/js/jquery.dataTables.min.js" type="text/javascript"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.2.0/dist/chart.umd.min.js"></script>
|
||||
<script src="./Utils.js"></script>
|
||||
<script src="./Dict2CsvConverter.js"></script>
|
||||
<script src="./UIUtils.js"></script>
|
||||
<script src="./DataTablesFilter.js"></script>
|
||||
<script src="./ColumnSearch.js"></script>
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
integrity="sha512-MKxcSu/LDtbIYHBNAWUQwfB3iVoG9xeMCm32QV5hZ/9lFaQZJVaXfz9aFa0IZExWzCpm7OWvp9zq9gVip/nLMg=="
|
||||
referrerpolicy="no-referrer" rel="stylesheet" />
|
||||
<script src="./Utils.js"></script>
|
||||
<script src="./Dict2CsvConverter.js"></script>
|
||||
<script src="./UIUtils.js"></script>
|
||||
<script src="./IntensiveCareCapacitiesChartView.js"></script>
|
||||
<script src="./FreeBedsChartView.js"></script>
|
||||
|
||||
25
test/SymptomsCausedByVaccines/PrrByKey2CsvConverterTest.js
Normal file
25
test/SymptomsCausedByVaccines/PrrByKey2CsvConverterTest.js
Normal file
@@ -0,0 +1,25 @@
|
||||
QUnit.module('PrrByKey2CsvConverterTest', function () {
|
||||
|
||||
QUnit.test('convertPrrByKey2Csv', function (assert) {
|
||||
// Given
|
||||
const prrByKey = {
|
||||
"MM,R": 26.17432376240791,
|
||||
"VARCEL": 10.549534724816644
|
||||
};
|
||||
|
||||
// When
|
||||
const csv = PrrByKey2CsvConverter.convertPrrByKey2Csv(
|
||||
{
|
||||
prrByKey: prrByKey,
|
||||
keyColumn: 'Vaccine',
|
||||
prrColumn: 'Proportional Reporting Ratio'
|
||||
});
|
||||
|
||||
// Then
|
||||
const csvExpected =
|
||||
`"Vaccine","Proportional Reporting Ratio"
|
||||
"MM,R",26.17432376240791
|
||||
"VARCEL",10.549534724816644`;
|
||||
assert.equal(csv, csvExpected);
|
||||
});
|
||||
});
|
||||
@@ -1,16 +0,0 @@
|
||||
QUnit.module('UtilsTest', function () {
|
||||
|
||||
QUnit.test('convertDict2CSV', function (assert) {
|
||||
// Given
|
||||
const dict = {
|
||||
"MM,R": 26.17432376240791,
|
||||
"VARCEL": 10.549534724816644
|
||||
};
|
||||
|
||||
// When
|
||||
const csv = Utils.convertDict2CSV(dict);
|
||||
|
||||
// Then
|
||||
assert.equal(csv, '"MM,R","VARCEL"\n26.17432376240791,10.549534724816644');
|
||||
});
|
||||
});
|
||||
@@ -9,9 +9,9 @@
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
|
||||
<title>Symptoms caused by Vaccines</title>
|
||||
<script src="../../docs/Utils.js"></script>
|
||||
<script src="../../docs/Dict2CsvConverter.js"></script>
|
||||
<script src="../../docs/UIUtils.js"></script>
|
||||
<script src="../../docs/NumberWithBarElementFactory.js"></script>
|
||||
<script src="../../docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js"></script>
|
||||
<script src="../../docs/SymptomsCausedByVaccines/js/PageInitializer.js"></script>
|
||||
<script src="../../docs/SymptomsCausedByVaccines/js/PrrByVaccineProvider.js"></script>
|
||||
<script src="../../docs/SymptomsCausedByVaccines/js/PrrByVaccineTable.js"></script>
|
||||
@@ -26,7 +26,7 @@
|
||||
JsHamcrest.Integration.QUnit();
|
||||
JsMockito.Integration.QUnit();
|
||||
</script>
|
||||
<script src="./UtilsTest.js"></script>
|
||||
<script src="./PrrByKey2CsvConverterTest.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="nav-md">
|
||||
|
||||
Reference in New Issue
Block a user