1 | 'use strict';
|
2 |
|
3 | exports.__esModule = true;
|
4 |
|
5 | var _extends2 = require('babel-runtime/helpers/extends');
|
6 |
|
7 | var _extends3 = _interopRequireDefault(_extends2);
|
8 |
|
9 | var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
|
10 |
|
11 | var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
|
12 |
|
13 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
14 |
|
15 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
16 |
|
17 | var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
18 |
|
19 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
20 |
|
21 | var _inherits2 = require('babel-runtime/helpers/inherits');
|
22 |
|
23 | var _inherits3 = _interopRequireDefault(_inherits2);
|
24 |
|
25 | var _react = require('react');
|
26 |
|
27 | var _react2 = _interopRequireDefault(_react);
|
28 |
|
29 | var _propTypes = require('prop-types');
|
30 |
|
31 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
32 |
|
33 | var _isRequiredForA11y = require('prop-types-extra/lib/isRequiredForA11y');
|
34 |
|
35 | var _isRequiredForA11y2 = _interopRequireDefault(_isRequiredForA11y);
|
36 |
|
37 | var _uncontrollable = require('uncontrollable');
|
38 |
|
39 | var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
|
40 |
|
41 | var _Nav = require('./Nav');
|
42 |
|
43 | var _Nav2 = _interopRequireDefault(_Nav);
|
44 |
|
45 | var _NavItem = require('./NavItem');
|
46 |
|
47 | var _NavItem2 = _interopRequireDefault(_NavItem);
|
48 |
|
49 | var _TabContainer = require('./TabContainer');
|
50 |
|
51 | var _TabContainer2 = _interopRequireDefault(_TabContainer);
|
52 |
|
53 | var _TabContent = require('./TabContent');
|
54 |
|
55 | var _TabContent2 = _interopRequireDefault(_TabContent);
|
56 |
|
57 | var _bootstrapUtils = require('./utils/bootstrapUtils');
|
58 |
|
59 | var _ValidComponentChildren = require('./utils/ValidComponentChildren');
|
60 |
|
61 | var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
|
62 |
|
63 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
64 |
|
65 | var TabContainer = _TabContainer2.default.ControlledComponent;
|
66 |
|
67 | var propTypes = {
|
68 | |
69 |
|
70 |
|
71 |
|
72 |
|
73 | activeKey: _propTypes2.default.any,
|
74 |
|
75 | |
76 |
|
77 |
|
78 | bsStyle: _propTypes2.default.oneOf(['tabs', 'pills']),
|
79 |
|
80 | animation: _propTypes2.default.bool,
|
81 |
|
82 | id: (0, _isRequiredForA11y2.default)(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number])),
|
83 |
|
84 | |
85 |
|
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 | onSelect: _propTypes2.default.func,
|
97 |
|
98 | |
99 |
|
100 |
|
101 | mountOnEnter: _propTypes2.default.bool,
|
102 |
|
103 | |
104 |
|
105 |
|
106 | unmountOnExit: _propTypes2.default.bool
|
107 | };
|
108 |
|
109 | var defaultProps = {
|
110 | bsStyle: 'tabs',
|
111 | animation: true,
|
112 | mountOnEnter: false,
|
113 | unmountOnExit: false
|
114 | };
|
115 |
|
116 | function getDefaultActiveKey(children) {
|
117 | var defaultActiveKey = void 0;
|
118 | _ValidComponentChildren2.default.forEach(children, function (child) {
|
119 | if (defaultActiveKey == null) {
|
120 | defaultActiveKey = child.props.eventKey;
|
121 | }
|
122 | });
|
123 |
|
124 | return defaultActiveKey;
|
125 | }
|
126 |
|
127 | var Tabs = function (_React$Component) {
|
128 | (0, _inherits3.default)(Tabs, _React$Component);
|
129 |
|
130 | function Tabs() {
|
131 | (0, _classCallCheck3.default)(this, Tabs);
|
132 | return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
|
133 | }
|
134 |
|
135 | Tabs.prototype.renderTab = function renderTab(child) {
|
136 | var _child$props = child.props,
|
137 | title = _child$props.title,
|
138 | eventKey = _child$props.eventKey,
|
139 | disabled = _child$props.disabled,
|
140 | tabClassName = _child$props.tabClassName;
|
141 |
|
142 | if (title == null) {
|
143 | return null;
|
144 | }
|
145 |
|
146 | return _react2.default.createElement(
|
147 | _NavItem2.default,
|
148 | { eventKey: eventKey, disabled: disabled, className: tabClassName },
|
149 | title
|
150 | );
|
151 | };
|
152 |
|
153 | Tabs.prototype.render = function render() {
|
154 | var _props = this.props,
|
155 | id = _props.id,
|
156 | onSelect = _props.onSelect,
|
157 | animation = _props.animation,
|
158 | mountOnEnter = _props.mountOnEnter,
|
159 | unmountOnExit = _props.unmountOnExit,
|
160 | bsClass = _props.bsClass,
|
161 | className = _props.className,
|
162 | style = _props.style,
|
163 | children = _props.children,
|
164 | _props$activeKey = _props.activeKey,
|
165 | activeKey = _props$activeKey === undefined ? getDefaultActiveKey(children) : _props$activeKey,
|
166 | props = (0, _objectWithoutProperties3.default)(_props, ['id', 'onSelect', 'animation', 'mountOnEnter', 'unmountOnExit', 'bsClass', 'className', 'style', 'children', 'activeKey']);
|
167 |
|
168 |
|
169 | return _react2.default.createElement(
|
170 | TabContainer,
|
171 | {
|
172 | id: id,
|
173 | activeKey: activeKey,
|
174 | onSelect: onSelect,
|
175 | className: className,
|
176 | style: style
|
177 | },
|
178 | _react2.default.createElement(
|
179 | 'div',
|
180 | null,
|
181 | _react2.default.createElement(
|
182 | _Nav2.default,
|
183 | (0, _extends3.default)({}, props, { role: 'tablist' }),
|
184 | _ValidComponentChildren2.default.map(children, this.renderTab)
|
185 | ),
|
186 | _react2.default.createElement(
|
187 | _TabContent2.default,
|
188 | {
|
189 | bsClass: bsClass,
|
190 | animation: animation,
|
191 | mountOnEnter: mountOnEnter,
|
192 | unmountOnExit: unmountOnExit
|
193 | },
|
194 | children
|
195 | )
|
196 | )
|
197 | );
|
198 | };
|
199 |
|
200 | return Tabs;
|
201 | }(_react2.default.Component);
|
202 |
|
203 | Tabs.propTypes = propTypes;
|
204 | Tabs.defaultProps = defaultProps;
|
205 |
|
206 | (0, _bootstrapUtils.bsClass)('tab', Tabs);
|
207 |
|
208 | exports.default = (0, _uncontrollable2.default)(Tabs, { activeKey: 'onSelect' });
|
209 | module.exports = exports['default']; |
\ | No newline at end of file |