UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

174 lines (143 loc) 5.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _immutabilityHelper = _interopRequireDefault(require("immutability-helper")); var _ = _interopRequireDefault(require("..")); var _TableBody = _interopRequireDefault(require("../../TableBody")); var _Cell = _interopRequireDefault(require("./Cell")); var _TableHead = _interopRequireDefault(require("../../TableHead")); var _TableRow = _interopRequireDefault(require("../../TableRow")); var _Scrollbar = _interopRequireDefault(require("../../Scrollbar")); var _styles = require("../../styles"); var styles = function styles(theme) { return { root: { overflowY: 'auto', overflowX: 'hidden', width: 'fit-content' // width:100% }, layoutFixed: { tableLayout: 'fixed' } }; }; var colStyle = { // width: 150, minWidth: 100 }; /** * @ignore - internal component. */ var Body = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(Body, _React$Component); function Body(props) { var _this; (0, _classCallCheck2.default)(this, Body); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Body).call(this, props)); _this.handleRowClick = function (entry, index) { return function (e) { var onRowClick = _this.props.onRowClick; onRowClick && onRowClick(entry, index); }; }; _this.state = {}; return _this; } (0, _createClass2.default)(Body, [{ key: "componentDidMount", value: function componentDidMount() {} }, { key: "render", value: function render() { var _this2 = this; var _this$props = this.props, classes = _this$props.classes, data = _this$props.data, columns = _this$props.columns, type = _this$props.type, scroll = _this$props.scroll, tableRef = _this$props.tableRef, bodyRef = _this$props.bodyRef, bodyRowHeight = _this$props.bodyRowHeight, height = _this$props.height, noData = _this$props.noData, TableCellProps = _this$props.TableCellProps, TableRowProps = _this$props.TableRowProps; var mainAndNoData = data.length === 0 && type === 'main'; var tableStyle = mainAndNoData ? { height: '100%' } : {}; var rowStyle = { height: bodyRowHeight }; return _react.default.createElement("div", { ref: tableRef, onScroll: function onScroll(e) { scroll(e, type); }, style: { height: height }, className: classes.root }, _react.default.createElement(_.default, { innerRef: bodyRef, classes: { root: classes.layoutFixed }, className: classes.table, style: tableStyle }, _react.default.createElement("colgroup", null, columns.map(function (item) { return _react.default.createElement("col", { key: item.title, style: colStyle, width: item.width }); })), _react.default.createElement(_TableBody.default, null, mainAndNoData ? _react.default.createElement(_TableRow.default, (0, _extends2.default)({ style: { height: '100%' } }, TableRowProps), _react.default.createElement(_Cell.default, { TableCellProps: TableCellProps, colSpan: columns.length, style: { height: '100%' } }, noData)) : data.map(function (entry, index) { return _react.default.createElement(_TableRow.default, (0, _extends2.default)({ onClick: _this2.handleRowClick(entry, index), style: rowStyle, key: entry.key }, TableRowProps), columns.map(function (column) { return _react.default.createElement(_Cell.default, { numeric: column.numeric, TableCellProps: TableCellProps, key: column.key || Date.now() }, column.render ? column.render(entry) : entry[column.dataIndex]); })); })))); } }]); return Body; }(_react.default.Component); Body.propTypes = { classes: _propTypes.default.object.isRequired, height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) }; Body.defaultProps = { height: 'auto' }; var _default = (0, _styles.withStyles)(styles)(Body); exports.default = _default;