diff --git a/CHANGELOG.md b/CHANGELOG.md index e5674b8a7..83d087049 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,27 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +# [2.0.0](https://github.com/reactjs/react-tabs/compare/v1.1.0...v2.0.0) (2017-09-05) + + +### Bug Fixes + +* **tabs:** Fix activeElement check [#193](https://github.com/reactjs/react-tabs/issues/193) ([#194](https://github.com/reactjs/react-tabs/issues/194)) ([722d52f](https://github.com/reactjs/react-tabs/commit/722d52f)) + + +### Features + +* **tabs:** Allow for higher order components ([#196](https://github.com/reactjs/react-tabs/issues/196)) ([1969e65](https://github.com/reactjs/react-tabs/commit/1969e65)) +* **tabs:** Always callback setSelected. ([#195](https://github.com/reactjs/react-tabs/issues/195)) ([bc1910a](https://github.com/reactjs/react-tabs/commit/bc1910a)) + + +### BREAKING CHANGES + +* **tabs:** The `onSelect` callback will now also be called when clicking on the currently active tab. + + + ## [1.1.0](https://github.com/researchgate/node-package-blueprint/compare/v1.0.0...v1.1.0) (2017-06-13) diff --git a/dist/react-tabs.js b/dist/react-tabs.js index bcd9fddcb..bc2787235 100644 --- a/dist/react-tabs.js +++ b/dist/react-tabs.js @@ -7,7 +7,7 @@ exports["ReactTabs"] = factory(require("react"), require("prop-types"), require("classnames")); else root["ReactTabs"] = factory(root["React"], root["PropTypes"], root["classNames"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_5__) { +})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 12); +/******/ return __webpack_require__(__webpack_require__.s = 13); /******/ }) /************************************************************************/ /******/ ([ @@ -84,6 +84,41 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), /* 1 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_1__; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.isTab = isTab; +exports.isTabPanel = isTabPanel; +exports.isTabList = isTabList; +function isTab(el) { + return el.type.tabsRole === 'Tab'; +} + +function isTabPanel(el) { + return el.type.tabsRole === 'TabPanel'; +} + +function isTabList(el) { + return el.type.tabsRole === 'TabList'; +} + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_3__; + +/***/ }), +/* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -93,7 +128,205 @@ exports.__esModule = true; var _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; }; -var _propTypes = __webpack_require__(3); +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.deepMap = deepMap; +exports.deepForEach = deepForEach; + +var _react = __webpack_require__(0); + +var _elementTypes = __webpack_require__(2); + +function isTabChild(child) { + return (0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabList)(child) || (0, _elementTypes.isTabPanel)(child); +} + +function deepMap(children, callback) { + return _react.Children.map(children, function (child) { + // null happens when conditionally rendering TabPanel/Tab + // see https://github.com/reactjs/react-tabs/issues/37 + if (child === null) return null; + + if (isTabChild(child)) { + return callback(child); + } + + if (child.props && child.props.children && _typeof(child.props.children) === 'object') { + // Clone the child that has children and map them too + return (0, _react.cloneElement)(child, _extends({}, child.props, { + children: deepMap(child.props.children, callback) + })); + } + + return child; + }); +} + +function deepForEach(children, callback) { + return _react.Children.forEach(children, function (child) { + // null happens when conditionally rendering TabPanel/Tab + // see https://github.com/reactjs/react-tabs/issues/37 + if (child === null) return; + + if ((0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabPanel)(child)) { + callback(child); + } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') { + if ((0, _elementTypes.isTabList)(child)) callback(child); + deepForEach(child.props.children, callback); + } + }); +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = uuid; +exports.reset = reset; +// Get a universally unique identifier +var count = 0; +function uuid() { + return "react-tabs-" + count++; +} + +function reset() { + count = 0; +} + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.getTabsCount = getTabsCount; +exports.getPanelsCount = getPanelsCount; + +var _childrenDeepMap = __webpack_require__(4); + +var _elementTypes = __webpack_require__(2); + +function getTabsCount(children) { + var tabCount = 0; + (0, _childrenDeepMap.deepForEach)(children, function (child) { + if ((0, _elementTypes.isTab)(child)) tabCount++; + }); + + return tabCount; +} + +function getPanelsCount(children) { + var panelCount = 0; + (0, _childrenDeepMap.deepForEach)(children, function (child) { + if ((0, _elementTypes.isTabPanel)(child)) panelCount++; + }); + + return panelCount; +} + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.childrenPropType = childrenPropType; +exports.onSelectPropType = onSelectPropType; +exports.selectedIndexPropType = selectedIndexPropType; + +var _childrenDeepMap = __webpack_require__(4); + +var _elementTypes = __webpack_require__(2); + +function childrenPropType(props, propName, componentName) { + var error = void 0; + var tabsCount = 0; + var panelsCount = 0; + var tabListFound = false; + var listTabs = []; + var children = props[propName]; + + (0, _childrenDeepMap.deepForEach)(children, function (child) { + if ((0, _elementTypes.isTabList)(child)) { + if (child.props && child.props.children && _typeof(child.props.children) === 'object') { + (0, _childrenDeepMap.deepForEach)(child.props.children, function (listChild) { + return listTabs.push(listChild); + }); + } + + if (tabListFound) { + error = new Error("Found multiple 'TabList' components inside 'Tabs'. Only one is allowed."); + } + tabListFound = true; + } + if ((0, _elementTypes.isTab)(child)) { + if (!tabListFound || listTabs.indexOf(child) === -1) { + error = new Error("Found a 'Tab' component outside of the 'TabList' component. 'Tab' components have to be inside the 'TabList' component."); + } + tabsCount++; + } else if ((0, _elementTypes.isTabPanel)(child)) { + panelsCount++; + } + }); + + if (!error && tabsCount !== panelsCount) { + error = new Error('There should be an equal number of \'Tab\' and \'TabPanel\' in `' + componentName + '`.' + ('Received ' + tabsCount + ' \'Tab\' and ' + panelsCount + ' \'TabPanel\'.')); + } + + return error; +} + +function onSelectPropType(props, propName, componentName, location, propFullName) { + var prop = props[propName]; + var name = propFullName || propName; + var error = null; + + if (prop && typeof prop !== 'function') { + error = new Error('Invalid ' + location + ' `' + name + '` of type `' + (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) + '` supplied to `' + componentName + '`, expected `function`.'); + } else if (props.selectedIndex != null && prop == null) { + error = new Error('The ' + location + ' `' + name + '` is marked as required in `' + componentName + '`, but its value is `undefined` or `null`.\n`onSelect` is required when `selectedIndex` is also set. Not doing so will make the tabs not do anything, as `selectedIndex` indicates that you want to handle the selected tab yourself.\nIf you only want to set the inital tab replace `selectedIndex` with `defaultIndex`.'); + } + + return error; +} + +function selectedIndexPropType(props, propName, componentName, location, propFullName) { + var prop = props[propName]; + var name = propFullName || propName; + var error = null; + + if (prop != null && typeof prop !== 'number') { + error = new Error('Invalid ' + location + ' `' + name + '` of type `' + (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) + '` supplied to `' + componentName + '`, expected `number`.'); + } else if (props.defaultIndex != null && prop != null) { + return new Error('The ' + location + ' `' + name + '` cannot be used together with `defaultIndex` in `' + componentName + '`.\nEither remove `' + name + '` to let `' + componentName + '` handle the selected tab internally or remove `defaultIndex` to handle it yourself.'); + } + + return error; +} + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _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; }; + +var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); @@ -101,7 +334,7 @@ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); -var _classnames = __webpack_require__(5); +var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); @@ -202,103 +435,11 @@ Tab.propTypes = true ? { tabRef: _propTypes2.default.func // private } : {}; -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _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; }; - -var _propTypes = __webpack_require__(3); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(0); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__(5); - -var _classnames2 = _interopRequireDefault(_classnames); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _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; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var DEFAULT_CLASS = 'react-tabs__tab-panel'; - -var TabPanel = function (_Component) { - _inherits(TabPanel, _Component); - - function TabPanel() { - _classCallCheck(this, TabPanel); - - return _possibleConstructorReturn(this, _Component.apply(this, arguments)); - } - - TabPanel.prototype.render = function render() { - var _cx; - - var _props = this.props, - children = _props.children, - className = _props.className, - forceRender = _props.forceRender, - id = _props.id, - selected = _props.selected, - selectedClassName = _props.selectedClassName, - tabId = _props.tabId, - attributes = _objectWithoutProperties(_props, ['children', 'className', 'forceRender', 'id', 'selected', 'selectedClassName', 'tabId']); - - return _react2.default.createElement( - 'div', - _extends({}, attributes, { - className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)), - role: 'tabpanel', - id: id, - 'aria-labelledby': tabId - }), - forceRender || selected ? children : null - ); - }; - - return TabPanel; -}(_react.Component); - -TabPanel.defaultProps = { - className: DEFAULT_CLASS, - forceRender: false, - selectedClassName: DEFAULT_CLASS + '--selected', - style: {} -}; -exports.default = TabPanel; -TabPanel.propTypes = true ? { - children: _propTypes2.default.node, - className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]), - forceRender: _propTypes2.default.bool, - id: _propTypes2.default.string, // private - selected: _propTypes2.default.bool, // private - selectedClassName: _propTypes2.default.string, - tabId: _propTypes2.default.string // private -} : {}; - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { -module.exports = __WEBPACK_EXTERNAL_MODULE_3__; +Tab.tabsRole = 'Tab'; /***/ }), -/* 4 */ +/* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -308,7 +449,7 @@ exports.__esModule = true; var _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; }; -var _propTypes = __webpack_require__(3); +var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); @@ -316,7 +457,7 @@ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); -var _classnames = __webpack_require__(5); +var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); @@ -364,14 +505,11 @@ TabList.propTypes = true ? { className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]) } : {}; -/***/ }), -/* 5 */ -/***/ (function(module, exports) { -module.exports = __WEBPACK_EXTERNAL_MODULE_5__; +TabList.tabsRole = 'TabList'; /***/ }), -/* 6 */ +/* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -381,227 +519,89 @@ exports.__esModule = true; var _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; }; -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; +var _propTypes = __webpack_require__(1); -exports.deepMap = deepMap; -exports.deepForEach = deepForEach; +var _propTypes2 = _interopRequireDefault(_propTypes); var _react = __webpack_require__(0); -var _Tab = __webpack_require__(1); - -var _Tab2 = _interopRequireDefault(_Tab); - -var _TabList = __webpack_require__(4); - -var _TabList2 = _interopRequireDefault(_TabList); - -var _TabPanel = __webpack_require__(2); - -var _TabPanel2 = _interopRequireDefault(_TabPanel); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function isTabChild(child) { - return child.type === _Tab2.default || child.type === _TabList2.default || child.type === _TabPanel2.default; -} - -function deepMap(children, callback) { - return _react.Children.map(children, function (child) { - // null happens when conditionally rendering TabPanel/Tab - // see https://github.com/reactjs/react-tabs/issues/37 - if (child === null) return null; - - if (isTabChild(child)) { - return callback(child); - } - - if (child.props && child.props.children && _typeof(child.props.children) === 'object') { - // Clone the child that has children and map them too - return (0, _react.cloneElement)(child, _extends({}, child.props, { - children: deepMap(child.props.children, callback) - })); - } - - return child; - }); -} - -function deepForEach(children, callback) { - return _react.Children.forEach(children, function (child) { - // null happens when conditionally rendering TabPanel/Tab - // see https://github.com/reactjs/react-tabs/issues/37 - if (child === null) return; - - if (child.type === _Tab2.default || child.type === _TabPanel2.default) { - callback(child); - } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') { - if (child.type === _TabList2.default) callback(child); - deepForEach(child.props.children, callback); - } - }); -} - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.default = uuid; -exports.reset = reset; -// Get a universally unique identifier -var count = 0; -function uuid() { - return "react-tabs-" + count++; -} - -function reset() { - count = 0; -} - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.getTabsCount = getTabsCount; -exports.getPanelsCount = getPanelsCount; - -var _childrenDeepMap = __webpack_require__(6); - -var _Tab = __webpack_require__(1); - -var _Tab2 = _interopRequireDefault(_Tab); +var _react2 = _interopRequireDefault(_react); -var _TabPanel = __webpack_require__(2); +var _classnames = __webpack_require__(3); -var _TabPanel2 = _interopRequireDefault(_TabPanel); +var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function getTabsCount(children) { - var tabCount = 0; - (0, _childrenDeepMap.deepForEach)(children, function (child) { - if (child.type === _Tab2.default) tabCount++; - }); - - return tabCount; -} - -function getPanelsCount(children) { - var panelCount = 0; - (0, _childrenDeepMap.deepForEach)(children, function (child) { - if (child.type === _TabPanel2.default) panelCount++; - }); - - return panelCount; -} - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports.childrenPropType = childrenPropType; -exports.onSelectPropType = onSelectPropType; -exports.selectedIndexPropType = selectedIndexPropType; - -var _childrenDeepMap = __webpack_require__(6); - -var _Tab = __webpack_require__(1); - -var _Tab2 = _interopRequireDefault(_Tab); - -var _TabList = __webpack_require__(4); - -var _TabList2 = _interopRequireDefault(_TabList); +function _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; } -var _TabPanel = __webpack_require__(2); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _TabPanel2 = _interopRequireDefault(_TabPanel); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -function childrenPropType(props, propName, componentName) { - var error = void 0; - var tabsCount = 0; - var panelsCount = 0; - var tabListFound = false; - var listTabs = []; - var children = props[propName]; +var DEFAULT_CLASS = 'react-tabs__tab-panel'; - (0, _childrenDeepMap.deepForEach)(children, function (child) { - if (child.type === _TabList2.default) { - if (child.props && child.props.children && _typeof(child.props.children) === 'object') { - (0, _childrenDeepMap.deepForEach)(child.props.children, function (listChild) { - return listTabs.push(listChild); - }); - } +var TabPanel = function (_Component) { + _inherits(TabPanel, _Component); - if (tabListFound) { - error = new Error("Found multiple 'TabList' components inside 'Tabs'. Only one is allowed."); - } - tabListFound = true; - } - if (child.type === _Tab2.default) { - if (!tabListFound || listTabs.indexOf(child) === -1) { - error = new Error("Found a 'Tab' component outside of the 'TabList' component. 'Tab' components have to be inside the 'TabList' component."); - } - tabsCount++; - } else if (child.type === _TabPanel2.default) { - panelsCount++; - } - }); + function TabPanel() { + _classCallCheck(this, TabPanel); - if (!error && tabsCount !== panelsCount) { - error = new Error('There should be an equal number of \'Tab\' and \'TabPanel\' in `' + componentName + '`.' + ('Received ' + tabsCount + ' \'Tab\' and ' + panelsCount + ' \'TabPanel\'.')); + return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } - return error; -} + TabPanel.prototype.render = function render() { + var _cx; -function onSelectPropType(props, propName, componentName, location, propFullName) { - var prop = props[propName]; - var name = propFullName || propName; - var error = null; + var _props = this.props, + children = _props.children, + className = _props.className, + forceRender = _props.forceRender, + id = _props.id, + selected = _props.selected, + selectedClassName = _props.selectedClassName, + tabId = _props.tabId, + attributes = _objectWithoutProperties(_props, ['children', 'className', 'forceRender', 'id', 'selected', 'selectedClassName', 'tabId']); - if (prop && typeof prop !== 'function') { - error = new Error('Invalid ' + location + ' `' + name + '` of type `' + (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) + '` supplied to `' + componentName + '`, expected `function`.'); - } else if (props.selectedIndex != null && prop == null) { - error = new Error('The ' + location + ' `' + name + '` is marked as required in `' + componentName + '`, but its value is `undefined` or `null`.\n`onSelect` is required when `selectedIndex` is also set. Not doing so will make the tabs not do anything, as `selectedIndex` indicates that you want to handle the selected tab yourself.\nIf you only want to set the inital tab replace `selectedIndex` with `defaultIndex`.'); - } + return _react2.default.createElement( + 'div', + _extends({}, attributes, { + className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)), + role: 'tabpanel', + id: id, + 'aria-labelledby': tabId + }), + forceRender || selected ? children : null + ); + }; - return error; -} + return TabPanel; +}(_react.Component); -function selectedIndexPropType(props, propName, componentName, location, propFullName) { - var prop = props[propName]; - var name = propFullName || propName; - var error = null; +TabPanel.defaultProps = { + className: DEFAULT_CLASS, + forceRender: false, + selectedClassName: DEFAULT_CLASS + '--selected', + style: {} +}; +exports.default = TabPanel; +TabPanel.propTypes = true ? { + children: _propTypes2.default.node, + className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]), + forceRender: _propTypes2.default.bool, + id: _propTypes2.default.string, // private + selected: _propTypes2.default.bool, // private + selectedClassName: _propTypes2.default.string, + tabId: _propTypes2.default.string // private +} : {}; - if (prop != null && typeof prop !== 'number') { - error = new Error('Invalid ' + location + ' `' + name + '` of type `' + (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) + '` supplied to `' + componentName + '`, expected `number`.'); - } else if (props.defaultIndex != null && prop != null) { - return new Error('The ' + location + ' `' + name + '` cannot be used together with `defaultIndex` in `' + componentName + '`.\nEither remove `' + name + '` to let `' + componentName + '` handle the selected tab internally or remove `defaultIndex` to handle it yourself.'); - } - return error; -} +TabPanel.tabsRole = 'TabPanel'; /***/ }), -/* 10 */ +/* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -609,7 +609,7 @@ function selectedIndexPropType(props, propName, componentName, location, propFul exports.__esModule = true; -var _propTypes = __webpack_require__(3); +var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); @@ -617,13 +617,13 @@ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); -var _propTypes3 = __webpack_require__(9); +var _propTypes3 = __webpack_require__(7); -var _UncontrolledTabs = __webpack_require__(11); +var _UncontrolledTabs = __webpack_require__(12); var _UncontrolledTabs2 = _interopRequireDefault(_UncontrolledTabs); -var _count = __webpack_require__(8); +var _count = __webpack_require__(6); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -751,8 +751,11 @@ Tabs.propTypes = true ? { selectedTabPanelClassName: _propTypes2.default.string } : {}; + +Tabs.tabsRole = 'Tabs'; + /***/ }), -/* 11 */ +/* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -762,7 +765,7 @@ exports.__esModule = true; var _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; }; -var _propTypes = __webpack_require__(3); +var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); @@ -770,31 +773,21 @@ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); -var _classnames = __webpack_require__(5); +var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); -var _uuid = __webpack_require__(7); +var _uuid = __webpack_require__(5); var _uuid2 = _interopRequireDefault(_uuid); -var _propTypes3 = __webpack_require__(9); - -var _Tab = __webpack_require__(1); - -var _Tab2 = _interopRequireDefault(_Tab); - -var _TabList = __webpack_require__(4); - -var _TabList2 = _interopRequireDefault(_TabList); +var _propTypes3 = __webpack_require__(7); -var _TabPanel = __webpack_require__(2); +var _count = __webpack_require__(6); -var _TabPanel2 = _interopRequireDefault(_TabPanel); - -var _count = __webpack_require__(8); +var _childrenDeepMap = __webpack_require__(4); -var _childrenDeepMap = __webpack_require__(6); +var _elementTypes = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -816,7 +809,16 @@ function isTabDisabled(node) { return node.getAttribute('aria-disabled') === 'true'; } -var canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement); +var canUseActiveElement = void 0; +try { + canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement); +} catch (e) { + // Work around for IE bug when accessing document.activeElement in an iframe + // Refer to the following resources: + // http://stackoverflow.com/a/10982960/369687 + // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599 + canUseActiveElement = false; +} var UncontrolledTabs = function (_Component) { _inherits(UncontrolledTabs, _Component); @@ -963,7 +965,7 @@ var UncontrolledTabs = function (_Component) { var result = child; // Clone TabList and Tab components to have refs - if (child.type === _TabList2.default) { + if ((0, _elementTypes.isTabList)(child)) { var listIndex = 0; // Figure out if the current focus in the DOM is set on a Tab @@ -971,9 +973,7 @@ var UncontrolledTabs = function (_Component) { var wasTabFocused = false; if (canUseActiveElement) { - wasTabFocused = _react2.default.Children.toArray(child.props.children).filter(function (tab) { - return tab.type === _Tab2.default; - }).some(function (tab, i) { + wasTabFocused = _react2.default.Children.toArray(child.props.children).filter(_elementTypes.isTab).some(function (tab, i) { return document.activeElement === _this2.getTab(i); }); } @@ -1001,7 +1001,7 @@ var UncontrolledTabs = function (_Component) { return (0, _react.cloneElement)(tab, props); }) }); - } else if (child.type === _TabPanel2.default) { + } else if ((0, _elementTypes.isTabPanel)(child)) { var props = { id: _this2.panelIds[index], tabId: _this2.tabIds[index], @@ -1094,7 +1094,7 @@ UncontrolledTabs.propTypes = true ? { } : {}; /***/ }), -/* 12 */ +/* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1103,23 +1103,23 @@ UncontrolledTabs.propTypes = true ? { exports.__esModule = true; exports.resetIdCounter = exports.Tabs = exports.TabPanel = exports.TabList = exports.Tab = undefined; -var _Tabs = __webpack_require__(10); +var _Tabs = __webpack_require__(11); var _Tabs2 = _interopRequireDefault(_Tabs); -var _TabList = __webpack_require__(4); +var _TabList = __webpack_require__(9); var _TabList2 = _interopRequireDefault(_TabList); -var _Tab = __webpack_require__(1); +var _Tab = __webpack_require__(8); var _Tab2 = _interopRequireDefault(_Tab); -var _TabPanel = __webpack_require__(2); +var _TabPanel = __webpack_require__(10); var _TabPanel2 = _interopRequireDefault(_TabPanel); -var _uuid = __webpack_require__(7); +var _uuid = __webpack_require__(5); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } diff --git a/dist/react-tabs.js.map b/dist/react-tabs.js.map index eb7d18499..7d575e3f9 100644 --- a/dist/react-tabs.js.map +++ b/dist/react-tabs.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 3372e37094040ff91319","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./src/components/Tab.js","webpack:///./src/components/TabPanel.js","webpack:///external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}","webpack:///./src/components/TabList.js","webpack:///external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}","webpack:///./src/helpers/childrenDeepMap.js","webpack:///./src/helpers/uuid.js","webpack:///./src/helpers/count.js","webpack:///./src/helpers/propTypes.js","webpack:///./src/components/Tabs.js","webpack:///./src/components/UncontrolledTabs.js","webpack:///./src/index.js"],"names":["DEFAULT_CLASS","Tab","componentDidMount","checkFocus","componentDidUpdate","props","selected","focus","node","render","children","className","disabled","disabledClassName","id","panelId","selectedClassName","tabRef","attributes","defaultProps","propTypes","oneOfType","array","object","string","bool","func","TabPanel","forceRender","tabId","style","TabList","deepMap","deepForEach","isTabChild","child","type","callback","map","forEach","uuid","reset","count","getTabsCount","getPanelsCount","tabCount","panelCount","childrenPropType","onSelectPropType","selectedIndexPropType","propName","componentName","error","tabsCount","panelsCount","tabListFound","listTabs","push","listChild","Error","indexOf","location","propFullName","prop","name","selectedIndex","defaultIndex","Tabs","handleSelected","index","last","event","onSelect","state","inUncontrolledMode","setState","copyPropsToState","defaultFocus","componentWillReceiveProps","newProps","newState","maxTabIndex","Math","min","forceRenderTabPanel","number","disabledTabClassName","selectedTabClassName","selectedTabPanelClassName","isTabNode","nodeName","getAttribute","isTabDisabled","canUseActiveElement","window","document","activeElement","UncontrolledTabs","tabNodes","handleKeyDown","isTabFromContainer","e","target","preventDefault","keyCode","getPrevTab","getNextTab","setSelected","handleClick","slice","call","parentNode","filter","i","getTab","getChildren","tabIds","panelIds","diff","length","result","listIndex","wasTabFocused","Children","toArray","tab","some","key","nodeAncestor","parentElement","isRequired","resetIdCounter"],"mappings":"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","file":"react-tabs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"prop-types\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"prop-types\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"prop-types\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"PropTypes\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_5__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3372e37094040ff91319","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 0\n// module chunks = 0","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab';\n\nexport default class Tab extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: `${DEFAULT_CLASS}--disabled`,\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func, // private\n };\n\n componentDidMount() {\n this.checkFocus();\n }\n\n componentDidUpdate() {\n this.checkFocus();\n }\n\n checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n }\n\n render() {\n const {\n children,\n className,\n disabled,\n disabledClassName,\n focus, // unused\n id,\n panelId,\n selected,\n selectedClassName,\n tabRef,\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n if (tabRef) tabRef(node);\n }}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={panelId}\n tabIndex={selected ? '0' : null}\n >\n {children}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nexport default class TabPanel extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n style: {},\n };\n\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string, // private\n };\n\n render() {\n const {\n children,\n className,\n forceRender,\n id,\n selected,\n selectedClassName,\n tabId,\n ...attributes\n } = this.props;\n\n return (\n \n {forceRender || selected ? children : null}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabPanel.js","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}\n// module id = 3\n// module chunks = 0","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nexport default class TabList extends Component {\n static defaultProps = {\n className: 'react-tabs__tab-list',\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n };\n\n render() {\n const { children, className, ...attributes } = this.props;\n\n return (\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabList.js","module.exports = __WEBPACK_EXTERNAL_MODULE_5__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}\n// module id = 5\n// module chunks = 0","import { Children, cloneElement } from 'react';\nimport Tab from '../components/Tab';\nimport TabList from '../components/TabList';\nimport TabPanel from '../components/TabPanel';\n\nfunction isTabChild(child) {\n return child.type === Tab || child.type === TabList || child.type === TabPanel;\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, {\n ...child.props,\n children: deepMap(child.props.children, callback),\n });\n }\n\n return child;\n });\n}\n\nexport function deepForEach(children, callback) {\n return Children.forEach(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (child.type === Tab || child.type === TabPanel) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (child.type === TabList) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/childrenDeepMap.js","// Get a universally unique identifier\nlet count = 0;\nexport default function uuid() {\n return `react-tabs-${count++}`;\n}\n\nexport function reset() {\n count = 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/uuid.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport Tab from '../components/Tab';\nimport TabPanel from '../components/TabPanel';\n\nexport function getTabsCount(children) {\n let tabCount = 0;\n deepForEach(children, child => {\n if (child.type === Tab) tabCount++;\n });\n\n return tabCount;\n}\n\nexport function getPanelsCount(children) {\n let panelCount = 0;\n deepForEach(children, child => {\n if (child.type === TabPanel) panelCount++;\n });\n\n return panelCount;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/count.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport Tab from '../components/Tab';\nimport TabList from '../components/TabList';\nimport TabPanel from '../components/TabPanel';\n\nexport function childrenPropType(props, propName, componentName) {\n let error;\n let tabsCount = 0;\n let panelsCount = 0;\n let tabListFound = false;\n const listTabs = [];\n const children = props[propName];\n\n deepForEach(children, child => {\n if (child.type === TabList) {\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n deepForEach(child.props.children, listChild => listTabs.push(listChild));\n }\n\n if (tabListFound) {\n error = new Error(\n \"Found multiple 'TabList' components inside 'Tabs'. Only one is allowed.\",\n );\n }\n tabListFound = true;\n }\n if (child.type === Tab) {\n if (!tabListFound || listTabs.indexOf(child) === -1) {\n error = new Error(\n \"Found a 'Tab' component outside of the 'TabList' component. 'Tab' components have to be inside the 'TabList' component.\",\n );\n }\n tabsCount++;\n } else if (child.type === TabPanel) {\n panelsCount++;\n }\n });\n\n if (!error && tabsCount !== panelsCount) {\n error = new Error(\n `There should be an equal number of 'Tab' and 'TabPanel' in \\`${componentName}\\`.` +\n `Received ${tabsCount} 'Tab' and ${panelsCount} 'TabPanel'.`,\n );\n }\n\n return error;\n}\n\nexport function onSelectPropType(props, propName, componentName, location, propFullName) {\n const prop = props[propName];\n const name = propFullName || propName;\n let error = null;\n\n if (prop && typeof prop !== 'function') {\n error = new Error(\n `Invalid ${location} \\`${name}\\` of type \\`${typeof prop}\\` supplied to \\`${componentName}\\`, expected \\`function\\`.`,\n );\n } else if (props.selectedIndex != null && prop == null) {\n error = new Error(\n `The ${location} \\`${name}\\` is marked as required in \\`${componentName}\\`, but its value is \\`undefined\\` or \\`null\\`.\n\\`onSelect\\` is required when \\`selectedIndex\\` is also set. Not doing so will make the tabs not do anything, as \\`selectedIndex\\` indicates that you want to handle the selected tab yourself.\nIf you only want to set the inital tab replace \\`selectedIndex\\` with \\`defaultIndex\\`.`,\n );\n }\n\n return error;\n}\n\nexport function selectedIndexPropType(props, propName, componentName, location, propFullName) {\n const prop = props[propName];\n const name = propFullName || propName;\n let error = null;\n\n if (prop != null && typeof prop !== 'number') {\n error = new Error(\n `Invalid ${location} \\`${name}\\` of type \\`${typeof prop}\\` supplied to \\`${componentName}\\`, expected \\`number\\`.`,\n );\n } else if (props.defaultIndex != null && prop != null) {\n return new Error(\n `The ${location} \\`${name}\\` cannot be used together with \\`defaultIndex\\` in \\`${componentName}\\`.\nEither remove \\`${name}\\` to let \\`${componentName}\\` handle the selected tab internally or remove \\`defaultIndex\\` to handle it yourself.`,\n );\n }\n\n return error;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/propTypes.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\n\nexport default class Tabs extends Component {\n static defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = Tabs.copyPropsToState(this.props, {}, this.props.defaultFocus);\n }\n\n componentWillReceiveProps(newProps) {\n if (\n process.env.NODE_ENV !== 'production' &&\n Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)\n ) {\n throw new Error(\n `Switching between controlled mode (by using \\`selectedIndex\\`) and uncontrolled mode is not supported in \\`Tabs\\`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.`,\n );\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(state => Tabs.copyPropsToState(newProps, state));\n }\n\n static inUncontrolledMode(props) {\n return props.selectedIndex === null;\n }\n\n handleSelected = (index, last, event) => {\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (this.props.onSelect(index, last, event) === false) return;\n }\n\n const state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown',\n };\n\n if (Tabs.inUncontrolledMode(this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n this.setState(state);\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n static copyPropsToState(props, state, focus = false) {\n const newState = {\n focus,\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n const maxTabIndex = getTabsCount(props.children) - 1;\n let selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n }\n\n render() {\n const { children, defaultIndex, defaultFocus, ...props } = this.props;\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return (\n \n {children}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tabs.js","import PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport { getPanelsCount, getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nconst canUseActiveElement = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.activeElement\n);\n\nexport default class UncontrolledTabs extends Component {\n static defaultProps = {\n className: 'react-tabs',\n focus: false,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n tabNodes = [];\n\n setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n }\n\n getNextTab(index) {\n const count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (let i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (let i = 0; i < index; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getPrevTab(index) {\n let i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getTabsCount() {\n return getTabsCount(this.props.children);\n }\n\n getPanelsCount() {\n return getPanelsCount(this.props.children);\n }\n\n getTab(index) {\n return this.tabNodes[`tabs-${index}`];\n }\n\n getChildren() {\n let index = 0;\n const {\n children,\n disabledTabClassName,\n focus,\n forceRenderTabPanel,\n selectedIndex,\n selectedTabClassName,\n selectedTabPanelClassName,\n } = this.props;\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n let diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n }\n\n // Map children to dynamically setup refs\n return deepMap(children, child => {\n let result = child;\n\n // Clone TabList and Tab components to have refs\n if (child.type === TabList) {\n let listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n let wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children\n .toArray(child.props.children)\n .filter(tab => tab.type === Tab)\n .some((tab, i) => document.activeElement === this.getTab(i));\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, tab => {\n const key = `tabs-${listIndex}`;\n const selected = selectedIndex === listIndex;\n\n const props = {\n tabRef: node => {\n this.tabNodes[key] = node;\n },\n id: this.tabIds[listIndex],\n panelId: this.panelIds[listIndex],\n selected,\n focus: selected && (focus || wasTabFocused),\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return cloneElement(tab, props);\n }),\n });\n } else if (child.type === TabPanel) {\n const props = {\n id: this.panelIds[index],\n tabId: this.tabIds[index],\n selected: selectedIndex === index,\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = cloneElement(child, props);\n }\n\n return result;\n });\n }\n\n handleKeyDown = e => {\n if (this.isTabFromContainer(e.target)) {\n let index = this.props.selectedIndex;\n let preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, e);\n }\n };\n\n handleClick = e => {\n let node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n const index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n let nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;\n else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n render() {\n // Delete all known props, so they don't get added to DOM\n const {\n children, // unused\n className,\n disabledTabClassName, // unused\n focus, // unused\n forceRenderTabPanel, // unused\n onSelect, // unused\n selectedIndex, // unused\n selectedTabClassName, // unused\n selectedTabPanelClassName, // unused\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n }}\n data-tabs\n >\n {this.getChildren()}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/UncontrolledTabs.js","import Tabs from './components/Tabs';\nimport TabList from './components/TabList';\nimport Tab from './components/Tab';\nimport TabPanel from './components/TabPanel';\nimport { reset as resetIdCounter } from './helpers/uuid';\n\nexport { Tab, TabList, TabPanel, Tabs, resetIdCounter };\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 923b19c634ad4d40a9b7","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}","webpack:///./src/helpers/elementTypes.js","webpack:///external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}","webpack:///./src/helpers/childrenDeepMap.js","webpack:///./src/helpers/uuid.js","webpack:///./src/helpers/count.js","webpack:///./src/helpers/propTypes.js","webpack:///./src/components/Tab.js","webpack:///./src/components/TabList.js","webpack:///./src/components/TabPanel.js","webpack:///./src/components/Tabs.js","webpack:///./src/components/UncontrolledTabs.js","webpack:///./src/index.js"],"names":["isTab","isTabPanel","isTabList","el","type","tabsRole","deepMap","deepForEach","isTabChild","child","children","callback","map","props","forEach","uuid","reset","count","getTabsCount","getPanelsCount","tabCount","panelCount","childrenPropType","onSelectPropType","selectedIndexPropType","propName","componentName","error","tabsCount","panelsCount","tabListFound","listTabs","push","listChild","Error","indexOf","location","propFullName","prop","name","selectedIndex","defaultIndex","DEFAULT_CLASS","Tab","componentDidMount","checkFocus","componentDidUpdate","selected","focus","node","render","className","disabled","disabledClassName","id","panelId","selectedClassName","tabRef","attributes","defaultProps","propTypes","oneOfType","array","object","string","bool","func","TabList","TabPanel","forceRender","tabId","style","Tabs","handleSelected","index","last","event","onSelect","state","inUncontrolledMode","setState","copyPropsToState","defaultFocus","componentWillReceiveProps","newProps","newState","maxTabIndex","Math","min","forceRenderTabPanel","number","disabledTabClassName","selectedTabClassName","selectedTabPanelClassName","isTabNode","nodeName","getAttribute","isTabDisabled","canUseActiveElement","window","document","activeElement","e","UncontrolledTabs","tabNodes","handleKeyDown","isTabFromContainer","target","preventDefault","keyCode","getPrevTab","getNextTab","setSelected","handleClick","slice","call","parentNode","filter","i","getTab","getChildren","tabIds","panelIds","diff","length","result","listIndex","wasTabFocused","Children","toArray","some","tab","key","nodeAncestor","parentElement","isRequired","resetIdCounter"],"mappings":"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","file":"react-tabs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"prop-types\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"prop-types\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"prop-types\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"PropTypes\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 923b19c634ad4d40a9b7","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}\n// module id = 1\n// module chunks = 0","export function isTab(el) {\n return el.type.tabsRole === 'Tab';\n}\n\nexport function isTabPanel(el) {\n return el.type.tabsRole === 'TabPanel';\n}\n\nexport function isTabList(el) {\n return el.type.tabsRole === 'TabList';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/elementTypes.js","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}\n// module id = 3\n// module chunks = 0","import { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from '../helpers/elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, {\n ...child.props,\n children: deepMap(child.props.children, callback),\n });\n }\n\n return child;\n });\n}\n\nexport function deepForEach(children, callback) {\n return Children.forEach(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/childrenDeepMap.js","// Get a universally unique identifier\nlet count = 0;\nexport default function uuid() {\n return `react-tabs-${count++}`;\n}\n\nexport function reset() {\n count = 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/uuid.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\n\nexport function getTabsCount(children) {\n let tabCount = 0;\n deepForEach(children, child => {\n if (isTab(child)) tabCount++;\n });\n\n return tabCount;\n}\n\nexport function getPanelsCount(children) {\n let panelCount = 0;\n deepForEach(children, child => {\n if (isTabPanel(child)) panelCount++;\n });\n\n return panelCount;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/count.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport { isTab, isTabList, isTabPanel } from '../helpers/elementTypes';\n\nexport function childrenPropType(props, propName, componentName) {\n let error;\n let tabsCount = 0;\n let panelsCount = 0;\n let tabListFound = false;\n const listTabs = [];\n const children = props[propName];\n\n deepForEach(children, child => {\n if (isTabList(child)) {\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n deepForEach(child.props.children, listChild => listTabs.push(listChild));\n }\n\n if (tabListFound) {\n error = new Error(\n \"Found multiple 'TabList' components inside 'Tabs'. Only one is allowed.\",\n );\n }\n tabListFound = true;\n }\n if (isTab(child)) {\n if (!tabListFound || listTabs.indexOf(child) === -1) {\n error = new Error(\n \"Found a 'Tab' component outside of the 'TabList' component. 'Tab' components have to be inside the 'TabList' component.\",\n );\n }\n tabsCount++;\n } else if (isTabPanel(child)) {\n panelsCount++;\n }\n });\n\n if (!error && tabsCount !== panelsCount) {\n error = new Error(\n `There should be an equal number of 'Tab' and 'TabPanel' in \\`${componentName}\\`.` +\n `Received ${tabsCount} 'Tab' and ${panelsCount} 'TabPanel'.`,\n );\n }\n\n return error;\n}\n\nexport function onSelectPropType(props, propName, componentName, location, propFullName) {\n const prop = props[propName];\n const name = propFullName || propName;\n let error = null;\n\n if (prop && typeof prop !== 'function') {\n error = new Error(\n `Invalid ${location} \\`${name}\\` of type \\`${typeof prop}\\` supplied to \\`${componentName}\\`, expected \\`function\\`.`,\n );\n } else if (props.selectedIndex != null && prop == null) {\n error = new Error(\n `The ${location} \\`${name}\\` is marked as required in \\`${componentName}\\`, but its value is \\`undefined\\` or \\`null\\`.\n\\`onSelect\\` is required when \\`selectedIndex\\` is also set. Not doing so will make the tabs not do anything, as \\`selectedIndex\\` indicates that you want to handle the selected tab yourself.\nIf you only want to set the inital tab replace \\`selectedIndex\\` with \\`defaultIndex\\`.`,\n );\n }\n\n return error;\n}\n\nexport function selectedIndexPropType(props, propName, componentName, location, propFullName) {\n const prop = props[propName];\n const name = propFullName || propName;\n let error = null;\n\n if (prop != null && typeof prop !== 'number') {\n error = new Error(\n `Invalid ${location} \\`${name}\\` of type \\`${typeof prop}\\` supplied to \\`${componentName}\\`, expected \\`number\\`.`,\n );\n } else if (props.defaultIndex != null && prop != null) {\n return new Error(\n `The ${location} \\`${name}\\` cannot be used together with \\`defaultIndex\\` in \\`${componentName}\\`.\nEither remove \\`${name}\\` to let \\`${componentName}\\` handle the selected tab internally or remove \\`defaultIndex\\` to handle it yourself.`,\n );\n }\n\n return error;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/propTypes.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab';\n\nexport default class Tab extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: `${DEFAULT_CLASS}--disabled`,\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func, // private\n };\n\n componentDidMount() {\n this.checkFocus();\n }\n\n componentDidUpdate() {\n this.checkFocus();\n }\n\n checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n }\n\n render() {\n const {\n children,\n className,\n disabled,\n disabledClassName,\n focus, // unused\n id,\n panelId,\n selected,\n selectedClassName,\n tabRef,\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n if (tabRef) tabRef(node);\n }}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={panelId}\n tabIndex={selected ? '0' : null}\n >\n {children}\n \n );\n }\n}\n\nTab.tabsRole = 'Tab';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nexport default class TabList extends Component {\n static defaultProps = {\n className: 'react-tabs__tab-list',\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n };\n\n render() {\n const { children, className, ...attributes } = this.props;\n\n return (\n
    \n {children}\n
\n );\n }\n}\n\nTabList.tabsRole = 'TabList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabList.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nexport default class TabPanel extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n style: {},\n };\n\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string, // private\n };\n\n render() {\n const {\n children,\n className,\n forceRender,\n id,\n selected,\n selectedClassName,\n tabId,\n ...attributes\n } = this.props;\n\n return (\n \n {forceRender || selected ? children : null}\n \n );\n }\n}\n\nTabPanel.tabsRole = 'TabPanel';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabPanel.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\n\nexport default class Tabs extends Component {\n static defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = Tabs.copyPropsToState(this.props, {}, this.props.defaultFocus);\n }\n\n componentWillReceiveProps(newProps) {\n if (\n process.env.NODE_ENV !== 'production' &&\n Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)\n ) {\n throw new Error(\n `Switching between controlled mode (by using \\`selectedIndex\\`) and uncontrolled mode is not supported in \\`Tabs\\`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.`,\n );\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(state => Tabs.copyPropsToState(newProps, state));\n }\n\n static inUncontrolledMode(props) {\n return props.selectedIndex === null;\n }\n\n handleSelected = (index, last, event) => {\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (this.props.onSelect(index, last, event) === false) return;\n }\n\n const state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown',\n };\n\n if (Tabs.inUncontrolledMode(this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n this.setState(state);\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n static copyPropsToState(props, state, focus = false) {\n const newState = {\n focus,\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n const maxTabIndex = getTabsCount(props.children) - 1;\n let selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n }\n\n render() {\n const { children, defaultIndex, defaultFocus, ...props } = this.props;\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return {children};\n }\n}\n\nTabs.tabsRole = 'Tabs';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tabs.js","import PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount, getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nlet canUseActiveElement;\ntry {\n canUseActiveElement = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.activeElement\n );\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\nexport default class UncontrolledTabs extends Component {\n static defaultProps = {\n className: 'react-tabs',\n focus: false,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n tabNodes = [];\n\n setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n }\n\n getNextTab(index) {\n const count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (let i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (let i = 0; i < index; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getPrevTab(index) {\n let i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getTabsCount() {\n return getTabsCount(this.props.children);\n }\n\n getPanelsCount() {\n return getPanelsCount(this.props.children);\n }\n\n getTab(index) {\n return this.tabNodes[`tabs-${index}`];\n }\n\n getChildren() {\n let index = 0;\n const {\n children,\n disabledTabClassName,\n focus,\n forceRenderTabPanel,\n selectedIndex,\n selectedTabClassName,\n selectedTabPanelClassName,\n } = this.props;\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n let diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n }\n\n // Map children to dynamically setup refs\n return deepMap(children, child => {\n let result = child;\n\n // Clone TabList and Tab components to have refs\n if (isTabList(child)) {\n let listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n let wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children\n .toArray(child.props.children)\n .filter(isTab)\n .some((tab, i) => document.activeElement === this.getTab(i));\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, tab => {\n const key = `tabs-${listIndex}`;\n const selected = selectedIndex === listIndex;\n\n const props = {\n tabRef: node => {\n this.tabNodes[key] = node;\n },\n id: this.tabIds[listIndex],\n panelId: this.panelIds[listIndex],\n selected,\n focus: selected && (focus || wasTabFocused),\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return cloneElement(tab, props);\n }),\n });\n } else if (isTabPanel(child)) {\n const props = {\n id: this.panelIds[index],\n tabId: this.tabIds[index],\n selected: selectedIndex === index,\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = cloneElement(child, props);\n }\n\n return result;\n });\n }\n\n handleKeyDown = e => {\n if (this.isTabFromContainer(e.target)) {\n let index = this.props.selectedIndex;\n let preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, e);\n }\n };\n\n handleClick = e => {\n let node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n const index = [].slice\n .call(node.parentNode.children)\n .filter(isTabNode)\n .indexOf(node);\n this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n let nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;\n else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n render() {\n // Delete all known props, so they don't get added to DOM\n const {\n children, // unused\n className,\n disabledTabClassName, // unused\n focus, // unused\n forceRenderTabPanel, // unused\n onSelect, // unused\n selectedIndex, // unused\n selectedTabClassName, // unused\n selectedTabPanelClassName, // unused\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n }}\n data-tabs\n >\n {this.getChildren()}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/UncontrolledTabs.js","import Tabs from './components/Tabs';\nimport TabList from './components/TabList';\nimport Tab from './components/Tab';\nimport TabPanel from './components/TabPanel';\nimport { reset as resetIdCounter } from './helpers/uuid';\n\nexport { Tab, TabList, TabPanel, Tabs, resetIdCounter };\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-tabs.min.js b/dist/react-tabs.min.js index 80bcb1d91..dce8e4f2a 100644 --- a/dist/react-tabs.min.js +++ b/dist/react-tabs.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("classnames")):"function"==typeof define&&define.amd?define(["react","classnames"],t):"object"==typeof exports?exports.ReactTabs=t(require("react"),require("classnames")):e.ReactTabs=t(e.React,e.classNames)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=10)}([function(t,n){t.exports=e},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var c=n(0),u=r(c),i=n(9),f=r(i),p=n(7),d=function(e){function t(n){a(this,t);var r=s(this,e.call(this,n));return r.handleSelected=function(e,n,o){if("function"!=typeof r.props.onSelect||!1!==r.props.onSelect(e,n,o)){var a={focus:"keydown"===o.type};t.inUncontrolledMode(r.props)&&(a.selectedIndex=e),r.setState(a)}},r.state=t.copyPropsToState(r.props,{},r.props.defaultFocus),r}return l(t,e),t.prototype.componentWillReceiveProps=function(e){this.setState(function(n){return t.copyPropsToState(e,n)})},t.inUncontrolledMode=function(e){return null===e.selectedIndex},t.copyPropsToState=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o={focus:r};if(t.inUncontrolledMode(e)){var a=(0,p.getTabsCount)(e.children)-1,s=null;s=null!=n.selectedIndex?Math.min(n.selectedIndex,a):e.defaultIndex||0,o.selectedIndex=s}return o},t.prototype.render=function(){var e=this.props,t=e.children,n=(e.defaultIndex,e.defaultFocus,o(e,["children","defaultIndex","defaultFocus"]));return n.focus=this.state.focus,n.onSelect=this.handleSelected,null!=this.state.selectedIndex&&(n.selectedIndex=this.state.selectedIndex),u.default.createElement(f.default,n,t)},t}(c.Component);d.defaultProps={defaultFocus:!1,forceRenderTabPanel:!1,selectedIndex:null,defaultIndex:null},t.default=d,d.propTypes={}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function c(e){return"LI"===e.nodeName&&"tab"===e.getAttribute("role")}function u(e){return"true"===e.getAttribute("aria-disabled")}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=this.getTabsCount()||this.props.onSelect(e,this.props.selectedIndex,t)},t.prototype.getNextTab=function(e){for(var t=this.getTabsCount(),n=e+1;ne;)if(!u(this.getTab(t)))return t;return e},t.prototype.getTabsCount=function(){return(0,w.getTabsCount)(this.props.children)},t.prototype.getPanelsCount=function(){return(0,w.getPanelsCount)(this.props.children)},t.prototype.getTab=function(e){return this.tabNodes["tabs-"+e]},t.prototype.getChildren=function(){var e=this,t=0,n=this.props,r=n.children,o=n.disabledTabClassName,a=n.focus,s=n.forceRenderTabPanel,l=n.selectedIndex,c=n.selectedTabClassName,u=n.selectedTabPanelClassName;this.tabIds=this.tabIds||[],this.panelIds=this.panelIds||[];for(var i=this.tabIds.length-this.getTabsCount();i++<0;)this.tabIds.push((0,y.default)()),this.panelIds.push((0,y.default)());return(0,g.deepMap)(r,function(n){var r=n;if(n.type===T.default){var i=0,d=!1;N&&(d=p.default.Children.toArray(n.props.children).filter(function(e){return e.type===v.default}).some(function(t,n){return document.activeElement===e.getTab(n)})),r=(0,f.cloneElement)(n,{children:(0,g.deepMap)(n.props.children,function(t){var n="tabs-"+i,r=l===i,s={tabRef:function(t){e.tabNodes[n]=t},id:e.tabIds[i],panelId:e.panelIds[i],selected:r,focus:r&&(a||d)};return c&&(s.selectedClassName=c),o&&(s.disabledClassName=o),i++,(0,f.cloneElement)(t,s)})})}else if(n.type===O.default){var b={id:e.panelIds[t],tabId:e.tabIds[t],selected:l===t};s&&(b.forceRender=s),u&&(b.selectedClassName=u),t++,r=(0,f.cloneElement)(n,b)}return r})},t.prototype.isTabFromContainer=function(e){if(!c(e))return!1;var t=e.parentElement;do{if(t===this.node)return!0;if(t.getAttribute("data-tabs"))break;t=t.parentElement}while(t);return!1},t.prototype.render=function(){var e=this,t=this.props,n=(t.children,t.className),r=(t.disabledTabClassName,t.focus,t.forceRenderTabPanel,t.onSelect,t.selectedIndex,t.selectedTabClassName,t.selectedTabPanelClassName,o(t,["children","className","disabledTabClassName","focus","forceRenderTabPanel","onSelect","selectedIndex","selectedTabClassName","selectedTabPanelClassName"]));return p.default.createElement("div",i({},r,{className:(0,b.default)(n),onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:function(t){e.node=t},"data-tabs":!0}),this.getChildren())},t}(f.Component);P.defaultProps={className:"react-tabs",focus:!1},t.default=P,P.propTypes={}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.resetIdCounter=t.Tabs=t.TabPanel=t.TabList=t.Tab=void 0;var o=n(8),a=r(o),s=n(4),l=r(s),c=n(1),u=r(c),i=n(2),f=r(i),p=n(5);t.Tab=u.default,t.TabList=l.default,t.TabPanel=f.default,t.Tabs=a.default,t.resetIdCounter=p.reset}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("classnames")):"function"==typeof define&&define.amd?define(["react","classnames"],t):"object"==typeof exports?exports.ReactTabs=t(require("react"),require("classnames")):e.ReactTabs=t(e.React,e.classNames)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=11)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";function r(e){return"Tab"===e.type.tabsRole}function o(e){return"TabPanel"===e.type.tabsRole}function a(e){return"TabList"===e.type.tabsRole}t.__esModule=!0,t.isTab=r,t.isTabPanel=o,t.isTabList=a},function(e,t,n){"use strict";function r(){return"react-tabs-"+a++}function o(){a=0}t.__esModule=!0,t.default=r,t.reset=o;var a=0},function(e,t,n){"use strict";function r(e){return(0,c.isTab)(e)||(0,c.isTabList)(e)||(0,c.isTabPanel)(e)}function o(e,t){return i.Children.map(e,function(e){return null===e?null:r(e)?t(e):e.props&&e.props.children&&"object"===l(e.props.children)?(0,i.cloneElement)(e,s({},e.props,{children:o(e.props.children,t)})):e})}function a(e,t){return i.Children.forEach(e,function(e){null!==e&&((0,c.isTab)(e)||(0,c.isTabPanel)(e)?t(e):e.props&&e.props.children&&"object"===l(e.props.children)&&((0,c.isTabList)(e)&&t(e),a(e.props.children,t)))})}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=n(0),c=r(i),u=n(10),f=r(u),p=n(5),d=function(e){function t(n){a(this,t);var r=s(this,e.call(this,n));return r.handleSelected=function(e,n,o){if("function"!=typeof r.props.onSelect||!1!==r.props.onSelect(e,n,o)){var a={focus:"keydown"===o.type};t.inUncontrolledMode(r.props)&&(a.selectedIndex=e),r.setState(a)}},r.state=t.copyPropsToState(r.props,{},r.props.defaultFocus),r}return l(t,e),t.prototype.componentWillReceiveProps=function(e){this.setState(function(n){return t.copyPropsToState(e,n)})},t.inUncontrolledMode=function(e){return null===e.selectedIndex},t.copyPropsToState=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o={focus:r};if(t.inUncontrolledMode(e)){var a=(0,p.getTabsCount)(e.children)-1,s=null;s=null!=n.selectedIndex?Math.min(n.selectedIndex,a):e.defaultIndex||0,o.selectedIndex=s}return o},t.prototype.render=function(){var e=this.props,t=e.children,n=(e.defaultIndex,e.defaultFocus,o(e,["children","defaultIndex","defaultFocus"]));return n.focus=this.state.focus,n.onSelect=this.handleSelected,null!=this.state.selectedIndex&&(n.selectedIndex=this.state.selectedIndex),c.default.createElement(f.default,n,t)},t}(i.Component);d.defaultProps={defaultFocus:!1,forceRenderTabPanel:!1,selectedIndex:null,defaultIndex:null},t.default=d,d.propTypes={},d.tabsRole="Tabs"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return"LI"===e.nodeName&&"tab"===e.getAttribute("role")}function c(e){return"true"===e.getAttribute("aria-disabled")}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t=this.getTabsCount()||this.props.onSelect(e,this.props.selectedIndex,t)},t.prototype.getNextTab=function(e){for(var t=this.getTabsCount(),n=e+1;ne;)if(!c(this.getTab(t)))return t;return e},t.prototype.getTabsCount=function(){return(0,m.getTabsCount)(this.props.children)},t.prototype.getPanelsCount=function(){return(0,m.getPanelsCount)(this.props.children)},t.prototype.getTab=function(e){return this.tabNodes["tabs-"+e]},t.prototype.getChildren=function(){var e=this,t=0,n=this.props,r=n.children,o=n.disabledTabClassName,a=n.focus,s=n.forceRenderTabPanel,l=n.selectedIndex,i=n.selectedTabClassName,c=n.selectedTabPanelClassName;this.tabIds=this.tabIds||[],this.panelIds=this.panelIds||[];for(var u=this.tabIds.length-this.getTabsCount();u++<0;)this.tabIds.push((0,y.default)()),this.panelIds.push((0,y.default)());return(0,T.deepMap)(r,function(n){var r=n;if((0,v.isTabList)(n)){var u=0,d=!1;_&&(d=p.default.Children.toArray(n.props.children).filter(v.isTab).some(function(t,n){return document.activeElement===e.getTab(n)})),r=(0,f.cloneElement)(n,{children:(0,T.deepMap)(n.props.children,function(t){var n="tabs-"+u,r=l===u,s={tabRef:function(t){e.tabNodes[n]=t},id:e.tabIds[u],panelId:e.panelIds[u],selected:r,focus:r&&(a||d)};return i&&(s.selectedClassName=i),o&&(s.disabledClassName=o),u++,(0,f.cloneElement)(t,s)})})}else if((0,v.isTabPanel)(n)){var b={id:e.panelIds[t],tabId:e.tabIds[t],selected:l===t};s&&(b.forceRender=s),c&&(b.selectedClassName=c),t++,r=(0,f.cloneElement)(n,b)}return r})},t.prototype.isTabFromContainer=function(e){if(!i(e))return!1;var t=e.parentElement;do{if(t===this.node)return!0;if(t.getAttribute("data-tabs"))break;t=t.parentElement}while(t);return!1},t.prototype.render=function(){var e=this,t=this.props,n=(t.children,t.className),r=(t.disabledTabClassName,t.focus,t.forceRenderTabPanel,t.onSelect,t.selectedIndex,t.selectedTabClassName,t.selectedTabPanelClassName,o(t,["children","className","disabledTabClassName","focus","forceRenderTabPanel","onSelect","selectedIndex","selectedTabClassName","selectedTabPanelClassName"]));return p.default.createElement("div",u({},r,{className:(0,b.default)(n),onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:function(t){e.node=t},"data-tabs":!0}),this.getChildren())},t}(f.Component);C.defaultProps={className:"react-tabs",focus:!1},t.default=C,C.propTypes={}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.resetIdCounter=t.Tabs=t.TabPanel=t.TabList=t.Tab=void 0;var o=n(9),a=r(o),s=n(7),l=r(s),i=n(6),c=r(i),u=n(8),f=r(u),p=n(3);t.Tab=c.default,t.TabList=l.default,t.TabPanel=f.default,t.Tabs=a.default,t.resetIdCounter=p.reset}])}); //# sourceMappingURL=react-tabs.min.js.map \ No newline at end of file diff --git a/dist/react-tabs.min.js.map b/dist/react-tabs.min.js.map index 0c617c6a3..f941214d4 100644 --- a/dist/react-tabs.min.js.map +++ b/dist/react-tabs.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///react-tabs.min.js","webpack:///webpack/bootstrap a4bb042223fea4173b24","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./src/components/Tab.js","webpack:///./src/components/TabPanel.js","webpack:///external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}","webpack:///./src/components/TabList.js","webpack:///./src/helpers/uuid.js","webpack:///./src/helpers/childrenDeepMap.js","webpack:///./src/helpers/count.js","webpack:///./src/components/Tabs.js","webpack:///./src/components/UncontrolledTabs.js","webpack:///./src/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_interopRequireDefault","obj","default","_objectWithoutProperties","keys","target","indexOf","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","writable","setPrototypeOf","__proto__","_extends","assign","arguments","length","source","key","_react","_react2","_classnames","_classnames2","Tab","_Component","apply","componentDidMount","checkFocus","componentDidUpdate","props","selected","focus","node","render","_cx","_this2","_props","children","className","disabled","disabledClassName","id","panelId","selectedClassName","tabRef","attributes","createElement","ref","role","aria-selected","aria-disabled","aria-controls","tabIndex","Component","defaultProps","DEFAULT_CLASS","propTypes","TabPanel","forceRender","tabId","aria-labelledby","style","TabList","uuid","count","reset","isTabChild","child","type","_Tab2","_TabList2","_TabPanel2","deepMap","callback","Children","map","_typeof","cloneElement","deepForEach","forEach","Symbol","iterator","_Tab","_TabList","_TabPanel","getTabsCount","tabCount","_childrenDeepMap","getPanelsCount","panelCount","_UncontrolledTabs","_UncontrolledTabs2","_count","Tabs","_this","handleSelected","index","last","event","onSelect","state","inUncontrolledMode","selectedIndex","setState","copyPropsToState","defaultFocus","componentWillReceiveProps","newProps","undefined","newState","maxTabIndex","Math","min","defaultIndex","forceRenderTabPanel","isTabNode","nodeName","getAttribute","isTabDisabled","_uuid","_uuid2","canUseActiveElement","window","document","activeElement","UncontrolledTabs","_temp","_ret","_len","args","Array","_key","concat","tabNodes","handleKeyDown","e","isTabFromContainer","preventDefault","keyCode","getPrevTab","getNextTab","setSelected","handleClick","slice","parentNode","filter","getTab","getChildren","disabledTabClassName","selectedTabClassName","selectedTabPanelClassName","tabIds","panelIds","diff","push","result","listIndex","wasTabFocused","toArray","tab","some","nodeAncestor","parentElement","_this3","_props2","onClick","onKeyDown","data-tabs","resetIdCounter","_Tabs","_Tabs2"],"mappings":"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","file":"react-tabs.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 10);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(3);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_CLASS = 'react-tabs__tab';\n\nvar Tab = function (_Component) {\n _inherits(Tab, _Component);\n\n function Tab() {\n _classCallCheck(this, Tab);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n Tab.prototype.componentDidMount = function componentDidMount() {\n this.checkFocus();\n };\n\n Tab.prototype.componentDidUpdate = function componentDidUpdate() {\n this.checkFocus();\n };\n\n Tab.prototype.checkFocus = function checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n };\n\n Tab.prototype.render = function render() {\n var _cx,\n _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disabled = _props.disabled,\n disabledClassName = _props.disabledClassName,\n focus = _props.focus,\n id = _props.id,\n panelId = _props.panelId,\n selected = _props.selected,\n selectedClassName = _props.selectedClassName,\n tabRef = _props.tabRef,\n attributes = _objectWithoutProperties(_props, ['children', 'className', 'disabled', 'disabledClassName', 'focus', 'id', 'panelId', 'selected', 'selectedClassName', 'tabRef']);\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n _this2.node = node;\n if (tabRef) tabRef(node);\n },\n role: 'tab',\n id: id,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-controls': panelId,\n tabIndex: selected ? '0' : null\n }),\n children\n );\n };\n\n return Tab;\n}(_react.Component);\n\nTab.defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + '--disabled',\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + '--selected'\n};\nexports.default = Tab;\nTab.propTypes = false ? {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func // private\n} : {};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(3);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nvar TabPanel = function (_Component) {\n _inherits(TabPanel, _Component);\n\n function TabPanel() {\n _classCallCheck(this, TabPanel);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n TabPanel.prototype.render = function render() {\n var _cx;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n forceRender = _props.forceRender,\n id = _props.id,\n selected = _props.selected,\n selectedClassName = _props.selectedClassName,\n tabId = _props.tabId,\n attributes = _objectWithoutProperties(_props, ['children', 'className', 'forceRender', 'id', 'selected', 'selectedClassName', 'tabId']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId\n }),\n forceRender || selected ? children : null\n );\n };\n\n return TabPanel;\n}(_react.Component);\n\nTabPanel.defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + '--selected',\n style: {}\n};\nexports.default = TabPanel;\nTabPanel.propTypes = false ? {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string // private\n} : {};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(3);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TabList = function (_Component) {\n _inherits(TabList, _Component);\n\n function TabList() {\n _classCallCheck(this, TabList);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n TabList.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n attributes = _objectWithoutProperties(_props, ['children', 'className']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, { className: (0, _classnames2.default)(className), role: 'tablist' }),\n children\n );\n };\n\n return TabList;\n}(_react.Component);\n\nTabList.defaultProps = {\n className: 'react-tabs__tab-list'\n};\nexports.default = TabList;\nTabList.propTypes = false ? {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object])\n} : {};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = uuid;\nexports.reset = reset;\n// Get a universally unique identifier\nvar count = 0;\nfunction uuid() {\n return \"react-tabs-\" + count++;\n}\n\nfunction reset() {\n count = 0;\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.deepMap = deepMap;\nexports.deepForEach = deepForEach;\n\nvar _react = __webpack_require__(0);\n\nvar _Tab = __webpack_require__(1);\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = __webpack_require__(4);\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _TabPanel = __webpack_require__(2);\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isTabChild(child) {\n return child.type === _Tab2.default || child.type === _TabList2.default || child.type === _TabPanel2.default;\n}\n\nfunction deepMap(children, callback) {\n return _react.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n // Clone the child that has children and map them too\n return (0, _react.cloneElement)(child, _extends({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\n\nfunction deepForEach(children, callback) {\n return _react.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (child.type === _Tab2.default || child.type === _TabPanel2.default) {\n callback(child);\n } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n if (child.type === _TabList2.default) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getTabsCount = getTabsCount;\nexports.getPanelsCount = getPanelsCount;\n\nvar _childrenDeepMap = __webpack_require__(6);\n\nvar _Tab = __webpack_require__(1);\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = __webpack_require__(2);\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getTabsCount(children) {\n var tabCount = 0;\n (0, _childrenDeepMap.deepForEach)(children, function (child) {\n if (child.type === _Tab2.default) tabCount++;\n });\n\n return tabCount;\n}\n\nfunction getPanelsCount(children) {\n var panelCount = 0;\n (0, _childrenDeepMap.deepForEach)(children, function (child) {\n if (child.type === _TabPanel2.default) panelCount++;\n });\n\n return panelCount;\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _UncontrolledTabs = __webpack_require__(9);\n\nvar _UncontrolledTabs2 = _interopRequireDefault(_UncontrolledTabs);\n\nvar _count = __webpack_require__(7);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Tabs = function (_Component) {\n _inherits(Tabs, _Component);\n\n function Tabs(props) {\n _classCallCheck(this, Tabs);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.handleSelected = function (index, last, event) {\n // Call change event handler\n if (typeof _this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (_this.props.onSelect(index, last, event) === false) return;\n }\n\n var state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown'\n };\n\n if (Tabs.inUncontrolledMode(_this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n _this.setState(state);\n };\n\n _this.state = Tabs.copyPropsToState(_this.props, {}, _this.props.defaultFocus);\n return _this;\n }\n\n Tabs.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) {\n if (false) {\n throw new Error('Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see the README.');\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(function (state) {\n return Tabs.copyPropsToState(newProps, state);\n });\n };\n\n Tabs.inUncontrolledMode = function inUncontrolledMode(props) {\n return props.selectedIndex === null;\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n Tabs.copyPropsToState = function copyPropsToState(props, state) {\n var focus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var newState = {\n focus: focus\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n var maxTabIndex = (0, _count.getTabsCount)(props.children) - 1;\n var selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n };\n\n Tabs.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n defaultIndex = _props.defaultIndex,\n defaultFocus = _props.defaultFocus,\n props = _objectWithoutProperties(_props, ['children', 'defaultIndex', 'defaultFocus']);\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return _react2.default.createElement(\n _UncontrolledTabs2.default,\n props,\n children\n );\n };\n\n return Tabs;\n}(_react.Component);\n\nTabs.defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null\n};\nexports.default = Tabs;\nTabs.propTypes = false ? {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string\n} : {};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(3);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _uuid = __webpack_require__(5);\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _Tab = __webpack_require__(1);\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = __webpack_require__(4);\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _TabPanel = __webpack_require__(2);\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nvar _count = __webpack_require__(7);\n\nvar _childrenDeepMap = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nvar canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement);\n\nvar UncontrolledTabs = function (_Component) {\n _inherits(UncontrolledTabs, _Component);\n\n function UncontrolledTabs() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, UncontrolledTabs);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.tabNodes = [], _this.handleKeyDown = function (e) {\n if (_this.isTabFromContainer(e.target)) {\n var index = _this.props.selectedIndex;\n var preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = _this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = _this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n _this.setSelected(index, e);\n }\n }, _this.handleClick = function (e) {\n var node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (_this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n _this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n UncontrolledTabs.prototype.setSelected = function setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n };\n\n UncontrolledTabs.prototype.getNextTab = function getNextTab(index) {\n var count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(this.getTab(_i))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n };\n\n UncontrolledTabs.prototype.getPrevTab = function getPrevTab(index) {\n var i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n };\n\n UncontrolledTabs.prototype.getTabsCount = function getTabsCount() {\n return (0, _count.getTabsCount)(this.props.children);\n };\n\n UncontrolledTabs.prototype.getPanelsCount = function getPanelsCount() {\n return (0, _count.getPanelsCount)(this.props.children);\n };\n\n UncontrolledTabs.prototype.getTab = function getTab(index) {\n return this.tabNodes['tabs-' + index];\n };\n\n UncontrolledTabs.prototype.getChildren = function getChildren() {\n var _this2 = this;\n\n var index = 0;\n var _props = this.props,\n children = _props.children,\n disabledTabClassName = _props.disabledTabClassName,\n focus = _props.focus,\n forceRenderTabPanel = _props.forceRenderTabPanel,\n selectedIndex = _props.selectedIndex,\n selectedTabClassName = _props.selectedTabClassName,\n selectedTabPanelClassName = _props.selectedTabPanelClassName;\n\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push((0, _uuid2.default)());\n this.panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return (0, _childrenDeepMap.deepMap)(children, function (child) {\n var result = child;\n\n // Clone TabList and Tab components to have refs\n if (child.type === _TabList2.default) {\n var listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n var wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = _react2.default.Children.toArray(child.props.children).filter(function (tab) {\n return tab.type === _Tab2.default;\n }).some(function (tab, i) {\n return document.activeElement === _this2.getTab(i);\n });\n }\n\n result = (0, _react.cloneElement)(child, {\n children: (0, _childrenDeepMap.deepMap)(child.props.children, function (tab) {\n var key = 'tabs-' + listIndex;\n var selected = selectedIndex === listIndex;\n\n var props = {\n tabRef: function tabRef(node) {\n _this2.tabNodes[key] = node;\n },\n id: _this2.tabIds[listIndex],\n panelId: _this2.panelIds[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return (0, _react.cloneElement)(tab, props);\n })\n });\n } else if (child.type === _TabPanel2.default) {\n var props = {\n id: _this2.panelIds[index],\n tabId: _this2.tabIds[index],\n selected: selectedIndex === index\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = (0, _react.cloneElement)(child, props);\n }\n\n return result;\n });\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n UncontrolledTabs.prototype.isTabFromContainer = function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n var nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n };\n\n UncontrolledTabs.prototype.render = function render() {\n var _this3 = this;\n\n // Delete all known props, so they don't get added to DOM\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n disabledTabClassName = _props2.disabledTabClassName,\n focus = _props2.focus,\n forceRenderTabPanel = _props2.forceRenderTabPanel,\n onSelect = _props2.onSelect,\n selectedIndex = _props2.selectedIndex,\n selectedTabClassName = _props2.selectedTabClassName,\n selectedTabPanelClassName = _props2.selectedTabPanelClassName,\n attributes = _objectWithoutProperties(_props2, ['children', 'className', 'disabledTabClassName', 'focus', 'forceRenderTabPanel', 'onSelect', 'selectedIndex', 'selectedTabClassName', 'selectedTabPanelClassName']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n ref: function ref(node) {\n _this3.node = node;\n },\n 'data-tabs': true\n }),\n this.getChildren()\n );\n };\n\n return UncontrolledTabs;\n}(_react.Component);\n\nUncontrolledTabs.defaultProps = {\n className: 'react-tabs',\n focus: false\n};\nexports.default = UncontrolledTabs;\nUncontrolledTabs.propTypes = false ? {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string\n} : {};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.resetIdCounter = exports.Tabs = exports.TabPanel = exports.TabList = exports.Tab = undefined;\n\nvar _Tabs = __webpack_require__(8);\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = __webpack_require__(4);\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = __webpack_require__(1);\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = __webpack_require__(2);\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nvar _uuid = __webpack_require__(5);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tab = _Tab2.default;\nexports.TabList = _TabList2.default;\nexports.TabPanel = _TabPanel2.default;\nexports.Tabs = _Tabs2.default;\nexports.resetIdCounter = _uuid.reset;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// react-tabs.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a4bb042223fea4173b24","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 0\n// module chunks = 0","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab';\n\nexport default class Tab extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: `${DEFAULT_CLASS}--disabled`,\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func, // private\n };\n\n componentDidMount() {\n this.checkFocus();\n }\n\n componentDidUpdate() {\n this.checkFocus();\n }\n\n checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n }\n\n render() {\n const {\n children,\n className,\n disabled,\n disabledClassName,\n focus, // unused\n id,\n panelId,\n selected,\n selectedClassName,\n tabRef,\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n if (tabRef) tabRef(node);\n }}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={panelId}\n tabIndex={selected ? '0' : null}\n >\n {children}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nexport default class TabPanel extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n style: {},\n };\n\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string, // private\n };\n\n render() {\n const {\n children,\n className,\n forceRender,\n id,\n selected,\n selectedClassName,\n tabId,\n ...attributes\n } = this.props;\n\n return (\n \n {forceRender || selected ? children : null}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabPanel.js","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}\n// module id = 3\n// module chunks = 0","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nexport default class TabList extends Component {\n static defaultProps = {\n className: 'react-tabs__tab-list',\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n };\n\n render() {\n const { children, className, ...attributes } = this.props;\n\n return (\n
    \n {children}\n
\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabList.js","// Get a universally unique identifier\nlet count = 0;\nexport default function uuid() {\n return `react-tabs-${count++}`;\n}\n\nexport function reset() {\n count = 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/uuid.js","import { Children, cloneElement } from 'react';\nimport Tab from '../components/Tab';\nimport TabList from '../components/TabList';\nimport TabPanel from '../components/TabPanel';\n\nfunction isTabChild(child) {\n return child.type === Tab || child.type === TabList || child.type === TabPanel;\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, {\n ...child.props,\n children: deepMap(child.props.children, callback),\n });\n }\n\n return child;\n });\n}\n\nexport function deepForEach(children, callback) {\n return Children.forEach(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (child.type === Tab || child.type === TabPanel) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (child.type === TabList) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/childrenDeepMap.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport Tab from '../components/Tab';\nimport TabPanel from '../components/TabPanel';\n\nexport function getTabsCount(children) {\n let tabCount = 0;\n deepForEach(children, child => {\n if (child.type === Tab) tabCount++;\n });\n\n return tabCount;\n}\n\nexport function getPanelsCount(children) {\n let panelCount = 0;\n deepForEach(children, child => {\n if (child.type === TabPanel) panelCount++;\n });\n\n return panelCount;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/count.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\n\nexport default class Tabs extends Component {\n static defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = Tabs.copyPropsToState(this.props, {}, this.props.defaultFocus);\n }\n\n componentWillReceiveProps(newProps) {\n if (\n process.env.NODE_ENV !== 'production' &&\n Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)\n ) {\n throw new Error(\n `Switching between controlled mode (by using \\`selectedIndex\\`) and uncontrolled mode is not supported in \\`Tabs\\`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.`,\n );\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(state => Tabs.copyPropsToState(newProps, state));\n }\n\n static inUncontrolledMode(props) {\n return props.selectedIndex === null;\n }\n\n handleSelected = (index, last, event) => {\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (this.props.onSelect(index, last, event) === false) return;\n }\n\n const state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown',\n };\n\n if (Tabs.inUncontrolledMode(this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n this.setState(state);\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n static copyPropsToState(props, state, focus = false) {\n const newState = {\n focus,\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n const maxTabIndex = getTabsCount(props.children) - 1;\n let selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n }\n\n render() {\n const { children, defaultIndex, defaultFocus, ...props } = this.props;\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return (\n \n {children}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tabs.js","import PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport { getPanelsCount, getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nconst canUseActiveElement = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.activeElement\n);\n\nexport default class UncontrolledTabs extends Component {\n static defaultProps = {\n className: 'react-tabs',\n focus: false,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n tabNodes = [];\n\n setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n }\n\n getNextTab(index) {\n const count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (let i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (let i = 0; i < index; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getPrevTab(index) {\n let i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getTabsCount() {\n return getTabsCount(this.props.children);\n }\n\n getPanelsCount() {\n return getPanelsCount(this.props.children);\n }\n\n getTab(index) {\n return this.tabNodes[`tabs-${index}`];\n }\n\n getChildren() {\n let index = 0;\n const {\n children,\n disabledTabClassName,\n focus,\n forceRenderTabPanel,\n selectedIndex,\n selectedTabClassName,\n selectedTabPanelClassName,\n } = this.props;\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n let diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n }\n\n // Map children to dynamically setup refs\n return deepMap(children, child => {\n let result = child;\n\n // Clone TabList and Tab components to have refs\n if (child.type === TabList) {\n let listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n let wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children\n .toArray(child.props.children)\n .filter(tab => tab.type === Tab)\n .some((tab, i) => document.activeElement === this.getTab(i));\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, tab => {\n const key = `tabs-${listIndex}`;\n const selected = selectedIndex === listIndex;\n\n const props = {\n tabRef: node => {\n this.tabNodes[key] = node;\n },\n id: this.tabIds[listIndex],\n panelId: this.panelIds[listIndex],\n selected,\n focus: selected && (focus || wasTabFocused),\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return cloneElement(tab, props);\n }),\n });\n } else if (child.type === TabPanel) {\n const props = {\n id: this.panelIds[index],\n tabId: this.tabIds[index],\n selected: selectedIndex === index,\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = cloneElement(child, props);\n }\n\n return result;\n });\n }\n\n handleKeyDown = e => {\n if (this.isTabFromContainer(e.target)) {\n let index = this.props.selectedIndex;\n let preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, e);\n }\n };\n\n handleClick = e => {\n let node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n const index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n let nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;\n else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n render() {\n // Delete all known props, so they don't get added to DOM\n const {\n children, // unused\n className,\n disabledTabClassName, // unused\n focus, // unused\n forceRenderTabPanel, // unused\n onSelect, // unused\n selectedIndex, // unused\n selectedTabClassName, // unused\n selectedTabPanelClassName, // unused\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n }}\n data-tabs\n >\n {this.getChildren()}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/UncontrolledTabs.js","import Tabs from './components/Tabs';\nimport TabList from './components/TabList';\nimport Tab from './components/Tab';\nimport TabPanel from './components/TabPanel';\nimport { reset as resetIdCounter } from './helpers/uuid';\n\nexport { Tab, TabList, TabPanel, Tabs, resetIdCounter };\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///react-tabs.min.js","webpack:///webpack/bootstrap 0f111dceed75677099b9","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}","webpack:///./src/helpers/elementTypes.js","webpack:///./src/helpers/uuid.js","webpack:///./src/helpers/childrenDeepMap.js","webpack:///./src/helpers/count.js","webpack:///./src/components/Tab.js","webpack:///./src/components/TabList.js","webpack:///./src/components/TabPanel.js","webpack:///./src/components/Tabs.js","webpack:///./src/components/UncontrolledTabs.js","webpack:///./src/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_1__","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","isTab","el","type","tabsRole","isTabPanel","isTabList","uuid","count","reset","default","isTabChild","child","_elementTypes","deepMap","children","callback","_react","Children","map","props","_typeof","cloneElement","_extends","deepForEach","forEach","assign","target","arguments","length","source","key","Symbol","iterator","obj","constructor","getTabsCount","tabCount","_childrenDeepMap","getPanelsCount","panelCount","_interopRequireDefault","_objectWithoutProperties","keys","indexOf","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","_react2","_classnames","_classnames2","Tab","_Component","apply","componentDidMount","checkFocus","componentDidUpdate","selected","focus","node","render","_cx","_this2","_props","className","disabled","disabledClassName","id","panelId","selectedClassName","tabRef","attributes","createElement","ref","role","aria-selected","aria-disabled","aria-controls","tabIndex","Component","defaultProps","DEFAULT_CLASS","propTypes","TabList","TabPanel","forceRender","tabId","aria-labelledby","style","_UncontrolledTabs","_UncontrolledTabs2","_count","Tabs","_this","handleSelected","index","last","event","onSelect","state","inUncontrolledMode","selectedIndex","setState","copyPropsToState","defaultFocus","componentWillReceiveProps","newProps","undefined","newState","maxTabIndex","Math","min","defaultIndex","forceRenderTabPanel","isTabNode","nodeName","getAttribute","isTabDisabled","_uuid","_uuid2","canUseActiveElement","window","document","activeElement","e","UncontrolledTabs","_temp","_ret","_len","args","Array","_key","concat","tabNodes","handleKeyDown","isTabFromContainer","preventDefault","keyCode","getPrevTab","getNextTab","setSelected","handleClick","slice","parentNode","filter","getTab","getChildren","disabledTabClassName","selectedTabClassName","selectedTabPanelClassName","tabIds","panelIds","diff","push","result","listIndex","wasTabFocused","toArray","some","tab","nodeAncestor","parentElement","_this3","_props2","onClick","onKeyDown","data-tabs","resetIdCounter","_Tabs","_Tabs2","_TabList","_TabList2","_Tab","_Tab2","_TabPanel","_TabPanel2"],"mappings":"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","file":"react-tabs.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.isTab = isTab;\nexports.isTabPanel = isTabPanel;\nexports.isTabList = isTabList;\nfunction isTab(el) {\n return el.type.tabsRole === 'Tab';\n}\n\nfunction isTabPanel(el) {\n return el.type.tabsRole === 'TabPanel';\n}\n\nfunction isTabList(el) {\n return el.type.tabsRole === 'TabList';\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = uuid;\nexports.reset = reset;\n// Get a universally unique identifier\nvar count = 0;\nfunction uuid() {\n return \"react-tabs-\" + count++;\n}\n\nfunction reset() {\n count = 0;\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.deepMap = deepMap;\nexports.deepForEach = deepForEach;\n\nvar _react = __webpack_require__(0);\n\nvar _elementTypes = __webpack_require__(2);\n\nfunction isTabChild(child) {\n return (0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabList)(child) || (0, _elementTypes.isTabPanel)(child);\n}\n\nfunction deepMap(children, callback) {\n return _react.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n // Clone the child that has children and map them too\n return (0, _react.cloneElement)(child, _extends({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\n\nfunction deepForEach(children, callback) {\n return _react.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if ((0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabPanel)(child)) {\n callback(child);\n } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n if ((0, _elementTypes.isTabList)(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getTabsCount = getTabsCount;\nexports.getPanelsCount = getPanelsCount;\n\nvar _childrenDeepMap = __webpack_require__(4);\n\nvar _elementTypes = __webpack_require__(2);\n\nfunction getTabsCount(children) {\n var tabCount = 0;\n (0, _childrenDeepMap.deepForEach)(children, function (child) {\n if ((0, _elementTypes.isTab)(child)) tabCount++;\n });\n\n return tabCount;\n}\n\nfunction getPanelsCount(children) {\n var panelCount = 0;\n (0, _childrenDeepMap.deepForEach)(children, function (child) {\n if ((0, _elementTypes.isTabPanel)(child)) panelCount++;\n });\n\n return panelCount;\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_CLASS = 'react-tabs__tab';\n\nvar Tab = function (_Component) {\n _inherits(Tab, _Component);\n\n function Tab() {\n _classCallCheck(this, Tab);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n Tab.prototype.componentDidMount = function componentDidMount() {\n this.checkFocus();\n };\n\n Tab.prototype.componentDidUpdate = function componentDidUpdate() {\n this.checkFocus();\n };\n\n Tab.prototype.checkFocus = function checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n };\n\n Tab.prototype.render = function render() {\n var _cx,\n _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disabled = _props.disabled,\n disabledClassName = _props.disabledClassName,\n focus = _props.focus,\n id = _props.id,\n panelId = _props.panelId,\n selected = _props.selected,\n selectedClassName = _props.selectedClassName,\n tabRef = _props.tabRef,\n attributes = _objectWithoutProperties(_props, ['children', 'className', 'disabled', 'disabledClassName', 'focus', 'id', 'panelId', 'selected', 'selectedClassName', 'tabRef']);\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n _this2.node = node;\n if (tabRef) tabRef(node);\n },\n role: 'tab',\n id: id,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-controls': panelId,\n tabIndex: selected ? '0' : null\n }),\n children\n );\n };\n\n return Tab;\n}(_react.Component);\n\nTab.defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + '--disabled',\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + '--selected'\n};\nexports.default = Tab;\nTab.propTypes = false ? {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func // private\n} : {};\n\n\nTab.tabsRole = 'Tab';\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TabList = function (_Component) {\n _inherits(TabList, _Component);\n\n function TabList() {\n _classCallCheck(this, TabList);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n TabList.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n attributes = _objectWithoutProperties(_props, ['children', 'className']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, { className: (0, _classnames2.default)(className), role: 'tablist' }),\n children\n );\n };\n\n return TabList;\n}(_react.Component);\n\nTabList.defaultProps = {\n className: 'react-tabs__tab-list'\n};\nexports.default = TabList;\nTabList.propTypes = false ? {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object])\n} : {};\n\n\nTabList.tabsRole = 'TabList';\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nvar TabPanel = function (_Component) {\n _inherits(TabPanel, _Component);\n\n function TabPanel() {\n _classCallCheck(this, TabPanel);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n TabPanel.prototype.render = function render() {\n var _cx;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n forceRender = _props.forceRender,\n id = _props.id,\n selected = _props.selected,\n selectedClassName = _props.selectedClassName,\n tabId = _props.tabId,\n attributes = _objectWithoutProperties(_props, ['children', 'className', 'forceRender', 'id', 'selected', 'selectedClassName', 'tabId']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId\n }),\n forceRender || selected ? children : null\n );\n };\n\n return TabPanel;\n}(_react.Component);\n\nTabPanel.defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + '--selected',\n style: {}\n};\nexports.default = TabPanel;\nTabPanel.propTypes = false ? {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string // private\n} : {};\n\n\nTabPanel.tabsRole = 'TabPanel';\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _UncontrolledTabs = __webpack_require__(10);\n\nvar _UncontrolledTabs2 = _interopRequireDefault(_UncontrolledTabs);\n\nvar _count = __webpack_require__(5);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Tabs = function (_Component) {\n _inherits(Tabs, _Component);\n\n function Tabs(props) {\n _classCallCheck(this, Tabs);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.handleSelected = function (index, last, event) {\n // Call change event handler\n if (typeof _this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (_this.props.onSelect(index, last, event) === false) return;\n }\n\n var state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown'\n };\n\n if (Tabs.inUncontrolledMode(_this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n _this.setState(state);\n };\n\n _this.state = Tabs.copyPropsToState(_this.props, {}, _this.props.defaultFocus);\n return _this;\n }\n\n Tabs.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) {\n if (false) {\n throw new Error('Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see the README.');\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(function (state) {\n return Tabs.copyPropsToState(newProps, state);\n });\n };\n\n Tabs.inUncontrolledMode = function inUncontrolledMode(props) {\n return props.selectedIndex === null;\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n Tabs.copyPropsToState = function copyPropsToState(props, state) {\n var focus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var newState = {\n focus: focus\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n var maxTabIndex = (0, _count.getTabsCount)(props.children) - 1;\n var selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n };\n\n Tabs.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n defaultIndex = _props.defaultIndex,\n defaultFocus = _props.defaultFocus,\n props = _objectWithoutProperties(_props, ['children', 'defaultIndex', 'defaultFocus']);\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return _react2.default.createElement(\n _UncontrolledTabs2.default,\n props,\n children\n );\n };\n\n return Tabs;\n}(_react.Component);\n\nTabs.defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null\n};\nexports.default = Tabs;\nTabs.propTypes = false ? {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string\n} : {};\n\n\nTabs.tabsRole = 'Tabs';\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _uuid = __webpack_require__(3);\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _count = __webpack_require__(5);\n\nvar _childrenDeepMap = __webpack_require__(4);\n\nvar _elementTypes = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nvar canUseActiveElement = void 0;\ntry {\n canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement);\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\n\nvar UncontrolledTabs = function (_Component) {\n _inherits(UncontrolledTabs, _Component);\n\n function UncontrolledTabs() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, UncontrolledTabs);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.tabNodes = [], _this.handleKeyDown = function (e) {\n if (_this.isTabFromContainer(e.target)) {\n var index = _this.props.selectedIndex;\n var preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = _this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = _this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n _this.setSelected(index, e);\n }\n }, _this.handleClick = function (e) {\n var node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (_this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n _this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n UncontrolledTabs.prototype.setSelected = function setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n };\n\n UncontrolledTabs.prototype.getNextTab = function getNextTab(index) {\n var count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(this.getTab(_i))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n };\n\n UncontrolledTabs.prototype.getPrevTab = function getPrevTab(index) {\n var i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n };\n\n UncontrolledTabs.prototype.getTabsCount = function getTabsCount() {\n return (0, _count.getTabsCount)(this.props.children);\n };\n\n UncontrolledTabs.prototype.getPanelsCount = function getPanelsCount() {\n return (0, _count.getPanelsCount)(this.props.children);\n };\n\n UncontrolledTabs.prototype.getTab = function getTab(index) {\n return this.tabNodes['tabs-' + index];\n };\n\n UncontrolledTabs.prototype.getChildren = function getChildren() {\n var _this2 = this;\n\n var index = 0;\n var _props = this.props,\n children = _props.children,\n disabledTabClassName = _props.disabledTabClassName,\n focus = _props.focus,\n forceRenderTabPanel = _props.forceRenderTabPanel,\n selectedIndex = _props.selectedIndex,\n selectedTabClassName = _props.selectedTabClassName,\n selectedTabPanelClassName = _props.selectedTabPanelClassName;\n\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push((0, _uuid2.default)());\n this.panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return (0, _childrenDeepMap.deepMap)(children, function (child) {\n var result = child;\n\n // Clone TabList and Tab components to have refs\n if ((0, _elementTypes.isTabList)(child)) {\n var listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n var wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = _react2.default.Children.toArray(child.props.children).filter(_elementTypes.isTab).some(function (tab, i) {\n return document.activeElement === _this2.getTab(i);\n });\n }\n\n result = (0, _react.cloneElement)(child, {\n children: (0, _childrenDeepMap.deepMap)(child.props.children, function (tab) {\n var key = 'tabs-' + listIndex;\n var selected = selectedIndex === listIndex;\n\n var props = {\n tabRef: function tabRef(node) {\n _this2.tabNodes[key] = node;\n },\n id: _this2.tabIds[listIndex],\n panelId: _this2.panelIds[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return (0, _react.cloneElement)(tab, props);\n })\n });\n } else if ((0, _elementTypes.isTabPanel)(child)) {\n var props = {\n id: _this2.panelIds[index],\n tabId: _this2.tabIds[index],\n selected: selectedIndex === index\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = (0, _react.cloneElement)(child, props);\n }\n\n return result;\n });\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n UncontrolledTabs.prototype.isTabFromContainer = function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n var nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n };\n\n UncontrolledTabs.prototype.render = function render() {\n var _this3 = this;\n\n // Delete all known props, so they don't get added to DOM\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n disabledTabClassName = _props2.disabledTabClassName,\n focus = _props2.focus,\n forceRenderTabPanel = _props2.forceRenderTabPanel,\n onSelect = _props2.onSelect,\n selectedIndex = _props2.selectedIndex,\n selectedTabClassName = _props2.selectedTabClassName,\n selectedTabPanelClassName = _props2.selectedTabPanelClassName,\n attributes = _objectWithoutProperties(_props2, ['children', 'className', 'disabledTabClassName', 'focus', 'forceRenderTabPanel', 'onSelect', 'selectedIndex', 'selectedTabClassName', 'selectedTabPanelClassName']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n ref: function ref(node) {\n _this3.node = node;\n },\n 'data-tabs': true\n }),\n this.getChildren()\n );\n };\n\n return UncontrolledTabs;\n}(_react.Component);\n\nUncontrolledTabs.defaultProps = {\n className: 'react-tabs',\n focus: false\n};\nexports.default = UncontrolledTabs;\nUncontrolledTabs.propTypes = false ? {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string\n} : {};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.resetIdCounter = exports.Tabs = exports.TabPanel = exports.TabList = exports.Tab = undefined;\n\nvar _Tabs = __webpack_require__(9);\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = __webpack_require__(7);\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = __webpack_require__(6);\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = __webpack_require__(8);\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nvar _uuid = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tab = _Tab2.default;\nexports.TabList = _TabList2.default;\nexports.TabPanel = _TabPanel2.default;\nexports.Tabs = _Tabs2.default;\nexports.resetIdCounter = _uuid.reset;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// react-tabs.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0f111dceed75677099b9","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}\n// module id = 1\n// module chunks = 0","export function isTab(el) {\n return el.type.tabsRole === 'Tab';\n}\n\nexport function isTabPanel(el) {\n return el.type.tabsRole === 'TabPanel';\n}\n\nexport function isTabList(el) {\n return el.type.tabsRole === 'TabList';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/elementTypes.js","// Get a universally unique identifier\nlet count = 0;\nexport default function uuid() {\n return `react-tabs-${count++}`;\n}\n\nexport function reset() {\n count = 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/uuid.js","import { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from '../helpers/elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, {\n ...child.props,\n children: deepMap(child.props.children, callback),\n });\n }\n\n return child;\n });\n}\n\nexport function deepForEach(children, callback) {\n return Children.forEach(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/childrenDeepMap.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\n\nexport function getTabsCount(children) {\n let tabCount = 0;\n deepForEach(children, child => {\n if (isTab(child)) tabCount++;\n });\n\n return tabCount;\n}\n\nexport function getPanelsCount(children) {\n let panelCount = 0;\n deepForEach(children, child => {\n if (isTabPanel(child)) panelCount++;\n });\n\n return panelCount;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/count.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab';\n\nexport default class Tab extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: `${DEFAULT_CLASS}--disabled`,\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func, // private\n };\n\n componentDidMount() {\n this.checkFocus();\n }\n\n componentDidUpdate() {\n this.checkFocus();\n }\n\n checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n }\n\n render() {\n const {\n children,\n className,\n disabled,\n disabledClassName,\n focus, // unused\n id,\n panelId,\n selected,\n selectedClassName,\n tabRef,\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n if (tabRef) tabRef(node);\n }}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={panelId}\n tabIndex={selected ? '0' : null}\n >\n {children}\n \n );\n }\n}\n\nTab.tabsRole = 'Tab';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nexport default class TabList extends Component {\n static defaultProps = {\n className: 'react-tabs__tab-list',\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n };\n\n render() {\n const { children, className, ...attributes } = this.props;\n\n return (\n
    \n {children}\n
\n );\n }\n}\n\nTabList.tabsRole = 'TabList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabList.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nexport default class TabPanel extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n style: {},\n };\n\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string, // private\n };\n\n render() {\n const {\n children,\n className,\n forceRender,\n id,\n selected,\n selectedClassName,\n tabId,\n ...attributes\n } = this.props;\n\n return (\n \n {forceRender || selected ? children : null}\n \n );\n }\n}\n\nTabPanel.tabsRole = 'TabPanel';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabPanel.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\n\nexport default class Tabs extends Component {\n static defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = Tabs.copyPropsToState(this.props, {}, this.props.defaultFocus);\n }\n\n componentWillReceiveProps(newProps) {\n if (\n process.env.NODE_ENV !== 'production' &&\n Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)\n ) {\n throw new Error(\n `Switching between controlled mode (by using \\`selectedIndex\\`) and uncontrolled mode is not supported in \\`Tabs\\`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.`,\n );\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(state => Tabs.copyPropsToState(newProps, state));\n }\n\n static inUncontrolledMode(props) {\n return props.selectedIndex === null;\n }\n\n handleSelected = (index, last, event) => {\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (this.props.onSelect(index, last, event) === false) return;\n }\n\n const state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown',\n };\n\n if (Tabs.inUncontrolledMode(this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n this.setState(state);\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n static copyPropsToState(props, state, focus = false) {\n const newState = {\n focus,\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n const maxTabIndex = getTabsCount(props.children) - 1;\n let selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n }\n\n render() {\n const { children, defaultIndex, defaultFocus, ...props } = this.props;\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return {children};\n }\n}\n\nTabs.tabsRole = 'Tabs';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tabs.js","import PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount, getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nlet canUseActiveElement;\ntry {\n canUseActiveElement = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.activeElement\n );\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\nexport default class UncontrolledTabs extends Component {\n static defaultProps = {\n className: 'react-tabs',\n focus: false,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n tabNodes = [];\n\n setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n }\n\n getNextTab(index) {\n const count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (let i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (let i = 0; i < index; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getPrevTab(index) {\n let i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getTabsCount() {\n return getTabsCount(this.props.children);\n }\n\n getPanelsCount() {\n return getPanelsCount(this.props.children);\n }\n\n getTab(index) {\n return this.tabNodes[`tabs-${index}`];\n }\n\n getChildren() {\n let index = 0;\n const {\n children,\n disabledTabClassName,\n focus,\n forceRenderTabPanel,\n selectedIndex,\n selectedTabClassName,\n selectedTabPanelClassName,\n } = this.props;\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n let diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n }\n\n // Map children to dynamically setup refs\n return deepMap(children, child => {\n let result = child;\n\n // Clone TabList and Tab components to have refs\n if (isTabList(child)) {\n let listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n let wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children\n .toArray(child.props.children)\n .filter(isTab)\n .some((tab, i) => document.activeElement === this.getTab(i));\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, tab => {\n const key = `tabs-${listIndex}`;\n const selected = selectedIndex === listIndex;\n\n const props = {\n tabRef: node => {\n this.tabNodes[key] = node;\n },\n id: this.tabIds[listIndex],\n panelId: this.panelIds[listIndex],\n selected,\n focus: selected && (focus || wasTabFocused),\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return cloneElement(tab, props);\n }),\n });\n } else if (isTabPanel(child)) {\n const props = {\n id: this.panelIds[index],\n tabId: this.tabIds[index],\n selected: selectedIndex === index,\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = cloneElement(child, props);\n }\n\n return result;\n });\n }\n\n handleKeyDown = e => {\n if (this.isTabFromContainer(e.target)) {\n let index = this.props.selectedIndex;\n let preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, e);\n }\n };\n\n handleClick = e => {\n let node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n const index = [].slice\n .call(node.parentNode.children)\n .filter(isTabNode)\n .indexOf(node);\n this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n let nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;\n else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n render() {\n // Delete all known props, so they don't get added to DOM\n const {\n children, // unused\n className,\n disabledTabClassName, // unused\n focus, // unused\n forceRenderTabPanel, // unused\n onSelect, // unused\n selectedIndex, // unused\n selectedTabClassName, // unused\n selectedTabPanelClassName, // unused\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n }}\n data-tabs\n >\n {this.getChildren()}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/UncontrolledTabs.js","import Tabs from './components/Tabs';\nimport TabList from './components/TabList';\nimport Tab from './components/Tab';\nimport TabPanel from './components/TabPanel';\nimport { reset as resetIdCounter } from './helpers/uuid';\n\nexport { Tab, TabList, TabPanel, Tabs, resetIdCounter };\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 7f95e2e2c..25796ddbf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-tabs", - "version": "1.1.0", + "version": "2.0.0", "description": "React tabs component", "main": "lib/index.js", "scripts": { @@ -30,9 +30,18 @@ "bugs": { "url": "https://github.com/reactjs/react-tabs/issues" }, - "files": ["dist", "lib", "style"], + "files": [ + "dist", + "lib", + "style" + ], "homepage": "https://github.com/reactjs/react-tabs", - "keywords": ["react", "tabs", "a11y", "react-component"], + "keywords": [ + "react", + "tabs", + "a11y", + "react-component" + ], "peerDependencies": { "react": "^0.14.9 || ^15.3.0" }, @@ -80,10 +89,15 @@ "prop-types": "^15.5.0" }, "jest": { - "roots": ["src"], + "roots": [ + "src" + ], "testRegex": "/__tests__/.+-test\\.js$" }, "lint-staged": { - "src/**/*.js": ["eslint --fix", "git add"] + "src/**/*.js": [ + "eslint --fix", + "git add" + ] } }