diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 73186fa..0000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["es2015", "stage-0", "react"] -} diff --git a/.travis.yml b/.travis.yml index f7a64e2..a606097 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,8 @@ os: - linux node_js: - - '6' - - '5' - - '4' + - '8' + - '10' before_install: - npm install -g npm diff --git a/LICENSE b/LICENSE index 2569123..8e6116a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016-2017 Cheton Wu +Copyright (c) 2016-2019 Cheton Wu Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..50b3d2e --- /dev/null +++ b/babel.config.js @@ -0,0 +1,7 @@ +module.exports = { + extends: '@trendmicro/babel-config', + presets: [ + '@babel/preset-env', + '@babel/preset-react', + ] +}; diff --git a/dist/react-infinite-tree.js b/dist/react-infinite-tree.js index 1f80e37..6019d34 100644 --- a/dist/react-infinite-tree.js +++ b/dist/react-infinite-tree.js @@ -1,4 +1,4 @@ -/*! react-infinite-tree v1.0.0-alpha.5 | (c) 2018 Cheton Wu | MIT | https://github.com/cheton/react-infinite-tree */ +/*! react-infinite-tree v1.0.0 | (c) 2019 Cheton Wu | MIT | https://github.com/cheton/react-infinite-tree */ exports["InfiniteTree"] = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache @@ -38,14 +38,34 @@ exports["InfiniteTree"] = /******/ // 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 -/******/ }); +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? @@ -61,2110 +81,152 @@ exports["InfiniteTree"] = /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ +/******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 7); +/******/ return __webpack_require__(__webpack_require__.s = "./lib/index.js"); /******/ }) /************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; +/******/ ({ -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 1 */ +/***/ "./lib/InfiniteTree.js": +/*!*****************************!*\ + !*** ./lib/InfiniteTree.js ***! + \*****************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - */ - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _infiniteTree = _interopRequireDefault(__webpack_require__(/*! infinite-tree */ \"infinite-tree\"));\n\nvar _reactTinyVirtualList = _interopRequireDefault(__webpack_require__(/*! react-tiny-virtual-list */ \"./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar lcfirst = function lcfirst(str) {\n str += '';\n return str.charAt(0).toLowerCase() + str.substr(1);\n};\n\nvar _default =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(_default, _Component);\n\n function _default() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, _default);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(_default)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"tree\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n nodes: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"eventHandlers\", {\n onContentWillUpdate: null,\n onContentDidUpdate: null,\n onOpenNode: null,\n onCloseNode: null,\n onSelectNode: null,\n onWillOpenNode: null,\n onWillCloseNode: null,\n onWillSelectNode: null\n });\n\n return _this;\n }\n\n _createClass(_default, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n style = _this$props.style,\n options = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"style\"]);\n\n if (options.el !== undefined) {\n delete options.el;\n }\n\n options.rowRenderer = function () {\n return '';\n };\n\n this.tree = new _infiniteTree[\"default\"](options); // Filters nodes.\n // https://github.com/cheton/infinite-tree/wiki/Functions:-Tree#filterpredicate-options\n\n var treeFilter = this.tree.filter.bind(this.tree);\n\n this.tree.filter = function () {\n setTimeout(function () {\n _this2.virtualList.recomputeSizes(0);\n }, 0);\n return treeFilter.apply(void 0, arguments);\n }; // Unfilter nodes.\n // https://github.com/cheton/infinite-tree/wiki/Functions:-Tree#unfilter\n\n\n var treeUnfilter = this.tree.unfilter.bind(this.tree);\n\n this.tree.unfilter = function () {\n setTimeout(function () {\n _this2.virtualList.recomputeSizes(0);\n }, 0);\n return treeUnfilter.apply(void 0, arguments);\n }; // Sets the current scroll position to this node.\n // @param {Node} node The Node object.\n // @return {boolean} Returns true on success, false otherwise.\n\n\n this.tree.scrollToNode = function (node) {\n if (!_this2.tree || !_this2.virtualList) {\n return false;\n }\n\n var nodeIndex = _this2.tree.nodes.indexOf(node);\n\n if (nodeIndex < 0) {\n return false;\n }\n\n var offset = _this2.virtualList.getOffsetForIndex(nodeIndex);\n\n _this2.virtualList.scrollTo(offset);\n\n return true;\n }; // Gets (or sets) the current vertical position of the scroll bar.\n // @param {number} [value] If the value is specified, indicates the new position to set the scroll bar to.\n // @return {number} Returns the vertical scroll position.\n\n\n this.tree.scrollTop = function (value) {\n if (!_this2.tree || !_this2.virtualList) {\n return;\n }\n\n if (value !== undefined) {\n _this2.virtualList.scrollTo(Number(value));\n }\n\n return _this2.virtualList.getNodeOffset();\n }; // Updates the tree.\n\n\n this.tree.update = function () {\n _this2.tree.emit('contentWillUpdate');\n\n _this2.setState(function (state) {\n return {\n nodes: _this2.tree.nodes\n };\n }, function () {\n _this2.tree.emit('contentDidUpdate');\n });\n };\n\n Object.keys(this.eventHandlers).forEach(function (key) {\n if (!_this2.props[key]) {\n return;\n }\n\n var eventName = lcfirst(key.substr(2)); // e.g. onContentWillUpdate -> contentWillUpdate\n\n _this2.eventHandlers[key] = _this2.props[key];\n\n _this2.tree.on(eventName, _this2.eventHandlers[key]);\n }); //force component to rerender when this.tree is finally initialized\n\n this.forceUpdate();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n Object.keys(this.eventHandlers).forEach(function (key) {\n if (!_this3.eventHandlers[key]) {\n return;\n }\n\n var eventName = lcfirst(key.substr(2)); // e.g. onUpdate -> update\n\n _this3.tree.removeListener(eventName, _this3.eventHandlers[key]);\n\n _this3.eventHandlers[key] = null;\n });\n this.tree.destroy();\n this.tree = null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props2 = this.props,\n autoOpen = _this$props2.autoOpen,\n selectable = _this$props2.selectable,\n tabIndex = _this$props2.tabIndex,\n data = _this$props2.data,\n width = _this$props2.width,\n height = _this$props2.height,\n rowHeight = _this$props2.rowHeight,\n rowRenderer = _this$props2.rowRenderer,\n shouldLoadNodes = _this$props2.shouldLoadNodes,\n loadNodes = _this$props2.loadNodes,\n shouldSelectNode = _this$props2.shouldSelectNode,\n scrollOffset = _this$props2.scrollOffset,\n scrollToIndex = _this$props2.scrollToIndex,\n onScroll = _this$props2.onScroll,\n onContentWillUpdate = _this$props2.onContentWillUpdate,\n onContentDidUpdate = _this$props2.onContentDidUpdate,\n onOpenNode = _this$props2.onOpenNode,\n onCloseNode = _this$props2.onCloseNode,\n onSelectNode = _this$props2.onSelectNode,\n onWillOpenNode = _this$props2.onWillOpenNode,\n onWillCloseNode = _this$props2.onWillCloseNode,\n onWillSelectNode = _this$props2.onWillSelectNode,\n style = _this$props2.style,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"autoOpen\", \"selectable\", \"tabIndex\", \"data\", \"width\", \"height\", \"rowHeight\", \"rowRenderer\", \"shouldLoadNodes\", \"loadNodes\", \"shouldSelectNode\", \"scrollOffset\", \"scrollToIndex\", \"onScroll\", \"onContentWillUpdate\", \"onContentDidUpdate\", \"onOpenNode\", \"onCloseNode\", \"onSelectNode\", \"onWillOpenNode\", \"onWillCloseNode\", \"onWillSelectNode\", \"style\", \"children\"]);\n\n var render = typeof children === 'function' ? children : rowRenderer;\n var count = this.tree ? this.tree.nodes.length : 0; // VirtualList\n\n var virtualListProps = {};\n\n if (scrollOffset !== undefined && count > 0) {\n virtualListProps.scrollOffset = scrollOffset;\n }\n\n if (scrollToIndex !== undefined && scrollToIndex >= 0 && scrollToIndex < count) {\n virtualListProps.scrollToIndex = scrollToIndex;\n }\n\n if (typeof onScroll === 'function') {\n virtualListProps.onScroll = onScroll;\n }\n\n return _react[\"default\"].createElement(\"div\", _extends({}, props, {\n style: _objectSpread({\n outline: 'none'\n }, style),\n tabIndex: tabIndex\n }), _react[\"default\"].createElement(_reactTinyVirtualList[\"default\"], _extends({\n ref: function ref(node) {\n _this4.virtualList = node;\n },\n width: width,\n height: height,\n itemCount: count,\n itemSize: function itemSize(index) {\n var node = _this4.tree.nodes[index];\n\n if (node && node.state.filtered === false) {\n return 0;\n }\n\n if (typeof rowHeight === 'function') {\n return rowHeight({\n node: _this4.tree.nodes[index],\n tree: _this4.tree\n });\n }\n\n return rowHeight; // Number or Array\n },\n renderItem: function renderItem(_ref) {\n var index = _ref.index,\n style = _ref.style;\n var row = null;\n\n if (typeof render === 'function') {\n var node = _this4.tree.nodes[index];\n\n if (node && node.state.filtered !== false) {\n row = render({\n node: _this4.tree.nodes[index],\n tree: _this4.tree\n });\n }\n }\n\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n style: style\n }, row);\n }\n }, virtualListProps)));\n }\n }]);\n\n return _default;\n}(_react.Component);\n\nexports[\"default\"] = _default;\n\n_defineProperty(_default, \"displayName\", 'InfiniteTree');\n\n_defineProperty(_default, \"propTypes\", {\n // Whether to open all nodes when tree is loaded.\n autoOpen: _propTypes[\"default\"].bool,\n // Whether or not a node is selectable in the tree.\n selectable: _propTypes[\"default\"].bool,\n // Specifies the tab order to make tree focusable.\n tabIndex: _propTypes[\"default\"].number,\n // Tree data structure, or a collection of tree data structures.\n data: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n // Width of the tree.\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]).isRequired,\n // Height of the tree.\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]).isRequired,\n // Either a fixed height, an array containing the heights of all the rows, or a function that returns the height of a row given its index: `(index: number): number`\n rowHeight: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].number, _propTypes[\"default\"].array, _propTypes[\"default\"].func]).isRequired,\n // A row renderer for rendering a tree node.\n rowRenderer: _propTypes[\"default\"].func,\n // Loads nodes on demand.\n loadNodes: _propTypes[\"default\"].func,\n // Provides a function to determine if a node can be selected or deselected. The function must return `true` or `false`. This function will not take effect if `selectable` is not `true`.\n shouldSelectNode: _propTypes[\"default\"].func,\n // Controls the scroll offset.\n scrollOffset: _propTypes[\"default\"].number,\n // Node index to scroll to.\n scrollToIndex: _propTypes[\"default\"].number,\n // Callback invoked whenever the scroll offset changes.\n onScroll: _propTypes[\"default\"].func,\n // Callback invoked before updating the tree.\n onContentWillUpdate: _propTypes[\"default\"].func,\n // Callback invoked when the tree is updated.\n onContentDidUpdate: _propTypes[\"default\"].func,\n // Callback invoked when a node is opened.\n onOpenNode: _propTypes[\"default\"].func,\n // Callback invoked when a node is closed.\n onCloseNode: _propTypes[\"default\"].func,\n // Callback invoked when a node is selected or deselected.\n onSelectNode: _propTypes[\"default\"].func,\n // Callback invoked before opening a node.\n onWillOpenNode: _propTypes[\"default\"].func,\n // Callback invoked before closing a node.\n onWillCloseNode: _propTypes[\"default\"].func,\n // Callback invoked before selecting or deselecting a node.\n onWillSelectNode: _propTypes[\"default\"].func\n});\n\n_defineProperty(_default, \"defaultProps\", {\n autoOpen: false,\n selectable: true,\n tabIndex: 0,\n data: [],\n width: '100%'\n});\n\n;\n\n//# sourceURL=webpack://InfiniteTree/./lib/InfiniteTree.js?"); /***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - - - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ -var validateFormat = function validateFormat(format) {}; - -if (process.env.NODE_ENV !== 'production') { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; -} - -function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -} - -module.exports = invariant; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - -/***/ }), -/* 3 */ +/***/ "./lib/index.js": +/*!**********************!*\ + !*** ./lib/index.js ***! + \**********************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _InfiniteTree = _interopRequireDefault(__webpack_require__(/*! ./InfiniteTree */ \"./lib/InfiniteTree.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _InfiniteTree[\"default\"];\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://InfiniteTree/./lib/index.js?"); /***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (process.env.NODE_ENV !== 'production') { - var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && - Symbol.for && - Symbol.for('react.element')) || - 0xeac7; - - var isValidElement = function(object) { - return typeof object === 'object' && - object !== null && - object.$$typeof === REACT_ELEMENT_TYPE; - }; - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(9)(isValidElement, throwOnDirectAccess); -} else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(12)(); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - -/***/ }), -/* 5 */ +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - - - -var emptyFunction = __webpack_require__(1); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if (process.env.NODE_ENV !== 'production') { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; -} - -module.exports = warning; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/object-assign/index.js?"); /***/ }), -/* 6 */ -/***/ (function(module, exports) { - -module.exports = require("react"); -/***/ }), -/* 7 */ +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -var _InfiniteTree = __webpack_require__(8); - -var _InfiniteTree2 = _interopRequireDefault(_InfiniteTree); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = _InfiniteTree2.default; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/checkPropTypes.js?"); /***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _propTypes = __webpack_require__(4); - -var _propTypes2 = _interopRequireDefault(_propTypes); - -var _react = __webpack_require__(6); - -var _react2 = _interopRequireDefault(_react); - -var _infiniteTree = __webpack_require__(13); - -var _infiniteTree2 = _interopRequireDefault(_infiniteTree); - -var _reactTinyVirtualList = __webpack_require__(14); - -var _reactTinyVirtualList2 = _interopRequireDefault(_reactTinyVirtualList); - -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 lcfirst = function lcfirst(str) { - str += ''; - return str.charAt(0).toLowerCase() + str.substr(1); -}; - -var _class = function (_Component) { - _inherits(_class, _Component); - - function _class() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, _class); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = _class.__proto__ || Object.getPrototypeOf(_class)).call.apply(_ref, [this].concat(args))), _this), _this.tree = null, _this.state = { - nodes: [] - }, _this.eventHandlers = { - onContentWillUpdate: null, - onContentDidUpdate: null, - onOpenNode: null, - onCloseNode: null, - onSelectNode: null, - onWillOpenNode: null, - onWillCloseNode: null, - onWillSelectNode: null - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(_class, [{ - key: 'componentDidMount', - value: function componentDidMount() { - var _this2 = this; - - var _props = this.props, - children = _props.children, - className = _props.className, - style = _props.style, - options = _objectWithoutProperties(_props, ['children', 'className', 'style']); - - if (options.el !== undefined) { - delete options.el; - } - - options.rowRenderer = function () { - return ''; - }; - - this.tree = new _infiniteTree2.default(options); - - // Filters nodes. - // https://github.com/cheton/infinite-tree/wiki/Functions:-Tree#filterpredicate-options - var treeFilter = this.tree.filter.bind(this.tree); - this.tree.filter = function () { - setTimeout(function () { - _this2.virtualList.recomputeSizes(0); - }, 0); - return treeFilter.apply(undefined, arguments); - }; - - // Unfilter nodes. - // https://github.com/cheton/infinite-tree/wiki/Functions:-Tree#unfilter - var treeUnfilter = this.tree.unfilter.bind(this.tree); - this.tree.unfilter = function () { - setTimeout(function () { - _this2.virtualList.recomputeSizes(0); - }, 0); - return treeUnfilter.apply(undefined, arguments); - }; - - // Sets the current scroll position to this node. - // @param {Node} node The Node object. - // @return {boolean} Returns true on success, false otherwise. - this.tree.scrollToNode = function (node) { - if (!_this2.tree || !_this2.virtualList) { - return false; - } - - var nodeIndex = _this2.tree.nodes.indexOf(node); - if (nodeIndex < 0) { - return false; - } - - var offset = _this2.virtualList.getOffsetForIndex(nodeIndex); - _this2.virtualList.scrollTo(offset); - - return true; - }; - - // Gets (or sets) the current vertical position of the scroll bar. - // @param {number} [value] If the value is specified, indicates the new position to set the scroll bar to. - // @return {number} Returns the vertical scroll position. - this.tree.scrollTop = function (value) { - if (!_this2.tree || !_this2.virtualList) { - return; - } - - if (value !== undefined) { - _this2.virtualList.scrollTo(Number(value)); - } - - return _this2.virtualList.getNodeOffset(); - }; - - // Updates the tree. - this.tree.update = function () { - _this2.tree.emit('contentWillUpdate'); - _this2.setState(function (state) { - return { - nodes: _this2.tree.nodes - }; - }, function () { - _this2.tree.emit('contentDidUpdate'); - }); - }; - - Object.keys(this.eventHandlers).forEach(function (key) { - if (!_this2.props[key]) { - return; - } - - var eventName = lcfirst(key.substr(2)); // e.g. onContentWillUpdate -> contentWillUpdate - _this2.eventHandlers[key] = _this2.props[key]; - _this2.tree.on(eventName, _this2.eventHandlers[key]); - }); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - var _this3 = this; - - Object.keys(this.eventHandlers).forEach(function (key) { - if (!_this3.eventHandlers[key]) { - return; - } - - var eventName = lcfirst(key.substr(2)); // e.g. onUpdate -> update - _this3.tree.removeListener(eventName, _this3.eventHandlers[key]); - _this3.eventHandlers[key] = null; - }); - - this.tree.destroy(); - this.tree = null; - } - }, { - key: 'render', - value: function render() { - var _this4 = this; - var _props2 = this.props, - autoOpen = _props2.autoOpen, - selectable = _props2.selectable, - tabIndex = _props2.tabIndex, - data = _props2.data, - width = _props2.width, - height = _props2.height, - rowHeight = _props2.rowHeight, - rowRenderer = _props2.rowRenderer, - loadNodes = _props2.loadNodes, - shouldSelectNode = _props2.shouldSelectNode, - scrollOffset = _props2.scrollOffset, - scrollToIndex = _props2.scrollToIndex, - onScroll = _props2.onScroll, - onContentWillUpdate = _props2.onContentWillUpdate, - onContentDidUpdate = _props2.onContentDidUpdate, - onOpenNode = _props2.onOpenNode, - onCloseNode = _props2.onCloseNode, - onSelectNode = _props2.onSelectNode, - onWillOpenNode = _props2.onWillOpenNode, - onWillCloseNode = _props2.onWillCloseNode, - onWillSelectNode = _props2.onWillSelectNode, - style = _props2.style, - children = _props2.children, - props = _objectWithoutProperties(_props2, ['autoOpen', 'selectable', 'tabIndex', 'data', 'width', 'height', 'rowHeight', 'rowRenderer', 'loadNodes', 'shouldSelectNode', 'scrollOffset', 'scrollToIndex', 'onScroll', 'onContentWillUpdate', 'onContentDidUpdate', 'onOpenNode', 'onCloseNode', 'onSelectNode', 'onWillOpenNode', 'onWillCloseNode', 'onWillSelectNode', 'style', 'children']); - - var render = typeof children === 'function' ? children : rowRenderer; - - var count = this.tree ? this.tree.nodes.length : 0; - - // VirtualList - var virtualListProps = {}; - if (scrollOffset !== undefined && count > 0) { - virtualListProps.scrollOffset = scrollOffset; - } - if (scrollToIndex !== undefined && scrollToIndex >= 0 && scrollToIndex < count) { - virtualListProps.scrollToIndex = scrollToIndex; - } - if (typeof onScroll === 'function') { - virtualListProps.onScroll = onScroll; - } - - return _react2.default.createElement( - 'div', - _extends({}, props, { - style: _extends({ - outline: 'none' - }, style), - tabIndex: tabIndex - }), - _react2.default.createElement(_reactTinyVirtualList2.default, _extends({ - ref: function ref(node) { - _this4.virtualList = node; - }, - width: width, - height: height, - itemCount: count, - itemSize: function itemSize(index) { - var node = _this4.tree.nodes[index]; - if (node && node.state.filtered === false) { - return 0; - } - - if (typeof rowHeight === 'function') { - return rowHeight({ - node: _this4.tree.nodes[index], - tree: _this4.tree - }); - } - - return rowHeight; // Number or Array - }, - renderItem: function renderItem(_ref2) { - var index = _ref2.index, - style = _ref2.style; - - var row = null; - - if (typeof render === 'function') { - var node = _this4.tree.nodes[index]; - if (node && node.state.filtered !== false) { - row = render({ - node: _this4.tree.nodes[index], - tree: _this4.tree - }); - } - } - - return _react2.default.createElement( - 'div', - { key: index, style: style }, - row - ); - } - }, virtualListProps)) - ); - } - }]); - - return _class; -}(_react.Component); - -_class.displayName = 'InfiniteTree'; -_class.propTypes = { - // Whether to open all nodes when tree is loaded. - autoOpen: _propTypes2.default.bool, - - // Whether or not a node is selectable in the tree. - selectable: _propTypes2.default.bool, - - // Specifies the tab order to make tree focusable. - tabIndex: _propTypes2.default.number, - - // Tree data structure, or a collection of tree data structures. - data: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]), - - // Width of the tree. - width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired, - - // Height of the tree. - height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired, - - // Either a fixed height, an array containing the heights of all the rows, or a function that returns the height of a row given its index: `(index: number): number` - rowHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.array, _propTypes2.default.func]).isRequired, - - // A row renderer for rendering a tree node. - rowRenderer: _propTypes2.default.func, - - // Loads nodes on demand. - loadNodes: _propTypes2.default.func, - - // Provides a function to determine if a node can be selected or deselected. The function must return `true` or `false`. This function will not take effect if `selectable` is not `true`. - shouldSelectNode: _propTypes2.default.func, - - // Controls the scroll offset. - scrollOffset: _propTypes2.default.number, - - // Node index to scroll to. - scrollToIndex: _propTypes2.default.number, - - // Callback invoked whenever the scroll offset changes. - onScroll: _propTypes2.default.func, - - // Callback invoked before updating the tree. - onContentWillUpdate: _propTypes2.default.func, - - // Callback invoked when the tree is updated. - onContentDidUpdate: _propTypes2.default.func, - - // Callback invoked when a node is opened. - onOpenNode: _propTypes2.default.func, - - // Callback invoked when a node is closed. - onCloseNode: _propTypes2.default.func, - - // Callback invoked when a node is selected or deselected. - onSelectNode: _propTypes2.default.func, - - // Callback invoked before opening a node. - onWillOpenNode: _propTypes2.default.func, - - // Callback invoked before closing a node. - onWillCloseNode: _propTypes2.default.func, - - // Callback invoked before selecting or deselecting a node. - onWillSelectNode: _propTypes2.default.func -}; -_class.defaultProps = { - autoOpen: false, - selectable: true, - tabIndex: 0, - data: [], - width: '100%' -}; -exports.default = _class; -; - -/***/ }), -/* 9 */ +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var emptyFunction = __webpack_require__(1); -var invariant = __webpack_require__(2); -var warning = __webpack_require__(5); -var assign = __webpack_require__(10); - -var ReactPropTypesSecret = __webpack_require__(3); -var checkPropTypes = __webpack_require__(11); - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - warning( - false, - 'You are manually calling a React.PropTypes validation ' + - 'function for the `%s` prop on `%s`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', - propFullName, - componentName - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - warning( - false, - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received %s at index %s.', - getPostfixForTypeWarning(checker), - i - ); - return emptyFunction.thatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/factoryWithTypeCheckers.js?"); - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.PropTypes = ReactPropTypes; +/***/ }), - return ReactPropTypes; -}; +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/index.js?"); /***/ }), -/* 10 */ + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/lib/ReactPropTypesSecret.js?"); /***/ }), -/* 11 */ + +/***/ "./node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -if (process.env.NODE_ENV !== 'production') { - var invariant = __webpack_require__(2); - var warning = __webpack_require__(5); - var ReactPropTypesSecret = __webpack_require__(3); - var loggedTypeFailures = {}; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); - } - } - } - } -} - -module.exports = checkPropTypes; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +eval("/** @license React v16.10.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\nvar lowPriorityWarningWithoutStack = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarningWithoutStack = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/react-is/cjs/react-is.development.js?"); /***/ }), -/* 12 */ + +/***/ "./node_modules/react-is/index.js": +/*!****************************************!*\ + !*** ./node_modules/react-is/index.js ***! + \****************************************/ +/*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var emptyFunction = __webpack_require__(1); -var invariant = __webpack_require__(2); -var ReactPropTypesSecret = __webpack_require__(3); - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim - }; - - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/react-is/index.js?"); /***/ }), -/* 13 */ -/***/ (function(module, exports) { -module.exports = require("infinite-tree"); - -/***/ }), -/* 14 */ +/***/ "./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js ***! + \**********************************************************************************/ +/*! exports provided: ScrollDirection, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(4); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScrollDirection\", function() { return DIRECTION; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\n\nvar ALIGNMENT;\n(function (ALIGNMENT) {\n ALIGNMENT[\"AUTO\"] = \"auto\";\n ALIGNMENT[\"START\"] = \"start\";\n ALIGNMENT[\"CENTER\"] = \"center\";\n ALIGNMENT[\"END\"] = \"end\";\n})(ALIGNMENT || (ALIGNMENT = {}));\nvar DIRECTION;\n(function (DIRECTION) {\n DIRECTION[\"HORIZONTAL\"] = \"horizontal\";\n DIRECTION[\"VERTICAL\"] = \"vertical\";\n})(DIRECTION || (DIRECTION = {}));\nvar SCROLL_CHANGE_REASON;\n(function (SCROLL_CHANGE_REASON) {\n SCROLL_CHANGE_REASON[\"OBSERVED\"] = \"observed\";\n SCROLL_CHANGE_REASON[\"REQUESTED\"] = \"requested\";\n})(SCROLL_CHANGE_REASON || (SCROLL_CHANGE_REASON = {}));\nvar scrollProp = (_a = {}, _a[DIRECTION.VERTICAL] = 'scrollTop', _a[DIRECTION.HORIZONTAL] = 'scrollLeft', _a);\nvar sizeProp = (_b = {}, _b[DIRECTION.VERTICAL] = 'height', _b[DIRECTION.HORIZONTAL] = 'width', _b);\nvar positionProp = (_c = {}, _c[DIRECTION.VERTICAL] = 'top', _c[DIRECTION.HORIZONTAL] = 'left', _c);\nvar marginProp = (_d = {}, _d[DIRECTION.VERTICAL] = 'marginTop', _d[DIRECTION.HORIZONTAL] = 'marginLeft', _d);\nvar oppositeMarginProp = (_e = {}, _e[DIRECTION.VERTICAL] = 'marginBottom', _e[DIRECTION.HORIZONTAL] = 'marginRight', _e);\nvar _a;\nvar _b;\nvar _c;\nvar _d;\nvar _e;\n\n/* Forked from react-virtualized 💖 */\nvar SizeAndPositionManager = /** @class */function () {\n function SizeAndPositionManager(_a) {\n var itemCount = _a.itemCount,\n itemSizeGetter = _a.itemSizeGetter,\n estimatedItemSize = _a.estimatedItemSize;\n this.itemSizeGetter = itemSizeGetter;\n this.itemCount = itemCount;\n this.estimatedItemSize = estimatedItemSize;\n // Cache of size and position data for items, mapped by item index.\n this.itemSizeAndPositionData = {};\n // Measurements for items up to this index can be trusted; items afterward should be estimated.\n this.lastMeasuredIndex = -1;\n }\n SizeAndPositionManager.prototype.updateConfig = function (_a) {\n var itemCount = _a.itemCount,\n itemSizeGetter = _a.itemSizeGetter,\n estimatedItemSize = _a.estimatedItemSize;\n if (itemCount != null) {\n this.itemCount = itemCount;\n }\n if (estimatedItemSize != null) {\n this.estimatedItemSize = estimatedItemSize;\n }\n if (itemSizeGetter != null) {\n this.itemSizeGetter = itemSizeGetter;\n }\n };\n SizeAndPositionManager.prototype.getLastMeasuredIndex = function () {\n return this.lastMeasuredIndex;\n };\n /**\n * This method returns the size and position for the item at the specified index.\n * It just-in-time calculates (or used cached values) for items leading up to the index.\n */\n SizeAndPositionManager.prototype.getSizeAndPositionForIndex = function (index) {\n if (index < 0 || index >= this.itemCount) {\n throw Error(\"Requested index \" + index + \" is outside of range 0..\" + this.itemCount);\n }\n if (index > this.lastMeasuredIndex) {\n var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();\n var offset = lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size;\n for (var i = this.lastMeasuredIndex + 1; i <= index; i++) {\n var size = this.itemSizeGetter(i);\n if (size == null || isNaN(size)) {\n throw Error(\"Invalid size returned for index \" + i + \" of value \" + size);\n }\n this.itemSizeAndPositionData[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n this.lastMeasuredIndex = index;\n }\n return this.itemSizeAndPositionData[index];\n };\n SizeAndPositionManager.prototype.getSizeAndPositionOfLastMeasuredItem = function () {\n return this.lastMeasuredIndex >= 0 ? this.itemSizeAndPositionData[this.lastMeasuredIndex] : { offset: 0, size: 0 };\n };\n /**\n * Total size of all items being measured.\n * This value will be completedly estimated initially.\n * As items as measured the estimate will be updated.\n */\n SizeAndPositionManager.prototype.getTotalSize = function () {\n var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();\n return lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size + (this.itemCount - this.lastMeasuredIndex - 1) * this.estimatedItemSize;\n };\n /**\n * Determines a new offset that ensures a certain item is visible, given the alignment.\n *\n * @param align Desired alignment within container; one of \"start\" (default), \"center\", or \"end\"\n * @param containerSize Size (width or height) of the container viewport\n * @return Offset to use to ensure the specified item is visible\n */\n SizeAndPositionManager.prototype.getUpdatedOffsetForIndex = function (_a) {\n var _b = _a.align,\n align = _b === void 0 ? ALIGNMENT.START : _b,\n containerSize = _a.containerSize,\n currentOffset = _a.currentOffset,\n targetIndex = _a.targetIndex;\n if (containerSize <= 0) {\n return 0;\n }\n var datum = this.getSizeAndPositionForIndex(targetIndex);\n var maxOffset = datum.offset;\n var minOffset = maxOffset - containerSize + datum.size;\n var idealOffset;\n switch (align) {\n case ALIGNMENT.END:\n idealOffset = minOffset;\n break;\n case ALIGNMENT.CENTER:\n idealOffset = maxOffset - (containerSize - datum.size) / 2;\n break;\n case ALIGNMENT.START:\n idealOffset = maxOffset;\n break;\n default:\n idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n var totalSize = this.getTotalSize();\n return Math.max(0, Math.min(totalSize - containerSize, idealOffset));\n };\n SizeAndPositionManager.prototype.getVisibleRange = function (_a) {\n var containerSize = _a.containerSize,\n offset = _a.offset,\n overscanCount = _a.overscanCount;\n var totalSize = this.getTotalSize();\n if (totalSize === 0) {\n return {};\n }\n var maxOffset = offset + containerSize;\n var start = this.findNearestItem(offset);\n if (typeof start === 'undefined') {\n throw Error(\"Invalid offset \" + offset + \" specified\");\n }\n var datum = this.getSizeAndPositionForIndex(start);\n offset = datum.offset + datum.size;\n var stop = start;\n while (offset < maxOffset && stop < this.itemCount - 1) {\n stop++;\n offset += this.getSizeAndPositionForIndex(stop).size;\n }\n if (overscanCount) {\n start = Math.max(0, start - overscanCount);\n stop = Math.min(stop + overscanCount, this.itemCount - 1);\n }\n return {\n start: start,\n stop: stop\n };\n };\n /**\n * Clear all cached values for items after the specified index.\n * This method should be called for any item that has changed its size.\n * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionForIndex() is called.\n */\n SizeAndPositionManager.prototype.resetItem = function (index) {\n this.lastMeasuredIndex = Math.min(this.lastMeasuredIndex, index - 1);\n };\n /**\n * Searches for the item (index) nearest the specified offset.\n *\n * If no exact match is found the next lowest item index will be returned.\n * This allows partially visible items (with offsets just before/above the fold) to be visible.\n */\n SizeAndPositionManager.prototype.findNearestItem = function (offset) {\n if (isNaN(offset)) {\n throw Error(\"Invalid offset \" + offset + \" specified\");\n }\n // Our search algorithms find the nearest match at or below the specified offset.\n // So make sure the offset is at least 0 or no match will be found.\n offset = Math.max(0, offset);\n var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();\n var lastMeasuredIndex = Math.max(0, this.lastMeasuredIndex);\n if (lastMeasuredSizeAndPosition.offset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return this.binarySearch({\n high: lastMeasuredIndex,\n low: 0,\n offset: offset\n });\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return this.exponentialSearch({\n index: lastMeasuredIndex,\n offset: offset\n });\n }\n };\n SizeAndPositionManager.prototype.binarySearch = function (_a) {\n var low = _a.low,\n high = _a.high,\n offset = _a.offset;\n var middle = 0;\n var currentOffset = 0;\n while (low <= high) {\n middle = low + Math.floor((high - low) / 2);\n currentOffset = this.getSizeAndPositionForIndex(middle).offset;\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n if (low > 0) {\n return low - 1;\n }\n return 0;\n };\n SizeAndPositionManager.prototype.exponentialSearch = function (_a) {\n var index = _a.index,\n offset = _a.offset;\n var interval = 1;\n while (index < this.itemCount && this.getSizeAndPositionForIndex(index).offset < offset) {\n index += interval;\n interval *= 2;\n }\n return this.binarySearch({\n high: Math.min(index, this.itemCount - 1),\n low: Math.floor(index / 2),\n offset: offset\n });\n };\n return SizeAndPositionManager;\n}();\n\nvar STYLE_WRAPPER = {\n overflow: 'auto',\n willChange: 'transform',\n WebkitOverflowScrolling: 'touch'\n};\nvar STYLE_INNER = {\n position: 'relative',\n width: '100%',\n minHeight: '100%'\n};\nvar STYLE_ITEM = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n};\nvar STYLE_STICKY_ITEM = __assign({}, STYLE_ITEM, { position: 'sticky' });\nvar VirtualList = /** @class */function (_super) {\n __extends(VirtualList, _super);\n function VirtualList() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.itemSizeGetter = function (itemSize) {\n return function (index) {\n return _this.getSize(index, itemSize);\n };\n };\n _this.sizeAndPositionManager = new SizeAndPositionManager({\n itemCount: _this.props.itemCount,\n itemSizeGetter: _this.itemSizeGetter(_this.props.itemSize),\n estimatedItemSize: _this.getEstimatedItemSize()\n });\n _this.state = {\n offset: _this.props.scrollOffset || _this.props.scrollToIndex != null && _this.getOffsetForIndex(_this.props.scrollToIndex) || 0,\n scrollChangeReason: SCROLL_CHANGE_REASON.REQUESTED\n };\n _this.styleCache = {};\n _this.getRef = function (node) {\n _this.rootNode = node;\n };\n _this.handleScroll = function (event) {\n var onScroll = _this.props.onScroll;\n var offset = _this.getNodeOffset();\n if (offset < 0 || _this.state.offset === offset || event.target !== _this.rootNode) {\n return;\n }\n _this.setState({\n offset: offset,\n scrollChangeReason: SCROLL_CHANGE_REASON.OBSERVED\n });\n if (typeof onScroll === 'function') {\n onScroll(offset, event);\n }\n };\n return _this;\n }\n VirtualList.prototype.componentDidMount = function () {\n var _a = this.props,\n scrollOffset = _a.scrollOffset,\n scrollToIndex = _a.scrollToIndex;\n this.rootNode.addEventListener('scroll', this.handleScroll, {\n passive: true\n });\n if (scrollOffset != null) {\n this.scrollTo(scrollOffset);\n } else if (scrollToIndex != null) {\n this.scrollTo(this.getOffsetForIndex(scrollToIndex));\n }\n };\n VirtualList.prototype.componentWillReceiveProps = function (nextProps) {\n var _a = this.props,\n estimatedItemSize = _a.estimatedItemSize,\n itemCount = _a.itemCount,\n itemSize = _a.itemSize,\n scrollOffset = _a.scrollOffset,\n scrollToAlignment = _a.scrollToAlignment,\n scrollToIndex = _a.scrollToIndex;\n var scrollPropsHaveChanged = nextProps.scrollToIndex !== scrollToIndex || nextProps.scrollToAlignment !== scrollToAlignment;\n var itemPropsHaveChanged = nextProps.itemCount !== itemCount || nextProps.itemSize !== itemSize || nextProps.estimatedItemSize !== estimatedItemSize;\n if (nextProps.itemSize !== itemSize) {\n this.sizeAndPositionManager.updateConfig({\n itemSizeGetter: this.itemSizeGetter(nextProps.itemSize)\n });\n }\n if (nextProps.itemCount !== itemCount || nextProps.estimatedItemSize !== estimatedItemSize) {\n this.sizeAndPositionManager.updateConfig({\n itemCount: nextProps.itemCount,\n estimatedItemSize: this.getEstimatedItemSize(nextProps)\n });\n }\n if (itemPropsHaveChanged) {\n this.recomputeSizes();\n }\n if (nextProps.scrollOffset !== scrollOffset) {\n this.setState({\n offset: nextProps.scrollOffset || 0,\n scrollChangeReason: SCROLL_CHANGE_REASON.REQUESTED\n });\n } else if (typeof nextProps.scrollToIndex === 'number' && (scrollPropsHaveChanged || itemPropsHaveChanged)) {\n this.setState({\n offset: this.getOffsetForIndex(nextProps.scrollToIndex, nextProps.scrollToAlignment, nextProps.itemCount),\n scrollChangeReason: SCROLL_CHANGE_REASON.REQUESTED\n });\n }\n };\n VirtualList.prototype.componentDidUpdate = function (_, prevState) {\n var _a = this.state,\n offset = _a.offset,\n scrollChangeReason = _a.scrollChangeReason;\n if (prevState.offset !== offset && scrollChangeReason === SCROLL_CHANGE_REASON.REQUESTED) {\n this.scrollTo(offset);\n }\n };\n VirtualList.prototype.componentWillUnmount = function () {\n this.rootNode.removeEventListener('scroll', this.handleScroll);\n };\n VirtualList.prototype.scrollTo = function (value) {\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n this.rootNode[scrollProp[scrollDirection]] = value;\n };\n VirtualList.prototype.getOffsetForIndex = function (index, scrollToAlignment, itemCount) {\n if (scrollToAlignment === void 0) {\n scrollToAlignment = this.props.scrollToAlignment;\n }\n if (itemCount === void 0) {\n itemCount = this.props.itemCount;\n }\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n if (index < 0 || index >= itemCount) {\n index = 0;\n }\n return this.sizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: this.props[sizeProp[scrollDirection]],\n currentOffset: this.state && this.state.offset || 0,\n targetIndex: index\n });\n };\n VirtualList.prototype.recomputeSizes = function (startIndex) {\n if (startIndex === void 0) {\n startIndex = 0;\n }\n this.styleCache = {};\n this.sizeAndPositionManager.resetItem(startIndex);\n };\n VirtualList.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n estimatedItemSize = _a.estimatedItemSize,\n height = _a.height,\n _b = _a.overscanCount,\n overscanCount = _b === void 0 ? 3 : _b,\n renderItem = _a.renderItem,\n itemCount = _a.itemCount,\n itemSize = _a.itemSize,\n onItemsRendered = _a.onItemsRendered,\n onScroll = _a.onScroll,\n _c = _a.scrollDirection,\n scrollDirection = _c === void 0 ? DIRECTION.VERTICAL : _c,\n scrollOffset = _a.scrollOffset,\n scrollToIndex = _a.scrollToIndex,\n scrollToAlignment = _a.scrollToAlignment,\n stickyIndices = _a.stickyIndices,\n style = _a.style,\n width = _a.width,\n props = __rest(_a, [\"estimatedItemSize\", \"height\", \"overscanCount\", \"renderItem\", \"itemCount\", \"itemSize\", \"onItemsRendered\", \"onScroll\", \"scrollDirection\", \"scrollOffset\", \"scrollToIndex\", \"scrollToAlignment\", \"stickyIndices\", \"style\", \"width\"]);\n var offset = this.state.offset;\n var _d = this.sizeAndPositionManager.getVisibleRange({\n containerSize: this.props[sizeProp[scrollDirection]] || 0,\n offset: offset,\n overscanCount: overscanCount\n }),\n start = _d.start,\n stop = _d.stop;\n var items = [];\n var wrapperStyle = __assign({}, STYLE_WRAPPER, style, { height: height, width: width });\n var innerStyle = __assign({}, STYLE_INNER, (_e = {}, _e[sizeProp[scrollDirection]] = this.sizeAndPositionManager.getTotalSize(), _e));\n if (stickyIndices != null && stickyIndices.length !== 0) {\n stickyIndices.forEach(function (index) {\n return items.push(renderItem({\n index: index,\n style: _this.getStyle(index, true)\n }));\n });\n if (scrollDirection === DIRECTION.HORIZONTAL) {\n innerStyle.display = 'flex';\n }\n }\n if (typeof start !== 'undefined' && typeof stop !== 'undefined') {\n for (var index = start; index <= stop; index++) {\n if (stickyIndices != null && stickyIndices.includes(index)) {\n continue;\n }\n items.push(renderItem({\n index: index,\n style: this.getStyle(index, false)\n }));\n }\n if (typeof onItemsRendered === 'function') {\n onItemsRendered({\n startIndex: start,\n stopIndex: stop\n });\n }\n }\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", __assign({ ref: this.getRef }, props, { style: wrapperStyle }), Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", { style: innerStyle }, items));\n var _e;\n };\n VirtualList.prototype.getNodeOffset = function () {\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n return this.rootNode[scrollProp[scrollDirection]];\n };\n VirtualList.prototype.getEstimatedItemSize = function (props) {\n if (props === void 0) {\n props = this.props;\n }\n return props.estimatedItemSize || typeof props.itemSize === 'number' && props.itemSize || 50;\n };\n VirtualList.prototype.getSize = function (index, itemSize) {\n if (typeof itemSize === 'function') {\n return itemSize(index);\n }\n return Array.isArray(itemSize) ? itemSize[index] : itemSize;\n };\n VirtualList.prototype.getStyle = function (index, sticky) {\n var style = this.styleCache[index];\n if (style) {\n return style;\n }\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n var _b = this.sizeAndPositionManager.getSizeAndPositionForIndex(index),\n size = _b.size,\n offset = _b.offset;\n return this.styleCache[index] = sticky ? __assign({}, STYLE_STICKY_ITEM, (_c = {}, _c[sizeProp[scrollDirection]] = size, _c[marginProp[scrollDirection]] = offset, _c[oppositeMarginProp[scrollDirection]] = -(offset + size), _c.zIndex = 1, _c)) : __assign({}, STYLE_ITEM, (_d = {}, _d[sizeProp[scrollDirection]] = size, _d[positionProp[scrollDirection]] = offset, _d));\n var _c, _d;\n };\n VirtualList.defaultProps = {\n overscanCount: 3,\n scrollDirection: DIRECTION.VERTICAL,\n width: '100%'\n };\n VirtualList.propTypes = {\n estimatedItemSize: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n height: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOfType\"])([prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]]).isRequired,\n itemCount: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n itemSize: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOfType\"])([prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"array\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"]]).isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onItemsRendered: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n overscanCount: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n renderItem: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n scrollOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n scrollToIndex: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n scrollToAlignment: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])([ALIGNMENT.AUTO, ALIGNMENT.START, ALIGNMENT.CENTER, ALIGNMENT.END]),\n scrollDirection: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])([DIRECTION.HORIZONTAL, DIRECTION.VERTICAL]),\n stickyIndices: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"arrayOf\"])(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"]),\n style: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"object\"],\n width: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOfType\"])([prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]])\n };\n return VirtualList;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"PureComponent\"]);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (VirtualList);\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js?"); +/***/ }), +/***/ "infinite-tree": +/*!*********************************************************************************************************************!*\ + !*** external {"root":"InfiniteTree","commonjs2":"infinite-tree","commonjs":"infinite-tree","amd":"infinite-tree"} ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; -}; - -function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; -} - -var ALIGN_AUTO = 'auto'; -var ALIGN_START = 'start'; -var ALIGN_CENTER = 'center'; -var ALIGN_END = 'end'; -var DIRECTION_VERTICAL = 'vertical'; -var DIRECTION_HORIZONTAL = 'horizontal'; -var SCROLL_CHANGE_OBSERVED = 'observed'; -var SCROLL_CHANGE_REQUESTED = 'requested'; -var scrollProp = (_a = {}, _a[DIRECTION_VERTICAL] = 'scrollTop', _a[DIRECTION_HORIZONTAL] = 'scrollLeft', _a); -var sizeProp = (_b = {}, _b[DIRECTION_VERTICAL] = 'height', _b[DIRECTION_HORIZONTAL] = 'width', _b); -var positionProp = (_c = {}, _c[DIRECTION_VERTICAL] = 'top', _c[DIRECTION_HORIZONTAL] = 'left', _c); -var _a; -var _b; -var _c; - -/* Forked from react-virtualized 💖 */ -var SizeAndPositionManager = function () { - function SizeAndPositionManager(_a) { - var itemCount = _a.itemCount, - itemSizeGetter = _a.itemSizeGetter, - estimatedItemSize = _a.estimatedItemSize; - this.itemSizeGetter = itemSizeGetter; - this.itemCount = itemCount; - this.estimatedItemSize = estimatedItemSize; - // Cache of size and position data for items, mapped by item index. - this.itemSizeAndPositionData = {}; - // Measurements for items up to this index can be trusted; items afterward should be estimated. - this.lastMeasuredIndex = -1; - } - SizeAndPositionManager.prototype.updateConfig = function (_a) { - var itemCount = _a.itemCount, - estimatedItemSize = _a.estimatedItemSize; - this.itemCount = itemCount; - this.estimatedItemSize = estimatedItemSize; - }; - SizeAndPositionManager.prototype.getLastMeasuredIndex = function () { - return this.lastMeasuredIndex; - }; - /** - * This method returns the size and position for the item at the specified index. - * It just-in-time calculates (or used cached values) for items leading up to the index. - */ - SizeAndPositionManager.prototype.getSizeAndPositionForIndex = function (index) { - if (index < 0 || index >= this.itemCount) { - throw Error("Requested index " + index + " is outside of range 0.." + this.itemCount); - } - if (index > this.lastMeasuredIndex) { - var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem(); - var offset = lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size; - for (var i = this.lastMeasuredIndex + 1; i <= index; i++) { - var size = this.itemSizeGetter(i); - if (size == null || isNaN(size)) { - throw Error("Invalid size returned for index " + i + " of value " + size); - } - this.itemSizeAndPositionData[i] = { - offset: offset, - size: size - }; - offset += size; - } - this.lastMeasuredIndex = index; - } - return this.itemSizeAndPositionData[index]; - }; - SizeAndPositionManager.prototype.getSizeAndPositionOfLastMeasuredItem = function () { - return this.lastMeasuredIndex >= 0 ? this.itemSizeAndPositionData[this.lastMeasuredIndex] : { offset: 0, size: 0 }; - }; - /** - * Total size of all items being measured. - * This value will be completedly estimated initially. - * As items as measured the estimate will be updated. - */ - SizeAndPositionManager.prototype.getTotalSize = function () { - var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem(); - return lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size + (this.itemCount - this.lastMeasuredIndex - 1) * this.estimatedItemSize; - }; - /** - * Determines a new offset that ensures a certain item is visible, given the alignment. - * - * @param align Desired alignment within container; one of "start" (default), "center", or "end" - * @param containerSize Size (width or height) of the container viewport - * @return Offset to use to ensure the specified item is visible - */ - SizeAndPositionManager.prototype.getUpdatedOffsetForIndex = function (_a) { - var _b = _a.align, - align = _b === void 0 ? ALIGN_START : _b, - containerSize = _a.containerSize, - currentOffset = _a.currentOffset, - targetIndex = _a.targetIndex; - if (containerSize <= 0) { - return 0; - } - var datum = this.getSizeAndPositionForIndex(targetIndex); - var maxOffset = datum.offset; - var minOffset = maxOffset - containerSize + datum.size; - var idealOffset; - switch (align) { - case ALIGN_END: - idealOffset = minOffset; - break; - case ALIGN_CENTER: - idealOffset = maxOffset - (containerSize - datum.size) / 2; - break; - case ALIGN_START: - idealOffset = maxOffset; - break; - default: - idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset)); - } - var totalSize = this.getTotalSize(); - return Math.max(0, Math.min(totalSize - containerSize, idealOffset)); - }; - SizeAndPositionManager.prototype.getVisibleRange = function (_a) { - var containerSize = _a.containerSize, - offset = _a.offset, - overscanCount = _a.overscanCount; - var totalSize = this.getTotalSize(); - if (totalSize === 0) { - return {}; - } - var maxOffset = offset + containerSize; - var start = this.findNearestItem(offset); - if (typeof start === 'undefined') { - throw Error("Invalid offset " + offset + " specified"); - } - var datum = this.getSizeAndPositionForIndex(start); - offset = datum.offset + datum.size; - var stop = start; - while (offset < maxOffset && stop < this.itemCount - 1) { - stop++; - offset += this.getSizeAndPositionForIndex(stop).size; - } - if (overscanCount) { - start = Math.max(0, start - overscanCount); - stop = Math.min(stop + overscanCount, this.itemCount - 1); - } - return { - start: start, - stop: stop - }; - }; - /** - * Clear all cached values for items after the specified index. - * This method should be called for any item that has changed its size. - * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionForIndex() is called. - */ - SizeAndPositionManager.prototype.resetItem = function (index) { - this.lastMeasuredIndex = Math.min(this.lastMeasuredIndex, index - 1); - }; - /** - * Searches for the item (index) nearest the specified offset. - * - * If no exact match is found the next lowest item index will be returned. - * This allows partially visible items (with offsets just before/above the fold) to be visible. - */ - SizeAndPositionManager.prototype.findNearestItem = function (offset) { - if (isNaN(offset)) { - throw Error("Invalid offset " + offset + " specified"); - } - // Our search algorithms find the nearest match at or below the specified offset. - // So make sure the offset is at least 0 or no match will be found. - offset = Math.max(0, offset); - var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem(); - var lastMeasuredIndex = Math.max(0, this.lastMeasuredIndex); - if (lastMeasuredSizeAndPosition.offset >= offset) { - // If we've already measured items within this range just use a binary search as it's faster. - return this.binarySearch({ - high: lastMeasuredIndex, - low: 0, - offset: offset - }); - } else { - // If we haven't yet measured this high, fallback to an exponential search with an inner binary search. - // The exponential search avoids pre-computing sizes for the full set of items as a binary search would. - // The overall complexity for this approach is O(log n). - return this.exponentialSearch({ - index: lastMeasuredIndex, - offset: offset - }); - } - }; - SizeAndPositionManager.prototype.binarySearch = function (_a) { - var low = _a.low, - high = _a.high, - offset = _a.offset; - var middle = 0; - var currentOffset = 0; - while (low <= high) { - middle = low + Math.floor((high - low) / 2); - currentOffset = this.getSizeAndPositionForIndex(middle).offset; - if (currentOffset === offset) { - return middle; - } else if (currentOffset < offset) { - low = middle + 1; - } else if (currentOffset > offset) { - high = middle - 1; - } - } - if (low > 0) { - return low - 1; - } - return 0; - }; - SizeAndPositionManager.prototype.exponentialSearch = function (_a) { - var index = _a.index, - offset = _a.offset; - var interval = 1; - while (index < this.itemCount && this.getSizeAndPositionForIndex(index).offset < offset) { - index += interval; - interval *= 2; - } - return this.binarySearch({ - high: Math.min(index, this.itemCount - 1), - low: Math.floor(index / 2), - offset: offset - }); - }; - return SizeAndPositionManager; -}(); +eval("module.exports = require(\"infinite-tree\");\n\n//# sourceURL=webpack://InfiniteTree/external_%7B%22root%22:%22InfiniteTree%22,%22commonjs2%22:%22infinite-tree%22,%22commonjs%22:%22infinite-tree%22,%22amd%22:%22infinite-tree%22%7D?"); -var STYLE_WRAPPER = { - overflow: 'auto', - willChange: 'transform', - WebkitOverflowScrolling: 'touch' -}; -var STYLE_INNER = { - position: 'relative', - overflow: 'hidden', - width: '100%', - minHeight: '100%' -}; -var STYLE_ITEM = { - position: 'absolute', - left: 0, - width: '100%' -}; -var VirtualList = function (_super) { - __extends(VirtualList, _super); - function VirtualList() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.sizeAndPositionManager = new SizeAndPositionManager({ - itemCount: _this.props.itemCount, - itemSizeGetter: function (index) { - return _this.getSize(index); - }, - estimatedItemSize: _this.getEstimatedItemSize() - }); - _this.state = { - offset: _this.props.scrollOffset || _this.props.scrollToIndex != null && _this.getOffsetForIndex(_this.props.scrollToIndex) || 0, - scrollChangeReason: SCROLL_CHANGE_REQUESTED - }; - _this.styleCache = {}; - _this.handleScroll = function (e) { - var onScroll = _this.props.onScroll; - var offset = _this.getNodeOffset(); - if (offset < 0 || _this.state.offset === offset || e.target !== _this.rootNode) { - return; - } - _this.setState({ - offset: offset, - scrollChangeReason: SCROLL_CHANGE_OBSERVED - }); - if (typeof onScroll === 'function') { - onScroll(offset, e); - } - }; - _this.getRef = function (node) { - _this.rootNode = node; - }; - return _this; - } - VirtualList.prototype.componentDidMount = function () { - var _a = this.props, - scrollOffset = _a.scrollOffset, - scrollToIndex = _a.scrollToIndex; - if (scrollOffset != null) { - this.scrollTo(scrollOffset); - } else if (scrollToIndex != null) { - this.scrollTo(this.getOffsetForIndex(scrollToIndex)); - } - }; - VirtualList.prototype.componentWillReceiveProps = function (nextProps) { - var _a = this.props, - estimatedItemSize = _a.estimatedItemSize, - itemCount = _a.itemCount, - itemSize = _a.itemSize, - scrollOffset = _a.scrollOffset, - scrollToAlignment = _a.scrollToAlignment, - scrollToIndex = _a.scrollToIndex; - var scrollPropsHaveChanged = nextProps.scrollToIndex !== scrollToIndex || nextProps.scrollToAlignment !== scrollToAlignment; - var itemPropsHaveChanged = nextProps.itemCount !== itemCount || nextProps.itemSize !== itemSize || nextProps.estimatedItemSize !== estimatedItemSize; - if (nextProps.itemCount !== itemCount || nextProps.estimatedItemSize !== estimatedItemSize) { - this.sizeAndPositionManager.updateConfig({ - itemCount: nextProps.itemCount, - estimatedItemSize: this.getEstimatedItemSize(nextProps) - }); - } - if (itemPropsHaveChanged) { - this.recomputeSizes(); - } - if (nextProps.scrollOffset !== scrollOffset) { - this.setState({ - offset: nextProps.scrollOffset || 0, - scrollChangeReason: SCROLL_CHANGE_REQUESTED - }); - } else if (typeof nextProps.scrollToIndex === 'number' && (scrollPropsHaveChanged || itemPropsHaveChanged)) { - this.setState({ - offset: this.getOffsetForIndex(nextProps.scrollToIndex, nextProps.scrollToAlignment, nextProps.itemCount), - scrollChangeReason: SCROLL_CHANGE_REQUESTED - }); - } - }; - VirtualList.prototype.componentDidUpdate = function (_, prevState) { - var _a = this.state, - offset = _a.offset, - scrollChangeReason = _a.scrollChangeReason; - if (prevState.offset !== offset && scrollChangeReason === SCROLL_CHANGE_REQUESTED) { - this.scrollTo(offset); - } - }; - VirtualList.prototype.getEstimatedItemSize = function (props) { - if (props === void 0) { - props = this.props; - } - return props.estimatedItemSize || typeof props.itemSize === 'number' && props.itemSize || 50; - }; - VirtualList.prototype.getNodeOffset = function () { - var _a = this.props.scrollDirection, - scrollDirection = _a === void 0 ? DIRECTION_VERTICAL : _a; - return this.rootNode[scrollProp[scrollDirection]]; - }; - VirtualList.prototype.scrollTo = function (value) { - var _a = this.props.scrollDirection, - scrollDirection = _a === void 0 ? DIRECTION_VERTICAL : _a; - this.rootNode[scrollProp[scrollDirection]] = value; - }; - VirtualList.prototype.getOffsetForIndex = function (index, scrollToAlignment, itemCount) { - if (scrollToAlignment === void 0) { - scrollToAlignment = this.props.scrollToAlignment; - } - if (itemCount === void 0) { - itemCount = this.props.itemCount; - } - var _a = this.props.scrollDirection, - scrollDirection = _a === void 0 ? DIRECTION_VERTICAL : _a; - if (index < 0 || index >= itemCount) { - index = 0; - } - return this.sizeAndPositionManager.getUpdatedOffsetForIndex({ - align: scrollToAlignment, - containerSize: this.props[sizeProp[scrollDirection]], - currentOffset: this.state && this.state.offset || 0, - targetIndex: index - }); - }; - VirtualList.prototype.getSize = function (index) { - var itemSize = this.props.itemSize; - if (typeof itemSize === 'function') { - return itemSize(index); - } - return Array.isArray(itemSize) ? itemSize[index] : itemSize; - }; - VirtualList.prototype.getStyle = function (index) { - var style = this.styleCache[index]; - if (style) { - return style; - } - var _a = this.props.scrollDirection, - scrollDirection = _a === void 0 ? DIRECTION_VERTICAL : _a; - var _b = this.sizeAndPositionManager.getSizeAndPositionForIndex(index), - size = _b.size, - offset = _b.offset; - return this.styleCache[index] = __assign({}, STYLE_ITEM, (_c = {}, _c[sizeProp[scrollDirection]] = size, _c[positionProp[scrollDirection]] = offset, _c)); - var _c; - }; - VirtualList.prototype.recomputeSizes = function (startIndex) { - if (startIndex === void 0) { - startIndex = 0; - } - this.styleCache = {}; - this.sizeAndPositionManager.resetItem(startIndex); - }; - VirtualList.prototype.render = function () { - var _a = this.props, - estimatedItemSize = _a.estimatedItemSize, - height = _a.height, - _b = _a.overscanCount, - overscanCount = _b === void 0 ? 3 : _b, - renderItem = _a.renderItem, - itemCount = _a.itemCount, - itemSize = _a.itemSize, - onItemsRendered = _a.onItemsRendered, - onScroll = _a.onScroll, - _c = _a.scrollDirection, - scrollDirection = _c === void 0 ? DIRECTION_VERTICAL : _c, - scrollOffset = _a.scrollOffset, - scrollToIndex = _a.scrollToIndex, - scrollToAlignment = _a.scrollToAlignment, - style = _a.style, - width = _a.width, - props = __rest(_a, ["estimatedItemSize", "height", "overscanCount", "renderItem", "itemCount", "itemSize", "onItemsRendered", "onScroll", "scrollDirection", "scrollOffset", "scrollToIndex", "scrollToAlignment", "style", "width"]); - var offset = this.state.offset; - var _d = this.sizeAndPositionManager.getVisibleRange({ - containerSize: this.props[sizeProp[scrollDirection]] || 0, - offset: offset, - overscanCount: overscanCount - }), - start = _d.start, - stop = _d.stop; - var items = []; - if (typeof start !== 'undefined' && typeof stop !== 'undefined') { - for (var index = start; index <= stop; index++) { - items.push(renderItem({ - index: index, - style: this.getStyle(index) - })); - } - if (typeof onItemsRendered === 'function') { - onItemsRendered({ - startIndex: start, - stopIndex: stop - }); - } - } - return Object(__WEBPACK_IMPORTED_MODULE_0_react__["createElement"])("div", __assign({ ref: this.getRef }, props, { onScroll: this.handleScroll, style: __assign({}, STYLE_WRAPPER, style, { height: height, width: width }) }), Object(__WEBPACK_IMPORTED_MODULE_0_react__["createElement"])("div", { style: __assign({}, STYLE_INNER, (_e = {}, _e[sizeProp[scrollDirection]] = this.sizeAndPositionManager.getTotalSize(), _e)) }, items)); - var _e; - }; - VirtualList.defaultProps = { - overscanCount: 3, - scrollDirection: DIRECTION_VERTICAL, - width: '100%' - }; - VirtualList.propTypes = { - estimatedItemSize: __WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], - height: Object(__WEBPACK_IMPORTED_MODULE_1_prop_types__["oneOfType"])([__WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], __WEBPACK_IMPORTED_MODULE_1_prop_types__["string"]]).isRequired, - itemCount: __WEBPACK_IMPORTED_MODULE_1_prop_types__["number"].isRequired, - itemSize: Object(__WEBPACK_IMPORTED_MODULE_1_prop_types__["oneOfType"])([__WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], __WEBPACK_IMPORTED_MODULE_1_prop_types__["array"], __WEBPACK_IMPORTED_MODULE_1_prop_types__["func"]]).isRequired, - onItemsRendered: __WEBPACK_IMPORTED_MODULE_1_prop_types__["func"], - overscanCount: __WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], - renderItem: __WEBPACK_IMPORTED_MODULE_1_prop_types__["func"].isRequired, - scrollOffset: __WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], - scrollToIndex: __WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], - scrollToAlignment: Object(__WEBPACK_IMPORTED_MODULE_1_prop_types__["oneOf"])([ALIGN_AUTO, ALIGN_START, ALIGN_CENTER, ALIGN_END]), - scrollDirection: Object(__WEBPACK_IMPORTED_MODULE_1_prop_types__["oneOf"])([DIRECTION_HORIZONTAL, DIRECTION_VERTICAL]).isRequired, - width: Object(__WEBPACK_IMPORTED_MODULE_1_prop_types__["oneOfType"])([__WEBPACK_IMPORTED_MODULE_1_prop_types__["number"], __WEBPACK_IMPORTED_MODULE_1_prop_types__["string"]]).isRequired - }; - return VirtualList; -}(__WEBPACK_IMPORTED_MODULE_0_react__["PureComponent"]); +/***/ }), -/* harmony default export */ __webpack_exports__["default"] = (VirtualList); +/***/ "react": +/*!**************************************************************************************!*\ + !*** external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { +eval("module.exports = require(\"react\");\n\n//# sourceURL=webpack://InfiniteTree/external_%7B%22root%22:%22React%22,%22commonjs2%22:%22react%22,%22commonjs%22:%22react%22,%22amd%22:%22react%22%7D?"); /***/ }) -/******/ ]); \ No newline at end of file + +/******/ }); \ No newline at end of file diff --git a/dist/react-infinite-tree.min.js b/dist/react-infinite-tree.min.js index 90177f9..6019d34 100644 --- a/dist/react-infinite-tree.min.js +++ b/dist/react-infinite-tree.min.js @@ -1,7 +1,232 @@ -/*! react-infinite-tree v1.0.0-alpha.5 | (c) 2018 Cheton Wu | MIT | https://github.com/cheton/react-infinite-tree */ -exports.InfiniteTree=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.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=7)}([function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(f===setTimeout)return setTimeout(e,0);if((f===n||!f)&&setTimeout)return f=setTimeout,setTimeout(e,0);try{return f(e,0)}catch(t){try{return f.call(null,e,0)}catch(t){return f.call(this,e,0)}}}function i(e){if(c===clearTimeout)return clearTimeout(e);if((c===r||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{return c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}function s(){y&&p&&(y=!1,p.length?h=p.concat(h):v=-1,h.length&&a())}function a(){if(!y){var e=o(s);y=!0;for(var t=h.length;t;){for(p=h,h=[];++v1)for(var n=1;n1?t-1:0),r=1;r2?n-2:0),o=2;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(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 a(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)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t0&&(b.scrollOffset=l),void 0!==f&&f>=0&&f=this.itemCount)throw Error("Requested index "+e+" is outside of range 0.."+this.itemCount);if(e>this.lastMeasuredIndex){for(var t=this.getSizeAndPositionOfLastMeasuredItem(),n=t.offset+t.size,r=this.lastMeasuredIndex+1;r<=e;r++){var o=this.itemSizeGetter(r);if(null==o||isNaN(o))throw Error("Invalid size returned for index "+r+" of value "+o);this.itemSizeAndPositionData[r]={offset:n,size:o},n+=o}this.lastMeasuredIndex=e}return this.itemSizeAndPositionData[e]},e.prototype.getSizeAndPositionOfLastMeasuredItem=function(){return this.lastMeasuredIndex>=0?this.itemSizeAndPositionData[this.lastMeasuredIndex]:{offset:0,size:0}},e.prototype.getTotalSize=function(){var e=this.getSizeAndPositionOfLastMeasuredItem();return e.offset+e.size+(this.itemCount-this.lastMeasuredIndex-1)*this.estimatedItemSize},e.prototype.getUpdatedOffsetForIndex=function(e){var t=e.align,n=void 0===t?"start":t,r=e.containerSize,o=e.currentOffset,i=e.targetIndex;if(r<=0)return 0;var s,a=this.getSizeAndPositionForIndex(i),u=a.offset,l=u-r+a.size;switch(n){case"end":s=l;break;case"center":s=u-(r-a.size)/2;break;case"start":s=u;break;default:s=Math.max(l,Math.min(u,o))}var f=this.getTotalSize();return Math.max(0,Math.min(f-r,s))},e.prototype.getVisibleRange=function(e){var t=e.containerSize,n=e.offset,r=e.overscanCount;if(0===this.getTotalSize())return{};var o=n+t,i=this.findNearestItem(n);if(void 0===i)throw Error("Invalid offset "+n+" specified");var s=this.getSizeAndPositionForIndex(i);n=s.offset+s.size;for(var a=i;n=e?this.binarySearch({high:n,low:0,offset:e}):this.exponentialSearch({index:n,offset:e})},e.prototype.binarySearch=function(e){for(var t=e.low,n=e.high,r=e.offset,o=0,i=0;t<=n;){if(o=t+Math.floor((n-t)/2),(i=this.getSizeAndPositionForIndex(o).offset)===r)return o;ir&&(n=o-1)}return t>0?t-1:0},e.prototype.exponentialSearch=function(e){for(var t=e.index,n=e.offset,r=1;t=n)&&(e=0),this.sizeAndPositionManager.getUpdatedOffsetForIndex({align:t,containerSize:this.props[y[o]],currentOffset:this.state&&this.state.offset||0,targetIndex:e})},t.prototype.getSize=function(e){var t=this.props.itemSize;return"function"==typeof t?t(e):Array.isArray(t)?t[e]:t},t.prototype.getStyle=function(e){var t=this.styleCache[e];if(t)return t;var n=this.props.scrollDirection,r=void 0===n?"vertical":n,o=this.sizeAndPositionManager.getSizeAndPositionForIndex(e),i=o.size,s=o.offset;return this.styleCache[e]=c({},O,(a={},a[y[r]]=i,a[v[r]]=s,a));var a},t.prototype.recomputeSizes=function(e){void 0===e&&(e=0),this.styleCache={},this.sizeAndPositionManager.resetItem(e)},t.prototype.render=function(){var e=this.props,t=(e.estimatedItemSize,e.height),n=e.overscanCount,r=void 0===n?3:n,i=e.renderItem,s=(e.itemCount,e.itemSize,e.onItemsRendered),a=(e.onScroll,e.scrollDirection),l=void 0===a?"vertical":a,f=(e.scrollOffset,e.scrollToIndex,e.scrollToAlignment,e.style),d=e.width,p=o(e,["estimatedItemSize","height","overscanCount","renderItem","itemCount","itemSize","onItemsRendered","onScroll","scrollDirection","scrollOffset","scrollToIndex","scrollToAlignment","style","width"]),h=this.state.offset,v=this.sizeAndPositionManager.getVisibleRange({containerSize:this.props[y[l]]||0,offset:h,overscanCount:r}),m=v.start,O=v.stop,S=[];if(void 0!==m&&void 0!==O){for(var x=m;x<=O;x++)S.push(i({index:x,style:this.getStyle(x)}));"function"==typeof s&&s({startIndex:m,stopIndex:O})}return Object(u.createElement)("div",c({ref:this.getRef},p,{onScroll:this.handleScroll,style:c({},g,f,{height:t,width:d})}),Object(u.createElement)("div",{style:c({},b,(w={},w[y[l]]=this.sizeAndPositionManager.getTotalSize(),w))},S));var w},t.defaultProps={overscanCount:3,scrollDirection:"vertical",width:"100%"},t.propTypes={estimatedItemSize:l.number,height:Object(l.oneOfType)([l.number,l.string]).isRequired,itemCount:l.number.isRequired,itemSize:Object(l.oneOfType)([l.number,l.array,l.func]).isRequired,onItemsRendered:l.func,overscanCount:l.number,renderItem:l.func.isRequired,scrollOffset:l.number,scrollToIndex:l.number,scrollToAlignment:Object(l.oneOf)(["auto","start","center","end"]),scrollDirection:Object(l.oneOf)(["horizontal","vertical"]).isRequired,width:Object(l.oneOfType)([l.number,l.string]).isRequired},t}(u.PureComponent);t.default=S}]); \ No newline at end of file +/*! react-infinite-tree v1.0.0 | (c) 2019 Cheton Wu | MIT | https://github.com/cheton/react-infinite-tree */ +exports["InfiniteTree"] = +/******/ (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; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // 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 = "./lib/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./lib/InfiniteTree.js": +/*!*****************************!*\ + !*** ./lib/InfiniteTree.js ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\n\nvar _infiniteTree = _interopRequireDefault(__webpack_require__(/*! infinite-tree */ \"infinite-tree\"));\n\nvar _reactTinyVirtualList = _interopRequireDefault(__webpack_require__(/*! react-tiny-virtual-list */ \"./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar lcfirst = function lcfirst(str) {\n str += '';\n return str.charAt(0).toLowerCase() + str.substr(1);\n};\n\nvar _default =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(_default, _Component);\n\n function _default() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, _default);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(_default)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"tree\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n nodes: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"eventHandlers\", {\n onContentWillUpdate: null,\n onContentDidUpdate: null,\n onOpenNode: null,\n onCloseNode: null,\n onSelectNode: null,\n onWillOpenNode: null,\n onWillCloseNode: null,\n onWillSelectNode: null\n });\n\n return _this;\n }\n\n _createClass(_default, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n style = _this$props.style,\n options = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"style\"]);\n\n if (options.el !== undefined) {\n delete options.el;\n }\n\n options.rowRenderer = function () {\n return '';\n };\n\n this.tree = new _infiniteTree[\"default\"](options); // Filters nodes.\n // https://github.com/cheton/infinite-tree/wiki/Functions:-Tree#filterpredicate-options\n\n var treeFilter = this.tree.filter.bind(this.tree);\n\n this.tree.filter = function () {\n setTimeout(function () {\n _this2.virtualList.recomputeSizes(0);\n }, 0);\n return treeFilter.apply(void 0, arguments);\n }; // Unfilter nodes.\n // https://github.com/cheton/infinite-tree/wiki/Functions:-Tree#unfilter\n\n\n var treeUnfilter = this.tree.unfilter.bind(this.tree);\n\n this.tree.unfilter = function () {\n setTimeout(function () {\n _this2.virtualList.recomputeSizes(0);\n }, 0);\n return treeUnfilter.apply(void 0, arguments);\n }; // Sets the current scroll position to this node.\n // @param {Node} node The Node object.\n // @return {boolean} Returns true on success, false otherwise.\n\n\n this.tree.scrollToNode = function (node) {\n if (!_this2.tree || !_this2.virtualList) {\n return false;\n }\n\n var nodeIndex = _this2.tree.nodes.indexOf(node);\n\n if (nodeIndex < 0) {\n return false;\n }\n\n var offset = _this2.virtualList.getOffsetForIndex(nodeIndex);\n\n _this2.virtualList.scrollTo(offset);\n\n return true;\n }; // Gets (or sets) the current vertical position of the scroll bar.\n // @param {number} [value] If the value is specified, indicates the new position to set the scroll bar to.\n // @return {number} Returns the vertical scroll position.\n\n\n this.tree.scrollTop = function (value) {\n if (!_this2.tree || !_this2.virtualList) {\n return;\n }\n\n if (value !== undefined) {\n _this2.virtualList.scrollTo(Number(value));\n }\n\n return _this2.virtualList.getNodeOffset();\n }; // Updates the tree.\n\n\n this.tree.update = function () {\n _this2.tree.emit('contentWillUpdate');\n\n _this2.setState(function (state) {\n return {\n nodes: _this2.tree.nodes\n };\n }, function () {\n _this2.tree.emit('contentDidUpdate');\n });\n };\n\n Object.keys(this.eventHandlers).forEach(function (key) {\n if (!_this2.props[key]) {\n return;\n }\n\n var eventName = lcfirst(key.substr(2)); // e.g. onContentWillUpdate -> contentWillUpdate\n\n _this2.eventHandlers[key] = _this2.props[key];\n\n _this2.tree.on(eventName, _this2.eventHandlers[key]);\n }); //force component to rerender when this.tree is finally initialized\n\n this.forceUpdate();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n Object.keys(this.eventHandlers).forEach(function (key) {\n if (!_this3.eventHandlers[key]) {\n return;\n }\n\n var eventName = lcfirst(key.substr(2)); // e.g. onUpdate -> update\n\n _this3.tree.removeListener(eventName, _this3.eventHandlers[key]);\n\n _this3.eventHandlers[key] = null;\n });\n this.tree.destroy();\n this.tree = null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props2 = this.props,\n autoOpen = _this$props2.autoOpen,\n selectable = _this$props2.selectable,\n tabIndex = _this$props2.tabIndex,\n data = _this$props2.data,\n width = _this$props2.width,\n height = _this$props2.height,\n rowHeight = _this$props2.rowHeight,\n rowRenderer = _this$props2.rowRenderer,\n shouldLoadNodes = _this$props2.shouldLoadNodes,\n loadNodes = _this$props2.loadNodes,\n shouldSelectNode = _this$props2.shouldSelectNode,\n scrollOffset = _this$props2.scrollOffset,\n scrollToIndex = _this$props2.scrollToIndex,\n onScroll = _this$props2.onScroll,\n onContentWillUpdate = _this$props2.onContentWillUpdate,\n onContentDidUpdate = _this$props2.onContentDidUpdate,\n onOpenNode = _this$props2.onOpenNode,\n onCloseNode = _this$props2.onCloseNode,\n onSelectNode = _this$props2.onSelectNode,\n onWillOpenNode = _this$props2.onWillOpenNode,\n onWillCloseNode = _this$props2.onWillCloseNode,\n onWillSelectNode = _this$props2.onWillSelectNode,\n style = _this$props2.style,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, [\"autoOpen\", \"selectable\", \"tabIndex\", \"data\", \"width\", \"height\", \"rowHeight\", \"rowRenderer\", \"shouldLoadNodes\", \"loadNodes\", \"shouldSelectNode\", \"scrollOffset\", \"scrollToIndex\", \"onScroll\", \"onContentWillUpdate\", \"onContentDidUpdate\", \"onOpenNode\", \"onCloseNode\", \"onSelectNode\", \"onWillOpenNode\", \"onWillCloseNode\", \"onWillSelectNode\", \"style\", \"children\"]);\n\n var render = typeof children === 'function' ? children : rowRenderer;\n var count = this.tree ? this.tree.nodes.length : 0; // VirtualList\n\n var virtualListProps = {};\n\n if (scrollOffset !== undefined && count > 0) {\n virtualListProps.scrollOffset = scrollOffset;\n }\n\n if (scrollToIndex !== undefined && scrollToIndex >= 0 && scrollToIndex < count) {\n virtualListProps.scrollToIndex = scrollToIndex;\n }\n\n if (typeof onScroll === 'function') {\n virtualListProps.onScroll = onScroll;\n }\n\n return _react[\"default\"].createElement(\"div\", _extends({}, props, {\n style: _objectSpread({\n outline: 'none'\n }, style),\n tabIndex: tabIndex\n }), _react[\"default\"].createElement(_reactTinyVirtualList[\"default\"], _extends({\n ref: function ref(node) {\n _this4.virtualList = node;\n },\n width: width,\n height: height,\n itemCount: count,\n itemSize: function itemSize(index) {\n var node = _this4.tree.nodes[index];\n\n if (node && node.state.filtered === false) {\n return 0;\n }\n\n if (typeof rowHeight === 'function') {\n return rowHeight({\n node: _this4.tree.nodes[index],\n tree: _this4.tree\n });\n }\n\n return rowHeight; // Number or Array\n },\n renderItem: function renderItem(_ref) {\n var index = _ref.index,\n style = _ref.style;\n var row = null;\n\n if (typeof render === 'function') {\n var node = _this4.tree.nodes[index];\n\n if (node && node.state.filtered !== false) {\n row = render({\n node: _this4.tree.nodes[index],\n tree: _this4.tree\n });\n }\n }\n\n return _react[\"default\"].createElement(\"div\", {\n key: index,\n style: style\n }, row);\n }\n }, virtualListProps)));\n }\n }]);\n\n return _default;\n}(_react.Component);\n\nexports[\"default\"] = _default;\n\n_defineProperty(_default, \"displayName\", 'InfiniteTree');\n\n_defineProperty(_default, \"propTypes\", {\n // Whether to open all nodes when tree is loaded.\n autoOpen: _propTypes[\"default\"].bool,\n // Whether or not a node is selectable in the tree.\n selectable: _propTypes[\"default\"].bool,\n // Specifies the tab order to make tree focusable.\n tabIndex: _propTypes[\"default\"].number,\n // Tree data structure, or a collection of tree data structures.\n data: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n // Width of the tree.\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]).isRequired,\n // Height of the tree.\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]).isRequired,\n // Either a fixed height, an array containing the heights of all the rows, or a function that returns the height of a row given its index: `(index: number): number`\n rowHeight: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].number, _propTypes[\"default\"].array, _propTypes[\"default\"].func]).isRequired,\n // A row renderer for rendering a tree node.\n rowRenderer: _propTypes[\"default\"].func,\n // Loads nodes on demand.\n loadNodes: _propTypes[\"default\"].func,\n // Provides a function to determine if a node can be selected or deselected. The function must return `true` or `false`. This function will not take effect if `selectable` is not `true`.\n shouldSelectNode: _propTypes[\"default\"].func,\n // Controls the scroll offset.\n scrollOffset: _propTypes[\"default\"].number,\n // Node index to scroll to.\n scrollToIndex: _propTypes[\"default\"].number,\n // Callback invoked whenever the scroll offset changes.\n onScroll: _propTypes[\"default\"].func,\n // Callback invoked before updating the tree.\n onContentWillUpdate: _propTypes[\"default\"].func,\n // Callback invoked when the tree is updated.\n onContentDidUpdate: _propTypes[\"default\"].func,\n // Callback invoked when a node is opened.\n onOpenNode: _propTypes[\"default\"].func,\n // Callback invoked when a node is closed.\n onCloseNode: _propTypes[\"default\"].func,\n // Callback invoked when a node is selected or deselected.\n onSelectNode: _propTypes[\"default\"].func,\n // Callback invoked before opening a node.\n onWillOpenNode: _propTypes[\"default\"].func,\n // Callback invoked before closing a node.\n onWillCloseNode: _propTypes[\"default\"].func,\n // Callback invoked before selecting or deselecting a node.\n onWillSelectNode: _propTypes[\"default\"].func\n});\n\n_defineProperty(_default, \"defaultProps\", {\n autoOpen: false,\n selectable: true,\n tabIndex: 0,\n data: [],\n width: '100%'\n});\n\n;\n\n//# sourceURL=webpack://InfiniteTree/./lib/InfiniteTree.js?"); + +/***/ }), + +/***/ "./lib/index.js": +/*!**********************!*\ + !*** ./lib/index.js ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _InfiniteTree = _interopRequireDefault(__webpack_require__(/*! ./InfiniteTree */ \"./lib/InfiniteTree.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _InfiniteTree[\"default\"];\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://InfiniteTree/./lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (true) {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/checkPropTypes.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/factoryWithTypeCheckers.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/index.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/prop-types/lib/ReactPropTypesSecret.js?"); + +/***/ }), + +/***/ "./node_modules/react-is/cjs/react-is.development.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-is/cjs/react-is.development.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v16.10.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\nvar lowPriorityWarningWithoutStack = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarningWithoutStack = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/react-is/cjs/react-is.development.js?"); + +/***/ }), + +/***/ "./node_modules/react-is/index.js": +/*!****************************************!*\ + !*** ./node_modules/react-is/index.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/react-is/index.js?"); + +/***/ }), + +/***/ "./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js ***! + \**********************************************************************************/ +/*! exports provided: ScrollDirection, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScrollDirection\", function() { return DIRECTION; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\n\nvar ALIGNMENT;\n(function (ALIGNMENT) {\n ALIGNMENT[\"AUTO\"] = \"auto\";\n ALIGNMENT[\"START\"] = \"start\";\n ALIGNMENT[\"CENTER\"] = \"center\";\n ALIGNMENT[\"END\"] = \"end\";\n})(ALIGNMENT || (ALIGNMENT = {}));\nvar DIRECTION;\n(function (DIRECTION) {\n DIRECTION[\"HORIZONTAL\"] = \"horizontal\";\n DIRECTION[\"VERTICAL\"] = \"vertical\";\n})(DIRECTION || (DIRECTION = {}));\nvar SCROLL_CHANGE_REASON;\n(function (SCROLL_CHANGE_REASON) {\n SCROLL_CHANGE_REASON[\"OBSERVED\"] = \"observed\";\n SCROLL_CHANGE_REASON[\"REQUESTED\"] = \"requested\";\n})(SCROLL_CHANGE_REASON || (SCROLL_CHANGE_REASON = {}));\nvar scrollProp = (_a = {}, _a[DIRECTION.VERTICAL] = 'scrollTop', _a[DIRECTION.HORIZONTAL] = 'scrollLeft', _a);\nvar sizeProp = (_b = {}, _b[DIRECTION.VERTICAL] = 'height', _b[DIRECTION.HORIZONTAL] = 'width', _b);\nvar positionProp = (_c = {}, _c[DIRECTION.VERTICAL] = 'top', _c[DIRECTION.HORIZONTAL] = 'left', _c);\nvar marginProp = (_d = {}, _d[DIRECTION.VERTICAL] = 'marginTop', _d[DIRECTION.HORIZONTAL] = 'marginLeft', _d);\nvar oppositeMarginProp = (_e = {}, _e[DIRECTION.VERTICAL] = 'marginBottom', _e[DIRECTION.HORIZONTAL] = 'marginRight', _e);\nvar _a;\nvar _b;\nvar _c;\nvar _d;\nvar _e;\n\n/* Forked from react-virtualized 💖 */\nvar SizeAndPositionManager = /** @class */function () {\n function SizeAndPositionManager(_a) {\n var itemCount = _a.itemCount,\n itemSizeGetter = _a.itemSizeGetter,\n estimatedItemSize = _a.estimatedItemSize;\n this.itemSizeGetter = itemSizeGetter;\n this.itemCount = itemCount;\n this.estimatedItemSize = estimatedItemSize;\n // Cache of size and position data for items, mapped by item index.\n this.itemSizeAndPositionData = {};\n // Measurements for items up to this index can be trusted; items afterward should be estimated.\n this.lastMeasuredIndex = -1;\n }\n SizeAndPositionManager.prototype.updateConfig = function (_a) {\n var itemCount = _a.itemCount,\n itemSizeGetter = _a.itemSizeGetter,\n estimatedItemSize = _a.estimatedItemSize;\n if (itemCount != null) {\n this.itemCount = itemCount;\n }\n if (estimatedItemSize != null) {\n this.estimatedItemSize = estimatedItemSize;\n }\n if (itemSizeGetter != null) {\n this.itemSizeGetter = itemSizeGetter;\n }\n };\n SizeAndPositionManager.prototype.getLastMeasuredIndex = function () {\n return this.lastMeasuredIndex;\n };\n /**\n * This method returns the size and position for the item at the specified index.\n * It just-in-time calculates (or used cached values) for items leading up to the index.\n */\n SizeAndPositionManager.prototype.getSizeAndPositionForIndex = function (index) {\n if (index < 0 || index >= this.itemCount) {\n throw Error(\"Requested index \" + index + \" is outside of range 0..\" + this.itemCount);\n }\n if (index > this.lastMeasuredIndex) {\n var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();\n var offset = lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size;\n for (var i = this.lastMeasuredIndex + 1; i <= index; i++) {\n var size = this.itemSizeGetter(i);\n if (size == null || isNaN(size)) {\n throw Error(\"Invalid size returned for index \" + i + \" of value \" + size);\n }\n this.itemSizeAndPositionData[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n this.lastMeasuredIndex = index;\n }\n return this.itemSizeAndPositionData[index];\n };\n SizeAndPositionManager.prototype.getSizeAndPositionOfLastMeasuredItem = function () {\n return this.lastMeasuredIndex >= 0 ? this.itemSizeAndPositionData[this.lastMeasuredIndex] : { offset: 0, size: 0 };\n };\n /**\n * Total size of all items being measured.\n * This value will be completedly estimated initially.\n * As items as measured the estimate will be updated.\n */\n SizeAndPositionManager.prototype.getTotalSize = function () {\n var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();\n return lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size + (this.itemCount - this.lastMeasuredIndex - 1) * this.estimatedItemSize;\n };\n /**\n * Determines a new offset that ensures a certain item is visible, given the alignment.\n *\n * @param align Desired alignment within container; one of \"start\" (default), \"center\", or \"end\"\n * @param containerSize Size (width or height) of the container viewport\n * @return Offset to use to ensure the specified item is visible\n */\n SizeAndPositionManager.prototype.getUpdatedOffsetForIndex = function (_a) {\n var _b = _a.align,\n align = _b === void 0 ? ALIGNMENT.START : _b,\n containerSize = _a.containerSize,\n currentOffset = _a.currentOffset,\n targetIndex = _a.targetIndex;\n if (containerSize <= 0) {\n return 0;\n }\n var datum = this.getSizeAndPositionForIndex(targetIndex);\n var maxOffset = datum.offset;\n var minOffset = maxOffset - containerSize + datum.size;\n var idealOffset;\n switch (align) {\n case ALIGNMENT.END:\n idealOffset = minOffset;\n break;\n case ALIGNMENT.CENTER:\n idealOffset = maxOffset - (containerSize - datum.size) / 2;\n break;\n case ALIGNMENT.START:\n idealOffset = maxOffset;\n break;\n default:\n idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n var totalSize = this.getTotalSize();\n return Math.max(0, Math.min(totalSize - containerSize, idealOffset));\n };\n SizeAndPositionManager.prototype.getVisibleRange = function (_a) {\n var containerSize = _a.containerSize,\n offset = _a.offset,\n overscanCount = _a.overscanCount;\n var totalSize = this.getTotalSize();\n if (totalSize === 0) {\n return {};\n }\n var maxOffset = offset + containerSize;\n var start = this.findNearestItem(offset);\n if (typeof start === 'undefined') {\n throw Error(\"Invalid offset \" + offset + \" specified\");\n }\n var datum = this.getSizeAndPositionForIndex(start);\n offset = datum.offset + datum.size;\n var stop = start;\n while (offset < maxOffset && stop < this.itemCount - 1) {\n stop++;\n offset += this.getSizeAndPositionForIndex(stop).size;\n }\n if (overscanCount) {\n start = Math.max(0, start - overscanCount);\n stop = Math.min(stop + overscanCount, this.itemCount - 1);\n }\n return {\n start: start,\n stop: stop\n };\n };\n /**\n * Clear all cached values for items after the specified index.\n * This method should be called for any item that has changed its size.\n * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionForIndex() is called.\n */\n SizeAndPositionManager.prototype.resetItem = function (index) {\n this.lastMeasuredIndex = Math.min(this.lastMeasuredIndex, index - 1);\n };\n /**\n * Searches for the item (index) nearest the specified offset.\n *\n * If no exact match is found the next lowest item index will be returned.\n * This allows partially visible items (with offsets just before/above the fold) to be visible.\n */\n SizeAndPositionManager.prototype.findNearestItem = function (offset) {\n if (isNaN(offset)) {\n throw Error(\"Invalid offset \" + offset + \" specified\");\n }\n // Our search algorithms find the nearest match at or below the specified offset.\n // So make sure the offset is at least 0 or no match will be found.\n offset = Math.max(0, offset);\n var lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();\n var lastMeasuredIndex = Math.max(0, this.lastMeasuredIndex);\n if (lastMeasuredSizeAndPosition.offset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return this.binarySearch({\n high: lastMeasuredIndex,\n low: 0,\n offset: offset\n });\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return this.exponentialSearch({\n index: lastMeasuredIndex,\n offset: offset\n });\n }\n };\n SizeAndPositionManager.prototype.binarySearch = function (_a) {\n var low = _a.low,\n high = _a.high,\n offset = _a.offset;\n var middle = 0;\n var currentOffset = 0;\n while (low <= high) {\n middle = low + Math.floor((high - low) / 2);\n currentOffset = this.getSizeAndPositionForIndex(middle).offset;\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n if (low > 0) {\n return low - 1;\n }\n return 0;\n };\n SizeAndPositionManager.prototype.exponentialSearch = function (_a) {\n var index = _a.index,\n offset = _a.offset;\n var interval = 1;\n while (index < this.itemCount && this.getSizeAndPositionForIndex(index).offset < offset) {\n index += interval;\n interval *= 2;\n }\n return this.binarySearch({\n high: Math.min(index, this.itemCount - 1),\n low: Math.floor(index / 2),\n offset: offset\n });\n };\n return SizeAndPositionManager;\n}();\n\nvar STYLE_WRAPPER = {\n overflow: 'auto',\n willChange: 'transform',\n WebkitOverflowScrolling: 'touch'\n};\nvar STYLE_INNER = {\n position: 'relative',\n width: '100%',\n minHeight: '100%'\n};\nvar STYLE_ITEM = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n};\nvar STYLE_STICKY_ITEM = __assign({}, STYLE_ITEM, { position: 'sticky' });\nvar VirtualList = /** @class */function (_super) {\n __extends(VirtualList, _super);\n function VirtualList() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.itemSizeGetter = function (itemSize) {\n return function (index) {\n return _this.getSize(index, itemSize);\n };\n };\n _this.sizeAndPositionManager = new SizeAndPositionManager({\n itemCount: _this.props.itemCount,\n itemSizeGetter: _this.itemSizeGetter(_this.props.itemSize),\n estimatedItemSize: _this.getEstimatedItemSize()\n });\n _this.state = {\n offset: _this.props.scrollOffset || _this.props.scrollToIndex != null && _this.getOffsetForIndex(_this.props.scrollToIndex) || 0,\n scrollChangeReason: SCROLL_CHANGE_REASON.REQUESTED\n };\n _this.styleCache = {};\n _this.getRef = function (node) {\n _this.rootNode = node;\n };\n _this.handleScroll = function (event) {\n var onScroll = _this.props.onScroll;\n var offset = _this.getNodeOffset();\n if (offset < 0 || _this.state.offset === offset || event.target !== _this.rootNode) {\n return;\n }\n _this.setState({\n offset: offset,\n scrollChangeReason: SCROLL_CHANGE_REASON.OBSERVED\n });\n if (typeof onScroll === 'function') {\n onScroll(offset, event);\n }\n };\n return _this;\n }\n VirtualList.prototype.componentDidMount = function () {\n var _a = this.props,\n scrollOffset = _a.scrollOffset,\n scrollToIndex = _a.scrollToIndex;\n this.rootNode.addEventListener('scroll', this.handleScroll, {\n passive: true\n });\n if (scrollOffset != null) {\n this.scrollTo(scrollOffset);\n } else if (scrollToIndex != null) {\n this.scrollTo(this.getOffsetForIndex(scrollToIndex));\n }\n };\n VirtualList.prototype.componentWillReceiveProps = function (nextProps) {\n var _a = this.props,\n estimatedItemSize = _a.estimatedItemSize,\n itemCount = _a.itemCount,\n itemSize = _a.itemSize,\n scrollOffset = _a.scrollOffset,\n scrollToAlignment = _a.scrollToAlignment,\n scrollToIndex = _a.scrollToIndex;\n var scrollPropsHaveChanged = nextProps.scrollToIndex !== scrollToIndex || nextProps.scrollToAlignment !== scrollToAlignment;\n var itemPropsHaveChanged = nextProps.itemCount !== itemCount || nextProps.itemSize !== itemSize || nextProps.estimatedItemSize !== estimatedItemSize;\n if (nextProps.itemSize !== itemSize) {\n this.sizeAndPositionManager.updateConfig({\n itemSizeGetter: this.itemSizeGetter(nextProps.itemSize)\n });\n }\n if (nextProps.itemCount !== itemCount || nextProps.estimatedItemSize !== estimatedItemSize) {\n this.sizeAndPositionManager.updateConfig({\n itemCount: nextProps.itemCount,\n estimatedItemSize: this.getEstimatedItemSize(nextProps)\n });\n }\n if (itemPropsHaveChanged) {\n this.recomputeSizes();\n }\n if (nextProps.scrollOffset !== scrollOffset) {\n this.setState({\n offset: nextProps.scrollOffset || 0,\n scrollChangeReason: SCROLL_CHANGE_REASON.REQUESTED\n });\n } else if (typeof nextProps.scrollToIndex === 'number' && (scrollPropsHaveChanged || itemPropsHaveChanged)) {\n this.setState({\n offset: this.getOffsetForIndex(nextProps.scrollToIndex, nextProps.scrollToAlignment, nextProps.itemCount),\n scrollChangeReason: SCROLL_CHANGE_REASON.REQUESTED\n });\n }\n };\n VirtualList.prototype.componentDidUpdate = function (_, prevState) {\n var _a = this.state,\n offset = _a.offset,\n scrollChangeReason = _a.scrollChangeReason;\n if (prevState.offset !== offset && scrollChangeReason === SCROLL_CHANGE_REASON.REQUESTED) {\n this.scrollTo(offset);\n }\n };\n VirtualList.prototype.componentWillUnmount = function () {\n this.rootNode.removeEventListener('scroll', this.handleScroll);\n };\n VirtualList.prototype.scrollTo = function (value) {\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n this.rootNode[scrollProp[scrollDirection]] = value;\n };\n VirtualList.prototype.getOffsetForIndex = function (index, scrollToAlignment, itemCount) {\n if (scrollToAlignment === void 0) {\n scrollToAlignment = this.props.scrollToAlignment;\n }\n if (itemCount === void 0) {\n itemCount = this.props.itemCount;\n }\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n if (index < 0 || index >= itemCount) {\n index = 0;\n }\n return this.sizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: this.props[sizeProp[scrollDirection]],\n currentOffset: this.state && this.state.offset || 0,\n targetIndex: index\n });\n };\n VirtualList.prototype.recomputeSizes = function (startIndex) {\n if (startIndex === void 0) {\n startIndex = 0;\n }\n this.styleCache = {};\n this.sizeAndPositionManager.resetItem(startIndex);\n };\n VirtualList.prototype.render = function () {\n var _this = this;\n var _a = this.props,\n estimatedItemSize = _a.estimatedItemSize,\n height = _a.height,\n _b = _a.overscanCount,\n overscanCount = _b === void 0 ? 3 : _b,\n renderItem = _a.renderItem,\n itemCount = _a.itemCount,\n itemSize = _a.itemSize,\n onItemsRendered = _a.onItemsRendered,\n onScroll = _a.onScroll,\n _c = _a.scrollDirection,\n scrollDirection = _c === void 0 ? DIRECTION.VERTICAL : _c,\n scrollOffset = _a.scrollOffset,\n scrollToIndex = _a.scrollToIndex,\n scrollToAlignment = _a.scrollToAlignment,\n stickyIndices = _a.stickyIndices,\n style = _a.style,\n width = _a.width,\n props = __rest(_a, [\"estimatedItemSize\", \"height\", \"overscanCount\", \"renderItem\", \"itemCount\", \"itemSize\", \"onItemsRendered\", \"onScroll\", \"scrollDirection\", \"scrollOffset\", \"scrollToIndex\", \"scrollToAlignment\", \"stickyIndices\", \"style\", \"width\"]);\n var offset = this.state.offset;\n var _d = this.sizeAndPositionManager.getVisibleRange({\n containerSize: this.props[sizeProp[scrollDirection]] || 0,\n offset: offset,\n overscanCount: overscanCount\n }),\n start = _d.start,\n stop = _d.stop;\n var items = [];\n var wrapperStyle = __assign({}, STYLE_WRAPPER, style, { height: height, width: width });\n var innerStyle = __assign({}, STYLE_INNER, (_e = {}, _e[sizeProp[scrollDirection]] = this.sizeAndPositionManager.getTotalSize(), _e));\n if (stickyIndices != null && stickyIndices.length !== 0) {\n stickyIndices.forEach(function (index) {\n return items.push(renderItem({\n index: index,\n style: _this.getStyle(index, true)\n }));\n });\n if (scrollDirection === DIRECTION.HORIZONTAL) {\n innerStyle.display = 'flex';\n }\n }\n if (typeof start !== 'undefined' && typeof stop !== 'undefined') {\n for (var index = start; index <= stop; index++) {\n if (stickyIndices != null && stickyIndices.includes(index)) {\n continue;\n }\n items.push(renderItem({\n index: index,\n style: this.getStyle(index, false)\n }));\n }\n if (typeof onItemsRendered === 'function') {\n onItemsRendered({\n startIndex: start,\n stopIndex: stop\n });\n }\n }\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", __assign({ ref: this.getRef }, props, { style: wrapperStyle }), Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", { style: innerStyle }, items));\n var _e;\n };\n VirtualList.prototype.getNodeOffset = function () {\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n return this.rootNode[scrollProp[scrollDirection]];\n };\n VirtualList.prototype.getEstimatedItemSize = function (props) {\n if (props === void 0) {\n props = this.props;\n }\n return props.estimatedItemSize || typeof props.itemSize === 'number' && props.itemSize || 50;\n };\n VirtualList.prototype.getSize = function (index, itemSize) {\n if (typeof itemSize === 'function') {\n return itemSize(index);\n }\n return Array.isArray(itemSize) ? itemSize[index] : itemSize;\n };\n VirtualList.prototype.getStyle = function (index, sticky) {\n var style = this.styleCache[index];\n if (style) {\n return style;\n }\n var _a = this.props.scrollDirection,\n scrollDirection = _a === void 0 ? DIRECTION.VERTICAL : _a;\n var _b = this.sizeAndPositionManager.getSizeAndPositionForIndex(index),\n size = _b.size,\n offset = _b.offset;\n return this.styleCache[index] = sticky ? __assign({}, STYLE_STICKY_ITEM, (_c = {}, _c[sizeProp[scrollDirection]] = size, _c[marginProp[scrollDirection]] = offset, _c[oppositeMarginProp[scrollDirection]] = -(offset + size), _c.zIndex = 1, _c)) : __assign({}, STYLE_ITEM, (_d = {}, _d[sizeProp[scrollDirection]] = size, _d[positionProp[scrollDirection]] = offset, _d));\n var _c, _d;\n };\n VirtualList.defaultProps = {\n overscanCount: 3,\n scrollDirection: DIRECTION.VERTICAL,\n width: '100%'\n };\n VirtualList.propTypes = {\n estimatedItemSize: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n height: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOfType\"])([prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]]).isRequired,\n itemCount: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n itemSize: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOfType\"])([prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"array\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"]]).isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onItemsRendered: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n overscanCount: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n renderItem: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n scrollOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n scrollToIndex: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n scrollToAlignment: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])([ALIGNMENT.AUTO, ALIGNMENT.START, ALIGNMENT.CENTER, ALIGNMENT.END]),\n scrollDirection: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])([DIRECTION.HORIZONTAL, DIRECTION.VERTICAL]),\n stickyIndices: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"arrayOf\"])(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"]),\n style: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"object\"],\n width: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOfType\"])([prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"], prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]])\n };\n return VirtualList;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"PureComponent\"]);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (VirtualList);\n\n\n//# sourceURL=webpack://InfiniteTree/./node_modules/react-tiny-virtual-list/build/react-tiny-virtual-list.es.js?"); + +/***/ }), + +/***/ "infinite-tree": +/*!*********************************************************************************************************************!*\ + !*** external {"root":"InfiniteTree","commonjs2":"infinite-tree","commonjs":"infinite-tree","amd":"infinite-tree"} ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = require(\"infinite-tree\");\n\n//# sourceURL=webpack://InfiniteTree/external_%7B%22root%22:%22InfiniteTree%22,%22commonjs2%22:%22infinite-tree%22,%22commonjs%22:%22infinite-tree%22,%22amd%22:%22infinite-tree%22%7D?"); + +/***/ }), + +/***/ "react": +/*!**************************************************************************************!*\ + !*** external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = require(\"react\");\n\n//# sourceURL=webpack://InfiniteTree/external_%7B%22root%22:%22React%22,%22commonjs2%22:%22react%22,%22commonjs%22:%22react%22,%22amd%22:%22react%22%7D?"); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/docs/bundle.js b/docs/bundle.js index 98a4cfe..1ad0549 100644 --- a/docs/bundle.js +++ b/docs/bundle.js @@ -1,32475 +1,57 @@ -/******/ (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; -/******/ -/******/ // 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 = 30); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -if (process.env.NODE_ENV === 'production') { - module.exports = __webpack_require__(38); -} else { - module.exports = __webpack_require__(39); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - */ - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (process.env.NODE_ENV !== 'production') { - var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && - Symbol.for && - Symbol.for('react.element')) || - 0xeac7; - - var isValidElement = function(object) { - return typeof object === 'object' && - object !== null && - object.$$typeof === REACT_ELEMENT_TYPE; - }; - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(51)(isValidElement, throwOnDirectAccess); -} else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(52)(); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }), -/* 4 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* WEBPACK VAR INJECTION */(function(process, module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return css; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return keyframes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "injectGlobal", function() { return injectGlobal; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStyledComponent", function() { return isStyledComponent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "consolidateStreamedStyles", function() { return consolidateStreamedStyles; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return ThemeProvider; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withTheme", function() { return wrapWithTheme; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerStyleSheet", function() { return ServerStyleSheet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StyleSheetManager", function() { return StyleSheetManager; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_is_plain_object__ = __webpack_require__(83); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_is_plain_object___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_is_plain_object__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_stylis__ = __webpack_require__(85); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_stylis___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_stylis__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_stylis_rule_sheet__ = __webpack_require__(86); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_stylis_rule_sheet___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_stylis_rule_sheet__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_hoist_non_react_statics__ = __webpack_require__(87); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_hoist_non_react_statics__); - - - - - - - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @typechecks - */ - -var _uppercasePattern = /([A-Z])/g; - -/** - * Hyphenates a camelcased string, for example: - * - * > hyphenate('backgroundColor') - * < "background-color" - * - * For CSS style names, use `hyphenateStyleName` instead which works properly - * with all vendor prefixes, including `ms`. - * - * @param {string} string - * @return {string} - */ -function hyphenate$2(string) { - return string.replace(_uppercasePattern, '-$1').toLowerCase(); -} - -var hyphenate_1 = hyphenate$2; - -var hyphenate = hyphenate_1; - -var msPattern = /^ms-/; - -/** - * Hyphenates a camelcased CSS property name, for example: - * - * > hyphenateStyleName('backgroundColor') - * < "background-color" - * > hyphenateStyleName('MozTransition') - * < "-moz-transition" - * > hyphenateStyleName('msTransition') - * < "-ms-transition" - * - * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix - * is converted to `-ms-`. - * - * @param {string} string - * @return {string} - */ -function hyphenateStyleName(string) { - return hyphenate(string).replace(msPattern, '-ms-'); -} - -var hyphenateStyleName_1 = hyphenateStyleName; - -// -var objToCss = function objToCss(obj, prevKey) { - var css = Object.keys(obj).filter(function (key) { - var chunk = obj[key]; - return chunk !== undefined && chunk !== null && chunk !== false && chunk !== ''; - }).map(function (key) { - if (__WEBPACK_IMPORTED_MODULE_0_is_plain_object___default()(obj[key])) return objToCss(obj[key], key); - return hyphenateStyleName_1(key) + ': ' + obj[key] + ';'; - }).join(' '); - return prevKey ? prevKey + ' {\n ' + css + '\n}' : css; -}; - -var flatten = function flatten(chunks, executionContext) { - return chunks.reduce(function (ruleSet, chunk) { - /* Remove falsey values */ - if (chunk === undefined || chunk === null || chunk === false || chunk === '') { - return ruleSet; - } - /* Flatten ruleSet */ - if (Array.isArray(chunk)) { - return [].concat(ruleSet, flatten(chunk, executionContext)); - } - - /* Handle other components */ - if (chunk.hasOwnProperty('styledComponentId')) { - // $FlowFixMe not sure how to make this pass - return [].concat(ruleSet, ['.' + chunk.styledComponentId]); - } - - /* Either execute or defer the function */ - if (typeof chunk === 'function') { - return executionContext ? ruleSet.concat.apply(ruleSet, flatten([chunk(executionContext)], executionContext)) : ruleSet.concat(chunk); - } - - /* Handle objects */ - return ruleSet.concat( - // $FlowFixMe have to add %checks somehow to isPlainObject - __WEBPACK_IMPORTED_MODULE_0_is_plain_object___default()(chunk) ? objToCss(chunk) : chunk.toString()); - }, []); -}; - -// -var stylis = new __WEBPACK_IMPORTED_MODULE_1_stylis___default.a({ - global: false, - cascade: true, - keyframe: false, - prefix: true, - compress: false, - semicolon: true -}); - -// Wrap `insertRulePlugin to build a list of rules, -// and then make our own plugin to return the rules. This -// makes it easier to hook into the existing SSR architecture - -var parsingRules = []; -// eslint-disable-next-line consistent-return -var returnRulesPlugin = function returnRulesPlugin(context) { - if (context === -2) { - var parsedRules = parsingRules; - parsingRules = []; - return parsedRules; - } -}; - -var parseRulesPlugin = __WEBPACK_IMPORTED_MODULE_2_stylis_rule_sheet___default()(function (rule) { - parsingRules.push(rule); -}); - -stylis.use([parseRulesPlugin, returnRulesPlugin]); - -var stringifyRules = function stringifyRules(rules, selector, prefix) { - var flatCSS = rules.join('').replace(/^\s*\/\/.*$/gm, ''); // replace JS comments - - var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS; - - return stylis(prefix || !selector ? '' : selector, cssStr); -}; - -// - -function isStyledComponent(target) /* : %checks */{ - return typeof target === 'function' && typeof target.styledComponentId === 'string'; -} - -// -/** - * When using streaming rendering, style blocks are emitted in chunks directly - * next to the HTML they reference. In order to prevent errors during rehydration - * (since React doesn't know about the style blocks we are interleaving) this - * method relocates all styled-component blocks to the end of ``. - * - * NOTE: this method MUST be called before ReactDOM.hydrate(). - */ -function consolidateStreamedStyles() { - var blocks = Array.from(document.querySelectorAll('style[data-styled-components]')); - - if (blocks.length) { - var frag = document.createDocumentFragment(); - - for (var i = 0, len = blocks.length; i < len; i += 1) { - // $FlowFixMe - frag.appendChild(blocks[i].parentNode.removeChild(blocks[i])); - } - - // $FlowFixMe - document.head.appendChild(frag); - } -} - -// -var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); -var charsLength = chars.length; - -/* Some high number, usually 9-digit base-10. Map it to base-😎 */ -var generateAlphabeticName = function generateAlphabeticName(code) { - var name = ''; - var x = void 0; - - for (x = code; x > charsLength; x = Math.floor(x / charsLength)) { - name = chars[x % charsLength] + name; - } - - return chars[x % charsLength] + name; -}; - -// - -var interleave = (function (strings, interpolations) { - return interpolations.reduce(function (array, interp, i) { - return array.concat(interp, strings[i + 1]); - }, [strings[0]]); -}); - -// -var css = (function (strings) { - for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - interpolations[_key - 1] = arguments[_key]; - } - - return flatten(interleave(strings, interpolations)); -}); - -// -var SC_COMPONENT_ID = /^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm; - -var extractCompsFromCSS = (function (maybeCSS) { - var css = '' + (maybeCSS || ''); // Definitely a string, and a clone - var existingComponents = []; - css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) { - existingComponents.push({ componentId: componentId, matchIndex: matchIndex }); - return match; - }); - return existingComponents.map(function (_ref, i) { - var componentId = _ref.componentId, - matchIndex = _ref.matchIndex; - - var nextComp = existingComponents[i + 1]; - var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex); - return { componentId: componentId, cssFromDOM: cssFromDOM }; - }); -}); - -// -/* eslint-disable camelcase, no-undef */ - -var getNonce = (function () { - return true ? __webpack_require__.nc : null; -}); - -var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -var createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -}(); - - - - - - - -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 inherits = function (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 objectWithoutProperties = function (obj, keys) { - var target = {}; - - for (var i in obj) { - if (keys.indexOf(i) >= 0) continue; - if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; - target[i] = obj[i]; - } - - return target; -}; - -var possibleConstructorReturn = function (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; -}; - -// -/* eslint-disable no-underscore-dangle */ -/* - * Browser Style Sheet with Rehydration - * - * - * - * Note: replace · with * in the above snippet. - * */ -var DISABLE_SPEEDY = typeof false === 'boolean' && false || process.env.NODE_ENV !== 'production'; - -var COMPONENTS_PER_TAG = 40; -var SPEEDY_COMPONENTS_PER_TAG = 1000; // insertRule allows more injections before a perf slowdown - -// Source: https://github.com/threepointone/glamor/blob/master/src/sheet.js#L32-L43 -var sheetForTag = function sheetForTag(tag) { - if (tag.sheet) { - // $FlowFixMe - return tag.sheet; - } - - for (var i = 0; i < document.styleSheets.length; i += 1) { - if (document.styleSheets[i].ownerNode === tag) { - // $FlowFixMe - return document.styleSheets[i]; - } - } - - // NOTE: This should never happen - throw new Error(''); -}; - -// Safely (try/catch) injects rule at index and returns whether it was successful -var safeInsertRule = function safeInsertRule(sheet, cssRule, index) { - if (cssRule === undefined || cssRule.length === 0) { - return false; - } - - var maxIndex = sheet.cssRules.length; - var cappedIndex = index <= maxIndex ? index : maxIndex; - - try { - sheet.insertRule(cssRule, cappedIndex); - } catch (err) { - // NOTE: An invalid rule here means it's not supported by the browser or obviously malformed - return false; - } - - return true; -}; - -// Counts up the number of rules inside the array until a specific component entry is found -// This is used to determine the necessary insertRule index -var sizeUpToComponentIndex = function sizeUpToComponentIndex(componentSizes, componentIndex) { - var cssRulesSize = 0; - for (var i = 0; i <= componentIndex; i += 1) { - cssRulesSize += componentSizes[i]; - } - - return cssRulesSize; -}; - -var BaseBrowserTag = function () { - function BaseBrowserTag() { - classCallCheck(this, BaseBrowserTag); - } - - BaseBrowserTag.prototype.toReactElement = function toReactElement() { - throw new Error(process.env.NODE_ENV !== 'production' ? "BrowserTag doesn't implement toReactElement!" : ''); - }; - - BaseBrowserTag.prototype.clone = function clone() { - throw new Error(process.env.NODE_ENV !== 'production' ? 'BrowserTag cannot be cloned!' : ''); - }; - - BaseBrowserTag.prototype.getComponentIds = function getComponentIds() { - return Object.keys(this.components); - }; - - return BaseBrowserTag; -}(); - -var BrowserTag = void 0; -if (!DISABLE_SPEEDY) { - BrowserTag = function (_BaseBrowserTag) { - inherits(SpeedyBrowserTag, _BaseBrowserTag); - - // Store component ruleSizes in an array per component (in order) - - - function SpeedyBrowserTag(el, isLocal, existingSource) { - classCallCheck(this, SpeedyBrowserTag); - - var _this = possibleConstructorReturn(this, _BaseBrowserTag.call(this)); - - var nonce = getNonce(); - if (nonce) { - el.setAttribute('nonce', nonce); - } - - var extractedComps = extractCompsFromCSS(existingSource); - - _this.el = el; - _this.isLocal = isLocal; - _this.ready = false; - _this.componentSizes = []; - _this.size = extractedComps.length; - _this.components = extractedComps.reduce(function (acc, obj) { - acc[obj.componentId] = obj; // eslint-disable-line no-param-reassign - return acc; - }, {}); - return _this; - } - - /* Because we care about source order, before we can inject anything we need to - * create a text node for each component and replace the existing CSS. */ - - - SpeedyBrowserTag.prototype.replaceElement = function replaceElement() { - var _this2 = this; - - // Build up our replacement style tag - var newEl = this.el.cloneNode(false); - - if (!this.el.parentNode) { - throw new Error(process.env.NODE_ENV !== 'production' ? "Trying to replace an element that wasn't mounted!" : ''); - } - - // workaround for an IE/Edge bug: https://twitter.com/probablyup/status/958138927981977600 - newEl.appendChild(document.createTextNode('')); - - // $FlowFixMe - this.el.parentNode.replaceChild(newEl, this.el); - this.el = newEl; - this.ready = true; - - // Retrieve the sheet for the new style tag - var sheet = sheetForTag(newEl); - - Object.keys(this.components).forEach(function (componentId) { - var comp = _this2.components[componentId]; - var cssFromDOM = comp.cssFromDOM; - - var rules = stringifyRules([cssFromDOM]); - var rulesSize = rules.length; - - var injectedRules = 0; - for (var j = 0; j < rulesSize; j += 1) { - if (safeInsertRule(sheet, rules[j], sheet.cssRules.length)) { - injectedRules += 1; - } - } - - comp.componentIndex = _this2.componentSizes.length; - comp.css = rules.join(' '); - _this2.componentSizes.push(injectedRules); - }); - }; - - SpeedyBrowserTag.prototype.isSealed = function isSealed() { - return this.size >= SPEEDY_COMPONENTS_PER_TAG; - }; - - SpeedyBrowserTag.prototype.addComponent = function addComponent(componentId) { - if (!this.ready) this.replaceElement(); - - if (process.env.NODE_ENV !== 'production' && this.components[componentId]) { - throw new Error('Trying to add Component \'' + componentId + '\' twice!'); - } - - this.components[componentId] = { - componentIndex: this.componentSizes.length, - css: '' - }; - - this.componentSizes.push(0); - this.size += 1; - }; - - SpeedyBrowserTag.prototype.inject = function inject(componentId, cssRules, name) { - if (!this.ready) this.replaceElement(); - - var comp = this.components[componentId]; - if (process.env.NODE_ENV !== 'production' && !comp) { - throw new Error('Must add a new component before you can inject css into it'); - } - - var cssRulesSize = cssRules.length; - var sheet = sheetForTag(this.el); - var componentIndex = comp.componentIndex; - - // Determine start index for injection - - var insertIndex = sizeUpToComponentIndex(this.componentSizes, componentIndex); - - // Inject each rule shifting index forward for each one (in-order injection) - var injectedRules = 0; - for (var i = 0; i < cssRulesSize; i += 1) { - var cssRule = cssRules[i]; - if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) { - comp.css += ' ' + cssRule; - injectedRules += 1; - } - } - - // Update number of rules for component - this.componentSizes[componentIndex] += injectedRules; - - if (name !== undefined && name !== null) { - var existingNames = this.el.getAttribute(SC_ATTR); - this.el.setAttribute(SC_ATTR, existingNames ? existingNames + ' ' + name : name); - } - }; - - SpeedyBrowserTag.prototype.toRawCSS = function toRawCSS() { - return ''; // NOTE: Unsupported in production mode (SpeedyBrowserTag) - }; - - SpeedyBrowserTag.prototype.toHTML = function toHTML() { - return ''; // NOTE: Unsupported in production mode (SpeedyBrowserTag) - }; - - return SpeedyBrowserTag; - }(BaseBrowserTag); -} else { - BrowserTag = function (_BaseBrowserTag2) { - inherits(TextNodeBrowserTag, _BaseBrowserTag2); - - function TextNodeBrowserTag(el, isLocal) { - var existingSource = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - classCallCheck(this, TextNodeBrowserTag); - - var _this3 = possibleConstructorReturn(this, _BaseBrowserTag2.call(this)); - - var nonce = getNonce(); - if (nonce !== null) { - el.setAttribute('nonce', nonce); - } - - var extractedComps = extractCompsFromCSS(existingSource); - - _this3.el = el; - _this3.isLocal = isLocal; - _this3.ready = false; - _this3.size = extractedComps.length; - _this3.components = extractedComps.reduce(function (acc, obj) { - acc[obj.componentId] = obj; // eslint-disable-line no-param-reassign - return acc; - }, {}); - return _this3; - } - - TextNodeBrowserTag.prototype.isSealed = function isSealed() { - return this.size >= COMPONENTS_PER_TAG; - }; - - TextNodeBrowserTag.prototype.addComponent = function addComponent(componentId) { - if (!this.ready) this.replaceElement(); - if (process.env.NODE_ENV !== 'production' && this.components[componentId]) { - throw new Error('Trying to add Component \'' + componentId + '\' twice!'); - } - - var comp = { componentId: componentId, textNode: document.createTextNode('') }; - this.el.appendChild(comp.textNode); - this.size += 1; - this.components[componentId] = comp; - }; - - TextNodeBrowserTag.prototype.inject = function inject(componentId, css, name) { - if (!this.ready) this.replaceElement(); - var comp = this.components[componentId]; - - if (process.env.NODE_ENV !== 'production' && !comp) { - throw new Error('Must add a new component before you can inject css into it'); - } - - if (comp.textNode.data === '') { - comp.textNode.appendData('\n/* sc-component-id: ' + componentId + ' */\n'); - } - - comp.textNode.appendData(css.join(' ')); - - if (name !== undefined && name !== null) { - var existingNames = this.el.getAttribute(SC_ATTR); - this.el.setAttribute(SC_ATTR, existingNames ? existingNames + ' ' + name : name); - } - }; - - TextNodeBrowserTag.prototype.toHTML = function toHTML() { - return this.el.outerHTML; - }; - - TextNodeBrowserTag.prototype.toReactElement = function toReactElement() { - throw new Error(process.env.NODE_ENV !== 'production' ? "BrowserTag doesn't implement toReactElement!" : ''); - }; - - TextNodeBrowserTag.prototype.clone = function clone() { - throw new Error(process.env.NODE_ENV !== 'production' ? 'BrowserTag cannot be cloned!' : ''); - }; - - /* Because we care about source order, before we can inject anything we need to - * create a text node for each component and replace the existing CSS. */ - - - TextNodeBrowserTag.prototype.replaceElement = function replaceElement() { - var _this4 = this; - - this.ready = true; - // We have nothing to inject. Use the current el. - if (this.size === 0) return; - - // Build up our replacement style tag - var newEl = this.el.cloneNode(false); - newEl.appendChild(document.createTextNode('\n')); - - Object.keys(this.components).forEach(function (key) { - var comp = _this4.components[key]; - - // eslint-disable-next-line no-param-reassign - comp.textNode = document.createTextNode(comp.cssFromDOM); - newEl.appendChild(comp.textNode); - }); - - if (!this.el.parentNode) { - throw new Error(process.env.NODE_ENV !== 'production' ? "Trying to replace an element that wasn't mounted!" : ''); - } - - // The ol' switcheroo - this.el.parentNode.replaceChild(newEl, this.el); - this.el = newEl; - }; - - return TextNodeBrowserTag; - }(BaseBrowserTag); -} - -/* Factory function to separate DOM operations from logical ones*/ -var BrowserStyleSheet = { - create: function create() { - var tags = []; - var names = {}; - - /* Construct existing state from DOM */ - var nodes = document.querySelectorAll('[' + SC_ATTR + ']'); - var nodesLength = nodes.length; - - for (var i = 0; i < nodesLength; i += 1) { - // $FlowFixMe: We can trust that all elements in this query are style elements - var el = nodes[i]; - var attr = el.getAttribute(SC_ATTR); - - if (attr) { - attr.trim().split(/\s+/).forEach(function (name) { - names[name] = true; - }); - } - - tags.push(new BrowserTag(el, el.getAttribute(LOCAL_ATTR) === 'true', el.textContent)); - } - - /* Factory for making more tags */ - var tagConstructor = function tagConstructor(isLocal) { - var el = document.createElement('style'); - el.type = 'text/css'; - el.setAttribute(SC_ATTR, ''); - el.setAttribute(LOCAL_ATTR, isLocal ? 'true' : 'false'); - if (!document.head) { - throw new Error(process.env.NODE_ENV !== 'production' ? 'Missing document ' : ''); - } - document.head.appendChild(el); - return new BrowserTag(el, isLocal); - }; - - return new StyleSheet(tagConstructor, tags, names); - } -}; - -// -var SC_ATTR = 'data-styled-components'; -var LOCAL_ATTR = 'data-styled-components-is-local'; -var CONTEXT_KEY = '__styled-components-stylesheet__'; - -/* eslint-disable flowtype/object-type-delimiter */ -/* eslint-enable flowtype/object-type-delimiter */ - -var instance = null; -// eslint-disable-next-line no-use-before-define -var clones = []; - -var IS_BROWSER = typeof document !== 'undefined'; - -var StyleSheet = function () { - function StyleSheet(tagConstructor) { - var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - var names = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - classCallCheck(this, StyleSheet); - this.hashes = {}; - this.deferredInjections = {}; - this.stylesCacheable = IS_BROWSER; - - this.tagConstructor = tagConstructor; - this.tags = tags; - this.names = names; - this.constructComponentTagMap(); - this.isStreaming = false; - } - - // helper for `ComponentStyle` to know when it cache static styles. - // staticly styled-component can not safely cache styles on the server - // without all `ComponentStyle` instances saving a reference to the - // the styleSheet instance they last rendered with, - // or listening to creation / reset events. otherwise you might create - // a component with one stylesheet and render it another api response - // with another, losing styles on from your server-side render. - - - StyleSheet.prototype.constructComponentTagMap = function constructComponentTagMap() { - var _this = this; - - this.componentTags = {}; - - this.tags.forEach(function (tag) { - tag.getComponentIds().forEach(function (componentId) { - _this.componentTags[componentId] = tag; - }); - }); - }; - - /* Best level of caching—get the name from the hash straight away. */ - - - StyleSheet.prototype.getName = function getName(hash) { - return this.hashes[hash.toString()]; - }; - - /* Second level of caching—if the name is already in the dom, don't - * inject anything and record the hash for getName next time. */ - - - StyleSheet.prototype.alreadyInjected = function alreadyInjected(hash, name) { - if (!this.names[name]) return false; - - this.hashes[hash.toString()] = name; - return true; - }; - - /* Third type of caching—don't inject components' componentId twice. */ - - - StyleSheet.prototype.hasInjectedComponent = function hasInjectedComponent(componentId) { - return !!this.componentTags[componentId]; - }; - - StyleSheet.prototype.deferredInject = function deferredInject(componentId, isLocal, css) { - if (this === instance) { - clones.forEach(function (clone) { - clone.deferredInject(componentId, isLocal, css); - }); - } - - this.getOrCreateTag(componentId, isLocal); - this.deferredInjections[componentId] = css; - }; - - StyleSheet.prototype.inject = function inject(componentId, isLocal, css, hash, name) { - if (this === instance) { - clones.forEach(function (clone) { - clone.inject(componentId, isLocal, css); - }); - } - - var tag = this.getOrCreateTag(componentId, isLocal); - - var deferredInjection = this.deferredInjections[componentId]; - if (deferredInjection) { - tag.inject(componentId, deferredInjection); - delete this.deferredInjections[componentId]; - } - - tag.inject(componentId, css, name); - - if (hash && name) { - this.hashes[hash.toString()] = name; - } - }; - - StyleSheet.prototype.toHTML = function toHTML() { - return this.tags.map(function (tag) { - return tag.toHTML(); - }).join(''); - }; - - StyleSheet.prototype.toReactElements = function toReactElements() { - return this.tags.map(function (tag, i) { - return tag.toReactElement('sc-' + i); - }); - }; - - StyleSheet.prototype.getOrCreateTag = function getOrCreateTag(componentId, isLocal) { - var existingTag = this.componentTags[componentId]; - - /** - * in a streaming context, once a tag is sealed it can never be added to again - * or those styles will never make it to the client - */ - if (existingTag && this.isStreaming ? !existingTag.isSealed() : existingTag) { - return existingTag; - } - - var lastTag = this.tags[this.tags.length - 1]; - var componentTag = !lastTag || lastTag.isSealed() || lastTag.isLocal !== isLocal ? this.createNewTag(isLocal) : lastTag; - this.componentTags[componentId] = componentTag; - componentTag.addComponent(componentId); - return componentTag; - }; - - StyleSheet.prototype.createNewTag = function createNewTag(isLocal) { - var newTag = this.tagConstructor(isLocal); - this.tags.push(newTag); - return newTag; - }; - - StyleSheet.reset = function reset(isServer) { - instance = StyleSheet.create(isServer); - }; - - /* We can make isServer totally implicit once Jest 20 drops and we - * can change environment on a per-test basis. */ - - - StyleSheet.create = function create() { - var isServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !IS_BROWSER; - - return (isServer ? ServerStyleSheet : BrowserStyleSheet).create(); - }; - - StyleSheet.clone = function clone(oldSheet) { - var newSheet = new StyleSheet(oldSheet.tagConstructor, oldSheet.tags.map(function (tag) { - return tag.clone(); - }), _extends({}, oldSheet.names)); - - newSheet.hashes = _extends({}, oldSheet.hashes); - newSheet.deferredInjections = _extends({}, oldSheet.deferredInjections); - clones.push(newSheet); - - return newSheet; - }; - - createClass(StyleSheet, null, [{ - key: 'instance', - get: function get$$1() { - return instance || (instance = StyleSheet.create()); - } - }]); - return StyleSheet; -}(); - -var _StyleSheetManager$ch; - -// -var StyleSheetManager = function (_Component) { - inherits(StyleSheetManager, _Component); - - function StyleSheetManager() { - classCallCheck(this, StyleSheetManager); - return possibleConstructorReturn(this, _Component.apply(this, arguments)); - } - - StyleSheetManager.prototype.getChildContext = function getChildContext() { - var _ref; - - return _ref = {}, _ref[CONTEXT_KEY] = this.props.sheet, _ref; - }; - - StyleSheetManager.prototype.render = function render() { - /* eslint-disable react/prop-types */ - // Flow v0.43.1 will report an error accessing the `children` property, - // but v0.47.0 will not. It is necessary to use a type cast instead of - // a "fixme" comment to satisfy both Flow versions. - return __WEBPACK_IMPORTED_MODULE_3_react___default.a.Children.only(this.props.children); - }; - - return StyleSheetManager; -}(__WEBPACK_IMPORTED_MODULE_3_react__["Component"]); - -StyleSheetManager.childContextTypes = (_StyleSheetManager$ch = {}, _StyleSheetManager$ch[CONTEXT_KEY] = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.instanceOf(StyleSheet), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.instanceOf(ServerStyleSheet)]).isRequired, _StyleSheetManager$ch); - -process.env.NODE_ENV !== "production" ? StyleSheetManager.propTypes = { - sheet: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.instanceOf(StyleSheet), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.instanceOf(ServerStyleSheet)]).isRequired -} : void 0; - -// -/* eslint-disable no-underscore-dangle */ -var ServerTag = function () { - function ServerTag(isLocal) { - classCallCheck(this, ServerTag); - - this.emitted = false; - this.isLocal = isLocal; - this.isProduction = process.env.NODE_ENV === 'production'; - this.components = {}; - this.size = 0; - this.names = []; - } - - ServerTag.prototype.isSealed = function isSealed() { - return this.emitted; - }; - - ServerTag.prototype.getComponentIds = function getComponentIds() { - return Object.keys(this.components); - }; - - ServerTag.prototype.addComponent = function addComponent(componentId) { - if (this.components[componentId]) { - throw new Error(process.env.NODE_ENV !== 'production' ? 'Trying to add Component \'' + componentId + '\' twice!' : ''); - } - this.components[componentId] = { componentId: componentId, css: '' }; - this.size += 1; - }; - - ServerTag.prototype.concatenateCSS = function concatenateCSS() { - var _this = this; - - return Object.keys(this.components).reduce(function (styles, k) { - return styles + _this.components[k].css; - }, ''); - }; - - ServerTag.prototype.inject = function inject(componentId, css, name) { - var comp = this.components[componentId]; - - if (!comp) { - throw new Error(process.env.NODE_ENV !== 'production' ? 'Must add a new component before you can inject css into it' : ''); - } - - if (comp.css === '') { - comp.css = '/* sc-component-id: ' + componentId + ' */\n'; - } - - var cssRulesSize = css.length; - for (var i = 0; i < cssRulesSize; i += 1) { - var cssRule = css[i]; - comp.css += (cssRule + '\n').replace(/\n*$/, '\n'); - } - - if (name) this.names.push(name); - }; - - ServerTag.prototype.toHTML = function toHTML() { - var attrs = ['type="text/css"', SC_ATTR + '="' + this.names.join(' ') + '"', LOCAL_ATTR + '="' + (this.isLocal ? 'true' : 'false') + '"']; - - var nonce = getNonce(); - if (nonce) { - attrs.push('nonce="' + nonce + '"'); - } - - this.emitted = true; - return ''; - }; - - ServerTag.prototype.toReactElement = function toReactElement(key) { - var _attrs; - - var attrs = (_attrs = {}, _attrs[SC_ATTR] = this.names.join(' '), _attrs[LOCAL_ATTR] = this.isLocal.toString(), _attrs); - - var nonce = getNonce(); - if (nonce) { - attrs.nonce = nonce; - } - - this.emitted = true; - - return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement('style', _extends({ - key: key, - type: 'text/css' - }, attrs, { - dangerouslySetInnerHTML: { __html: this.concatenateCSS() } - })); - }; - - ServerTag.prototype.clone = function clone() { - var _this2 = this; - - var copy = new ServerTag(this.isLocal); - copy.names = [].concat(this.names); - copy.size = this.size; - copy.components = Object.keys(this.components).reduce(function (acc, key) { - acc[key] = _extends({}, _this2.components[key]); // eslint-disable-line no-param-reassign - return acc; - }, {}); - - return copy; - }; - - return ServerTag; -}(); - -var ServerStyleSheet = function () { - function ServerStyleSheet() { - classCallCheck(this, ServerStyleSheet); - - this.instance = StyleSheet.clone(StyleSheet.instance); - this.instance.isStreaming = false; - } - - ServerStyleSheet.prototype.collectStyles = function collectStyles(children) { - if (this.closed) { - throw new Error(process.env.NODE_ENV !== 'production' ? "Can't collect styles once you've called getStyleTags!" : ''); - } - return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement( - StyleSheetManager, - { sheet: this.instance }, - children - ); - }; - - ServerStyleSheet.prototype.close = function close() { - clones.splice(clones.indexOf(this.instance), 1); - this.closed = true; - }; - - ServerStyleSheet.prototype.getStyleTags = function getStyleTags() { - if (!this.closed) { - this.close(); - } - - return this.instance.toHTML(); - }; - - ServerStyleSheet.prototype.getStyleElement = function getStyleElement() { - if (!this.closed) { - this.close(); - } - - return this.instance.toReactElements(); - }; - - ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) { - { - throw new Error(process.env.NODE_ENV !== 'production' ? 'streaming only works in Node.js, please do not try to call this method in the browser' : ''); - } - }; - - ServerStyleSheet.create = function create() { - return new StyleSheet(function (isLocal) { - return new ServerTag(isLocal); - }); - }; - - return ServerStyleSheet; -}(); - -// - -var LIMIT = 200; - -var createWarnTooManyClasses = (function (displayName) { - var generatedClasses = {}; - var warningSeen = false; - - return function (className) { - if (!warningSeen) { - generatedClasses[className] = true; - if (Object.keys(generatedClasses).length >= LIMIT) { - // Unable to find latestRule in test environment. - /* eslint-disable no-console, prefer-template */ - console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\n' + 'Example:\n' + ' const Component = styled.div.attrs({\n' + ' style: ({ background }) => ({\n' + ' background,\n' + ' }),\n' + ' })`width: 100%;`\n\n' + ' '); - warningSeen = true; - generatedClasses = {}; - } - } - }; -}); - -// -/* eslint-disable max-len */ -/** - * Trying to avoid the unknown-prop errors on styled components by filtering by - * React's attribute whitelist. - * - * To regenerate this regex: - * - * 1. `npm i -g regexgen` (https://github.com/devongovett/regexgen) - * 2. Run `regexgen` with the list of space-separated words below as input - * 3. Surround the emitted regex with this: `/^(GENERATED_REGEX)$/` -- this will ensure a full string match - * and no false positives from partials - **/ -/* -children dangerouslySetInnerHTML key ref autoFocus defaultValue valueLink defaultChecked checkedLink innerHTML suppressContentEditableWarning onFocusIn onFocusOut className onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onReset onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onAnimationStart onAnimationEnd onAnimationIteration onTransitionEnd onCopyCapture onCutCapture onPasteCapture onCompositionEndCapture onCompositionStartCapture onCompositionUpdateCapture onKeyDownCapture onKeyPressCapture onKeyUpCapture onFocusCapture onBlurCapture onChangeCapture onInputCapture onSubmitCapture onResetCapture onClickCapture onContextMenuCapture onDoubleClickCapture onDragCapture onDragEndCapture onDragEnterCapture onDragExitCapture onDragLeaveCapture onDragOverCapture onDragStartCapture onDropCapture onMouseDownCapture onMouseEnterCapture onMouseLeaveCapture onMouseMoveCapture onMouseOutCapture onMouseOverCapture onMouseUpCapture onSelectCapture onTouchCancelCapture onTouchEndCapture onTouchMoveCapture onTouchStartCapture onScrollCapture onWheelCapture onAbortCapture onCanPlayCapture onCanPlayThroughCapture onDurationChangeCapture onEmptiedCapture onEncryptedCapture onEndedCapture onErrorCapture onLoadedDataCapture onLoadedMetadataCapture onLoadStartCapture onPauseCapture onPlayCapture onPlayingCapture onProgressCapture onRateChangeCapture onSeekedCapture onSeekingCapture onStalledCapture onSuspendCapture onTimeUpdateCapture onVolumeChangeCapture onWaitingCapture onLoadCapture onAnimationStartCapture onAnimationEndCapture onAnimationIterationCapture onTransitionEndCapture accept acceptCharset accessKey action allowFullScreen allowTransparency alt as async autoComplete autoPlay capture cellPadding cellSpacing charSet challenge checked cite classID className cols colSpan content contentEditable contextMenu controls coords crossOrigin data dateTime default defer dir disabled download draggable encType form formAction formEncType formMethod formNoValidate formTarget frameBorder headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media mediaGroup method min minLength multiple muted name nonce noValidate open optimum pattern placeholder playsInline poster preload profile radioGroup readOnly referrerPolicy rel required reversed role rows rowSpan sandbox scope scoped scrolling seamless selected shape size sizes span spellCheck src srcDoc srcLang srcSet start step style summary tabIndex target title type useMap value width wmode wrap about datatype inlist prefix property resource typeof vocab autoCapitalize autoCorrect autoSave color itemProp itemScope itemType itemID itemRef results security unselectable accentHeight accumulate additive alignmentBaseline allowReorder alphabetic amplitude arabicForm ascent attributeName attributeType autoReverse azimuth baseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeight clip clipPath clipRule clipPathUnits colorInterpolation colorInterpolationFilters colorProfile colorRendering contentScriptType contentStyleType cursor cx cy d decelerate descent diffuseConstant direction display divisor dominantBaseline dur dx dy edgeMode elevation enableBackground end exponent externalResourcesRequired fill fillOpacity fillRule filter filterRes filterUnits floodColor floodOpacity focusable fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight format from fx fy g1 g2 glyphName glyphOrientationHorizontal glyphOrientationVertical glyphRef gradientTransform gradientUnits hanging horizAdvX horizOriginX ideographic imageRendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lengthAdjust letterSpacing lightingColor limitingConeAngle local markerEnd markerMid markerStart markerHeight markerUnits markerWidth mask maskContentUnits maskUnits mathematical mode numOctaves offset opacity operator order orient orientation origin overflow overlinePosition overlineThickness paintOrder panose1 pathLength patternContentUnits patternTransform patternUnits pointerEvents points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY renderingIntent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry scale seed shapeRendering slope spacing specularConstant specularExponent speed spreadMethod startOffset stdDeviation stemh stemv stitchTiles stopColor stopOpacity strikethroughPosition strikethroughThickness string stroke strokeDasharray strokeDashoffset strokeLinecap strokeLinejoin strokeMiterlimit strokeOpacity strokeWidth surfaceScale systemLanguage tableValues targetX targetY textAnchor textDecoration textRendering textLength to transform u1 u2 underlinePosition underlineThickness unicode unicodeBidi unicodeRange unitsPerEm vAlphabetic vHanging vIdeographic vMathematical values vectorEffect version vertAdvY vertOriginX vertOriginY viewBox viewTarget visibility widths wordSpacing writingMode x xHeight x1 x2 xChannelSelector xlinkActuate xlinkArcrole xlinkHref xlinkRole xlinkShow xlinkTitle xlinkType xmlBase xmlns xmlnsXlink xmlLang xmlSpace y y1 y2 yChannelSelector z zoomAndPan -*/ -/* eslint-enable max-len */ - -var ATTRIBUTE_REGEX = /^((?:s(?:uppressContentEditableWarn|croll|pac)|(?:shape|image|text)Render|(?:letter|word)Spac|vHang|hang)ing|(?:on(?:AnimationIteration|C(?:o(?:mposition(?:Update|Start|End)|ntextMenu|py)|anPlayThrough|anPlay|hange|lick|ut)|(?:(?:Duration|Volume|Rate)Chang|(?:MouseLea|(?:Touch|Mouse)Mo|DragLea)v|Paus)e|Loaded(?:Metad|D)ata|(?:Animation|Touch|Load|Drag)Start|(?:(?:T(?:ransition|ouch)|Animation)E|Suspe)nd|DoubleClick|(?:TouchCanc|Whe)el|(?:Mouse(?:Ent|Ov)e|Drag(?:Ent|Ov)e|Erro)r|TimeUpdate|(?:E(?:n(?:crypt|d)|mpti)|S(?:tall|eek))ed|MouseDown|P(?:rogress|laying)|(?:MouseOu|DragExi|S(?:elec|ubmi)|Rese|Inpu)t|KeyPress|DragEnd|Key(?:Down|Up)|(?:Wait|Seek)ing|(?:MouseU|Dro)p|Scroll|Paste|Focus|Abort|Drag|Play|Load|Blur)Captur|alignmentBaselin|(?:limitingConeAng|xlink(?:(?:Arcr|R)o|Tit)|s(?:urfaceSca|ty|ca)|unselectab|baseProfi|fontSty|(?:focus|dragg)ab|multip|profi|tit)l|d(?:ominantBaselin|efaultValu)|a(?:uto(?:Capitaliz|Revers|Sav)|dditiv)|(?:(?:formNoValid|xlinkActu|noValid|accumul|rot)a|autoComple|decelera)t|(?:(?:attribute|item)T|datat)yp|(?:attribute|glyph)Nam|playsInlin|(?:formE|e)ncTyp|(?:writing|input|edge)Mod|(?:xlinkTy|itemSco|keyTy|slo)p|(?:amplitu|mo)d|(?:xmlSpa|non)c|fillRul|(?:dateTi|na)m|r(?:esourc|ol)|xmlBas|wmod)e|(?:glyphOrientationHorizont|loc)al|(?:externalResourcesRequir|select|revers|mut)ed|c(?:o(?:lorInterpolationFilter|ntrol|ord)s|o(?:lor(?:Interpolation)?|ntent)|(?:ontentS(?:cript|tyle)Typ|o(?:ntentEditab|lorProfi)l|l(?:assNam|ipRul)|a(?:lcMod|ptur)|it)e|olorRendering|l(?:ipPathUnits|assID)|o(?:ntextMenu|ls)|h(?:eckedLink|a(?:llenge|rSet)|ildren|ecked)|ell(?:Spac|Padd)ing|(?:rossOrigi|olSpa)n|apHeight|lip(?:Path)?|ursor|[xy])|glyphOrientationVertical|d(?:angerouslySetInnerHTML|efaultChecked|ownload|isabled|isplay|[xy])|(?:s(?:trikethroughThickn|eaml)es|(?:und|ov)erlineThicknes|r(?:equiredExtension|adiu)|(?:requiredFeatur|tableValu|stitchTil|numOctav|filterR)e|key(?:(?:Splin|Tim)e|Param)|autoFocu|header|bia)s|(?:(?:st(?:rikethroughPosi|dDevia)|(?:und|ov)erlinePosi|(?:textDecor|elev)a|orienta)tio|(?:strokeLinejo|orig)i|formActio|zoomAndPa|onFocusI|directio|(?:vers|act)io|rowSpa|begi|ico)n|o(?:n(?:AnimationIteration|C(?:o(?:mposition(?:Update|Start|End)|ntextMenu|py)|anPlayThrough|anPlay|hange|lick|ut)|(?:(?:Duration|Volume|Rate)Chang|(?:MouseLea|(?:Touch|Mouse)Mo|DragLea)v|Paus)e|Loaded(?:Metad|D)ata|(?:Animation|Touch|Load|Drag)Start|(?:(?:T(?:ransition|ouch)|Animation)E|Suspe)nd|DoubleClick|(?:TouchCanc|Whe)el|(?:Mouse(?:Ent|Ov)e|Drag(?:Ent|Ov)e|Erro)r|TimeUpdate|(?:E(?:n(?:crypt|d)|mpti)|S(?:tall|eek))ed|MouseDown|P(?:rogress|laying)|(?:MouseOu|DragExi|S(?:elec|ubmi)|Rese|Inpu)t|KeyPress|DragEnd|Key(?:Down|Up)|(?:Wait|Seek)ing|(?:MouseU|Dro)p|Scroll|Paste|Focus|Abort|Drag|Play|Load|Blur)|rient)|p(?:reserveA(?:spectRatio|lpha)|ointsAt[X-Z]|anose1)|(?:patternContent|ma(?:sk(?:Content)?|rker)|primitive|gradient|pattern|filter)Units|(?:gradientT|patternT|t)ransform|(?:(?:allowTranspar|baseFrequ)enc|re(?:ferrerPolic|adOnl)|(?:(?:st(?:roke|op)O|floodO|fillO|o)pac|integr|secur)it|visibilit|fontFamil|accessKe|propert|summar)y|(?:strokeMiterlimi|(?:specularConsta|repeatCou|fontVaria)n|(?:(?:specularE|e)xpon|renderingInt|asc)en|d(?:iffuseConsta|esce)n|(?:fontSizeAdju|lengthAdju|manife)s|baselineShif|vectorEffec|(?:(?:mar(?:ker|gin)|x)H|accentH|fontW)eigh|a(?:utoCorrec|bou)|markerStar|onFocusOu|in(?:tercep|lis)|restar|forma|heigh|lis)t|(?:(?:st(?:rokeDasho|artO)|o)ffs|acceptChars|formTarg|viewTarg|srcS)et|(?:(?:enableBackgrou|markerE)n|s(?:p(?:readMetho|ee)|ee)|formMetho|m(?:arkerMi|etho)|preloa|kin)d|k(?:ernel(?:UnitLength|Matrix)|[1-4])|(?:[xy]ChannelSelect|lightingCol|textAnch|floodCol|stopCol|operat|htmlF)or|(?:allowFullScre|hidd)en|strokeDasharray|systemLanguage|(?:strokeLineca|itemPro|useMa|wra|loo)p|v(?:Mathematical|ert(?:Origin[XY]|AdvY)|alues|ocab)|(?:pointerEve|keyPoi)nts|unicodeRange|(?:(?:allowReord|placehold|frameBord|paintOrd|post|ord)e|repeatDu|d(?:efe|u))r|mathematical|(?:vI|i)deographic|h(?:oriz(?:Origin|Adv)X|ttpEquiv)|u(?:nicodeBidi|[12])|(?:fontStretc|hig)h|(?:(?:mar(?:ker|gin)W|strokeW)id|azimu)th|vAlphabetic|mediaGroup|spellCheck|(?:unitsPerE|optimu|fro)m|r(?:adioGroup|e(?:sults|f[XY]|l)|ows|[xy])|(?:xmlnsXl|valueL)ink|a(?:rabicForm|l(?:phabetic|t)|sync)|pathLength|(?:text|m(?:in|ax))Length|innerHTML|xlinkShow|(?:xlinkHr|glyphR)ef|r(?:e(?:quired|sult|f))?|o(?:verflow|pen)|(?:tabInde|(?:sand|b)bo|viewBo)x|(?:(?:href|xml|src)La|kerni)ng|f(?:o(?:ntSize|rm)|il(?:ter|l))|autoPlay|unicode|p(?:attern|oints)|t(?:arget[XY]|o)|i(?:temRef|n2|s)|divisor|d(?:efault|ata|ir)?|srcDoc|s(?:coped|te(?:m[hv]|p)|pan)|(?:width|size)s|(?:stri|la)ng|prefix|itemID|s(?:t(?:roke|art)|hape|cope|rc)|a(?:ccept|s)|t(?:arget|ype)|typeof|width|value|x(?:mlns)?|label|m(?:edia|a(?:sk|x)|in)|size|href|k(?:ey)?|end|low|x[12]|i[dn]|y[12]|g[12]|by|f[xy]|[yz])$/; - -/* From DOMProperty */ -var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD'; -var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040'; -var isCustomAttribute = RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$')); - -var validAttr = (function (name) { - return ATTRIBUTE_REGEX.test(name) || isCustomAttribute(name.toLowerCase()); -}); - -// - -function isTag(target) /* : %checks */{ - return typeof target === 'string'; -} - -// - -/* eslint-disable no-undef */ -function getComponentName(target) { - return target.displayName || target.name || 'Component'; -} - -// - -var determineTheme = (function (props, fallbackTheme, defaultProps) { - // Props should take precedence over ThemeProvider, which should take precedence over - // defaultProps, but React automatically puts defaultProps on props. - - /* eslint-disable react/prop-types */ - var isDefaultTheme = defaultProps && props.theme === defaultProps.theme; - var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme; - /* eslint-enable */ - - return theme; -}); - -// -var escapeRegex = /[[\].#*$><+~=|^:(),"'`-]+/g; -var dashesAtEnds = /(^-|-$)/g; - -/** - * TODO: Explore using CSS.escape when it becomes more available - * in evergreen browsers. - */ -function escape(str) { - return str - // Replace all possible CSS selectors - .replace(escapeRegex, '-') - - // Remove extraneous hyphens at the start and end - .replace(dashesAtEnds, ''); -} - -// -/** - * Creates a broadcast that can be listened to, i.e. simple event emitter - * - * @see https://github.com/ReactTraining/react-broadcast - */ - -var createBroadcast = function createBroadcast(initialState) { - var listeners = {}; - var id = 0; - var state = initialState; - - function publish(nextState) { - state = nextState; - - // eslint-disable-next-line guard-for-in, no-restricted-syntax - for (var key in listeners) { - var listener = listeners[key]; - if (listener === undefined) { - // eslint-disable-next-line no-continue - continue; - } - - listener(state); - } - } - - function subscribe(listener) { - var currentId = id; - listeners[currentId] = listener; - id += 1; - listener(state); - return currentId; - } - - function unsubscribe(unsubID) { - listeners[unsubID] = undefined; - } - - return { publish: publish, subscribe: subscribe, unsubscribe: unsubscribe }; -}; - -// -// Helper to call a given function, only once -var once = (function (cb) { - var called = false; - - return function () { - if (!called) { - called = true; - cb(); - } - }; -}); - -var _ThemeProvider$childC; -var _ThemeProvider$contex; - -// -/* globals React$Element */ -// NOTE: DO NOT CHANGE, changing this is a semver major change! -var CHANNEL = '__styled-components__'; -var CHANNEL_NEXT = CHANNEL + 'next__'; - -var CONTEXT_CHANNEL_SHAPE = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape({ - getTheme: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, - subscribe: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, - unsubscribe: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func -}); - -var warnChannelDeprecated = void 0; -if (process.env.NODE_ENV !== 'production') { - warnChannelDeprecated = once(function () { - // eslint-disable-next-line no-console - console.error('Warning: Usage of `context.' + CHANNEL + '` as a function is deprecated. It will be replaced with the object on `.context.' + CHANNEL_NEXT + '` in a future version.'); - }); -} - -var isFunction = function isFunction(test) { - return typeof test === 'function'; -}; - -/** - * Provide a theme to an entire react component tree via context and event listeners (have to do - * both context and event emitter as pure components block context updates) - */ - -var ThemeProvider = function (_Component) { - inherits(ThemeProvider, _Component); - - function ThemeProvider() { - classCallCheck(this, ThemeProvider); - - var _this = possibleConstructorReturn(this, _Component.call(this)); - - _this.unsubscribeToOuterId = -1; - - _this.getTheme = _this.getTheme.bind(_this); - return _this; - } - - ThemeProvider.prototype.componentWillMount = function componentWillMount() { - var _this2 = this; - - // If there is a ThemeProvider wrapper anywhere around this theme provider, merge this theme - // with the outer theme - var outerContext = this.context[CHANNEL_NEXT]; - if (outerContext !== undefined) { - this.unsubscribeToOuterId = outerContext.subscribe(function (theme) { - _this2.outerTheme = theme; - - if (_this2.broadcast !== undefined) { - _this2.publish(_this2.props.theme); - } - }); - } - - this.broadcast = createBroadcast(this.getTheme()); - }; - - ThemeProvider.prototype.getChildContext = function getChildContext() { - var _this3 = this, - _babelHelpers$extends; - - return _extends({}, this.context, (_babelHelpers$extends = {}, _babelHelpers$extends[CHANNEL_NEXT] = { - getTheme: this.getTheme, - subscribe: this.broadcast.subscribe, - unsubscribe: this.broadcast.unsubscribe - }, _babelHelpers$extends[CHANNEL] = function (subscriber) { - if (process.env.NODE_ENV !== 'production') { - warnChannelDeprecated(); - } - - // Patch the old `subscribe` provide via `CHANNEL` for older clients. - var unsubscribeId = _this3.broadcast.subscribe(subscriber); - return function () { - return _this3.broadcast.unsubscribe(unsubscribeId); - }; - }, _babelHelpers$extends)); - }; - - ThemeProvider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (this.props.theme !== nextProps.theme) { - this.publish(nextProps.theme); - } - }; - - ThemeProvider.prototype.componentWillUnmount = function componentWillUnmount() { - if (this.unsubscribeToOuterId !== -1) { - this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeToOuterId); - } - }; - - // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation - - - ThemeProvider.prototype.getTheme = function getTheme(passedTheme) { - var theme = passedTheme || this.props.theme; - if (isFunction(theme)) { - var mergedTheme = theme(this.outerTheme); - if (process.env.NODE_ENV !== 'production' && !__WEBPACK_IMPORTED_MODULE_0_is_plain_object___default()(mergedTheme)) { - throw new Error(process.env.NODE_ENV !== 'production' ? '[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!' : ''); - } - return mergedTheme; - } - if (!__WEBPACK_IMPORTED_MODULE_0_is_plain_object___default()(theme)) { - throw new Error(process.env.NODE_ENV !== 'production' ? '[ThemeProvider] Please make your theme prop a plain object' : ''); - } - return _extends({}, this.outerTheme, theme); - }; - - ThemeProvider.prototype.publish = function publish(theme) { - this.broadcast.publish(this.getTheme(theme)); - }; - - ThemeProvider.prototype.render = function render() { - if (!this.props.children) { - return null; - } - return __WEBPACK_IMPORTED_MODULE_3_react___default.a.Children.only(this.props.children); - }; - - return ThemeProvider; -}(__WEBPACK_IMPORTED_MODULE_3_react__["Component"]); - -ThemeProvider.childContextTypes = (_ThemeProvider$childC = {}, _ThemeProvider$childC[CHANNEL] = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, _ThemeProvider$childC[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _ThemeProvider$childC); -ThemeProvider.contextTypes = (_ThemeProvider$contex = {}, _ThemeProvider$contex[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _ThemeProvider$contex); - -// - -// HACK for generating all static styles without needing to allocate -// an empty execution context every single time... -var STATIC_EXECUTION_CONTEXT = {}; - -var _StyledComponent = (function (ComponentStyle, constructWithOptions) { - var identifiers = {}; - - /* We depend on components having unique IDs */ - var generateId = function generateId(_displayName, parentComponentId) { - var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName); - - var componentId = void 0; - - /** - * only fall back to hashing the component injection order if - * a proper displayName isn't provided by the babel plugin - */ - if (!_displayName) { - var nr = (identifiers[displayName] || 0) + 1; - identifiers[displayName] = nr; - - componentId = displayName + '-' + ComponentStyle.generateName(displayName + nr); - } else { - componentId = displayName + '-' + ComponentStyle.generateName(displayName); - } - - return parentComponentId !== undefined ? parentComponentId + '-' + componentId : componentId; - }; - - var BaseStyledComponent = function (_Component) { - inherits(BaseStyledComponent, _Component); - - function BaseStyledComponent() { - var _temp, _this, _ret; - - classCallCheck(this, BaseStyledComponent); - - 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.attrs = {}, _this.state = { - theme: null, - generatedClassName: '' - }, _this.unsubscribeId = -1, _temp), possibleConstructorReturn(_this, _ret); - } - - BaseStyledComponent.prototype.unsubscribeFromContext = function unsubscribeFromContext() { - if (this.unsubscribeId !== -1) { - this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId); - } - }; - - BaseStyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props) { - var attrs = this.constructor.attrs; - - var context = _extends({}, props, { theme: theme }); - if (attrs === undefined) { - return context; - } - - this.attrs = Object.keys(attrs).reduce(function (acc, key) { - var attr = attrs[key]; - // eslint-disable-next-line no-param-reassign - acc[key] = typeof attr === 'function' ? attr(context) : attr; - return acc; - }, {}); - - return _extends({}, context, this.attrs); - }; - - BaseStyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) { - var _constructor = this.constructor, - attrs = _constructor.attrs, - componentStyle = _constructor.componentStyle, - warnTooManyClasses = _constructor.warnTooManyClasses; - - var styleSheet = this.context[CONTEXT_KEY] || StyleSheet.instance; - - // staticaly styled-components don't need to build an execution context object, - // and shouldn't be increasing the number of class names - if (componentStyle.isStatic && attrs === undefined) { - return componentStyle.generateAndInjectStyles(STATIC_EXECUTION_CONTEXT, styleSheet); - } else { - var executionContext = this.buildExecutionContext(theme, props); - var className = componentStyle.generateAndInjectStyles(executionContext, styleSheet); - - if (process.env.NODE_ENV !== 'production' && warnTooManyClasses !== undefined) { - warnTooManyClasses(className); - } - - return className; - } - }; - - BaseStyledComponent.prototype.componentWillMount = function componentWillMount() { - var _this2 = this; - - var componentStyle = this.constructor.componentStyle; - - var styledContext = this.context[CHANNEL_NEXT]; - - // If this is a staticaly-styled component, we don't need to the theme - // to generate or build styles. - if (componentStyle.isStatic) { - var generatedClassName = this.generateAndInjectStyles(STATIC_EXECUTION_CONTEXT, this.props); - this.setState({ generatedClassName: generatedClassName }); - // If there is a theme in the context, subscribe to the event emitter. This - // is necessary due to pure components blocking context updates, this circumvents - // that by updating when an event is emitted - } else if (styledContext !== undefined) { - var subscribe = styledContext.subscribe; - - this.unsubscribeId = subscribe(function (nextTheme) { - // This will be called once immediately - var theme = determineTheme(_this2.props, nextTheme, _this2.constructor.defaultProps); - var generatedClassName = _this2.generateAndInjectStyles(theme, _this2.props); - - _this2.setState({ theme: theme, generatedClassName: generatedClassName }); - }); - } else { - // eslint-disable-next-line react/prop-types - var theme = this.props.theme || {}; - var _generatedClassName = this.generateAndInjectStyles(theme, this.props); - this.setState({ theme: theme, generatedClassName: _generatedClassName }); - } - }; - - BaseStyledComponent.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var _this3 = this; - - // If this is a staticaly-styled component, we don't need to listen to - // props changes to update styles - var componentStyle = this.constructor.componentStyle; - - if (componentStyle.isStatic) { - return; - } - - this.setState(function (oldState) { - var theme = determineTheme(nextProps, oldState.theme, _this3.constructor.defaultProps); - var generatedClassName = _this3.generateAndInjectStyles(theme, nextProps); - - return { theme: theme, generatedClassName: generatedClassName }; - }); - }; - - BaseStyledComponent.prototype.componentWillUnmount = function componentWillUnmount() { - this.unsubscribeFromContext(); - }; - - BaseStyledComponent.prototype.render = function render() { - var _this4 = this; - - // eslint-disable-next-line react/prop-types - var innerRef = this.props.innerRef; - var generatedClassName = this.state.generatedClassName; - var _constructor2 = this.constructor, - styledComponentId = _constructor2.styledComponentId, - target = _constructor2.target; - - - var isTargetTag = isTag(target); - - var className = [ - // eslint-disable-next-line react/prop-types - this.props.className, styledComponentId, this.attrs.className, generatedClassName].filter(Boolean).join(' '); - - var baseProps = _extends({}, this.attrs, { - className: className - }); - - if (isStyledComponent(target)) { - baseProps.innerRef = innerRef; - } else { - baseProps.ref = innerRef; - } - - var propsForElement = Object.keys(this.props).reduce(function (acc, propName) { - // Don't pass through non HTML tags through to HTML elements - // always omit innerRef - if (propName !== 'innerRef' && propName !== 'className' && (!isTargetTag || validAttr(propName))) { - // eslint-disable-next-line no-param-reassign - acc[propName] = _this4.props[propName]; - } - - return acc; - }, baseProps); - - return Object(__WEBPACK_IMPORTED_MODULE_3_react__["createElement"])(target, propsForElement); - }; - - return BaseStyledComponent; - }(__WEBPACK_IMPORTED_MODULE_3_react__["Component"]); - - var createStyledComponent = function createStyledComponent(target, options, rules) { - var _StyledComponent$cont; - - var _options$displayName = options.displayName, - displayName = _options$displayName === undefined ? isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')' : _options$displayName, - _options$componentId = options.componentId, - componentId = _options$componentId === undefined ? generateId(options.displayName, options.parentComponentId) : _options$componentId, - _options$ParentCompon = options.ParentComponent, - ParentComponent = _options$ParentCompon === undefined ? BaseStyledComponent : _options$ParentCompon, - extendingRules = options.rules, - attrs = options.attrs; - - - var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : componentId; - - var componentStyle = new ComponentStyle(extendingRules === undefined ? rules : extendingRules.concat(rules), attrs, styledComponentId); - - var StyledComponent = function (_ParentComponent) { - inherits(StyledComponent, _ParentComponent); - - function StyledComponent() { - classCallCheck(this, StyledComponent); - return possibleConstructorReturn(this, _ParentComponent.apply(this, arguments)); - } - - StyledComponent.withComponent = function withComponent(tag) { - var previousComponentId = options.componentId, - optionsToCopy = objectWithoutProperties(options, ['componentId']); - - - var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag))); - - var newOptions = _extends({}, optionsToCopy, { - componentId: newComponentId, - ParentComponent: StyledComponent - }); - - return createStyledComponent(tag, newOptions, rules); - }; - - createClass(StyledComponent, null, [{ - key: 'extend', - get: function get$$1() { - var rulesFromOptions = options.rules, - parentComponentId = options.componentId, - optionsToCopy = objectWithoutProperties(options, ['rules', 'componentId']); - - - var newRules = rulesFromOptions === undefined ? rules : rulesFromOptions.concat(rules); - - var newOptions = _extends({}, optionsToCopy, { - rules: newRules, - parentComponentId: parentComponentId, - ParentComponent: StyledComponent - }); - - return constructWithOptions(createStyledComponent, target, newOptions); - } - }]); - return StyledComponent; - }(ParentComponent); - - StyledComponent.contextTypes = (_StyledComponent$cont = {}, _StyledComponent$cont[CHANNEL] = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, _StyledComponent$cont[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _StyledComponent$cont[CONTEXT_KEY] = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.instanceOf(StyleSheet), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.instanceOf(ServerStyleSheet)]), _StyledComponent$cont); - StyledComponent.displayName = displayName; - StyledComponent.styledComponentId = styledComponentId; - StyledComponent.attrs = attrs; - StyledComponent.componentStyle = componentStyle; - StyledComponent.target = target; - - - if (process.env.NODE_ENV !== 'production') { - StyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName); - } - - return StyledComponent; - }; - - return createStyledComponent; -}); - -// murmurhash2 via https://gist.github.com/raycmorgan/588423 - -function doHash(str, seed) { - var m = 0x5bd1e995; - var r = 24; - var h = seed ^ str.length; - var length = str.length; - var currentIndex = 0; - - while (length >= 4) { - var k = UInt32(str, currentIndex); - - k = Umul32(k, m); - k ^= k >>> r; - k = Umul32(k, m); - - h = Umul32(h, m); - h ^= k; - - currentIndex += 4; - length -= 4; - } - - switch (length) { - case 3: - h ^= UInt16(str, currentIndex); - h ^= str.charCodeAt(currentIndex + 2) << 16; - h = Umul32(h, m); - break; - - case 2: - h ^= UInt16(str, currentIndex); - h = Umul32(h, m); - break; - - case 1: - h ^= str.charCodeAt(currentIndex); - h = Umul32(h, m); - break; - } - - h ^= h >>> 13; - h = Umul32(h, m); - h ^= h >>> 15; - - return h >>> 0; -} - -function UInt32(str, pos) { - return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8) + (str.charCodeAt(pos++) << 16) + (str.charCodeAt(pos) << 24); -} - -function UInt16(str, pos) { - return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8); -} - -function Umul32(n, m) { - n = n | 0; - m = m | 0; - var nlo = n & 0xffff; - var nhi = n >>> 16; - var res = nlo * m + ((nhi * m & 0xffff) << 16) | 0; - return res; -} - -// -var isStaticRules = function isStaticRules(rules, attrs) { - for (var i = 0; i < rules.length; i += 1) { - var rule = rules[i]; - - // recursive case - if (Array.isArray(rule) && !isStaticRules(rule)) { - return false; - } else if (typeof rule === 'function' && !isStyledComponent(rule)) { - // functions are allowed to be static if they're just being - // used to get the classname of a nested styled copmonent - return false; - } - } - - if (attrs !== undefined) { - // eslint-disable-next-line guard-for-in, no-restricted-syntax - for (var key in attrs) { - var value = attrs[key]; - if (typeof value === 'function') { - return false; - } - } - } - - return true; -}; - -var isHRMEnabled = typeof module !== 'undefined' && module.hot && process.env.NODE_ENV !== 'production'; - -/* - ComponentStyle is all the CSS-specific stuff, not - the React-specific stuff. - */ -var _ComponentStyle = (function (nameGenerator, flatten, stringifyRules) { - var ComponentStyle = function () { - function ComponentStyle(rules, attrs, componentId) { - classCallCheck(this, ComponentStyle); - - this.rules = rules; - this.isStatic = !isHRMEnabled && isStaticRules(rules, attrs); - this.componentId = componentId; - if (!StyleSheet.instance.hasInjectedComponent(this.componentId)) { - var placeholder = process.env.NODE_ENV !== 'production' ? '.' + componentId + ' {}' : ''; - StyleSheet.instance.deferredInject(componentId, true, [placeholder]); - } - } - - /* - * Flattens a rule set into valid CSS - * Hashes it, wraps the whole chunk in a .hash1234 {} - * Returns the hash to be injected on render() - * */ - - - ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) { - var isStatic = this.isStatic, - lastClassName = this.lastClassName; - - if (isStatic && lastClassName !== undefined) { - return lastClassName; - } - - var flatCSS = flatten(this.rules, executionContext); - var hash = doHash(this.componentId + flatCSS.join('')); - - var stylesCacheable = styleSheet.stylesCacheable; - - var existingName = styleSheet.getName(hash); - - if (existingName !== undefined) { - if (stylesCacheable) { - this.lastClassName = existingName; - } - return existingName; - } - - var name = nameGenerator(hash); - if (stylesCacheable) { - this.lastClassName = existingName; - } - if (styleSheet.alreadyInjected(hash, name)) { - return name; - } - - var css = stringifyRules(flatCSS, '.' + name); - // NOTE: this can only be set when we inject the class-name. - // For some reason, presumably due to how css is stringifyRules behaves in - // differently between client and server, styles break. - styleSheet.inject(this.componentId, true, css, hash, name); - return name; - }; - - ComponentStyle.generateName = function generateName(str) { - return nameGenerator(doHash(str)); - }; - - return ComponentStyle; - }(); - - return ComponentStyle; -}); - -// -// Thanks to ReactDOMFactories for this handy list! - -var domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', - -// SVG -'circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan']; - -// -var _styled = (function (styledComponent, constructWithOptions) { - var styled = function styled(tag) { - return constructWithOptions(styledComponent, tag); - }; - - // Shorthands for all valid HTML Elements - domElements.forEach(function (domElement) { - styled[domElement] = styled(domElement); - }); - - return styled; -}); - -// -var replaceWhitespace = function replaceWhitespace(str) { - return str.replace(/\s|\\n/g, ''); -}; - -var _keyframes = (function (nameGenerator, stringifyRules, css) { - return function (strings) { - for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - interpolations[_key - 1] = arguments[_key]; - } - - var rules = css.apply(undefined, [strings].concat(interpolations)); - var hash = doHash(replaceWhitespace(JSON.stringify(rules))); - - var existingName = StyleSheet.instance.getName(hash); - if (existingName) return existingName; - - var name = nameGenerator(hash); - if (StyleSheet.instance.alreadyInjected(hash, name)) return name; - - var generatedCSS = stringifyRules(rules, name, '@keyframes'); - StyleSheet.instance.inject('sc-keyframes-' + name, true, generatedCSS, hash, name); - return name; - }; -}); - -// -var _injectGlobal = (function (stringifyRules, css) { - var injectGlobal = function injectGlobal(strings) { - for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - interpolations[_key - 1] = arguments[_key]; - } - - var rules = css.apply(undefined, [strings].concat(interpolations)); - var hash = doHash(JSON.stringify(rules)); - - var componentId = 'sc-global-' + hash; - if (StyleSheet.instance.hasInjectedComponent(componentId)) return; - - StyleSheet.instance.inject(componentId, false, stringifyRules(rules)); - }; - - return injectGlobal; -}); - -// - -var _constructWithOptions = (function (css) { - var constructWithOptions = function constructWithOptions(componentConstructor, tag) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - if (typeof tag !== 'string' && typeof tag !== 'function') { - throw new Error(process.env.NODE_ENV !== 'production' ? 'Cannot create styled-component for component: ' + String(tag) : ''); - } - - /* This is callable directly as a template function */ - var templateFunction = function templateFunction(strings) { - for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - interpolations[_key - 1] = arguments[_key]; - } - - return componentConstructor(tag, options, css.apply(undefined, [strings].concat(interpolations))); - }; - - /* If config methods are called, wrap up a new template function and merge options */ - templateFunction.withConfig = function (config) { - return constructWithOptions(componentConstructor, tag, _extends({}, options, config)); - }; - templateFunction.attrs = function (attrs) { - return constructWithOptions(componentConstructor, tag, _extends({}, options, { - attrs: _extends({}, options.attrs || {}, attrs) - })); - }; - - return templateFunction; - }; - - return constructWithOptions; -}); - -// -/* globals ReactClass */ - -var wrapWithTheme = function wrapWithTheme(Component$$1) { - var _WithTheme$contextTyp; - - var componentName = Component$$1.displayName || Component$$1.name || 'Component'; - var isStatelessFunctionalComponent = typeof Component$$1 === 'function' && !(Component$$1.prototype && 'isReactComponent' in Component$$1.prototype); - - // NOTE: We can't pass a ref to a stateless functional component - var shouldSetInnerRef = isStyledComponent(Component$$1) || isStatelessFunctionalComponent; - - var WithTheme = function (_React$Component) { - inherits(WithTheme, _React$Component); - - function WithTheme() { - var _temp, _this, _ret; - - classCallCheck(this, WithTheme); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _this.unsubscribeId = -1, _temp), possibleConstructorReturn(_this, _ret); - } - - // NOTE: This is so that isStyledComponent passes for the innerRef unwrapping - - - WithTheme.prototype.componentWillMount = function componentWillMount() { - var _this2 = this; - - var defaultProps = this.constructor.defaultProps; - - var styledContext = this.context[CHANNEL_NEXT]; - var themeProp = determineTheme(this.props, undefined, defaultProps); - if (styledContext === undefined && themeProp === undefined && process.env.NODE_ENV !== 'production') { - // eslint-disable-next-line no-console - console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps'); - } else if (styledContext === undefined && themeProp !== undefined) { - this.setState({ theme: themeProp }); - } else { - var subscribe = styledContext.subscribe; - - this.unsubscribeId = subscribe(function (nextTheme) { - var theme = determineTheme(_this2.props, nextTheme, defaultProps); - _this2.setState({ theme: theme }); - }); - } - }; - - WithTheme.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var defaultProps = this.constructor.defaultProps; - - this.setState(function (oldState) { - var theme = determineTheme(nextProps, oldState.theme, defaultProps); - - return { theme: theme }; - }); - }; - - WithTheme.prototype.componentWillUnmount = function componentWillUnmount() { - if (this.unsubscribeId !== -1) { - this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId); - } - }; - - WithTheme.prototype.render = function render() { - var props = _extends({ - theme: this.state.theme - }, this.props); - - if (!shouldSetInnerRef) { - props.ref = props.innerRef; - delete props.innerRef; - } - - return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Component$$1, props); - }; - - return WithTheme; - }(__WEBPACK_IMPORTED_MODULE_3_react___default.a.Component); - - WithTheme.displayName = 'WithTheme(' + componentName + ')'; - WithTheme.styledComponentId = 'withTheme'; - WithTheme.contextTypes = (_WithTheme$contextTyp = {}, _WithTheme$contextTyp[CHANNEL] = __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func, _WithTheme$contextTyp[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _WithTheme$contextTyp); - - - return __WEBPACK_IMPORTED_MODULE_5_hoist_non_react_statics___default()(WithTheme, Component$$1); -}; - -// - -/* Import singletons */ -/* Import singleton constructors */ -/* Import components */ -/* Import Higher Order Components */ -/* Warning if you've imported this file on React Native */ -if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') { - console.warn("It looks like you've imported 'styled-components' on React Native.\n" + "Perhaps you're looking to import 'styled-components/native'?\n" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native'); -} - -/* Instantiate singletons */ -var ComponentStyle = _ComponentStyle(generateAlphabeticName, flatten, stringifyRules); -var constructWithOptions = _constructWithOptions(css); -var StyledComponent = _StyledComponent(ComponentStyle, constructWithOptions); - -/* Instantiate exported singletons */ -var keyframes = _keyframes(generateAlphabeticName, stringifyRules, css); -var injectGlobal = _injectGlobal(stringifyRules, css); -var styled = _styled(StyledComponent, constructWithOptions); - -/* Export everything */ - - -/* harmony default export */ __webpack_exports__["default"] = (styled); -//# sourceMappingURL=styled-components.browser.es.js.map - -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(1), __webpack_require__(82)(module))) - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=69)}([function(e,t,n){"use strict";e.exports=n(35)},function(e,t,n){e.exports=n(39)()},function(e,t,n){"use strict";(function(e){var r=n(10),o=n.n(r),i=n(24),a=n.n(i),l=n(0),u=n.n(l),s=n(25),c=n(11),d=n(12),f=(n(1),n(27)),p=n(28),h=function(e,t){for(var n=[e[0]],r=0,o=t.length;r=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},x=function(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},k=function(e){return"object"===(void 0===e?"undefined":b(e))&&e.constructor===Object},E=Object.freeze([]),C=Object.freeze({});function S(e){return"function"==typeof e}function T(e){return e.displayName||e.name||"Component"}function O(e){return e&&"string"==typeof e.styledComponentId}var N=void 0!==e&&(e.env.REACT_APP_SC_ATTR||e.env.SC_ATTR)||"data-styled",j="undefined"!=typeof window&&"HTMLElement"in window,_="boolean"==typeof SC_DISABLE_SPEEDY&&SC_DISABLE_SPEEDY||void 0!==e&&(e.env.REACT_APP_SC_DISABLE_SPEEDY||e.env.SC_DISABLE_SPEEDY)||!1;var P=function(e){function t(n){m(this,t);for(var r=arguments.length,o=Array(r>1?r-1:0),i=1;i0?" Additional arguments: "+o.join(", "):"")));return x(a)}return y(t,e),t}(Error),M=/^[^\S\n]*?\/\* sc-component-id:\s*(\S+)\s+\*\//gm,I=function(e){var t=""+(e||""),n=[];return t.replace(M,(function(e,t,r){return n.push({componentId:t,matchIndex:r}),e})),n.map((function(e,r){var o=e.componentId,i=e.matchIndex,a=n[r+1];return{componentId:o,cssFromDOM:a?t.slice(i,a.matchIndex):t.slice(i)}}))},L=/^\s*\/\/.*$/gm,D=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!1,compress:!1,semicolon:!0}),A=new o.a({global:!1,cascade:!0,keyframe:!1,prefix:!0,compress:!1,semicolon:!1}),z=[],R=function(e){if(-2===e){var t=z;return z=[],t}},U=a()((function(e){z.push(e)})),H=void 0,F=void 0,W=void 0,Z=function(e,t,n){return t>0&&-1!==n.slice(0,t).indexOf(F)&&n.slice(t-F.length,t)!==F?"."+H:e};A.use([function(e,t,n){2===e&&n.length&&n[0].lastIndexOf(F)>0&&(n[0]=n[0].replace(W,Z))},U,R]),D.use([U,R]);var V=function(e){return D("",e)};function B(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"&",o=e.join("").replace(L,""),i=t&&n?n+" "+t+" { "+o+" }":o;return H=r,F=t,W=new RegExp("\\"+F+"\\b","g"),A(n||!t?"":t,i)}var X=function(){return n.nc},$=function(e,t,n){n&&((e[t]||(e[t]=Object.create(null)))[n]=!0)},Q=function(e,t){e[t]=Object.create(null)},G=function(e){return function(t,n){return void 0!==e[t]&&e[t][n]}},Y=function(e){var t="";for(var n in e)t+=Object.keys(e[n]).join(" ")+" ";return t.trim()},q=function(e){if(e.sheet)return e.sheet;for(var t=e.ownerDocument.styleSheets.length,n=0;n"+e()+""}},ne=function(e,t){return function(){var n,r=((n={})[N]=Y(t),n["data-styled-version"]="4.4.0",n),o=X();return o&&(r.nonce=o),u.a.createElement("style",v({},r,{dangerouslySetInnerHTML:{__html:e()}}))}},re=function(e){return function(){return Object.keys(e)}},oe=function(e,t){return e.createTextNode(J(t))},ie=function e(t,n){var r=void 0===t?Object.create(null):t,o=void 0===n?Object.create(null):n,i=function(e){var t=o[e];return void 0!==t?t:o[e]=[""]},a=function(){var e="";for(var t in o){var n=o[t][0];n&&(e+=J(t)+n)}return e};return{clone:function(){var t=function(e){var t=Object.create(null);for(var n in e)t[n]=v({},e[n]);return t}(r),n=Object.create(null);for(var i in o)n[i]=[o[i][0]];return e(t,n)},css:a,getIds:re(o),hasNameForId:G(r),insertMarker:i,insertRules:function(e,t,n){i(e)[0]+=t.join(" "),$(r,e,n)},removeRules:function(e){var t=o[e];void 0!==t&&(t[0]="",Q(r,e))},sealed:!1,styleTag:null,toElement:ne(a,r),toHTML:te(a,r)}},ae=function(e,t,n,r,o){if(j&&!n){var i=function(e,t,n){var r=document;e?r=e.ownerDocument:t&&(r=t.ownerDocument);var o=r.createElement("style");o.setAttribute(N,""),o.setAttribute("data-styled-version","4.4.0");var i=X();if(i&&o.setAttribute("nonce",i),o.appendChild(r.createTextNode("")),e&&!t)e.appendChild(o);else{if(!t||!e||!t.parentNode)throw new P(6);t.parentNode.insertBefore(o,n?t:t.nextSibling)}return o}(e,t,r);return _?function(e,t){var n=Object.create(null),r=Object.create(null),o=void 0!==t,i=!1,a=function(t){var o=r[t];return void 0!==o?o:(r[t]=oe(e.ownerDocument,t),e.appendChild(r[t]),n[t]=Object.create(null),r[t])},l=function(){var e="";for(var t in r)e+=r[t].data;return e};return{clone:function(){throw new P(5)},css:l,getIds:re(r),hasNameForId:G(n),insertMarker:a,insertRules:function(e,r,l){for(var u=a(e),s=[],c=r.length,d=0;d0&&(i=!0,t().insertRules(e+"-import",s))},removeRules:function(a){var l=r[a];if(void 0!==l){var u=oe(e.ownerDocument,a);e.replaceChild(u,l),r[a]=u,Q(n,a),o&&i&&t().removeRules(a+"-import")}},sealed:!1,styleTag:e,toElement:ne(l,n),toHTML:te(l,n)}}(i,o):function(e,t){var n=Object.create(null),r=Object.create(null),o=[],i=void 0!==t,a=!1,l=function(e){var t=r[e];return void 0!==t?t:(r[e]=o.length,o.push(0),Q(n,e),r[e])},u=function(){var t=q(e).cssRules,n="";for(var i in r){n+=J(i);for(var a=r[i],l=ee(o,a),u=l-o[a];u0&&(a=!0,t().insertRules(r+"-import",h)),o[c]+=p,$(n,r,s)},removeRules:function(l){var u=r[l];if(void 0!==u&&!1!==e.isConnected){var s=o[u];!function(e,t,n){for(var r=t-n,o=t;o>r;o-=1)e.deleteRule(o)}(q(e),ee(o,u)-1,s),o[u]=0,Q(n,l),i&&a&&t().removeRules(l+"-import")}},sealed:!1,styleTag:e,toElement:ne(u,n),toHTML:te(u,n)}}(i,o)}return ie()},le=/\s+/,ue=void 0;ue=j?_?40:1e3:-1;var se=0,ce=void 0,de=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:j?document.head:null,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];m(this,e),this.getImportRuleTag=function(){var e=t.importRuleTag;if(void 0!==e)return e;var n=t.tags[0];return t.importRuleTag=ae(t.target,n?n.styleTag:null,t.forceServer,!0)},se+=1,this.id=se,this.forceServer=r,this.target=r?null:n,this.tagMap={},this.deferred={},this.rehydratedNames={},this.ignoreRehydratedNames={},this.tags=[],this.capacity=1,this.clones=[]}return e.prototype.rehydrate=function(){if(!j||this.forceServer)return this;var e=[],t=[],n=!1,r=document.querySelectorAll("style["+N+'][data-styled-version="4.4.0"]'),o=r.length;if(!o)return this;for(var i=0;i0&&void 0!==arguments[0]&&arguments[0];ce=new e(void 0,t).rehydrate()},e.prototype.clone=function(){var t=new e(this.target,this.forceServer);return this.clones.push(t),t.tags=this.tags.map((function(e){for(var n=e.getIds(),r=e.clone(),o=0;o1?t-1:0),r=1;r=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return((r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16))^r>>>15)>>>0}var xe=52,ke=function(e){return String.fromCharCode(e+(e>25?39:97))};function Ee(e){var t="",n=void 0;for(n=e;n>xe;n=Math.floor(n/xe))t=ke(n%xe)+t;return ke(n%xe)+t}function Ce(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:C,r=!!n&&e.theme===n.theme,o=e.theme&&!r?e.theme:t||n.theme;return o},je=/[[\].#*$><+~=|^:(),"'`-]+/g,_e=/(^-|-$)/g;function Pe(e){return e.replace(je,"-").replace(_e,"")}function Me(e){return"string"==typeof e&&!0}var Ie={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},Le={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},De=((Se={})[c.ForwardRef]={$$typeof:!0,render:!0},Se),Ae=Object.defineProperty,ze=Object.getOwnPropertyNames,Re=Object.getOwnPropertySymbols,Ue=void 0===Re?function(){return[]}:Re,He=Object.getOwnPropertyDescriptor,Fe=Object.getPrototypeOf,We=Object.prototype,Ze=Array.prototype;function Ve(e,t,n){if("string"!=typeof t){var r=Fe(t);r&&r!==We&&Ve(e,r,n);for(var o=Ze.concat(ze(t),Ue(t)),i=De[e.$$typeof]||Ie,a=De[t.$$typeof]||Ie,l=o.length,u=void 0,s=void 0;l--;)if(s=o[l],!(Le[s]||n&&n[s]||a&&a[s]||i&&i[s])&&(u=He(t,s)))try{Ae(e,s,u)}catch(e){}return e}return e}var Be=Object(l.createContext)(),Xe=Be.Consumer,$e=(function(e){function t(n){m(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(d.a)(r.getContext.bind(r)),r.renderInner=r.renderInner.bind(r),r}y(t,e),t.prototype.render=function(){return this.props.children?u.a.createElement(Be.Consumer,null,this.renderInner):null},t.prototype.renderInner=function(e){var t=this.getContext(this.props.theme,e);return u.a.createElement(Be.Provider,{value:t},this.props.children)},t.prototype.getTheme=function(e,t){if(S(e))return e(t);if(null===e||Array.isArray(e)||"object"!==(void 0===e?"undefined":b(e)))throw new P(8);return v({},t,e)},t.prototype.getContext=function(e,t){return this.getTheme(e,t)}}(l.Component),function(){function e(){m(this,e),this.masterSheet=de.master,this.instance=this.masterSheet.clone(),this.sealed=!1}e.prototype.seal=function(){if(!this.sealed){var e=this.masterSheet.clones.indexOf(this.instance);this.masterSheet.clones.splice(e,1),this.sealed=!0}},e.prototype.collectStyles=function(e){if(this.sealed)throw new P(2);return u.a.createElement(Ge,{sheet:this.instance},e)},e.prototype.getStyleTags=function(){return this.seal(),this.instance.toHTML()},e.prototype.getStyleElement=function(){return this.seal(),this.instance.toReactElements()},e.prototype.interleaveWithNodeStream=function(e){throw new P(3)}}(),Object(l.createContext)()),Qe=$e.Consumer,Ge=function(e){function t(n){m(this,t);var r=x(this,e.call(this,n));return r.getContext=Object(d.a)(r.getContext),r}return y(t,e),t.prototype.getContext=function(e,t){if(e)return e;if(t)return new de(t);throw new P(4)},t.prototype.render=function(){var e=this.props,t=e.children,n=e.sheet,r=e.target;return u.a.createElement($e.Provider,{value:this.getContext(n,r)},t)},t}(l.Component),Ye={};var qe=function(e){function t(){m(this,t);var n=x(this,e.call(this));return n.attrs={},n.renderOuter=n.renderOuter.bind(n),n.renderInner=n.renderInner.bind(n),n}return y(t,e),t.prototype.render=function(){return u.a.createElement(Qe,null,this.renderOuter)},t.prototype.renderOuter=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:de.master;return this.styleSheet=e,this.props.forwardedComponent.componentStyle.isStatic?this.renderInner():u.a.createElement(Xe,null,this.renderInner)},t.prototype.renderInner=function(e){var t=this.props.forwardedComponent,n=t.componentStyle,r=t.defaultProps,o=(t.displayName,t.foldedComponentIds),i=t.styledComponentId,a=t.target,u=(t.usesTheme,void 0),s=void 0;n.isStatic?u=this.generateAndInjectStyles(C,this.props):(s=Ne(this.props,e,r),u=this.generateAndInjectStyles(s||C,this.props));var c=this.props.as||this.attrs.as||a,d=Me(c),p={},h=v({},this.props,this.attrs),b=void 0;for(b in h)"forwardedComponent"!==b&&"as"!==b&&("forwardedRef"===b?p.ref=h[b]:"forwardedAs"===b?p.as=h[b]:d&&!Object(f.a)(b)||(p[b]=h[b]));return this.props.style&&this.attrs.style&&(p.style=v({},this.attrs.style,this.props.style)),p.className=Array.prototype.concat(o,i,u!==i?u:null,this.props.className,this.attrs.className).filter(Boolean).join(" "),Object(l.createElement)(c,p)},t.prototype.buildExecutionContext=function(e,t,n){var r=this,o=v({},t,{theme:e});return n.length?(this.attrs={},n.forEach((function(e){var t,n=e,i=!1,a=void 0,l=void 0;for(l in S(n)&&(n=n(o),i=!0),n)a=n[l],i||!S(a)||(t=a)&&t.prototype&&t.prototype.isReactComponent||O(a)||(a=a(o)),r.attrs[l]=a,o[l]=a})),o):o},t.prototype.generateAndInjectStyles=function(e,t){var n=t.forwardedComponent,r=n.attrs,o=n.componentStyle;n.warnTooManyClasses;return o.isStatic&&!r.length?o.generateAndInjectStyles(C,this.styleSheet):o.generateAndInjectStyles(this.buildExecutionContext(e,t,r),this.styleSheet)},t}(l.Component);function Ke(e,t,n){var r=O(e),o=!Me(e),i=t.displayName,a=void 0===i?function(e){return Me(e)?"styled."+e:"Styled("+T(e)+")"}(e):i,l=t.componentId,s=void 0===l?function(e,t,n){var r="string"!=typeof t?"sc":Pe(t),o=(Ye[r]||0)+1;Ye[r]=o;var i=r+"-"+e.generateName(r+o);return n?n+"-"+i:i}(Oe,t.displayName,t.parentComponentId):l,c=t.ParentComponent,d=void 0===c?qe:c,f=t.attrs,h=void 0===f?E:f,b=t.displayName&&t.componentId?Pe(t.displayName)+"-"+t.componentId:t.componentId||s,m=r&&e.attrs?Array.prototype.concat(e.attrs,h).filter(Boolean):h,g=new Oe(r?e.componentStyle.rules.concat(n):n,m,b),y=void 0,x=function(e,t){return u.a.createElement(d,v({},e,{forwardedComponent:y,forwardedRef:t}))};return x.displayName=a,(y=u.a.forwardRef(x)).displayName=a,y.attrs=m,y.componentStyle=g,y.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):E,y.styledComponentId=b,y.target=r?e.target:e,y.withComponent=function(e){var r=t.componentId,o=w(t,["componentId"]),i=r&&r+"-"+(Me(e)?e:Pe(T(e)));return Ke(e,v({},o,{attrs:m,componentId:i,ParentComponent:d}),n)},Object.defineProperty(y,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Object(p.a)(e.defaultProps,t):t}}),y.toString=function(){return"."+y.styledComponentId},o&&Ve(y,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,styledComponentId:!0,target:!0,withComponent:!0}),y}var Je=function(e){return function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:C;if(!Object(c.isValidElementType)(n))throw new P(1,String(n));var o=function(){return t(n,r,ye.apply(void 0,arguments))};return o.withConfig=function(o){return e(t,n,v({},r,o))},o.attrs=function(o){return e(t,n,v({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},o}(Ke,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){Je[e]=Je(e)}));!function(){function e(t,n){m(this,e),this.rules=t,this.componentId=n,this.isStatic=Ce(t,E),de.master.hasId(n)||de.master.deferredInject(n,[])}e.prototype.createStyles=function(e,t){var n=B(ve(this.rules,e,t),"");t.inject(this.componentId,n)},e.prototype.removeStyles=function(e){var t=this.componentId;e.hasId(t)&&e.remove(t)},e.prototype.renderStyles=function(e,t){this.removeStyles(t),this.createStyles(e,t)}}();j&&(window.scCGSHMRCache={});t.a=Je}).call(this,n(66))},function(e,t,n){var r; +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t=t.length-1?0:n+1].focus()},t.prototype.focusPrevious=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeIndex;0!==t.length&&t[n<=0?t.length-1:n-1].focus()},t.prototype.render=function(){var e,t=this,n=this.props,r=(n.componentType,n.componentClass),o=n.open,u=n.pullRight,d=n.onClose,f=n.onSelect,h=n.rootCloseEvent,m=n.className,g=n.style,v=void 0===g?{}:g,y=n.children,w=function(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}(n,["componentType","componentClass","open","pullRight","onClose","onSelect","rootCloseEvent","className","style","children"]),x=c.default.Children.toArray(y).filter((function(e){return c.default.isValidElement(e)&&t.isMenuItem(e)&&e.props.active}));return c.default.createElement(p.default,{disabled:!o,onRootClose:d,event:h},c.default.createElement(r,i({},w,{role:"menu",className:(0,l.default)(m,(e={},e[b.default.dropdownMenu]=!0,e[b.default.selected]=x.length>0,e[b.default.pullRight]=!!u,e)),style:v}),c.default.Children.map(y,(function(e){return c.default.isValidElement(e)&&t.isMenuItem(e)?(0,s.cloneElement)(e,{onKeyDown:(0,a.default)(e.props.onKeyDown,t.handleKeyDown),onSelect:(0,a.default)(e.props.onSelect,f)}):e}))))},t}(s.PureComponent),r.propTypes={componentType:u.default.any,componentClass:u.default.oneOfType([u.default.string,u.default.func]),open:u.default.bool,pullRight:u.default.bool,onClose:u.default.func,onSelect:u.default.func,rootCloseEvent:u.default.oneOf(["click","mousedown"])},r.defaultProps={componentClass:"div"},o);v.defaultProps.componentType=v,t.default=v},function(e,t,n){"use strict";t.__esModule=!0;t.default=function(e){return function(t){return t.type===e||!(!t.props||t.props.componentType!==e)}}},function(e,t){e.exports=n(9)},function(e,t){e.exports=n(43)},function(e,t,n){"use strict";t.__esModule=!0;var r,o,i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function C(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}var S=(o=r=function(e){function t(){var n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=Array(o),a=0;a` components. To apply a ref to the component use the callback signature:\n\n https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"):r=(0,a.default)(e.ref,r),(0,d.cloneElement)(e,i({},t,{ref:r,onClick:(0,a.default)(e.props.onClick,this.handleToggleClick),onKeyDown:(0,a.default)(e.props.onKeyDown,this.handleToggleKeyDown)}))},t.prototype.renderMenu=function(e,t){var n=this,r=(t.id,t.onClose),o=t.onSelect,l=t.rootCloseEvent,u=E(t,["id","onClose","onSelect","rootCloseEvent"]),s=function(e){n.menu=e};return"string"==typeof e.ref?(0,b.default)(!1,"String refs are not supported on `` components. To apply a ref to the component use the callback signature:\n\n https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"):s=(0,a.default)(e.ref,s),(0,d.cloneElement)(e,i({},u,{ref:s,onClose:(0,a.default)(e.props.onClose,r,this.closeDropdown),onSelect:(0,a.default)(e.props.onSelect,o,this.closeDropdown),rootCloseEvent:l}))},t.prototype.render=function(){var e,t=this,n=this.props,r=(n.componentType,n.componentClass),o=n.dropup,u=n.disabled,s=n.pullRight,c=n.open,d=(n.autoOpen,n.onClose),p=n.onSelect,h=n.className,b=n.rootCloseEvent,g=n.onMouseEnter,v=n.onMouseLeave,y=(n.onToggle,n.children),w=E(n,["componentType","componentClass","dropup","disabled","pullRight","open","autoOpen","onClose","onSelect","className","rootCloseEvent","onMouseEnter","onMouseLeave","onToggle","children"]);return r===m.ButtonGroup&&(w.dropdownOpen=c),f.default.createElement(r,i({},w,{onMouseEnter:(0,a.default)(g,this.handleMouseEnter),onMouseLeave:(0,a.default)(v,this.handleMouseLeave),className:(0,l.default)(h,x.default.dropdown,(e={},e[x.default.open]=c,e[x.default.disabled]=u,e[x.default.dropup]=o,e))}),f.default.Children.map(y,(function(e){return f.default.isValidElement(e)?t.isDropdownToggle(e)?t.renderToggle(e,{disabled:u,open:c}):t.isDropdownMenu(e)||t.isDropdownMenuWrapper(e)?t.renderMenu(e,{open:c,pullRight:s,onClose:d,onSelect:p,rootCloseEvent:b}):e:e})))},t}(d.PureComponent),r.propTypes={componentType:c.default.any,componentClass:c.default.oneOfType([c.default.string,c.default.func]),dropup:c.default.bool,disabled:c.default.bool,open:c.default.bool,autoOpen:c.default.bool,pullRight:c.default.bool,onClose:c.default.func,onToggle:c.default.func,onSelect:c.default.func,role:c.default.string,rootCloseEvent:c.default.oneOf(["click","mousedown"]),onMouseEnter:c.default.func,onMouseLeave:c.default.func},r.defaultProps={componentClass:m.ButtonGroup,dropup:!1,disabled:!1,pullRight:!1,open:!1},o);S.defaultProps.componentType=S;var T=(0,h.default)(S,{open:"onToggle"});T.Toggle=g.default,T.Menu=y.default,T.MenuWrapper=v.default,t.default=T},function(e,t){e.exports=n(44)},function(e,t){e.exports=n(45)},function(e,t,n){"use strict";t.__esModule=!0;var r,o,i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["componentType","componentClass","noCaret","open","className","children"]);n===c.Button&&(f.btnStyle=f.btnStyle||"flat",f.btnSize=f.btnSize||c.Button.defaultProps.btnSize,f.dropdownToggle=!0);var p=!r,h=!u&&!f.title;return s.default.createElement(n,i({},f,{"aria-haspopup":!0,"aria-expanded":o,role:"button",className:(0,a.default)(l,(e={},e[d.default.dropdownToggle]=!0,e[d.default.btnLink]="link"===f.btnStyle,e[d.default.btnLg]="lg"===f.btnSize||"large"===f.btnSize,e[d.default.btnMd]="md"===f.btnSize||"medium"===f.btnSize,e[d.default.btnSm]="sm"===f.btnSize||"small"===f.btnSize,e[d.default.btnXs]="xs"===f.btnSize||"extra-small"===f.btnSize,e[d.default.empty]=h,e))}),u||f.title,p&&s.default.createElement("span",{className:d.default.caret}))},t}(u.PureComponent),r.propTypes={componentType:l.default.any,componentClass:l.default.oneOfType([l.default.string,l.default.func]),btnSize:c.Button.propTypes.btnSize,btnStyle:c.Button.propTypes.btnStyle,noCaret:l.default.bool,title:l.default.string,disabled:l.default.bool,open:l.default.bool},r.defaultProps={componentClass:c.Button,noCaret:!1,disabled:!1,open:!1},o);p.defaultProps.componentType=p,t.default=p},function(e,t,n){"use strict";t.__esModule=!0;var r,o,i=Object.assign||function(e){for(var t=1;t` components. To apply a ref to the component use the callback signature:\n\n https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"):r=(0,a.default)(e.ref,r),(0,s.cloneElement)(e,i({},t,{ref:r}))},t.prototype.render=function(){var e,t=this,n=this.props,r=(n.componentType,n.componentClass),o=n.open,a=n.pullRight,u=n.onClose,s=n.onSelect,d=n.rootCloseEvent,f=n.children,h=n.className,m=function(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}(n,["componentType","componentClass","open","pullRight","onClose","onSelect","rootCloseEvent","children","className"]);return c.default.createElement(p.default,{disabled:!o,onRootClose:u,event:d},c.default.createElement(r,i({},m,{className:(0,l.default)(h,(e={},e[b.default.dropdownMenuWrapper]=!0,e[b.default.pullRight]=!!a,e))}),c.default.Children.map(f,(function(e){return c.default.isValidElement(e)&&t.isDropdownMenu(e)?t.renderMenu(e,{open:o,pullRight:a,onSelect:s}):e}))))},t}(s.PureComponent),r.propTypes={componentType:u.default.any,componentClass:u.default.oneOfType([u.default.string,u.default.func]),open:u.default.bool,pullRight:u.default.bool,onClose:u.default.func,onSelect:u.default.func,rootCloseEvent:u.default.oneOf(["click","mousedown"])},r.defaultProps={componentClass:"div"},o);v.defaultProps.componentType=v,t.default=v},function(e,t,n){"use strict";t.__esModule=!0;var r,o,i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(n,["componentType","componentClass","active","disabled","divider","eventKey","header","onClick","open","pullRight","onClose","onSelect","rootCloseEvent","className","style","children"]);if(s)return E.children=void 0,c.default.createElement(r,i({},E,{role:"separator",className:(0,l.default)(w,p.default.divider),style:x}),k);if(d)return c.default.createElement(r,i({},E,{role:"heading",className:(0,l.default)(w,p.default.header),style:x}),k);var C=c.default.Children.toArray(k).filter((function(e){return c.default.isValidElement(e)&&t.isMenuItem(e)})),S=c.default.Children.toArray(k).filter((function(e){return!(c.default.isValidElement(e)&&t.isMenuItem(e))}));return c.default.createElement(r,{role:"presentation",className:(0,l.default)(w,p.default.menuItemWrapper,(e={},e[p.default.active]=o,e[p.default.disabled]=u,e[p.default.dropdownSubmenu]=C.length>0,e[p.default.open]=b,e)),style:x},c.default.createElement("div",i({},E,{className:p.default.menuItem,disabled:u,role:"menuitem",tabIndex:"-1",onClick:(0,a.default)(h,this.handleClick)}),S),C.length>0&&c.default.createElement(f.default,{open:b,pullRight:m,onClose:g,onSelect:v,rootCloseEvent:y},C))},t}(s.Component),r.propTypes={componentType:u.default.any,componentClass:u.default.oneOfType([u.default.string,u.default.func]),active:u.default.bool,disabled:u.default.bool,divider:u.default.bool,eventKey:u.default.any,header:u.default.bool,onClick:u.default.func,open:u.default.bool,pullRight:u.default.bool,onClose:u.default.func,onSelect:u.default.func,rootCloseEvent:u.default.oneOf(["click","mousedown"])},r.defaultProps={componentClass:"div",active:!1,disabled:!1,divider:!1,header:!1,open:!1,pullRight:!1},o);m.defaultProps.componentType=m,t.default=m},function(e,t,n){"use strict";var r,o;t.__esModule=!0;var i=d(n(10)),a=d(n(19)),l=d(n(20)),u=d(n(0)),s=d(n(1)),c=d(n(7));function d(e){return e&&e.__esModule?e:{default:e}}var f=27,p=function(e){return e&&e.ownerDocument||document},h=function(e){return 0===e.button},b=function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)},m=(o=r=function(e){function t(n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(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}(this,e.call(this,n,r));return o.handleMouseCapture=function(e){o.preventMouseRootClose=b(e)||!h(e)||(0,i.default)(c.default.findDOMNode(o),e.target)},o.handleMouse=function(e){!o.preventMouseRootClose&&o.props.onRootClose&&o.props.onRootClose(e)},o.handleKeyUp=function(e){e.keyCode===f&&o.props.onRootClose&&o.props.onRootClose(e)},o.preventMouseRootClose=!1,o}return function(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,e),t.prototype.componentDidMount=function(){this.props.disabled||this.addEventListeners()},t.prototype.componentDidUpdate=function(e){!this.props.disabled&&e.disabled?this.addEventListeners():this.props.disabled&&!e.disabled&&this.removeEventListeners()},t.prototype.componentWillUnmount=function(){this.props.disabled||this.removeEventListeners()},t.prototype.addEventListeners=function(){var e=this.props.event,t=p(c.default.findDOMNode(this));(0,a.default)(t,e,this.handleMouseCapture,!0),(0,a.default)(t,e,this.handleMouse),(0,a.default)(t,"keyup",this.handleKeyUp)},t.prototype.removeEventListeners=function(){var e=this.props.event,t=p(c.default.findDOMNode(this));(0,l.default)(t,e,this.handleMouseCapture,!0),(0,l.default)(t,e,this.handleMouse),(0,l.default)(t,"keyup",this.handleKeyUp)},t.prototype.render=function(){return this.props.children},t}(s.default.Component),r.propTypes={onRootClose:u.default.func,children:u.default.element,disabled:u.default.bool,event:u.default.oneOf(["click","mousedown"])},r.defaultProps={event:"click"},o);t.default=m},function(e,t,n){"use strict";t.__esModule=!0,t.MenuItem=t.DropdownMenu=t.DropdownMenuWrapper=t.DropdownToggle=t.DropdownButton=void 0;var r=s(n(9)),o=s(n(21)),i=s(n(12)),a=s(n(13)),l=s(n(5)),u=s(n(14));function s(e){return e&&e.__esModule?e:{default:e}}t.DropdownButton=o.default,t.DropdownToggle=i.default,t.DropdownMenuWrapper=a.default,t.DropdownMenu=l.default,t.MenuItem=u.default,t.default=r.default},function(e,t){e.exports=n(46)},function(e,t){e.exports=n(48)},function(e,t){e.exports=n(50)},function(e,t){e.exports=n(51)},function(e,t,n){"use strict";t.__esModule=!0;var r,o,i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["btnSize","btnStyle","title","children"]),l={},u={};return Object.keys(a).forEach((function(e){var t=a[e];c.default.ControlledComponent.propTypes[e]?l[e]=t:u[e]=t})),s.default.createElement(c.default,i({},l,{btnSize:t}),s.default.createElement(c.default.Toggle,i({},u,{btnStyle:n}),r),s.default.createElement(c.default.Menu,null,o))},t}(u.PureComponent),r.propTypes=i({},c.default.propTypes,{btnSize:a.Button.propTypes.btnSize,btnStyle:a.Button.propTypes.btnStyle,title:l.default.node.isRequired,noCaret:l.default.bool}),r.defaultProps={btnStyle:"flat"},o);t.default=f}])},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,l=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),u="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),"/*# ".concat(u," */")),i=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot).concat(e," */")}));return[n].concat(i).concat([o]).join("\n")}var a,l,u;return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2],"{").concat(n,"}"):n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o])/g,v=/([[}=:>])\s+/g,y=/(\{[^{]+?);(?=\})/g,w=/\s{2,}/g,x=/([^\(])(:+) */g,k=/[svh]\w+-[tblr]{2}/,E=/\(\s*(.*)\s*\)/g,C=/([\s\S]*?);/g,S=/-self|flex-/g,T=/[^]*?(:[rp][el]a[\w-]+)[^]*/,O=/stretch|:\s*\w+\-(?:conte|avail)/,N=/([^-])(image-set\()/,j="-webkit-",_="-moz-",P="-ms-",M=59,I=125,L=123,D=40,A=41,z=91,R=93,U=10,H=13,F=9,W=64,Z=32,V=38,B=45,X=95,$=42,Q=44,G=58,Y=39,q=34,K=47,J=62,ee=43,te=126,ne=0,re=12,oe=11,ie=107,ae=109,le=115,ue=112,se=111,ce=105,de=99,fe=100,pe=112,he=1,be=1,me=0,ge=1,ve=1,ye=1,we=0,xe=0,ke=0,Ee=[],Ce=[],Se=0,Te=null,Oe=-2,Ne=-1,je=0,_e=1,Pe=2,Me=3,Ie=0,Le=1,De="",Ae="",ze="";function Re(e,t,o,i,a){for(var l,u,c=0,d=0,f=0,p=0,g=0,v=0,y=0,w=0,k=0,C=0,S=0,T=0,O=0,N=0,X=0,we=0,Ce=0,Te=0,Oe=0,Ne=o.length,He=Ne-1,Xe="",$e="",Qe="",Ge="",Ye="",qe="";X0&&($e=$e.replace(r,"")),$e.trim().length>0)){switch(y){case Z:case F:case M:case H:case U:break;default:$e+=o.charAt(X)}y=M}if(1===Ce)switch(y){case L:case I:case M:case q:case Y:case D:case A:case Q:Ce=0;case F:case H:case U:case Z:break;default:for(Ce=0,Oe=X,g=y,X--,y=M;Oe0&&(++X,y=g);case L:Oe=Ne}}switch(y){case L:for(g=($e=$e.trim()).charCodeAt(0),S=1,Oe=++X;X0&&($e=$e.replace(r,"")),v=$e.charCodeAt(1)){case fe:case ae:case le:case B:l=t;break;default:l=Ee}if(Oe=(Qe=Re(t,l,Qe,v,a+1)).length,ke>0&&0===Oe&&(Oe=$e.length),Se>0&&(l=Ue(Ee,$e,Te),u=Ve(Me,Qe,l,t,be,he,Oe,v,a,i),$e=l.join(""),void 0!==u&&0===(Oe=(Qe=u.trim()).length)&&(v=0,Qe="")),Oe>0)switch(v){case le:$e=$e.replace(E,Ze);case fe:case ae:case B:Qe=$e+"{"+Qe+"}";break;case ie:Qe=($e=$e.replace(h,"$1 $2"+(Le>0?De:"")))+"{"+Qe+"}",Qe=1===ve||2===ve&&We("@"+Qe,3)?"@"+j+Qe+"@"+Qe:"@"+Qe;break;default:Qe=$e+Qe,i===pe&&(Ge+=Qe,Qe="")}else Qe="";break;default:Qe=Re(t,Ue(t,$e,Te),Qe,i,a+1)}Ye+=Qe,T=0,Ce=0,N=0,we=0,Te=0,O=0,$e="",Qe="",y=o.charCodeAt(++X);break;case I:case M:if((Oe=($e=(we>0?$e.replace(r,""):$e).trim()).length)>1)switch(0===N&&((g=$e.charCodeAt(0))===B||g>96&&g<123)&&(Oe=($e=$e.replace(" ",":")).length),Se>0&&void 0!==(u=Ve(_e,$e,t,e,be,he,Ge.length,i,a,i))&&0===(Oe=($e=u.trim()).length)&&($e="\0\0"),g=$e.charCodeAt(0),v=$e.charCodeAt(1),g){case ne:break;case W:if(v===ce||v===de){qe+=$e+o.charAt(X);break}default:if($e.charCodeAt(Oe-1)===G)break;Ge+=Fe($e,g,v,$e.charCodeAt(2))}T=0,Ce=0,N=0,we=0,Te=0,$e="",y=o.charCodeAt(++X)}}switch(y){case H:case U:if(d+p+f+c+xe===0)switch(C){case A:case Y:case q:case W:case te:case J:case $:case ee:case K:case B:case G:case Q:case M:case L:case I:break;default:N>0&&(Ce=1)}d===K?d=0:ge+T===0&&i!==ie&&$e.length>0&&(we=1,$e+="\0"),Se*Ie>0&&Ve(je,$e,t,e,be,he,Ge.length,i,a,i),he=1,be++;break;case M:case I:if(d+p+f+c===0){he++;break}default:switch(he++,Xe=o.charAt(X),y){case F:case Z:if(p+c+d===0)switch(w){case Q:case G:case F:case Z:Xe="";break;default:y!==Z&&(Xe=" ")}break;case ne:Xe="\\0";break;case re:Xe="\\f";break;case oe:Xe="\\v";break;case V:p+d+c===0&&ge>0&&(Te=1,we=1,Xe="\f"+Xe);break;case 108:if(p+d+c+me===0&&N>0)switch(X-N){case 2:w===ue&&o.charCodeAt(X-3)===G&&(me=w);case 8:k===se&&(me=k)}break;case G:p+d+c===0&&(N=X);break;case Q:d+f+p+c===0&&(we=1,Xe+="\r");break;case q:case Y:0===d&&(p=p===y?0:0===p?y:p);break;case z:p+d+f===0&&c++;break;case R:p+d+f===0&&c--;break;case A:p+d+c===0&&f--;break;case D:if(p+d+c===0){if(0===T)switch(2*w+3*k){case 533:break;default:S=0,T=1}f++}break;case W:d+f+p+c+N+O===0&&(O=1);break;case $:case K:if(p+c+f>0)break;switch(d){case 0:switch(2*y+3*o.charCodeAt(X+1)){case 235:d=K;break;case 220:Oe=X,d=$}break;case $:y===K&&w===$&&Oe+2!==X&&(33===o.charCodeAt(Oe+2)&&(Ge+=o.substring(Oe,X+1)),Xe="",d=0)}}if(0===d){if(ge+p+c+O===0&&i!==ie&&y!==M)switch(y){case Q:case te:case J:case ee:case A:case D:if(0===T){switch(w){case F:case Z:case U:case H:Xe+="\0";break;default:Xe="\0"+Xe+(y===Q?"":"\0")}we=1}else switch(y){case D:N+7===X&&108===w&&(N=0),T=++S;break;case A:0==(T=--S)&&(we=1,Xe+="\0")}break;case F:case Z:switch(w){case ne:case L:case I:case M:case Q:case re:case F:case Z:case U:case H:break;default:0===T&&(we=1,Xe+="\0")}}$e+=Xe,y!==Z&&y!==F&&(C=y)}}k=w,w=y,X++}if(Oe=Ge.length,ke>0&&0===Oe&&0===Ye.length&&0===t[0].length==0&&(i!==ae||1===t.length&&(ge>0?Ae:ze)===t[0])&&(Oe=t.join(",").length+2),Oe>0){if(l=0===ge&&i!==ie?function(e){for(var t,n,o=0,i=e.length,a=Array(i);o1)){if(f=u.charCodeAt(u.length-1),p=n.charCodeAt(0),t="",0!==c)switch(f){case $:case te:case J:case ee:case Z:case D:break;default:t=" "}switch(p){case V:n=t+Ae;case te:case J:case ee:case Z:case A:case D:break;case z:n=t+n+Ae;break;case G:switch(2*n.charCodeAt(1)+3*n.charCodeAt(2)){case 530:if(ye>0){n=t+n.substring(8,d-1);break}default:(c<1||l[c-1].length<1)&&(n=t+Ae+n)}break;case Q:t="";default:n=d>1&&n.indexOf(":")>0?t+n.replace(x,"$1"+Ae+"$2"):t+n+Ae}u+=n}a[o]=u.replace(r,"").trim()}return a}(t):t,Se>0&&void 0!==(u=Ve(Pe,Ge,l,e,be,he,Oe,i,a,i))&&0===(Ge=u).length)return qe+Ge+Ye;if(Ge=l.join(",")+"{"+Ge+"}",ve*me!=0){switch(2!==ve||We(Ge,2)||(me=0),me){case se:Ge=Ge.replace(m,":"+_+"$1")+Ge;break;case ue:Ge=Ge.replace(b,"::"+j+"input-$1")+Ge.replace(b,"::"+_+"$1")+Ge.replace(b,":"+P+"input-$1")+Ge}me=0}}return qe+Ge+Ye}function Ue(e,t,n){var r=t.trim().split(c),o=r,i=r.length,a=e.length;switch(a){case 0:case 1:for(var l=0,u=0===a?"":e[0]+" ";l0&&ge>0)return o.replace(f,"$1").replace(d,"$1"+ze);break;default:return e.trim()+o.replace(d,"$1"+e.trim())}default:if(n*ge>0&&o.indexOf("\f")>0)return o.replace(d,(e.charCodeAt(0)===G?"":"$1")+e.trim())}return e+o}function Fe(e,t,n,r){var s,c=0,d=e+";",f=2*t+3*n+4*r;if(944===f)return function(e){var t=e.length,n=e.indexOf(":",9)+1,r=e.substring(0,n).trim(),o=e.substring(n,t-1).trim();switch(e.charCodeAt(9)*Le){case 0:break;case B:if(110!==e.charCodeAt(10))break;default:var i=o.split((o="",l)),a=0;for(n=0,t=i.length;aW&&d<90||d>96&&d<123||d===X||d===B&&s.charCodeAt(1)!==B))switch(isNaN(parseFloat(s))+(-1!==s.indexOf("("))){case 1:switch(s){case"infinite":case"alternate":case"backwards":case"running":case"normal":case"forwards":case"both":case"none":case"linear":case"ease":case"ease-in":case"ease-out":case"ease-in-out":case"paused":case"reverse":case"alternate-reverse":case"inherit":case"initial":case"unset":case"step-start":case"step-end":break;default:s+=De}}c[n++]=s}o+=(0===a?"":",")+c.join(" ")}}return o=r+o+";",1===ve||2===ve&&We(o,1)?j+o+o:o}(d);if(0===ve||2===ve&&!We(d,1))return d;switch(f){case 1015:return 97===d.charCodeAt(10)?j+d+d:d;case 951:return 116===d.charCodeAt(3)?j+d+d:d;case 963:return 110===d.charCodeAt(5)?j+d+d:d;case 1009:if(100!==d.charCodeAt(4))break;case 969:case 942:return j+d+d;case 978:return j+d+_+d+d;case 1019:case 983:return j+d+_+d+P+d+d;case 883:return d.charCodeAt(8)===B?j+d+d:d.indexOf("image-set(",11)>0?d.replace(N,"$1"+j+"$2")+d:d;case 932:if(d.charCodeAt(4)===B)switch(d.charCodeAt(5)){case 103:return j+"box-"+d.replace("-grow","")+j+d+P+d.replace("grow","positive")+d;case 115:return j+d+P+d.replace("shrink","negative")+d;case 98:return j+d+P+d.replace("basis","preferred-size")+d}return j+d+P+d+d;case 964:return j+d+P+"flex-"+d+d;case 1023:if(99!==d.charCodeAt(8))break;return s=d.substring(d.indexOf(":",15)).replace("flex-","").replace("space-between","justify"),j+"box-pack"+s+j+d+P+"flex-pack"+s+d;case 1005:return i.test(d)?d.replace(o,":"+j)+d.replace(o,":"+_)+d:d;case 1e3:switch(c=(s=d.substring(13).trim()).indexOf("-")+1,s.charCodeAt(0)+s.charCodeAt(c)){case 226:s=d.replace(k,"tb");break;case 232:s=d.replace(k,"tb-rl");break;case 220:s=d.replace(k,"lr");break;default:return d}return j+d+P+s+d;case 1017:if(-1===d.indexOf("sticky",9))return d;case 975:switch(c=(d=e).length-10,f=(s=(33===d.charCodeAt(c)?d.substring(0,c):d).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|s.charCodeAt(7))){case 203:if(s.charCodeAt(8)<111)break;case 115:d=d.replace(s,j+s)+";"+d;break;case 207:case 102:d=d.replace(s,j+(f>102?"inline-":"")+"box")+";"+d.replace(s,j+s)+";"+d.replace(s,P+s+"box")+";"+d}return d+";";case 938:if(d.charCodeAt(5)===B)switch(d.charCodeAt(6)){case 105:return s=d.replace("-items",""),j+d+j+"box-"+s+P+"flex-"+s+d;case 115:return j+d+P+"flex-item-"+d.replace(S,"")+d;default:return j+d+P+"flex-line-pack"+d.replace("align-content","").replace(S,"")+d}break;case 973:case 989:if(d.charCodeAt(3)!==B||122===d.charCodeAt(4))break;case 931:case 953:if(!0===O.test(e))return 115===(s=e.substring(e.indexOf(":")+1)).charCodeAt(0)?Fe(e.replace("stretch","fill-available"),t,n,r).replace(":fill-available",":stretch"):d.replace(s,j+s)+d.replace(s,_+s.replace("fill-",""))+d;break;case 962:if(d=j+d+(102===d.charCodeAt(5)?P+d:"")+d,n+r===211&&105===d.charCodeAt(13)&&d.indexOf("transform",10)>0)return d.substring(0,d.indexOf(";",27)+1).replace(a,"$1"+j+"$2")+d}return d}function We(e,t){var n=e.indexOf(1===t?":":"{"),r=e.substring(0,3!==t?n:10),o=e.substring(n+1,e.length-1);return Te(2!==t?r:r.replace(T,"$1"),o,t)}function Ze(e,t){var n=Fe(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(C," or ($1)").substring(4):"("+t+")"}function Ve(e,t,n,r,o,i,a,l,u,s){for(var c,d=0,f=t;d0&&(De=o.replace(p,i===z?"":"-")),i=1,1===ge?ze=o:Ae=o;var a,l=[ze];Se>0&&void 0!==(a=Ve(Ne,n,l,l,be,he,0,0,0,0))&&"string"==typeof a&&(n=a);var u=Re(Ee,l,n,0,0);return Se>0&&void 0!==(a=Ve(Oe,u,l,l,be,he,u.length,0,0,0))&&"string"!=typeof(u=a)&&(i=0),De="",ze="",Ae="",me=0,be=1,he=1,we*i==0?u:u.replace(r,"").replace(g,"").replace(v,"$1").replace(y,"$1").replace(w," ")}return $e.use=function e(t){switch(t){case void 0:case null:Se=Ce.length=0;break;default:if("function"==typeof t)Ce[Se++]=t;else if("object"==typeof t)for(var n=0,r=t.length;n 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; -} - -module.exports = warning; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) - -/***/ }), -/* 10 */ -/***/ (function(module, exports) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -module.exports = function(useSourceMap) { - var list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map(function (item) { - var content = cssWithMappingToString(item, useSourceMap); - if(item[2]) { - return "@media " + item[2] + "{" + content + "}"; - } else { - return content; - } - }).join(""); - }; - - // import a list of modules into the list - list.i = function(modules, mediaQuery) { - if(typeof modules === "string") - modules = [[null, modules, ""]]; - var alreadyImportedModules = {}; - for(var i = 0; i < this.length; i++) { - var id = this[i][0]; - if(typeof id === "number") - alreadyImportedModules[id] = true; - } - for(i = 0; i < modules.length; i++) { - var item = modules[i]; - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { - if(mediaQuery && !item[2]) { - item[2] = mediaQuery; - } else if(mediaQuery) { - item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; - } - list.push(item); - } - } - }; - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - var content = item[1] || ''; - var cssMapping = item[3]; - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - var sourceMapping = toComment(cssMapping); - var sourceURLs = cssMapping.sources.map(function (source) { - return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' - }); - - return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); - } - - return [content].join('\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; - - return '/*# ' + data + ' */'; -} - - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ - -var stylesInDom = {}; - -var memoize = function (fn) { - var memo; - - return function () { - if (typeof memo === "undefined") memo = fn.apply(this, arguments); - return memo; - }; -}; - -var isOldIE = memoize(function () { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - return window && document && document.all && !window.atob; -}); - -var getTarget = function (target) { - return document.querySelector(target); -}; - -var getElement = (function (fn) { - var memo = {}; - - return function(target) { - // If passing function in options, then use it for resolve "head" element. - // Useful for Shadow Root style i.e - // { - // insertInto: function () { return document.querySelector("#foo").shadowRoot } - // } - if (typeof target === 'function') { - return target(); - } - if (typeof memo[target] === "undefined") { - var styleTarget = getTarget.call(this, target); - // Special case to return head of iframe instead of iframe itself - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch(e) { - styleTarget = null; - } - } - memo[target] = styleTarget; - } - return memo[target] - }; -})(); - -var singleton = null; -var singletonCounter = 0; -var stylesInsertedAtTop = []; - -var fixUrls = __webpack_require__(33); - -module.exports = function(list, options) { - if (typeof DEBUG !== "undefined" && DEBUG) { - if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); - } - - options = options || {}; - - options.attrs = typeof options.attrs === "object" ? options.attrs : {}; - - // Force single-tag solution on IE6-9, which has a hard limit on the # of \n *\n * Note: replace · with * in the above snippet.\n * */\nvar DISABLE_SPEEDY = typeof false === 'boolean' && false || process.env.NODE_ENV !== 'production';\n\nvar COMPONENTS_PER_TAG = 40;\nvar SPEEDY_COMPONENTS_PER_TAG = 1000; // insertRule allows more injections before a perf slowdown\n\n// Source: https://github.com/threepointone/glamor/blob/master/src/sheet.js#L32-L43\nvar sheetForTag = function sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n }\n\n for (var i = 0; i < document.styleSheets.length; i += 1) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n\n // NOTE: This should never happen\n throw new Error('');\n};\n\n// Safely (try/catch) injects rule at index and returns whether it was successful\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n if (cssRule === undefined || cssRule.length === 0) {\n return false;\n }\n\n var maxIndex = sheet.cssRules.length;\n var cappedIndex = index <= maxIndex ? index : maxIndex;\n\n try {\n sheet.insertRule(cssRule, cappedIndex);\n } catch (err) {\n // NOTE: An invalid rule here means it's not supported by the browser or obviously malformed\n return false;\n }\n\n return true;\n};\n\n// Counts up the number of rules inside the array until a specific component entry is found\n// This is used to determine the necessary insertRule index\nvar sizeUpToComponentIndex = function sizeUpToComponentIndex(componentSizes, componentIndex) {\n var cssRulesSize = 0;\n for (var i = 0; i <= componentIndex; i += 1) {\n cssRulesSize += componentSizes[i];\n }\n\n return cssRulesSize;\n};\n\nvar BaseBrowserTag = function () {\n function BaseBrowserTag() {\n classCallCheck(this, BaseBrowserTag);\n }\n\n BaseBrowserTag.prototype.toReactElement = function toReactElement() {\n throw new Error(process.env.NODE_ENV !== 'production' ? \"BrowserTag doesn't implement toReactElement!\" : '');\n };\n\n BaseBrowserTag.prototype.clone = function clone() {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'BrowserTag cannot be cloned!' : '');\n };\n\n BaseBrowserTag.prototype.getComponentIds = function getComponentIds() {\n return Object.keys(this.components);\n };\n\n return BaseBrowserTag;\n}();\n\nvar BrowserTag = void 0;\nif (!DISABLE_SPEEDY) {\n BrowserTag = function (_BaseBrowserTag) {\n inherits(SpeedyBrowserTag, _BaseBrowserTag);\n\n // Store component ruleSizes in an array per component (in order)\n\n\n function SpeedyBrowserTag(el, isLocal, existingSource) {\n classCallCheck(this, SpeedyBrowserTag);\n\n var _this = possibleConstructorReturn(this, _BaseBrowserTag.call(this));\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n var extractedComps = extractCompsFromCSS(existingSource);\n\n _this.el = el;\n _this.isLocal = isLocal;\n _this.ready = false;\n _this.componentSizes = [];\n _this.size = extractedComps.length;\n _this.components = extractedComps.reduce(function (acc, obj) {\n acc[obj.componentId] = obj; // eslint-disable-line no-param-reassign\n return acc;\n }, {});\n return _this;\n }\n\n /* Because we care about source order, before we can inject anything we need to\n * create a text node for each component and replace the existing CSS. */\n\n\n SpeedyBrowserTag.prototype.replaceElement = function replaceElement() {\n var _this2 = this;\n\n // Build up our replacement style tag\n var newEl = this.el.cloneNode(false);\n\n if (!this.el.parentNode) {\n throw new Error(process.env.NODE_ENV !== 'production' ? \"Trying to replace an element that wasn't mounted!\" : '');\n }\n\n // workaround for an IE/Edge bug: https://twitter.com/probablyup/status/958138927981977600\n newEl.appendChild(document.createTextNode(''));\n\n // $FlowFixMe\n this.el.parentNode.replaceChild(newEl, this.el);\n this.el = newEl;\n this.ready = true;\n\n // Retrieve the sheet for the new style tag\n var sheet = sheetForTag(newEl);\n\n Object.keys(this.components).forEach(function (componentId) {\n var comp = _this2.components[componentId];\n var cssFromDOM = comp.cssFromDOM;\n\n var rules = stringifyRules([cssFromDOM]);\n var rulesSize = rules.length;\n\n var injectedRules = 0;\n for (var j = 0; j < rulesSize; j += 1) {\n if (safeInsertRule(sheet, rules[j], sheet.cssRules.length)) {\n injectedRules += 1;\n }\n }\n\n comp.componentIndex = _this2.componentSizes.length;\n comp.css = rules.join(' ');\n _this2.componentSizes.push(injectedRules);\n });\n };\n\n SpeedyBrowserTag.prototype.isSealed = function isSealed() {\n return this.size >= SPEEDY_COMPONENTS_PER_TAG;\n };\n\n SpeedyBrowserTag.prototype.addComponent = function addComponent(componentId) {\n if (!this.ready) this.replaceElement();\n\n if (process.env.NODE_ENV !== 'production' && this.components[componentId]) {\n throw new Error('Trying to add Component \\'' + componentId + '\\' twice!');\n }\n\n this.components[componentId] = {\n componentIndex: this.componentSizes.length,\n css: ''\n };\n\n this.componentSizes.push(0);\n this.size += 1;\n };\n\n SpeedyBrowserTag.prototype.inject = function inject(componentId, cssRules, name) {\n if (!this.ready) this.replaceElement();\n\n var comp = this.components[componentId];\n if (process.env.NODE_ENV !== 'production' && !comp) {\n throw new Error('Must add a new component before you can inject css into it');\n }\n\n var cssRulesSize = cssRules.length;\n var sheet = sheetForTag(this.el);\n var componentIndex = comp.componentIndex;\n\n // Determine start index for injection\n\n var insertIndex = sizeUpToComponentIndex(this.componentSizes, componentIndex);\n\n // Inject each rule shifting index forward for each one (in-order injection)\n var injectedRules = 0;\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n comp.css += ' ' + cssRule;\n injectedRules += 1;\n }\n }\n\n // Update number of rules for component\n this.componentSizes[componentIndex] += injectedRules;\n\n if (name !== undefined && name !== null) {\n var existingNames = this.el.getAttribute(SC_ATTR);\n this.el.setAttribute(SC_ATTR, existingNames ? existingNames + ' ' + name : name);\n }\n };\n\n SpeedyBrowserTag.prototype.toRawCSS = function toRawCSS() {\n return ''; // NOTE: Unsupported in production mode (SpeedyBrowserTag)\n };\n\n SpeedyBrowserTag.prototype.toHTML = function toHTML() {\n return ''; // NOTE: Unsupported in production mode (SpeedyBrowserTag)\n };\n\n return SpeedyBrowserTag;\n }(BaseBrowserTag);\n} else {\n BrowserTag = function (_BaseBrowserTag2) {\n inherits(TextNodeBrowserTag, _BaseBrowserTag2);\n\n function TextNodeBrowserTag(el, isLocal) {\n var existingSource = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n classCallCheck(this, TextNodeBrowserTag);\n\n var _this3 = possibleConstructorReturn(this, _BaseBrowserTag2.call(this));\n\n var nonce = getNonce();\n if (nonce !== null) {\n el.setAttribute('nonce', nonce);\n }\n\n var extractedComps = extractCompsFromCSS(existingSource);\n\n _this3.el = el;\n _this3.isLocal = isLocal;\n _this3.ready = false;\n _this3.size = extractedComps.length;\n _this3.components = extractedComps.reduce(function (acc, obj) {\n acc[obj.componentId] = obj; // eslint-disable-line no-param-reassign\n return acc;\n }, {});\n return _this3;\n }\n\n TextNodeBrowserTag.prototype.isSealed = function isSealed() {\n return this.size >= COMPONENTS_PER_TAG;\n };\n\n TextNodeBrowserTag.prototype.addComponent = function addComponent(componentId) {\n if (!this.ready) this.replaceElement();\n if (process.env.NODE_ENV !== 'production' && this.components[componentId]) {\n throw new Error('Trying to add Component \\'' + componentId + '\\' twice!');\n }\n\n var comp = { componentId: componentId, textNode: document.createTextNode('') };\n this.el.appendChild(comp.textNode);\n this.size += 1;\n this.components[componentId] = comp;\n };\n\n TextNodeBrowserTag.prototype.inject = function inject(componentId, css, name) {\n if (!this.ready) this.replaceElement();\n var comp = this.components[componentId];\n\n if (process.env.NODE_ENV !== 'production' && !comp) {\n throw new Error('Must add a new component before you can inject css into it');\n }\n\n if (comp.textNode.data === '') {\n comp.textNode.appendData('\\n/* sc-component-id: ' + componentId + ' */\\n');\n }\n\n comp.textNode.appendData(css.join(' '));\n\n if (name !== undefined && name !== null) {\n var existingNames = this.el.getAttribute(SC_ATTR);\n this.el.setAttribute(SC_ATTR, existingNames ? existingNames + ' ' + name : name);\n }\n };\n\n TextNodeBrowserTag.prototype.toHTML = function toHTML() {\n return this.el.outerHTML;\n };\n\n TextNodeBrowserTag.prototype.toReactElement = function toReactElement() {\n throw new Error(process.env.NODE_ENV !== 'production' ? \"BrowserTag doesn't implement toReactElement!\" : '');\n };\n\n TextNodeBrowserTag.prototype.clone = function clone() {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'BrowserTag cannot be cloned!' : '');\n };\n\n /* Because we care about source order, before we can inject anything we need to\n * create a text node for each component and replace the existing CSS. */\n\n\n TextNodeBrowserTag.prototype.replaceElement = function replaceElement() {\n var _this4 = this;\n\n this.ready = true;\n // We have nothing to inject. Use the current el.\n if (this.size === 0) return;\n\n // Build up our replacement style tag\n var newEl = this.el.cloneNode(false);\n newEl.appendChild(document.createTextNode('\\n'));\n\n Object.keys(this.components).forEach(function (key) {\n var comp = _this4.components[key];\n\n // eslint-disable-next-line no-param-reassign\n comp.textNode = document.createTextNode(comp.cssFromDOM);\n newEl.appendChild(comp.textNode);\n });\n\n if (!this.el.parentNode) {\n throw new Error(process.env.NODE_ENV !== 'production' ? \"Trying to replace an element that wasn't mounted!\" : '');\n }\n\n // The ol' switcheroo\n this.el.parentNode.replaceChild(newEl, this.el);\n this.el = newEl;\n };\n\n return TextNodeBrowserTag;\n }(BaseBrowserTag);\n}\n\n/* Factory function to separate DOM operations from logical ones*/\nvar BrowserStyleSheet = {\n create: function create() {\n var tags = [];\n var names = {};\n\n /* Construct existing state from DOM */\n var nodes = document.querySelectorAll('[' + SC_ATTR + ']');\n var nodesLength = nodes.length;\n\n for (var i = 0; i < nodesLength; i += 1) {\n // $FlowFixMe: We can trust that all elements in this query are style elements\n var el = nodes[i];\n var attr = el.getAttribute(SC_ATTR);\n\n if (attr) {\n attr.trim().split(/\\s+/).forEach(function (name) {\n names[name] = true;\n });\n }\n\n tags.push(new BrowserTag(el, el.getAttribute(LOCAL_ATTR) === 'true', el.textContent));\n }\n\n /* Factory for making more tags */\n var tagConstructor = function tagConstructor(isLocal) {\n var el = document.createElement('style');\n el.type = 'text/css';\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(LOCAL_ATTR, isLocal ? 'true' : 'false');\n if (!document.head) {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'Missing document ' : '');\n }\n document.head.appendChild(el);\n return new BrowserTag(el, isLocal);\n };\n\n return new StyleSheet(tagConstructor, tags, names);\n }\n};\n\n// \nvar SC_ATTR = 'data-styled-components';\nvar LOCAL_ATTR = 'data-styled-components-is-local';\nvar CONTEXT_KEY = '__styled-components-stylesheet__';\n\n/* eslint-disable flowtype/object-type-delimiter */\n/* eslint-enable flowtype/object-type-delimiter */\n\nvar instance = null;\n// eslint-disable-next-line no-use-before-define\nvar clones = [];\n\nvar IS_BROWSER = typeof document !== 'undefined';\n\nvar StyleSheet = function () {\n function StyleSheet(tagConstructor) {\n var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var names = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, StyleSheet);\n this.hashes = {};\n this.deferredInjections = {};\n this.stylesCacheable = IS_BROWSER;\n\n this.tagConstructor = tagConstructor;\n this.tags = tags;\n this.names = names;\n this.constructComponentTagMap();\n this.isStreaming = false;\n }\n\n // helper for `ComponentStyle` to know when it cache static styles.\n // staticly styled-component can not safely cache styles on the server\n // without all `ComponentStyle` instances saving a reference to the\n // the styleSheet instance they last rendered with,\n // or listening to creation / reset events. otherwise you might create\n // a component with one stylesheet and render it another api response\n // with another, losing styles on from your server-side render.\n\n\n StyleSheet.prototype.constructComponentTagMap = function constructComponentTagMap() {\n var _this = this;\n\n this.componentTags = {};\n\n this.tags.forEach(function (tag) {\n tag.getComponentIds().forEach(function (componentId) {\n _this.componentTags[componentId] = tag;\n });\n });\n };\n\n /* Best level of caching—get the name from the hash straight away. */\n\n\n StyleSheet.prototype.getName = function getName(hash) {\n return this.hashes[hash.toString()];\n };\n\n /* Second level of caching—if the name is already in the dom, don't\n * inject anything and record the hash for getName next time. */\n\n\n StyleSheet.prototype.alreadyInjected = function alreadyInjected(hash, name) {\n if (!this.names[name]) return false;\n\n this.hashes[hash.toString()] = name;\n return true;\n };\n\n /* Third type of caching—don't inject components' componentId twice. */\n\n\n StyleSheet.prototype.hasInjectedComponent = function hasInjectedComponent(componentId) {\n return !!this.componentTags[componentId];\n };\n\n StyleSheet.prototype.deferredInject = function deferredInject(componentId, isLocal, css) {\n if (this === instance) {\n clones.forEach(function (clone) {\n clone.deferredInject(componentId, isLocal, css);\n });\n }\n\n this.getOrCreateTag(componentId, isLocal);\n this.deferredInjections[componentId] = css;\n };\n\n StyleSheet.prototype.inject = function inject(componentId, isLocal, css, hash, name) {\n if (this === instance) {\n clones.forEach(function (clone) {\n clone.inject(componentId, isLocal, css);\n });\n }\n\n var tag = this.getOrCreateTag(componentId, isLocal);\n\n var deferredInjection = this.deferredInjections[componentId];\n if (deferredInjection) {\n tag.inject(componentId, deferredInjection);\n delete this.deferredInjections[componentId];\n }\n\n tag.inject(componentId, css, name);\n\n if (hash && name) {\n this.hashes[hash.toString()] = name;\n }\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n return this.tags.map(function (tag, i) {\n return tag.toReactElement('sc-' + i);\n });\n };\n\n StyleSheet.prototype.getOrCreateTag = function getOrCreateTag(componentId, isLocal) {\n var existingTag = this.componentTags[componentId];\n\n /**\n * in a streaming context, once a tag is sealed it can never be added to again\n * or those styles will never make it to the client\n */\n if (existingTag && this.isStreaming ? !existingTag.isSealed() : existingTag) {\n return existingTag;\n }\n\n var lastTag = this.tags[this.tags.length - 1];\n var componentTag = !lastTag || lastTag.isSealed() || lastTag.isLocal !== isLocal ? this.createNewTag(isLocal) : lastTag;\n this.componentTags[componentId] = componentTag;\n componentTag.addComponent(componentId);\n return componentTag;\n };\n\n StyleSheet.prototype.createNewTag = function createNewTag(isLocal) {\n var newTag = this.tagConstructor(isLocal);\n this.tags.push(newTag);\n return newTag;\n };\n\n StyleSheet.reset = function reset(isServer) {\n instance = StyleSheet.create(isServer);\n };\n\n /* We can make isServer totally implicit once Jest 20 drops and we\n * can change environment on a per-test basis. */\n\n\n StyleSheet.create = function create() {\n var isServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !IS_BROWSER;\n\n return (isServer ? ServerStyleSheet : BrowserStyleSheet).create();\n };\n\n StyleSheet.clone = function clone(oldSheet) {\n var newSheet = new StyleSheet(oldSheet.tagConstructor, oldSheet.tags.map(function (tag) {\n return tag.clone();\n }), _extends({}, oldSheet.names));\n\n newSheet.hashes = _extends({}, oldSheet.hashes);\n newSheet.deferredInjections = _extends({}, oldSheet.deferredInjections);\n clones.push(newSheet);\n\n return newSheet;\n };\n\n createClass(StyleSheet, null, [{\n key: 'instance',\n get: function get$$1() {\n return instance || (instance = StyleSheet.create());\n }\n }]);\n return StyleSheet;\n}();\n\nvar _StyleSheetManager$ch;\n\n// \nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager() {\n classCallCheck(this, StyleSheetManager);\n return possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n StyleSheetManager.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[CONTEXT_KEY] = this.props.sheet, _ref;\n };\n\n StyleSheetManager.prototype.render = function render() {\n /* eslint-disable react/prop-types */\n // Flow v0.43.1 will report an error accessing the `children` property,\n // but v0.47.0 will not. It is necessary to use a type cast instead of\n // a \"fixme\" comment to satisfy both Flow versions.\n return React.Children.only(this.props.children);\n };\n\n return StyleSheetManager;\n}(Component);\n\nStyleSheetManager.childContextTypes = (_StyleSheetManager$ch = {}, _StyleSheetManager$ch[CONTEXT_KEY] = PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]).isRequired, _StyleSheetManager$ch);\n\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]).isRequired\n} : void 0;\n\n// \n/* eslint-disable no-underscore-dangle */\nvar ServerTag = function () {\n function ServerTag(isLocal) {\n classCallCheck(this, ServerTag);\n\n this.emitted = false;\n this.isLocal = isLocal;\n this.isProduction = process.env.NODE_ENV === 'production';\n this.components = {};\n this.size = 0;\n this.names = [];\n }\n\n ServerTag.prototype.isSealed = function isSealed() {\n return this.emitted;\n };\n\n ServerTag.prototype.getComponentIds = function getComponentIds() {\n return Object.keys(this.components);\n };\n\n ServerTag.prototype.addComponent = function addComponent(componentId) {\n if (this.components[componentId]) {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'Trying to add Component \\'' + componentId + '\\' twice!' : '');\n }\n this.components[componentId] = { componentId: componentId, css: '' };\n this.size += 1;\n };\n\n ServerTag.prototype.concatenateCSS = function concatenateCSS() {\n var _this = this;\n\n return Object.keys(this.components).reduce(function (styles, k) {\n return styles + _this.components[k].css;\n }, '');\n };\n\n ServerTag.prototype.inject = function inject(componentId, css, name) {\n var comp = this.components[componentId];\n\n if (!comp) {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'Must add a new component before you can inject css into it' : '');\n }\n\n if (comp.css === '') {\n comp.css = '/* sc-component-id: ' + componentId + ' */\\n';\n }\n\n var cssRulesSize = css.length;\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = css[i];\n comp.css += (cssRule + '\\n').replace(/\\n*$/, '\\n');\n }\n\n if (name) this.names.push(name);\n };\n\n ServerTag.prototype.toHTML = function toHTML() {\n var attrs = ['type=\"text/css\"', SC_ATTR + '=\"' + this.names.join(' ') + '\"', LOCAL_ATTR + '=\"' + (this.isLocal ? 'true' : 'false') + '\"'];\n\n var nonce = getNonce();\n if (nonce) {\n attrs.push('nonce=\"' + nonce + '\"');\n }\n\n this.emitted = true;\n return '';\n };\n\n ServerTag.prototype.toReactElement = function toReactElement(key) {\n var _attrs;\n\n var attrs = (_attrs = {}, _attrs[SC_ATTR] = this.names.join(' '), _attrs[LOCAL_ATTR] = this.isLocal.toString(), _attrs);\n\n var nonce = getNonce();\n if (nonce) {\n attrs.nonce = nonce;\n }\n\n this.emitted = true;\n\n return React.createElement('style', _extends({\n key: key,\n type: 'text/css'\n }, attrs, {\n dangerouslySetInnerHTML: { __html: this.concatenateCSS() }\n }));\n };\n\n ServerTag.prototype.clone = function clone() {\n var _this2 = this;\n\n var copy = new ServerTag(this.isLocal);\n copy.names = [].concat(this.names);\n copy.size = this.size;\n copy.components = Object.keys(this.components).reduce(function (acc, key) {\n acc[key] = _extends({}, _this2.components[key]); // eslint-disable-line no-param-reassign\n return acc;\n }, {});\n\n return copy;\n };\n\n return ServerTag;\n}();\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n this.instance = StyleSheet.clone(StyleSheet.instance);\n this.instance.isStreaming = false;\n }\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.closed) {\n throw new Error(process.env.NODE_ENV !== 'production' ? \"Can't collect styles once you've called getStyleTags!\" : '');\n }\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.close = function close() {\n clones.splice(clones.indexOf(this.instance), 1);\n this.closed = true;\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n if (!this.closed) {\n this.close();\n }\n\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n if (!this.closed) {\n this.close();\n }\n\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'streaming only works in Node.js, please do not try to call this method in the browser' : '');\n }\n };\n\n ServerStyleSheet.create = function create() {\n return new StyleSheet(function (isLocal) {\n return new ServerTag(isLocal);\n });\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs({\\n' + ' style: ({ background }) => ({\\n' + ' background,\\n' + ' }),\\n' + ' })`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n/* eslint-disable max-len */\n/**\n * Trying to avoid the unknown-prop errors on styled components by filtering by\n * React's attribute whitelist.\n *\n * To regenerate this regex:\n *\n * 1. `npm i -g regexgen` (https://github.com/devongovett/regexgen)\n * 2. Run `regexgen` with the list of space-separated words below as input\n * 3. Surround the emitted regex with this: `/^(GENERATED_REGEX)$/` -- this will ensure a full string match\n * and no false positives from partials\n **/\n/*\nchildren dangerouslySetInnerHTML key ref autoFocus defaultValue valueLink defaultChecked checkedLink innerHTML suppressContentEditableWarning onFocusIn onFocusOut className onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onReset onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onAnimationStart onAnimationEnd onAnimationIteration onTransitionEnd onCopyCapture onCutCapture onPasteCapture onCompositionEndCapture onCompositionStartCapture onCompositionUpdateCapture onKeyDownCapture onKeyPressCapture onKeyUpCapture onFocusCapture onBlurCapture onChangeCapture onInputCapture onSubmitCapture onResetCapture onClickCapture onContextMenuCapture onDoubleClickCapture onDragCapture onDragEndCapture onDragEnterCapture onDragExitCapture onDragLeaveCapture onDragOverCapture onDragStartCapture onDropCapture onMouseDownCapture onMouseEnterCapture onMouseLeaveCapture onMouseMoveCapture onMouseOutCapture onMouseOverCapture onMouseUpCapture onSelectCapture onTouchCancelCapture onTouchEndCapture onTouchMoveCapture onTouchStartCapture onScrollCapture onWheelCapture onAbortCapture onCanPlayCapture onCanPlayThroughCapture onDurationChangeCapture onEmptiedCapture onEncryptedCapture onEndedCapture onErrorCapture onLoadedDataCapture onLoadedMetadataCapture onLoadStartCapture onPauseCapture onPlayCapture onPlayingCapture onProgressCapture onRateChangeCapture onSeekedCapture onSeekingCapture onStalledCapture onSuspendCapture onTimeUpdateCapture onVolumeChangeCapture onWaitingCapture onLoadCapture onAnimationStartCapture onAnimationEndCapture onAnimationIterationCapture onTransitionEndCapture accept acceptCharset accessKey action allowFullScreen allowTransparency alt as async autoComplete autoPlay capture cellPadding cellSpacing charSet challenge checked cite classID className cols colSpan content contentEditable contextMenu controls coords crossOrigin data dateTime default defer dir disabled download draggable encType form formAction formEncType formMethod formNoValidate formTarget frameBorder headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media mediaGroup method min minLength multiple muted name nonce noValidate open optimum pattern placeholder playsInline poster preload profile radioGroup readOnly referrerPolicy rel required reversed role rows rowSpan sandbox scope scoped scrolling seamless selected shape size sizes span spellCheck src srcDoc srcLang srcSet start step style summary tabIndex target title type useMap value width wmode wrap about datatype inlist prefix property resource typeof vocab autoCapitalize autoCorrect autoSave color itemProp itemScope itemType itemID itemRef results security unselectable accentHeight accumulate additive alignmentBaseline allowReorder alphabetic amplitude arabicForm ascent attributeName attributeType autoReverse azimuth baseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeight clip clipPath clipRule clipPathUnits colorInterpolation colorInterpolationFilters colorProfile colorRendering contentScriptType contentStyleType cursor cx cy d decelerate descent diffuseConstant direction display divisor dominantBaseline dur dx dy edgeMode elevation enableBackground end exponent externalResourcesRequired fill fillOpacity fillRule filter filterRes filterUnits floodColor floodOpacity focusable fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight format from fx fy g1 g2 glyphName glyphOrientationHorizontal glyphOrientationVertical glyphRef gradientTransform gradientUnits hanging horizAdvX horizOriginX ideographic imageRendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lengthAdjust letterSpacing lightingColor limitingConeAngle local markerEnd markerMid markerStart markerHeight markerUnits markerWidth mask maskContentUnits maskUnits mathematical mode numOctaves offset opacity operator order orient orientation origin overflow overlinePosition overlineThickness paintOrder panose1 pathLength patternContentUnits patternTransform patternUnits pointerEvents points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY renderingIntent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry scale seed shapeRendering slope spacing specularConstant specularExponent speed spreadMethod startOffset stdDeviation stemh stemv stitchTiles stopColor stopOpacity strikethroughPosition strikethroughThickness string stroke strokeDasharray strokeDashoffset strokeLinecap strokeLinejoin strokeMiterlimit strokeOpacity strokeWidth surfaceScale systemLanguage tableValues targetX targetY textAnchor textDecoration textRendering textLength to transform u1 u2 underlinePosition underlineThickness unicode unicodeBidi unicodeRange unitsPerEm vAlphabetic vHanging vIdeographic vMathematical values vectorEffect version vertAdvY vertOriginX vertOriginY viewBox viewTarget visibility widths wordSpacing writingMode x xHeight x1 x2 xChannelSelector xlinkActuate xlinkArcrole xlinkHref xlinkRole xlinkShow xlinkTitle xlinkType xmlBase xmlns xmlnsXlink xmlLang xmlSpace y y1 y2 yChannelSelector z zoomAndPan\n*/\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_REGEX = /^((?:s(?:uppressContentEditableWarn|croll|pac)|(?:shape|image|text)Render|(?:letter|word)Spac|vHang|hang)ing|(?:on(?:AnimationIteration|C(?:o(?:mposition(?:Update|Start|End)|ntextMenu|py)|anPlayThrough|anPlay|hange|lick|ut)|(?:(?:Duration|Volume|Rate)Chang|(?:MouseLea|(?:Touch|Mouse)Mo|DragLea)v|Paus)e|Loaded(?:Metad|D)ata|(?:Animation|Touch|Load|Drag)Start|(?:(?:T(?:ransition|ouch)|Animation)E|Suspe)nd|DoubleClick|(?:TouchCanc|Whe)el|(?:Mouse(?:Ent|Ov)e|Drag(?:Ent|Ov)e|Erro)r|TimeUpdate|(?:E(?:n(?:crypt|d)|mpti)|S(?:tall|eek))ed|MouseDown|P(?:rogress|laying)|(?:MouseOu|DragExi|S(?:elec|ubmi)|Rese|Inpu)t|KeyPress|DragEnd|Key(?:Down|Up)|(?:Wait|Seek)ing|(?:MouseU|Dro)p|Scroll|Paste|Focus|Abort|Drag|Play|Load|Blur)Captur|alignmentBaselin|(?:limitingConeAng|xlink(?:(?:Arcr|R)o|Tit)|s(?:urfaceSca|ty|ca)|unselectab|baseProfi|fontSty|(?:focus|dragg)ab|multip|profi|tit)l|d(?:ominantBaselin|efaultValu)|a(?:uto(?:Capitaliz|Revers|Sav)|dditiv)|(?:(?:formNoValid|xlinkActu|noValid|accumul|rot)a|autoComple|decelera)t|(?:(?:attribute|item)T|datat)yp|(?:attribute|glyph)Nam|playsInlin|(?:formE|e)ncTyp|(?:writing|input|edge)Mod|(?:xlinkTy|itemSco|keyTy|slo)p|(?:amplitu|mo)d|(?:xmlSpa|non)c|fillRul|(?:dateTi|na)m|r(?:esourc|ol)|xmlBas|wmod)e|(?:glyphOrientationHorizont|loc)al|(?:externalResourcesRequir|select|revers|mut)ed|c(?:o(?:lorInterpolationFilter|ntrol|ord)s|o(?:lor(?:Interpolation)?|ntent)|(?:ontentS(?:cript|tyle)Typ|o(?:ntentEditab|lorProfi)l|l(?:assNam|ipRul)|a(?:lcMod|ptur)|it)e|olorRendering|l(?:ipPathUnits|assID)|o(?:ntextMenu|ls)|h(?:eckedLink|a(?:llenge|rSet)|ildren|ecked)|ell(?:Spac|Padd)ing|(?:rossOrigi|olSpa)n|apHeight|lip(?:Path)?|ursor|[xy])|glyphOrientationVertical|d(?:angerouslySetInnerHTML|efaultChecked|ownload|isabled|isplay|[xy])|(?:s(?:trikethroughThickn|eaml)es|(?:und|ov)erlineThicknes|r(?:equiredExtension|adiu)|(?:requiredFeatur|tableValu|stitchTil|numOctav|filterR)e|key(?:(?:Splin|Tim)e|Param)|autoFocu|header|bia)s|(?:(?:st(?:rikethroughPosi|dDevia)|(?:und|ov)erlinePosi|(?:textDecor|elev)a|orienta)tio|(?:strokeLinejo|orig)i|formActio|zoomAndPa|onFocusI|directio|(?:vers|act)io|rowSpa|begi|ico)n|o(?:n(?:AnimationIteration|C(?:o(?:mposition(?:Update|Start|End)|ntextMenu|py)|anPlayThrough|anPlay|hange|lick|ut)|(?:(?:Duration|Volume|Rate)Chang|(?:MouseLea|(?:Touch|Mouse)Mo|DragLea)v|Paus)e|Loaded(?:Metad|D)ata|(?:Animation|Touch|Load|Drag)Start|(?:(?:T(?:ransition|ouch)|Animation)E|Suspe)nd|DoubleClick|(?:TouchCanc|Whe)el|(?:Mouse(?:Ent|Ov)e|Drag(?:Ent|Ov)e|Erro)r|TimeUpdate|(?:E(?:n(?:crypt|d)|mpti)|S(?:tall|eek))ed|MouseDown|P(?:rogress|laying)|(?:MouseOu|DragExi|S(?:elec|ubmi)|Rese|Inpu)t|KeyPress|DragEnd|Key(?:Down|Up)|(?:Wait|Seek)ing|(?:MouseU|Dro)p|Scroll|Paste|Focus|Abort|Drag|Play|Load|Blur)|rient)|p(?:reserveA(?:spectRatio|lpha)|ointsAt[X-Z]|anose1)|(?:patternContent|ma(?:sk(?:Content)?|rker)|primitive|gradient|pattern|filter)Units|(?:gradientT|patternT|t)ransform|(?:(?:allowTranspar|baseFrequ)enc|re(?:ferrerPolic|adOnl)|(?:(?:st(?:roke|op)O|floodO|fillO|o)pac|integr|secur)it|visibilit|fontFamil|accessKe|propert|summar)y|(?:strokeMiterlimi|(?:specularConsta|repeatCou|fontVaria)n|(?:(?:specularE|e)xpon|renderingInt|asc)en|d(?:iffuseConsta|esce)n|(?:fontSizeAdju|lengthAdju|manife)s|baselineShif|vectorEffec|(?:(?:mar(?:ker|gin)|x)H|accentH|fontW)eigh|a(?:utoCorrec|bou)|markerStar|onFocusOu|in(?:tercep|lis)|restar|forma|heigh|lis)t|(?:(?:st(?:rokeDasho|artO)|o)ffs|acceptChars|formTarg|viewTarg|srcS)et|(?:(?:enableBackgrou|markerE)n|s(?:p(?:readMetho|ee)|ee)|formMetho|m(?:arkerMi|etho)|preloa|kin)d|k(?:ernel(?:UnitLength|Matrix)|[1-4])|(?:[xy]ChannelSelect|lightingCol|textAnch|floodCol|stopCol|operat|htmlF)or|(?:allowFullScre|hidd)en|strokeDasharray|systemLanguage|(?:strokeLineca|itemPro|useMa|wra|loo)p|v(?:Mathematical|ert(?:Origin[XY]|AdvY)|alues|ocab)|(?:pointerEve|keyPoi)nts|unicodeRange|(?:(?:allowReord|placehold|frameBord|paintOrd|post|ord)e|repeatDu|d(?:efe|u))r|mathematical|(?:vI|i)deographic|h(?:oriz(?:Origin|Adv)X|ttpEquiv)|u(?:nicodeBidi|[12])|(?:fontStretc|hig)h|(?:(?:mar(?:ker|gin)W|strokeW)id|azimu)th|vAlphabetic|mediaGroup|spellCheck|(?:unitsPerE|optimu|fro)m|r(?:adioGroup|e(?:sults|f[XY]|l)|ows|[xy])|(?:xmlnsXl|valueL)ink|a(?:rabicForm|l(?:phabetic|t)|sync)|pathLength|(?:text|m(?:in|ax))Length|innerHTML|xlinkShow|(?:xlinkHr|glyphR)ef|r(?:e(?:quired|sult|f))?|o(?:verflow|pen)|(?:tabInde|(?:sand|b)bo|viewBo)x|(?:(?:href|xml|src)La|kerni)ng|f(?:o(?:ntSize|rm)|il(?:ter|l))|autoPlay|unicode|p(?:attern|oints)|t(?:arget[XY]|o)|i(?:temRef|n2|s)|divisor|d(?:efault|ata|ir)?|srcDoc|s(?:coped|te(?:m[hv]|p)|pan)|(?:width|size)s|(?:stri|la)ng|prefix|itemID|s(?:t(?:roke|art)|hape|cope|rc)|a(?:ccept|s)|t(?:arget|ype)|typeof|width|value|x(?:mlns)?|label|m(?:edia|a(?:sk|x)|in)|size|href|k(?:ey)?|end|low|x[12]|i[dn]|y[12]|g[12]|by|f[xy]|[yz])$/;\n\n/* From DOMProperty */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nvar isCustomAttribute = RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'));\n\nvar validAttr = (function (name) {\n return ATTRIBUTE_REGEX.test(name) || isCustomAttribute(name.toLowerCase());\n});\n\n// \n\nfunction isTag(target) /* : %checks */{\n return typeof target === 'string';\n}\n\n// \n\n/* eslint-disable no-undef */\nfunction getComponentName(target) {\n return target.displayName || target.name || 'Component';\n}\n\n// \n\nvar determineTheme = (function (props, fallbackTheme, defaultProps) {\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types */\n var isDefaultTheme = defaultProps && props.theme === defaultProps.theme;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n/**\n * Creates a broadcast that can be listened to, i.e. simple event emitter\n *\n * @see https://github.com/ReactTraining/react-broadcast\n */\n\nvar createBroadcast = function createBroadcast(initialState) {\n var listeners = {};\n var id = 0;\n var state = initialState;\n\n function publish(nextState) {\n state = nextState;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in listeners) {\n var listener = listeners[key];\n if (listener === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n listener(state);\n }\n }\n\n function subscribe(listener) {\n var currentId = id;\n listeners[currentId] = listener;\n id += 1;\n listener(state);\n return currentId;\n }\n\n function unsubscribe(unsubID) {\n listeners[unsubID] = undefined;\n }\n\n return { publish: publish, subscribe: subscribe, unsubscribe: unsubscribe };\n};\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb();\n }\n };\n});\n\nvar _ThemeProvider$childC;\nvar _ThemeProvider$contex;\n\n// \n/* globals React$Element */\n// NOTE: DO NOT CHANGE, changing this is a semver major change!\nvar CHANNEL = '__styled-components__';\nvar CHANNEL_NEXT = CHANNEL + 'next__';\n\nvar CONTEXT_CHANNEL_SHAPE = PropTypes.shape({\n getTheme: PropTypes.func,\n subscribe: PropTypes.func,\n unsubscribe: PropTypes.func\n});\n\nvar warnChannelDeprecated = void 0;\nif (process.env.NODE_ENV !== 'production') {\n warnChannelDeprecated = once(function () {\n // eslint-disable-next-line no-console\n console.error('Warning: Usage of `context.' + CHANNEL + '` as a function is deprecated. It will be replaced with the object on `.context.' + CHANNEL_NEXT + '` in a future version.');\n });\n}\n\nvar isFunction = function isFunction(test) {\n return typeof test === 'function';\n};\n\n/**\n * Provide a theme to an entire react component tree via context and event listeners (have to do\n * both context and event emitter as pure components block context updates)\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider() {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.unsubscribeToOuterId = -1;\n\n _this.getTheme = _this.getTheme.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n // If there is a ThemeProvider wrapper anywhere around this theme provider, merge this theme\n // with the outer theme\n var outerContext = this.context[CHANNEL_NEXT];\n if (outerContext !== undefined) {\n this.unsubscribeToOuterId = outerContext.subscribe(function (theme) {\n _this2.outerTheme = theme;\n\n if (_this2.broadcast !== undefined) {\n _this2.publish(_this2.props.theme);\n }\n });\n }\n\n this.broadcast = createBroadcast(this.getTheme());\n };\n\n ThemeProvider.prototype.getChildContext = function getChildContext() {\n var _this3 = this,\n _babelHelpers$extends;\n\n return _extends({}, this.context, (_babelHelpers$extends = {}, _babelHelpers$extends[CHANNEL_NEXT] = {\n getTheme: this.getTheme,\n subscribe: this.broadcast.subscribe,\n unsubscribe: this.broadcast.unsubscribe\n }, _babelHelpers$extends[CHANNEL] = function (subscriber) {\n if (process.env.NODE_ENV !== 'production') {\n warnChannelDeprecated();\n }\n\n // Patch the old `subscribe` provide via `CHANNEL` for older clients.\n var unsubscribeId = _this3.broadcast.subscribe(subscriber);\n return function () {\n return _this3.broadcast.unsubscribe(unsubscribeId);\n };\n }, _babelHelpers$extends));\n };\n\n ThemeProvider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.theme !== nextProps.theme) {\n this.publish(nextProps.theme);\n }\n };\n\n ThemeProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.unsubscribeToOuterId !== -1) {\n this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeToOuterId);\n }\n };\n\n // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation\n\n\n ThemeProvider.prototype.getTheme = function getTheme(passedTheme) {\n var theme = passedTheme || this.props.theme;\n if (isFunction(theme)) {\n var mergedTheme = theme(this.outerTheme);\n if (process.env.NODE_ENV !== 'production' && !isPlainObject(mergedTheme)) {\n throw new Error(process.env.NODE_ENV !== 'production' ? '[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!' : '');\n }\n return mergedTheme;\n }\n if (!isPlainObject(theme)) {\n throw new Error(process.env.NODE_ENV !== 'production' ? '[ThemeProvider] Please make your theme prop a plain object' : '');\n }\n return _extends({}, this.outerTheme, theme);\n };\n\n ThemeProvider.prototype.publish = function publish(theme) {\n this.broadcast.publish(this.getTheme(theme));\n };\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) {\n return null;\n }\n return React.Children.only(this.props.children);\n };\n\n return ThemeProvider;\n}(Component);\n\nThemeProvider.childContextTypes = (_ThemeProvider$childC = {}, _ThemeProvider$childC[CHANNEL] = PropTypes.func, _ThemeProvider$childC[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _ThemeProvider$childC);\nThemeProvider.contextTypes = (_ThemeProvider$contex = {}, _ThemeProvider$contex[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _ThemeProvider$contex);\n\n// \n\n// HACK for generating all static styles without needing to allocate\n// an empty execution context every single time...\nvar STATIC_EXECUTION_CONTEXT = {};\n\nvar _StyledComponent = (function (ComponentStyle, constructWithOptions) {\n var identifiers = {};\n\n /* We depend on components having unique IDs */\n var generateId = function generateId(_displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n var componentId = void 0;\n\n /**\n * only fall back to hashing the component injection order if\n * a proper displayName isn't provided by the babel plugin\n */\n if (!_displayName) {\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n componentId = displayName + '-' + ComponentStyle.generateName(displayName + nr);\n } else {\n componentId = displayName + '-' + ComponentStyle.generateName(displayName);\n }\n\n return parentComponentId !== undefined ? parentComponentId + '-' + componentId : componentId;\n };\n\n var BaseStyledComponent = function (_Component) {\n inherits(BaseStyledComponent, _Component);\n\n function BaseStyledComponent() {\n var _temp, _this, _ret;\n\n classCallCheck(this, BaseStyledComponent);\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.attrs = {}, _this.state = {\n theme: null,\n generatedClassName: ''\n }, _this.unsubscribeId = -1, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n BaseStyledComponent.prototype.unsubscribeFromContext = function unsubscribeFromContext() {\n if (this.unsubscribeId !== -1) {\n this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId);\n }\n };\n\n BaseStyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props) {\n var attrs = this.constructor.attrs;\n\n var context = _extends({}, props, { theme: theme });\n if (attrs === undefined) {\n return context;\n }\n\n this.attrs = Object.keys(attrs).reduce(function (acc, key) {\n var attr = attrs[key];\n // eslint-disable-next-line no-param-reassign\n acc[key] = typeof attr === 'function' ? attr(context) : attr;\n return acc;\n }, {});\n\n return _extends({}, context, this.attrs);\n };\n\n BaseStyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _constructor = this.constructor,\n attrs = _constructor.attrs,\n componentStyle = _constructor.componentStyle,\n warnTooManyClasses = _constructor.warnTooManyClasses;\n\n var styleSheet = this.context[CONTEXT_KEY] || StyleSheet.instance;\n\n // staticaly styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n if (componentStyle.isStatic && attrs === undefined) {\n return componentStyle.generateAndInjectStyles(STATIC_EXECUTION_CONTEXT, styleSheet);\n } else {\n var executionContext = this.buildExecutionContext(theme, props);\n var className = componentStyle.generateAndInjectStyles(executionContext, styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses !== undefined) {\n warnTooManyClasses(className);\n }\n\n return className;\n }\n };\n\n BaseStyledComponent.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var componentStyle = this.constructor.componentStyle;\n\n var styledContext = this.context[CHANNEL_NEXT];\n\n // If this is a staticaly-styled component, we don't need to the theme\n // to generate or build styles.\n if (componentStyle.isStatic) {\n var generatedClassName = this.generateAndInjectStyles(STATIC_EXECUTION_CONTEXT, this.props);\n this.setState({ generatedClassName: generatedClassName });\n // If there is a theme in the context, subscribe to the event emitter. This\n // is necessary due to pure components blocking context updates, this circumvents\n // that by updating when an event is emitted\n } else if (styledContext !== undefined) {\n var subscribe = styledContext.subscribe;\n\n this.unsubscribeId = subscribe(function (nextTheme) {\n // This will be called once immediately\n var theme = determineTheme(_this2.props, nextTheme, _this2.constructor.defaultProps);\n var generatedClassName = _this2.generateAndInjectStyles(theme, _this2.props);\n\n _this2.setState({ theme: theme, generatedClassName: generatedClassName });\n });\n } else {\n // eslint-disable-next-line react/prop-types\n var theme = this.props.theme || {};\n var _generatedClassName = this.generateAndInjectStyles(theme, this.props);\n this.setState({ theme: theme, generatedClassName: _generatedClassName });\n }\n };\n\n BaseStyledComponent.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n // If this is a staticaly-styled component, we don't need to listen to\n // props changes to update styles\n var componentStyle = this.constructor.componentStyle;\n\n if (componentStyle.isStatic) {\n return;\n }\n\n this.setState(function (oldState) {\n var theme = determineTheme(nextProps, oldState.theme, _this3.constructor.defaultProps);\n var generatedClassName = _this3.generateAndInjectStyles(theme, nextProps);\n\n return { theme: theme, generatedClassName: generatedClassName };\n });\n };\n\n BaseStyledComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unsubscribeFromContext();\n };\n\n BaseStyledComponent.prototype.render = function render() {\n var _this4 = this;\n\n // eslint-disable-next-line react/prop-types\n var innerRef = this.props.innerRef;\n var generatedClassName = this.state.generatedClassName;\n var _constructor2 = this.constructor,\n styledComponentId = _constructor2.styledComponentId,\n target = _constructor2.target;\n\n\n var isTargetTag = isTag(target);\n\n var className = [\n // eslint-disable-next-line react/prop-types\n this.props.className, styledComponentId, this.attrs.className, generatedClassName].filter(Boolean).join(' ');\n\n var baseProps = _extends({}, this.attrs, {\n className: className\n });\n\n if (isStyledComponent(target)) {\n baseProps.innerRef = innerRef;\n } else {\n baseProps.ref = innerRef;\n }\n\n var propsForElement = Object.keys(this.props).reduce(function (acc, propName) {\n // Don't pass through non HTML tags through to HTML elements\n // always omit innerRef\n if (propName !== 'innerRef' && propName !== 'className' && (!isTargetTag || validAttr(propName))) {\n // eslint-disable-next-line no-param-reassign\n acc[propName] = _this4.props[propName];\n }\n\n return acc;\n }, baseProps);\n\n return createElement(target, propsForElement);\n };\n\n return BaseStyledComponent;\n }(Component);\n\n var createStyledComponent = function createStyledComponent(target, options, rules) {\n var _StyledComponent$cont;\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')' : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? BaseStyledComponent : _options$ParentCompon,\n extendingRules = options.rules,\n attrs = options.attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : componentId;\n\n var componentStyle = new ComponentStyle(extendingRules === undefined ? rules : extendingRules.concat(rules), attrs, styledComponentId);\n\n var StyledComponent = function (_ParentComponent) {\n inherits(StyledComponent, _ParentComponent);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n return possibleConstructorReturn(this, _ParentComponent.apply(this, arguments));\n }\n\n StyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n componentId: newComponentId,\n ParentComponent: StyledComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n createClass(StyledComponent, null, [{\n key: 'extend',\n get: function get$$1() {\n var rulesFromOptions = options.rules,\n parentComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['rules', 'componentId']);\n\n\n var newRules = rulesFromOptions === undefined ? rules : rulesFromOptions.concat(rules);\n\n var newOptions = _extends({}, optionsToCopy, {\n rules: newRules,\n parentComponentId: parentComponentId,\n ParentComponent: StyledComponent\n });\n\n return constructWithOptions(createStyledComponent, target, newOptions);\n }\n }]);\n return StyledComponent;\n }(ParentComponent);\n\n StyledComponent.contextTypes = (_StyledComponent$cont = {}, _StyledComponent$cont[CHANNEL] = PropTypes.func, _StyledComponent$cont[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _StyledComponent$cont[CONTEXT_KEY] = PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]), _StyledComponent$cont);\n StyledComponent.displayName = displayName;\n StyledComponent.styledComponentId = styledComponentId;\n StyledComponent.attrs = attrs;\n StyledComponent.componentStyle = componentStyle;\n StyledComponent.target = target;\n\n\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n return StyledComponent;\n };\n\n return createStyledComponent;\n});\n\n// murmurhash2 via https://gist.github.com/raycmorgan/588423\n\nfunction doHash(str, seed) {\n var m = 0x5bd1e995;\n var r = 24;\n var h = seed ^ str.length;\n var length = str.length;\n var currentIndex = 0;\n\n while (length >= 4) {\n var k = UInt32(str, currentIndex);\n\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n\n h = Umul32(h, m);\n h ^= k;\n\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n\n return h >>> 0;\n}\n\nfunction UInt32(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8) + (str.charCodeAt(pos++) << 16) + (str.charCodeAt(pos) << 24);\n}\n\nfunction UInt16(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n, m) {\n n = n | 0;\n m = m | 0;\n var nlo = n & 0xffff;\n var nhi = n >>> 16;\n var res = nlo * m + ((nhi * m & 0xffff) << 16) | 0;\n return res;\n}\n\n// \nvar isStaticRules = function isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule)) {\n return false;\n } else if (typeof rule === 'function' && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled copmonent\n return false;\n }\n }\n\n if (attrs !== undefined) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in attrs) {\n var value = attrs[key];\n if (typeof value === 'function') {\n return false;\n }\n }\n }\n\n return true;\n};\n\nvar isHRMEnabled = typeof module !== 'undefined' && module.hot && process.env.NODE_ENV !== 'production';\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\nvar _ComponentStyle = (function (nameGenerator, flatten, stringifyRules) {\n var ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = !isHRMEnabled && isStaticRules(rules, attrs);\n this.componentId = componentId;\n if (!StyleSheet.instance.hasInjectedComponent(this.componentId)) {\n var placeholder = process.env.NODE_ENV !== 'production' ? '.' + componentId + ' {}' : '';\n StyleSheet.instance.deferredInject(componentId, true, [placeholder]);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n lastClassName = this.lastClassName;\n\n if (isStatic && lastClassName !== undefined) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext);\n var hash = doHash(this.componentId + flatCSS.join(''));\n\n var stylesCacheable = styleSheet.stylesCacheable;\n\n var existingName = styleSheet.getName(hash);\n\n if (existingName !== undefined) {\n if (stylesCacheable) {\n this.lastClassName = existingName;\n }\n return existingName;\n }\n\n var name = nameGenerator(hash);\n if (stylesCacheable) {\n this.lastClassName = existingName;\n }\n if (styleSheet.alreadyInjected(hash, name)) {\n return name;\n }\n\n var css = stringifyRules(flatCSS, '.' + name);\n // NOTE: this can only be set when we inject the class-name.\n // For some reason, presumably due to how css is stringifyRules behaves in\n // differently between client and server, styles break.\n styleSheet.inject(this.componentId, true, css, hash, name);\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return nameGenerator(doHash(str));\n };\n\n return ComponentStyle;\n }();\n\n return ComponentStyle;\n});\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \nvar _styled = (function (styledComponent, constructWithOptions) {\n var styled = function styled(tag) {\n return constructWithOptions(styledComponent, tag);\n };\n\n // Shorthands for all valid HTML Elements\n domElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n });\n\n return styled;\n});\n\n// \nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nvar _keyframes = (function (nameGenerator, stringifyRules, css) {\n return function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var hash = doHash(replaceWhitespace(JSON.stringify(rules)));\n\n var existingName = StyleSheet.instance.getName(hash);\n if (existingName) return existingName;\n\n var name = nameGenerator(hash);\n if (StyleSheet.instance.alreadyInjected(hash, name)) return name;\n\n var generatedCSS = stringifyRules(rules, name, '@keyframes');\n StyleSheet.instance.inject('sc-keyframes-' + name, true, generatedCSS, hash, name);\n return name;\n };\n});\n\n// \nvar _injectGlobal = (function (stringifyRules, css) {\n var injectGlobal = function injectGlobal(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var hash = doHash(JSON.stringify(rules));\n\n var componentId = 'sc-global-' + hash;\n if (StyleSheet.instance.hasInjectedComponent(componentId)) return;\n\n StyleSheet.instance.inject(componentId, false, stringifyRules(rules));\n };\n\n return injectGlobal;\n});\n\n// \n\nvar _constructWithOptions = (function (css) {\n var constructWithOptions = function constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof tag !== 'string' && typeof tag !== 'function') {\n throw new Error(process.env.NODE_ENV !== 'production' ? 'Cannot create styled-component for component: ' + String(tag) : '');\n }\n\n /* This is callable directly as a template function */\n var templateFunction = function templateFunction(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return componentConstructor(tag, options, css.apply(undefined, [strings].concat(interpolations)));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: _extends({}, options.attrs || {}, attrs)\n }));\n };\n\n return templateFunction;\n };\n\n return constructWithOptions;\n});\n\n// \n/* globals ReactClass */\n\nvar wrapWithTheme = function wrapWithTheme(Component$$1) {\n var _WithTheme$contextTyp;\n\n var componentName = Component$$1.displayName || Component$$1.name || 'Component';\n var isStatelessFunctionalComponent = typeof Component$$1 === 'function' && !(Component$$1.prototype && 'isReactComponent' in Component$$1.prototype);\n\n // NOTE: We can't pass a ref to a stateless functional component\n var shouldSetInnerRef = isStyledComponent(Component$$1) || isStatelessFunctionalComponent;\n\n var WithTheme = function (_React$Component) {\n inherits(WithTheme, _React$Component);\n\n function WithTheme() {\n var _temp, _this, _ret;\n\n classCallCheck(this, WithTheme);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _this.unsubscribeId = -1, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // NOTE: This is so that isStyledComponent passes for the innerRef unwrapping\n\n\n WithTheme.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var defaultProps = this.constructor.defaultProps;\n\n var styledContext = this.context[CHANNEL_NEXT];\n var themeProp = determineTheme(this.props, undefined, defaultProps);\n if (styledContext === undefined && themeProp === undefined && process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps');\n } else if (styledContext === undefined && themeProp !== undefined) {\n this.setState({ theme: themeProp });\n } else {\n var subscribe = styledContext.subscribe;\n\n this.unsubscribeId = subscribe(function (nextTheme) {\n var theme = determineTheme(_this2.props, nextTheme, defaultProps);\n _this2.setState({ theme: theme });\n });\n }\n };\n\n WithTheme.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var defaultProps = this.constructor.defaultProps;\n\n this.setState(function (oldState) {\n var theme = determineTheme(nextProps, oldState.theme, defaultProps);\n\n return { theme: theme };\n });\n };\n\n WithTheme.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.unsubscribeId !== -1) {\n this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId);\n }\n };\n\n WithTheme.prototype.render = function render() {\n var props = _extends({\n theme: this.state.theme\n }, this.props);\n\n if (!shouldSetInnerRef) {\n props.ref = props.innerRef;\n delete props.innerRef;\n }\n\n return React.createElement(Component$$1, props);\n };\n\n return WithTheme;\n }(React.Component);\n\n WithTheme.displayName = 'WithTheme(' + componentName + ')';\n WithTheme.styledComponentId = 'withTheme';\n WithTheme.contextTypes = (_WithTheme$contextTyp = {}, _WithTheme$contextTyp[CHANNEL] = PropTypes.func, _WithTheme$contextTyp[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _WithTheme$contextTyp);\n\n\n return hoistStatics(WithTheme, Component$$1);\n};\n\n// \n\n/* Import singletons */\n/* Import singleton constructors */\n/* Import components */\n/* Import Higher Order Components */\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Instantiate singletons */\nvar ComponentStyle = _ComponentStyle(generateAlphabeticName, flatten, stringifyRules);\nvar constructWithOptions = _constructWithOptions(css);\nvar StyledComponent = _StyledComponent(ComponentStyle, constructWithOptions);\n\n/* Instantiate exported singletons */\nvar keyframes = _keyframes(generateAlphabeticName, stringifyRules, css);\nvar injectGlobal = _injectGlobal(stringifyRules, css);\nvar styled = _styled(StyledComponent, constructWithOptions);\n\n/* Export everything */\n\nexport { css, keyframes, injectGlobal, isStyledComponent, consolidateStreamedStyles, ThemeProvider, wrapWithTheme as withTheme, ServerStyleSheet, StyleSheetManager };\nexport default styled;\n//# sourceMappingURL=styled-components.browser.es.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/styled-components/dist/styled-components.browser.es.js\n// module id = 4\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/object-assign/index.js\n// module id = 5\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/fbjs/lib/invariant.js\n// module id = 6\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/classnames/index.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/fbjs/lib/emptyObject.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/fbjs/lib/warning.js\n// module id = 9\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/css-loader/lib/css-base.js\n// module id = 10\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of ';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.4.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n // $FlowFixMe\n if (el.isConnected === false) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(targetDocument, id) {\n return targetDocument.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(el.ownerDocument, id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(el.ownerDocument, id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.4.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCssArray = function objToCssArray(obj, prevKey) {\n var rules = [];\n var keys = Object.keys(obj);\n\n keys.forEach(function (key) {\n if (!isFalsish(obj[key])) {\n if (isPlainObject(obj[key])) {\n rules.push.apply(rules, objToCssArray(obj[key], key));\n\n return rules;\n } else if (isFunction(obj[key])) {\n rules.push(hyphenateStyleName(key) + ':', obj[key], ';');\n\n return rules;\n }\n rules.push(hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';');\n }\n return rules;\n });\n\n return prevKey ? [prevKey + ' {'].concat(rules, ['}']) : rules;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n/* eslint-disable no-bitwise */\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nvar charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nvar getAlphabeticChar = function getAlphabeticChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n};\n\n/* input a number, usually a hash and convert it to base-52 */\nfunction generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n /* get a char and divide by alphabet-length */\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return getAlphabeticChar(x % charsLength) + name;\n}\n\n// \n\nfunction hasFunctionObjectKey(obj) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in obj) {\n if (isFunction(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule, attrs)) {\n return false;\n } else if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n if (attrs.some(function (x) {\n return isFunction(x) || hasFunctionObjectKey(x);\n })) return false;\n\n return true;\n}\n\n// \n\n/* combines hashStr (murmurhash) and nameGenerator for convenience */\nvar hasher = function hasher(str) {\n return generateAlphabeticName(murmurhash(str));\n};\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\n\nvar ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = process.env.NODE_ENV === 'production' && isStaticRules(rules, attrs);\n this.componentId = componentId;\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n componentId = this.componentId,\n lastClassName = this.lastClassName;\n\n if (IS_BROWSER && isStatic && typeof lastClassName === 'string' && styleSheet.hasNameForId(componentId, lastClassName)) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var name = hasher(this.componentId + flatCSS.join(''));\n if (!styleSheet.hasNameForId(componentId, name)) {\n styleSheet.inject(this.componentId, stringifyRules(flatCSS, '.' + name, undefined, componentId), name);\n }\n\n this.lastClassName = name;\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return hasher(str);\n };\n\n return ComponentStyle;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs(props => ({\\n' + ' style: {\\n' + ' background: props.background,\\n' + ' },\\n' + ' }))`width: 100%;`\\n\\n' + ' ');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n this.props.children\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\nvar CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n /* The master sheet might be reset, so keep a reference here */\n this.masterSheet = StyleSheet.master;\n this.instance = this.masterSheet.clone();\n this.sealed = false;\n }\n\n /**\n * Mark the ServerStyleSheet as being fully emitted and manually GC it from the\n * StyleSheet singleton.\n */\n\n\n ServerStyleSheet.prototype.seal = function seal() {\n if (!this.sealed) {\n /* Remove sealed StyleSheets from the master sheet */\n var index = this.masterSheet.clones.indexOf(this.instance);\n this.masterSheet.clones.splice(index, 1);\n this.sealed = true;\n }\n };\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.sealed) {\n throw new StyledComponentsError(2);\n }\n\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n this.seal();\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n this.seal();\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.prototype.interleaveWithNodeStream = function interleaveWithNodeStream(readableStream) {\n var _this = this;\n\n {\n throw new StyledComponentsError(3);\n }\n\n /* the tag index keeps track of which tags have already been emitted */\n var instance = this.instance;\n\n var instanceTagIndex = 0;\n\n var streamAttr = SC_STREAM_ATTR + '=\"true\"';\n\n var transformer = new stream.Transform({\n transform: function appendStyleChunks(chunk, /* encoding */_, callback) {\n var tags = instance.tags;\n\n var html = '';\n\n /* retrieve html for each new style tag */\n for (; instanceTagIndex < tags.length; instanceTagIndex += 1) {\n var tag = tags[instanceTagIndex];\n html += tag.toHTML(streamAttr);\n }\n\n /* force our StyleSheets to emit entirely new tags */\n instance.sealAllTags();\n\n var renderedHtml = chunk.toString();\n\n /* prepend style html to chunk, unless the start of the chunk is a closing tag in which case append right after that */\n if (CLOSING_TAG_R.test(renderedHtml)) {\n var endOfClosingTag = renderedHtml.indexOf('>');\n\n this.push(renderedHtml.slice(0, endOfClosingTag + 1) + html + renderedHtml.slice(endOfClosingTag + 1));\n } else this.push(html + renderedHtml);\n\n callback();\n }\n });\n\n readableStream.on('end', function () {\n return _this.seal();\n });\n\n readableStream.on('error', function (err) {\n _this.seal();\n\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar StyleSheetContext = createContext();\nvar StyleSheetConsumer = StyleSheetContext.Consumer;\n\nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager(props) {\n classCallCheck(this, StyleSheetManager);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = memoize(_this.getContext);\n return _this;\n }\n\n StyleSheetManager.prototype.getContext = function getContext(sheet, target) {\n if (sheet) {\n return sheet;\n } else if (target) {\n return new StyleSheet(target);\n } else {\n throw new StyledComponentsError(4);\n }\n };\n\n StyleSheetManager.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n sheet = _props.sheet,\n target = _props.target;\n\n\n return React.createElement(\n StyleSheetContext.Provider,\n { value: this.getContext(sheet, target) },\n process.env.NODE_ENV !== 'production' ? React.Children.only(children) : children\n );\n };\n\n return StyleSheetManager;\n}(Component);\nprocess.env.NODE_ENV !== \"production\" ? StyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]),\n\n target: PropTypes.shape({\n appendChild: PropTypes.func.isRequired\n })\n} : void 0;\n\n// \n\nvar THEME_PROP_REGEX = /\\.theme[.[]/;\nvar identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(_ComponentStyle, _displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n /**\n * This ensures uniqueness if two components happen to share\n * the same displayName.\n */\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n var componentId = displayName + '-' + _ComponentStyle.generateName(displayName + nr);\n\n return parentComponentId ? parentComponentId + '-' + componentId : componentId;\n}\n\n// $FlowFixMe\n\nvar StyledComponent = function (_Component) {\n inherits(StyledComponent, _Component);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.attrs = {};\n\n _this.renderOuter = _this.renderOuter.bind(_this);\n _this.renderInner = _this.renderInner.bind(_this);\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".', '\\n ' + new Error().stack)\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledComponent.prototype.render = function render() {\n return React.createElement(\n StyleSheetConsumer,\n null,\n this.renderOuter\n );\n };\n\n StyledComponent.prototype.renderOuter = function renderOuter() {\n var styleSheet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : StyleSheet.master;\n\n this.styleSheet = styleSheet;\n\n // No need to subscribe a static component to theme changes, it won't change anything\n if (this.props.forwardedComponent.componentStyle.isStatic) return this.renderInner();\n\n return React.createElement(\n ThemeConsumer,\n null,\n this.renderInner\n );\n };\n\n StyledComponent.prototype.renderInner = function renderInner(theme) {\n var _props$forwardedCompo = this.props.forwardedComponent,\n componentStyle = _props$forwardedCompo.componentStyle,\n defaultProps = _props$forwardedCompo.defaultProps,\n displayName = _props$forwardedCompo.displayName,\n foldedComponentIds = _props$forwardedCompo.foldedComponentIds,\n styledComponentId = _props$forwardedCompo.styledComponentId,\n target = _props$forwardedCompo.target,\n usesTheme = _props$forwardedCompo.usesTheme;\n\n\n var generatedClassName = void 0;\n var rawTheme = void 0;\n\n if (componentStyle.isStatic) {\n generatedClassName = this.generateAndInjectStyles(EMPTY_OBJECT, this.props);\n } else {\n rawTheme = determineTheme(this.props, theme, defaultProps);\n generatedClassName = this.generateAndInjectStyles(rawTheme || EMPTY_OBJECT, this.props);\n\n if (process.env.NODE_ENV !== 'production' && usesTheme && !rawTheme) {\n console.error('Component \\'' +\n // $FlowFixMe\n displayName + '\\' (.' + styledComponentId + ') references the \\'theme\\' prop in its styles but no theme was provided via prop or .');\n }\n }\n\n var elementToBeCreated = this.props.as || this.attrs.as || target;\n var isTargetTag = isTag(elementToBeCreated);\n\n var propsForElement = {};\n var computedProps = _extends({}, this.props, this.attrs);\n\n var key = void 0;\n // eslint-disable-next-line guard-for-in\n for (key in computedProps) {\n if (process.env.NODE_ENV !== 'production' && key === 'innerRef' && isTargetTag) {\n this.warnInnerRef(displayName);\n }\n\n if (key === 'forwardedComponent' || key === 'as') {\n continue;\n } else if (key === 'forwardedRef') propsForElement.ref = computedProps[key];else if (key === 'forwardedAs') propsForElement.as = computedProps[key];else if (!isTargetTag || validAttr(key)) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (this.props.style && this.attrs.style) {\n propsForElement.style = _extends({}, this.attrs.style, this.props.style);\n }\n\n propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, this.props.className, this.attrs.className).filter(Boolean).join(' ');\n\n return createElement(elementToBeCreated, propsForElement);\n };\n\n StyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this2 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this2.warnAttrsFnObjectKeyDeprecated(key, props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this2.warnNonStyledComponentAttrsObjectKey(key, props.forwardedComponent.displayName);\n }\n }\n }\n\n _this2.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _props$forwardedCompo2 = props.forwardedComponent,\n attrs = _props$forwardedCompo2.attrs,\n componentStyle = _props$forwardedCompo2.componentStyle,\n warnTooManyClasses = _props$forwardedCompo2.warnTooManyClasses;\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n\n if (componentStyle.isStatic && !attrs.length) {\n return componentStyle.generateAndInjectStyles(EMPTY_OBJECT, this.styleSheet);\n }\n\n var className = componentStyle.generateAndInjectStyles(this.buildExecutionContext(theme, props, attrs), this.styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses) warnTooManyClasses(className);\n\n return className;\n };\n\n return StyledComponent;\n}(Component);\n\nfunction createStyledComponent(target, options, rules) {\n var isTargetStyledComp = isStyledComponent(target);\n var isClass = !isTag(target);\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(ComponentStyle, options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledComponent : _options$ParentCompon,\n _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n var componentStyle = new ComponentStyle(isTargetStyledComp ? // fold the underlying StyledComponent rules up (implicit extend)\n // $FlowFixMe\n target.componentStyle.rules.concat(rules) : rules, finalAttrs, styledComponentId);\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n var WrappedStyledComponent = void 0;\n var forwardRef = function forwardRef(props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, { forwardedComponent: WrappedStyledComponent, forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n WrappedStyledComponent = React.forwardRef(forwardRef);\n WrappedStyledComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledComponent.attrs = finalAttrs;\n // $FlowFixMe\n WrappedStyledComponent.componentStyle = componentStyle;\n\n // $FlowFixMe\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp ? // $FlowFixMe\n Array.prototype.concat(target.foldedComponentIds, target.styledComponentId) : EMPTY_ARRAY;\n\n // $FlowFixMe\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n // $FlowFixMe\n WrappedStyledComponent.target = isTargetStyledComp ? target.target : target;\n\n // $FlowFixMe\n WrappedStyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n componentId: newComponentId,\n ParentComponent: ParentComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n // $FlowFixMe\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get: function get$$1() {\n return this._foldedDefaultProps;\n },\n set: function set$$1(obj) {\n // $FlowFixMe\n this._foldedDefaultProps = isTargetStyledComp ? merge(target.defaultProps, obj) : obj;\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n WrappedStyledComponent.usesTheme = componentStyle.rules.some(function (x) {\n return isFunction(x) && THEME_PROP_REGEX.test(x.toString());\n });\n\n // $FlowFixMe\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n // $FlowFixMe\n WrappedStyledComponent.toString = function () {\n return '.' + WrappedStyledComponent.styledComponentId;\n };\n\n if (isClass) {\n hoistNonReactStatics(WrappedStyledComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledComponent;\n}\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'marker', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar styled = function styled(tag) {\n return constructWithOptions(createStyledComponent, tag);\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n});\n\n// \n\nvar GlobalStyle = function () {\n function GlobalStyle(rules, componentId) {\n classCallCheck(this, GlobalStyle);\n\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules, EMPTY_ARRAY);\n\n if (!StyleSheet.master.hasId(componentId)) {\n StyleSheet.master.deferredInject(componentId, []);\n }\n }\n\n GlobalStyle.prototype.createStyles = function createStyles(executionContext, styleSheet) {\n var flatCSS = flatten(this.rules, executionContext, styleSheet);\n var css = stringifyRules(flatCSS, '');\n\n styleSheet.inject(this.componentId, css);\n };\n\n GlobalStyle.prototype.removeStyles = function removeStyles(styleSheet) {\n var componentId = this.componentId;\n\n if (styleSheet.hasId(componentId)) {\n styleSheet.remove(componentId);\n }\n };\n\n // TODO: overwrite in-place instead of remove+create?\n\n\n GlobalStyle.prototype.renderStyles = function renderStyles(executionContext, styleSheet) {\n this.removeStyles(styleSheet);\n this.createStyles(executionContext, styleSheet);\n };\n\n return GlobalStyle;\n}();\n\n// \n\n// place our cache into shared context so it'll persist between HMRs\nif (IS_BROWSER) {\n window.scCGSHMRCache = {};\n}\n\nfunction createGlobalStyle(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var id = 'sc-global-' + murmurhash(JSON.stringify(rules));\n var style = new GlobalStyle(rules, id);\n\n var GlobalStyleComponent = function (_React$Component) {\n inherits(GlobalStyleComponent, _React$Component);\n\n function GlobalStyleComponent(props) {\n classCallCheck(this, GlobalStyleComponent);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n var _this$constructor = _this.constructor,\n globalStyle = _this$constructor.globalStyle,\n styledComponentId = _this$constructor.styledComponentId;\n\n\n if (IS_BROWSER) {\n window.scCGSHMRCache[styledComponentId] = (window.scCGSHMRCache[styledComponentId] || 0) + 1;\n }\n\n /**\n * This fixes HMR compatibility. Don't ask me why, but this combination of\n * caching the closure variables via statics and then persisting the statics in\n * state works across HMR where no other combination did. ¯\\_(ツ)_/¯\n */\n _this.state = {\n globalStyle: globalStyle,\n styledComponentId: styledComponentId\n };\n return _this;\n }\n\n GlobalStyleComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n if (window.scCGSHMRCache[this.state.styledComponentId]) {\n window.scCGSHMRCache[this.state.styledComponentId] -= 1;\n }\n /**\n * Depending on the order \"render\" is called this can cause the styles to be lost\n * until the next render pass of the remaining instance, which may\n * not be immediate.\n */\n if (window.scCGSHMRCache[this.state.styledComponentId] === 0) {\n this.state.globalStyle.removeStyles(this.styleSheet);\n }\n };\n\n GlobalStyleComponent.prototype.render = function render() {\n var _this2 = this;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(this.props.children)) {\n // eslint-disable-next-line no-console\n console.warn('The global style component ' + this.state.styledComponentId + ' was given child JSX. createGlobalStyle does not render children.');\n }\n\n return React.createElement(\n StyleSheetConsumer,\n null,\n function (styleSheet) {\n _this2.styleSheet = styleSheet || StyleSheet.master;\n\n var globalStyle = _this2.state.globalStyle;\n\n\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(STATIC_EXECUTION_CONTEXT, _this2.styleSheet);\n\n return null;\n } else {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = _this2.constructor.defaultProps;\n\n\n var context = _extends({}, _this2.props);\n\n if (typeof theme !== 'undefined') {\n context.theme = determineTheme(_this2.props, theme, defaultProps);\n }\n\n globalStyle.renderStyles(context, _this2.styleSheet);\n\n return null;\n }\n );\n }\n }\n );\n };\n\n return GlobalStyleComponent;\n }(React.Component);\n\n GlobalStyleComponent.globalStyle = style;\n GlobalStyleComponent.styledComponentId = id;\n\n\n return GlobalStyleComponent;\n}\n\n// \n\nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nfunction keyframes(strings) {\n /* Warning if you've used keyframes on React Native */\n if (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn('`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.');\n }\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n\n var name = generateAlphabeticName(murmurhash(replaceWhitespace(JSON.stringify(rules))));\n\n return new Keyframes(name, stringifyRules(rules, name, '@keyframes'));\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\n/* eslint-disable */\nvar __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS = {\n StyleSheet: StyleSheet\n};\n\n// \n\n/* Warning if you've imported this file on React Native */\nif (process.env.NODE_ENV !== 'production' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like you've imported 'styled-components' on React Native.\\n\" + \"Perhaps you're looking to import 'styled-components/native'?\\n\" + 'Read more about this at https://www.styled-components.com/docs/basics#react-native');\n}\n\n/* Warning if there are several instances of styled-components */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Node.js') === -1 && navigator.userAgent.indexOf('jsdom') === -1) {\n window['__styled-components-init__'] = window['__styled-components-init__'] || 0;\n\n if (window['__styled-components-init__'] === 1) {\n // eslint-disable-next-line no-console\n console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. \" + 'This may cause dynamic styles not rendering properly, errors happening during rehydration process ' + 'and makes your application bigger without a good reason.\\n\\n' + 'See https://s-c.sh/2BAXzed for more info.');\n }\n\n window['__styled-components-init__'] += 1;\n}\n\n//\n\nexport default styled;\nexport { createGlobalStyle, css, isStyledComponent, keyframes, ServerStyleSheet, StyleSheetConsumer, StyleSheetContext, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, withTheme, __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS };\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*! react-dropdown v1.3.0 | (c) 2018 Trend Micro Inc. | MIT | https://github.com/trendmicro-frontend/react-dropdown */\nmodule.exports =\n/******/ (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// 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 = 16);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"prop-types\");\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"classnames\");\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"dropdown\":\"dropdown---dropdown---1yvIZ\",\"dropdown-toggle\":\"dropdown---dropdown-toggle---vMtjL\",\"dropdownToggle\":\"dropdown---dropdown-toggle---vMtjL\",\"caret\":\"dropdown---caret---3CkEt\",\"dropup\":\"dropdown---dropup---30DnN\",\"btn-link\":\"dropdown---btn-link---1xwS4\",\"btnLink\":\"dropdown---btn-link---1xwS4\",\"empty\":\"dropdown---empty---zMmdA\",\"dropdown-menu\":\"dropdown---dropdown-menu---1fkH0\",\"dropdownMenu\":\"dropdown---dropdown-menu---1fkH0\",\"pull-right\":\"dropdown---pull-right---2juGH\",\"pullRight\":\"dropdown---pull-right---2juGH\",\"header\":\"dropdown---header---3pfXo\",\"divider\":\"dropdown---divider---13uxG\",\"menu-item-wrapper\":\"dropdown---menu-item-wrapper---3uAM0\",\"menuItemWrapper\":\"dropdown---menu-item-wrapper---3uAM0\",\"menu-item\":\"dropdown---menu-item---1LjoL\",\"menuItem\":\"dropdown---menu-item---1LjoL\",\"dropdown-submenu\":\"dropdown---dropdown-submenu---11C1M\",\"dropdownSubmenu\":\"dropdown---dropdown-submenu---11C1M\",\"disabled\":\"dropdown---disabled---eCY9b\",\"selected\":\"dropdown---selected---1EK3y\",\"active\":\"dropdown---active---2-a32\",\"open\":\"dropdown---open---1ju75\",\"dropdown-menu-wrapper\":\"dropdown---dropdown-menu-wrapper---3gX-X\",\"dropdownMenuWrapper\":\"dropdown---dropdown-menu-wrapper---3gX-X\",\"pull-left\":\"dropdown---pull-left---176QY\",\"pullLeft\":\"dropdown---pull-left---176QY\"};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"chained-function\");\n\n/***/ }),\n/* 5 */\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 _class, _temp2;\n\nvar _chainedFunction = __webpack_require__(4);\n\nvar _chainedFunction2 = _interopRequireDefault(_chainedFunction);\n\nvar _classnames = __webpack_require__(2);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(7);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _MenuItem = __webpack_require__(14);\n\nvar _MenuItem2 = _interopRequireDefault(_MenuItem);\n\nvar _RootCloseWrapper = __webpack_require__(15);\n\nvar _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);\n\nvar _matchComponent = __webpack_require__(6);\n\nvar _matchComponent2 = _interopRequireDefault(_matchComponent);\n\nvar _index = __webpack_require__(3);\n\nvar _index2 = _interopRequireDefault(_index);\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 DropdownMenu = (_temp2 = _class = function (_PureComponent) {\n _inherits(DropdownMenu, _PureComponent);\n\n function DropdownMenu() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, DropdownMenu);\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, _PureComponent.call.apply(_PureComponent, [this].concat(args))), _this), _this.isMenuItem = (0, _matchComponent2.default)(_MenuItem2.default), _this.handleKeyDown = function (event) {\n if (event.keyCode === 40) {\n // Down\n _this.focusNext();\n event.preventDefault();\n return;\n }\n\n if (event.keyCode === 38) {\n // up\n _this.focusPrevious();\n event.preventDefault();\n return;\n }\n\n if (event.keyCode === 27 || event.keyCode === 9) {\n // esc or tab\n _this.props.onClose(event);\n return;\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n DropdownMenu.prototype.getItemsAndActiveIndex = function getItemsAndActiveIndex() {\n var items = this.getFocusableMenuItems();\n var activeIndex = items.indexOf(document.activeElement);\n\n return { items: items, activeIndex: activeIndex };\n };\n\n DropdownMenu.prototype.getFocusableMenuItems = function getFocusableMenuItems() {\n var node = _reactDom2.default.findDOMNode(this);\n if (!node) {\n return [];\n }\n\n return Array.from(node.querySelectorAll('[tabIndex=\"-1\"]:not([disabled])'));\n };\n\n DropdownMenu.prototype.focusNext = function focusNext() {\n var _getItemsAndActiveInd = this.getItemsAndActiveIndex(),\n items = _getItemsAndActiveInd.items,\n activeIndex = _getItemsAndActiveInd.activeIndex;\n\n if (items.length === 0) {\n return;\n }\n\n var nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n items[nextIndex].focus();\n };\n\n DropdownMenu.prototype.focusPrevious = function focusPrevious() {\n var _getItemsAndActiveInd2 = this.getItemsAndActiveIndex(),\n items = _getItemsAndActiveInd2.items,\n activeIndex = _getItemsAndActiveInd2.activeIndex;\n\n if (items.length === 0) {\n return;\n }\n\n var prevIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n items[prevIndex].focus();\n };\n\n DropdownMenu.prototype.render = function render() {\n var _this2 = this,\n _cx;\n\n var _props = this.props,\n componentType = _props.componentType,\n Component = _props.componentClass,\n open = _props.open,\n pullRight = _props.pullRight,\n onClose = _props.onClose,\n onSelect = _props.onSelect,\n rootCloseEvent = _props.rootCloseEvent,\n className = _props.className,\n _props$style = _props.style,\n style = _props$style === undefined ? {} : _props$style,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['componentType', 'componentClass', 'open', 'pullRight', 'onClose', 'onSelect', 'rootCloseEvent', 'className', 'style', 'children']);\n\n var activeMenuItems = _react2.default.Children.toArray(children).filter(function (child) {\n return _react2.default.isValidElement(child) && _this2.isMenuItem(child) && child.props.active;\n });\n\n return _react2.default.createElement(\n _RootCloseWrapper2.default,\n {\n disabled: !open,\n onRootClose: onClose,\n event: rootCloseEvent\n },\n _react2.default.createElement(\n Component,\n _extends({}, props, {\n role: 'menu',\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[_index2.default.dropdownMenu] = true, _cx[_index2.default.selected] = activeMenuItems.length > 0, _cx[_index2.default.pullRight] = !!pullRight, _cx)),\n style: style\n }),\n _react2.default.Children.map(children, function (child) {\n if (_react2.default.isValidElement(child) && _this2.isMenuItem(child)) {\n return (0, _react.cloneElement)(child, {\n onKeyDown: (0, _chainedFunction2.default)(child.props.onKeyDown, _this2.handleKeyDown),\n onSelect: (0, _chainedFunction2.default)(child.props.onSelect, onSelect)\n });\n }\n\n return child;\n })\n )\n );\n };\n\n return DropdownMenu;\n}(_react.PureComponent), _class.propTypes = {\n componentType: _propTypes2.default.any,\n\n // A custom element for this component.\n componentClass: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\n // Dropdown\n open: _propTypes2.default.bool,\n pullRight: _propTypes2.default.bool,\n onClose: _propTypes2.default.func,\n onSelect: _propTypes2.default.func,\n rootCloseEvent: _propTypes2.default.oneOf(['click', 'mousedown'])\n}, _class.defaultProps = {\n componentClass: 'div'\n}, _temp2);\n\n// For component matching\n\nDropdownMenu.defaultProps.componentType = DropdownMenu;\n\nexports.default = DropdownMenu;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar matchComponent = function matchComponent(Component) {\n return function (c) {\n // React Component\n if (c.type === Component) {\n return true;\n }\n\n // Matching componentType\n if (c.props && c.props.componentType === Component) {\n return true;\n }\n\n return false;\n };\n};\n\nexports.default = matchComponent;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"react-dom\");\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"@trendmicro/react-buttons\");\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _class, _temp2;\n\nvar _chainedFunction = __webpack_require__(4);\n\nvar _chainedFunction2 = _interopRequireDefault(_chainedFunction);\n\nvar _classnames = __webpack_require__(2);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _activeElement = __webpack_require__(17);\n\nvar _activeElement2 = _interopRequireDefault(_activeElement);\n\nvar _contains = __webpack_require__(10);\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(7);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _uncontrollable = __webpack_require__(18);\n\nvar _uncontrollable2 = _interopRequireDefault(_uncontrollable);\n\nvar _warning = __webpack_require__(11);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _reactButtons = __webpack_require__(8);\n\nvar _DropdownToggle = __webpack_require__(12);\n\nvar _DropdownToggle2 = _interopRequireDefault(_DropdownToggle);\n\nvar _DropdownMenuWrapper = __webpack_require__(13);\n\nvar _DropdownMenuWrapper2 = _interopRequireDefault(_DropdownMenuWrapper);\n\nvar _DropdownMenu = __webpack_require__(5);\n\nvar _DropdownMenu2 = _interopRequireDefault(_DropdownMenu);\n\nvar _matchComponent = __webpack_require__(6);\n\nvar _matchComponent2 = _interopRequireDefault(_matchComponent);\n\nvar _index = __webpack_require__(3);\n\nvar _index2 = _interopRequireDefault(_index);\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 Dropdown = (_temp2 = _class = function (_PureComponent) {\n _inherits(Dropdown, _PureComponent);\n\n function Dropdown() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Dropdown);\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, _PureComponent.call.apply(_PureComponent, [this].concat(args))), _this), _this.menu = null, _this.toggle = null, _this._focusInDropdown = false, _this.lastOpenEventType = null, _this.isDropdownToggle = (0, _matchComponent2.default)(_DropdownToggle2.default), _this.isDropdownMenu = (0, _matchComponent2.default)(_DropdownMenu2.default), _this.isDropdownMenuWrapper = (0, _matchComponent2.default)(_DropdownMenuWrapper2.default), _this.handleToggleClick = function (event) {\n if (_this.props.disabled) {\n return;\n }\n\n _this.toggleDropdown('click');\n }, _this.handleToggleKeyDown = function (event) {\n if (_this.props.disabled) {\n return;\n }\n\n if (event.keyCode === 38) {\n // up\n if (!_this.props.open) {\n _this.toggleDropdown('keyup');\n } else if (_this.menu.focusPrevious) {\n _this.menu.focusPrevious();\n }\n event.preventDefault();\n return;\n }\n\n if (event.keyCode === 40) {\n // down\n if (!_this.props.open) {\n _this.toggleDropdown('keydown');\n } else if (_this.menu.focusNext) {\n _this.menu.focusNext();\n }\n event.preventDefault();\n return;\n }\n\n if (event.keyCode === 27 || event.keyCode === 9) {\n // esc or tab\n _this.closeDropdown();\n return;\n }\n }, _this.handleMouseEnter = function (event) {\n var _this$props = _this.props,\n autoOpen = _this$props.autoOpen,\n onToggle = _this$props.onToggle;\n\n\n if (autoOpen && typeof onToggle === 'function') {\n onToggle(true);\n }\n }, _this.handleMouseLeave = function (event) {\n var _this$props2 = _this.props,\n autoOpen = _this$props2.autoOpen,\n onToggle = _this$props2.onToggle;\n\n\n if (autoOpen && typeof onToggle === 'function') {\n onToggle(false);\n }\n }, _this.closeDropdown = function () {\n var _this$props3 = _this.props,\n open = _this$props3.open,\n autoOpen = _this$props3.autoOpen,\n onToggle = _this$props3.onToggle;\n\n\n if (open) {\n _this.toggleDropdown(null);\n return;\n }\n\n if (autoOpen && typeof onToggle === 'function') {\n onToggle(false);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n } // this.menu = c} />\n // this.toggle = c} />\n\n\n Dropdown.prototype.componentDidMount = function componentDidMount() {\n this.focusOnOpen();\n };\n\n Dropdown.prototype.componentWillUpdate = function componentWillUpdate(nextProps) {\n if (!nextProps.open && this.props.open) {\n this._focusInDropdown = this.menu && (0, _contains2.default)(_reactDom2.default.findDOMNode(this.menu), (0, _activeElement2.default)(document));\n }\n };\n\n Dropdown.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var open = this.props.open;\n\n var prevOpen = prevProps.open;\n\n if (open && !prevOpen) {\n this.focusOnOpen();\n }\n\n if (!open && prevOpen) {\n // if focus hasn't already moved from the menu lets return it to the toggle\n if (this._focusInDropdown) {\n this._focusInDropdown = false;\n this.focus();\n }\n }\n };\n\n Dropdown.prototype.toggleDropdown = function toggleDropdown(eventType) {\n var _props = this.props,\n open = _props.open,\n onToggle = _props.onToggle;\n\n var shouldOpen = !open;\n\n if (shouldOpen) {\n this.lastOpenEventType = eventType;\n }\n\n if (typeof onToggle === 'function') {\n onToggle(shouldOpen);\n }\n };\n\n Dropdown.prototype.focusOnOpen = function focusOnOpen() {\n var menu = this.menu;\n\n if (this.lastOpenEventType === 'keydown' || this.props.role === 'menuitem') {\n menu.focusNext && menu.focusNext();\n return;\n }\n\n if (this.lastOpenEventType === 'keyup') {\n menu.focusPrevious && menu.focusPrevious();\n return;\n }\n };\n\n Dropdown.prototype.focus = function focus() {\n var toggle = _reactDom2.default.findDOMNode(this.toggle);\n\n if (toggle && toggle.focus) {\n toggle.focus();\n }\n };\n\n Dropdown.prototype.renderToggle = function renderToggle(child, props) {\n var _this2 = this;\n\n var ref = function ref(c) {\n _this2.toggle = c;\n };\n\n if (typeof child.ref === 'string') {\n (0, _warning2.default)(false, 'String refs are not supported on `` components. ' + 'To apply a ref to the component use the callback signature:\\n\\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n } else {\n ref = (0, _chainedFunction2.default)(child.ref, ref);\n }\n\n return (0, _react.cloneElement)(child, _extends({}, props, {\n ref: ref,\n onClick: (0, _chainedFunction2.default)(child.props.onClick, this.handleToggleClick),\n onKeyDown: (0, _chainedFunction2.default)(child.props.onKeyDown, this.handleToggleKeyDown)\n }));\n };\n\n Dropdown.prototype.renderMenu = function renderMenu(child, _ref) {\n var _this3 = this;\n\n var id = _ref.id,\n onClose = _ref.onClose,\n onSelect = _ref.onSelect,\n rootCloseEvent = _ref.rootCloseEvent,\n props = _objectWithoutProperties(_ref, ['id', 'onClose', 'onSelect', 'rootCloseEvent']);\n\n var ref = function ref(c) {\n _this3.menu = c;\n };\n\n if (typeof child.ref === 'string') {\n (0, _warning2.default)(false, 'String refs are not supported on `` components. ' + 'To apply a ref to the component use the callback signature:\\n\\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n } else {\n ref = (0, _chainedFunction2.default)(child.ref, ref);\n }\n\n return (0, _react.cloneElement)(child, _extends({}, props, {\n ref: ref,\n onClose: (0, _chainedFunction2.default)(child.props.onClose, onClose, this.closeDropdown),\n onSelect: (0, _chainedFunction2.default)(child.props.onSelect, onSelect, this.closeDropdown),\n rootCloseEvent: rootCloseEvent\n }));\n };\n\n Dropdown.prototype.render = function render() {\n var _cx,\n _this4 = this;\n\n var _props2 = this.props,\n componentType = _props2.componentType,\n Component = _props2.componentClass,\n dropup = _props2.dropup,\n disabled = _props2.disabled,\n pullRight = _props2.pullRight,\n open = _props2.open,\n autoOpen = _props2.autoOpen,\n onClose = _props2.onClose,\n onSelect = _props2.onSelect,\n className = _props2.className,\n rootCloseEvent = _props2.rootCloseEvent,\n onMouseEnter = _props2.onMouseEnter,\n onMouseLeave = _props2.onMouseLeave,\n onToggle = _props2.onToggle,\n children = _props2.children,\n props = _objectWithoutProperties(_props2, ['componentType', 'componentClass', 'dropup', 'disabled', 'pullRight', 'open', 'autoOpen', 'onClose', 'onSelect', 'className', 'rootCloseEvent', 'onMouseEnter', 'onMouseLeave', 'onToggle', 'children']);\n\n if (Component === _reactButtons.ButtonGroup) {\n props.dropdownOpen = open;\n }\n\n return _react2.default.createElement(\n Component,\n _extends({}, props, {\n onMouseEnter: (0, _chainedFunction2.default)(onMouseEnter, this.handleMouseEnter),\n onMouseLeave: (0, _chainedFunction2.default)(onMouseLeave, this.handleMouseLeave),\n className: (0, _classnames2.default)(className, _index2.default.dropdown, (_cx = {}, _cx[_index2.default.open] = open, _cx[_index2.default.disabled] = disabled, _cx[_index2.default.dropup] = dropup, _cx))\n }),\n _react2.default.Children.map(children, function (child) {\n if (!_react2.default.isValidElement(child)) {\n return child;\n }\n\n if (_this4.isDropdownToggle(child)) {\n return _this4.renderToggle(child, {\n disabled: disabled, open: open\n });\n }\n\n if (_this4.isDropdownMenu(child) || _this4.isDropdownMenuWrapper(child)) {\n return _this4.renderMenu(child, {\n open: open,\n pullRight: pullRight,\n onClose: onClose,\n onSelect: onSelect,\n rootCloseEvent: rootCloseEvent\n });\n }\n\n return child;\n })\n );\n };\n\n return Dropdown;\n}(_react.PureComponent), _class.propTypes = {\n componentType: _propTypes2.default.any,\n\n // A custom element for this component.\n componentClass: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\n // The menu will open above the dropdown button, instead of below it.\n dropup: _propTypes2.default.bool,\n\n // Whether or not component is disabled.\n disabled: _propTypes2.default.bool,\n\n // Whether or not the dropdown is visible.\n open: _propTypes2.default.bool,\n\n // Whether to open the dropdown on mouse over.\n autoOpen: _propTypes2.default.bool,\n\n // Align the menu to the right side of the dropdown toggle.\n pullRight: _propTypes2.default.bool,\n\n // A callback fired when the dropdown closes.\n onClose: _propTypes2.default.func,\n\n // A callback fired when the dropdown wishes to change visibility. Called with the requested\n // `open` value.\n //\n // ```js\n // function(Boolean isOpen) {}\n // ```\n onToggle: _propTypes2.default.func,\n\n // A callback fired when a menu item is selected.\n //\n // ```js\n // (eventKey: any, event: Object) => any\n // ```\n onSelect: _propTypes2.default.func,\n\n // If `'menuitem'`, causes the dropdown to behave like a menu item rather than a menu button.\n role: _propTypes2.default.string,\n\n // Which event when fired outside the component will cause it to be closed.\n rootCloseEvent: _propTypes2.default.oneOf(['click', 'mousedown']),\n\n onMouseEnter: _propTypes2.default.func,\n onMouseLeave: _propTypes2.default.func\n}, _class.defaultProps = {\n componentClass: _reactButtons.ButtonGroup,\n dropup: false,\n disabled: false,\n pullRight: false,\n open: false\n}, _temp2);\n\n// For component matching\n\nDropdown.defaultProps.componentType = Dropdown;\n\nvar UncontrollableDropdown = (0, _uncontrollable2.default)(Dropdown, {\n // Define the pairs of prop/handlers you want to be uncontrollable\n open: 'onToggle'\n});\n\nUncontrollableDropdown.Toggle = _DropdownToggle2.default;\nUncontrollableDropdown.Menu = _DropdownMenu2.default;\nUncontrollableDropdown.MenuWrapper = _DropdownMenuWrapper2.default;\n\nexports.default = UncontrollableDropdown;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"dom-helpers/query/contains\");\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"warning\");\n\n/***/ }),\n/* 12 */\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 _class, _temp;\n\nvar _classnames = __webpack_require__(2);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactButtons = __webpack_require__(8);\n\nvar _index = __webpack_require__(3);\n\nvar _index2 = _interopRequireDefault(_index);\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 DropdownToggle = (_temp = _class = function (_PureComponent) {\n _inherits(DropdownToggle, _PureComponent);\n\n function DropdownToggle() {\n _classCallCheck(this, DropdownToggle);\n\n return _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n }\n\n DropdownToggle.prototype.render = function render() {\n var _cx;\n\n var _props = this.props,\n componentType = _props.componentType,\n Component = _props.componentClass,\n noCaret = _props.noCaret,\n open = _props.open,\n className = _props.className,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['componentType', 'componentClass', 'noCaret', 'open', 'className', 'children']);\n\n if (Component === _reactButtons.Button) {\n props.btnStyle = props.btnStyle || 'flat';\n props.btnSize = props.btnSize || _reactButtons.Button.defaultProps.btnSize;\n props.dropdownToggle = true;\n }\n\n var useCaret = !noCaret;\n var empty = !children && !props.title;\n\n return _react2.default.createElement(\n Component,\n _extends({}, props, {\n 'aria-haspopup': true,\n 'aria-expanded': open,\n role: 'button',\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[_index2.default.dropdownToggle] = true, _cx[_index2.default.btnLink] = props.btnStyle === 'link', _cx[_index2.default.btnLg] = props.btnSize === 'lg' || props.btnSize === 'large', _cx[_index2.default.btnMd] = props.btnSize === 'md' || props.btnSize === 'medium', _cx[_index2.default.btnSm] = props.btnSize === 'sm' || props.btnSize === 'small', _cx[_index2.default.btnXs] = props.btnSize === 'xs' || props.btnSize === 'extra-small', _cx[_index2.default.empty] = empty, _cx))\n }),\n children || props.title,\n useCaret && _react2.default.createElement('span', { className: _index2.default.caret })\n );\n };\n\n return DropdownToggle;\n}(_react.PureComponent), _class.propTypes = {\n componentType: _propTypes2.default.any,\n\n // A custom element for this component.\n componentClass: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\n // One of: 'lg', 'md', 'sm', 'xs'\n btnSize: _reactButtons.Button.propTypes.btnSize,\n\n // One of: 'default', 'primary', 'emphasis', 'flat', 'link'\n btnStyle: _reactButtons.Button.propTypes.btnStyle,\n\n // Whether to prevent a caret from being rendered next to the title.\n noCaret: _propTypes2.default.bool,\n\n // Title content.\n title: _propTypes2.default.string,\n\n // Dropdown\n disabled: _propTypes2.default.bool,\n open: _propTypes2.default.bool\n}, _class.defaultProps = {\n componentClass: _reactButtons.Button,\n noCaret: false,\n\n // Dropdown\n disabled: false,\n open: false\n}, _temp);\n\n// For component matching\n\nDropdownToggle.defaultProps.componentType = DropdownToggle;\n\nexports.default = DropdownToggle;\n\n/***/ }),\n/* 13 */\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 _class, _temp2;\n\nvar _chainedFunction = __webpack_require__(4);\n\nvar _chainedFunction2 = _interopRequireDefault(_chainedFunction);\n\nvar _classnames = __webpack_require__(2);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _warning = __webpack_require__(11);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _DropdownMenu = __webpack_require__(5);\n\nvar _DropdownMenu2 = _interopRequireDefault(_DropdownMenu);\n\nvar _RootCloseWrapper = __webpack_require__(15);\n\nvar _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);\n\nvar _matchComponent = __webpack_require__(6);\n\nvar _matchComponent2 = _interopRequireDefault(_matchComponent);\n\nvar _index = __webpack_require__(3);\n\nvar _index2 = _interopRequireDefault(_index);\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 DropdownMenuWrapper = (_temp2 = _class = function (_PureComponent) {\n _inherits(DropdownMenuWrapper, _PureComponent);\n\n function DropdownMenuWrapper() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, DropdownMenuWrapper);\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, _PureComponent.call.apply(_PureComponent, [this].concat(args))), _this), _this.menu = null, _this.isDropdownMenu = (0, _matchComponent2.default)(_DropdownMenu2.default), _temp), _possibleConstructorReturn(_this, _ret);\n } // this.menu = c} />\n\n DropdownMenuWrapper.prototype.focusNext = function focusNext() {\n this.menu && this.menu.focusNext && this.menu.focusNext();\n };\n\n DropdownMenuWrapper.prototype.focusPrevious = function focusPrevious() {\n this.menu && this.menu.focusPrevious && this.menu.focusPrevious();\n };\n\n DropdownMenuWrapper.prototype.renderMenu = function renderMenu(child, props) {\n var _this2 = this;\n\n var ref = function ref(c) {\n _this2.menu = c;\n };\n\n if (typeof child.ref === 'string') {\n (0, _warning2.default)(false, 'String refs are not supported on `` components. ' + 'To apply a ref to the component use the callback signature:\\n\\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n } else {\n ref = (0, _chainedFunction2.default)(child.ref, ref);\n }\n\n return (0, _react.cloneElement)(child, _extends({}, props, {\n ref: ref\n }));\n };\n\n DropdownMenuWrapper.prototype.render = function render() {\n var _cx,\n _this3 = this;\n\n var _props = this.props,\n componentType = _props.componentType,\n Component = _props.componentClass,\n open = _props.open,\n pullRight = _props.pullRight,\n onClose = _props.onClose,\n onSelect = _props.onSelect,\n rootCloseEvent = _props.rootCloseEvent,\n children = _props.children,\n className = _props.className,\n props = _objectWithoutProperties(_props, ['componentType', 'componentClass', 'open', 'pullRight', 'onClose', 'onSelect', 'rootCloseEvent', 'children', 'className']);\n\n return _react2.default.createElement(\n _RootCloseWrapper2.default,\n {\n disabled: !open,\n onRootClose: onClose,\n event: rootCloseEvent\n },\n _react2.default.createElement(\n Component,\n _extends({}, props, {\n className: (0, _classnames2.default)(className, (_cx = {}, _cx[_index2.default.dropdownMenuWrapper] = true, _cx[_index2.default.pullRight] = !!pullRight, _cx))\n }),\n _react2.default.Children.map(children, function (child) {\n if (!_react2.default.isValidElement(child)) {\n return child;\n }\n\n if (_this3.isDropdownMenu(child)) {\n return _this3.renderMenu(child, {\n // Do not pass onClose and rootCloseEvent to the dropdown menu\n open: open,\n pullRight: pullRight,\n onSelect: onSelect\n });\n }\n\n return child;\n })\n )\n );\n };\n\n return DropdownMenuWrapper;\n}(_react.PureComponent), _class.propTypes = {\n componentType: _propTypes2.default.any,\n\n // A custom element for this component.\n componentClass: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\n // Dropdown\n open: _propTypes2.default.bool,\n pullRight: _propTypes2.default.bool,\n onClose: _propTypes2.default.func,\n onSelect: _propTypes2.default.func,\n rootCloseEvent: _propTypes2.default.oneOf(['click', 'mousedown'])\n}, _class.defaultProps = {\n componentClass: 'div'\n}, _temp2);\n\n// For component matching\n\nDropdownMenuWrapper.defaultProps.componentType = DropdownMenuWrapper;\n\nexports.default = DropdownMenuWrapper;\n\n/***/ }),\n/* 14 */\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 _class, _temp2;\n\nvar _chainedFunction = __webpack_require__(4);\n\nvar _chainedFunction2 = _interopRequireDefault(_chainedFunction);\n\nvar _classnames = __webpack_require__(2);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _matchComponent = __webpack_require__(6);\n\nvar _matchComponent2 = _interopRequireDefault(_matchComponent);\n\nvar _DropdownMenu = __webpack_require__(5);\n\nvar _DropdownMenu2 = _interopRequireDefault(_DropdownMenu);\n\nvar _index = __webpack_require__(3);\n\nvar _index2 = _interopRequireDefault(_index);\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 MenuItem = (_temp2 = _class = function (_Component) {\n _inherits(MenuItem, _Component);\n\n function MenuItem() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, MenuItem);\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.isMenuItem = (0, _matchComponent2.default)(MenuItem), _this.handleClick = function (event) {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n onSelect = _this$props.onSelect,\n eventKey = _this$props.eventKey;\n\n\n if (disabled) {\n event.preventDefault();\n }\n\n if (disabled) {\n return;\n }\n\n if (onSelect) {\n onSelect(eventKey, event);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n MenuItem.prototype.render = function render() {\n var _this2 = this,\n _cx;\n\n var _props = this.props,\n componentType = _props.componentType,\n Component = _props.componentClass,\n active = _props.active,\n disabled = _props.disabled,\n divider = _props.divider,\n eventKey = _props.eventKey,\n header = _props.header,\n onClick = _props.onClick,\n open = _props.open,\n pullRight = _props.pullRight,\n onClose = _props.onClose,\n onSelect = _props.onSelect,\n rootCloseEvent = _props.rootCloseEvent,\n className = _props.className,\n style = _props.style,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['componentType', 'componentClass', 'active', 'disabled', 'divider', 'eventKey', 'header', 'onClick', 'open', 'pullRight', 'onClose', 'onSelect', 'rootCloseEvent', 'className', 'style', 'children']);\n\n if (divider) {\n // Forcibly blank out the children; separators shouldn't render any.\n props.children = undefined;\n\n return _react2.default.createElement(\n Component,\n _extends({}, props, {\n role: 'separator',\n className: (0, _classnames2.default)(className, _index2.default.divider),\n style: style\n }),\n children\n );\n }\n\n if (header) {\n return _react2.default.createElement(\n Component,\n _extends({}, props, {\n role: 'heading',\n className: (0, _classnames2.default)(className, _index2.default.header),\n style: style\n }),\n children\n );\n }\n\n var menuItems = _react2.default.Children.toArray(children).filter(function (child) {\n return _react2.default.isValidElement(child) && _this2.isMenuItem(child);\n });\n\n var others = _react2.default.Children.toArray(children).filter(function (child) {\n return !(_react2.default.isValidElement(child) && _this2.isMenuItem(child));\n });\n\n return _react2.default.createElement(\n Component,\n {\n role: 'presentation',\n className: (0, _classnames2.default)(className, _index2.default.menuItemWrapper, (_cx = {}, _cx[_index2.default.active] = active, _cx[_index2.default.disabled] = disabled, _cx[_index2.default.dropdownSubmenu] = menuItems.length > 0, _cx[_index2.default.open] = open, _cx)),\n style: style\n },\n _react2.default.createElement(\n 'div',\n _extends({}, props, {\n className: _index2.default.menuItem,\n disabled: disabled,\n role: 'menuitem',\n tabIndex: '-1',\n onClick: (0, _chainedFunction2.default)(onClick, this.handleClick)\n }),\n others\n ),\n menuItems.length > 0 && _react2.default.createElement(\n _DropdownMenu2.default,\n {\n open: open,\n pullRight: pullRight,\n onClose: onClose,\n onSelect: onSelect,\n rootCloseEvent: rootCloseEvent\n },\n menuItems\n )\n );\n };\n\n return MenuItem;\n}(_react.Component), _class.propTypes = {\n componentType: _propTypes2.default.any,\n\n // A custom element for this component.\n componentClass: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n\n // Highlight the menu item as active.\n active: _propTypes2.default.bool,\n\n // Disable the menu item, making it unselectable.\n disabled: _propTypes2.default.bool,\n\n // Style the menu item as a horizontal rule, providing visual separation between groups of menu items.\n divider: _propTypes2.default.bool,\n\n // Value passed to the `onSelect` handler, useful for identifying the selected menu item.\n eventKey: _propTypes2.default.any,\n\n // Style the menu item as a header label, useful for describing a group of menu items.\n header: _propTypes2.default.bool,\n\n // Callback fired when the menu item is clicked, even if it is disabled.\n onClick: _propTypes2.default.func,\n\n // Dropdown\n open: _propTypes2.default.bool,\n pullRight: _propTypes2.default.bool,\n onClose: _propTypes2.default.func,\n onSelect: _propTypes2.default.func,\n rootCloseEvent: _propTypes2.default.oneOf(['click', 'mousedown'])\n}, _class.defaultProps = {\n componentClass: 'div',\n active: false,\n disabled: false,\n divider: false,\n header: false,\n\n // DropdownMenu\n open: false,\n pullRight: false\n}, _temp2);\n\n// For component matching\n\nMenuItem.defaultProps.componentType = MenuItem;\n\nexports.default = MenuItem;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _class, _temp;\n\nvar _contains = __webpack_require__(10);\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _on = __webpack_require__(19);\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _off = __webpack_require__(20);\n\nvar _off2 = _interopRequireDefault(_off);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(7);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 escapeKeyCode = 27;\n\nvar ownerDocument = function ownerDocument(node) {\n return node && node.ownerDocument || document;\n};\n\nvar isLeftClickEvent = function isLeftClickEvent(event) {\n return event.button === 0;\n};\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n// The `` component registers your callback on the document\n// when rendered. Powers the `` component. This is used achieve modal\n// style behavior where your callback is triggered when the user tries to\n// interact with the rest of the document or hits the `esc` key.\nvar RootCloseWrapper = (_temp = _class = function (_React$Component) {\n _inherits(RootCloseWrapper, _React$Component);\n\n function RootCloseWrapper(props, context) {\n _classCallCheck(this, RootCloseWrapper);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.handleMouseCapture = function (e) {\n _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2.default)(_reactDom2.default.findDOMNode(_this), e.target);\n };\n\n _this.handleMouse = function (e) {\n if (!_this.preventMouseRootClose && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.handleKeyUp = function (e) {\n if (e.keyCode === escapeKeyCode && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.preventMouseRootClose = false;\n return _this;\n }\n\n RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {\n if (!this.props.disabled) {\n this.addEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (!this.props.disabled && prevProps.disabled) {\n this.addEventListeners();\n } else if (this.props.disabled && !prevProps.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {\n if (!this.props.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.addEventListeners = function addEventListeners() {\n var event = this.props.event;\n\n var doc = ownerDocument(_reactDom2.default.findDOMNode(this));\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n (0, _on2.default)(doc, event, this.handleMouseCapture, true);\n (0, _on2.default)(doc, event, this.handleMouse);\n (0, _on2.default)(doc, 'keyup', this.handleKeyUp);\n };\n\n RootCloseWrapper.prototype.removeEventListeners = function removeEventListeners() {\n var event = this.props.event;\n\n var doc = ownerDocument(_reactDom2.default.findDOMNode(this));\n\n (0, _off2.default)(doc, event, this.handleMouseCapture, true);\n (0, _off2.default)(doc, event, this.handleMouse);\n (0, _off2.default)(doc, 'keyup', this.handleKeyUp);\n };\n\n RootCloseWrapper.prototype.render = function render() {\n return this.props.children;\n };\n\n return RootCloseWrapper;\n}(_react2.default.Component), _class.propTypes = {\n // Callback fired after click or mousedown. Also triggers when user hits `esc`.\n onRootClose: _propTypes2.default.func,\n\n // Children to render.\n children: _propTypes2.default.element,\n\n // Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`.\n disabled: _propTypes2.default.bool,\n\n // Choose which document mouse event to bind to.\n event: _propTypes2.default.oneOf(['click', 'mousedown'])\n}, _class.defaultProps = {\n event: 'click'\n}, _temp);\nexports.default = RootCloseWrapper;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.MenuItem = exports.DropdownMenu = exports.DropdownMenuWrapper = exports.DropdownToggle = exports.DropdownButton = undefined;\n\nvar _Dropdown = __webpack_require__(9);\n\nvar _Dropdown2 = _interopRequireDefault(_Dropdown);\n\nvar _DropdownButton2 = __webpack_require__(21);\n\nvar _DropdownButton3 = _interopRequireDefault(_DropdownButton2);\n\nvar _DropdownToggle2 = __webpack_require__(12);\n\nvar _DropdownToggle3 = _interopRequireDefault(_DropdownToggle2);\n\nvar _DropdownMenuWrapper2 = __webpack_require__(13);\n\nvar _DropdownMenuWrapper3 = _interopRequireDefault(_DropdownMenuWrapper2);\n\nvar _DropdownMenu2 = __webpack_require__(5);\n\nvar _DropdownMenu3 = _interopRequireDefault(_DropdownMenu2);\n\nvar _MenuItem2 = __webpack_require__(14);\n\nvar _MenuItem3 = _interopRequireDefault(_MenuItem2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.DropdownButton = _DropdownButton3.default;\nexports.DropdownToggle = _DropdownToggle3.default;\nexports.DropdownMenuWrapper = _DropdownMenuWrapper3.default;\nexports.DropdownMenu = _DropdownMenu3.default;\nexports.MenuItem = _MenuItem3.default;\nexports.default = _Dropdown2.default;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"dom-helpers/activeElement\");\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"uncontrollable\");\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"dom-helpers/events/on\");\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"dom-helpers/events/off\");\n\n/***/ }),\n/* 21 */\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 _class, _temp;\n\nvar _reactButtons = __webpack_require__(8);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Dropdown = __webpack_require__(9);\n\nvar _Dropdown2 = _interopRequireDefault(_Dropdown);\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 DropdownButton = (_temp = _class = function (_PureComponent) {\n _inherits(DropdownButton, _PureComponent);\n\n function DropdownButton() {\n _classCallCheck(this, DropdownButton);\n\n return _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));\n }\n\n DropdownButton.prototype.render = function render() {\n var _props = this.props,\n btnSize = _props.btnSize,\n btnStyle = _props.btnStyle,\n title = _props.title,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['btnSize', 'btnStyle', 'title', 'children']);\n\n // Split component props\n\n\n var dropdownProps = {};\n var toggleProps = {};\n Object.keys(props).forEach(function (propName) {\n var propValue = props[propName];\n if (_Dropdown2.default.ControlledComponent.propTypes[propName]) {\n dropdownProps[propName] = propValue;\n } else {\n toggleProps[propName] = propValue;\n }\n });\n\n return _react2.default.createElement(\n _Dropdown2.default,\n _extends({}, dropdownProps, {\n btnSize: btnSize\n }),\n _react2.default.createElement(\n _Dropdown2.default.Toggle,\n _extends({}, toggleProps, {\n btnStyle: btnStyle\n }),\n title\n ),\n _react2.default.createElement(\n _Dropdown2.default.Menu,\n null,\n children\n )\n );\n };\n\n return DropdownButton;\n}(_react.PureComponent), _class.propTypes = _extends({}, _Dropdown2.default.propTypes, {\n\n // One of: 'lg', 'md', 'sm', 'xs'\n btnSize: _reactButtons.Button.propTypes.btnSize,\n\n // One of: 'default', 'primary', 'emphasis', 'flat', 'link'\n btnStyle: _reactButtons.Button.propTypes.btnStyle,\n\n // Title content.\n title: _propTypes2.default.node.isRequired,\n\n // Whether to prevent a caret from being rendered next to the title.\n noCaret: _propTypes2.default.bool\n}), _class.defaultProps = {\n btnStyle: 'flat'\n}, _temp);\nexports.default = DropdownButton;\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=index.js.map","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of