UNPKG

6.41 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _typeof2 = require('babel-runtime/helpers/typeof');
6
7var _typeof3 = _interopRequireDefault(_typeof2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _extends2 = require('babel-runtime/helpers/extends');
14
15var _extends3 = _interopRequireDefault(_extends2);
16
17var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
18
19var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20
21var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
22
23var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
24
25var _inherits2 = require('babel-runtime/helpers/inherits');
26
27var _inherits3 = _interopRequireDefault(_inherits2);
28
29exports.default = list;
30
31var _react = require('react');
32
33var _react2 = _interopRequireDefault(_react);
34
35var _propTypes = require('prop-types');
36
37var _propTypes2 = _interopRequireDefault(_propTypes);
38
39var _classnames2 = require('classnames');
40
41var _classnames3 = _interopRequireDefault(_classnames2);
42
43var _listHeader = require('./list-header');
44
45var _listHeader2 = _interopRequireDefault(_listHeader);
46
47var _listFooter = require('./list-footer');
48
49var _listFooter2 = _interopRequireDefault(_listFooter);
50
51var _row = require('./list/row');
52
53var _row2 = _interopRequireDefault(_row);
54
55var _body = require('./list/body');
56
57var _body2 = _interopRequireDefault(_body);
58
59var _header = require('./fixed/header');
60
61var _header2 = _interopRequireDefault(_header);
62
63var _wrapper = require('./fixed/wrapper');
64
65var _wrapper2 = _interopRequireDefault(_wrapper);
66
67var _util = require('./util');
68
69function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
70
71function list(BaseComponent) {
72 var _class, _temp2;
73
74 var ListTable = (_temp2 = _class = function (_React$Component) {
75 (0, _inherits3.default)(ListTable, _React$Component);
76
77 function ListTable() {
78 var _temp, _this, _ret;
79
80 (0, _classCallCheck3.default)(this, ListTable);
81
82 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
83 args[_key] = arguments[_key];
84 }
85
86 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
87 }
88
89 ListTable.prototype.getChildContext = function getChildContext() {
90 return {
91 listHeader: this.listHeader,
92 listFooter: this.listFooter,
93 rowSelection: this.rowSelection
94 };
95 };
96
97 ListTable.prototype.normalizeDataSource = function normalizeDataSource(dataSource) {
98 var ret = [];
99 var loop = function loop(dataSource, level) {
100 dataSource.forEach(function (item) {
101 var itemCopy = (0, _extends3.default)({}, item);
102 itemCopy.__level = level;
103 ret.push(itemCopy);
104 if (itemCopy.children) {
105 loop(itemCopy.children, level + 1);
106 }
107 });
108 };
109 loop(dataSource, 0);
110 this.ds = ret;
111 return ret;
112 };
113
114 ListTable.prototype.render = function render() {
115 var _this2 = this;
116
117 /* eslint-disable prefer-const */
118 var _props = this.props,
119 components = _props.components,
120 children = _props.children,
121 className = _props.className,
122 prefix = _props.prefix,
123 others = (0, _objectWithoutProperties3.default)(_props, ['components', 'children', 'className', 'prefix']);
124
125 var isList = false,
126 ret = [];
127 _react.Children.forEach(children, function (child) {
128 if (child) {
129 if (['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1) {
130 if (child.type._typeMark === 'listHeader') {
131 _this2.listHeader = child.props;
132 isList = true;
133 } else if (child.type._typeMark === 'listFooter') {
134 _this2.listFooter = child.props;
135 } else {
136 ret.push(child);
137 }
138 } else {
139 ret.push(child);
140 }
141 }
142 });
143 this.rowSelection = this.props.rowSelection;
144 if (isList) {
145 var _classnames;
146
147 components = (0, _extends3.default)({}, components);
148 components.Row = components.Row || _row2.default;
149 components.Body = components.Body || _body2.default;
150 components.Header = components.Header || _header2.default;
151 components.Wrapper = components.Wrapper || _wrapper2.default;
152 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-group'] = true, _classnames[className] = className, _classnames));
153 }
154 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
155 components: components,
156 children: ret.length > 0 ? ret : undefined,
157 className: className,
158 prefix: prefix
159 }));
160 };
161
162 return ListTable;
163 }(_react2.default.Component), _class.ListHeader = _listHeader2.default, _class.ListFooter = _listFooter2.default, _class.ListRow = _row2.default, _class.ListBody = _body2.default, _class.propTypes = (0, _extends3.default)({}, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps), _class.childContextTypes = {
164 listHeader: _propTypes2.default.any,
165 listFooter: _propTypes2.default.any,
166 rowSelection: _propTypes2.default.object
167 }, _temp2);
168 ListTable.displayName = 'ListTable';
169
170 (0, _util.statics)(ListTable, BaseComponent);
171 return ListTable;
172}
173module.exports = exports['default'];
\No newline at end of file