45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
class PrrByKeyTableView {
|
|
|
|
#prrByKeyTable;
|
|
#downloadPrrByKeyTableButton;
|
|
#value;
|
|
#valueName;
|
|
#prrByKeyProvider;
|
|
|
|
constructor(prrByKeyTable, downloadPrrByKeyTableButton, valueName, prrByKeyProvider) {
|
|
this.#prrByKeyTable = prrByKeyTable;
|
|
this.#prrByKeyTable.initialize();
|
|
this.#initializeButton(downloadPrrByKeyTableButton);
|
|
this.#valueName = valueName;
|
|
this.#prrByKeyProvider = prrByKeyProvider;
|
|
}
|
|
|
|
displayPrrByKeyTable4Value(value) {
|
|
UIUtils.disableButton(this.#downloadPrrByKeyTableButton);
|
|
this.#prrByKeyProvider(value)
|
|
.then(prrByKey => {
|
|
this.#value = value;
|
|
this.#prrByKeyTable.display(prrByKey);
|
|
UIUtils.enableButton(this.#downloadPrrByKeyTableButton);
|
|
});
|
|
}
|
|
|
|
#initializeButton(downloadPrrByKeyTableButton) {
|
|
this.#downloadPrrByKeyTableButton = downloadPrrByKeyTableButton;
|
|
UIUtils.disableButton(downloadPrrByKeyTableButton);
|
|
downloadPrrByKeyTableButton.addEventListener(
|
|
'click',
|
|
() => this.#downloadPrrByKey())
|
|
}
|
|
|
|
#downloadPrrByKey() {
|
|
UIUtils.downloadUrlAsFilename(
|
|
window.URL.createObjectURL(
|
|
new Blob(
|
|
[this.#prrByKeyTable.getDisplayedTableAsCsv(`# ${this.#valueName}: ${this.#value}`)],
|
|
{ type: 'text/csv' })),
|
|
this.#value
|
|
);
|
|
}
|
|
}
|