class VaccineDistributionByZipcodeTableInitializer { #tableElement; constructor({ tableElement }) { this.#tableElement = tableElement; } initialize() { this.#createTable(); DataTablesFilter.selectDataTablesFilter(); } #createTable() { this.#tableElement.DataTable( { search: { return: false }, ajax: 'data/vaccineDistributionByZipcode/VaccineDistributionByZipcode.json', processing: true, deferRender: true, columnDefs: [ { searchable: true, targets: [ this.#getColumnIndex('Provider'), this.#getColumnIndex('ZIP Code'), this.#getColumnIndex('Lot Number'), ] }, { render: DataTable.render.number(), target: this.#getColumnIndex('Doses Shipped') } ] }); } #getColumnIndex(columnName) { switch (columnName) { case 'Provider': return 0; case 'ZIP Code': return 1; case 'Lot Number': return 2; case 'Doses Shipped': return 3; case 'Statistical Number of Adverse Reaction Reports': return 4; case 'Statistical Number of Adverse Reaction Reports (per 100,000)': return 5; } } }