{"version":3,"sources":["components/ResponsiveTable.js","sections/tabset1/index.js"],"names":["useStyles","makeStyles","root","width","container","maxHeight","scrollbarWidth","overflowX","scrollbarColor","paddingLeft","paddingRight","webkitScrollbar","styledScrollBar","webkitScrollbarTrack","background","webkitScrollbarThumb","backgroundColor","borderRadius","border","descendingComparator","a","b","orderBy","ResponsiveTable","props","rows","columns","columnOrder","sortBy","React","useState","order","setOrder","setOrderBy","classes","createSortHandler","property","event","handleRequestSort","className","stickyHeader","aria-label","size","map","column","key","id","align","style","minWidth","borderBottom","fontWeight","active","direction","onClick","label","array","comparator","stabilizedThis","el","index","sort","stableSort","getComparator","row","hover","role","tabIndex","Math","random","toString","value","toLocaleString","undefined","minimumFractionDigits","decimals","Counties","lazy","Tabset1","countycases","demographics","date_lines","epicurve","fallback"],"mappings":"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","file":"static/js/13.63459b7d.chunk.js","sourcesContent":["import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Paper from '@material-ui/core/Paper'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\n// import TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow'\nimport TableSortLabel from '@material-ui/core/TableSortLabel'\n\nconst useStyles = makeStyles({\n  root: {\n    width: '100%'\n  },\n  container: {\n    maxHeight: 440,\n    // maxWidth: 500,\n    scrollbarWidth: 'thin',\n    overflowX: 'scroll',\n    scrollbarColor: '#002137 #314c68',\n    paddingLeft: '15px',\n    paddingRight: '15px',\n    webkitScrollbar: {\n      width: '11px'\n    }\n  // backgroundColor: \"#002137\"\n  },\n  styledScrollBar: {\n    webkitScrollbar: {\n      width: '11px'\n    },\n    webkitScrollbarTrack: {\n      background: '#314c68'\n    },\n    webkitScrollbarThumb: {\n      backgroundColor: '#002137',\n      borderRadius: '6px',\n      border: '2px solid #314c68'\n    }\n  }\n})\n\nfunction descendingComparator (a, b, orderBy) {\n  if (b[orderBy] < a[orderBy]) {\n    return -1\n  }\n  if (b[orderBy] > a[orderBy]) {\n    return 1\n  }\n  return 0\n}\n\nfunction getComparator (order, orderBy) {\n  return order === 'desc'\n    ? (a, b) => descendingComparator(a, b, orderBy)\n    : (a, b) => -descendingComparator(a, b, orderBy)\n}\n\nfunction stableSort (array, comparator) {\n  const stabilizedThis = array.map((el, index) => [el, index])\n  stabilizedThis.sort((a, b) => {\n    const order = comparator(a[0], b[0])\n    if (order !== 0) return order\n    return a[1] - b[1]\n  })\n\n  return stabilizedThis.map((el) => el[0])\n}\n\nexport default function ResponsiveTable (props) {\n  const { rows, columns, columnOrder, sortBy } = props\n  const [order, setOrder] = React.useState(columnOrder)\n  const [orderBy, setOrderBy] = React.useState(sortBy)\n  const classes = useStyles()\n  // const [page] = React.useState(0)\n  // const [rowsPerPage] = React.useState(19999)\n\n  const handleRequestSort = (event, property) => {\n    const isAsc = orderBy === property && order === 'asc'\n    setOrder(isAsc ? 'desc' : 'asc')\n    setOrderBy(property)\n  }\n\n  const createSortHandler = (property) => (event) => {\n    handleRequestSort(event, property)\n  }\n  // const createSortHandler = (property) => (event) => {\n  //   onRequestSort(event, property);\n  // };\n  // const handleChangePage = (event, newPage) => {\n  //   setPage(newPage);\n  // };\n\n  // const handleChangeRowsPerPage = (event) => {\n  //   setRowsPerPage(+event.target.value);\n  //   setPage(0);\n  // };\n\n  return (\n    <Paper className={classes.root}>\n      <TableContainer className={classes.container}>\n        <Table stickyHeader aria-label='sticky table' size='small'>\n          <TableHead>\n            <TableRow>\n              {columns.map((column) => (\n                <TableCell\n                  key={column.id}\n                  align={column.align}\n                  style={{ minWidth: column.minWidth, border: 'none', borderBottom: '1px grey solid', fontWeight: 600 }}\n                >\n                  <TableSortLabel\n                    active={orderBy === column.id}\n                    direction={orderBy === column.id ? order : 'asc'}\n                    onClick={createSortHandler(column.id)}\n                  >\n                    {column.label}\n                  </TableSortLabel>\n                </TableCell>\n              ))}\n            </TableRow>\n          </TableHead>\n          <TableBody>\n            {stableSort(rows, getComparator(order, orderBy))\n              // .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n              .map((row) => {\n                return (\n                  <TableRow hover role='checkbox' tabIndex={-1} key={'row' + Math.random().toString()}>\n                    {columns.map((column) => {\n                      const value = row[column.id]\n                      return (\n                        <TableCell key={column.id} align={column.align} style={{ border: 'none' }}>\n                          {typeof value === 'number' ? \n                            value.toLocaleString(undefined, {minimumFractionDigits: column.decimals}) : \n                            value\n                          }\n                        </TableCell>\n                      )\n                    })}\n                  </TableRow>\n                )\n              })}\n          </TableBody>\n        </Table>\n      </TableContainer>\n      {/* <TablePagination\n        rowsPerPageOptions={[999, 25, 100]}\n        component=\"div\"\n        count={rows.length}\n        rowsPerPage={rowsPerPage}\n        page={page}\n        onChangePage={handleChangePage}\n        onChangeRowsPerPage={handleChangeRowsPerPage}\n      /> */}\n    </Paper>\n  )\n}\n","import React, { Suspense } from \"react\";\nimport { Tab, Tabs, TabList, TabPanel } from \"react-tabs\";\nimport LoadingSpinner from \"../../components/loadingSpinner\";\nimport ResponsiveTable from \"../../components/ResponsiveTable\";\n\nconst Counties = React.lazy(() => import(\"./counties\"));\n/* const DeathsInGeorgia = React.lazy(() => import(\"./deaths_in_georgia\"));\nconst TopFiveCounties = React.lazy(() => import(\"./top_five_counties\")); */\n\nconst Tabset1 = ({ countycases, date_lines, epicurve, demographics }) => {\n  return (\n    <Tabs>\n      <TabList>\n        <Tab>Counties</Tab>\n        { /* <Tab>Top Five Counties</Tab>\n        <Tab>Confirmed Deaths</Tab> */ }\n        <Tab>Race and Ethnicity</Tab>\n      </TabList>\n      <TabPanel>\n        <Suspense fallback={<LoadingSpinner />}>\n          <Counties countycases={countycases} />\n        </Suspense>\n      </TabPanel>\n      { /* <TabPanel>\n        <Suspense fallback={<LoadingSpinner />}>\n          <TopFiveCounties\n            date_lines={date_lines}\n            epicurve={epicurve}\n            countycases={countycases}\n          />\n        </Suspense>\n      </TabPanel>\n      <TabPanel>\n        <Suspense fallback={<LoadingSpinner />}>\n          <DeathsInGeorgia />\n        </Suspense>\n      </TabPanel> */ }\n      <TabPanel>\n        <ResponsiveTable\n          rows={demographics}\n          columns={[\n            {\n              id: \"race\",\n              label: \"Race\",\n              minWidth: 12,\n              align: \"left\",\n            },\n            {\n              id: \"ethnicity\",\n              label: \"Ethnicity\",\n              minWidth: 15,\n              align: \"left\",\n            },\n            {\n              id: \"confirmed_cases\",\n              label: \"Confirmed Cases\",\n              minWidth: 12,\n              align: \"right\",\n            },\n            {\n              id: \"deaths\",\n              label: \"Total Deaths\",\n              minWidth: 12,\n              align: \"right\",\n            },\n          ]}\n          sortBy=\"race\"\n          columnOrder=\"asc\"\n        />\n      </TabPanel>\n    </Tabs>\n  );\n};\n\nexport default Tabset1;\n"],"sourceRoot":""}