@6thquake/react-material
Version:
React components that implement Google's Material Design.
174 lines (143 loc) • 5.24 kB
JavaScript
"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;