1 | 'use strict';
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = undefined;
|
5 |
|
6 | var _extends2 = require('babel-runtime/helpers/extends');
|
7 |
|
8 | var _extends3 = _interopRequireDefault(_extends2);
|
9 |
|
10 | var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
|
11 |
|
12 | var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
|
13 |
|
14 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
15 |
|
16 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
17 |
|
18 | var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
19 |
|
20 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
21 |
|
22 | var _inherits2 = require('babel-runtime/helpers/inherits');
|
23 |
|
24 | var _inherits3 = _interopRequireDefault(_inherits2);
|
25 |
|
26 | var _class, _temp2;
|
27 |
|
28 | var _react = require('react');
|
29 |
|
30 | var _react2 = _interopRequireDefault(_react);
|
31 |
|
32 | var _propTypes = require('prop-types');
|
33 |
|
34 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
35 |
|
36 | var _util = require('../../util');
|
37 |
|
38 | var _row = require('../lock/row');
|
39 |
|
40 | var _row2 = _interopRequireDefault(_row);
|
41 |
|
42 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
43 |
|
44 | var ExpandedRow = (_temp2 = _class = function (_React$Component) {
|
45 | (0, _inherits3.default)(ExpandedRow, _React$Component);
|
46 |
|
47 | function ExpandedRow() {
|
48 | var _temp, _this, _ret;
|
49 |
|
50 | (0, _classCallCheck3.default)(this, ExpandedRow);
|
51 |
|
52 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
53 | args[_key] = arguments[_key];
|
54 | }
|
55 |
|
56 | return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getExpandedRow = function (parentKey, ref) {
|
57 | var getExpandedRowRef = _this.context.getExpandedRowRef;
|
58 |
|
59 | getExpandedRowRef && getExpandedRowRef(parentKey, ref);
|
60 | }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
|
61 | }
|
62 |
|
63 | ExpandedRow.prototype.renderExpandedRow = function renderExpandedRow(record, rowIndex) {
|
64 | var _context = this.context,
|
65 | expandedRowRender = _context.expandedRowRender,
|
66 | expandedRowIndent = _context.expandedRowIndent,
|
67 | openRowKeys = _context.openRowKeys,
|
68 | lockType = _context.lockType,
|
69 | expandedIndexSimulate = _context.expandedIndexSimulate,
|
70 | expandedRowWidthEquals2Table = _context.expandedRowWidthEquals2Table;
|
71 |
|
72 | var expandedIndex = expandedIndexSimulate ? (rowIndex - 1) / 2 : rowIndex;
|
73 |
|
74 | var _props = this.props,
|
75 | columns = _props.columns,
|
76 | cellRef = _props.cellRef;
|
77 |
|
78 | var colSpan = columns.length;
|
79 | var expandedCols = columns[0] && columns[0].__colIndex || 0;
|
80 |
|
81 | if (expandedRowRender) {
|
82 | var _props2 = this.props,
|
83 | primaryKey = _props2.primaryKey,
|
84 | prefix = _props2.prefix,
|
85 | leftIndent = expandedRowIndent[0],
|
86 | rightIndent = expandedRowIndent[1],
|
87 | totalIndent = leftIndent + rightIndent,
|
88 | renderCols = function renderCols(number) {
|
89 | var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
90 |
|
91 | var ret = [];
|
92 |
|
93 | var _loop = function _loop(i) {
|
94 | ret.push(_react2.default.createElement(
|
95 | 'td',
|
96 | { key: i, ref: function ref(cell) {
|
97 | return cellRef(rowIndex, i + start, cell);
|
98 | } },
|
99 | '\xA0'
|
100 | ));
|
101 | };
|
102 |
|
103 | for (var i = 0; i < number; i++) {
|
104 | _loop(i);
|
105 | }
|
106 | return ret;
|
107 | };
|
108 |
|
109 | var content = void 0;
|
110 |
|
111 | if (totalIndent > colSpan && !lockType) {
|
112 | _util.log.warning("It's not allowed expandedRowIndent is more than the number of columns.");
|
113 | }
|
114 | if (leftIndent < columns.length && lockType === 'left') {
|
115 | _util.log.warning('expandedRowIndent left is less than the number of left lock columns.');
|
116 | }
|
117 | if (rightIndent < columns.length && lockType === 'right') {
|
118 | _util.log.warning('expandedRowIndent right is less than the number of right lock columns.');
|
119 | }
|
120 | if (lockType) {
|
121 | return openRowKeys.indexOf(record[primaryKey]) > -1 ? _react2.default.createElement(
|
122 | 'tr',
|
123 | { className: prefix + 'table-expanded-row', key: 'expanded-' + expandedIndex },
|
124 | _react2.default.createElement(
|
125 | 'td',
|
126 | { colSpan: colSpan, ref: function ref(cell) {
|
127 | return cellRef(rowIndex, expandedCols, cell);
|
128 | } },
|
129 | '\xA0'
|
130 | )
|
131 | ) : null;
|
132 | }
|
133 |
|
134 | var expandedRowStyle = {
|
135 | position: 'sticky',
|
136 | left: 0
|
137 | };
|
138 |
|
139 | content = expandedRowRender(record, expandedIndex);
|
140 | if (!_react2.default.isValidElement(content)) {
|
141 | content = _react2.default.createElement(
|
142 | 'div',
|
143 | {
|
144 | className: prefix + 'table-cell-wrapper',
|
145 | ref: this.getExpandedRow.bind(this, record[primaryKey]),
|
146 | style: expandedRowWidthEquals2Table && expandedRowStyle
|
147 | },
|
148 | content
|
149 | );
|
150 | } else {
|
151 | content = expandedRowWidthEquals2Table ? _react2.default.createElement(
|
152 | 'div',
|
153 | {
|
154 | className: prefix + 'table-expanded-area',
|
155 | ref: this.getExpandedRow.bind(this, record[primaryKey]),
|
156 | style: expandedRowStyle
|
157 | },
|
158 | content
|
159 | ) : content;
|
160 | }
|
161 |
|
162 | var rightStart = columns.length;
|
163 | columns.forEach(function (col) {
|
164 | col.lock === 'right' && rightStart--;
|
165 | });
|
166 | return openRowKeys.indexOf(record[primaryKey]) > -1 ? _react2.default.createElement(
|
167 | 'tr',
|
168 | { className: prefix + 'table-expanded-row', key: 'expanded-' + (record[primaryKey] || expandedIndex) },
|
169 | renderCols(leftIndent),
|
170 | _react2.default.createElement(
|
171 | 'td',
|
172 | { colSpan: colSpan - totalIndent },
|
173 | content
|
174 | ),
|
175 | renderCols(rightIndent, rightStart)
|
176 | ) : null;
|
177 | } else {
|
178 | return null;
|
179 | }
|
180 | };
|
181 |
|
182 | ExpandedRow.prototype.render = function render() {
|
183 |
|
184 | var _props3 = this.props,
|
185 | record = _props3.record,
|
186 | rowIndex = _props3.rowIndex,
|
187 | columns = _props3.columns,
|
188 | others = (0, _objectWithoutProperties3.default)(_props3, ['record', 'rowIndex', 'columns']);
|
189 | var expandedIndexSimulate = this.context.expandedIndexSimulate;
|
190 |
|
191 |
|
192 | if (record.__expanded) {
|
193 | return this.renderExpandedRow(record, rowIndex, columns);
|
194 | }
|
195 |
|
196 | var newRowIndex = expandedIndexSimulate ? rowIndex / 2 : rowIndex;
|
197 | return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, others, { record: record, columns: columns, __rowIndex: rowIndex, rowIndex: newRowIndex }));
|
198 | };
|
199 |
|
200 | return ExpandedRow;
|
201 | }(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
|
202 | openRowKeys: _propTypes2.default.array,
|
203 | expandedRowRender: _propTypes2.default.func,
|
204 | expandedRowIndent: _propTypes2.default.array,
|
205 | expandedIndexSimulate: _propTypes2.default.bool,
|
206 | expandedRowWidthEquals2Table: _propTypes2.default.bool,
|
207 | lockType: _propTypes2.default.oneOf(['left', 'right']),
|
208 | getExpandedRowRef: _propTypes2.default.func
|
209 | }, _temp2);
|
210 | ExpandedRow.displayName = 'ExpandedRow';
|
211 | exports.default = ExpandedRow;
|
212 | module.exports = exports['default']; |
\ | No newline at end of file |