UNPKG

2.68 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
9var _react = require('react');
10
11var _react2 = _interopRequireDefault(_react);
12
13var _classnames = require('classnames');
14
15var _classnames2 = _interopRequireDefault(_classnames);
16
17var _utils = require('./utils');
18
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
22
23var propTypes = {
24 className: _react.PropTypes.string,
25 cssModule: _react.PropTypes.object,
26 size: _react.PropTypes.string,
27 bordered: _react.PropTypes.bool,
28 striped: _react.PropTypes.bool,
29 inverse: _react.PropTypes.bool,
30 hover: _react.PropTypes.bool,
31 reflow: _react.PropTypes.bool,
32 responsive: _react.PropTypes.bool,
33 tag: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string]),
34 responsiveTag: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string])
35};
36
37var defaultProps = {
38 tag: 'table',
39 responsiveTag: 'div'
40};
41
42var Table = function Table(props) {
43 var className = props.className,
44 cssModule = props.cssModule,
45 size = props.size,
46 bordered = props.bordered,
47 striped = props.striped,
48 inverse = props.inverse,
49 hover = props.hover,
50 reflow = props.reflow,
51 responsive = props.responsive,
52 Tag = props.tag,
53 ResponsiveTag = props.responsiveTag,
54 attributes = _objectWithoutProperties(props, ['className', 'cssModule', 'size', 'bordered', 'striped', 'inverse', 'hover', 'reflow', 'responsive', 'tag', 'responsiveTag']);
55
56 var classes = (0, _utils.mapToCssModules)((0, _classnames2.default)(className, 'table', size ? 'table-' + size : false, bordered ? 'table-bordered' : false, striped ? 'table-striped' : false, inverse ? 'table-inverse' : false, hover ? 'table-hover' : false, reflow ? 'table-reflow' : false), cssModule);
57
58 var table = _react2.default.createElement(Tag, _extends({}, attributes, { className: classes }));
59
60 if (responsive) {
61 return _react2.default.createElement(
62 ResponsiveTag,
63 { className: 'table-responsive' },
64 table
65 );
66 }
67
68 return table;
69};
70
71Table.propTypes = propTypes;
72Table.defaultProps = defaultProps;
73
74exports.default = Table;
\No newline at end of file