UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

230 lines (189 loc) 8.6 kB
'use strict'; exports.__esModule = true; exports.default = undefined; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _class, _temp; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = require('classnames'); var _classnames3 = _interopRequireDefault(_classnames2); var _util = require('../../util'); var _row = require('../base/row'); var _row2 = _interopRequireDefault(_row); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var GroupListRow = (_temp = _class = function (_Row) { (0, _inherits3.default)(GroupListRow, _Row); function GroupListRow() { (0, _classCallCheck3.default)(this, GroupListRow); return (0, _possibleConstructorReturn3.default)(this, _Row.apply(this, arguments)); } GroupListRow.prototype.render = function render() { var _classnames; /* eslint-disable no-unused-vars*/ var _props = this.props, prefix = _props.prefix, className = _props.className, onClick = _props.onClick, onMouseEnter = _props.onMouseEnter, onMouseLeave = _props.onMouseLeave, columns = _props.columns, Cell = _props.Cell, rowIndex = _props.rowIndex, __rowIndex = _props.__rowIndex, record = _props.record, children = _props.children, primaryKey = _props.primaryKey, colGroup = _props.colGroup, cellRef = _props.cellRef, getCellProps = _props.getCellProps, locale = _props.locale, wrapper = _props.wrapper, rtl = _props.rtl, others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'onClick', 'onMouseEnter', 'onMouseLeave', 'columns', 'Cell', 'rowIndex', '__rowIndex', 'record', 'children', 'primaryKey', 'colGroup', 'cellRef', 'getCellProps', 'locale', 'wrapper', 'rtl']); var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-row'] = true, _classnames[className] = className, _classnames)); // clear notRenderCellIndex, incase of cached data this.context.notRenderCellIndex = []; return _react2.default.createElement( 'table', (0, _extends3.default)({ className: cls, role: 'row' }, others, { onClick: this.onClick, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave }), colGroup, _react2.default.createElement( 'tbody', null, this.renderContent('header'), this.renderChildren(), this.renderContent('footer') ) ); }; GroupListRow.prototype.isChildrenSelection = function isChildrenSelection() { return this.context.listHeader && this.context.listHeader.hasChildrenSelection; }; GroupListRow.prototype.isFirstLevelDataWhenNoChildren = function isFirstLevelDataWhenNoChildren() { return this.context.listHeader && this.context.listHeader.useFirstLevelDataWhenNoChildren; }; GroupListRow.prototype.isSelection = function isSelection() { return this.context.listHeader && this.context.listHeader.hasSelection; }; GroupListRow.prototype.renderChildren = function renderChildren() { var _this2 = this; var _props2 = this.props, record = _props2.record, primaryKey = _props2.primaryKey; var children = record.children; var toRenderList = children; if (this.isFirstLevelDataWhenNoChildren()) { _util.log.warning('useFirstLevelDataWhenNoChildren is deprecated, change your dataSource structure, make sure there is \'children\' in your dataSource.'); toRenderList = children || [record]; } if (toRenderList) { return toRenderList.map(function (child, index) { var cells = _this2.renderCells(child, index); if (_this2.isChildrenSelection()) { if (!child[primaryKey]) { _util.log.warning('record.children/recored should contains primaryKey when childrenSelection is true.'); } return _react2.default.createElement( 'tr', { key: child[primaryKey] }, cells ); } if (_this2.context.rowSelection) { cells.shift(); cells[0] = cells[0] && _react2.default.cloneElement(cells[0], (0, _extends3.default)({ colSpan: 2 }, cells[0].props)); } return _react2.default.createElement( 'tr', { key: index }, cells ); }); } return null; }; GroupListRow.prototype.renderContent = function renderContent(type) { var _props3 = this.props, columns = _props3.columns, prefix = _props3.prefix, record = _props3.record, rowIndex = _props3.rowIndex; var cameType = type.charAt(0).toUpperCase() + type.substr(1); var list = this.context['list' + cameType]; var listNode = void 0; if (list) { if (_react2.default.isValidElement(list.cell)) { listNode = _react2.default.cloneElement(list.cell, { record: record, index: rowIndex }); } else if (typeof list.cell === 'function') { listNode = list.cell(record, rowIndex); } if (listNode) { var cells = this.renderCells(record); if (type === 'header' && this.context.rowSelection && this.isSelection()) { cells = cells.slice(0, 1); cells.push(_react2.default.createElement( 'td', { colSpan: columns.length - 1, key: 'listNode' }, _react2.default.createElement( 'div', { className: prefix + 'table-cell-wrapper' }, listNode ) )); listNode = _react2.default.createElement( 'tr', { className: prefix + 'table-group-' + type }, cells ); } else { listNode = _react2.default.createElement( 'tr', { className: prefix + 'table-group-' + type }, _react2.default.createElement( 'td', { colSpan: columns.length }, _react2.default.createElement( 'div', { className: prefix + 'table-cell-wrapper' }, listNode ) ) ); } } } return listNode; }; return GroupListRow; }(_row2.default), _class.contextTypes = { listHeader: _propTypes2.default.any, listFooter: _propTypes2.default.any, rowSelection: _propTypes2.default.object, notRenderCellIndex: _propTypes2.default.array, lockType: _propTypes2.default.oneOf(['left', 'right']) }, _temp); exports.default = GroupListRow; module.exports = exports['default'];