UNPKG

react-bootstrap-table-next

Version:
76 lines (58 loc) 2.67 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; }; /* eslint react/prop-types: 0 */ var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _expandRow = require('./expand-row'); var _expandRow2 = _interopRequireDefault(_expandRow); var _utils = require('../utils'); var _utils2 = _interopRequireDefault(_utils); var _rowExpandContext = require('../contexts/row-expand-context'); var _rowExpandContext2 = _interopRequireDefault(_rowExpandContext); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (Component) { var renderWithExpansion = function renderWithExpansion(props, expandRow) { var parentClassName = ''; var className = ''; var key = props.value; var expanded = _utils2.default.contains(expandRow.expanded, key); var isClosing = _utils2.default.contains(expandRow.isClosing, key); var expandable = !expandRow.nonExpandable || !_utils2.default.contains(expandRow.nonExpandable, key); if (expanded) { parentClassName = _utils2.default.isFunction(expandRow.parentClassName) ? expandRow.parentClassName(expanded, props.row, props.rowIndex) : expandRow.parentClassName || ''; className = _utils2.default.isFunction(expandRow.className) ? expandRow.className(expanded, props.row, props.rowIndex) : expandRow.className || ''; } return [_react2.default.createElement(Component, _extends({}, props, { key: key, expanded: expanded, expandable: expandable, expandRow: _extends({}, expandRow), className: (0, _classnames2.default)(props.className, parentClassName) })), expanded || isClosing ? _react2.default.createElement( _expandRow2.default, { key: key + '-expanding', colSpan: props.visibleColumnSize, expanded: expanded, onClosed: function onClosed() { return expandRow.onClosed(key); }, className: className }, expandRow.renderer(props.row, props.rowIndex) ) : null]; }; return function (props) { return _react2.default.createElement( _rowExpandContext2.default.Consumer, null, function (expandRow) { return renderWithExpansion(props, expandRow); } ); }; };