diff --git a/README.md b/README.md index 48f72cbab9..63ab0ef42f 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ -# react-tabs [![Build Status](https://travis-ci.org/reactjs/react-tabs.svg?branch=master)](https://travis-ci.org/reactjs/react-tabs) +# A fork of [react-tabs](https://github.com/reactjs/react-tabs) which supports server side rendering -React tabs component +The current version of react tabs cannot be used for server side rendering. Check the issue here - [#56](https://github.com/reactjs/react-tabs/issues/56) + +This is a hacky fix to get it working by passing a custom id generation function to the `` component, which does not use a stateful counter to assign ids to the children of `` + +It isn't the ideal solution, but till the original authors have a better idea, this seems like the only way to get it working. > Supports React ^0.14.0 or ^15.0.0 ## Installing ```bash -$ npm install react-tabs --save +$ npm install react-tabs-isomorphic --save ``` -## Demo - -https://reactcommunity.org/react-tabs/example/ - ## Example ```js @@ -21,6 +21,9 @@ import React, { Component } from 'react'; import { render } from 'react-dom'; import { Tab, Tabs, TabList, TabPanel } from 'react-tabs'; +let idCounter = 0; +const generateIds = () => `custom-id-${idCounter++}` + class App extends Component { handleSelect(index, last) { console.log('Selected tab: ' + index + ', Last tab: ' + last); @@ -46,6 +49,7 @@ class App extends Component { {/* @@ -100,14 +104,6 @@ class App extends Component { render(, document.getElementById('container')); ``` -## Styling - -You can disable the default styling by calling this method once: - -``` -Tabs.setUseDefaultStyles(false); -``` - ## License MIT diff --git a/dist/react-tabs.js b/dist/react-tabs.js index bd1340e2b7..e2464a2311 100644 --- a/dist/react-tabs.js +++ b/dist/react-tabs.js @@ -168,7 +168,8 @@ return /******/ (function(modules) { // webpackBootstrap onSelect: _react.PropTypes.func, focus: _react.PropTypes.bool, children: _childrenPropType2.default, - forceRenderTabPanel: _react.PropTypes.bool + forceRenderTabPanel: _react.PropTypes.bool, + generateIdsFn: _react.PropTypes.func }, childContextTypes: { @@ -300,14 +301,15 @@ return /******/ (function(modules) { // webpackBootstrap var state = this.state; var tabIds = this.tabIds = this.tabIds || []; var panelIds = this.panelIds = this.panelIds || []; + var generateIdsFn = this.props.generateIdsFn ? this.props.generateIdsFn : _uuid2.default; var diff = this.tabIds.length - this.getTabsCount(); // Add ids if new tabs have been added // Don't bother removing ids, just keep them in case they are added again // This is more efficient, and keeps the uuid counter under control while (diff++ < 0) { - tabIds.push((0, _uuid2.default)()); - panelIds.push((0, _uuid2.default)()); + tabIds.push(generateIdsFn()); + panelIds.push(generateIdsFn()); } // Map children to dynamically setup refs @@ -503,6 +505,7 @@ return /******/ (function(modules) { // webpackBootstrap delete attributes.forceRenderTabPanel; delete attributes.onClick; delete attributes.onKeyDown; + delete attributes.generateIdsFn; return _react2.default.createElement('div', _extends({}, attributes, { className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className), diff --git a/dist/react-tabs.js.map b/dist/react-tabs.js.map index 13a2104f21..485004845d 100644 --- a/dist/react-tabs.js.map +++ b/dist/react-tabs.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1dafbabec1dbcb42303d","webpack:///./lib/main.js","webpack:///./lib/components/Tabs.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./~/classnames/index.js","webpack:///./~/js-stylesheet/jss.js","webpack:///./lib/helpers/uuid.js","webpack:///./lib/helpers/childrenPropType.js","webpack:///./lib/components/Tab.js","webpack:///./lib/components/TabList.js","webpack:///./lib/helpers/styles.js","webpack:///./lib/components/TabPanel.js"],"names":["Object","defineProperty","exports","value","TabPanel","Tab","TabList","Tabs","undefined","_Tabs","require","_Tabs2","_interopRequireDefault","_TabList","_TabList2","_Tab","_Tab2","_TabPanel","_TabPanel2","obj","__esModule","default","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_react","_react2","_reactDom","_classnames","_classnames2","_jsStylesheet","_jsStylesheet2","_uuid","_uuid2","_childrenPropType","_childrenPropType2","_objectWithoutProperties","keys","indexOf","isTabNode","node","nodeName","getAttribute","isTabDisabled","useDefaultStyles","module","createClass","displayName","propTypes","className","PropTypes","string","selectedIndex","number","onSelect","func","focus","bool","children","forceRenderTabPanel","childContextTypes","statics","setUseDefaultStyles","use","getDefaultProps","getInitialState","copyPropsToState","props","state","getChildContext","componentDidMount","componentWillReceiveProps","newProps","_this","setState","setSelected","index","getTabsCount","last","cancel","getNextTab","count","tab","getTab","findDOMNode","_i","_tab","getPrevTab","_tab2","Children","getPanelsCount","slice","getTabList","refs","tablist","getPanel","getChildren","tabIds","panelIds","diff","push","map","child","result","cloneElement","ref","id","panelId","selected","type","tabId","handleKeyDown","e","isTabFromContainer","preventDefault","keyCode","handleClick","parentNode","nodeAncestor","parentElement","tabsNode","render","_this2","setTimeout","_props","attributes","onClick","onKeyDown","createElement","uuid","childrenPropTypes","propName","error","tabsCount","panelsCount","forEach","c","Error","_defineProperty","enumerable","configurable","writable","disabled","activeTabClassName","disabledTabClassName","oneOfType","array","object","checkFocus","componentDidUpdate","_cx","role","tabIndex","renderChildren","clonedProps","margin","padding","display","border","bottom","position","cursor","background","color","outline","content","height","left","right","style","contextTypes","context"],"mappings":"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","file":"/Users/danieltschinder/Documents/Github/react-tabs/dist/react-tabs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1dafbabec1dbcb42303d\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\nvar _Tabs = require('./components/Tabs');\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = require('./components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = require('./components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = require('./components/TabPanel');\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tabs = _Tabs2.default;\nexports.TabList = _TabList2.default;\nexports.Tab = _Tab2.default;\nexports.TabPanel = _TabPanel2.default;\n\n// For bc we also export a default object, remove in 1.0\n\nexports.default = {\n Tabs: _Tabs2.default,\n TabList: _TabList2.default,\n Tab: _Tab2.default,\n TabPanel: _TabPanel2.default\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/main.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _jsStylesheet = require('js-stylesheet');\n\nvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\nvar _uuid = require('../helpers/uuid');\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _childrenPropType = require('../helpers/childrenPropType');\n\nvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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\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 useDefaultStyles = true;\n\nmodule.exports = _react2.default.createClass({\n displayName: 'Tabs',\n\n propTypes: {\n className: _react.PropTypes.string,\n selectedIndex: _react.PropTypes.number,\n onSelect: _react.PropTypes.func,\n focus: _react.PropTypes.bool,\n children: _childrenPropType2.default,\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n childContextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n statics: {\n setUseDefaultStyles: function setUseDefaultStyles(use) {\n useDefaultStyles = use;\n }\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selectedIndex: -1,\n focus: false,\n forceRenderTabPanel: false\n };\n },\n getInitialState: function getInitialState() {\n return this.copyPropsToState(this.props, this.state);\n },\n getChildContext: function getChildContext() {\n return {\n forceRenderTabPanel: this.props.forceRenderTabPanel\n };\n },\n componentDidMount: function componentDidMount() {\n if (useDefaultStyles) {\n (0, _jsStylesheet2.default)(require('../helpers/styles.js')); // eslint-disable-line global-require\n }\n },\n componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n var _this = this;\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 _this.copyPropsToState(newProps, state);\n });\n },\n setSelected: function setSelected(index, focus) {\n // Don't do anything if nothing has changed\n if (index === this.state.selectedIndex) return;\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Keep reference to last index for event handler\n var last = this.state.selectedIndex;\n\n // Check if the change event handler cancels the tab change\n var cancel = false;\n\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n cancel = this.props.onSelect(index, last) === false;\n }\n\n if (!cancel) {\n // Update selected index\n this.setState({ selectedIndex: index, focus: focus === true });\n }\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab = this.getTab(_i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab2 = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getTabsCount: function getTabsCount() {\n return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n },\n getPanelsCount: function getPanelsCount() {\n return _react2.default.Children.count(this.props.children.slice(1));\n },\n getTabList: function getTabList() {\n return this.refs.tablist;\n },\n getTab: function getTab(index) {\n return this.refs['tabs-' + index];\n },\n getPanel: function getPanel(index) {\n return this.refs['panels-' + index];\n },\n getChildren: function getChildren() {\n var index = 0;\n var count = 0;\n var children = this.props.children;\n var state = this.state;\n var tabIds = this.tabIds = this.tabIds || [];\n var panelIds = 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 tabIds.push((0, _uuid2.default)());\n panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return _react2.default.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return null;\n }\n\n var result = null;\n\n // Clone TabList and Tab components to have refs\n if (count++ === 0) {\n // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n result = (0, _react.cloneElement)(child, {\n ref: 'tablist',\n children: _react2.default.Children.map(child.props.children, function (tab) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (tab === null) {\n return null;\n }\n\n var ref = 'tabs-' + index;\n var id = tabIds[index];\n var panelId = panelIds[index];\n var selected = state.selectedIndex === index;\n var focus = selected && state.focus;\n\n index++;\n\n if (tab.type === _Tab2.default) {\n return (0, _react.cloneElement)(tab, {\n ref: ref,\n id: id,\n panelId: panelId,\n selected: selected,\n focus: focus\n });\n }\n\n return tab;\n })\n });\n\n // Reset index for panels\n index = 0;\n }\n // Clone TabPanel components to have refs\n else {\n var ref = 'panels-' + index;\n var id = panelIds[index];\n var tabId = tabIds[index];\n var selected = state.selectedIndex === index;\n\n index++;\n\n result = (0, _react.cloneElement)(child, {\n ref: ref,\n id: id,\n tabId: tabId,\n selected: selected\n });\n }\n\n return result;\n });\n },\n handleKeyDown: function handleKeyDown(e) {\n if (this.isTabFromContainer(e.target)) {\n var index = this.state.selectedIndex;\n var preventDefault = false;\n\n // Select next tab to the left\n if (e.keyCode === 37 || e.keyCode === 38) {\n index = this.getPrevTab(index);\n preventDefault = true;\n }\n // Select next tab to the right\n /* eslint brace-style:0 */\n else if (e.keyCode === 39 || e.keyCode === 40) {\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, true);\n }\n },\n handleClick: function handleClick(e) {\n var node = e.target;\n do {\n // eslint-disable-line no-cond-assign\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).indexOf(node);\n this.setSelected(index);\n return;\n }\n } while ((node = node.parentNode) !== null);\n },\n\n\n // This is an anti-pattern, so sue me\n copyPropsToState: function copyPropsToState(props, state) {\n var selectedIndex = props.selectedIndex;\n\n // If no selectedIndex prop was supplied, then try\n // preserving the existing selectedIndex from state.\n // If the state has not selectedIndex, default\n // to the first tab in the TabList.\n //\n // TODO: Need automation testing around this\n // Manual testing can be done using examples/focus\n // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n if (selectedIndex === -1) {\n if (state && state.selectedIndex) {\n selectedIndex = state.selectedIndex;\n } else {\n selectedIndex = 0;\n }\n }\n\n return {\n selectedIndex: selectedIndex,\n focus: props.focus\n };\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 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 var tabsNode = (0, _reactDom.findDOMNode)(this);\n do {\n if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n },\n render: function render() {\n var _this2 = this;\n\n // This fixes an issue with focus management.\n //\n // Ultimately, when focus is true, and an input has focus,\n // and any change on that input causes a state change/re-render,\n // focus gets sent back to the active tab, and input loses focus.\n //\n // Since the focus state only needs to be remembered\n // for the current render, we can reset it once the\n // render has happened.\n //\n // Don't use setState, because we don't want to re-render.\n //\n // See https://github.com/rackt/react-tabs/pull/7\n if (this.state.focus) {\n setTimeout(function () {\n _this2.state.focus = false;\n }, 0);\n }\n\n var _props = this.props;\n var className = _props.className;\n\n var attributes = _objectWithoutProperties(_props, ['className']);\n\n // Delete all known props, so they don't get added to DOM\n\n\n delete attributes.selectedIndex;\n delete attributes.onSelect;\n delete attributes.focus;\n delete attributes.children;\n delete attributes.forceRenderTabPanel;\n delete attributes.onClick;\n delete attributes.onKeyDown;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n 'data-tabs': true\n }),\n this.getChildren()\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/Tabs.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","!(function() {\n function jss(blocks) {\n var css = [];\n for (var block in blocks)\n css.push(createStyleBlock(block, blocks[block]));\n injectCSS(css);\n }\n\n function createStyleBlock(selector, rules) {\n return selector + ' {\\n' + parseRules(rules) + '\\n}';\n }\n\n function parseRules(rules) {\n var css = [];\n for (var rule in rules)\n css.push(' '+rule+': '+rules[rule]+';');\n return css.join('\\n');\n }\n\n function injectCSS(css) {\n var style = document.getElementById('jss-styles');\n if (!style) {\n style = document.createElement('style');\n style.setAttribute('id', 'jss-styles');\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(style, head.firstChild);\n }\n var node = document.createTextNode(css.join('\\n\\n'));\n style.appendChild(node);\n }\n\n if (typeof exports === 'object')\n module.exports = jss;\n else\n window.jss = jss;\n\n})();\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/js-stylesheet/jss.js\n ** module id = 5\n ** module chunks = 0\n **/","\"use strict\";\n\n// Get a universally unique identifier\nvar count = 0;\nmodule.exports = function uuid() {\n return \"react-tabs-\" + count++;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/uuid.js\n **/","'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Tab = require('../components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = require('../components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function childrenPropTypes(props, propName) {\n var error = void 0;\n var tabsCount = 0;\n var panelsCount = 0;\n var children = props[propName];\n\n _react2.default.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return;\n }\n\n if (child.type === _TabList2.default) {\n _react2.default.Children.forEach(child.props.children, function (c) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (c === null) {\n return;\n }\n\n if (c.type === _Tab2.default) {\n tabsCount++;\n }\n });\n } else if (child.type.displayName === 'TabPanel') {\n panelsCount++;\n } else {\n error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n }\n });\n\n if (tabsCount !== panelsCount) {\n error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n }\n\n return error;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/childrenPropType.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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\nmodule.exports = _react2.default.createClass({\n displayName: 'Tab',\n\n propTypes: {\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n focus: _react.PropTypes.bool,\n selected: _react.PropTypes.bool,\n disabled: _react.PropTypes.bool,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n panelId: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n focus: false,\n selected: false,\n id: null,\n panelId: null,\n activeTabClassName: 'ReactTabs__Tab--selected',\n disabledTabClassName: 'ReactTabs__Tab--disabled'\n };\n },\n componentDidMount: function componentDidMount() {\n this.checkFocus();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.checkFocus();\n },\n checkFocus: function checkFocus() {\n if (this.props.selected && this.props.focus) {\n (0, _reactDom.findDOMNode)(this).focus();\n }\n },\n render: function render() {\n var _cx;\n\n var _props = this.props;\n var selected = _props.selected;\n var disabled = _props.disabled;\n var panelId = _props.panelId;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var className = _props.className;\n var children = _props.children;\n var id = _props.id;\n\n var attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\n delete attributes.focus;\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\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/** WEBPACK FOOTER **\n ** ./lib/components/Tab.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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 renderChildren(props) {\n return _react2.default.Children.map(props.children, function (child) {\n // if child is not a tab we don't need to clone it\n // since we don't need to add custom props\n\n if (child.type !== _Tab2.default) {\n return child;\n }\n\n var clonedProps = {\n activeTabClassName: props.activeTabClassName,\n disabledTabClassName: props.disabledTabClassName\n };\n\n return _react2.default.cloneElement(child, clonedProps);\n });\n}\n\nmodule.exports = _react2.default.createClass({\n displayName: 'TabList',\n\n propTypes: {\n className: _react.PropTypes.string,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.array])\n },\n\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var children = _props.children;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabList', className),\n role: 'tablist'\n }),\n renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children })\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabList.js\n **/","'use strict';\n\nmodule.exports = {\n '.react-tabs [role=tablist]': {\n 'border-bottom': '1px solid #aaa',\n margin: '0 0 10px',\n padding: '0'\n },\n\n '.react-tabs [role=tab]': {\n display: 'inline-block',\n border: '1px solid transparent',\n 'border-bottom': 'none',\n bottom: '-1px',\n position: 'relative',\n 'list-style': 'none',\n padding: '6px 12px',\n cursor: 'pointer'\n },\n\n '.react-tabs [role=tab][aria-selected=true]': {\n background: '#fff',\n 'border-color': '#aaa',\n color: 'black',\n 'border-radius': '5px 5px 0 0',\n '-moz-border-radius': '5px 5px 0 0',\n '-webkit-border-radius': '5px 5px 0 0'\n },\n\n '.react-tabs [role=tab][aria-disabled=true]': {\n color: 'GrayText',\n cursor: 'default'\n },\n\n '.react-tabs [role=tab]:focus': {\n 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n 'border-color': 'hsl(208, 99%, 50%)',\n outline: 'none'\n },\n\n '.react-tabs [role=tab]:focus:after': {\n content: '\"\"',\n position: 'absolute',\n height: '5px',\n left: '-4px',\n right: '-4px',\n bottom: '-5px',\n background: '#fff'\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/styles.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\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\nmodule.exports = _react2.default.createClass({\n displayName: 'TabPanel',\n\n propTypes: {\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string]),\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n selected: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n tabId: _react.PropTypes.string\n },\n\n contextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selected: false,\n id: null,\n tabId: null\n };\n },\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var children = _props.children;\n var selected = _props.selected;\n var id = _props.id;\n var tabId = _props.tabId;\n var style = _props.style;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n 'ReactTabs__TabPanel--selected': selected\n }),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId,\n style: _extends({}, style, { display: selected ? null : 'none' })\n }),\n this.context.forceRenderTabPanel || selected ? children : null\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabPanel.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 2958c71d393d67519eeb","webpack:///./lib/main.js","webpack:///./lib/components/Tabs.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./~/classnames/index.js","webpack:///./~/js-stylesheet/jss.js","webpack:///./lib/helpers/uuid.js","webpack:///./lib/helpers/childrenPropType.js","webpack:///./lib/components/Tab.js","webpack:///./lib/components/TabList.js","webpack:///./lib/helpers/styles.js","webpack:///./lib/components/TabPanel.js"],"names":[],"mappings":"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","file":"/Users/neeharvenugopal/Development/javascript/react-tabs/dist/react-tabs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 2958c71d393d67519eeb\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\nvar _Tabs = require('./components/Tabs');\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = require('./components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = require('./components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = require('./components/TabPanel');\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tabs = _Tabs2.default;\nexports.TabList = _TabList2.default;\nexports.Tab = _Tab2.default;\nexports.TabPanel = _TabPanel2.default;\n\n// For bc we also export a default object, remove in 1.0\n\nexports.default = {\n Tabs: _Tabs2.default,\n TabList: _TabList2.default,\n Tab: _Tab2.default,\n TabPanel: _TabPanel2.default\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/main.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _jsStylesheet = require('js-stylesheet');\n\nvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\nvar _uuid = require('../helpers/uuid');\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _childrenPropType = require('../helpers/childrenPropType');\n\nvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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\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 useDefaultStyles = true;\n\nmodule.exports = _react2.default.createClass({\n displayName: 'Tabs',\n\n propTypes: {\n className: _react.PropTypes.string,\n selectedIndex: _react.PropTypes.number,\n onSelect: _react.PropTypes.func,\n focus: _react.PropTypes.bool,\n children: _childrenPropType2.default,\n forceRenderTabPanel: _react.PropTypes.bool,\n generateIdsFn: _react.PropTypes.func\n },\n\n childContextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n statics: {\n setUseDefaultStyles: function setUseDefaultStyles(use) {\n useDefaultStyles = use;\n }\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selectedIndex: -1,\n focus: false,\n forceRenderTabPanel: false\n };\n },\n getInitialState: function getInitialState() {\n return this.copyPropsToState(this.props, this.state);\n },\n getChildContext: function getChildContext() {\n return {\n forceRenderTabPanel: this.props.forceRenderTabPanel\n };\n },\n componentDidMount: function componentDidMount() {\n if (useDefaultStyles) {\n (0, _jsStylesheet2.default)(require('../helpers/styles.js')); // eslint-disable-line global-require\n }\n },\n componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n var _this = this;\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 _this.copyPropsToState(newProps, state);\n });\n },\n setSelected: function setSelected(index, focus) {\n // Don't do anything if nothing has changed\n if (index === this.state.selectedIndex) return;\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Keep reference to last index for event handler\n var last = this.state.selectedIndex;\n\n // Check if the change event handler cancels the tab change\n var cancel = false;\n\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n cancel = this.props.onSelect(index, last) === false;\n }\n\n if (!cancel) {\n // Update selected index\n this.setState({ selectedIndex: index, focus: focus === true });\n }\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab = this.getTab(_i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab2 = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getTabsCount: function getTabsCount() {\n return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n },\n getPanelsCount: function getPanelsCount() {\n return _react2.default.Children.count(this.props.children.slice(1));\n },\n getTabList: function getTabList() {\n return this.refs.tablist;\n },\n getTab: function getTab(index) {\n return this.refs['tabs-' + index];\n },\n getPanel: function getPanel(index) {\n return this.refs['panels-' + index];\n },\n getChildren: function getChildren() {\n var index = 0;\n var count = 0;\n var children = this.props.children;\n var state = this.state;\n var tabIds = this.tabIds = this.tabIds || [];\n var panelIds = this.panelIds = this.panelIds || [];\n var generateIdsFn = this.props.generateIdsFn ? this.props.generateIdsFn : _uuid2.default;\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 tabIds.push(generateIdsFn());\n panelIds.push(generateIdsFn());\n }\n\n // Map children to dynamically setup refs\n return _react2.default.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return null;\n }\n\n var result = null;\n\n // Clone TabList and Tab components to have refs\n if (count++ === 0) {\n // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n result = (0, _react.cloneElement)(child, {\n ref: 'tablist',\n children: _react2.default.Children.map(child.props.children, function (tab) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (tab === null) {\n return null;\n }\n\n var ref = 'tabs-' + index;\n var id = tabIds[index];\n var panelId = panelIds[index];\n var selected = state.selectedIndex === index;\n var focus = selected && state.focus;\n\n index++;\n\n if (tab.type === _Tab2.default) {\n return (0, _react.cloneElement)(tab, {\n ref: ref,\n id: id,\n panelId: panelId,\n selected: selected,\n focus: focus\n });\n }\n\n return tab;\n })\n });\n\n // Reset index for panels\n index = 0;\n }\n // Clone TabPanel components to have refs\n else {\n var ref = 'panels-' + index;\n var id = panelIds[index];\n var tabId = tabIds[index];\n var selected = state.selectedIndex === index;\n\n index++;\n\n result = (0, _react.cloneElement)(child, {\n ref: ref,\n id: id,\n tabId: tabId,\n selected: selected\n });\n }\n\n return result;\n });\n },\n handleKeyDown: function handleKeyDown(e) {\n if (this.isTabFromContainer(e.target)) {\n var index = this.state.selectedIndex;\n var preventDefault = false;\n\n // Select next tab to the left\n if (e.keyCode === 37 || e.keyCode === 38) {\n index = this.getPrevTab(index);\n preventDefault = true;\n }\n // Select next tab to the right\n /* eslint brace-style:0 */\n else if (e.keyCode === 39 || e.keyCode === 40) {\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, true);\n }\n },\n handleClick: function handleClick(e) {\n var node = e.target;\n do {\n // eslint-disable-line no-cond-assign\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).indexOf(node);\n this.setSelected(index);\n return;\n }\n } while ((node = node.parentNode) !== null);\n },\n\n\n // This is an anti-pattern, so sue me\n copyPropsToState: function copyPropsToState(props, state) {\n var selectedIndex = props.selectedIndex;\n\n // If no selectedIndex prop was supplied, then try\n // preserving the existing selectedIndex from state.\n // If the state has not selectedIndex, default\n // to the first tab in the TabList.\n //\n // TODO: Need automation testing around this\n // Manual testing can be done using examples/focus\n // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n if (selectedIndex === -1) {\n if (state && state.selectedIndex) {\n selectedIndex = state.selectedIndex;\n } else {\n selectedIndex = 0;\n }\n }\n\n return {\n selectedIndex: selectedIndex,\n focus: props.focus\n };\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 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 var tabsNode = (0, _reactDom.findDOMNode)(this);\n do {\n if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n },\n render: function render() {\n var _this2 = this;\n\n // This fixes an issue with focus management.\n //\n // Ultimately, when focus is true, and an input has focus,\n // and any change on that input causes a state change/re-render,\n // focus gets sent back to the active tab, and input loses focus.\n //\n // Since the focus state only needs to be remembered\n // for the current render, we can reset it once the\n // render has happened.\n //\n // Don't use setState, because we don't want to re-render.\n //\n // See https://github.com/rackt/react-tabs/pull/7\n if (this.state.focus) {\n setTimeout(function () {\n _this2.state.focus = false;\n }, 0);\n }\n\n var _props = this.props;\n var className = _props.className;\n\n var attributes = _objectWithoutProperties(_props, ['className']);\n\n // Delete all known props, so they don't get added to DOM\n\n\n delete attributes.selectedIndex;\n delete attributes.onSelect;\n delete attributes.focus;\n delete attributes.children;\n delete attributes.forceRenderTabPanel;\n delete attributes.onClick;\n delete attributes.onKeyDown;\n delete attributes.generateIdsFn;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n 'data-tabs': true\n }),\n this.getChildren()\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/Tabs.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","!(function() {\n function jss(blocks) {\n var css = [];\n for (var block in blocks)\n css.push(createStyleBlock(block, blocks[block]));\n injectCSS(css);\n }\n\n function createStyleBlock(selector, rules) {\n return selector + ' {\\n' + parseRules(rules) + '\\n}';\n }\n\n function parseRules(rules) {\n var css = [];\n for (var rule in rules)\n css.push(' '+rule+': '+rules[rule]+';');\n return css.join('\\n');\n }\n\n function injectCSS(css) {\n var style = document.getElementById('jss-styles');\n if (!style) {\n style = document.createElement('style');\n style.setAttribute('id', 'jss-styles');\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(style, head.firstChild);\n }\n var node = document.createTextNode(css.join('\\n\\n'));\n style.appendChild(node);\n }\n\n if (typeof exports === 'object')\n module.exports = jss;\n else\n window.jss = jss;\n\n})();\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/js-stylesheet/jss.js\n ** module id = 5\n ** module chunks = 0\n **/","\"use strict\";\n\n// Get a universally unique identifier\nvar count = 0;\nmodule.exports = function uuid() {\n return \"react-tabs-\" + count++;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/uuid.js\n **/","'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Tab = require('../components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = require('../components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function childrenPropTypes(props, propName) {\n var error = void 0;\n var tabsCount = 0;\n var panelsCount = 0;\n var children = props[propName];\n\n _react2.default.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return;\n }\n\n if (child.type === _TabList2.default) {\n _react2.default.Children.forEach(child.props.children, function (c) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (c === null) {\n return;\n }\n\n if (c.type === _Tab2.default) {\n tabsCount++;\n }\n });\n } else if (child.type.displayName === 'TabPanel') {\n panelsCount++;\n } else {\n error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n }\n });\n\n if (tabsCount !== panelsCount) {\n error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n }\n\n return error;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/childrenPropType.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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\nmodule.exports = _react2.default.createClass({\n displayName: 'Tab',\n\n propTypes: {\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n focus: _react.PropTypes.bool,\n selected: _react.PropTypes.bool,\n disabled: _react.PropTypes.bool,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n panelId: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n focus: false,\n selected: false,\n id: null,\n panelId: null,\n activeTabClassName: 'ReactTabs__Tab--selected',\n disabledTabClassName: 'ReactTabs__Tab--disabled'\n };\n },\n componentDidMount: function componentDidMount() {\n this.checkFocus();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.checkFocus();\n },\n checkFocus: function checkFocus() {\n if (this.props.selected && this.props.focus) {\n (0, _reactDom.findDOMNode)(this).focus();\n }\n },\n render: function render() {\n var _cx;\n\n var _props = this.props;\n var selected = _props.selected;\n var disabled = _props.disabled;\n var panelId = _props.panelId;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var className = _props.className;\n var children = _props.children;\n var id = _props.id;\n\n var attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\n delete attributes.focus;\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\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/** WEBPACK FOOTER **\n ** ./lib/components/Tab.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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 renderChildren(props) {\n return _react2.default.Children.map(props.children, function (child) {\n // if child is not a tab we don't need to clone it\n // since we don't need to add custom props\n\n if (child.type !== _Tab2.default) {\n return child;\n }\n\n var clonedProps = {\n activeTabClassName: props.activeTabClassName,\n disabledTabClassName: props.disabledTabClassName\n };\n\n return _react2.default.cloneElement(child, clonedProps);\n });\n}\n\nmodule.exports = _react2.default.createClass({\n displayName: 'TabList',\n\n propTypes: {\n className: _react.PropTypes.string,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.array])\n },\n\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var children = _props.children;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabList', className),\n role: 'tablist'\n }),\n renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children })\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabList.js\n **/","'use strict';\n\nmodule.exports = {\n '.react-tabs [role=tablist]': {\n 'border-bottom': '1px solid #aaa',\n margin: '0 0 10px',\n padding: '0'\n },\n\n '.react-tabs [role=tab]': {\n display: 'inline-block',\n border: '1px solid transparent',\n 'border-bottom': 'none',\n bottom: '-1px',\n position: 'relative',\n 'list-style': 'none',\n padding: '6px 12px',\n cursor: 'pointer'\n },\n\n '.react-tabs [role=tab][aria-selected=true]': {\n background: '#fff',\n 'border-color': '#aaa',\n color: 'black',\n 'border-radius': '5px 5px 0 0',\n '-moz-border-radius': '5px 5px 0 0',\n '-webkit-border-radius': '5px 5px 0 0'\n },\n\n '.react-tabs [role=tab][aria-disabled=true]': {\n color: 'GrayText',\n cursor: 'default'\n },\n\n '.react-tabs [role=tab]:focus': {\n 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n 'border-color': 'hsl(208, 99%, 50%)',\n outline: 'none'\n },\n\n '.react-tabs [role=tab]:focus:after': {\n content: '\"\"',\n position: 'absolute',\n height: '5px',\n left: '-4px',\n right: '-4px',\n bottom: '-5px',\n background: '#fff'\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/styles.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\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\nmodule.exports = _react2.default.createClass({\n displayName: 'TabPanel',\n\n propTypes: {\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string]),\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n selected: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n tabId: _react.PropTypes.string\n },\n\n contextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selected: false,\n id: null,\n tabId: null\n };\n },\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var children = _props.children;\n var selected = _props.selected;\n var id = _props.id;\n var tabId = _props.tabId;\n var style = _props.style;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n 'ReactTabs__TabPanel--selected': selected\n }),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId,\n style: _extends({}, style, { display: selected ? null : 'none' })\n }),\n this.context.forceRenderTabPanel || selected ? children : null\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabPanel.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-tabs.min.js b/dist/react-tabs.min.js index ceedffe0b6..96a4d2cdf9 100644 --- a/dist/react-tabs.min.js +++ b/dist/react-tabs.min.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactTabs=t(require("react"),require("react-dom")):e.ReactTabs=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TabPanel=t.Tab=t.TabList=t.Tabs=void 0;var n=r(1),s=a(n),o=r(9),l=a(o),i=r(8),c=a(i),d=r(11),u=a(d);t.Tabs=s["default"],t.TabList=l["default"],t.Tab=c["default"],t.TabPanel=u["default"],t["default"]={Tabs:s["default"],TabList:l["default"],Tab:c["default"],TabPanel:u["default"]}},function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var r={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(r[a]=e[a]);return r}function s(e){return"LI"===e.nodeName&&"tab"===e.getAttribute("role")}function o(e){return"true"===e.getAttribute("aria-disabled")}var l=Object.assign||function(e){for(var t=1;t=this.getTabsCount())){var r=this.state.selectedIndex,a=!1;"function"==typeof this.props.onSelect&&(a=this.props.onSelect(e,r)===!1),a||this.setState({selectedIndex:e,focus:t===!0})}},getNextTab:function(e){for(var t=this.getTabsCount(),r=e+1;re;){var a=this.getTab(t);if(!o((0,d.findDOMNode)(a)))return t}return e},getTabsCount:function(){return this.props.children&&this.props.children[0]?c["default"].Children.count(this.props.children[0].props.children):0},getPanelsCount:function(){return c["default"].Children.count(this.props.children.slice(1))},getTabList:function(){return this.refs.tablist},getTab:function(e){return this.refs["tabs-"+e]},getPanel:function(e){return this.refs["panels-"+e]},getChildren:function(){for(var e=0,t=0,r=this.props.children,a=this.state,n=this.tabIds=this.tabIds||[],s=this.panelIds=this.panelIds||[],o=this.tabIds.length-this.getTabsCount();o++<0;)n.push((0,T["default"])()),s.push((0,T["default"])());return c["default"].Children.map(r,function(r){if(null===r)return null;var o=null;if(0===t++)o=(0,i.cloneElement)(r,{ref:"tablist",children:c["default"].Children.map(r.props.children,function(t){if(null===t)return null;var r="tabs-"+e,o=n[e],l=s[e],c=a.selectedIndex===e,d=c&&a.focus;return e++,t.type===P["default"]?(0,i.cloneElement)(t,{ref:r,id:o,panelId:l,selected:c,focus:d}):t})}),e=0;else{var l="panels-"+e,d=s[e],u=n[e],p=a.selectedIndex===e;e++,o=(0,i.cloneElement)(r,{ref:l,id:d,tabId:u,selected:p})}return o})},handleKeyDown:function(e){if(this.isTabFromContainer(e.target)){var t=this.state.selectedIndex,r=!1;37===e.keyCode||38===e.keyCode?(t=this.getPrevTab(t),r=!0):39!==e.keyCode&&40!==e.keyCode||(t=this.getNextTab(t),r=!0),r&&e.preventDefault(),this.setSelected(t,!0)}},handleClick:function(e){var t=e.target;do if(this.isTabFromContainer(t)){if(o(t))return;var r=[].slice.call(t.parentNode.children).indexOf(t);return void this.setSelected(r)}while(null!==(t=t.parentNode))},copyPropsToState:function(e,t){var r=e.selectedIndex;return r===-1&&(r=t&&t.selectedIndex?t.selectedIndex:0),{selectedIndex:r,focus:e.focus}},isTabFromContainer:function(e){if(!s(e))return!1;var t=e.parentElement,r=(0,d.findDOMNode)(this);do{if(t===r)return!0;if(t.getAttribute("data-tabs"))break;t=t.parentElement}while(t);return!1},render:function(){var e=this;this.state.focus&&setTimeout(function(){e.state.focus=!1},0);var t=this.props,r=t.className,a=n(t,["className"]);return delete a.selectedIndex,delete a.onSelect,delete a.focus,delete a.children,delete a.forceRenderTabPanel,delete a.onClick,delete a.onKeyDown,c["default"].createElement("div",l({},a,{className:(0,p["default"])("ReactTabs","react-tabs",r),onClick:this.handleClick,onKeyDown:this.handleKeyDown,"data-tabs":!0}),this.getChildren())}})},function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){var a,n;/*! +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactTabs=t(require("react"),require("react-dom")):e.ReactTabs=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TabPanel=t.Tab=t.TabList=t.Tabs=void 0;var n=r(1),s=a(n),o=r(9),l=a(o),i=r(8),c=a(i),d=r(11),u=a(d);t.Tabs=s["default"],t.TabList=l["default"],t.Tab=c["default"],t.TabPanel=u["default"],t["default"]={Tabs:s["default"],TabList:l["default"],Tab:c["default"],TabPanel:u["default"]}},function(e,t,r){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var r={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(r[a]=e[a]);return r}function s(e){return"LI"===e.nodeName&&"tab"===e.getAttribute("role")}function o(e){return"true"===e.getAttribute("aria-disabled")}var l=Object.assign||function(e){for(var t=1;t=this.getTabsCount())){var r=this.state.selectedIndex,a=!1;"function"==typeof this.props.onSelect&&(a=this.props.onSelect(e,r)===!1),a||this.setState({selectedIndex:e,focus:t===!0})}},getNextTab:function(e){for(var t=this.getTabsCount(),r=e+1;re;){var a=this.getTab(t);if(!o((0,d.findDOMNode)(a)))return t}return e},getTabsCount:function(){return this.props.children&&this.props.children[0]?c["default"].Children.count(this.props.children[0].props.children):0},getPanelsCount:function(){return c["default"].Children.count(this.props.children.slice(1))},getTabList:function(){return this.refs.tablist},getTab:function(e){return this.refs["tabs-"+e]},getPanel:function(e){return this.refs["panels-"+e]},getChildren:function(){for(var e=0,t=0,r=this.props.children,a=this.state,n=this.tabIds=this.tabIds||[],s=this.panelIds=this.panelIds||[],o=this.props.generateIdsFn?this.props.generateIdsFn:T["default"],l=this.tabIds.length-this.getTabsCount();l++<0;)n.push(o()),s.push(o());return c["default"].Children.map(r,function(r){if(null===r)return null;var o=null;if(0===t++)o=(0,i.cloneElement)(r,{ref:"tablist",children:c["default"].Children.map(r.props.children,function(t){if(null===t)return null;var r="tabs-"+e,o=n[e],l=s[e],c=a.selectedIndex===e,d=c&&a.focus;return e++,t.type===P["default"]?(0,i.cloneElement)(t,{ref:r,id:o,panelId:l,selected:c,focus:d}):t})}),e=0;else{var l="panels-"+e,d=s[e],u=n[e],p=a.selectedIndex===e;e++,o=(0,i.cloneElement)(r,{ref:l,id:d,tabId:u,selected:p})}return o})},handleKeyDown:function(e){if(this.isTabFromContainer(e.target)){var t=this.state.selectedIndex,r=!1;37===e.keyCode||38===e.keyCode?(t=this.getPrevTab(t),r=!0):39!==e.keyCode&&40!==e.keyCode||(t=this.getNextTab(t),r=!0),r&&e.preventDefault(),this.setSelected(t,!0)}},handleClick:function(e){var t=e.target;do if(this.isTabFromContainer(t)){if(o(t))return;var r=[].slice.call(t.parentNode.children).indexOf(t);return void this.setSelected(r)}while(null!==(t=t.parentNode))},copyPropsToState:function(e,t){var r=e.selectedIndex;return r===-1&&(r=t&&t.selectedIndex?t.selectedIndex:0),{selectedIndex:r,focus:e.focus}},isTabFromContainer:function(e){if(!s(e))return!1;var t=e.parentElement,r=(0,d.findDOMNode)(this);do{if(t===r)return!0;if(t.getAttribute("data-tabs"))break;t=t.parentElement}while(t);return!1},render:function(){var e=this;this.state.focus&&setTimeout(function(){e.state.focus=!1},0);var t=this.props,r=t.className,a=n(t,["className"]);return delete a.selectedIndex,delete a.onSelect,delete a.focus,delete a.children,delete a.forceRenderTabPanel,delete a.onClick,delete a.onKeyDown,delete a.generateIdsFn,c["default"].createElement("div",l({},a,{className:(0,p["default"])("ReactTabs","react-tabs",r),onClick:this.handleClick,onKeyDown:this.handleKeyDown,"data-tabs":!0}),this.getChildren())}})},function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){var a,n;/*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames diff --git a/dist/react-tabs.min.js.map b/dist/react-tabs.min.js.map index e0ea02e11b..48b637b95c 100644 --- a/dist/react-tabs.min.js.map +++ b/dist/react-tabs.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///./dist/react-tabs.min.js","webpack:///webpack/bootstrap 2eb6d2b8200901d418b8","webpack:///./lib/main.js","webpack:///./lib/components/Tabs.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./~/classnames/index.js","webpack:///./~/js-stylesheet/jss.js","webpack:///./lib/helpers/uuid.js","webpack:///./lib/helpers/childrenPropType.js","webpack:///./lib/components/Tab.js","webpack:///./lib/components/TabList.js","webpack:///./lib/helpers/styles.js","webpack:///./lib/components/TabPanel.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","TabPanel","Tab","TabList","Tabs","undefined","_Tabs","_Tabs2","_TabList","_TabList2","_Tab","_Tab2","_TabPanel","_TabPanel2","_objectWithoutProperties","keys","target","i","indexOf","prototype","hasOwnProperty","isTabNode","node","nodeName","getAttribute","isTabDisabled","_extends","assign","arguments","length","source","key","_react","_react2","_reactDom","_classnames","_classnames2","_jsStylesheet","_jsStylesheet2","_uuid","_uuid2","_childrenPropType","_childrenPropType2","useDefaultStyles","createClass","displayName","propTypes","className","PropTypes","string","selectedIndex","number","onSelect","func","focus","bool","children","forceRenderTabPanel","childContextTypes","statics","setUseDefaultStyles","use","getDefaultProps","getInitialState","copyPropsToState","props","state","getChildContext","componentDidMount","componentWillReceiveProps","newProps","_this","setState","setSelected","index","getTabsCount","last","cancel","getNextTab","count","tab","getTab","findDOMNode","_i","_tab","getPrevTab","_tab2","Children","getPanelsCount","slice","getTabList","refs","tablist","getPanel","getChildren","tabIds","panelIds","diff","push","map","child","result","cloneElement","ref","panelId","selected","type","tabId","handleKeyDown","e","isTabFromContainer","preventDefault","keyCode","handleClick","parentNode","nodeAncestor","parentElement","tabsNode","render","_this2","setTimeout","_props","attributes","onClick","onKeyDown","createElement","data-tabs","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","arg","argType","Array","isArray","apply","hasOwn","join","jss","blocks","css","block","createStyleBlock","injectCSS","selector","rules","parseRules","rule","style","document","getElementById","setAttribute","head","getElementsByTagName","insertBefore","firstChild","createTextNode","appendChild","propName","error","tabsCount","panelsCount","forEach","Error","_defineProperty","enumerable","configurable","writable","disabled","activeTabClassName","disabledTabClassName","oneOfType","array","object","checkFocus","componentDidUpdate","_cx","role","aria-selected","aria-disabled","aria-controls","tabIndex","renderChildren","clonedProps",".react-tabs [role=tablist]","border-bottom","margin","padding",".react-tabs [role=tab]","display","border","bottom","position","list-style","cursor",".react-tabs [role=tab][aria-selected=true]","background","border-color","color","border-radius","-moz-border-radius","-webkit-border-radius",".react-tabs [role=tab][aria-disabled=true]",".react-tabs [role=tab]:focus","box-shadow","outline",".react-tabs [role=tab]:focus:after","content","height","left","right","contextTypes","ReactTabs__TabPanel--selected","aria-labelledby","context"],"mappings":"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","file":"/Users/danieltschinder/Documents/Github/react-tabs/dist/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(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\t\n\tvar _Tabs = __webpack_require__(1);\n\t\n\tvar _Tabs2 = _interopRequireDefault(_Tabs);\n\t\n\tvar _TabList = __webpack_require__(9);\n\t\n\tvar _TabList2 = _interopRequireDefault(_TabList);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tvar _TabPanel = __webpack_require__(11);\n\t\n\tvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\texports.Tabs = _Tabs2.default;\n\texports.TabList = _TabList2.default;\n\texports.Tab = _Tab2.default;\n\texports.TabPanel = _TabPanel2.default;\n\t\n\t// For bc we also export a default object, remove in 1.0\n\t\n\texports.default = {\n\t Tabs: _Tabs2.default,\n\t TabList: _TabList2.default,\n\t Tab: _Tab2.default,\n\t TabPanel: _TabPanel2.default\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(3);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _jsStylesheet = __webpack_require__(5);\n\t\n\tvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\t\n\tvar _uuid = __webpack_require__(6);\n\t\n\tvar _uuid2 = _interopRequireDefault(_uuid);\n\t\n\tvar _childrenPropType = __webpack_require__(7);\n\t\n\tvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\t// Determine if a node from event.target is a Tab element\n\tfunction isTabNode(node) {\n\t return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n\t}\n\t\n\t// Determine if a tab node is disabled\n\tfunction isTabDisabled(node) {\n\t return node.getAttribute('aria-disabled') === 'true';\n\t}\n\t\n\tvar useDefaultStyles = true;\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'Tabs',\n\t\n\t propTypes: {\n\t className: _react.PropTypes.string,\n\t selectedIndex: _react.PropTypes.number,\n\t onSelect: _react.PropTypes.func,\n\t focus: _react.PropTypes.bool,\n\t children: _childrenPropType2.default,\n\t forceRenderTabPanel: _react.PropTypes.bool\n\t },\n\t\n\t childContextTypes: {\n\t forceRenderTabPanel: _react.PropTypes.bool\n\t },\n\t\n\t statics: {\n\t setUseDefaultStyles: function setUseDefaultStyles(use) {\n\t useDefaultStyles = use;\n\t }\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t selectedIndex: -1,\n\t focus: false,\n\t forceRenderTabPanel: false\n\t };\n\t },\n\t getInitialState: function getInitialState() {\n\t return this.copyPropsToState(this.props, this.state);\n\t },\n\t getChildContext: function getChildContext() {\n\t return {\n\t forceRenderTabPanel: this.props.forceRenderTabPanel\n\t };\n\t },\n\t componentDidMount: function componentDidMount() {\n\t if (useDefaultStyles) {\n\t (0, _jsStylesheet2.default)(__webpack_require__(10)); // eslint-disable-line global-require\n\t }\n\t },\n\t componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n\t var _this = this;\n\t\n\t // Use a transactional update to prevent race conditions\n\t // when reading the state in copyPropsToState\n\t // See https://github.com/reactjs/react-tabs/issues/51\n\t this.setState(function (state) {\n\t return _this.copyPropsToState(newProps, state);\n\t });\n\t },\n\t setSelected: function setSelected(index, focus) {\n\t // Don't do anything if nothing has changed\n\t if (index === this.state.selectedIndex) return;\n\t // Check index boundary\n\t if (index < 0 || index >= this.getTabsCount()) return;\n\t\n\t // Keep reference to last index for event handler\n\t var last = this.state.selectedIndex;\n\t\n\t // Check if the change event handler cancels the tab change\n\t var cancel = false;\n\t\n\t // Call change event handler\n\t if (typeof this.props.onSelect === 'function') {\n\t cancel = this.props.onSelect(index, last) === false;\n\t }\n\t\n\t if (!cancel) {\n\t // Update selected index\n\t this.setState({ selectedIndex: index, focus: focus === true });\n\t }\n\t },\n\t getNextTab: function getNextTab(index) {\n\t var count = this.getTabsCount();\n\t\n\t // Look for non-disabled tab from index to the last tab on the right\n\t for (var i = index + 1; i < count; i++) {\n\t var tab = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n\t return i;\n\t }\n\t }\n\t\n\t // If no tab found, continue searching from first on left to index\n\t for (var _i = 0; _i < index; _i++) {\n\t var _tab = this.getTab(_i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n\t return _i;\n\t }\n\t }\n\t\n\t // No tabs are disabled, return index\n\t return index;\n\t },\n\t getPrevTab: function getPrevTab(index) {\n\t var i = index;\n\t\n\t // Look for non-disabled tab from index to first tab on the left\n\t while (i--) {\n\t var tab = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n\t return i;\n\t }\n\t }\n\t\n\t // If no tab found, continue searching from last tab on right to index\n\t i = this.getTabsCount();\n\t while (i-- > index) {\n\t var _tab2 = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n\t return i;\n\t }\n\t }\n\t\n\t // No tabs are disabled, return index\n\t return index;\n\t },\n\t getTabsCount: function getTabsCount() {\n\t return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n\t },\n\t getPanelsCount: function getPanelsCount() {\n\t return _react2.default.Children.count(this.props.children.slice(1));\n\t },\n\t getTabList: function getTabList() {\n\t return this.refs.tablist;\n\t },\n\t getTab: function getTab(index) {\n\t return this.refs['tabs-' + index];\n\t },\n\t getPanel: function getPanel(index) {\n\t return this.refs['panels-' + index];\n\t },\n\t getChildren: function getChildren() {\n\t var index = 0;\n\t var count = 0;\n\t var children = this.props.children;\n\t var state = this.state;\n\t var tabIds = this.tabIds = this.tabIds || [];\n\t var panelIds = this.panelIds = this.panelIds || [];\n\t var diff = this.tabIds.length - this.getTabsCount();\n\t\n\t // Add ids if new tabs have been added\n\t // Don't bother removing ids, just keep them in case they are added again\n\t // This is more efficient, and keeps the uuid counter under control\n\t while (diff++ < 0) {\n\t tabIds.push((0, _uuid2.default)());\n\t panelIds.push((0, _uuid2.default)());\n\t }\n\t\n\t // Map children to dynamically setup refs\n\t return _react2.default.Children.map(children, function (child) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (child === null) {\n\t return null;\n\t }\n\t\n\t var result = null;\n\t\n\t // Clone TabList and Tab components to have refs\n\t if (count++ === 0) {\n\t // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n\t result = (0, _react.cloneElement)(child, {\n\t ref: 'tablist',\n\t children: _react2.default.Children.map(child.props.children, function (tab) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (tab === null) {\n\t return null;\n\t }\n\t\n\t var ref = 'tabs-' + index;\n\t var id = tabIds[index];\n\t var panelId = panelIds[index];\n\t var selected = state.selectedIndex === index;\n\t var focus = selected && state.focus;\n\t\n\t index++;\n\t\n\t if (tab.type === _Tab2.default) {\n\t return (0, _react.cloneElement)(tab, {\n\t ref: ref,\n\t id: id,\n\t panelId: panelId,\n\t selected: selected,\n\t focus: focus\n\t });\n\t }\n\t\n\t return tab;\n\t })\n\t });\n\t\n\t // Reset index for panels\n\t index = 0;\n\t }\n\t // Clone TabPanel components to have refs\n\t else {\n\t var ref = 'panels-' + index;\n\t var id = panelIds[index];\n\t var tabId = tabIds[index];\n\t var selected = state.selectedIndex === index;\n\t\n\t index++;\n\t\n\t result = (0, _react.cloneElement)(child, {\n\t ref: ref,\n\t id: id,\n\t tabId: tabId,\n\t selected: selected\n\t });\n\t }\n\t\n\t return result;\n\t });\n\t },\n\t handleKeyDown: function handleKeyDown(e) {\n\t if (this.isTabFromContainer(e.target)) {\n\t var index = this.state.selectedIndex;\n\t var preventDefault = false;\n\t\n\t // Select next tab to the left\n\t if (e.keyCode === 37 || e.keyCode === 38) {\n\t index = this.getPrevTab(index);\n\t preventDefault = true;\n\t }\n\t // Select next tab to the right\n\t /* eslint brace-style:0 */\n\t else if (e.keyCode === 39 || e.keyCode === 40) {\n\t index = this.getNextTab(index);\n\t preventDefault = true;\n\t }\n\t\n\t // This prevents scrollbars from moving around\n\t if (preventDefault) {\n\t e.preventDefault();\n\t }\n\t\n\t this.setSelected(index, true);\n\t }\n\t },\n\t handleClick: function handleClick(e) {\n\t var node = e.target;\n\t do {\n\t // eslint-disable-line no-cond-assign\n\t if (this.isTabFromContainer(node)) {\n\t if (isTabDisabled(node)) {\n\t return;\n\t }\n\t\n\t var index = [].slice.call(node.parentNode.children).indexOf(node);\n\t this.setSelected(index);\n\t return;\n\t }\n\t } while ((node = node.parentNode) !== null);\n\t },\n\t\n\t // This is an anti-pattern, so sue me\n\t copyPropsToState: function copyPropsToState(props, state) {\n\t var selectedIndex = props.selectedIndex;\n\t\n\t // If no selectedIndex prop was supplied, then try\n\t // preserving the existing selectedIndex from state.\n\t // If the state has not selectedIndex, default\n\t // to the first tab in the TabList.\n\t //\n\t // TODO: Need automation testing around this\n\t // Manual testing can be done using examples/focus\n\t // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n\t if (selectedIndex === -1) {\n\t if (state && state.selectedIndex) {\n\t selectedIndex = state.selectedIndex;\n\t } else {\n\t selectedIndex = 0;\n\t }\n\t }\n\t\n\t return {\n\t selectedIndex: selectedIndex,\n\t focus: props.focus\n\t };\n\t },\n\t\n\t /**\n\t * Determine if a node from event.target is a Tab element for the current Tabs container.\n\t * If the clicked element is not a Tab, it returns false.\n\t * If it finds another Tabs container between the Tab and `this`, it returns false.\n\t */\n\t isTabFromContainer: function isTabFromContainer(node) {\n\t // return immediately if the clicked element is not a Tab.\n\t if (!isTabNode(node)) {\n\t return false;\n\t }\n\t\n\t // Check if the first occurrence of a Tabs container is `this` one.\n\t var nodeAncestor = node.parentElement;\n\t var tabsNode = (0, _reactDom.findDOMNode)(this);\n\t do {\n\t if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\t\n\t nodeAncestor = nodeAncestor.parentElement;\n\t } while (nodeAncestor);\n\t\n\t return false;\n\t },\n\t render: function render() {\n\t var _this2 = this;\n\t\n\t // This fixes an issue with focus management.\n\t //\n\t // Ultimately, when focus is true, and an input has focus,\n\t // and any change on that input causes a state change/re-render,\n\t // focus gets sent back to the active tab, and input loses focus.\n\t //\n\t // Since the focus state only needs to be remembered\n\t // for the current render, we can reset it once the\n\t // render has happened.\n\t //\n\t // Don't use setState, because we don't want to re-render.\n\t //\n\t // See https://github.com/rackt/react-tabs/pull/7\n\t if (this.state.focus) {\n\t setTimeout(function () {\n\t _this2.state.focus = false;\n\t }, 0);\n\t }\n\t\n\t var _props = this.props;\n\t var className = _props.className;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['className']);\n\t\n\t // Delete all known props, so they don't get added to DOM\n\t\n\t\n\t delete attributes.selectedIndex;\n\t delete attributes.onSelect;\n\t delete attributes.focus;\n\t delete attributes.children;\n\t delete attributes.forceRenderTabPanel;\n\t delete attributes.onClick;\n\t delete attributes.onKeyDown;\n\t\n\t return _react2.default.createElement('div', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n\t onClick: this.handleClick,\n\t onKeyDown: this.handleKeyDown,\n\t 'data-tabs': true\n\t }), this.getChildren());\n\t }\n\t});\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2016 Jed Watson.\n\t Licensed under the MIT License (MIT), see\n\t http://jedwatson.github.io/classnames\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar hasOwn = {}.hasOwnProperty;\n\t\n\t\tfunction classNames () {\n\t\t\tvar classes = [];\n\t\n\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\tvar arg = arguments[i];\n\t\t\t\tif (!arg) continue;\n\t\n\t\t\t\tvar argType = typeof arg;\n\t\n\t\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\t\tclasses.push(arg);\n\t\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn classes.join(' ');\n\t\t}\n\t\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = classNames;\n\t\t} else if (true) {\n\t\t\t// register as 'classnames', consistent with npm package name\n\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn classNames;\n\t\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else {\n\t\t\twindow.classNames = classNames;\n\t\t}\n\t}());\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t!(function() {\n\t function jss(blocks) {\n\t var css = [];\n\t for (var block in blocks)\n\t css.push(createStyleBlock(block, blocks[block]));\n\t injectCSS(css);\n\t }\n\t\n\t function createStyleBlock(selector, rules) {\n\t return selector + ' {\\n' + parseRules(rules) + '\\n}';\n\t }\n\t\n\t function parseRules(rules) {\n\t var css = [];\n\t for (var rule in rules)\n\t css.push(' '+rule+': '+rules[rule]+';');\n\t return css.join('\\n');\n\t }\n\t\n\t function injectCSS(css) {\n\t var style = document.getElementById('jss-styles');\n\t if (!style) {\n\t style = document.createElement('style');\n\t style.setAttribute('id', 'jss-styles');\n\t var head = document.getElementsByTagName('head')[0];\n\t head.insertBefore(style, head.firstChild);\n\t }\n\t var node = document.createTextNode(css.join('\\n\\n'));\n\t style.appendChild(node);\n\t }\n\t\n\t if (true)\n\t module.exports = jss;\n\t else\n\t window.jss = jss;\n\t\n\t})();\n\t\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\t// Get a universally unique identifier\n\t\n\tvar count = 0;\n\tmodule.exports = function uuid() {\n\t return \"react-tabs-\" + count++;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tvar _TabList = __webpack_require__(9);\n\t\n\tvar _TabList2 = _interopRequireDefault(_TabList);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tmodule.exports = function childrenPropTypes(props, propName) {\n\t var error = void 0;\n\t var tabsCount = 0;\n\t var panelsCount = 0;\n\t var children = props[propName];\n\t\n\t _react2.default.Children.forEach(children, function (child) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (child === null) {\n\t return;\n\t }\n\t\n\t if (child.type === _TabList2.default) {\n\t _react2.default.Children.forEach(child.props.children, function (c) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (c === null) {\n\t return;\n\t }\n\t\n\t if (c.type === _Tab2.default) {\n\t tabsCount++;\n\t }\n\t });\n\t } else if (child.type.displayName === 'TabPanel') {\n\t panelsCount++;\n\t } else {\n\t error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n\t }\n\t });\n\t\n\t if (tabsCount !== panelsCount) {\n\t error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n\t }\n\t\n\t return error;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(3);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _defineProperty(obj, key, value) {\n\t if (key in obj) {\n\t Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n\t } else {\n\t obj[key] = value;\n\t }return obj;\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'Tab',\n\t\n\t propTypes: {\n\t className: _react.PropTypes.string,\n\t id: _react.PropTypes.string,\n\t focus: _react.PropTypes.bool,\n\t selected: _react.PropTypes.bool,\n\t disabled: _react.PropTypes.bool,\n\t activeTabClassName: _react.PropTypes.string,\n\t disabledTabClassName: _react.PropTypes.string,\n\t panelId: _react.PropTypes.string,\n\t children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string])\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t focus: false,\n\t selected: false,\n\t id: null,\n\t panelId: null,\n\t activeTabClassName: 'ReactTabs__Tab--selected',\n\t disabledTabClassName: 'ReactTabs__Tab--disabled'\n\t };\n\t },\n\t componentDidMount: function componentDidMount() {\n\t this.checkFocus();\n\t },\n\t componentDidUpdate: function componentDidUpdate() {\n\t this.checkFocus();\n\t },\n\t checkFocus: function checkFocus() {\n\t if (this.props.selected && this.props.focus) {\n\t (0, _reactDom.findDOMNode)(this).focus();\n\t }\n\t },\n\t render: function render() {\n\t var _cx;\n\t\n\t var _props = this.props;\n\t var selected = _props.selected;\n\t var disabled = _props.disabled;\n\t var panelId = _props.panelId;\n\t var activeTabClassName = _props.activeTabClassName;\n\t var disabledTabClassName = _props.disabledTabClassName;\n\t var className = _props.className;\n\t var children = _props.children;\n\t var id = _props.id;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\t\n\t delete attributes.focus;\n\t\n\t return _react2.default.createElement('li', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\n\t role: 'tab',\n\t id: id,\n\t 'aria-selected': selected ? 'true' : 'false',\n\t 'aria-disabled': disabled ? 'true' : 'false',\n\t 'aria-controls': panelId,\n\t tabIndex: selected ? '0' : null\n\t }), children);\n\t }\n\t});\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tfunction renderChildren(props) {\n\t return _react2.default.Children.map(props.children, function (child) {\n\t // if child is not a tab we don't need to clone it\n\t // since we don't need to add custom props\n\t\n\t if (child.type !== _Tab2.default) {\n\t return child;\n\t }\n\t\n\t var clonedProps = {\n\t activeTabClassName: props.activeTabClassName,\n\t disabledTabClassName: props.disabledTabClassName\n\t };\n\t\n\t return _react2.default.cloneElement(child, clonedProps);\n\t });\n\t}\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'TabList',\n\t\n\t propTypes: {\n\t className: _react.PropTypes.string,\n\t activeTabClassName: _react.PropTypes.string,\n\t disabledTabClassName: _react.PropTypes.string,\n\t children: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.array])\n\t },\n\t\n\t render: function render() {\n\t var _props = this.props;\n\t var className = _props.className;\n\t var activeTabClassName = _props.activeTabClassName;\n\t var disabledTabClassName = _props.disabledTabClassName;\n\t var children = _props.children;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\t\n\t return _react2.default.createElement('ul', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__TabList', className),\n\t role: 'tablist'\n\t }), renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children }));\n\t }\n\t});\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t '.react-tabs [role=tablist]': {\n\t 'border-bottom': '1px solid #aaa',\n\t margin: '0 0 10px',\n\t padding: '0'\n\t },\n\t\n\t '.react-tabs [role=tab]': {\n\t display: 'inline-block',\n\t border: '1px solid transparent',\n\t 'border-bottom': 'none',\n\t bottom: '-1px',\n\t position: 'relative',\n\t 'list-style': 'none',\n\t padding: '6px 12px',\n\t cursor: 'pointer'\n\t },\n\t\n\t '.react-tabs [role=tab][aria-selected=true]': {\n\t background: '#fff',\n\t 'border-color': '#aaa',\n\t color: 'black',\n\t 'border-radius': '5px 5px 0 0',\n\t '-moz-border-radius': '5px 5px 0 0',\n\t '-webkit-border-radius': '5px 5px 0 0'\n\t },\n\t\n\t '.react-tabs [role=tab][aria-disabled=true]': {\n\t color: 'GrayText',\n\t cursor: 'default'\n\t },\n\t\n\t '.react-tabs [role=tab]:focus': {\n\t 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n\t 'border-color': 'hsl(208, 99%, 50%)',\n\t outline: 'none'\n\t },\n\t\n\t '.react-tabs [role=tab]:focus:after': {\n\t content: '\"\"',\n\t position: 'absolute',\n\t height: '5px',\n\t left: '-4px',\n\t right: '-4px',\n\t bottom: '-5px',\n\t background: '#fff'\n\t }\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'TabPanel',\n\t\n\t propTypes: {\n\t children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string]),\n\t className: _react.PropTypes.string,\n\t id: _react.PropTypes.string,\n\t selected: _react.PropTypes.bool,\n\t style: _react.PropTypes.object,\n\t tabId: _react.PropTypes.string\n\t },\n\t\n\t contextTypes: {\n\t forceRenderTabPanel: _react.PropTypes.bool\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t selected: false,\n\t id: null,\n\t tabId: null\n\t };\n\t },\n\t render: function render() {\n\t var _props = this.props;\n\t var className = _props.className;\n\t var children = _props.children;\n\t var selected = _props.selected;\n\t var id = _props.id;\n\t var tabId = _props.tabId;\n\t var style = _props.style;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\t\n\t return _react2.default.createElement('div', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n\t 'ReactTabs__TabPanel--selected': selected\n\t }),\n\t role: 'tabpanel',\n\t id: id,\n\t 'aria-labelledby': tabId,\n\t style: _extends({}, style, { display: selected ? null : 'none' })\n\t }), this.context.forceRenderTabPanel || selected ? children : null);\n\t }\n\t});\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./dist/react-tabs.min.js\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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 2eb6d2b8200901d418b8\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\nvar _Tabs = require('./components/Tabs');\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = require('./components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = require('./components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = require('./components/TabPanel');\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tabs = _Tabs2.default;\nexports.TabList = _TabList2.default;\nexports.Tab = _Tab2.default;\nexports.TabPanel = _TabPanel2.default;\n\n// For bc we also export a default object, remove in 1.0\n\nexports.default = {\n Tabs: _Tabs2.default,\n TabList: _TabList2.default,\n Tab: _Tab2.default,\n TabPanel: _TabPanel2.default\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/main.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _jsStylesheet = require('js-stylesheet');\n\nvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\nvar _uuid = require('../helpers/uuid');\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _childrenPropType = require('../helpers/childrenPropType');\n\nvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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\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 useDefaultStyles = true;\n\nmodule.exports = _react2.default.createClass({\n displayName: 'Tabs',\n\n propTypes: {\n className: _react.PropTypes.string,\n selectedIndex: _react.PropTypes.number,\n onSelect: _react.PropTypes.func,\n focus: _react.PropTypes.bool,\n children: _childrenPropType2.default,\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n childContextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n statics: {\n setUseDefaultStyles: function setUseDefaultStyles(use) {\n useDefaultStyles = use;\n }\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selectedIndex: -1,\n focus: false,\n forceRenderTabPanel: false\n };\n },\n getInitialState: function getInitialState() {\n return this.copyPropsToState(this.props, this.state);\n },\n getChildContext: function getChildContext() {\n return {\n forceRenderTabPanel: this.props.forceRenderTabPanel\n };\n },\n componentDidMount: function componentDidMount() {\n if (useDefaultStyles) {\n (0, _jsStylesheet2.default)(require('../helpers/styles.js')); // eslint-disable-line global-require\n }\n },\n componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n var _this = this;\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 _this.copyPropsToState(newProps, state);\n });\n },\n setSelected: function setSelected(index, focus) {\n // Don't do anything if nothing has changed\n if (index === this.state.selectedIndex) return;\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Keep reference to last index for event handler\n var last = this.state.selectedIndex;\n\n // Check if the change event handler cancels the tab change\n var cancel = false;\n\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n cancel = this.props.onSelect(index, last) === false;\n }\n\n if (!cancel) {\n // Update selected index\n this.setState({ selectedIndex: index, focus: focus === true });\n }\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab = this.getTab(_i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab2 = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getTabsCount: function getTabsCount() {\n return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n },\n getPanelsCount: function getPanelsCount() {\n return _react2.default.Children.count(this.props.children.slice(1));\n },\n getTabList: function getTabList() {\n return this.refs.tablist;\n },\n getTab: function getTab(index) {\n return this.refs['tabs-' + index];\n },\n getPanel: function getPanel(index) {\n return this.refs['panels-' + index];\n },\n getChildren: function getChildren() {\n var index = 0;\n var count = 0;\n var children = this.props.children;\n var state = this.state;\n var tabIds = this.tabIds = this.tabIds || [];\n var panelIds = 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 tabIds.push((0, _uuid2.default)());\n panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return _react2.default.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return null;\n }\n\n var result = null;\n\n // Clone TabList and Tab components to have refs\n if (count++ === 0) {\n // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n result = (0, _react.cloneElement)(child, {\n ref: 'tablist',\n children: _react2.default.Children.map(child.props.children, function (tab) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (tab === null) {\n return null;\n }\n\n var ref = 'tabs-' + index;\n var id = tabIds[index];\n var panelId = panelIds[index];\n var selected = state.selectedIndex === index;\n var focus = selected && state.focus;\n\n index++;\n\n if (tab.type === _Tab2.default) {\n return (0, _react.cloneElement)(tab, {\n ref: ref,\n id: id,\n panelId: panelId,\n selected: selected,\n focus: focus\n });\n }\n\n return tab;\n })\n });\n\n // Reset index for panels\n index = 0;\n }\n // Clone TabPanel components to have refs\n else {\n var ref = 'panels-' + index;\n var id = panelIds[index];\n var tabId = tabIds[index];\n var selected = state.selectedIndex === index;\n\n index++;\n\n result = (0, _react.cloneElement)(child, {\n ref: ref,\n id: id,\n tabId: tabId,\n selected: selected\n });\n }\n\n return result;\n });\n },\n handleKeyDown: function handleKeyDown(e) {\n if (this.isTabFromContainer(e.target)) {\n var index = this.state.selectedIndex;\n var preventDefault = false;\n\n // Select next tab to the left\n if (e.keyCode === 37 || e.keyCode === 38) {\n index = this.getPrevTab(index);\n preventDefault = true;\n }\n // Select next tab to the right\n /* eslint brace-style:0 */\n else if (e.keyCode === 39 || e.keyCode === 40) {\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, true);\n }\n },\n handleClick: function handleClick(e) {\n var node = e.target;\n do {\n // eslint-disable-line no-cond-assign\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).indexOf(node);\n this.setSelected(index);\n return;\n }\n } while ((node = node.parentNode) !== null);\n },\n\n\n // This is an anti-pattern, so sue me\n copyPropsToState: function copyPropsToState(props, state) {\n var selectedIndex = props.selectedIndex;\n\n // If no selectedIndex prop was supplied, then try\n // preserving the existing selectedIndex from state.\n // If the state has not selectedIndex, default\n // to the first tab in the TabList.\n //\n // TODO: Need automation testing around this\n // Manual testing can be done using examples/focus\n // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n if (selectedIndex === -1) {\n if (state && state.selectedIndex) {\n selectedIndex = state.selectedIndex;\n } else {\n selectedIndex = 0;\n }\n }\n\n return {\n selectedIndex: selectedIndex,\n focus: props.focus\n };\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 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 var tabsNode = (0, _reactDom.findDOMNode)(this);\n do {\n if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n },\n render: function render() {\n var _this2 = this;\n\n // This fixes an issue with focus management.\n //\n // Ultimately, when focus is true, and an input has focus,\n // and any change on that input causes a state change/re-render,\n // focus gets sent back to the active tab, and input loses focus.\n //\n // Since the focus state only needs to be remembered\n // for the current render, we can reset it once the\n // render has happened.\n //\n // Don't use setState, because we don't want to re-render.\n //\n // See https://github.com/rackt/react-tabs/pull/7\n if (this.state.focus) {\n setTimeout(function () {\n _this2.state.focus = false;\n }, 0);\n }\n\n var _props = this.props;\n var className = _props.className;\n\n var attributes = _objectWithoutProperties(_props, ['className']);\n\n // Delete all known props, so they don't get added to DOM\n\n\n delete attributes.selectedIndex;\n delete attributes.onSelect;\n delete attributes.focus;\n delete attributes.children;\n delete attributes.forceRenderTabPanel;\n delete attributes.onClick;\n delete attributes.onKeyDown;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n 'data-tabs': true\n }),\n this.getChildren()\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/Tabs.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","!(function() {\n function jss(blocks) {\n var css = [];\n for (var block in blocks)\n css.push(createStyleBlock(block, blocks[block]));\n injectCSS(css);\n }\n\n function createStyleBlock(selector, rules) {\n return selector + ' {\\n' + parseRules(rules) + '\\n}';\n }\n\n function parseRules(rules) {\n var css = [];\n for (var rule in rules)\n css.push(' '+rule+': '+rules[rule]+';');\n return css.join('\\n');\n }\n\n function injectCSS(css) {\n var style = document.getElementById('jss-styles');\n if (!style) {\n style = document.createElement('style');\n style.setAttribute('id', 'jss-styles');\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(style, head.firstChild);\n }\n var node = document.createTextNode(css.join('\\n\\n'));\n style.appendChild(node);\n }\n\n if (typeof exports === 'object')\n module.exports = jss;\n else\n window.jss = jss;\n\n})();\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/js-stylesheet/jss.js\n ** module id = 5\n ** module chunks = 0\n **/","\"use strict\";\n\n// Get a universally unique identifier\nvar count = 0;\nmodule.exports = function uuid() {\n return \"react-tabs-\" + count++;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/uuid.js\n **/","'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Tab = require('../components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = require('../components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function childrenPropTypes(props, propName) {\n var error = void 0;\n var tabsCount = 0;\n var panelsCount = 0;\n var children = props[propName];\n\n _react2.default.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return;\n }\n\n if (child.type === _TabList2.default) {\n _react2.default.Children.forEach(child.props.children, function (c) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (c === null) {\n return;\n }\n\n if (c.type === _Tab2.default) {\n tabsCount++;\n }\n });\n } else if (child.type.displayName === 'TabPanel') {\n panelsCount++;\n } else {\n error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n }\n });\n\n if (tabsCount !== panelsCount) {\n error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n }\n\n return error;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/childrenPropType.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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\nmodule.exports = _react2.default.createClass({\n displayName: 'Tab',\n\n propTypes: {\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n focus: _react.PropTypes.bool,\n selected: _react.PropTypes.bool,\n disabled: _react.PropTypes.bool,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n panelId: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n focus: false,\n selected: false,\n id: null,\n panelId: null,\n activeTabClassName: 'ReactTabs__Tab--selected',\n disabledTabClassName: 'ReactTabs__Tab--disabled'\n };\n },\n componentDidMount: function componentDidMount() {\n this.checkFocus();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.checkFocus();\n },\n checkFocus: function checkFocus() {\n if (this.props.selected && this.props.focus) {\n (0, _reactDom.findDOMNode)(this).focus();\n }\n },\n render: function render() {\n var _cx;\n\n var _props = this.props;\n var selected = _props.selected;\n var disabled = _props.disabled;\n var panelId = _props.panelId;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var className = _props.className;\n var children = _props.children;\n var id = _props.id;\n\n var attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\n delete attributes.focus;\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\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/** WEBPACK FOOTER **\n ** ./lib/components/Tab.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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 renderChildren(props) {\n return _react2.default.Children.map(props.children, function (child) {\n // if child is not a tab we don't need to clone it\n // since we don't need to add custom props\n\n if (child.type !== _Tab2.default) {\n return child;\n }\n\n var clonedProps = {\n activeTabClassName: props.activeTabClassName,\n disabledTabClassName: props.disabledTabClassName\n };\n\n return _react2.default.cloneElement(child, clonedProps);\n });\n}\n\nmodule.exports = _react2.default.createClass({\n displayName: 'TabList',\n\n propTypes: {\n className: _react.PropTypes.string,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.array])\n },\n\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var children = _props.children;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabList', className),\n role: 'tablist'\n }),\n renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children })\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabList.js\n **/","'use strict';\n\nmodule.exports = {\n '.react-tabs [role=tablist]': {\n 'border-bottom': '1px solid #aaa',\n margin: '0 0 10px',\n padding: '0'\n },\n\n '.react-tabs [role=tab]': {\n display: 'inline-block',\n border: '1px solid transparent',\n 'border-bottom': 'none',\n bottom: '-1px',\n position: 'relative',\n 'list-style': 'none',\n padding: '6px 12px',\n cursor: 'pointer'\n },\n\n '.react-tabs [role=tab][aria-selected=true]': {\n background: '#fff',\n 'border-color': '#aaa',\n color: 'black',\n 'border-radius': '5px 5px 0 0',\n '-moz-border-radius': '5px 5px 0 0',\n '-webkit-border-radius': '5px 5px 0 0'\n },\n\n '.react-tabs [role=tab][aria-disabled=true]': {\n color: 'GrayText',\n cursor: 'default'\n },\n\n '.react-tabs [role=tab]:focus': {\n 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n 'border-color': 'hsl(208, 99%, 50%)',\n outline: 'none'\n },\n\n '.react-tabs [role=tab]:focus:after': {\n content: '\"\"',\n position: 'absolute',\n height: '5px',\n left: '-4px',\n right: '-4px',\n bottom: '-5px',\n background: '#fff'\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/styles.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\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\nmodule.exports = _react2.default.createClass({\n displayName: 'TabPanel',\n\n propTypes: {\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string]),\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n selected: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n tabId: _react.PropTypes.string\n },\n\n contextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selected: false,\n id: null,\n tabId: null\n };\n },\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var children = _props.children;\n var selected = _props.selected;\n var id = _props.id;\n var tabId = _props.tabId;\n var style = _props.style;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n 'ReactTabs__TabPanel--selected': selected\n }),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId,\n style: _extends({}, style, { display: selected ? null : 'none' })\n }),\n this.context.forceRenderTabPanel || selected ? children : null\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabPanel.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///./dist/react-tabs.min.js","webpack:///webpack/bootstrap 4d0f0adf8866a7568de9","webpack:///./lib/main.js","webpack:///./lib/components/Tabs.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./~/classnames/index.js","webpack:///./~/js-stylesheet/jss.js","webpack:///./lib/helpers/uuid.js","webpack:///./lib/helpers/childrenPropType.js","webpack:///./lib/components/Tab.js","webpack:///./lib/components/TabList.js","webpack:///./lib/helpers/styles.js","webpack:///./lib/components/TabPanel.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","TabPanel","Tab","TabList","Tabs","undefined","_Tabs","_Tabs2","_TabList","_TabList2","_Tab","_Tab2","_TabPanel","_TabPanel2","_objectWithoutProperties","keys","target","i","indexOf","prototype","hasOwnProperty","isTabNode","node","nodeName","getAttribute","isTabDisabled","_extends","assign","arguments","length","source","key","_react","_react2","_reactDom","_classnames","_classnames2","_jsStylesheet","_jsStylesheet2","_uuid","_uuid2","_childrenPropType","_childrenPropType2","useDefaultStyles","createClass","displayName","propTypes","className","PropTypes","string","selectedIndex","number","onSelect","func","focus","bool","children","forceRenderTabPanel","generateIdsFn","childContextTypes","statics","setUseDefaultStyles","use","getDefaultProps","getInitialState","copyPropsToState","props","state","getChildContext","componentDidMount","componentWillReceiveProps","newProps","_this","setState","setSelected","index","getTabsCount","last","cancel","getNextTab","count","tab","getTab","findDOMNode","_i","_tab","getPrevTab","_tab2","Children","getPanelsCount","slice","getTabList","refs","tablist","getPanel","getChildren","tabIds","panelIds","diff","push","map","child","result","cloneElement","ref","panelId","selected","type","tabId","handleKeyDown","e","isTabFromContainer","preventDefault","keyCode","handleClick","parentNode","nodeAncestor","parentElement","tabsNode","render","_this2","setTimeout","_props","attributes","onClick","onKeyDown","createElement","data-tabs","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","arg","argType","Array","isArray","apply","hasOwn","join","jss","blocks","css","block","createStyleBlock","injectCSS","selector","rules","parseRules","rule","style","document","getElementById","setAttribute","head","getElementsByTagName","insertBefore","firstChild","createTextNode","appendChild","propName","error","tabsCount","panelsCount","forEach","Error","_defineProperty","enumerable","configurable","writable","disabled","activeTabClassName","disabledTabClassName","oneOfType","array","object","checkFocus","componentDidUpdate","_cx","role","aria-selected","aria-disabled","aria-controls","tabIndex","renderChildren","clonedProps",".react-tabs [role=tablist]","border-bottom","margin","padding",".react-tabs [role=tab]","display","border","bottom","position","list-style","cursor",".react-tabs [role=tab][aria-selected=true]","background","border-color","color","border-radius","-moz-border-radius","-webkit-border-radius",".react-tabs [role=tab][aria-disabled=true]",".react-tabs [role=tab]:focus","box-shadow","outline",".react-tabs [role=tab]:focus:after","content","height","left","right","contextTypes","ReactTabs__TabPanel--selected","aria-labelledby","context"],"mappings":"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","file":"/Users/neeharvenugopal/Development/javascript/react-tabs/dist/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(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\t\n\tvar _Tabs = __webpack_require__(1);\n\t\n\tvar _Tabs2 = _interopRequireDefault(_Tabs);\n\t\n\tvar _TabList = __webpack_require__(9);\n\t\n\tvar _TabList2 = _interopRequireDefault(_TabList);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tvar _TabPanel = __webpack_require__(11);\n\t\n\tvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\texports.Tabs = _Tabs2.default;\n\texports.TabList = _TabList2.default;\n\texports.Tab = _Tab2.default;\n\texports.TabPanel = _TabPanel2.default;\n\t\n\t// For bc we also export a default object, remove in 1.0\n\t\n\texports.default = {\n\t Tabs: _Tabs2.default,\n\t TabList: _TabList2.default,\n\t Tab: _Tab2.default,\n\t TabPanel: _TabPanel2.default\n\t};\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(3);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _jsStylesheet = __webpack_require__(5);\n\t\n\tvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\t\n\tvar _uuid = __webpack_require__(6);\n\t\n\tvar _uuid2 = _interopRequireDefault(_uuid);\n\t\n\tvar _childrenPropType = __webpack_require__(7);\n\t\n\tvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\t// Determine if a node from event.target is a Tab element\n\tfunction isTabNode(node) {\n\t return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n\t}\n\t\n\t// Determine if a tab node is disabled\n\tfunction isTabDisabled(node) {\n\t return node.getAttribute('aria-disabled') === 'true';\n\t}\n\t\n\tvar useDefaultStyles = true;\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'Tabs',\n\t\n\t propTypes: {\n\t className: _react.PropTypes.string,\n\t selectedIndex: _react.PropTypes.number,\n\t onSelect: _react.PropTypes.func,\n\t focus: _react.PropTypes.bool,\n\t children: _childrenPropType2.default,\n\t forceRenderTabPanel: _react.PropTypes.bool,\n\t generateIdsFn: _react.PropTypes.func\n\t },\n\t\n\t childContextTypes: {\n\t forceRenderTabPanel: _react.PropTypes.bool\n\t },\n\t\n\t statics: {\n\t setUseDefaultStyles: function setUseDefaultStyles(use) {\n\t useDefaultStyles = use;\n\t }\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t selectedIndex: -1,\n\t focus: false,\n\t forceRenderTabPanel: false\n\t };\n\t },\n\t getInitialState: function getInitialState() {\n\t return this.copyPropsToState(this.props, this.state);\n\t },\n\t getChildContext: function getChildContext() {\n\t return {\n\t forceRenderTabPanel: this.props.forceRenderTabPanel\n\t };\n\t },\n\t componentDidMount: function componentDidMount() {\n\t if (useDefaultStyles) {\n\t (0, _jsStylesheet2.default)(__webpack_require__(10)); // eslint-disable-line global-require\n\t }\n\t },\n\t componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n\t var _this = this;\n\t\n\t // Use a transactional update to prevent race conditions\n\t // when reading the state in copyPropsToState\n\t // See https://github.com/reactjs/react-tabs/issues/51\n\t this.setState(function (state) {\n\t return _this.copyPropsToState(newProps, state);\n\t });\n\t },\n\t setSelected: function setSelected(index, focus) {\n\t // Don't do anything if nothing has changed\n\t if (index === this.state.selectedIndex) return;\n\t // Check index boundary\n\t if (index < 0 || index >= this.getTabsCount()) return;\n\t\n\t // Keep reference to last index for event handler\n\t var last = this.state.selectedIndex;\n\t\n\t // Check if the change event handler cancels the tab change\n\t var cancel = false;\n\t\n\t // Call change event handler\n\t if (typeof this.props.onSelect === 'function') {\n\t cancel = this.props.onSelect(index, last) === false;\n\t }\n\t\n\t if (!cancel) {\n\t // Update selected index\n\t this.setState({ selectedIndex: index, focus: focus === true });\n\t }\n\t },\n\t getNextTab: function getNextTab(index) {\n\t var count = this.getTabsCount();\n\t\n\t // Look for non-disabled tab from index to the last tab on the right\n\t for (var i = index + 1; i < count; i++) {\n\t var tab = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n\t return i;\n\t }\n\t }\n\t\n\t // If no tab found, continue searching from first on left to index\n\t for (var _i = 0; _i < index; _i++) {\n\t var _tab = this.getTab(_i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n\t return _i;\n\t }\n\t }\n\t\n\t // No tabs are disabled, return index\n\t return index;\n\t },\n\t getPrevTab: function getPrevTab(index) {\n\t var i = index;\n\t\n\t // Look for non-disabled tab from index to first tab on the left\n\t while (i--) {\n\t var tab = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n\t return i;\n\t }\n\t }\n\t\n\t // If no tab found, continue searching from last tab on right to index\n\t i = this.getTabsCount();\n\t while (i-- > index) {\n\t var _tab2 = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n\t return i;\n\t }\n\t }\n\t\n\t // No tabs are disabled, return index\n\t return index;\n\t },\n\t getTabsCount: function getTabsCount() {\n\t return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n\t },\n\t getPanelsCount: function getPanelsCount() {\n\t return _react2.default.Children.count(this.props.children.slice(1));\n\t },\n\t getTabList: function getTabList() {\n\t return this.refs.tablist;\n\t },\n\t getTab: function getTab(index) {\n\t return this.refs['tabs-' + index];\n\t },\n\t getPanel: function getPanel(index) {\n\t return this.refs['panels-' + index];\n\t },\n\t getChildren: function getChildren() {\n\t var index = 0;\n\t var count = 0;\n\t var children = this.props.children;\n\t var state = this.state;\n\t var tabIds = this.tabIds = this.tabIds || [];\n\t var panelIds = this.panelIds = this.panelIds || [];\n\t var generateIdsFn = this.props.generateIdsFn ? this.props.generateIdsFn : _uuid2.default;\n\t var diff = this.tabIds.length - this.getTabsCount();\n\t\n\t // Add ids if new tabs have been added\n\t // Don't bother removing ids, just keep them in case they are added again\n\t // This is more efficient, and keeps the uuid counter under control\n\t while (diff++ < 0) {\n\t tabIds.push(generateIdsFn());\n\t panelIds.push(generateIdsFn());\n\t }\n\t\n\t // Map children to dynamically setup refs\n\t return _react2.default.Children.map(children, function (child) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (child === null) {\n\t return null;\n\t }\n\t\n\t var result = null;\n\t\n\t // Clone TabList and Tab components to have refs\n\t if (count++ === 0) {\n\t // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n\t result = (0, _react.cloneElement)(child, {\n\t ref: 'tablist',\n\t children: _react2.default.Children.map(child.props.children, function (tab) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (tab === null) {\n\t return null;\n\t }\n\t\n\t var ref = 'tabs-' + index;\n\t var id = tabIds[index];\n\t var panelId = panelIds[index];\n\t var selected = state.selectedIndex === index;\n\t var focus = selected && state.focus;\n\t\n\t index++;\n\t\n\t if (tab.type === _Tab2.default) {\n\t return (0, _react.cloneElement)(tab, {\n\t ref: ref,\n\t id: id,\n\t panelId: panelId,\n\t selected: selected,\n\t focus: focus\n\t });\n\t }\n\t\n\t return tab;\n\t })\n\t });\n\t\n\t // Reset index for panels\n\t index = 0;\n\t }\n\t // Clone TabPanel components to have refs\n\t else {\n\t var ref = 'panels-' + index;\n\t var id = panelIds[index];\n\t var tabId = tabIds[index];\n\t var selected = state.selectedIndex === index;\n\t\n\t index++;\n\t\n\t result = (0, _react.cloneElement)(child, {\n\t ref: ref,\n\t id: id,\n\t tabId: tabId,\n\t selected: selected\n\t });\n\t }\n\t\n\t return result;\n\t });\n\t },\n\t handleKeyDown: function handleKeyDown(e) {\n\t if (this.isTabFromContainer(e.target)) {\n\t var index = this.state.selectedIndex;\n\t var preventDefault = false;\n\t\n\t // Select next tab to the left\n\t if (e.keyCode === 37 || e.keyCode === 38) {\n\t index = this.getPrevTab(index);\n\t preventDefault = true;\n\t }\n\t // Select next tab to the right\n\t /* eslint brace-style:0 */\n\t else if (e.keyCode === 39 || e.keyCode === 40) {\n\t index = this.getNextTab(index);\n\t preventDefault = true;\n\t }\n\t\n\t // This prevents scrollbars from moving around\n\t if (preventDefault) {\n\t e.preventDefault();\n\t }\n\t\n\t this.setSelected(index, true);\n\t }\n\t },\n\t handleClick: function handleClick(e) {\n\t var node = e.target;\n\t do {\n\t // eslint-disable-line no-cond-assign\n\t if (this.isTabFromContainer(node)) {\n\t if (isTabDisabled(node)) {\n\t return;\n\t }\n\t\n\t var index = [].slice.call(node.parentNode.children).indexOf(node);\n\t this.setSelected(index);\n\t return;\n\t }\n\t } while ((node = node.parentNode) !== null);\n\t },\n\t\n\t // This is an anti-pattern, so sue me\n\t copyPropsToState: function copyPropsToState(props, state) {\n\t var selectedIndex = props.selectedIndex;\n\t\n\t // If no selectedIndex prop was supplied, then try\n\t // preserving the existing selectedIndex from state.\n\t // If the state has not selectedIndex, default\n\t // to the first tab in the TabList.\n\t //\n\t // TODO: Need automation testing around this\n\t // Manual testing can be done using examples/focus\n\t // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n\t if (selectedIndex === -1) {\n\t if (state && state.selectedIndex) {\n\t selectedIndex = state.selectedIndex;\n\t } else {\n\t selectedIndex = 0;\n\t }\n\t }\n\t\n\t return {\n\t selectedIndex: selectedIndex,\n\t focus: props.focus\n\t };\n\t },\n\t\n\t /**\n\t * Determine if a node from event.target is a Tab element for the current Tabs container.\n\t * If the clicked element is not a Tab, it returns false.\n\t * If it finds another Tabs container between the Tab and `this`, it returns false.\n\t */\n\t isTabFromContainer: function isTabFromContainer(node) {\n\t // return immediately if the clicked element is not a Tab.\n\t if (!isTabNode(node)) {\n\t return false;\n\t }\n\t\n\t // Check if the first occurrence of a Tabs container is `this` one.\n\t var nodeAncestor = node.parentElement;\n\t var tabsNode = (0, _reactDom.findDOMNode)(this);\n\t do {\n\t if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\t\n\t nodeAncestor = nodeAncestor.parentElement;\n\t } while (nodeAncestor);\n\t\n\t return false;\n\t },\n\t render: function render() {\n\t var _this2 = this;\n\t\n\t // This fixes an issue with focus management.\n\t //\n\t // Ultimately, when focus is true, and an input has focus,\n\t // and any change on that input causes a state change/re-render,\n\t // focus gets sent back to the active tab, and input loses focus.\n\t //\n\t // Since the focus state only needs to be remembered\n\t // for the current render, we can reset it once the\n\t // render has happened.\n\t //\n\t // Don't use setState, because we don't want to re-render.\n\t //\n\t // See https://github.com/rackt/react-tabs/pull/7\n\t if (this.state.focus) {\n\t setTimeout(function () {\n\t _this2.state.focus = false;\n\t }, 0);\n\t }\n\t\n\t var _props = this.props;\n\t var className = _props.className;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['className']);\n\t\n\t // Delete all known props, so they don't get added to DOM\n\t\n\t\n\t delete attributes.selectedIndex;\n\t delete attributes.onSelect;\n\t delete attributes.focus;\n\t delete attributes.children;\n\t delete attributes.forceRenderTabPanel;\n\t delete attributes.onClick;\n\t delete attributes.onKeyDown;\n\t delete attributes.generateIdsFn;\n\t\n\t return _react2.default.createElement('div', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n\t onClick: this.handleClick,\n\t onKeyDown: this.handleKeyDown,\n\t 'data-tabs': true\n\t }), this.getChildren());\n\t }\n\t});\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2016 Jed Watson.\n\t Licensed under the MIT License (MIT), see\n\t http://jedwatson.github.io/classnames\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar hasOwn = {}.hasOwnProperty;\n\t\n\t\tfunction classNames () {\n\t\t\tvar classes = [];\n\t\n\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\tvar arg = arguments[i];\n\t\t\t\tif (!arg) continue;\n\t\n\t\t\t\tvar argType = typeof arg;\n\t\n\t\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\t\tclasses.push(arg);\n\t\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn classes.join(' ');\n\t\t}\n\t\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = classNames;\n\t\t} else if (true) {\n\t\t\t// register as 'classnames', consistent with npm package name\n\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn classNames;\n\t\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else {\n\t\t\twindow.classNames = classNames;\n\t\t}\n\t}());\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t!(function() {\n\t function jss(blocks) {\n\t var css = [];\n\t for (var block in blocks)\n\t css.push(createStyleBlock(block, blocks[block]));\n\t injectCSS(css);\n\t }\n\t\n\t function createStyleBlock(selector, rules) {\n\t return selector + ' {\\n' + parseRules(rules) + '\\n}';\n\t }\n\t\n\t function parseRules(rules) {\n\t var css = [];\n\t for (var rule in rules)\n\t css.push(' '+rule+': '+rules[rule]+';');\n\t return css.join('\\n');\n\t }\n\t\n\t function injectCSS(css) {\n\t var style = document.getElementById('jss-styles');\n\t if (!style) {\n\t style = document.createElement('style');\n\t style.setAttribute('id', 'jss-styles');\n\t var head = document.getElementsByTagName('head')[0];\n\t head.insertBefore(style, head.firstChild);\n\t }\n\t var node = document.createTextNode(css.join('\\n\\n'));\n\t style.appendChild(node);\n\t }\n\t\n\t if (true)\n\t module.exports = jss;\n\t else\n\t window.jss = jss;\n\t\n\t})();\n\t\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\t// Get a universally unique identifier\n\t\n\tvar count = 0;\n\tmodule.exports = function uuid() {\n\t return \"react-tabs-\" + count++;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tvar _TabList = __webpack_require__(9);\n\t\n\tvar _TabList2 = _interopRequireDefault(_TabList);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tmodule.exports = function childrenPropTypes(props, propName) {\n\t var error = void 0;\n\t var tabsCount = 0;\n\t var panelsCount = 0;\n\t var children = props[propName];\n\t\n\t _react2.default.Children.forEach(children, function (child) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (child === null) {\n\t return;\n\t }\n\t\n\t if (child.type === _TabList2.default) {\n\t _react2.default.Children.forEach(child.props.children, function (c) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/rackt/react-tabs/issues/37\n\t if (c === null) {\n\t return;\n\t }\n\t\n\t if (c.type === _Tab2.default) {\n\t tabsCount++;\n\t }\n\t });\n\t } else if (child.type.displayName === 'TabPanel') {\n\t panelsCount++;\n\t } else {\n\t error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n\t }\n\t });\n\t\n\t if (tabsCount !== panelsCount) {\n\t error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n\t }\n\t\n\t return error;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(3);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _defineProperty(obj, key, value) {\n\t if (key in obj) {\n\t Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n\t } else {\n\t obj[key] = value;\n\t }return obj;\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'Tab',\n\t\n\t propTypes: {\n\t className: _react.PropTypes.string,\n\t id: _react.PropTypes.string,\n\t focus: _react.PropTypes.bool,\n\t selected: _react.PropTypes.bool,\n\t disabled: _react.PropTypes.bool,\n\t activeTabClassName: _react.PropTypes.string,\n\t disabledTabClassName: _react.PropTypes.string,\n\t panelId: _react.PropTypes.string,\n\t children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string])\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t focus: false,\n\t selected: false,\n\t id: null,\n\t panelId: null,\n\t activeTabClassName: 'ReactTabs__Tab--selected',\n\t disabledTabClassName: 'ReactTabs__Tab--disabled'\n\t };\n\t },\n\t componentDidMount: function componentDidMount() {\n\t this.checkFocus();\n\t },\n\t componentDidUpdate: function componentDidUpdate() {\n\t this.checkFocus();\n\t },\n\t checkFocus: function checkFocus() {\n\t if (this.props.selected && this.props.focus) {\n\t (0, _reactDom.findDOMNode)(this).focus();\n\t }\n\t },\n\t render: function render() {\n\t var _cx;\n\t\n\t var _props = this.props;\n\t var selected = _props.selected;\n\t var disabled = _props.disabled;\n\t var panelId = _props.panelId;\n\t var activeTabClassName = _props.activeTabClassName;\n\t var disabledTabClassName = _props.disabledTabClassName;\n\t var className = _props.className;\n\t var children = _props.children;\n\t var id = _props.id;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\t\n\t delete attributes.focus;\n\t\n\t return _react2.default.createElement('li', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\n\t role: 'tab',\n\t id: id,\n\t 'aria-selected': selected ? 'true' : 'false',\n\t 'aria-disabled': disabled ? 'true' : 'false',\n\t 'aria-controls': panelId,\n\t tabIndex: selected ? '0' : null\n\t }), children);\n\t }\n\t});\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _Tab = __webpack_require__(8);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tfunction renderChildren(props) {\n\t return _react2.default.Children.map(props.children, function (child) {\n\t // if child is not a tab we don't need to clone it\n\t // since we don't need to add custom props\n\t\n\t if (child.type !== _Tab2.default) {\n\t return child;\n\t }\n\t\n\t var clonedProps = {\n\t activeTabClassName: props.activeTabClassName,\n\t disabledTabClassName: props.disabledTabClassName\n\t };\n\t\n\t return _react2.default.cloneElement(child, clonedProps);\n\t });\n\t}\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'TabList',\n\t\n\t propTypes: {\n\t className: _react.PropTypes.string,\n\t activeTabClassName: _react.PropTypes.string,\n\t disabledTabClassName: _react.PropTypes.string,\n\t children: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.array])\n\t },\n\t\n\t render: function render() {\n\t var _props = this.props;\n\t var className = _props.className;\n\t var activeTabClassName = _props.activeTabClassName;\n\t var disabledTabClassName = _props.disabledTabClassName;\n\t var children = _props.children;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\t\n\t return _react2.default.createElement('ul', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__TabList', className),\n\t role: 'tablist'\n\t }), renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children }));\n\t }\n\t});\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t '.react-tabs [role=tablist]': {\n\t 'border-bottom': '1px solid #aaa',\n\t margin: '0 0 10px',\n\t padding: '0'\n\t },\n\t\n\t '.react-tabs [role=tab]': {\n\t display: 'inline-block',\n\t border: '1px solid transparent',\n\t 'border-bottom': 'none',\n\t bottom: '-1px',\n\t position: 'relative',\n\t 'list-style': 'none',\n\t padding: '6px 12px',\n\t cursor: 'pointer'\n\t },\n\t\n\t '.react-tabs [role=tab][aria-selected=true]': {\n\t background: '#fff',\n\t 'border-color': '#aaa',\n\t color: 'black',\n\t 'border-radius': '5px 5px 0 0',\n\t '-moz-border-radius': '5px 5px 0 0',\n\t '-webkit-border-radius': '5px 5px 0 0'\n\t },\n\t\n\t '.react-tabs [role=tab][aria-disabled=true]': {\n\t color: 'GrayText',\n\t cursor: 'default'\n\t },\n\t\n\t '.react-tabs [role=tab]:focus': {\n\t 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n\t 'border-color': 'hsl(208, 99%, 50%)',\n\t outline: 'none'\n\t },\n\t\n\t '.react-tabs [role=tab]:focus:after': {\n\t content: '\"\"',\n\t position: 'absolute',\n\t height: '5px',\n\t left: '-4px',\n\t right: '-4px',\n\t bottom: '-5px',\n\t background: '#fff'\n\t }\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(4);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tmodule.exports = _react2.default.createClass({\n\t displayName: 'TabPanel',\n\t\n\t propTypes: {\n\t children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string]),\n\t className: _react.PropTypes.string,\n\t id: _react.PropTypes.string,\n\t selected: _react.PropTypes.bool,\n\t style: _react.PropTypes.object,\n\t tabId: _react.PropTypes.string\n\t },\n\t\n\t contextTypes: {\n\t forceRenderTabPanel: _react.PropTypes.bool\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t selected: false,\n\t id: null,\n\t tabId: null\n\t };\n\t },\n\t render: function render() {\n\t var _props = this.props;\n\t var className = _props.className;\n\t var children = _props.children;\n\t var selected = _props.selected;\n\t var id = _props.id;\n\t var tabId = _props.tabId;\n\t var style = _props.style;\n\t\n\t var attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\t\n\t return _react2.default.createElement('div', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n\t 'ReactTabs__TabPanel--selected': selected\n\t }),\n\t role: 'tabpanel',\n\t id: id,\n\t 'aria-labelledby': tabId,\n\t style: _extends({}, style, { display: selected ? null : 'none' })\n\t }), this.context.forceRenderTabPanel || selected ? children : null);\n\t }\n\t});\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./dist/react-tabs.min.js\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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4d0f0adf8866a7568de9\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\nvar _Tabs = require('./components/Tabs');\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = require('./components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = require('./components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = require('./components/TabPanel');\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tabs = _Tabs2.default;\nexports.TabList = _TabList2.default;\nexports.Tab = _Tab2.default;\nexports.TabPanel = _TabPanel2.default;\n\n// For bc we also export a default object, remove in 1.0\n\nexports.default = {\n Tabs: _Tabs2.default,\n TabList: _TabList2.default,\n Tab: _Tab2.default,\n TabPanel: _TabPanel2.default\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/main.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _jsStylesheet = require('js-stylesheet');\n\nvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\nvar _uuid = require('../helpers/uuid');\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _childrenPropType = require('../helpers/childrenPropType');\n\nvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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\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 useDefaultStyles = true;\n\nmodule.exports = _react2.default.createClass({\n displayName: 'Tabs',\n\n propTypes: {\n className: _react.PropTypes.string,\n selectedIndex: _react.PropTypes.number,\n onSelect: _react.PropTypes.func,\n focus: _react.PropTypes.bool,\n children: _childrenPropType2.default,\n forceRenderTabPanel: _react.PropTypes.bool,\n generateIdsFn: _react.PropTypes.func\n },\n\n childContextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n statics: {\n setUseDefaultStyles: function setUseDefaultStyles(use) {\n useDefaultStyles = use;\n }\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selectedIndex: -1,\n focus: false,\n forceRenderTabPanel: false\n };\n },\n getInitialState: function getInitialState() {\n return this.copyPropsToState(this.props, this.state);\n },\n getChildContext: function getChildContext() {\n return {\n forceRenderTabPanel: this.props.forceRenderTabPanel\n };\n },\n componentDidMount: function componentDidMount() {\n if (useDefaultStyles) {\n (0, _jsStylesheet2.default)(require('../helpers/styles.js')); // eslint-disable-line global-require\n }\n },\n componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n var _this = this;\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 _this.copyPropsToState(newProps, state);\n });\n },\n setSelected: function setSelected(index, focus) {\n // Don't do anything if nothing has changed\n if (index === this.state.selectedIndex) return;\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Keep reference to last index for event handler\n var last = this.state.selectedIndex;\n\n // Check if the change event handler cancels the tab change\n var cancel = false;\n\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n cancel = this.props.onSelect(index, last) === false;\n }\n\n if (!cancel) {\n // Update selected index\n this.setState({ selectedIndex: index, focus: focus === true });\n }\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab = this.getTab(_i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n 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 var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\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 var _tab2 = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getTabsCount: function getTabsCount() {\n return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n },\n getPanelsCount: function getPanelsCount() {\n return _react2.default.Children.count(this.props.children.slice(1));\n },\n getTabList: function getTabList() {\n return this.refs.tablist;\n },\n getTab: function getTab(index) {\n return this.refs['tabs-' + index];\n },\n getPanel: function getPanel(index) {\n return this.refs['panels-' + index];\n },\n getChildren: function getChildren() {\n var index = 0;\n var count = 0;\n var children = this.props.children;\n var state = this.state;\n var tabIds = this.tabIds = this.tabIds || [];\n var panelIds = this.panelIds = this.panelIds || [];\n var generateIdsFn = this.props.generateIdsFn ? this.props.generateIdsFn : _uuid2.default;\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 tabIds.push(generateIdsFn());\n panelIds.push(generateIdsFn());\n }\n\n // Map children to dynamically setup refs\n return _react2.default.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return null;\n }\n\n var result = null;\n\n // Clone TabList and Tab components to have refs\n if (count++ === 0) {\n // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n result = (0, _react.cloneElement)(child, {\n ref: 'tablist',\n children: _react2.default.Children.map(child.props.children, function (tab) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (tab === null) {\n return null;\n }\n\n var ref = 'tabs-' + index;\n var id = tabIds[index];\n var panelId = panelIds[index];\n var selected = state.selectedIndex === index;\n var focus = selected && state.focus;\n\n index++;\n\n if (tab.type === _Tab2.default) {\n return (0, _react.cloneElement)(tab, {\n ref: ref,\n id: id,\n panelId: panelId,\n selected: selected,\n focus: focus\n });\n }\n\n return tab;\n })\n });\n\n // Reset index for panels\n index = 0;\n }\n // Clone TabPanel components to have refs\n else {\n var ref = 'panels-' + index;\n var id = panelIds[index];\n var tabId = tabIds[index];\n var selected = state.selectedIndex === index;\n\n index++;\n\n result = (0, _react.cloneElement)(child, {\n ref: ref,\n id: id,\n tabId: tabId,\n selected: selected\n });\n }\n\n return result;\n });\n },\n handleKeyDown: function handleKeyDown(e) {\n if (this.isTabFromContainer(e.target)) {\n var index = this.state.selectedIndex;\n var preventDefault = false;\n\n // Select next tab to the left\n if (e.keyCode === 37 || e.keyCode === 38) {\n index = this.getPrevTab(index);\n preventDefault = true;\n }\n // Select next tab to the right\n /* eslint brace-style:0 */\n else if (e.keyCode === 39 || e.keyCode === 40) {\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, true);\n }\n },\n handleClick: function handleClick(e) {\n var node = e.target;\n do {\n // eslint-disable-line no-cond-assign\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).indexOf(node);\n this.setSelected(index);\n return;\n }\n } while ((node = node.parentNode) !== null);\n },\n\n\n // This is an anti-pattern, so sue me\n copyPropsToState: function copyPropsToState(props, state) {\n var selectedIndex = props.selectedIndex;\n\n // If no selectedIndex prop was supplied, then try\n // preserving the existing selectedIndex from state.\n // If the state has not selectedIndex, default\n // to the first tab in the TabList.\n //\n // TODO: Need automation testing around this\n // Manual testing can be done using examples/focus\n // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n if (selectedIndex === -1) {\n if (state && state.selectedIndex) {\n selectedIndex = state.selectedIndex;\n } else {\n selectedIndex = 0;\n }\n }\n\n return {\n selectedIndex: selectedIndex,\n focus: props.focus\n };\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 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 var tabsNode = (0, _reactDom.findDOMNode)(this);\n do {\n if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n },\n render: function render() {\n var _this2 = this;\n\n // This fixes an issue with focus management.\n //\n // Ultimately, when focus is true, and an input has focus,\n // and any change on that input causes a state change/re-render,\n // focus gets sent back to the active tab, and input loses focus.\n //\n // Since the focus state only needs to be remembered\n // for the current render, we can reset it once the\n // render has happened.\n //\n // Don't use setState, because we don't want to re-render.\n //\n // See https://github.com/rackt/react-tabs/pull/7\n if (this.state.focus) {\n setTimeout(function () {\n _this2.state.focus = false;\n }, 0);\n }\n\n var _props = this.props;\n var className = _props.className;\n\n var attributes = _objectWithoutProperties(_props, ['className']);\n\n // Delete all known props, so they don't get added to DOM\n\n\n delete attributes.selectedIndex;\n delete attributes.onSelect;\n delete attributes.focus;\n delete attributes.children;\n delete attributes.forceRenderTabPanel;\n delete attributes.onClick;\n delete attributes.onKeyDown;\n delete attributes.generateIdsFn;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n 'data-tabs': true\n }),\n this.getChildren()\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/Tabs.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 2\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n ** module id = 3\n ** module chunks = 0\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 4\n ** module chunks = 0\n **/","!(function() {\n function jss(blocks) {\n var css = [];\n for (var block in blocks)\n css.push(createStyleBlock(block, blocks[block]));\n injectCSS(css);\n }\n\n function createStyleBlock(selector, rules) {\n return selector + ' {\\n' + parseRules(rules) + '\\n}';\n }\n\n function parseRules(rules) {\n var css = [];\n for (var rule in rules)\n css.push(' '+rule+': '+rules[rule]+';');\n return css.join('\\n');\n }\n\n function injectCSS(css) {\n var style = document.getElementById('jss-styles');\n if (!style) {\n style = document.createElement('style');\n style.setAttribute('id', 'jss-styles');\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(style, head.firstChild);\n }\n var node = document.createTextNode(css.join('\\n\\n'));\n style.appendChild(node);\n }\n\n if (typeof exports === 'object')\n module.exports = jss;\n else\n window.jss = jss;\n\n})();\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/js-stylesheet/jss.js\n ** module id = 5\n ** module chunks = 0\n **/","\"use strict\";\n\n// Get a universally unique identifier\nvar count = 0;\nmodule.exports = function uuid() {\n return \"react-tabs-\" + count++;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/uuid.js\n **/","'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Tab = require('../components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = require('../components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function childrenPropTypes(props, propName) {\n var error = void 0;\n var tabsCount = 0;\n var panelsCount = 0;\n var children = props[propName];\n\n _react2.default.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (child === null) {\n return;\n }\n\n if (child.type === _TabList2.default) {\n _react2.default.Children.forEach(child.props.children, function (c) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/rackt/react-tabs/issues/37\n if (c === null) {\n return;\n }\n\n if (c.type === _Tab2.default) {\n tabsCount++;\n }\n });\n } else if (child.type.displayName === 'TabPanel') {\n panelsCount++;\n } else {\n error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n }\n });\n\n if (tabsCount !== panelsCount) {\n error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n }\n\n return error;\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/childrenPropType.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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\nmodule.exports = _react2.default.createClass({\n displayName: 'Tab',\n\n propTypes: {\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n focus: _react.PropTypes.bool,\n selected: _react.PropTypes.bool,\n disabled: _react.PropTypes.bool,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n panelId: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n focus: false,\n selected: false,\n id: null,\n panelId: null,\n activeTabClassName: 'ReactTabs__Tab--selected',\n disabledTabClassName: 'ReactTabs__Tab--disabled'\n };\n },\n componentDidMount: function componentDidMount() {\n this.checkFocus();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.checkFocus();\n },\n checkFocus: function checkFocus() {\n if (this.props.selected && this.props.focus) {\n (0, _reactDom.findDOMNode)(this).focus();\n }\n },\n render: function render() {\n var _cx;\n\n var _props = this.props;\n var selected = _props.selected;\n var disabled = _props.disabled;\n var panelId = _props.panelId;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var className = _props.className;\n var children = _props.children;\n var id = _props.id;\n\n var attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\n delete attributes.focus;\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\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/** WEBPACK FOOTER **\n ** ./lib/components/Tab.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\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 renderChildren(props) {\n return _react2.default.Children.map(props.children, function (child) {\n // if child is not a tab we don't need to clone it\n // since we don't need to add custom props\n\n if (child.type !== _Tab2.default) {\n return child;\n }\n\n var clonedProps = {\n activeTabClassName: props.activeTabClassName,\n disabledTabClassName: props.disabledTabClassName\n };\n\n return _react2.default.cloneElement(child, clonedProps);\n });\n}\n\nmodule.exports = _react2.default.createClass({\n displayName: 'TabList',\n\n propTypes: {\n className: _react.PropTypes.string,\n activeTabClassName: _react.PropTypes.string,\n disabledTabClassName: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.array])\n },\n\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var activeTabClassName = _props.activeTabClassName;\n var disabledTabClassName = _props.disabledTabClassName;\n var children = _props.children;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabList', className),\n role: 'tablist'\n }),\n renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children })\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabList.js\n **/","'use strict';\n\nmodule.exports = {\n '.react-tabs [role=tablist]': {\n 'border-bottom': '1px solid #aaa',\n margin: '0 0 10px',\n padding: '0'\n },\n\n '.react-tabs [role=tab]': {\n display: 'inline-block',\n border: '1px solid transparent',\n 'border-bottom': 'none',\n bottom: '-1px',\n position: 'relative',\n 'list-style': 'none',\n padding: '6px 12px',\n cursor: 'pointer'\n },\n\n '.react-tabs [role=tab][aria-selected=true]': {\n background: '#fff',\n 'border-color': '#aaa',\n color: 'black',\n 'border-radius': '5px 5px 0 0',\n '-moz-border-radius': '5px 5px 0 0',\n '-webkit-border-radius': '5px 5px 0 0'\n },\n\n '.react-tabs [role=tab][aria-disabled=true]': {\n color: 'GrayText',\n cursor: 'default'\n },\n\n '.react-tabs [role=tab]:focus': {\n 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n 'border-color': 'hsl(208, 99%, 50%)',\n outline: 'none'\n },\n\n '.react-tabs [role=tab]:focus:after': {\n content: '\"\"',\n position: 'absolute',\n height: '5px',\n left: '-4px',\n right: '-4px',\n bottom: '-5px',\n background: '#fff'\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./lib/helpers/styles.js\n **/","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\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\nmodule.exports = _react2.default.createClass({\n displayName: 'TabPanel',\n\n propTypes: {\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object, _react.PropTypes.string]),\n className: _react.PropTypes.string,\n id: _react.PropTypes.string,\n selected: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n tabId: _react.PropTypes.string\n },\n\n contextTypes: {\n forceRenderTabPanel: _react.PropTypes.bool\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selected: false,\n id: null,\n tabId: null\n };\n },\n render: function render() {\n var _props = this.props;\n var className = _props.className;\n var children = _props.children;\n var selected = _props.selected;\n var id = _props.id;\n var tabId = _props.tabId;\n var style = _props.style;\n\n var attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n 'ReactTabs__TabPanel--selected': selected\n }),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId,\n style: _extends({}, style, { display: selected ? null : 'none' })\n }),\n this.context.forceRenderTabPanel || selected ? children : null\n );\n }\n});\n\n\n/** WEBPACK FOOTER **\n ** ./lib/components/TabPanel.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 836ff122ac..def51c3f9b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "react-tabs", + "name": "react-tabs-isomorphic", "version": "0.8.2", - "description": "React tabs component", + "description": "A fork of react tabs, supporting Server side rendering", "main": "lib/main.js", "scripts": { "clean": "rimraf lib", @@ -18,23 +18,24 @@ }, "repository": { "type": "git", - "url": "https://github.com/reactjs/react-tabs.git" + "url": "https://github.com/neeharv/react-tabs.git" }, - "author": "Matt Zabriskie", + "author": "Neehar Venugopal", "license": "MIT", "bugs": { - "url": "https://github.com/reactjs/react-tabs/issues" + "url": "https://github.com/neeharv/react-tabs/issues" }, "files": [ "dist", "lib" ], - "homepage": "https://github.com/reactjs/react-tabs", + "homepage": "https://github.com/neeharv/react-tabs", "keywords": [ "react", "tabs", "a11y", - "react-component" + "react-component", + "isomorphic" ], "peerDependencies": { "react": "^0.14.7 || ^15.0.0", diff --git a/src/components/Tabs.js b/src/components/Tabs.js index a230f35db3..5c9e1f50b7 100644 --- a/src/components/Tabs.js +++ b/src/components/Tabs.js @@ -28,6 +28,7 @@ module.exports = React.createClass({ focus: PropTypes.bool, children: childrenPropType, forceRenderTabPanel: PropTypes.bool, + generateIdsFn: PropTypes.func, }, childContextTypes: { @@ -170,14 +171,15 @@ module.exports = React.createClass({ const state = this.state; const tabIds = this.tabIds = this.tabIds || []; const panelIds = this.panelIds = this.panelIds || []; + const generateIdsFn = this.props.generateIdsFn ? this.props.generateIdsFn : uuid; let diff = this.tabIds.length - this.getTabsCount(); // Add ids if new tabs have been added // Don't bother removing ids, just keep them in case they are added again // This is more efficient, and keeps the uuid counter under control while (diff++ < 0) { - tabIds.push(uuid()); - panelIds.push(uuid()); + tabIds.push(generateIdsFn()); + panelIds.push(generateIdsFn()); } // Map children to dynamically setup refs @@ -369,6 +371,7 @@ module.exports = React.createClass({ delete attributes.forceRenderTabPanel; delete attributes.onClick; delete attributes.onKeyDown; + delete attributes.generateIdsFn; return (
{ expect(tablist.childAt(3).prop('disabled')).toBe(true); }); - it('should set ids correctly', () => { + it('should set ids correctly using default uuid function', () => { const wrapper = mount(createTabs()); const tablist = wrapper.childAt(0); @@ -102,6 +102,22 @@ describe('react-tabs', () => { expect(panel.prop('id')).toBe(tab.prop('panelId')); } }); + + it('should set ids correctly using a id function passed as prop', () => { + let idCounter = 1; + const customGenerateIdFn = () => `custom-id-${idCounter++}`; + const wrapper = mount(createTabs({ generateIdsFn: customGenerateIdFn })); + const tablist = wrapper.childAt(0); + + for (let i = 0, l = wrapper.instance().getTabsCount(); i < l; i++) { + const tab = tablist.childAt(i); + const panel = wrapper.childAt(i + 1); + + expect(tab.prop('id')).toBe(panel.prop('tabId')); + expect(panel.prop('id')).toBe(tab.prop('panelId')); + expect(tab.prop('id')).toMatch(/^custom-id-[0-9]+$/); + } + }); }); describe('interaction', () => {