UNPKG

4.44 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, _temp2;
27
28var _react = require('react');
29
30var _react2 = _interopRequireDefault(_react);
31
32var _reactDom = require('react-dom');
33
34var _propTypes = require('prop-types');
35
36var _propTypes2 = _interopRequireDefault(_propTypes);
37
38var _body = require('../base/body');
39
40var _body2 = _interopRequireDefault(_body);
41
42function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
44/* eslint-disable react/prefer-stateless-function */
45var FixedBody = (_temp2 = _class = function (_React$Component) {
46 (0, _inherits3.default)(FixedBody, _React$Component);
47
48 function FixedBody() {
49 var _temp, _this, _ret;
50
51 (0, _classCallCheck3.default)(this, FixedBody);
52
53 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
54 args[_key] = arguments[_key];
55 }
56
57 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onBodyScroll = function (event) {
58 var onFixedScrollSync = _this.context.onFixedScrollSync;
59 // sync scroll left to header
60
61 onFixedScrollSync && onFixedScrollSync(event);
62
63 // sync scroll top/left to lock columns
64 if ('onLockScroll' in _this.props && typeof _this.props.onLockScroll === 'function') {
65 _this.props.onLockScroll(event);
66 }
67 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
68 }
69
70 FixedBody.prototype.componentDidMount = function componentDidMount() {
71 var getNode = this.context.getNode;
72
73 getNode && getNode('body', (0, _reactDom.findDOMNode)(this));
74 };
75
76 FixedBody.prototype.render = function render() {
77 /*eslint-disable no-unused-vars */
78 var _props = this.props,
79 className = _props.className,
80 colGroup = _props.colGroup,
81 onLockScroll = _props.onLockScroll,
82 tableWidth = _props.tableWidth,
83 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'colGroup', 'onLockScroll', 'tableWidth']);
84 var _context = this.context,
85 maxBodyHeight = _context.maxBodyHeight,
86 fixedHeader = _context.fixedHeader;
87
88 var style = {};
89 if (fixedHeader) {
90 style.maxHeight = maxBodyHeight;
91 style.position = 'relative';
92 }
93 return _react2.default.createElement(
94 'div',
95 {
96 style: style,
97 className: className,
98 onScroll: this.onBodyScroll
99 },
100 _react2.default.createElement(
101 'table',
102 { style: { width: tableWidth } },
103 colGroup,
104 _react2.default.createElement(_body2.default, (0, _extends3.default)({}, others, { colGroup: colGroup }))
105 )
106 );
107 };
108
109 return FixedBody;
110}(_react2.default.Component), _class.propTypes = {
111 children: _propTypes2.default.any,
112 prefix: _propTypes2.default.string,
113 className: _propTypes2.default.string,
114 colGroup: _propTypes2.default.any,
115 onLockScroll: _propTypes2.default.func,
116 tableWidth: _propTypes2.default.number
117}, _class.contextTypes = {
118 fixedHeader: _propTypes2.default.bool,
119 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
120 onFixedScrollSync: _propTypes2.default.func,
121 getNode: _propTypes2.default.func
122}, _temp2);
123FixedBody.displayName = 'FixedBody';
124exports.default = FixedBody;
125module.exports = exports['default'];
\No newline at end of file