From 6d43013b9a7c339640ef9b9caf6e1b6e80426af1 Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Thu, 5 Oct 2017 10:44:58 +0200 Subject: [PATCH 1/3] fix(umd): Fix the umd builds --- .babelrc | 11 - .babelrc.js | 17 + .eslintignore | 2 + .eslintrc | 11 +- .gitignore | 1 + dist/react-tabs.js | 1135 ------------------------------------ dist/react-tabs.js.map | 1 - dist/react-tabs.min.js | 2 - dist/react-tabs.min.js.map | 1 - package.json | 36 +- rollup.config.js | 55 ++ webpack.build.js | 81 --- yarn.lock | 1087 ++++++++++++++++++++-------------- 13 files changed, 743 insertions(+), 1697 deletions(-) delete mode 100644 .babelrc create mode 100644 .babelrc.js delete mode 100644 dist/react-tabs.js delete mode 100644 dist/react-tabs.js.map delete mode 100644 dist/react-tabs.min.js delete mode 100644 dist/react-tabs.min.js.map create mode 100644 rollup.config.js delete mode 100644 webpack.build.js diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 2d25899e02..0000000000 --- a/.babelrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - ["env", { "loose": true }], - "react" - ], - "plugins": [ - "transform-object-rest-spread", - "transform-class-properties", - ["transform-react-remove-prop-types", { "mode": "wrap" }] - ] -} diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 0000000000..5830bf0464 --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,17 @@ +'use strict'; + +const target = process.env.BABEL_TARGET; +const modules = target === 'rollup' ? false : 'commonjs'; + +const options = { + presets: [['env', { loose: true, modules }], 'react'], + plugins: ['transform-object-rest-spread', ['transform-class-properties', { loose: true }]], +}; + +if (target === 'rollup') { + options.plugins.push('external-helpers'); +} else { + options.plugins.push(['transform-react-remove-prop-types', { mode: 'wrap' }]); +} + +module.exports = options; diff --git a/.eslintignore b/.eslintignore index 3853accfd9..71774c4e02 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,4 @@ /webpack.* examples +lib +dist diff --git a/.eslintrc b/.eslintrc index 3708a52c71..f8e01d3281 100644 --- a/.eslintrc +++ b/.eslintrc @@ -5,13 +5,14 @@ "browser": true, "node": true }, - "plugins": [ - "prettier" - ], + "plugins": ["prettier"], "rules": { "arrow-parens": "off", "no-plusplus": "off", - "prettier/prettier": ["error", { "singleQuote": true, "printWidth": 100, "trailingComma": "all"}], + "prettier/prettier": [ + "error", + { "singleQuote": true, "printWidth": 100, "trailingComma": "all" } + ], "react/require-default-props": "off", "react/jsx-filename-extension": ["error", { "extensions": [".js"] }], "react/forbid-prop-types": "off", @@ -20,7 +21,7 @@ "import/no-extraneous-dependencies": [ "error", { - "devDependencies": ["**/__tests__/**/*"], + "devDependencies": ["**/__tests__/**/*", "rollup.config.js"], "optionalDependencies": false } ] diff --git a/.gitignore b/.gitignore index 751444f255..8af5cf8e0b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ build/ node_modules/ npm-debug.log lib/ +dist/ diff --git a/dist/react-tabs.js b/dist/react-tabs.js deleted file mode 100644 index bc27872351..0000000000 --- a/dist/react-tabs.js +++ /dev/null @@ -1,1135 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("react"), require("prop-types"), require("classnames")); - else if(typeof define === 'function' && define.amd) - define(["react", "prop-types", "classnames"], factory); - else if(typeof exports === 'object') - exports["ReactTabs"] = factory(require("react"), require("prop-types"), require("classnames")); - else - root["ReactTabs"] = factory(root["React"], root["PropTypes"], root["classNames"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 13); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_0__; - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_1__; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.isTab = isTab; -exports.isTabPanel = isTabPanel; -exports.isTabList = isTabList; -function isTab(el) { - return el.type.tabsRole === 'Tab'; -} - -function isTabPanel(el) { - return el.type.tabsRole === 'TabPanel'; -} - -function isTabList(el) { - return el.type.tabsRole === 'TabList'; -} - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_3__; - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports.deepMap = deepMap; -exports.deepForEach = deepForEach; - -var _react = __webpack_require__(0); - -var _elementTypes = __webpack_require__(2); - -function isTabChild(child) { - return (0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabList)(child) || (0, _elementTypes.isTabPanel)(child); -} - -function deepMap(children, callback) { - return _react.Children.map(children, function (child) { - // null happens when conditionally rendering TabPanel/Tab - // see https://github.com/reactjs/react-tabs/issues/37 - if (child === null) return null; - - if (isTabChild(child)) { - return callback(child); - } - - if (child.props && child.props.children && _typeof(child.props.children) === 'object') { - // Clone the child that has children and map them too - return (0, _react.cloneElement)(child, _extends({}, child.props, { - children: deepMap(child.props.children, callback) - })); - } - - return child; - }); -} - -function deepForEach(children, callback) { - return _react.Children.forEach(children, function (child) { - // null happens when conditionally rendering TabPanel/Tab - // see https://github.com/reactjs/react-tabs/issues/37 - if (child === null) return; - - if ((0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabPanel)(child)) { - callback(child); - } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') { - if ((0, _elementTypes.isTabList)(child)) callback(child); - deepForEach(child.props.children, callback); - } - }); -} - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.default = uuid; -exports.reset = reset; -// Get a universally unique identifier -var count = 0; -function uuid() { - return "react-tabs-" + count++; -} - -function reset() { - count = 0; -} - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.getTabsCount = getTabsCount; -exports.getPanelsCount = getPanelsCount; - -var _childrenDeepMap = __webpack_require__(4); - -var _elementTypes = __webpack_require__(2); - -function getTabsCount(children) { - var tabCount = 0; - (0, _childrenDeepMap.deepForEach)(children, function (child) { - if ((0, _elementTypes.isTab)(child)) tabCount++; - }); - - return tabCount; -} - -function getPanelsCount(children) { - var panelCount = 0; - (0, _childrenDeepMap.deepForEach)(children, function (child) { - if ((0, _elementTypes.isTabPanel)(child)) panelCount++; - }); - - return panelCount; -} - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -exports.childrenPropType = childrenPropType; -exports.onSelectPropType = onSelectPropType; -exports.selectedIndexPropType = selectedIndexPropType; - -var _childrenDeepMap = __webpack_require__(4); - -var _elementTypes = __webpack_require__(2); - -function childrenPropType(props, propName, componentName) { - var error = void 0; - var tabsCount = 0; - var panelsCount = 0; - var tabListFound = false; - var listTabs = []; - var children = props[propName]; - - (0, _childrenDeepMap.deepForEach)(children, function (child) { - if ((0, _elementTypes.isTabList)(child)) { - if (child.props && child.props.children && _typeof(child.props.children) === 'object') { - (0, _childrenDeepMap.deepForEach)(child.props.children, function (listChild) { - return listTabs.push(listChild); - }); - } - - if (tabListFound) { - error = new Error("Found multiple 'TabList' components inside 'Tabs'. Only one is allowed."); - } - tabListFound = true; - } - if ((0, _elementTypes.isTab)(child)) { - if (!tabListFound || listTabs.indexOf(child) === -1) { - error = new Error("Found a 'Tab' component outside of the 'TabList' component. 'Tab' components have to be inside the 'TabList' component."); - } - tabsCount++; - } else if ((0, _elementTypes.isTabPanel)(child)) { - panelsCount++; - } - }); - - if (!error && tabsCount !== panelsCount) { - error = new Error('There should be an equal number of \'Tab\' and \'TabPanel\' in `' + componentName + '`.' + ('Received ' + tabsCount + ' \'Tab\' and ' + panelsCount + ' \'TabPanel\'.')); - } - - return error; -} - -function onSelectPropType(props, propName, componentName, location, propFullName) { - var prop = props[propName]; - var name = propFullName || propName; - var error = null; - - if (prop && typeof prop !== 'function') { - error = new Error('Invalid ' + location + ' `' + name + '` of type `' + (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) + '` supplied to `' + componentName + '`, expected `function`.'); - } else if (props.selectedIndex != null && prop == null) { - error = new Error('The ' + location + ' `' + name + '` is marked as required in `' + componentName + '`, but its value is `undefined` or `null`.\n`onSelect` is required when `selectedIndex` is also set. Not doing so will make the tabs not do anything, as `selectedIndex` indicates that you want to handle the selected tab yourself.\nIf you only want to set the inital tab replace `selectedIndex` with `defaultIndex`.'); - } - - return error; -} - -function selectedIndexPropType(props, propName, componentName, location, propFullName) { - var prop = props[propName]; - var name = propFullName || propName; - var error = null; - - if (prop != null && typeof prop !== 'number') { - error = new Error('Invalid ' + location + ' `' + name + '` of type `' + (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) + '` supplied to `' + componentName + '`, expected `number`.'); - } else if (props.defaultIndex != null && prop != null) { - return new Error('The ' + location + ' `' + name + '` cannot be used together with `defaultIndex` in `' + componentName + '`.\nEither remove `' + name + '` to let `' + componentName + '` handle the selected tab internally or remove `defaultIndex` to handle it yourself.'); - } - - return error; -} - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _propTypes = __webpack_require__(1); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(0); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__(3); - -var _classnames2 = _interopRequireDefault(_classnames); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var DEFAULT_CLASS = 'react-tabs__tab'; - -var Tab = function (_Component) { - _inherits(Tab, _Component); - - function Tab() { - _classCallCheck(this, Tab); - - return _possibleConstructorReturn(this, _Component.apply(this, arguments)); - } - - Tab.prototype.componentDidMount = function componentDidMount() { - this.checkFocus(); - }; - - Tab.prototype.componentDidUpdate = function componentDidUpdate() { - this.checkFocus(); - }; - - Tab.prototype.checkFocus = function checkFocus() { - if (this.props.selected && this.props.focus) { - this.node.focus(); - } - }; - - Tab.prototype.render = function render() { - var _cx, - _this2 = this; - - var _props = this.props, - children = _props.children, - className = _props.className, - disabled = _props.disabled, - disabledClassName = _props.disabledClassName, - focus = _props.focus, - id = _props.id, - panelId = _props.panelId, - selected = _props.selected, - selectedClassName = _props.selectedClassName, - tabRef = _props.tabRef, - attributes = _objectWithoutProperties(_props, ['children', 'className', 'disabled', 'disabledClassName', 'focus', 'id', 'panelId', 'selected', 'selectedClassName', 'tabRef']); - - return _react2.default.createElement( - 'li', - _extends({}, attributes, { - className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)), - ref: function ref(node) { - _this2.node = node; - if (tabRef) tabRef(node); - }, - role: 'tab', - id: id, - 'aria-selected': selected ? 'true' : 'false', - 'aria-disabled': disabled ? 'true' : 'false', - 'aria-controls': panelId, - tabIndex: selected ? '0' : null - }), - children - ); - }; - - return Tab; -}(_react.Component); - -Tab.defaultProps = { - className: DEFAULT_CLASS, - disabledClassName: DEFAULT_CLASS + '--disabled', - focus: false, - id: null, - panelId: null, - selected: false, - selectedClassName: DEFAULT_CLASS + '--selected' -}; -exports.default = Tab; -Tab.propTypes = true ? { - children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string]), - className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]), - disabled: _propTypes2.default.bool, - disabledClassName: _propTypes2.default.string, - focus: _propTypes2.default.bool, // private - id: _propTypes2.default.string, // private - panelId: _propTypes2.default.string, // private - selected: _propTypes2.default.bool, // private - selectedClassName: _propTypes2.default.string, - tabRef: _propTypes2.default.func // private -} : {}; - - -Tab.tabsRole = 'Tab'; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _propTypes = __webpack_require__(1); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(0); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__(3); - -var _classnames2 = _interopRequireDefault(_classnames); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var TabList = function (_Component) { - _inherits(TabList, _Component); - - function TabList() { - _classCallCheck(this, TabList); - - return _possibleConstructorReturn(this, _Component.apply(this, arguments)); - } - - TabList.prototype.render = function render() { - var _props = this.props, - children = _props.children, - className = _props.className, - attributes = _objectWithoutProperties(_props, ['children', 'className']); - - return _react2.default.createElement( - 'ul', - _extends({}, attributes, { className: (0, _classnames2.default)(className), role: 'tablist' }), - children - ); - }; - - return TabList; -}(_react.Component); - -TabList.defaultProps = { - className: 'react-tabs__tab-list' -}; -exports.default = TabList; -TabList.propTypes = true ? { - children: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.array]), - className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]) -} : {}; - - -TabList.tabsRole = 'TabList'; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _propTypes = __webpack_require__(1); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(0); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__(3); - -var _classnames2 = _interopRequireDefault(_classnames); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var DEFAULT_CLASS = 'react-tabs__tab-panel'; - -var TabPanel = function (_Component) { - _inherits(TabPanel, _Component); - - function TabPanel() { - _classCallCheck(this, TabPanel); - - return _possibleConstructorReturn(this, _Component.apply(this, arguments)); - } - - TabPanel.prototype.render = function render() { - var _cx; - - var _props = this.props, - children = _props.children, - className = _props.className, - forceRender = _props.forceRender, - id = _props.id, - selected = _props.selected, - selectedClassName = _props.selectedClassName, - tabId = _props.tabId, - attributes = _objectWithoutProperties(_props, ['children', 'className', 'forceRender', 'id', 'selected', 'selectedClassName', 'tabId']); - - return _react2.default.createElement( - 'div', - _extends({}, attributes, { - className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)), - role: 'tabpanel', - id: id, - 'aria-labelledby': tabId - }), - forceRender || selected ? children : null - ); - }; - - return TabPanel; -}(_react.Component); - -TabPanel.defaultProps = { - className: DEFAULT_CLASS, - forceRender: false, - selectedClassName: DEFAULT_CLASS + '--selected', - style: {} -}; -exports.default = TabPanel; -TabPanel.propTypes = true ? { - children: _propTypes2.default.node, - className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]), - forceRender: _propTypes2.default.bool, - id: _propTypes2.default.string, // private - selected: _propTypes2.default.bool, // private - selectedClassName: _propTypes2.default.string, - tabId: _propTypes2.default.string // private -} : {}; - - -TabPanel.tabsRole = 'TabPanel'; - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _propTypes = __webpack_require__(1); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(0); - -var _react2 = _interopRequireDefault(_react); - -var _propTypes3 = __webpack_require__(7); - -var _UncontrolledTabs = __webpack_require__(12); - -var _UncontrolledTabs2 = _interopRequireDefault(_UncontrolledTabs); - -var _count = __webpack_require__(6); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var Tabs = function (_Component) { - _inherits(Tabs, _Component); - - function Tabs(props) { - _classCallCheck(this, Tabs); - - var _this = _possibleConstructorReturn(this, _Component.call(this, props)); - - _this.handleSelected = function (index, last, event) { - // Call change event handler - if (typeof _this.props.onSelect === 'function') { - // Check if the change event handler cancels the tab change - if (_this.props.onSelect(index, last, event) === false) return; - } - - var state = { - // Set focus if the change was triggered from the keyboard - focus: event.type === 'keydown' - }; - - if (Tabs.inUncontrolledMode(_this.props)) { - // Update selected index - state.selectedIndex = index; - } - - _this.setState(state); - }; - - _this.state = Tabs.copyPropsToState(_this.props, {}, _this.props.defaultFocus); - return _this; - } - - Tabs.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { - if ("development" !== 'production' && Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)) { - throw new Error('Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.'); - } - // Use a transactional update to prevent race conditions - // when reading the state in copyPropsToState - // See https://github.com/reactjs/react-tabs/issues/51 - this.setState(function (state) { - return Tabs.copyPropsToState(newProps, state); - }); - }; - - Tabs.inUncontrolledMode = function inUncontrolledMode(props) { - return props.selectedIndex === null; - }; - - // preserve the existing selectedIndex from state. - // If the state has not selectedIndex, default to the defaultIndex or 0 - Tabs.copyPropsToState = function copyPropsToState(props, state) { - var focus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var newState = { - focus: focus - }; - - if (Tabs.inUncontrolledMode(props)) { - var maxTabIndex = (0, _count.getTabsCount)(props.children) - 1; - var selectedIndex = null; - - if (state.selectedIndex != null) { - selectedIndex = Math.min(state.selectedIndex, maxTabIndex); - } else { - selectedIndex = props.defaultIndex || 0; - } - newState.selectedIndex = selectedIndex; - } - - return newState; - }; - - Tabs.prototype.render = function render() { - var _props = this.props, - children = _props.children, - defaultIndex = _props.defaultIndex, - defaultFocus = _props.defaultFocus, - props = _objectWithoutProperties(_props, ['children', 'defaultIndex', 'defaultFocus']); - - props.focus = this.state.focus; - props.onSelect = this.handleSelected; - - if (this.state.selectedIndex != null) { - props.selectedIndex = this.state.selectedIndex; - } - - return _react2.default.createElement( - _UncontrolledTabs2.default, - props, - children - ); - }; - - return Tabs; -}(_react.Component); - -Tabs.defaultProps = { - defaultFocus: false, - forceRenderTabPanel: false, - selectedIndex: null, - defaultIndex: null -}; -exports.default = Tabs; -Tabs.propTypes = true ? { - children: _propTypes3.childrenPropType, - className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]), - defaultFocus: _propTypes2.default.bool, - defaultIndex: _propTypes2.default.number, - disabledTabClassName: _propTypes2.default.string, - forceRenderTabPanel: _propTypes2.default.bool, - onSelect: _propTypes3.onSelectPropType, - selectedIndex: _propTypes3.selectedIndexPropType, - selectedTabClassName: _propTypes2.default.string, - selectedTabPanelClassName: _propTypes2.default.string -} : {}; - - -Tabs.tabsRole = 'Tabs'; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _propTypes = __webpack_require__(1); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(0); - -var _react2 = _interopRequireDefault(_react); - -var _classnames = __webpack_require__(3); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _uuid = __webpack_require__(5); - -var _uuid2 = _interopRequireDefault(_uuid); - -var _propTypes3 = __webpack_require__(7); - -var _count = __webpack_require__(6); - -var _childrenDeepMap = __webpack_require__(4); - -var _elementTypes = __webpack_require__(2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Determine if a node from event.target is a Tab element -function isTabNode(node) { - return node.nodeName === 'LI' && node.getAttribute('role') === 'tab'; -} - -// Determine if a tab node is disabled -function isTabDisabled(node) { - return node.getAttribute('aria-disabled') === 'true'; -} - -var canUseActiveElement = void 0; -try { - canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement); -} catch (e) { - // Work around for IE bug when accessing document.activeElement in an iframe - // Refer to the following resources: - // http://stackoverflow.com/a/10982960/369687 - // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599 - canUseActiveElement = false; -} - -var UncontrolledTabs = function (_Component) { - _inherits(UncontrolledTabs, _Component); - - function UncontrolledTabs() { - var _temp, _this, _ret; - - _classCallCheck(this, UncontrolledTabs); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.tabNodes = [], _this.handleKeyDown = function (e) { - if (_this.isTabFromContainer(e.target)) { - var index = _this.props.selectedIndex; - var preventDefault = false; - - if (e.keyCode === 37 || e.keyCode === 38) { - // Select next tab to the left - index = _this.getPrevTab(index); - preventDefault = true; - } else if (e.keyCode === 39 || e.keyCode === 40) { - // Select next tab to the right - index = _this.getNextTab(index); - preventDefault = true; - } - - // This prevents scrollbars from moving around - if (preventDefault) { - e.preventDefault(); - } - - _this.setSelected(index, e); - } - }, _this.handleClick = function (e) { - var node = e.target; - // eslint-disable-next-line no-cond-assign - do { - if (_this.isTabFromContainer(node)) { - if (isTabDisabled(node)) { - return; - } - - var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node); - _this.setSelected(index, e); - return; - } - } while ((node = node.parentNode) !== null); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - UncontrolledTabs.prototype.setSelected = function setSelected(index, event) { - // Check index boundary - if (index < 0 || index >= this.getTabsCount()) return; - - // Call change event handler - this.props.onSelect(index, this.props.selectedIndex, event); - }; - - UncontrolledTabs.prototype.getNextTab = function getNextTab(index) { - var count = this.getTabsCount(); - - // Look for non-disabled tab from index to the last tab on the right - for (var i = index + 1; i < count; i++) { - if (!isTabDisabled(this.getTab(i))) { - return i; - } - } - - // If no tab found, continue searching from first on left to index - for (var _i = 0; _i < index; _i++) { - if (!isTabDisabled(this.getTab(_i))) { - return _i; - } - } - - // No tabs are disabled, return index - return index; - }; - - UncontrolledTabs.prototype.getPrevTab = function getPrevTab(index) { - var i = index; - - // Look for non-disabled tab from index to first tab on the left - while (i--) { - if (!isTabDisabled(this.getTab(i))) { - return i; - } - } - - // If no tab found, continue searching from last tab on right to index - i = this.getTabsCount(); - while (i-- > index) { - if (!isTabDisabled(this.getTab(i))) { - return i; - } - } - - // No tabs are disabled, return index - return index; - }; - - UncontrolledTabs.prototype.getTabsCount = function getTabsCount() { - return (0, _count.getTabsCount)(this.props.children); - }; - - UncontrolledTabs.prototype.getPanelsCount = function getPanelsCount() { - return (0, _count.getPanelsCount)(this.props.children); - }; - - UncontrolledTabs.prototype.getTab = function getTab(index) { - return this.tabNodes['tabs-' + index]; - }; - - UncontrolledTabs.prototype.getChildren = function getChildren() { - var _this2 = this; - - var index = 0; - var _props = this.props, - children = _props.children, - disabledTabClassName = _props.disabledTabClassName, - focus = _props.focus, - forceRenderTabPanel = _props.forceRenderTabPanel, - selectedIndex = _props.selectedIndex, - selectedTabClassName = _props.selectedTabClassName, - selectedTabPanelClassName = _props.selectedTabPanelClassName; - - - this.tabIds = this.tabIds || []; - this.panelIds = this.panelIds || []; - 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) { - this.tabIds.push((0, _uuid2.default)()); - this.panelIds.push((0, _uuid2.default)()); - } - - // Map children to dynamically setup refs - return (0, _childrenDeepMap.deepMap)(children, function (child) { - var result = child; - - // Clone TabList and Tab components to have refs - if ((0, _elementTypes.isTabList)(child)) { - var listIndex = 0; - - // Figure out if the current focus in the DOM is set on a Tab - // If it is we should keep the focus on the next selected tab - var wasTabFocused = false; - - if (canUseActiveElement) { - wasTabFocused = _react2.default.Children.toArray(child.props.children).filter(_elementTypes.isTab).some(function (tab, i) { - return document.activeElement === _this2.getTab(i); - }); - } - - result = (0, _react.cloneElement)(child, { - children: (0, _childrenDeepMap.deepMap)(child.props.children, function (tab) { - var key = 'tabs-' + listIndex; - var selected = selectedIndex === listIndex; - - var props = { - tabRef: function tabRef(node) { - _this2.tabNodes[key] = node; - }, - id: _this2.tabIds[listIndex], - panelId: _this2.panelIds[listIndex], - selected: selected, - focus: selected && (focus || wasTabFocused) - }; - - if (selectedTabClassName) props.selectedClassName = selectedTabClassName; - if (disabledTabClassName) props.disabledClassName = disabledTabClassName; - - listIndex++; - - return (0, _react.cloneElement)(tab, props); - }) - }); - } else if ((0, _elementTypes.isTabPanel)(child)) { - var props = { - id: _this2.panelIds[index], - tabId: _this2.tabIds[index], - selected: selectedIndex === index - }; - - if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel; - if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName; - - index++; - - result = (0, _react.cloneElement)(child, props); - } - - return result; - }); - }; - - /** - * Determine if a node from event.target is a Tab element for the current Tabs container. - * If the clicked element is not a Tab, it returns false. - * If it finds another Tabs container between the Tab and `this`, it returns false. - */ - UncontrolledTabs.prototype.isTabFromContainer = function isTabFromContainer(node) { - // return immediately if the clicked element is not a Tab. - if (!isTabNode(node)) { - return false; - } - - // Check if the first occurrence of a Tabs container is `this` one. - var nodeAncestor = node.parentElement; - do { - if (nodeAncestor === this.node) return true;else if (nodeAncestor.getAttribute('data-tabs')) break; - - nodeAncestor = nodeAncestor.parentElement; - } while (nodeAncestor); - - return false; - }; - - UncontrolledTabs.prototype.render = function render() { - var _this3 = this; - - // Delete all known props, so they don't get added to DOM - var _props2 = this.props, - children = _props2.children, - className = _props2.className, - disabledTabClassName = _props2.disabledTabClassName, - focus = _props2.focus, - forceRenderTabPanel = _props2.forceRenderTabPanel, - onSelect = _props2.onSelect, - selectedIndex = _props2.selectedIndex, - selectedTabClassName = _props2.selectedTabClassName, - selectedTabPanelClassName = _props2.selectedTabPanelClassName, - attributes = _objectWithoutProperties(_props2, ['children', 'className', 'disabledTabClassName', 'focus', 'forceRenderTabPanel', 'onSelect', 'selectedIndex', 'selectedTabClassName', 'selectedTabPanelClassName']); - - return _react2.default.createElement( - 'div', - _extends({}, attributes, { - className: (0, _classnames2.default)(className), - onClick: this.handleClick, - onKeyDown: this.handleKeyDown, - ref: function ref(node) { - _this3.node = node; - }, - 'data-tabs': true - }), - this.getChildren() - ); - }; - - return UncontrolledTabs; -}(_react.Component); - -UncontrolledTabs.defaultProps = { - className: 'react-tabs', - focus: false -}; -exports.default = UncontrolledTabs; -UncontrolledTabs.propTypes = true ? { - children: _propTypes3.childrenPropType, - className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.object]), - disabledTabClassName: _propTypes2.default.string, - focus: _propTypes2.default.bool, - forceRenderTabPanel: _propTypes2.default.bool, - onSelect: _propTypes2.default.func.isRequired, - selectedIndex: _propTypes2.default.number.isRequired, - selectedTabClassName: _propTypes2.default.string, - selectedTabPanelClassName: _propTypes2.default.string -} : {}; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; -exports.resetIdCounter = exports.Tabs = exports.TabPanel = exports.TabList = exports.Tab = undefined; - -var _Tabs = __webpack_require__(11); - -var _Tabs2 = _interopRequireDefault(_Tabs); - -var _TabList = __webpack_require__(9); - -var _TabList2 = _interopRequireDefault(_TabList); - -var _Tab = __webpack_require__(8); - -var _Tab2 = _interopRequireDefault(_Tab); - -var _TabPanel = __webpack_require__(10); - -var _TabPanel2 = _interopRequireDefault(_TabPanel); - -var _uuid = __webpack_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.Tab = _Tab2.default; -exports.TabList = _TabList2.default; -exports.TabPanel = _TabPanel2.default; -exports.Tabs = _Tabs2.default; -exports.resetIdCounter = _uuid.reset; - -/***/ }) -/******/ ]); -}); -//# sourceMappingURL=react-tabs.js.map \ No newline at end of file diff --git a/dist/react-tabs.js.map b/dist/react-tabs.js.map deleted file mode 100644 index 7d575e3f93..0000000000 --- a/dist/react-tabs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 923b19c634ad4d40a9b7","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}","webpack:///./src/helpers/elementTypes.js","webpack:///external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}","webpack:///./src/helpers/childrenDeepMap.js","webpack:///./src/helpers/uuid.js","webpack:///./src/helpers/count.js","webpack:///./src/helpers/propTypes.js","webpack:///./src/components/Tab.js","webpack:///./src/components/TabList.js","webpack:///./src/components/TabPanel.js","webpack:///./src/components/Tabs.js","webpack:///./src/components/UncontrolledTabs.js","webpack:///./src/index.js"],"names":["isTab","isTabPanel","isTabList","el","type","tabsRole","deepMap","deepForEach","isTabChild","child","children","callback","map","props","forEach","uuid","reset","count","getTabsCount","getPanelsCount","tabCount","panelCount","childrenPropType","onSelectPropType","selectedIndexPropType","propName","componentName","error","tabsCount","panelsCount","tabListFound","listTabs","push","listChild","Error","indexOf","location","propFullName","prop","name","selectedIndex","defaultIndex","DEFAULT_CLASS","Tab","componentDidMount","checkFocus","componentDidUpdate","selected","focus","node","render","className","disabled","disabledClassName","id","panelId","selectedClassName","tabRef","attributes","defaultProps","propTypes","oneOfType","array","object","string","bool","func","TabList","TabPanel","forceRender","tabId","style","Tabs","handleSelected","index","last","event","onSelect","state","inUncontrolledMode","setState","copyPropsToState","defaultFocus","componentWillReceiveProps","newProps","newState","maxTabIndex","Math","min","forceRenderTabPanel","number","disabledTabClassName","selectedTabClassName","selectedTabPanelClassName","isTabNode","nodeName","getAttribute","isTabDisabled","canUseActiveElement","window","document","activeElement","e","UncontrolledTabs","tabNodes","handleKeyDown","isTabFromContainer","target","preventDefault","keyCode","getPrevTab","getNextTab","setSelected","handleClick","slice","call","parentNode","filter","i","getTab","getChildren","tabIds","panelIds","diff","length","result","listIndex","wasTabFocused","Children","toArray","some","tab","key","nodeAncestor","parentElement","isRequired","resetIdCounter"],"mappings":"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","file":"react-tabs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"prop-types\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"prop-types\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"prop-types\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"PropTypes\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 923b19c634ad4d40a9b7","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}\n// module id = 1\n// module chunks = 0","export function isTab(el) {\n return el.type.tabsRole === 'Tab';\n}\n\nexport function isTabPanel(el) {\n return el.type.tabsRole === 'TabPanel';\n}\n\nexport function isTabList(el) {\n return el.type.tabsRole === 'TabList';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/elementTypes.js","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}\n// module id = 3\n// module chunks = 0","import { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from '../helpers/elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, {\n ...child.props,\n children: deepMap(child.props.children, callback),\n });\n }\n\n return child;\n });\n}\n\nexport function deepForEach(children, callback) {\n return Children.forEach(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/childrenDeepMap.js","// Get a universally unique identifier\nlet count = 0;\nexport default function uuid() {\n return `react-tabs-${count++}`;\n}\n\nexport function reset() {\n count = 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/uuid.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\n\nexport function getTabsCount(children) {\n let tabCount = 0;\n deepForEach(children, child => {\n if (isTab(child)) tabCount++;\n });\n\n return tabCount;\n}\n\nexport function getPanelsCount(children) {\n let panelCount = 0;\n deepForEach(children, child => {\n if (isTabPanel(child)) panelCount++;\n });\n\n return panelCount;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/count.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport { isTab, isTabList, isTabPanel } from '../helpers/elementTypes';\n\nexport function childrenPropType(props, propName, componentName) {\n let error;\n let tabsCount = 0;\n let panelsCount = 0;\n let tabListFound = false;\n const listTabs = [];\n const children = props[propName];\n\n deepForEach(children, child => {\n if (isTabList(child)) {\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n deepForEach(child.props.children, listChild => listTabs.push(listChild));\n }\n\n if (tabListFound) {\n error = new Error(\n \"Found multiple 'TabList' components inside 'Tabs'. Only one is allowed.\",\n );\n }\n tabListFound = true;\n }\n if (isTab(child)) {\n if (!tabListFound || listTabs.indexOf(child) === -1) {\n error = new Error(\n \"Found a 'Tab' component outside of the 'TabList' component. 'Tab' components have to be inside the 'TabList' component.\",\n );\n }\n tabsCount++;\n } else if (isTabPanel(child)) {\n panelsCount++;\n }\n });\n\n if (!error && tabsCount !== panelsCount) {\n error = new Error(\n `There should be an equal number of 'Tab' and 'TabPanel' in \\`${componentName}\\`.` +\n `Received ${tabsCount} 'Tab' and ${panelsCount} 'TabPanel'.`,\n );\n }\n\n return error;\n}\n\nexport function onSelectPropType(props, propName, componentName, location, propFullName) {\n const prop = props[propName];\n const name = propFullName || propName;\n let error = null;\n\n if (prop && typeof prop !== 'function') {\n error = new Error(\n `Invalid ${location} \\`${name}\\` of type \\`${typeof prop}\\` supplied to \\`${componentName}\\`, expected \\`function\\`.`,\n );\n } else if (props.selectedIndex != null && prop == null) {\n error = new Error(\n `The ${location} \\`${name}\\` is marked as required in \\`${componentName}\\`, but its value is \\`undefined\\` or \\`null\\`.\n\\`onSelect\\` is required when \\`selectedIndex\\` is also set. Not doing so will make the tabs not do anything, as \\`selectedIndex\\` indicates that you want to handle the selected tab yourself.\nIf you only want to set the inital tab replace \\`selectedIndex\\` with \\`defaultIndex\\`.`,\n );\n }\n\n return error;\n}\n\nexport function selectedIndexPropType(props, propName, componentName, location, propFullName) {\n const prop = props[propName];\n const name = propFullName || propName;\n let error = null;\n\n if (prop != null && typeof prop !== 'number') {\n error = new Error(\n `Invalid ${location} \\`${name}\\` of type \\`${typeof prop}\\` supplied to \\`${componentName}\\`, expected \\`number\\`.`,\n );\n } else if (props.defaultIndex != null && prop != null) {\n return new Error(\n `The ${location} \\`${name}\\` cannot be used together with \\`defaultIndex\\` in \\`${componentName}\\`.\nEither remove \\`${name}\\` to let \\`${componentName}\\` handle the selected tab internally or remove \\`defaultIndex\\` to handle it yourself.`,\n );\n }\n\n return error;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/propTypes.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab';\n\nexport default class Tab extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: `${DEFAULT_CLASS}--disabled`,\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func, // private\n };\n\n componentDidMount() {\n this.checkFocus();\n }\n\n componentDidUpdate() {\n this.checkFocus();\n }\n\n checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n }\n\n render() {\n const {\n children,\n className,\n disabled,\n disabledClassName,\n focus, // unused\n id,\n panelId,\n selected,\n selectedClassName,\n tabRef,\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n if (tabRef) tabRef(node);\n }}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={panelId}\n tabIndex={selected ? '0' : null}\n >\n {children}\n \n );\n }\n}\n\nTab.tabsRole = 'Tab';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nexport default class TabList extends Component {\n static defaultProps = {\n className: 'react-tabs__tab-list',\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n };\n\n render() {\n const { children, className, ...attributes } = this.props;\n\n return (\n \n );\n }\n}\n\nTabList.tabsRole = 'TabList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabList.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nexport default class TabPanel extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n style: {},\n };\n\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string, // private\n };\n\n render() {\n const {\n children,\n className,\n forceRender,\n id,\n selected,\n selectedClassName,\n tabId,\n ...attributes\n } = this.props;\n\n return (\n \n {forceRender || selected ? children : null}\n \n );\n }\n}\n\nTabPanel.tabsRole = 'TabPanel';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabPanel.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\n\nexport default class Tabs extends Component {\n static defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = Tabs.copyPropsToState(this.props, {}, this.props.defaultFocus);\n }\n\n componentWillReceiveProps(newProps) {\n if (\n process.env.NODE_ENV !== 'production' &&\n Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)\n ) {\n throw new Error(\n `Switching between controlled mode (by using \\`selectedIndex\\`) and uncontrolled mode is not supported in \\`Tabs\\`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.`,\n );\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(state => Tabs.copyPropsToState(newProps, state));\n }\n\n static inUncontrolledMode(props) {\n return props.selectedIndex === null;\n }\n\n handleSelected = (index, last, event) => {\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (this.props.onSelect(index, last, event) === false) return;\n }\n\n const state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown',\n };\n\n if (Tabs.inUncontrolledMode(this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n this.setState(state);\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n static copyPropsToState(props, state, focus = false) {\n const newState = {\n focus,\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n const maxTabIndex = getTabsCount(props.children) - 1;\n let selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n }\n\n render() {\n const { children, defaultIndex, defaultFocus, ...props } = this.props;\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return {children};\n }\n}\n\nTabs.tabsRole = 'Tabs';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tabs.js","import PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount, getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nlet canUseActiveElement;\ntry {\n canUseActiveElement = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.activeElement\n );\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\nexport default class UncontrolledTabs extends Component {\n static defaultProps = {\n className: 'react-tabs',\n focus: false,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n tabNodes = [];\n\n setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n }\n\n getNextTab(index) {\n const count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (let i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (let i = 0; i < index; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getPrevTab(index) {\n let i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getTabsCount() {\n return getTabsCount(this.props.children);\n }\n\n getPanelsCount() {\n return getPanelsCount(this.props.children);\n }\n\n getTab(index) {\n return this.tabNodes[`tabs-${index}`];\n }\n\n getChildren() {\n let index = 0;\n const {\n children,\n disabledTabClassName,\n focus,\n forceRenderTabPanel,\n selectedIndex,\n selectedTabClassName,\n selectedTabPanelClassName,\n } = this.props;\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n let diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n }\n\n // Map children to dynamically setup refs\n return deepMap(children, child => {\n let result = child;\n\n // Clone TabList and Tab components to have refs\n if (isTabList(child)) {\n let listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n let wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children\n .toArray(child.props.children)\n .filter(isTab)\n .some((tab, i) => document.activeElement === this.getTab(i));\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, tab => {\n const key = `tabs-${listIndex}`;\n const selected = selectedIndex === listIndex;\n\n const props = {\n tabRef: node => {\n this.tabNodes[key] = node;\n },\n id: this.tabIds[listIndex],\n panelId: this.panelIds[listIndex],\n selected,\n focus: selected && (focus || wasTabFocused),\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return cloneElement(tab, props);\n }),\n });\n } else if (isTabPanel(child)) {\n const props = {\n id: this.panelIds[index],\n tabId: this.tabIds[index],\n selected: selectedIndex === index,\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = cloneElement(child, props);\n }\n\n return result;\n });\n }\n\n handleKeyDown = e => {\n if (this.isTabFromContainer(e.target)) {\n let index = this.props.selectedIndex;\n let preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, e);\n }\n };\n\n handleClick = e => {\n let node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n const index = [].slice\n .call(node.parentNode.children)\n .filter(isTabNode)\n .indexOf(node);\n this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n let nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;\n else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n render() {\n // Delete all known props, so they don't get added to DOM\n const {\n children, // unused\n className,\n disabledTabClassName, // unused\n focus, // unused\n forceRenderTabPanel, // unused\n onSelect, // unused\n selectedIndex, // unused\n selectedTabClassName, // unused\n selectedTabPanelClassName, // unused\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n }}\n data-tabs\n >\n {this.getChildren()}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/UncontrolledTabs.js","import Tabs from './components/Tabs';\nimport TabList from './components/TabList';\nimport Tab from './components/Tab';\nimport TabPanel from './components/TabPanel';\nimport { reset as resetIdCounter } from './helpers/uuid';\n\nexport { Tab, TabList, TabPanel, Tabs, resetIdCounter };\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-tabs.min.js b/dist/react-tabs.min.js deleted file mode 100644 index dce8e4f2aa..0000000000 --- a/dist/react-tabs.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("classnames")):"function"==typeof define&&define.amd?define(["react","classnames"],t):"object"==typeof exports?exports.ReactTabs=t(require("react"),require("classnames")):e.ReactTabs=t(e.React,e.classNames)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=11)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";function r(e){return"Tab"===e.type.tabsRole}function o(e){return"TabPanel"===e.type.tabsRole}function a(e){return"TabList"===e.type.tabsRole}t.__esModule=!0,t.isTab=r,t.isTabPanel=o,t.isTabList=a},function(e,t,n){"use strict";function r(){return"react-tabs-"+a++}function o(){a=0}t.__esModule=!0,t.default=r,t.reset=o;var a=0},function(e,t,n){"use strict";function r(e){return(0,c.isTab)(e)||(0,c.isTabList)(e)||(0,c.isTabPanel)(e)}function o(e,t){return i.Children.map(e,function(e){return null===e?null:r(e)?t(e):e.props&&e.props.children&&"object"===l(e.props.children)?(0,i.cloneElement)(e,s({},e.props,{children:o(e.props.children,t)})):e})}function a(e,t){return i.Children.forEach(e,function(e){null!==e&&((0,c.isTab)(e)||(0,c.isTabPanel)(e)?t(e):e.props&&e.props.children&&"object"===l(e.props.children)&&((0,c.isTabList)(e)&&t(e),a(e.props.children,t)))})}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var i=n(0),c=r(i),u=n(10),f=r(u),p=n(5),d=function(e){function t(n){a(this,t);var r=s(this,e.call(this,n));return r.handleSelected=function(e,n,o){if("function"!=typeof r.props.onSelect||!1!==r.props.onSelect(e,n,o)){var a={focus:"keydown"===o.type};t.inUncontrolledMode(r.props)&&(a.selectedIndex=e),r.setState(a)}},r.state=t.copyPropsToState(r.props,{},r.props.defaultFocus),r}return l(t,e),t.prototype.componentWillReceiveProps=function(e){this.setState(function(n){return t.copyPropsToState(e,n)})},t.inUncontrolledMode=function(e){return null===e.selectedIndex},t.copyPropsToState=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o={focus:r};if(t.inUncontrolledMode(e)){var a=(0,p.getTabsCount)(e.children)-1,s=null;s=null!=n.selectedIndex?Math.min(n.selectedIndex,a):e.defaultIndex||0,o.selectedIndex=s}return o},t.prototype.render=function(){var e=this.props,t=e.children,n=(e.defaultIndex,e.defaultFocus,o(e,["children","defaultIndex","defaultFocus"]));return n.focus=this.state.focus,n.onSelect=this.handleSelected,null!=this.state.selectedIndex&&(n.selectedIndex=this.state.selectedIndex),c.default.createElement(f.default,n,t)},t}(i.Component);d.defaultProps={defaultFocus:!1,forceRenderTabPanel:!1,selectedIndex:null,defaultIndex:null},t.default=d,d.propTypes={},d.tabsRole="Tabs"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return"LI"===e.nodeName&&"tab"===e.getAttribute("role")}function c(e){return"true"===e.getAttribute("aria-disabled")}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t=this.getTabsCount()||this.props.onSelect(e,this.props.selectedIndex,t)},t.prototype.getNextTab=function(e){for(var t=this.getTabsCount(),n=e+1;ne;)if(!c(this.getTab(t)))return t;return e},t.prototype.getTabsCount=function(){return(0,m.getTabsCount)(this.props.children)},t.prototype.getPanelsCount=function(){return(0,m.getPanelsCount)(this.props.children)},t.prototype.getTab=function(e){return this.tabNodes["tabs-"+e]},t.prototype.getChildren=function(){var e=this,t=0,n=this.props,r=n.children,o=n.disabledTabClassName,a=n.focus,s=n.forceRenderTabPanel,l=n.selectedIndex,i=n.selectedTabClassName,c=n.selectedTabPanelClassName;this.tabIds=this.tabIds||[],this.panelIds=this.panelIds||[];for(var u=this.tabIds.length-this.getTabsCount();u++<0;)this.tabIds.push((0,y.default)()),this.panelIds.push((0,y.default)());return(0,T.deepMap)(r,function(n){var r=n;if((0,v.isTabList)(n)){var u=0,d=!1;_&&(d=p.default.Children.toArray(n.props.children).filter(v.isTab).some(function(t,n){return document.activeElement===e.getTab(n)})),r=(0,f.cloneElement)(n,{children:(0,T.deepMap)(n.props.children,function(t){var n="tabs-"+u,r=l===u,s={tabRef:function(t){e.tabNodes[n]=t},id:e.tabIds[u],panelId:e.panelIds[u],selected:r,focus:r&&(a||d)};return i&&(s.selectedClassName=i),o&&(s.disabledClassName=o),u++,(0,f.cloneElement)(t,s)})})}else if((0,v.isTabPanel)(n)){var b={id:e.panelIds[t],tabId:e.tabIds[t],selected:l===t};s&&(b.forceRender=s),c&&(b.selectedClassName=c),t++,r=(0,f.cloneElement)(n,b)}return r})},t.prototype.isTabFromContainer=function(e){if(!i(e))return!1;var t=e.parentElement;do{if(t===this.node)return!0;if(t.getAttribute("data-tabs"))break;t=t.parentElement}while(t);return!1},t.prototype.render=function(){var e=this,t=this.props,n=(t.children,t.className),r=(t.disabledTabClassName,t.focus,t.forceRenderTabPanel,t.onSelect,t.selectedIndex,t.selectedTabClassName,t.selectedTabPanelClassName,o(t,["children","className","disabledTabClassName","focus","forceRenderTabPanel","onSelect","selectedIndex","selectedTabClassName","selectedTabPanelClassName"]));return p.default.createElement("div",u({},r,{className:(0,b.default)(n),onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:function(t){e.node=t},"data-tabs":!0}),this.getChildren())},t}(f.Component);C.defaultProps={className:"react-tabs",focus:!1},t.default=C,C.propTypes={}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.resetIdCounter=t.Tabs=t.TabPanel=t.TabList=t.Tab=void 0;var o=n(9),a=r(o),s=n(7),l=r(s),i=n(6),c=r(i),u=n(8),f=r(u),p=n(3);t.Tab=c.default,t.TabList=l.default,t.TabPanel=f.default,t.Tabs=a.default,t.resetIdCounter=p.reset}])}); -//# sourceMappingURL=react-tabs.min.js.map \ No newline at end of file diff --git a/dist/react-tabs.min.js.map b/dist/react-tabs.min.js.map deleted file mode 100644 index f941214d4c..0000000000 --- a/dist/react-tabs.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///react-tabs.min.js","webpack:///webpack/bootstrap 0f111dceed75677099b9","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}","webpack:///./src/helpers/elementTypes.js","webpack:///./src/helpers/uuid.js","webpack:///./src/helpers/childrenDeepMap.js","webpack:///./src/helpers/count.js","webpack:///./src/components/Tab.js","webpack:///./src/components/TabList.js","webpack:///./src/components/TabPanel.js","webpack:///./src/components/Tabs.js","webpack:///./src/components/UncontrolledTabs.js","webpack:///./src/index.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_1__","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","isTab","el","type","tabsRole","isTabPanel","isTabList","uuid","count","reset","default","isTabChild","child","_elementTypes","deepMap","children","callback","_react","Children","map","props","_typeof","cloneElement","_extends","deepForEach","forEach","assign","target","arguments","length","source","key","Symbol","iterator","obj","constructor","getTabsCount","tabCount","_childrenDeepMap","getPanelsCount","panelCount","_interopRequireDefault","_objectWithoutProperties","keys","indexOf","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","_react2","_classnames","_classnames2","Tab","_Component","apply","componentDidMount","checkFocus","componentDidUpdate","selected","focus","node","render","_cx","_this2","_props","className","disabled","disabledClassName","id","panelId","selectedClassName","tabRef","attributes","createElement","ref","role","aria-selected","aria-disabled","aria-controls","tabIndex","Component","defaultProps","DEFAULT_CLASS","propTypes","TabList","TabPanel","forceRender","tabId","aria-labelledby","style","_UncontrolledTabs","_UncontrolledTabs2","_count","Tabs","_this","handleSelected","index","last","event","onSelect","state","inUncontrolledMode","selectedIndex","setState","copyPropsToState","defaultFocus","componentWillReceiveProps","newProps","undefined","newState","maxTabIndex","Math","min","defaultIndex","forceRenderTabPanel","isTabNode","nodeName","getAttribute","isTabDisabled","_uuid","_uuid2","canUseActiveElement","window","document","activeElement","e","UncontrolledTabs","_temp","_ret","_len","args","Array","_key","concat","tabNodes","handleKeyDown","isTabFromContainer","preventDefault","keyCode","getPrevTab","getNextTab","setSelected","handleClick","slice","parentNode","filter","getTab","getChildren","disabledTabClassName","selectedTabClassName","selectedTabPanelClassName","tabIds","panelIds","diff","push","result","listIndex","wasTabFocused","toArray","some","tab","nodeAncestor","parentElement","_this3","_props2","onClick","onKeyDown","data-tabs","resetIdCounter","_Tabs","_Tabs2","_TabList","_TabList2","_Tab","_Tab2","_TabPanel","_TabPanel2"],"mappings":"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","file":"react-tabs.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"classnames\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"classnames\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"classnames\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"classNames\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.isTab = isTab;\nexports.isTabPanel = isTabPanel;\nexports.isTabList = isTabList;\nfunction isTab(el) {\n return el.type.tabsRole === 'Tab';\n}\n\nfunction isTabPanel(el) {\n return el.type.tabsRole === 'TabPanel';\n}\n\nfunction isTabList(el) {\n return el.type.tabsRole === 'TabList';\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = uuid;\nexports.reset = reset;\n// Get a universally unique identifier\nvar count = 0;\nfunction uuid() {\n return \"react-tabs-\" + count++;\n}\n\nfunction reset() {\n count = 0;\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.deepMap = deepMap;\nexports.deepForEach = deepForEach;\n\nvar _react = __webpack_require__(0);\n\nvar _elementTypes = __webpack_require__(2);\n\nfunction isTabChild(child) {\n return (0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabList)(child) || (0, _elementTypes.isTabPanel)(child);\n}\n\nfunction deepMap(children, callback) {\n return _react.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n // Clone the child that has children and map them too\n return (0, _react.cloneElement)(child, _extends({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\n\nfunction deepForEach(children, callback) {\n return _react.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if ((0, _elementTypes.isTab)(child) || (0, _elementTypes.isTabPanel)(child)) {\n callback(child);\n } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n if ((0, _elementTypes.isTabList)(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getTabsCount = getTabsCount;\nexports.getPanelsCount = getPanelsCount;\n\nvar _childrenDeepMap = __webpack_require__(4);\n\nvar _elementTypes = __webpack_require__(2);\n\nfunction getTabsCount(children) {\n var tabCount = 0;\n (0, _childrenDeepMap.deepForEach)(children, function (child) {\n if ((0, _elementTypes.isTab)(child)) tabCount++;\n });\n\n return tabCount;\n}\n\nfunction getPanelsCount(children) {\n var panelCount = 0;\n (0, _childrenDeepMap.deepForEach)(children, function (child) {\n if ((0, _elementTypes.isTabPanel)(child)) panelCount++;\n });\n\n return panelCount;\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_CLASS = 'react-tabs__tab';\n\nvar Tab = function (_Component) {\n _inherits(Tab, _Component);\n\n function Tab() {\n _classCallCheck(this, Tab);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n Tab.prototype.componentDidMount = function componentDidMount() {\n this.checkFocus();\n };\n\n Tab.prototype.componentDidUpdate = function componentDidUpdate() {\n this.checkFocus();\n };\n\n Tab.prototype.checkFocus = function checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n };\n\n Tab.prototype.render = function render() {\n var _cx,\n _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disabled = _props.disabled,\n disabledClassName = _props.disabledClassName,\n focus = _props.focus,\n id = _props.id,\n panelId = _props.panelId,\n selected = _props.selected,\n selectedClassName = _props.selectedClassName,\n tabRef = _props.tabRef,\n attributes = _objectWithoutProperties(_props, ['children', 'className', 'disabled', 'disabledClassName', 'focus', 'id', 'panelId', 'selected', 'selectedClassName', 'tabRef']);\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n _this2.node = node;\n if (tabRef) tabRef(node);\n },\n role: 'tab',\n id: id,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-controls': panelId,\n tabIndex: selected ? '0' : null\n }),\n children\n );\n };\n\n return Tab;\n}(_react.Component);\n\nTab.defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + '--disabled',\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + '--selected'\n};\nexports.default = Tab;\nTab.propTypes = false ? {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func // private\n} : {};\n\n\nTab.tabsRole = 'Tab';\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TabList = function (_Component) {\n _inherits(TabList, _Component);\n\n function TabList() {\n _classCallCheck(this, TabList);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n TabList.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n attributes = _objectWithoutProperties(_props, ['children', 'className']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, { className: (0, _classnames2.default)(className), role: 'tablist' }),\n children\n );\n };\n\n return TabList;\n}(_react.Component);\n\nTabList.defaultProps = {\n className: 'react-tabs__tab-list'\n};\nexports.default = TabList;\nTabList.propTypes = false ? {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object])\n} : {};\n\n\nTabList.tabsRole = 'TabList';\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nvar TabPanel = function (_Component) {\n _inherits(TabPanel, _Component);\n\n function TabPanel() {\n _classCallCheck(this, TabPanel);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n TabPanel.prototype.render = function render() {\n var _cx;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n forceRender = _props.forceRender,\n id = _props.id,\n selected = _props.selected,\n selectedClassName = _props.selectedClassName,\n tabId = _props.tabId,\n attributes = _objectWithoutProperties(_props, ['children', 'className', 'forceRender', 'id', 'selected', 'selectedClassName', 'tabId']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId\n }),\n forceRender || selected ? children : null\n );\n };\n\n return TabPanel;\n}(_react.Component);\n\nTabPanel.defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + '--selected',\n style: {}\n};\nexports.default = TabPanel;\nTabPanel.propTypes = false ? {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string // private\n} : {};\n\n\nTabPanel.tabsRole = 'TabPanel';\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _UncontrolledTabs = __webpack_require__(10);\n\nvar _UncontrolledTabs2 = _interopRequireDefault(_UncontrolledTabs);\n\nvar _count = __webpack_require__(5);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Tabs = function (_Component) {\n _inherits(Tabs, _Component);\n\n function Tabs(props) {\n _classCallCheck(this, Tabs);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.handleSelected = function (index, last, event) {\n // Call change event handler\n if (typeof _this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (_this.props.onSelect(index, last, event) === false) return;\n }\n\n var state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown'\n };\n\n if (Tabs.inUncontrolledMode(_this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n _this.setState(state);\n };\n\n _this.state = Tabs.copyPropsToState(_this.props, {}, _this.props.defaultFocus);\n return _this;\n }\n\n Tabs.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) {\n if (false) {\n throw new Error('Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see the README.');\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(function (state) {\n return Tabs.copyPropsToState(newProps, state);\n });\n };\n\n Tabs.inUncontrolledMode = function inUncontrolledMode(props) {\n return props.selectedIndex === null;\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n Tabs.copyPropsToState = function copyPropsToState(props, state) {\n var focus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var newState = {\n focus: focus\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n var maxTabIndex = (0, _count.getTabsCount)(props.children) - 1;\n var selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n };\n\n Tabs.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n defaultIndex = _props.defaultIndex,\n defaultFocus = _props.defaultFocus,\n props = _objectWithoutProperties(_props, ['children', 'defaultIndex', 'defaultFocus']);\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return _react2.default.createElement(\n _UncontrolledTabs2.default,\n props,\n children\n );\n };\n\n return Tabs;\n}(_react.Component);\n\nTabs.defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null\n};\nexports.default = Tabs;\nTabs.propTypes = false ? {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string\n} : {};\n\n\nTabs.tabsRole = 'Tabs';\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(1);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _uuid = __webpack_require__(3);\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _count = __webpack_require__(5);\n\nvar _childrenDeepMap = __webpack_require__(4);\n\nvar _elementTypes = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nvar canUseActiveElement = void 0;\ntry {\n canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement);\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\n\nvar UncontrolledTabs = function (_Component) {\n _inherits(UncontrolledTabs, _Component);\n\n function UncontrolledTabs() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, UncontrolledTabs);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.tabNodes = [], _this.handleKeyDown = function (e) {\n if (_this.isTabFromContainer(e.target)) {\n var index = _this.props.selectedIndex;\n var preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = _this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = _this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n _this.setSelected(index, e);\n }\n }, _this.handleClick = function (e) {\n var node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (_this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n _this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n UncontrolledTabs.prototype.setSelected = function setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n };\n\n UncontrolledTabs.prototype.getNextTab = function getNextTab(index) {\n var count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(this.getTab(_i))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n };\n\n UncontrolledTabs.prototype.getPrevTab = function getPrevTab(index) {\n var i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n };\n\n UncontrolledTabs.prototype.getTabsCount = function getTabsCount() {\n return (0, _count.getTabsCount)(this.props.children);\n };\n\n UncontrolledTabs.prototype.getPanelsCount = function getPanelsCount() {\n return (0, _count.getPanelsCount)(this.props.children);\n };\n\n UncontrolledTabs.prototype.getTab = function getTab(index) {\n return this.tabNodes['tabs-' + index];\n };\n\n UncontrolledTabs.prototype.getChildren = function getChildren() {\n var _this2 = this;\n\n var index = 0;\n var _props = this.props,\n children = _props.children,\n disabledTabClassName = _props.disabledTabClassName,\n focus = _props.focus,\n forceRenderTabPanel = _props.forceRenderTabPanel,\n selectedIndex = _props.selectedIndex,\n selectedTabClassName = _props.selectedTabClassName,\n selectedTabPanelClassName = _props.selectedTabPanelClassName;\n\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push((0, _uuid2.default)());\n this.panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return (0, _childrenDeepMap.deepMap)(children, function (child) {\n var result = child;\n\n // Clone TabList and Tab components to have refs\n if ((0, _elementTypes.isTabList)(child)) {\n var listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n var wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = _react2.default.Children.toArray(child.props.children).filter(_elementTypes.isTab).some(function (tab, i) {\n return document.activeElement === _this2.getTab(i);\n });\n }\n\n result = (0, _react.cloneElement)(child, {\n children: (0, _childrenDeepMap.deepMap)(child.props.children, function (tab) {\n var key = 'tabs-' + listIndex;\n var selected = selectedIndex === listIndex;\n\n var props = {\n tabRef: function tabRef(node) {\n _this2.tabNodes[key] = node;\n },\n id: _this2.tabIds[listIndex],\n panelId: _this2.panelIds[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return (0, _react.cloneElement)(tab, props);\n })\n });\n } else if ((0, _elementTypes.isTabPanel)(child)) {\n var props = {\n id: _this2.panelIds[index],\n tabId: _this2.tabIds[index],\n selected: selectedIndex === index\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = (0, _react.cloneElement)(child, props);\n }\n\n return result;\n });\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n UncontrolledTabs.prototype.isTabFromContainer = function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n var nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n };\n\n UncontrolledTabs.prototype.render = function render() {\n var _this3 = this;\n\n // Delete all known props, so they don't get added to DOM\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n disabledTabClassName = _props2.disabledTabClassName,\n focus = _props2.focus,\n forceRenderTabPanel = _props2.forceRenderTabPanel,\n onSelect = _props2.onSelect,\n selectedIndex = _props2.selectedIndex,\n selectedTabClassName = _props2.selectedTabClassName,\n selectedTabPanelClassName = _props2.selectedTabPanelClassName,\n attributes = _objectWithoutProperties(_props2, ['children', 'className', 'disabledTabClassName', 'focus', 'forceRenderTabPanel', 'onSelect', 'selectedIndex', 'selectedTabClassName', 'selectedTabPanelClassName']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)(className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n ref: function ref(node) {\n _this3.node = node;\n },\n 'data-tabs': true\n }),\n this.getChildren()\n );\n };\n\n return UncontrolledTabs;\n}(_react.Component);\n\nUncontrolledTabs.defaultProps = {\n className: 'react-tabs',\n focus: false\n};\nexports.default = UncontrolledTabs;\nUncontrolledTabs.propTypes = false ? {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string\n} : {};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.resetIdCounter = exports.Tabs = exports.TabPanel = exports.TabList = exports.Tab = undefined;\n\nvar _Tabs = __webpack_require__(9);\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = __webpack_require__(7);\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = __webpack_require__(6);\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = __webpack_require__(8);\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nvar _uuid = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tab = _Tab2.default;\nexports.TabList = _TabList2.default;\nexports.TabPanel = _TabPanel2.default;\nexports.Tabs = _Tabs2.default;\nexports.resetIdCounter = _uuid.reset;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// react-tabs.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0f111dceed75677099b9","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"classNames\",\"commonjs2\":\"classnames\",\"commonjs\":\"classnames\",\"amd\":\"classnames\"}\n// module id = 1\n// module chunks = 0","export function isTab(el) {\n return el.type.tabsRole === 'Tab';\n}\n\nexport function isTabPanel(el) {\n return el.type.tabsRole === 'TabPanel';\n}\n\nexport function isTabList(el) {\n return el.type.tabsRole === 'TabList';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/elementTypes.js","// Get a universally unique identifier\nlet count = 0;\nexport default function uuid() {\n return `react-tabs-${count++}`;\n}\n\nexport function reset() {\n count = 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/uuid.js","import { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from '../helpers/elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, {\n ...child.props,\n children: deepMap(child.props.children, callback),\n });\n }\n\n return child;\n });\n}\n\nexport function deepForEach(children, callback) {\n return Children.forEach(children, child => {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/childrenDeepMap.js","import { deepForEach } from '../helpers/childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\n\nexport function getTabsCount(children) {\n let tabCount = 0;\n deepForEach(children, child => {\n if (isTab(child)) tabCount++;\n });\n\n return tabCount;\n}\n\nexport function getPanelsCount(children) {\n let panelCount = 0;\n deepForEach(children, child => {\n if (isTabPanel(child)) panelCount++;\n });\n\n return panelCount;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/helpers/count.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab';\n\nexport default class Tab extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: `${DEFAULT_CLASS}--disabled`,\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool, // private\n id: PropTypes.string, // private\n panelId: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func, // private\n };\n\n componentDidMount() {\n this.checkFocus();\n }\n\n componentDidUpdate() {\n this.checkFocus();\n }\n\n checkFocus() {\n if (this.props.selected && this.props.focus) {\n this.node.focus();\n }\n }\n\n render() {\n const {\n children,\n className,\n disabled,\n disabledClassName,\n focus, // unused\n id,\n panelId,\n selected,\n selectedClassName,\n tabRef,\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n if (tabRef) tabRef(node);\n }}\n role=\"tab\"\n id={id}\n aria-selected={selected ? 'true' : 'false'}\n aria-disabled={disabled ? 'true' : 'false'}\n aria-controls={panelId}\n tabIndex={selected ? '0' : null}\n >\n {children}\n \n );\n }\n}\n\nTab.tabsRole = 'Tab';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nexport default class TabList extends Component {\n static defaultProps = {\n className: 'react-tabs__tab-list',\n };\n\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n };\n\n render() {\n const { children, className, ...attributes } = this.props;\n\n return (\n
    \n {children}\n
\n );\n }\n}\n\nTabList.tabsRole = 'TabList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabList.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nconst DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nexport default class TabPanel extends Component {\n static defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: `${DEFAULT_CLASS}--selected`,\n style: {},\n };\n\n static propTypes = {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string, // private\n selected: PropTypes.bool, // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string, // private\n };\n\n render() {\n const {\n children,\n className,\n forceRender,\n id,\n selected,\n selectedClassName,\n tabId,\n ...attributes\n } = this.props;\n\n return (\n \n {forceRender || selected ? children : null}\n \n );\n }\n}\n\nTabPanel.tabsRole = 'TabPanel';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TabPanel.js","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\n\nexport default class Tabs extends Component {\n static defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = Tabs.copyPropsToState(this.props, {}, this.props.defaultFocus);\n }\n\n componentWillReceiveProps(newProps) {\n if (\n process.env.NODE_ENV !== 'production' &&\n Tabs.inUncontrolledMode(newProps) !== Tabs.inUncontrolledMode(this.props)\n ) {\n throw new Error(\n `Switching between controlled mode (by using \\`selectedIndex\\`) and uncontrolled mode is not supported in \\`Tabs\\`.\nFor more information about controlled and uncontrolled mode of react-tabs see the README.`,\n );\n }\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(state => Tabs.copyPropsToState(newProps, state));\n }\n\n static inUncontrolledMode(props) {\n return props.selectedIndex === null;\n }\n\n handleSelected = (index, last, event) => {\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (this.props.onSelect(index, last, event) === false) return;\n }\n\n const state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown',\n };\n\n if (Tabs.inUncontrolledMode(this.props)) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n this.setState(state);\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n static copyPropsToState(props, state, focus = false) {\n const newState = {\n focus,\n };\n\n if (Tabs.inUncontrolledMode(props)) {\n const maxTabIndex = getTabsCount(props.children) - 1;\n let selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n }\n\n render() {\n const { children, defaultIndex, defaultFocus, ...props } = this.props;\n\n props.focus = this.state.focus;\n props.onSelect = this.handleSelected;\n\n if (this.state.selectedIndex != null) {\n props.selectedIndex = this.state.selectedIndex;\n }\n\n return {children};\n }\n}\n\nTabs.tabsRole = 'Tabs';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tabs.js","import PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount, getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nlet canUseActiveElement;\ntry {\n canUseActiveElement = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.activeElement\n );\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\nexport default class UncontrolledTabs extends Component {\n static defaultProps = {\n className: 'react-tabs',\n focus: false,\n };\n\n static propTypes = {\n children: childrenPropType,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n };\n\n tabNodes = [];\n\n setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Call change event handler\n this.props.onSelect(index, this.props.selectedIndex, event);\n }\n\n getNextTab(index) {\n const count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (let i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (let i = 0; i < index; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getPrevTab(index) {\n let i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n }\n\n getTabsCount() {\n return getTabsCount(this.props.children);\n }\n\n getPanelsCount() {\n return getPanelsCount(this.props.children);\n }\n\n getTab(index) {\n return this.tabNodes[`tabs-${index}`];\n }\n\n getChildren() {\n let index = 0;\n const {\n children,\n disabledTabClassName,\n focus,\n forceRenderTabPanel,\n selectedIndex,\n selectedTabClassName,\n selectedTabPanelClassName,\n } = this.props;\n\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n let diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n }\n\n // Map children to dynamically setup refs\n return deepMap(children, child => {\n let result = child;\n\n // Clone TabList and Tab components to have refs\n if (isTabList(child)) {\n let listIndex = 0;\n\n // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n let wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children\n .toArray(child.props.children)\n .filter(isTab)\n .some((tab, i) => document.activeElement === this.getTab(i));\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, tab => {\n const key = `tabs-${listIndex}`;\n const selected = selectedIndex === listIndex;\n\n const props = {\n tabRef: node => {\n this.tabNodes[key] = node;\n },\n id: this.tabIds[listIndex],\n panelId: this.panelIds[listIndex],\n selected,\n focus: selected && (focus || wasTabFocused),\n };\n\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n\n listIndex++;\n\n return cloneElement(tab, props);\n }),\n });\n } else if (isTabPanel(child)) {\n const props = {\n id: this.panelIds[index],\n tabId: this.tabIds[index],\n selected: selectedIndex === index,\n };\n\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n\n index++;\n\n result = cloneElement(child, props);\n }\n\n return result;\n });\n }\n\n handleKeyDown = e => {\n if (this.isTabFromContainer(e.target)) {\n let index = this.props.selectedIndex;\n let preventDefault = false;\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n index = this.getPrevTab(index);\n preventDefault = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, e);\n }\n };\n\n handleClick = e => {\n let node = e.target;\n // eslint-disable-next-line no-cond-assign\n do {\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n const index = [].slice\n .call(node.parentNode.children)\n .filter(isTabNode)\n .indexOf(node);\n this.setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) !== null);\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n let nodeAncestor = node.parentElement;\n do {\n if (nodeAncestor === this.node) return true;\n else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n render() {\n // Delete all known props, so they don't get added to DOM\n const {\n children, // unused\n className,\n disabledTabClassName, // unused\n focus, // unused\n forceRenderTabPanel, // unused\n onSelect, // unused\n selectedIndex, // unused\n selectedTabClassName, // unused\n selectedTabPanelClassName, // unused\n ...attributes\n } = this.props;\n\n return (\n {\n this.node = node;\n }}\n data-tabs\n >\n {this.getChildren()}\n \n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/UncontrolledTabs.js","import Tabs from './components/Tabs';\nimport TabList from './components/TabList';\nimport Tab from './components/Tab';\nimport TabPanel from './components/TabPanel';\nimport { reset as resetIdCounter } from './helpers/uuid';\n\nexport { Tab, TabList, TabPanel, Tabs, resetIdCounter };\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index a00c7bddb9..c61f76c5bb 100644 --- a/package.json +++ b/package.json @@ -4,20 +4,18 @@ "description": "React tabs component", "main": "lib/index.js", "scripts": { - "clean": "rimraf lib", + "clean:commonjs": "rimraf lib", + "clean:umd": "rimraf dist", "create-github-release": "conventional-github-releaser -p angular", - "build:commonjs": "babel src/ --out-dir lib/ --ignore __tests__,__mocks__", - "build:umd": "webpack --config webpack.build.js", - "build:umd:min": "cross-env MINIFY=1 webpack --config webpack.build.js", - "build": "yarn run clean && yarn run build:commonjs", - "bundle": "mkdir -p dist && run-s build:umd build:umd:min", + "build:commonjs": "babel src/ --out-dir lib/ --ignore **/__tests__,**/__mocks__", + "build:umd": "BABEL_TARGET=rollup yarn rollup -c", + "build": "npm-run-all clean:* --parallel build:*", "format": "eslint src --fix", "lint": "eslint src", "precommit": "lint-staged", "prebump": "run-s lint test", "prepublish": "yarn run build", - "prerelease": "run-s build bundle", - "release": "git add dist/ && standard-version --sign -a", + "release": "standard-version --sign", "test": "jest", "start": "webpack-dev-server --inline --content-base examples/" }, @@ -37,16 +35,17 @@ "react": "^0.14.9 || ^15.3.0 || ^16.0.0" }, "devDependencies": { - "babel-cli": "^6.9.0", - "babel-core": "^6.9.1", + "babel-cli": "^7.0.0-beta.2", + "babel-core": "^7.0.0-beta.2", "babel-eslint": "^8.0.1", "babel-jest": "^21.3.0-beta.1", - "babel-loader": "^7.0.0", - "babel-plugin-transform-class-properties": "^6.11.5", - "babel-plugin-transform-object-rest-spread": "^6.8.0", + "babel-loader": "^7.1.2", + "babel-plugin-external-helpers": "^6.22.0", + "babel-plugin-transform-class-properties": "^7.0.0-beta.2", + "babel-plugin-transform-object-rest-spread": "^7.0.0-beta.2", "babel-plugin-transform-react-remove-prop-types": "^0.4.0", - "babel-preset-env": "^1.3.3", - "babel-preset-react": "^6.5.0", + "babel-preset-env": "^2.0.0-beta.2", + "babel-preset-react": "^7.0.0-beta.2", "conventional-github-releaser": "^1.1.12", "cross-env": "^5.0.0", "css-loader": "^0.28.0", @@ -69,6 +68,13 @@ "react-modal": "^3.0.0-rc2", "react-test-renderer": "^16.0.0", "rimraf": "^2.5.2", + "rollup": "^0.50.0", + "rollup-plugin-babel": "^3.0.2", + "rollup-plugin-commonjs": "^8.2.1", + "rollup-plugin-ignore": "^1.0.3", + "rollup-plugin-node-resolve": "^3.0.0", + "rollup-plugin-replace": "^2.0.0", + "rollup-plugin-uglify": "^2.0.1", "standard-version": "^4.2.0", "style-loader": "^0.18.1", "uglifyjs-webpack-plugin": "^0.4.2", diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000000..eeb837a81e --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,55 @@ +import babel from 'rollup-plugin-babel'; +import nodeResolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; +import replace from 'rollup-plugin-replace'; +import uglify from 'rollup-plugin-uglify'; +import ignore from 'rollup-plugin-ignore'; + +const devConfig = { + input: 'src/index.js', + output: { + file: 'dist/react-tabs.development.js', + format: 'umd', + name: 'ReactTabs', + globals: { + 'prop-types': 'PropTypes', + react: 'React', + }, + sourcemap: true, + }, + plugins: [ + commonjs(), + nodeResolve(), + babel(), + replace({ + 'process.env.NODE_ENV': JSON.stringify('development'), + }), + ], + external: ['prop-types', 'react'], +}; + +const productionConfig = { + input: 'src/index.js', + output: { + file: 'dist/react-tabs.production.min.js', + format: 'umd', + name: 'ReactTabs', + globals: { + react: 'React', + }, + sourcemap: true, + }, + plugins: [ + ignore(['prop-types']), + commonjs(), + nodeResolve(), + babel({ plugins: ['transform-react-remove-prop-types'] }), + replace({ + 'process.env.NODE_ENV': JSON.stringify('production'), + }), + uglify(), + ], + external: ['react'], +}; + +export default [devConfig, productionConfig]; diff --git a/webpack.build.js b/webpack.build.js deleted file mode 100644 index 075c47e53f..0000000000 --- a/webpack.build.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict'; - -const path = require('path'); -const webpack = require('webpack'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); - -let COMPONENT_FILE = 'react-tabs'; -const plugins = []; -const babelOptions = {}; - -if (process.env.MINIFY) { - plugins.push(new UglifyJsPlugin({ sourceMap: true })); - plugins.push(new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('production') - })); - COMPONENT_FILE += '.min'; - - babelOptions.plugins = [ - function(babel) { - return { - visitor: { - ImportDeclaration(path) { - // Remove all propType imports in min bundle - if ( - path.node.source.value.indexOf('helpers/propTypes') > -1 || - path.node.source.value === 'prop-types' - ) { - path.remove(); - } - } - } - }; - } - ]; -} else { - plugins.push(new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('development') - })); -} - -module.exports = { - entry: path.join(__dirname, 'src/index.js'), - output: { - filename: COMPONENT_FILE + '.js', - path: path.join(__dirname, 'dist'), - library: 'ReactTabs', - libraryTarget: 'umd', - }, - externals: { - 'react': { - root: 'React', - commonjs2: 'react', - commonjs: 'react', - amd: 'react', - }, - 'prop-types': { - root: 'PropTypes', - commonjs2: 'prop-types', - commonjs: 'prop-types', - amd: 'prop-types', - }, - 'classnames': { - root: 'classNames', - commonjs2: 'classnames', - commonjs: 'classnames', - amd: 'classnames', - }, - }, - module: { - rules: [ - { - test: /\.js$/, - exclude: /node_modules/, - loader: 'babel-loader', - options: babelOptions, - }, - ], - }, - plugins: plugins, - devtool: 'source-map', -}; diff --git a/yarn.lock b/yarn.lock index 9f489555cb..59b330e793 100644 --- a/yarn.lock +++ b/yarn.lock @@ -320,24 +320,21 @@ axobject-query@^0.1.0: dependencies: ast-types-flow "0.0.7" -babel-cli@^6.9.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" +babel-cli@^7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-7.0.0-beta.2.tgz#2aad00a444a3d053b5e52c58c7f97e75287e8d30" + dependencies: + babel-core "7.0.0-beta.2" + babel-polyfill "7.0.0-beta.2" + babel-register "7.0.0-beta.2" + commander "^2.8.1" + convert-source-map "^1.1.0" fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" + glob "^7.0.0" + lodash "^4.2.0" + output-file-sync "^2.0.0" slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" + source-map "^0.5.0" optionalDependencies: chokidar "^1.6.1" @@ -349,6 +346,14 @@ babel-code-frame@7.0.0-beta.0: esutils "^2.0.2" js-tokens "^3.0.0" +babel-code-frame@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-7.0.0-beta.2.tgz#fd02b03243d907063e042630a561c50661d03684" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -357,29 +362,25 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0, babel-core@^6.9.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" +babel-core@7.0.0-beta.2, babel-core@^7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-beta.2.tgz#33826a99ba63b172ad5bfeb1f2f13652fe79d402" + dependencies: + babel-code-frame "7.0.0-beta.2" + babel-generator "7.0.0-beta.2" + babel-helpers "7.0.0-beta.2" + babel-messages "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + babylon "7.0.0-beta.25" + convert-source-map "^1.1.0" + debug "^3.0.1" + json5 "^0.5.0" + lodash "^4.2.0" + micromatch "^2.3.11" + resolve "^1.3.2" + source-map "^0.5.0" babel-eslint@^8.0.1: version "8.0.1" @@ -390,7 +391,18 @@ babel-eslint@^8.0.1: babel-types "7.0.0-beta.0" babylon "7.0.0-beta.22" -babel-generator@^6.18.0, babel-generator@^6.26.0: +babel-generator@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-7.0.0-beta.2.tgz#e09bbd818c006486c3af938e4d71f99532614115" + dependencies: + babel-messages "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + jsesc "^2.5.1" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +babel-generator@^6.18.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" dependencies: @@ -403,47 +415,48 @@ babel-generator@^6.18.0, babel-generator@^6.26.0: source-map "^0.5.6" trim-right "^1.0.1" -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" +babel-helper-annotate-as-pure@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-annotate-as-pure/-/babel-helper-annotate-as-pure-7.0.0-beta.2.tgz#e41c37c53202305fc9829cdd407487f14f7d5c99" dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-types "7.0.0-beta.2" -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" +babel-helper-builder-binary-assignment-operator-visitor@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-7.0.0-beta.2.tgz#a9d510e27835c25c3de167813abb7a655c3c5a57" dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" + babel-helper-explode-assignable-expression "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" +babel-helper-builder-react-jsx@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-7.0.0-beta.2.tgz#f47c6b8de5790ad93f12ab85d7c85131d054288c" dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + babel-types "7.0.0-beta.2" + esutils "^2.0.0" -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" +babel-helper-call-delegate@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-7.0.0-beta.2.tgz#5236afdc19f937624b3bfbb0bc2bac82428f00c1" dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" + babel-helper-hoist-variables "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" +babel-helper-define-map@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-7.0.0-beta.2.tgz#c485b4ed51ea501b88090b695fe2a1c74fb2f510" dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + babel-helper-function-name "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + lodash "^4.2.0" + +babel-helper-explode-assignable-expression@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-7.0.0-beta.2.tgz#e14263dc5cfeb32aa99bfd60da283722e2955f0d" + dependencies: + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" babel-helper-function-name@7.0.0-beta.0: version "7.0.0-beta.0" @@ -454,15 +467,14 @@ babel-helper-function-name@7.0.0-beta.0: babel-traverse "7.0.0-beta.0" babel-types "7.0.0-beta.0" -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" +babel-helper-function-name@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.2.tgz#f051ccee25525210e113738e46e1a122654a6bee" dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + babel-helper-get-function-arity "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" babel-helper-get-function-arity@7.0.0-beta.0: version "7.0.0-beta.0" @@ -470,28 +482,39 @@ babel-helper-get-function-arity@7.0.0-beta.0: dependencies: babel-types "7.0.0-beta.0" -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" +babel-helper-get-function-arity@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.2.tgz#65df223685018f8f7e199f6b8f2ccc3cb9079d84" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-types "7.0.0-beta.2" -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" +babel-helper-hoist-variables@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-7.0.0-beta.2.tgz#61fd4c88c186ec64b8e113b63eee5d77c5b7eb56" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-types "7.0.0-beta.2" -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" +babel-helper-module-transforms@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-module-transforms/-/babel-helper-module-transforms-7.0.0-beta.2.tgz#35ea803c290ef91deb12eab79c01dc6317ac8d1a" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-template "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + lodash "^4.2.0" + +babel-helper-optimise-call-expression@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-7.0.0-beta.2.tgz#486b19aedcf62aba892f3599b2c5393cc711c814" + dependencies: + babel-types "7.0.0-beta.2" + +babel-helper-regex@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-7.0.0-beta.2.tgz#64b8d906210fcb0582848fecba6a7edf6e19840e" + dependencies: + lodash "^4.2.0" -babel-helper-regex@^6.24.1: +babel-helper-regex@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" dependencies: @@ -499,33 +522,41 @@ babel-helper-regex@^6.24.1: babel-types "^6.26.0" lodash "^4.17.4" -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" +babel-helper-remap-async-to-generator@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-7.0.0-beta.2.tgz#88834569ac9ee504398eb20cdd735ecd25cbb4de" dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + babel-helper-wrap-function "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" +babel-helper-replace-supers@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-7.0.0-beta.2.tgz#8c5441d95851b7ba86be4127ba1422b661b46c69" dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + babel-helper-optimise-call-expression "7.0.0-beta.2" + babel-messages "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" +babel-helper-wrap-function@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helper-wrap-function/-/babel-helper-wrap-function-7.0.0-beta.2.tgz#255b31b11a9e312836cdc30ad99a8133c141a696" dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" + babel-helper-function-name "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + +babel-helpers@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-7.0.0-beta.2.tgz#a2f5f85e6c8e2739fa68e9137fdc0966538150f5" + dependencies: + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" babel-jest@21.3.0-beta.1, babel-jest@^21.3.0-beta.1: version "21.3.0-beta.1" @@ -534,7 +565,7 @@ babel-jest@21.3.0-beta.1, babel-jest@^21.3.0-beta.1: babel-plugin-istanbul "^4.0.0" babel-preset-jest "21.3.0-beta.1" -babel-loader@^7.0.0: +babel-loader@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" dependencies: @@ -546,15 +577,23 @@ babel-messages@7.0.0-beta.0: version "7.0.0-beta.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-7.0.0-beta.0.tgz#6df01296e49fc8fbd0637394326a167f36da817b" +babel-messages@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-7.0.0-beta.2.tgz#b6f685a7e81d8995ca72b70fc8039466990f81d8" + babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" -babel-plugin-check-es2015-constants@^6.22.0: +babel-plugin-check-es2015-constants@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-7.0.0-beta.2.tgz#0d63c05ffa6e7c90aa0b39ece04a4c03e53e6216" + +babel-plugin-external-helpers@^6.22.0: version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" dependencies: babel-runtime "^6.22.0" @@ -570,335 +609,327 @@ babel-plugin-jest-hoist@21.3.0-beta.1: version "21.3.0-beta.1" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.3.0-beta.1.tgz#56710bb8955b3d1084db23adfaa94bacc890a53e" -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" +babel-plugin-syntax-async-functions@7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-7.0.0-beta.0.tgz#2d4074c6167cc78e0bdc49de65902f90e09b59de" -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" +babel-plugin-syntax-async-generators@7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-7.0.0-beta.0.tgz#a89061e968d4f4c2ee2f8a5b9c84eed19ec48488" -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" +babel-plugin-syntax-async-generators@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-7.0.0-beta.2.tgz#e7a71351a10f6d3d58df6caf7d4479d401506b7a" -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" +babel-plugin-syntax-class-properties@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-7.0.0-beta.2.tgz#a3c828a4f408858e4a43a587a670782a57afa276" -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" +babel-plugin-syntax-exponentiation-operator@7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-7.0.0-beta.0.tgz#0e09f65168b7dd2cc73ad7af547036ff128eb7d6" + +babel-plugin-syntax-jsx@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-7.0.0-beta.2.tgz#a1f2be97c0d91e26da2d3ad39a0bb72f5f56628a" -babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: +babel-plugin-syntax-object-rest-spread@7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-7.0.0-beta.0.tgz#34a1eee484acfb0a89effc364e386a8d769286eb" + +babel-plugin-syntax-object-rest-spread@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-7.0.0-beta.2.tgz#0322736751b11ab6edcea5a02d610abbcdeb194f" + +babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" +babel-plugin-syntax-optional-catch-binding@7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-optional-catch-binding/-/babel-plugin-syntax-optional-catch-binding-7.0.0-beta.0.tgz#9c92545c42865954c544f480648e179ba15757fb" -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" +babel-plugin-syntax-optional-catch-binding@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-optional-catch-binding/-/babel-plugin-syntax-optional-catch-binding-7.0.0-beta.2.tgz#78fbc368d8aa7a4307abb00adadfaee721f9f23b" -babel-plugin-transform-class-properties@^6.11.5: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" +babel-plugin-transform-async-generator-functions@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-7.0.0-beta.2.tgz#0fe554857b69a0dd4fb52fe41ad268c739dbf313" dependencies: - babel-runtime "^6.22.0" + babel-helper-remap-async-to-generator "7.0.0-beta.2" + babel-plugin-syntax-async-generators "7.0.0-beta.2" -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" +babel-plugin-transform-async-to-generator@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-7.0.0-beta.2.tgz#2bf1cd55cc1c72fc8872a1cd48b58f4171cca786" dependencies: - babel-runtime "^6.22.0" + babel-helper-remap-async-to-generator "7.0.0-beta.2" + babel-plugin-syntax-async-functions "7.0.0-beta.0" -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" +babel-plugin-transform-class-properties@^7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-7.0.0-beta.2.tgz#1c8d8c76531b52aab1849d6b791329b44413af2a" dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" + babel-helper-function-name "7.0.0-beta.2" + babel-plugin-syntax-class-properties "7.0.0-beta.2" + babel-template "7.0.0-beta.2" -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" +babel-plugin-transform-es2015-arrow-functions@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-7.0.0-beta.2.tgz#152f73140038d620af0c692fec0a81352f4a3683" -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" +babel-plugin-transform-es2015-block-scoped-functions@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-7.0.0-beta.2.tgz#605a5df1efa8d5cdc5fbb652d875ad416a773522" -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" +babel-plugin-transform-es2015-block-scoping@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-7.0.0-beta.2.tgz#10c3558253fe7ac693814d7676ef7fc50af001a1" dependencies: - babel-runtime "^6.22.0" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + lodash "^4.2.0" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" +babel-plugin-transform-es2015-classes@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-7.0.0-beta.2.tgz#f5fc0beae85bcbc61776113461f9b336c0de9052" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-helper-annotate-as-pure "7.0.0-beta.2" + babel-helper-define-map "7.0.0-beta.2" + babel-helper-function-name "7.0.0-beta.2" + babel-helper-optimise-call-expression "7.0.0-beta.2" + babel-helper-replace-supers "7.0.0-beta.2" + babel-messages "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" +babel-plugin-transform-es2015-computed-properties@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-7.0.0-beta.2.tgz#f3c697863925828281a21d9acd5fd6ec09fbdcbf" dependencies: - babel-runtime "^6.22.0" + babel-template "7.0.0-beta.2" -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" +babel-plugin-transform-es2015-destructuring@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-7.0.0-beta.2.tgz#a4666be4ce96086c337ed8ff4a21c6870915f48b" -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" +babel-plugin-transform-es2015-duplicate-keys@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-7.0.0-beta.2.tgz#fafc5cac8ec9a94da46789e7cdd92f09e094a308" dependencies: - babel-runtime "^6.22.0" + babel-types "7.0.0-beta.2" -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +babel-plugin-transform-es2015-for-of@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-7.0.0-beta.2.tgz#82802261b857047b0a1ac89be9a973d8a7707e83" -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" +babel-plugin-transform-es2015-function-name@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-7.0.0-beta.2.tgz#cbfcc6bc3cc78e95faa1bb75aec540e9cf2bccfb" dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" + babel-helper-function-name "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +babel-plugin-transform-es2015-literals@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-7.0.0-beta.2.tgz#c4572add2b9c977081a51fda4fc208d68a06070e" -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" +babel-plugin-transform-es2015-modules-amd@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-7.0.0-beta.2.tgz#e05baf478f3c1e9b28eb31eb5c34fec8f3a3d7c8" dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" + babel-helper-module-transforms "7.0.0-beta.2" + babel-template "7.0.0-beta.2" -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" +babel-plugin-transform-es2015-modules-commonjs@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-7.0.0-beta.2.tgz#2e9ecbadadeaf40bb19109baee586aac9a97aed4" dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" + babel-helper-module-transforms "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" +babel-plugin-transform-es2015-modules-systemjs@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-7.0.0-beta.2.tgz#f25a3f6e6f01e14cf9f32dda3433594942983863" dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + babel-helper-hoist-variables "7.0.0-beta.2" + babel-template "7.0.0-beta.2" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" +babel-plugin-transform-es2015-modules-umd@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-7.0.0-beta.2.tgz#b781bf06e2bb36290ba4bb6c6119a79905d5f0be" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-helper-module-transforms "7.0.0-beta.2" + babel-template "7.0.0-beta.2" -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" +babel-plugin-transform-es2015-object-super@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-7.0.0-beta.2.tgz#64512343955490ba37dc9c2db7b88b5f2d08e580" dependencies: - babel-runtime "^6.22.0" + babel-helper-replace-supers "7.0.0-beta.2" -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" +babel-plugin-transform-es2015-parameters@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-7.0.0-beta.2.tgz#afcd3ca75726928584d1d2ed8920e3489e984be6" dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-helper-call-delegate "7.0.0-beta.2" + babel-helper-get-function-arity "7.0.0-beta.2" + babel-template "7.0.0-beta.2" + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" +babel-plugin-transform-es2015-shorthand-properties@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-7.0.0-beta.2.tgz#8dc07cb267ce6c316c78618053aa7c3278cc5c6d" dependencies: - babel-runtime "^6.22.0" + babel-types "7.0.0-beta.2" -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" +babel-plugin-transform-es2015-spread@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-7.0.0-beta.2.tgz#c166da155f2edf8d23d6b6c53056740bce95f83d" -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" +babel-plugin-transform-es2015-sticky-regex@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-7.0.0-beta.2.tgz#5be492f3196013d1560c6a515f8a688e7fd64e3a" dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" + babel-helper-regex "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + +babel-plugin-transform-es2015-template-literals@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-7.0.0-beta.2.tgz#5e2b3ae3625c28b5ad40542e53237fe68c5d7e56" -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" +babel-plugin-transform-es2015-typeof-symbol@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-7.0.0-beta.2.tgz#6bfd212ea3b3c273b13281ce40a7e3a2f4c90c7b" + +babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-7.0.0-beta.2.tgz#e44133951a26254fb161f0a26dda16b5b59188a0" dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" + babel-helper-regex "7.0.0-beta.2" + regexpu-core "^4.1.3" -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" +babel-plugin-transform-exponentiation-operator@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-7.0.0-beta.2.tgz#50886381b685e1196d0c89965ca35ec8e6b42710" dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" + babel-helper-builder-binary-assignment-operator-visitor "7.0.0-beta.2" + babel-plugin-syntax-exponentiation-operator "7.0.0-beta.0" -babel-plugin-transform-object-rest-spread@^6.8.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" +babel-plugin-transform-new-target@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-new-target/-/babel-plugin-transform-new-target-7.0.0-beta.2.tgz#cf8f1a6d068dfdf1d10bc57ac6596c34f1d96bcd" + +babel-plugin-transform-object-rest-spread@7.0.0-beta.2, babel-plugin-transform-object-rest-spread@^7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-7.0.0-beta.2.tgz#57b1c4346646d483d1ac8dc608c5c3870620ac7e" dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" + babel-plugin-syntax-object-rest-spread "7.0.0-beta.2" -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" +babel-plugin-transform-optional-catch-binding@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-optional-catch-binding/-/babel-plugin-transform-optional-catch-binding-7.0.0-beta.2.tgz#b84a95c4a8ae5fd4700a0f2ae6c305c9adad9c4d" dependencies: - babel-runtime "^6.22.0" + babel-plugin-syntax-optional-catch-binding "7.0.0-beta.2" -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" +babel-plugin-transform-react-display-name@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-7.0.0-beta.2.tgz#e7d7a03c378587e252c4734cd864b342409dc468" + +babel-plugin-transform-react-jsx-self@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-7.0.0-beta.2.tgz#c711a78477d6cf7b9b4d049e19c1e06073c26c4d" dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + babel-plugin-syntax-jsx "7.0.0-beta.2" -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" +babel-plugin-transform-react-jsx-source@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-7.0.0-beta.2.tgz#75b8460b10667d644a4508d41936df224e62dc97" dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + babel-plugin-syntax-jsx "7.0.0-beta.2" -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" +babel-plugin-transform-react-jsx@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-7.0.0-beta.2.tgz#3497a7bc957b50c87a8f69dacad48990741d3a04" dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + babel-helper-builder-react-jsx "7.0.0-beta.2" + babel-plugin-syntax-jsx "7.0.0-beta.2" babel-plugin-transform-react-remove-prop-types@^0.4.0: version "0.4.9" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.9.tgz#6805ef83d77bda94ded472ff2f2836bacd6ac44c" -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" +babel-plugin-transform-regenerator@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-7.0.0-beta.2.tgz#f286bef81a00455742e876f0f606f4e4597120d4" dependencies: - regenerator-transform "^0.10.0" + regenerator-transform "0.10.0" -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" +babel-plugin-transform-unicode-property-regex@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-unicode-property-regex/-/babel-plugin-transform-unicode-property-regex-2.0.5.tgz#24922190f9598384d258a6c8e7409309dc6f3898" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-helper-regex "^6.26.0" + regexpu-core "^4.1.3" -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" +babel-polyfill@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-7.0.0-beta.2.tgz#fdbae0cb20f03dd5ed8e857b58b55c4c34161615" dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" + core-js "^2.4.0" + regenerator-runtime "^0.11.0" -babel-preset-env@^1.3.3: - version "1.6.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" +babel-preset-env@^2.0.0-beta.2: + version "2.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-2.0.0-beta.2.tgz#2ec7b9d7c3ede4008f830c194e75cc22a6b86b8e" + dependencies: + babel-plugin-check-es2015-constants "7.0.0-beta.2" + babel-plugin-syntax-async-generators "7.0.0-beta.0" + babel-plugin-syntax-object-rest-spread "7.0.0-beta.0" + babel-plugin-syntax-optional-catch-binding "7.0.0-beta.0" + babel-plugin-syntax-trailing-function-commas "7.0.0-beta.0" + babel-plugin-transform-async-generator-functions "7.0.0-beta.2" + babel-plugin-transform-async-to-generator "7.0.0-beta.2" + babel-plugin-transform-es2015-arrow-functions "7.0.0-beta.2" + babel-plugin-transform-es2015-block-scoped-functions "7.0.0-beta.2" + babel-plugin-transform-es2015-block-scoping "7.0.0-beta.2" + babel-plugin-transform-es2015-classes "7.0.0-beta.2" + babel-plugin-transform-es2015-computed-properties "7.0.0-beta.2" + babel-plugin-transform-es2015-destructuring "7.0.0-beta.2" + babel-plugin-transform-es2015-duplicate-keys "7.0.0-beta.2" + babel-plugin-transform-es2015-for-of "7.0.0-beta.2" + babel-plugin-transform-es2015-function-name "7.0.0-beta.2" + babel-plugin-transform-es2015-literals "7.0.0-beta.2" + babel-plugin-transform-es2015-modules-amd "7.0.0-beta.2" + babel-plugin-transform-es2015-modules-commonjs "7.0.0-beta.2" + babel-plugin-transform-es2015-modules-systemjs "7.0.0-beta.2" + babel-plugin-transform-es2015-modules-umd "7.0.0-beta.2" + babel-plugin-transform-es2015-object-super "7.0.0-beta.2" + babel-plugin-transform-es2015-parameters "7.0.0-beta.2" + babel-plugin-transform-es2015-shorthand-properties "7.0.0-beta.2" + babel-plugin-transform-es2015-spread "7.0.0-beta.2" + babel-plugin-transform-es2015-sticky-regex "7.0.0-beta.2" + babel-plugin-transform-es2015-template-literals "7.0.0-beta.2" + babel-plugin-transform-es2015-typeof-symbol "7.0.0-beta.2" + babel-plugin-transform-es2015-unicode-regex "7.0.0-beta.2" + babel-plugin-transform-exponentiation-operator "7.0.0-beta.2" + babel-plugin-transform-new-target "7.0.0-beta.2" + babel-plugin-transform-object-rest-spread "7.0.0-beta.2" + babel-plugin-transform-optional-catch-binding "7.0.0-beta.2" + babel-plugin-transform-regenerator "7.0.0-beta.2" + babel-plugin-transform-unicode-property-regex "^2.0.5" + browserslist "^2.4.0" invariant "^2.2.2" semver "^5.3.0" -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - babel-preset-jest@21.3.0-beta.1: version "21.3.0-beta.1" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.3.0-beta.1.tgz#0b97b79664b5bc12348ec5ad8844f905f65a1557" @@ -906,28 +937,28 @@ babel-preset-jest@21.3.0-beta.1: babel-plugin-jest-hoist "21.3.0-beta.1" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-react@^6.5.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" +babel-preset-react@^7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-7.0.0-beta.2.tgz#fa27fe99dd0c2ce10ff235226da9867934edb3ba" dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" + babel-plugin-syntax-jsx "7.0.0-beta.2" + babel-plugin-transform-react-display-name "7.0.0-beta.2" + babel-plugin-transform-react-jsx "7.0.0-beta.2" + babel-plugin-transform-react-jsx-self "7.0.0-beta.2" + babel-plugin-transform-react-jsx-source "7.0.0-beta.2" -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" +babel-register@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-7.0.0-beta.2.tgz#735423f7c4a9d8df8786b32962168d51e2973a09" dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" + babel-core "7.0.0-beta.2" + core-js "^2.4.0" + find-cache-dir "^1.0.0" + home-or-tmp "^3.0.0" + lodash "^4.2.0" mkdirp "^0.5.1" - source-map-support "^0.4.15" + pirates "^3.0.1" + source-map-support "^0.4.2" babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" @@ -945,7 +976,16 @@ babel-template@7.0.0-beta.0: babylon "7.0.0-beta.22" lodash "^4.2.0" -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-7.0.0-beta.2.tgz#e5140a36854c113e12680110f0975daf09d4b4c0" + dependencies: + babel-traverse "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + babylon "7.0.0-beta.25" + lodash "^4.2.0" + +babel-template@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -969,7 +1009,21 @@ babel-traverse@7.0.0-beta.0: invariant "^2.2.0" lodash "^4.2.0" -babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-7.0.0-beta.2.tgz#4073ace28b2602bb250cc6473a49730f516214bb" + dependencies: + babel-code-frame "7.0.0-beta.2" + babel-helper-function-name "7.0.0-beta.2" + babel-messages "7.0.0-beta.2" + babel-types "7.0.0-beta.2" + babylon "7.0.0-beta.25" + debug "^3.0.1" + globals "^10.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -991,7 +1045,15 @@ babel-types@7.0.0-beta.0: lodash "^4.2.0" to-fast-properties "^2.0.0" -babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-7.0.0-beta.2.tgz#ea2352b5a439cdcf892966abccadc585a0244c65" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1004,6 +1066,10 @@ babylon@7.0.0-beta.22: version "7.0.0-beta.22" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.22.tgz#74f0ad82ed7c7c3cfeab74cf684f815104161b65" +babylon@7.0.0-beta.25: + version "7.0.0-beta.25" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.25.tgz#5fff5062b7082203b1bc5cab488e154cfee0202a" + babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1115,7 +1181,7 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" -browser-resolve@^1.11.2: +browser-resolve@^1.11.0, browser-resolve@^1.11.2: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" dependencies: @@ -1180,7 +1246,7 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.1.2: +browserslist@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8" dependencies: @@ -1209,7 +1275,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.0.0, builtin-modules@^1.1.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1462,7 +1528,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.9.0: +commander@^2.8.1, commander@^2.9.0, commander@~2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" @@ -1692,7 +1758,7 @@ conventional-recommended-bump@^1.0.0: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.4.0, convert-source-map@^1.5.0: +convert-source-map@^1.1.0, convert-source-map@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" @@ -1708,7 +1774,7 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: version "2.5.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" @@ -2439,7 +2505,19 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -esutils@^2.0.2: +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + +estree-walker@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" + +estree-walker@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.0.tgz#aae3b57c42deb8010e349c892462f0e71c5dd1aa" + +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2925,7 +3003,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -2965,7 +3043,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3091,12 +3169,9 @@ hoist-non-react-statics@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" +home-or-tmp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" hosted-git-info@^2.1.4: version "2.5.0" @@ -3405,6 +3480,10 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -3437,7 +3516,7 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -3898,6 +3977,10 @@ jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" @@ -4201,6 +4284,12 @@ macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" +magic-string@^0.22.4: + version "0.22.4" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff" + dependencies: + vlq "^0.2.1" + make-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" @@ -4443,6 +4532,10 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + node-notifier@^5.0.2: version "5.1.2" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" @@ -4718,7 +4811,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4729,13 +4822,13 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" +output-file-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.0.tgz#5d348a1a1eaed1ad168648a01a2d6d13078ce987" dependencies: - graceful-fs "^4.1.4" + graceful-fs "^4.1.11" + is-plain-obj "^1.1.0" mkdirp "^0.5.1" - object-assign "^4.1.0" p-cancelable@^0.3.0: version "0.3.0" @@ -4820,7 +4913,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -4896,6 +4989,12 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pirates@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-3.0.1.tgz#8a87bf9ab7f58d6c3deee6a1a1c892ffe823811f" + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" @@ -5196,7 +5295,7 @@ pretty-format@^21.2.1: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -private@^0.1.6, private@^0.1.7: +private@^0.1.6: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -5465,21 +5564,23 @@ reduce-function-call@^1.0.1: dependencies: balanced-match "^0.4.2" -regenerate@^1.2.1: +regenerate-unicode-properties@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-5.1.1.tgz#f5b947b5b7514b79ce58a756659724fa9444c06b" + dependencies: + regenerate "^1.3.2" + +regenerate@^1.2.1, regenerate@^1.3.2, regenerate@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - regenerator-runtime@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" +regenerator-transform@0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.0.tgz#f9ab3eac9cc2de38431d996a6a8abf1c50f2e459" dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" @@ -5499,24 +5600,37 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" +regexpu-core@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.1.3.tgz#fb81616dbbc2a917a7419b33f8379144f51eb8d0" dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + regenerate "^1.3.3" + regenerate-unicode-properties "^5.1.1" + regjsgen "^0.3.0" + regjsparser "^0.2.1" + unicode-match-property-ecmascript "^1.0.3" + unicode-match-property-value-ecmascript "^1.0.1" regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" +regjsgen@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.3.0.tgz#0ee4a3e9276430cda25f1e789ea6c15b87b0cb43" + regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" +regjsparser@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.2.1.tgz#c3787553faf04e775c302102ef346d995000ec1c" + dependencies: + jsesc "~0.5.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -5620,7 +5734,7 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.2.0: +resolve@^1.1.6, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" dependencies: @@ -5663,6 +5777,67 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rollup-plugin-babel@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-3.0.2.tgz#a2765dea0eaa8aece351c983573300d17497495b" + dependencies: + rollup-pluginutils "^1.5.0" + +rollup-plugin-commonjs@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.1.tgz#5e40c78375eb163c14c76bce69da1750e5905a2e" + dependencies: + acorn "^5.1.1" + estree-walker "^0.5.0" + magic-string "^0.22.4" + resolve "^1.4.0" + rollup-pluginutils "^2.0.1" + +rollup-plugin-ignore@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-ignore/-/rollup-plugin-ignore-1.0.3.tgz#9a3caac6709e481471ce4498a48164bbc2359e3d" + +rollup-plugin-node-resolve@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0" + dependencies: + browser-resolve "^1.11.0" + builtin-modules "^1.1.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-plugin-replace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277" + dependencies: + magic-string "^0.22.4" + minimatch "^3.0.2" + rollup-pluginutils "^2.0.1" + +rollup-plugin-uglify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-2.0.1.tgz#67b37ad1efdafbd83af4c36b40c189ee4866c969" + dependencies: + uglify-js "^3.0.9" + +rollup-pluginutils@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + +rollup-pluginutils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" + dependencies: + estree-walker "^0.3.0" + micromatch "^2.3.11" + +rollup@^0.50.0: + version "0.50.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.50.0.tgz#4c158f4e780e6cb33ff0dbfc184a52cc58cd5f3b" + rst-selector-parser@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.2.tgz#9927b619bd5af8dc23a76c64caef04edf90d2c65" @@ -5885,7 +6060,7 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" -source-map-support@^0.4.15: +source-map-support@^0.4.2: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: @@ -5897,7 +6072,7 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -6339,6 +6514,13 @@ uglify-js@^2.6, uglify-js@^2.8.27, uglify-js@^2.8.29: optionalDependencies: uglify-to-browserify "~1.0.0" +uglify-js@^3.0.9: + version "3.1.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.3.tgz#d61f0453b4718cab01581f3162aa90bab7520b42" + dependencies: + commander "~2.11.0" + source-map "~0.5.1" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" @@ -6359,6 +6541,25 @@ underscore@~1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" +unicode-canonical-property-names-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.2.tgz#08ef9ec454392fc5ed99b08a70524ae3881c0306" + +unicode-match-property-ecmascript@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.3.tgz#db9b1cb4ffc67e0c5583780b1b59370e4cbe97b9" + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.2" + unicode-property-aliases-ecmascript "^1.0.3" + +unicode-match-property-value-ecmascript@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.1.tgz#fea059120a016f403afd3bf586162b4db03e0604" + +unicode-property-aliases-ecmascript@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.3.tgz#ac3522583b9e630580f916635333e00c5ead690d" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -6398,10 +6599,6 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6424,12 +6621,6 @@ uuid@^3.0.0, uuid@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" @@ -6453,6 +6644,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vlq@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" From abaac38cf6e672bf707fa0aad0f32434415eaf4b Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Thu, 5 Oct 2017 11:19:26 +0200 Subject: [PATCH 2/3] Add exmaples for umd --- README.md | 32 ++++++++++++++++++++++---------- examples/umd/development.html | 32 ++++++++++++++++++++++++++++++++ examples/umd/production.html | 32 ++++++++++++++++++++++++++++++++ webpack.config.js | 17 ++++++----------- 4 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 examples/umd/development.html create mode 100644 examples/umd/production.html diff --git a/README.md b/README.md index 3c5aff1ad7..f6699e93c5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Accessible react tab component -> Supports React 0.14.9+ and 15.3+ +> Supports React 0.14.9+, 15.3+ and 16+ ## Installing @@ -10,18 +10,16 @@ Accessible react tab component yarn add react-tabs ``` -You can also still use npm - -```bash -npm install react-tabs --save -``` - -Or use directly in your html as UMD component +You can also use react-tabs directly as UMD build in an HTML document by adding ```html - + + + + + + + +
+ + + + diff --git a/examples/umd/production.html b/examples/umd/production.html new file mode 100644 index 0000000000..86797ca429 --- /dev/null +++ b/examples/umd/production.html @@ -0,0 +1,32 @@ + + + + + + Hello World + + + + + + + + +
+ + + + diff --git a/webpack.config.js b/webpack.config.js index 7030d64473..95654384a7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -7,16 +7,13 @@ const webpack = require('webpack'); const EXAMPLES_DIR = path.join(__dirname, 'examples'); function buildEntries() { - return fs.readdirSync(EXAMPLES_DIR).reduce(function (entries, dir) { - if (dir === 'build') { - return entries; - } - + return fs.readdirSync(EXAMPLES_DIR).reduce(function(entries, dir) { const isDraft = dir.charAt(0) === '_'; const isDirectory = fs.lstatSync(path.join(EXAMPLES_DIR, dir)).isDirectory(); + const entryFile = path.join(EXAMPLES_DIR, dir, 'app.js'); - if (!isDraft && isDirectory) { - entries[dir] = path.join(EXAMPLES_DIR, dir, 'app.js'); + if (!isDraft && isDirectory && fs.existsSync(entryFile)) { + entries[dir] = entryFile; } return entries; @@ -40,11 +37,9 @@ module.exports = { }, { test: /\.css$/, - use: [ 'style-loader', 'css-loader' ], + use: ['style-loader', 'css-loader'], }, ], }, - plugins: [ - new webpack.optimize.CommonsChunkPlugin({ name: 'shared' }), - ] + plugins: [new webpack.optimize.CommonsChunkPlugin({ name: 'shared' })], }; From 93e0804fff080e5491573835780684343c7e4124 Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Thu, 5 Oct 2017 11:23:02 +0200 Subject: [PATCH 3/3] Correct version of external-helpers --- package.json | 2 +- yarn.lock | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c61f76c5bb..a7222a0195 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "babel-eslint": "^8.0.1", "babel-jest": "^21.3.0-beta.1", "babel-loader": "^7.1.2", - "babel-plugin-external-helpers": "^6.22.0", + "babel-plugin-external-helpers": "^7.0.0-beta.2", "babel-plugin-transform-class-properties": "^7.0.0-beta.2", "babel-plugin-transform-object-rest-spread": "^7.0.0-beta.2", "babel-plugin-transform-react-remove-prop-types": "^0.4.0", diff --git a/yarn.lock b/yarn.lock index 59b330e793..aa3bc00736 100644 --- a/yarn.lock +++ b/yarn.lock @@ -591,11 +591,9 @@ babel-plugin-check-es2015-constants@7.0.0-beta.2: version "7.0.0-beta.2" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-7.0.0-beta.2.tgz#0d63c05ffa6e7c90aa0b39ece04a4c03e53e6216" -babel-plugin-external-helpers@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" - dependencies: - babel-runtime "^6.22.0" +babel-plugin-external-helpers@^7.0.0-beta.2: + version "7.0.0-beta.2" + resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-7.0.0-beta.2.tgz#ea094303dda1b6250e20aef3d1369d6c9ffdb4ad" babel-plugin-istanbul@^4.0.0: version "4.1.5"