UNPKG

@hypernetlabs/web-ui

Version:
110 lines 8.17 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GovernanceTable = void 0; const react_1 = __importStar(require("react")); const core_1 = require("@material-ui/core"); const icons_1 = require("@material-ui/icons"); const components_1 = require("../../components"); const GovernanceTable_style_1 = require("../../components/GovernanceTable/GovernanceTable.style"); const GovernanceTable = (props) => { const { title, description, headerAction, columns, rows, isExpandable } = props; const theme = (0, core_1.useTheme)(); const isLargeScreen = (0, core_1.useMediaQuery)(theme.breakpoints.up("md"), { noSsr: true, }); const classes = (0, GovernanceTable_style_1.useStyles)(); const [expandedRowIndex, setExpandedRowIndex] = (0, react_1.useState)(); const handleExpandClick = (rowIndex) => { if (rowIndex === expandedRowIndex) { setExpandedRowIndex(-1); } else { setExpandedRowIndex(rowIndex); } }; return (react_1.default.createElement(core_1.Box, null, title && (react_1.default.createElement(core_1.Box, { className: classes.topWrapper }, react_1.default.createElement(core_1.Box, { className: classes.titleWrapper }, react_1.default.createElement(core_1.Typography, { variant: "h6" }, title), headerAction && (react_1.default.createElement(components_1.GovernanceButton, { ...headerAction, size: "medium", color: "primary" }, headerAction.label))), description && (react_1.default.createElement(core_1.Box, { className: classes.description }, react_1.default.createElement(core_1.Typography, { variant: "body1" }, description))))), isLargeScreen ? (react_1.default.createElement(core_1.TableContainer, null, react_1.default.createElement(core_1.Table, { "aria-label": "simple table" }, react_1.default.createElement(core_1.TableHead, null, react_1.default.createElement(core_1.TableRow, null, isExpandable && (react_1.default.createElement(core_1.TableCell, { width: "16", className: classes.tableColumnHeader })), columns .filter((column) => !column.onlyVisibleInExpandedState) .map((column, index) => (react_1.default.createElement(core_1.TableCell, { key: index, ...column.tableCellProps, className: classes.tableColumnHeader }, column.cellValue))))), react_1.default.createElement(core_1.TableBody, null, rows.map((rowItems, index) => { const isExpanded = index === expandedRowIndex; return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(core_1.TableRow, { key: index }, isExpandable && (react_1.default.createElement(core_1.TableCell, { width: "16", className: classes.tableCell }, react_1.default.createElement(core_1.IconButton, { "aria-label": "expand", onClick: () => { handleExpandClick(index); } }, isExpanded ? (react_1.default.createElement(icons_1.ExpandLess, null)) : (react_1.default.createElement(icons_1.ExpandMore, null))))), rowItems .filter((rowItem) => !rowItem.onlyVisibleInExpandedState) .map((rowItem) => (react_1.default.createElement(core_1.TableCell, { ...rowItem.tableCellProps, className: classes.tableCell }, rowItem.cellValue)))), react_1.default.createElement(core_1.TableRow, null, react_1.default.createElement(core_1.TableCell, { style: { paddingBottom: isExpanded ? 24 : 0, paddingTop: isExpanded ? 24 : 0, paddingLeft: isExpanded ? 96 : 0, paddingRight: isExpanded ? 96 : 0, }, colSpan: 6 }, react_1.default.createElement(core_1.Collapse, { in: isExpanded, timeout: "auto", unmountOnExit: true }, rowItems .filter((rowItem) => rowItem.onlyVisibleInExpandedState) .map((rowItem, index) => { var _a, _b; const filteredColumns = columns.filter((rowItem) => rowItem.onlyVisibleInExpandedState); return (react_1.default.createElement(components_1.GovernanceBasicValueWithTitle, { title: ((_a = filteredColumns[index]) === null || _a === void 0 ? void 0 : _a.mobileCellValue) || ((_b = filteredColumns[index]) === null || _b === void 0 ? void 0 : _b.cellValue), value: rowItem.mobileCellValue || rowItem.cellValue })); })))))); }))))) : (rows.map((rowItems, index) => { const isExpanded = index === expandedRowIndex; return (react_1.default.createElement(components_1.GovernanceCard, { key: index, className: classes.mobileRowCard }, rowItems .filter((column) => !column.onlyVisibleInExpandedState) .map((rowItem, index) => { var _a, _b; const filteredColumns = columns.filter((rowItem) => !rowItem.onlyVisibleInExpandedState); return (react_1.default.createElement(components_1.GovernanceBasicValueWithTitle, { title: ((_a = filteredColumns[index]) === null || _a === void 0 ? void 0 : _a.mobileCellValue) || ((_b = filteredColumns[index]) === null || _b === void 0 ? void 0 : _b.cellValue), value: rowItem.mobileCellValue || rowItem.cellValue })); }), react_1.default.createElement(core_1.Collapse, { in: isExpanded, timeout: "auto", unmountOnExit: true }, rowItems .filter((column) => column.onlyVisibleInExpandedState) .map((rowItem, index) => { var _a, _b; const filteredColumns = columns.filter((rowItem) => rowItem.onlyVisibleInExpandedState); return (react_1.default.createElement(components_1.GovernanceBasicValueWithTitle, { title: ((_a = filteredColumns[index]) === null || _a === void 0 ? void 0 : _a.mobileCellValue) || ((_b = filteredColumns[index]) === null || _b === void 0 ? void 0 : _b.cellValue), value: rowItem.mobileCellValue || rowItem.cellValue })); })), isExpandable && (react_1.default.createElement(components_1.GovernanceButton, { className: classes.mobileExpandButton, fullWidth: true, size: "small", onClick: () => { handleExpandClick(index); } }, isExpanded ? react_1.default.createElement(icons_1.ExpandLess, null) : react_1.default.createElement(icons_1.ExpandMore, null))))); })))); }; exports.GovernanceTable = GovernanceTable; //# sourceMappingURL=GovernanceTable.js.map