|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _extends2 = require('babel-runtime/helpers/extends');
-
- var _extends3 = _interopRequireDefault(_extends2);
-
- var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
-
- var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
-
- var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
-
- var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
-
- var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
- var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
- var _createClass2 = require('babel-runtime/helpers/createClass');
-
- var _createClass3 = _interopRequireDefault(_createClass2);
-
- var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
- var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
- var _inherits2 = require('babel-runtime/helpers/inherits');
-
- var _inherits3 = _interopRequireDefault(_inherits2);
-
- var _simpleAssign = require('simple-assign');
-
- var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
-
- var _react = require('react');
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = require('prop-types');
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- function getStyles(props, context, state) {
- var tableRow = context.muiTheme.tableRow;
-
-
- var cellBgColor = 'inherit';
- if (props.hovered || state.hovered) {
- cellBgColor = tableRow.hoverColor;
- } else if (props.selected) {
- cellBgColor = tableRow.selectedColor;
- } else if (props.striped) {
- cellBgColor = tableRow.stripeColor;
- }
-
- return {
- root: {
- borderBottom: props.displayBorder && '1px solid ' + tableRow.borderColor,
- color: tableRow.textColor,
- height: tableRow.height
- },
- cell: {
- backgroundColor: cellBgColor
- }
- };
- }
-
- var TableRow = function (_Component) {
- (0, _inherits3.default)(TableRow, _Component);
-
- function TableRow() {
- var _ref;
-
- var _temp, _this, _ret;
-
- (0, _classCallCheck3.default)(this, TableRow);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TableRow.__proto__ || (0, _getPrototypeOf2.default)(TableRow)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
- hovered: false
- }, _this.onCellClick = function (event, columnIndex) {
- if (_this.props.selectable && _this.props.onCellClick) {
- _this.props.onCellClick(event, _this.props.rowNumber, columnIndex);
- }
- event.ctrlKey = true;
- _this.onRowClick(event);
- }, _this.onCellHover = function (event, columnIndex) {
- if (_this.props.hoverable) {
- _this.setState({ hovered: true });
- if (_this.props.onCellHover) _this.props.onCellHover(event, _this.props.rowNumber, columnIndex);
- _this.onRowHover(event);
- }
- }, _this.onCellHoverExit = function (event, columnIndex) {
- if (_this.props.hoverable) {
- _this.setState({ hovered: false });
- if (_this.props.onCellHoverExit) _this.props.onCellHoverExit(event, _this.props.rowNumber, columnIndex);
- _this.onRowHoverExit(event);
- }
- }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
- }
-
- (0, _createClass3.default)(TableRow, [{
- key: 'onRowClick',
- value: function onRowClick(event) {
- if (this.props.selectable && this.props.onRowClick) {
- this.props.onRowClick(event, this.props.rowNumber);
- }
- }
- }, {
- key: 'onRowHover',
- value: function onRowHover(event) {
- if (this.props.onRowHover) {
- this.props.onRowHover(event, this.props.rowNumber);
- }
- }
- }, {
- key: 'onRowHoverExit',
- value: function onRowHoverExit(event) {
- if (this.props.onRowHoverExit) {
- this.props.onRowHoverExit(event, this.props.rowNumber);
- }
- }
- }, {
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- var _props = this.props,
- className = _props.className,
- displayBorder = _props.displayBorder,
- hoverable = _props.hoverable,
- hovered = _props.hovered,
- onCellClick = _props.onCellClick,
- onCellHover = _props.onCellHover,
- onCellHoverExit = _props.onCellHoverExit,
- onRowClick = _props.onRowClick,
- onRowHover = _props.onRowHover,
- onRowHoverExit = _props.onRowHoverExit,
- rowNumber = _props.rowNumber,
- selectable = _props.selectable,
- selected = _props.selected,
- striped = _props.striped,
- style = _props.style,
- other = (0, _objectWithoutProperties3.default)(_props, ['className', 'displayBorder', 'hoverable', 'hovered', 'onCellClick', 'onCellHover', 'onCellHoverExit', 'onRowClick', 'onRowHover', 'onRowHoverExit', 'rowNumber', 'selectable', 'selected', 'striped', 'style']);
- var prepareStyles = this.context.muiTheme.prepareStyles;
-
- var styles = getStyles(this.props, this.context, this.state);
-
- var rowColumns = _react2.default.Children.map(this.props.children, function (child, columnNumber) {
- if (_react2.default.isValidElement(child)) {
- return _react2.default.cloneElement(child, {
- columnNumber: columnNumber,
- hoverable: _this2.props.hoverable,
- key: _this2.props.rowNumber + '-' + columnNumber,
- onClick: _this2.onCellClick,
- onHover: _this2.onCellHover,
- onHoverExit: _this2.onCellHoverExit,
- style: (0, _simpleAssign2.default)({}, styles.cell, child.props.style)
- });
- }
- });
-
- return _react2.default.createElement(
- 'tr',
- (0, _extends3.default)({
- className: className,
- style: prepareStyles((0, _simpleAssign2.default)(styles.root, style))
- }, other),
- rowColumns
- );
- }
- }]);
- return TableRow;
- }(_react.Component);
-
- TableRow.defaultProps = {
- displayBorder: true,
- hoverable: false,
- hovered: false,
- selectable: true,
- striped: false
- };
- TableRow.contextTypes = {
- muiTheme: _propTypes2.default.object.isRequired
- };
- TableRow.propTypes = process.env.NODE_ENV !== "production" ? {
- /**
- * Children passed to table row.
- */
- children: _propTypes2.default.node,
- /**
- * The css class name of the root element.
- */
- className: _propTypes2.default.string,
- /**
- * If true, row border will be displayed for the row.
- * If false, no border will be drawn.
- */
- displayBorder: _propTypes2.default.bool,
- /**
- * Controls whether or not the row responds to hover events.
- */
- hoverable: _propTypes2.default.bool,
- /**
- * Controls whether or not the row should be rendered as being
- * hovered. This property is evaluated in addition to this.state.hovered
- * and can be used to synchronize the hovered state with some other
- * external events.
- */
- hovered: _propTypes2.default.bool,
- /**
- * @ignore
- * Called when a row cell is clicked.
- * rowNumber is the row number and columnId is
- * the column number or the column key.
- */
- onCellClick: _propTypes2.default.func,
- /**
- * @ignore
- * Called when a table cell is hovered.
- * rowNumber is the row number of the hovered row
- * and columnId is the column number or the column key of the cell.
- */
- onCellHover: _propTypes2.default.func,
- /**
- * @ignore
- * Called when a table cell is no longer hovered.
- * rowNumber is the row number of the row and columnId
- * is the column number or the column key of the cell.
- */
- onCellHoverExit: _propTypes2.default.func,
- /**
- * @ignore
- * Called when row is clicked.
- */
- onRowClick: _propTypes2.default.func,
- /**
- * @ignore
- * Called when a table row is hovered.
- * rowNumber is the row number of the hovered row.
- */
- onRowHover: _propTypes2.default.func,
- /**
- * @ignore
- * Called when a table row is no longer hovered.
- * rowNumber is the row number of the row that is no longer hovered.
- */
- onRowHoverExit: _propTypes2.default.func,
- /**
- * Number to identify the row. This property is
- * automatically populated when used with the TableBody component.
- */
- rowNumber: _propTypes2.default.number,
- /**
- * If true, table rows can be selected. If multiple row
- * selection is desired, enable multiSelectable.
- * The default value is true.
- */
- selectable: _propTypes2.default.bool,
- /**
- * Indicates that a particular row is selected.
- * This property can be used to programmatically select rows.
- */
- selected: _propTypes2.default.bool,
- /**
- * Indicates whether or not the row is striped.
- */
- striped: _propTypes2.default.bool,
- /**
- * Override the inline-styles of the root element.
- */
- style: _propTypes2.default.object
- } : {};
- exports.default = TableRow;
|