UNPKG

react-bootstrap-table-next

Version:
192 lines (148 loc) 8.05 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _utils = require('../utils'); var _utils2 = _interopRequireDefault(_utils); var _expandCell = require('../row-expand/expand-cell'); var _expandCell2 = _interopRequireDefault(_expandCell); var _selectionCell = require('../row-selection/selection-cell'); var _selectionCell2 = _interopRequireDefault(_selectionCell); var _shouldUpdater2 = require('./should-updater'); var _shouldUpdater3 = _interopRequireDefault(_shouldUpdater2); var _eventDelegater = require('./event-delegater'); var _eventDelegater2 = _interopRequireDefault(_eventDelegater); var _rowPureContent = require('./row-pure-content'); var _rowPureContent2 = _interopRequireDefault(_rowPureContent); var _const = require('../const'); var _const2 = _interopRequireDefault(_const); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint class-methods-use-this: 0 */ /* eslint react/prop-types: 0 */ /* eslint no-plusplus: 0 */ var RowAggregator = function (_shouldUpdater) { _inherits(RowAggregator, _shouldUpdater); function RowAggregator(props) { _classCallCheck(this, RowAggregator); var _this = _possibleConstructorReturn(this, (RowAggregator.__proto__ || Object.getPrototypeOf(RowAggregator)).call(this, props)); _this.clickNum = 0; _this.shouldUpdateRowContent = false; _this.createClickEventHandler = _this.createClickEventHandler.bind(_this); return _this; } _createClass(RowAggregator, [{ key: 'shouldComponentUpdate', value: function shouldComponentUpdate(nextProps) { if (this.props.selected !== nextProps.selected || this.props.expanded !== nextProps.expanded || this.props.expandable !== nextProps.expandable || this.props.selectable !== nextProps.selectable || this.props.selectRow.hideSelectColumn !== nextProps.selectRow.hideSelectColumn || this.shouldUpdatedBySelfProps(nextProps)) { this.shouldUpdateRowContent = this.shouldRowContentUpdate(nextProps); return true; } this.shouldUpdateRowContent = this.shouldRowContentUpdate(nextProps); return this.shouldUpdateRowContent; } }, { key: 'isRenderFunctionColumnInLeft', value: function isRenderFunctionColumnInLeft() { var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _const2.default.INDICATOR_POSITION_LEFT; return position === _const2.default.INDICATOR_POSITION_LEFT; } }, { key: 'render', value: function render() { var _props = this.props, row = _props.row, columns = _props.columns, keyField = _props.keyField, rowIndex = _props.rowIndex, style = _props.style, className = _props.className, attrs = _props.attrs, selectRow = _props.selectRow, expandRow = _props.expandRow, expanded = _props.expanded, expandable = _props.expandable, selected = _props.selected, selectable = _props.selectable, visibleColumnSize = _props.visibleColumnSize, tabIndexCell = _props.tabIndexCell, rest = _objectWithoutProperties(_props, ['row', 'columns', 'keyField', 'rowIndex', 'style', 'className', 'attrs', 'selectRow', 'expandRow', 'expanded', 'expandable', 'selected', 'selectable', 'visibleColumnSize', 'tabIndexCell']); var key = _utils2.default.get(row, keyField); var hideSelectColumn = selectRow.hideSelectColumn, selectColumnPosition = selectRow.selectColumnPosition, clickToSelect = selectRow.clickToSelect; var showExpandColumn = expandRow.showExpandColumn, expandColumnPosition = expandRow.expandColumnPosition; var newAttrs = this.delegate(_extends({}, attrs)); if (clickToSelect || !!expandRow.renderer) { newAttrs.onClick = this.createClickEventHandler(newAttrs.onClick); } var tabIndexStart = rowIndex * visibleColumnSize + 1; var childrens = [_react2.default.createElement(_rowPureContent2.default, _extends({ key: 'row', row: row, columns: columns, keyField: keyField, rowIndex: rowIndex, shouldUpdate: this.shouldUpdateRowContent, tabIndexStart: tabIndexCell ? tabIndexStart : -1 }, rest))]; if (!hideSelectColumn) { var selectCell = _react2.default.createElement(_selectionCell2.default, _extends({}, selectRow, { key: 'selection-cell', rowKey: key, rowIndex: rowIndex, selected: selected, disabled: !selectable, tabIndex: tabIndexCell ? tabIndexStart++ : -1 })); if (this.isRenderFunctionColumnInLeft(selectColumnPosition)) { childrens.unshift(selectCell); } else { childrens.push(selectCell); } } if (showExpandColumn) { var expandCell = _react2.default.createElement(_expandCell2.default, _extends({}, expandRow, { key: 'expand-cell', rowKey: key, rowIndex: rowIndex, expanded: expanded, expandable: expandable, tabIndex: tabIndexCell ? tabIndexStart++ : -1 })); if (this.isRenderFunctionColumnInLeft(expandColumnPosition)) { childrens.unshift(expandCell); } else { childrens.push(expandCell); } } return _react2.default.createElement( 'tr', _extends({ style: style, className: className }, newAttrs), childrens ); } }]); return RowAggregator; }((0, _shouldUpdater3.default)((0, _eventDelegater2.default)(_react2.default.Component))); RowAggregator.propTypes = { attrs: _propTypes2.default.object, style: _propTypes2.default.object }; RowAggregator.defaultProps = { attrs: {}, style: {} }; exports.default = RowAggregator;