UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

149 lines (146 loc) 3.96 kB
import { c } from 'react-compiler-runtime'; import { useTable } from './useTable.js'; import { TableRow, TableCell, TableSortHeader, TableHeader, TableHead, TableBody, Table } from './Table.js'; import { jsx, jsxs } from 'react/jsx-runtime'; function defaultGetRowId(row) { return row.id; } function DataTable(t0) { const $ = c(27); const { "aria-labelledby": labelledby, "aria-describedby": describedby, cellPadding, columns, data, initialSortColumn, initialSortDirection, externalSorting, getRowId: t1, onToggleSort } = t0; const getRowId = t1 === undefined ? defaultGetRowId : t1; let t2; if ($[0] !== columns || $[1] !== data || $[2] !== externalSorting || $[3] !== getRowId || $[4] !== initialSortColumn || $[5] !== initialSortDirection) { t2 = { data, columns, initialSortColumn, initialSortDirection, getRowId, externalSorting }; $[0] = columns; $[1] = data; $[2] = externalSorting; $[3] = getRowId; $[4] = initialSortColumn; $[5] = initialSortDirection; $[6] = t2; } else { t2 = $[6]; } const { headers, rows, actions, gridTemplateColumns } = useTable(t2); let t3; if ($[7] !== actions || $[8] !== headers || $[9] !== onToggleSort) { let t4; if ($[11] !== actions || $[12] !== onToggleSort) { t4 = header => { if (header.isSortable()) { return /*#__PURE__*/jsx(TableSortHeader, { align: header.column.align, direction: header.getSortDirection(), onToggleSort: () => { const nextDirection = header.getSortDirection() === "ASC" ? "DESC" : "ASC"; actions.sortBy(header); onToggleSort === null || onToggleSort === void 0 ? void 0 : onToggleSort(header.id, nextDirection); }, children: typeof header.column.header === "string" ? header.column.header : header.column.header() }, header.id); } return /*#__PURE__*/jsx(TableHeader, { align: header.column.align, children: typeof header.column.header === "string" ? header.column.header : header.column.header() }, header.id); }; $[11] = actions; $[12] = onToggleSort; $[13] = t4; } else { t4 = $[13]; } t3 = headers.map(t4); $[7] = actions; $[8] = headers; $[9] = onToggleSort; $[10] = t3; } else { t3 = $[10]; } let t4; if ($[14] !== t3) { t4 = /*#__PURE__*/jsx(TableHead, { children: /*#__PURE__*/jsx(TableRow, { children: t3 }) }); $[14] = t3; $[15] = t4; } else { t4 = $[15]; } let t5; if ($[16] !== rows) { t5 = rows.map(_temp); $[16] = rows; $[17] = t5; } else { t5 = $[17]; } let t6; if ($[18] !== t5) { t6 = /*#__PURE__*/jsx(TableBody, { children: t5 }); $[18] = t5; $[19] = t6; } else { t6 = $[19]; } let t7; if ($[20] !== cellPadding || $[21] !== describedby || $[22] !== gridTemplateColumns || $[23] !== labelledby || $[24] !== t4 || $[25] !== t6) { t7 = /*#__PURE__*/jsxs(Table, { "aria-labelledby": labelledby, "aria-describedby": describedby, cellPadding: cellPadding, gridTemplateColumns: gridTemplateColumns, children: [t4, t6] }); $[20] = cellPadding; $[21] = describedby; $[22] = gridTemplateColumns; $[23] = labelledby; $[24] = t4; $[25] = t6; $[26] = t7; } else { t7 = $[26]; } return t7; } function _temp(row) { return /*#__PURE__*/jsx(TableRow, { children: row.getCells().map(cell => /*#__PURE__*/jsx(TableCell, { scope: cell.rowHeader ? "row" : undefined, align: cell.column.align, children: cell.column.renderCell ? cell.column.renderCell(row.getValue()) : cell.getValue() }, cell.id)) }, row.id); } _temp.displayName = "_temp"; export { DataTable };