@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
137 lines (136 loc) • 7.03 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["filterRows", "headers", "isSortable", "isSelectable", "missingDataCharacter", "render", "rows", "sortRow", "useZebraStyles"];
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
/**
* @file Data table.
* @copyright IBM Security 2019 - 2021
*/
import { DataTable as CarbonDataTable } from 'carbon-components-react';
import classnames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import { namespace } from './constants';
import Table from './Table';
import TableOverflowCell from './TableOverflowCell';
import TableToolbarDownload from './TableToolbarDownload';
var carbonDefaultProps = CarbonDataTable.defaultProps,
carbonPropTypes = CarbonDataTable.propTypes;
var TableActionList = CarbonDataTable.TableActionList,
TableBatchAction = CarbonDataTable.TableBatchAction,
TableBatchActions = CarbonDataTable.TableBatchActions,
TableBody = CarbonDataTable.TableBody,
TableCell = CarbonDataTable.TableCell,
TableContainer = CarbonDataTable.TableContainer,
TableExpandHeader = CarbonDataTable.TableExpandHeader,
TableExpandRow = CarbonDataTable.TableExpandRow,
TableExpandedRow = CarbonDataTable.TableExpandedRow,
TableHead = CarbonDataTable.TableHead,
TableHeader = CarbonDataTable.TableHeader,
TableRow = CarbonDataTable.TableRow,
TableSelectAll = CarbonDataTable.TableSelectAll,
TableSelectRow = CarbonDataTable.TableSelectRow,
TableToolbar = CarbonDataTable.TableToolbar,
TableToolbarAction = CarbonDataTable.TableToolbarAction,
TableToolbarContent = CarbonDataTable.TableToolbarContent,
TableToolbarSearch = CarbonDataTable.TableToolbarSearch,
TableToolbarMenu = CarbonDataTable.TableToolbarMenu;
var DataTable = function DataTable(_ref) {
var filterRows = _ref.filterRows,
headers = _ref.headers,
isSortable = _ref.isSortable,
isSelectable = _ref.isSelectable,
missingDataCharacter = _ref.missingDataCharacter,
render = _ref.render,
rows = _ref.rows,
sortRow = _ref.sortRow,
useZebraStyles = _ref.useZebraStyles,
other = _objectWithoutProperties(_ref, _excluded);
return /*#__PURE__*/React.createElement("div", {
className: namespace
}, render ? /*#__PURE__*/React.createElement(CarbonDataTable, _extends({
filterRows: filterRows,
headers: headers,
isSortable: isSortable,
render: render,
rows: rows,
sortRow: sortRow,
useZebraStyles: useZebraStyles
}, other)) : /*#__PURE__*/React.createElement(CarbonDataTable, _extends({
headers: headers,
isSortable: isSortable,
rows: rows,
filterRows: filterRows,
sortRow: sortRow,
useZebraStyles: useZebraStyles,
render: function render(_ref2) {
var rows = _ref2.rows,
headers = _ref2.headers,
getHeaderProps = _ref2.getHeaderProps,
getRowProps = _ref2.getRowProps,
getSelectionProps = _ref2.getSelectionProps,
getTableProps = _ref2.getTableProps,
getTableContainerProps = _ref2.getTableContainerProps;
return /*#__PURE__*/React.createElement(TableContainer, getTableContainerProps(), /*#__PURE__*/React.createElement(Table, getTableProps(), /*#__PURE__*/React.createElement(TableHead, null, /*#__PURE__*/React.createElement(TableRow, null, isSelectable && /*#__PURE__*/React.createElement(TableSelectAll, getSelectionProps()), headers.map(function (header) {
return /*#__PURE__*/React.createElement(TableHeader, _extends({}, getHeaderProps({
header: header,
isSortable: isSortable
}), {
key: header.key
}), header.header);
}))), /*#__PURE__*/React.createElement(TableBody, null, rows.map(function (row) {
return /*#__PURE__*/React.createElement(TableRow, _extends({}, getRowProps({
row: row
}), {
className: classnames(_defineProperty({}, "".concat(namespace, "__row--selectable"), isSelectable)),
key: row.id
}), isSelectable && /*#__PURE__*/React.createElement(TableSelectRow, getSelectionProps({
row: row
})), row.cells.map(function (cell) {
return /*#__PURE__*/React.createElement(TableCell, {
key: cell.id
}, cell.value ? cell.value : missingDataCharacter);
}));
}))));
}
}, other)));
};
DataTable.defaultProps = _objectSpread(_objectSpread({}, carbonDefaultProps), {}, {
isSelectable: true,
isSortable: true,
missingDataCharacter: '–'
});
DataTable.propTypes = _objectSpread(_objectSpread({}, carbonPropTypes), {}, {
/** @type {bool} Defines whether the table is selectable. */
isSelectable: PropTypes.bool,
/** @type {string} Defines missing data in a cell replaced with a character. */
missingDataCharacter: PropTypes.string
});
var defaultProps = DataTable.defaultProps,
propTypes = DataTable.propTypes;
export { defaultProps, propTypes };
DataTable.Table = Table;
DataTable.TableActionList = TableActionList;
DataTable.TableBatchAction = TableBatchAction;
DataTable.TableBatchActions = TableBatchActions;
DataTable.TableBody = TableBody;
DataTable.TableCell = TableCell;
DataTable.TableContainer = TableContainer;
DataTable.TableExpandHeader = TableExpandHeader;
DataTable.TableExpandRow = TableExpandRow;
DataTable.TableExpandedRow = TableExpandedRow;
DataTable.TableHead = TableHead;
DataTable.TableHeader = TableHeader;
DataTable.TableOverflowCell = TableOverflowCell;
DataTable.TableRow = TableRow;
DataTable.TableSelectAll = TableSelectAll;
DataTable.TableSelectRow = TableSelectRow;
DataTable.TableToolbar = TableToolbar;
DataTable.TableToolbarAction = TableToolbarAction;
DataTable.TableToolbarContent = TableToolbarContent;
DataTable.TableToolbarSearch = TableToolbarSearch;
DataTable.TableToolbarMenu = TableToolbarMenu;
DataTable.TableToolbarDownload = TableToolbarDownload;
export { DataTable, Table, TableActionList, TableBatchAction, TableBatchActions, TableBody, TableCell, TableContainer, TableExpandHeader, TableExpandRow, TableExpandedRow, TableHead, TableHeader, TableOverflowCell, TableRow, TableSelectAll, TableSelectRow, TableToolbar, TableToolbarAction, TableToolbarContent, TableToolbarSearch, TableToolbarMenu, TableToolbarDownload };