UNPKG

8.69 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4exports.default = undefined;
5
6var _extends2 = require('babel-runtime/helpers/extends');
7
8var _extends3 = _interopRequireDefault(_extends2);
9
10var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
11
12var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
13
14var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
15
16var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17
18var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
19
20var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21
22var _inherits2 = require('babel-runtime/helpers/inherits');
23
24var _inherits3 = _interopRequireDefault(_inherits2);
25
26var _class, _temp;
27
28var _react = require('react');
29
30var _react2 = _interopRequireDefault(_react);
31
32var _propTypes = require('prop-types');
33
34var _propTypes2 = _interopRequireDefault(_propTypes);
35
36var _classnames2 = require('classnames');
37
38var _classnames3 = _interopRequireDefault(_classnames2);
39
40var _util = require('../../util');
41
42var _row = require('../base/row');
43
44var _row2 = _interopRequireDefault(_row);
45
46function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
48var GroupListRow = (_temp = _class = function (_Row) {
49 (0, _inherits3.default)(GroupListRow, _Row);
50
51 function GroupListRow() {
52 (0, _classCallCheck3.default)(this, GroupListRow);
53 return (0, _possibleConstructorReturn3.default)(this, _Row.apply(this, arguments));
54 }
55
56 GroupListRow.prototype.render = function render() {
57 var _classnames;
58
59 /* eslint-disable no-unused-vars*/
60 var _props = this.props,
61 prefix = _props.prefix,
62 className = _props.className,
63 onClick = _props.onClick,
64 onMouseEnter = _props.onMouseEnter,
65 onMouseLeave = _props.onMouseLeave,
66 columns = _props.columns,
67 Cell = _props.Cell,
68 rowIndex = _props.rowIndex,
69 __rowIndex = _props.__rowIndex,
70 record = _props.record,
71 children = _props.children,
72 primaryKey = _props.primaryKey,
73 colGroup = _props.colGroup,
74 cellRef = _props.cellRef,
75 getCellProps = _props.getCellProps,
76 locale = _props.locale,
77 wrapper = _props.wrapper,
78 rtl = _props.rtl,
79 tableEl = _props.tableEl,
80 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'onClick', 'onMouseEnter', 'onMouseLeave', 'columns', 'Cell', 'rowIndex', '__rowIndex', 'record', 'children', 'primaryKey', 'colGroup', 'cellRef', 'getCellProps', 'locale', 'wrapper', 'rtl', 'tableEl']);
81
82 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-row'] = true, _classnames[className] = className, _classnames));
83
84 // clear notRenderCellIndex, incase of cached data
85 this.context.notRenderCellIndex = [];
86
87 return _react2.default.createElement(
88 'table',
89 (0, _extends3.default)({
90 className: cls,
91 role: 'row'
92 }, others, {
93 onClick: this.onClick,
94 onMouseEnter: this.onMouseEnter,
95 onMouseLeave: this.onMouseLeave
96 }),
97 colGroup,
98 _react2.default.createElement(
99 'tbody',
100 null,
101 this.renderContent('header'),
102 this.renderChildren(),
103 this.renderContent('footer')
104 )
105 );
106 };
107
108 GroupListRow.prototype.isChildrenSelection = function isChildrenSelection() {
109 return this.context.listHeader && this.context.listHeader.hasChildrenSelection;
110 };
111
112 GroupListRow.prototype.isFirstLevelDataWhenNoChildren = function isFirstLevelDataWhenNoChildren() {
113 return this.context.listHeader && this.context.listHeader.useFirstLevelDataWhenNoChildren;
114 };
115
116 GroupListRow.prototype.isSelection = function isSelection() {
117 return this.context.listHeader && this.context.listHeader.hasSelection;
118 };
119
120 GroupListRow.prototype.renderChildren = function renderChildren() {
121 var _this2 = this;
122
123 var _props2 = this.props,
124 record = _props2.record,
125 primaryKey = _props2.primaryKey;
126 var children = record.children;
127
128
129 var toRenderList = children;
130 if (this.isFirstLevelDataWhenNoChildren()) {
131 _util.log.warning('useFirstLevelDataWhenNoChildren is deprecated, change your dataSource structure, make sure there is \'children\' in your dataSource.');
132
133 toRenderList = children || [record];
134 }
135
136 if (toRenderList) {
137 return toRenderList.map(function (child, index) {
138 var cells = _this2.renderCells(child, index);
139 if (_this2.isChildrenSelection()) {
140 if (!child[primaryKey]) {
141 _util.log.warning('record.children/recored should contains primaryKey when childrenSelection is true.');
142 }
143 return _react2.default.createElement(
144 'tr',
145 { key: child[primaryKey] },
146 cells
147 );
148 }
149 if (_this2.context.rowSelection) {
150 cells.shift();
151 cells[0] = cells[0] && _react2.default.cloneElement(cells[0], (0, _extends3.default)({
152 colSpan: 2
153 }, cells[0].props));
154 }
155 return _react2.default.createElement(
156 'tr',
157 { key: index },
158 cells
159 );
160 });
161 }
162 return null;
163 };
164
165 GroupListRow.prototype.renderContent = function renderContent(type) {
166 var _props3 = this.props,
167 columns = _props3.columns,
168 prefix = _props3.prefix,
169 record = _props3.record,
170 rowIndex = _props3.rowIndex;
171
172 var cameType = type.charAt(0).toUpperCase() + type.substr(1);
173 var list = this.context['list' + cameType];
174 var listNode = void 0;
175 if (list) {
176 if (_react2.default.isValidElement(list.cell)) {
177 listNode = _react2.default.cloneElement(list.cell, {
178 record: record,
179 index: rowIndex
180 });
181 } else if (typeof list.cell === 'function') {
182 listNode = list.cell(record, rowIndex);
183 }
184 if (listNode) {
185 var cells = this.renderCells(record);
186 if (type === 'header' && this.context.rowSelection && this.isSelection()) {
187 cells = cells.slice(0, 1);
188 cells.push(_react2.default.createElement(
189 'td',
190 { colSpan: columns.length - 1, key: 'listNode' },
191 _react2.default.createElement(
192 'div',
193 { className: prefix + 'table-cell-wrapper' },
194 listNode
195 )
196 ));
197 listNode = _react2.default.createElement(
198 'tr',
199 { className: prefix + 'table-group-' + type },
200 cells
201 );
202 } else {
203 listNode = _react2.default.createElement(
204 'tr',
205 { className: prefix + 'table-group-' + type },
206 _react2.default.createElement(
207 'td',
208 { colSpan: columns.length },
209 _react2.default.createElement(
210 'div',
211 { className: prefix + 'table-cell-wrapper' },
212 listNode
213 )
214 )
215 );
216 }
217 }
218 }
219 return listNode;
220 };
221
222 return GroupListRow;
223}(_row2.default), _class.contextTypes = {
224 listHeader: _propTypes2.default.any,
225 listFooter: _propTypes2.default.any,
226 rowSelection: _propTypes2.default.object,
227 notRenderCellIndex: _propTypes2.default.array,
228 lockType: _propTypes2.default.oneOf(['left', 'right'])
229}, _temp);
230exports.default = GroupListRow;
231module.exports = exports.default;
232module.exports.default = exports.default;
\No newline at end of file