265 | | /*! exports provided: default, SelectBase, Async, AsyncCreatable, Creatable, createFilter, makeAnimated, components, mergeStyles, defaultTheme */function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectBase\", function() { return Select; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Async\", function() { return Async; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncCreatable\", function() { return AsyncCreatable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Creatable\", function() { return Creatable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createFilter\", function() { return createFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAnimated\", function() { return index; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"components\", function() { return components; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeStyles\", function() { return mergeStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTheme\", function() { return defaultTheme; });\n/* harmony import */ var raf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! raf */ \"./node_modules/raf/index.js\");\n/* harmony import */ var raf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(raf__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var emotion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! emotion */ \"./node_modules/emotion/dist/index.esm.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_input_autosize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-input-autosize */ \"./node_modules/react-input-autosize/lib/AutosizeInput.js\");\n/* harmony import */ var react_input_autosize__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_input_autosize__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! memoize-one */ \"./node_modules/memoize-one/dist/memoize-one.esm.js\");\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/index.js\");\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_transition_group__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, cssKey, state, className) {\n var arr = [cssKey, className];\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push('' + applyPrefixToName(prefix, key));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\n\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n raf__WEBPACK_IMPORTED_MODULE_0___default()(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n );\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Menu\n// ==============================\n\n// Get Menu Placement\n// ------------------------------\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n\n var scrollParent = getScrollParent(menuEl);\n var defaultState = { placement: 'bottom', maxHeight: maxHeight };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --\x3e it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n // $FlowFixMe function returns above if there's no offsetParent\n\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight = isFixedPosition ? viewSpaceAbove - marginBottom - spacing.controlHeight : scrollSpaceAbove - marginBottom - spacing.controlHeight;\n }\n\n return { placement: 'top', maxHeight: _constrainedHeight };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return { placement: 'top', maxHeight: maxHeight };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return { placement: 'top', maxHeight: maxHeight };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return { placement: 'bottom', maxHeight: maxHeight };\n default:\n throw new Error('Invalid placement provided \"' + placement + '\".');\n }\n\n // fulfil contract with flow: implicit return value of undefined\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = { bottom: 'top', top: 'bottom' };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {}, defineProperty(_ref3, alignToControl(placement), '100%'), defineProperty(_ref3, 'backgroundColor', colors.neutral0), defineProperty(_ref3, 'borderRadius', borderRadius), defineProperty(_ref3, 'boxShadow', '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), defineProperty(_ref3, 'marginBottom', spacing.menuGutter), defineProperty(_ref3, 'marginTop', spacing.menuGutter), defineProperty(_ref3, 'position', 'absolute'), defineProperty(_ref3, 'width', '100%'), defineProperty(_ref3, 'zIndex', 1), _ref3;\n};\n\n// NOTE: internal only\nvar MenuPlacer = function (_Component) {\n inherits(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _ref4;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, MenuPlacer);\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, (_ref4 = MenuPlacer.__proto__ || Object.getPrototypeOf(MenuPlacer)).call.apply(_ref4, [this].concat(args))), _this), _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n }, _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n\n\n if (!ref) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n }, _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n\n return _extends({}, _this.props, { placement: placement, maxHeight: _this.state.maxHeight });\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(MenuPlacer, [{\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n return MenuPlacer;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nMenuPlacer.contextTypes = {\n getPortalPlacement: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n var cn = cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('menu', props)), { menu: true }, className);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({ className: cn }, innerProps, { ref: innerRef }),\n children\n );\n};\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref5) {\n var maxHeight = _ref5.maxHeight,\n baseUnit = _ref5.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative', // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('menuList', props)), {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n },\n children\n );\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref6) {\n var _ref6$theme = _ref6.theme,\n baseUnit = _ref6$theme.spacing.baseUnit,\n colors = _ref6$theme.colors;\n return {\n color: colors.neutral40,\n padding: baseUnit * 2 + 'px ' + baseUnit * 3 + 'px',\n textAlign: 'center'\n };\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\n\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('noOptionsMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps),\n children\n );\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\n\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('loadingMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps),\n children\n );\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref7) {\n var rect = _ref7.rect,\n offset = _ref7.offset,\n position = _ref7.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\n\nvar MenuPortal = function (_Component2) {\n inherits(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _ref8;\n\n var _temp2, _this2, _ret2;\n\n classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = possibleConstructorReturn(this, (_ref8 = MenuPortal.__proto__ || Object.getPrototypeOf(MenuPortal)).call.apply(_ref8, [this].concat(args))), _this2), _this2.state = { placement: null }, _this2.getPortalPlacement = function (_ref9) {\n var placement = _ref9.placement;\n\n var initialPlacement = coercePlacement(_this2.props.menuPlacement);\n\n // avoid re-renders if the placement has not changed\n if (placement !== initialPlacement) {\n _this2.setState({ placement: placement });\n }\n }, _temp2), possibleConstructorReturn(_this2, _ret2);\n }\n\n createClass(MenuPortal, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n }\n\n // callback for occassions where the menu must \"flip\"\n\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n appendTo = _props.appendTo,\n children = _props.children,\n controlElement = _props.controlElement,\n menuPlacement = _props.menuPlacement,\n position = _props.menuPosition,\n getStyles = _props.getStyles;\n\n var isFixed = position === 'fixed';\n\n // bail early if required elements aren't present\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = { offset: offset, position: position, rect: rect };\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n { className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('menuPortal', state)) },\n children\n );\n\n return appendTo ? Object(react_dom__WEBPACK_IMPORTED_MODULE_3__[\"createPortal\"])(menuWrapper, appendTo) : menuWrapper;\n }\n }]);\n return MenuPortal;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\nMenuPortal.childContextTypes = {\n getPortalPlacement: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func\n};\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && (typeof a === 'undefined' ? 'undefined' : _typeof(a)) == 'object' && (typeof b === 'undefined' ? 'undefined' : _typeof(b)) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n }\n // end fast-deep-equal\n\n // Custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n}\n\nvar diacritics = [{ base: 'A', letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g }, { base: 'AA', letters: /[\\uA732]/g }, { base: 'AE', letters: /[\\u00C6\\u01FC\\u01E2]/g }, { base: 'AO', letters: /[\\uA734]/g }, { base: 'AU', letters: /[\\uA736]/g }, { base: 'AV', letters: /[\\uA738\\uA73A]/g }, { base: 'AY', letters: /[\\uA73C]/g }, { base: 'B', letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g }, { base: 'C', letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g }, { base: 'D', letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g }, { base: 'DZ', letters: /[\\u01F1\\u01C4]/g }, { base: 'Dz', letters: /[\\u01F2\\u01C5]/g }, { base: 'E', letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g }, { base: 'F', letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g }, { base: 'G', letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g }, { base: 'H', letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g }, { base: 'I', letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g }, { base: 'J', letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g }, { base: 'K', letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g }, { base: 'L', letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g }, { base: 'LJ', letters: /[\\u01C7]/g }, { base: 'Lj', letters: /[\\u01C8]/g }, { base: 'M', letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g }, { base: 'N', letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g }, { base: 'NJ', letters: /[\\u01CA]/g }, { base: 'Nj', letters: /[\\u01CB]/g }, { base: 'O', letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g }, { base: 'OI', letters: /[\\u01A2]/g }, { base: 'OO', letters: /[\\uA74E]/g }, { base: 'OU', letters: /[\\u0222]/g }, { base: 'P', letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g }, { base: 'Q', letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g }, { base: 'R', letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g }, { base: 'S', letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g }, { base: 'T', letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g }, { base: 'TZ', letters: /[\\uA728]/g }, { base: 'U', letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g }, { base: 'V', letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g }, { base: 'VY', letters: /[\\uA760]/g }, { base: 'W', letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g }, { base: 'X', letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g }, { base: 'Y', letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g }, { base: 'Z', letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g }, { base: 'a', letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g }, { base: 'aa', letters: /[\\uA733]/g }, { base: 'ae', letters: /[\\u00E6\\u01FD\\u01E3]/g }, { base: 'ao', letters: /[\\uA735]/g }, { base: 'au', letters: /[\\uA737]/g }, { base: 'av', letters: /[\\uA739\\uA73B]/g }, { base: 'ay', letters: /[\\uA73D]/g }, { base: 'b', letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g }, { base: 'c', letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g }, { base: 'd', letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g }, { base: 'dz', letters: /[\\u01F3\\u01C6]/g }, { base: 'e', letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g }, { base: 'f', letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g }, { base: 'g', letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g }, { base: 'h', letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g }, { base: 'hv', letters: /[\\u0195]/g }, { base: 'i', letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g }, { base: 'j', letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g }, { base: 'k', letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g }, { base: 'l', letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g }, { base: 'lj', letters: /[\\u01C9]/g }, { base: 'm', letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g }, { base: 'n', letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g }, { base: 'nj', letters: /[\\u01CC]/g }, { base: 'o', letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g }, { base: 'oi', letters: /[\\u01A3]/g }, { base: 'ou', letters: /[\\u0223]/g }, { base: 'oo', letters: /[\\uA74F]/g }, { base: 'p', letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g }, { base: 'q', letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g }, { base: 'r', letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g }, { base: 's', letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g }, { base: 't', letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g }, { base: 'tz', letters: /[\\uA729]/g }, { base: 'u', letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g }, { base: 'v', letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g }, { base: 'vy', letters: /[\\uA761]/g }, { base: 'w', letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g }, { base: 'x', letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g }, { base: 'y', letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g }, { base: 'z', letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g }];\n\nvar stripDiacritics = function stripDiacritics(str) {\n\tfor (var i = 0; i < diacritics.length; i++) {\n\t\tstr = str.replace(diacritics[i].letters, diacritics[i].base);\n\t}\n\treturn str;\n};\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return option.label + ' ' + option.value;\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _extends({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar A11yText = function A11yText(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('span', _extends({\n className: Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n zIndex: 9999,\n border: 0,\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: 1,\n width: 1,\n position: 'absolute',\n overflow: 'hidden',\n padding: 0,\n whiteSpace: 'nowrap',\n backgroundColor: 'red',\n color: 'blue'\n })\n }, props));\n};\n\nvar DummyInput = function (_Component) {\n inherits(DummyInput, _Component);\n\n function DummyInput() {\n classCallCheck(this, DummyInput);\n return possibleConstructorReturn(this, (DummyInput.__proto__ || Object.getPrototypeOf(DummyInput)).apply(this, arguments));\n }\n\n createClass(DummyInput, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n inProp = _props.in,\n out = _props.out,\n onExited = _props.onExited,\n appear = _props.appear,\n enter = _props.enter,\n exit = _props.exit,\n innerRef = _props.innerRef,\n props = objectWithoutProperties(_props, ['in', 'out', 'onExited', 'appear', 'enter', 'exit', 'innerRef']);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', _extends({\n ref: innerRef\n }, props, {\n className: Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n\n // important! without `width` browsers won't allow focus\n width: 1,\n\n // remove cursor on desktop\n color: 'transparent',\n\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n })\n }));\n }\n }]);\n return DummyInput;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar NodeResolver = function (_Component) {\n inherits(NodeResolver, _Component);\n\n function NodeResolver() {\n classCallCheck(this, NodeResolver);\n return possibleConstructorReturn(this, (NodeResolver.__proto__ || Object.getPrototypeOf(NodeResolver)).apply(this, arguments));\n }\n\n createClass(NodeResolver, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.props.innerRef(Object(react_dom__WEBPACK_IMPORTED_MODULE_3__[\"findDOMNode\"])(this));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.props.innerRef(null);\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n return NodeResolver;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\n\nvar LOCK_STYLES = {\n boxSizing: 'border-box', // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar activeScrollLocks = 0;\n\nvar ScrollLock = function (_Component) {\n inherits(ScrollLock, _Component);\n\n function ScrollLock() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollLock);\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, (_ref = ScrollLock.__proto__ || Object.getPrototypeOf(ScrollLock)).call.apply(_ref, [this].concat(args))), _this), _this.originalStyles = {}, _this.listenerOptions = {\n capture: false,\n passive: false\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(ScrollLock, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n\n var _props = this.props,\n accountForScrollbars = _props.accountForScrollbars,\n touchScrollTarget = _props.touchScrollTarget;\n\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = adjustedPadding + 'px';\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n\n var _props2 = this.props,\n accountForScrollbars = _props2.accountForScrollbars,\n touchScrollTarget = _props2.touchScrollTarget;\n\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n return ScrollLock;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nScrollLock.defaultProps = {\n accountForScrollbars: true\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\n\nvar ScrollBlock = function (_PureComponent) {\n inherits(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollBlock);\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, (_ref = ScrollBlock.__proto__ || Object.getPrototypeOf(ScrollBlock)).call.apply(_ref, [this].concat(args))), _this), _this.state = { touchScrollTarget: null }, _this.getScrollTarget = function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n _this.setState({ touchScrollTarget: ref });\n }, _this.blurSelectInput = function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // must be in state to trigger a re-render, only runs once per instance\n\n\n // this will close the menu when a user clicks outside\n\n\n createClass(ScrollBlock, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n isEnabled = _props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget;\n\n // bail early if not enabled\n\n if (!isEnabled) return children;\n\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n null,\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('div', {\n onClick: this.blurSelectInput,\n className: Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({ position: 'fixed', left: 0, bottom: 0, right: 0, top: 0 })\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n NodeResolver,\n { innerRef: this.getScrollTarget },\n children\n ),\n touchScrollTarget ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ScrollLock, { touchScrollTarget: touchScrollTarget }) : null\n );\n }\n }]);\n return ScrollBlock;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"PureComponent\"]);\n\nvar ScrollCaptor = function (_Component) {\n inherits(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollCaptor);\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, (_ref = ScrollCaptor.__proto__ || Object.getPrototypeOf(ScrollCaptor)).call.apply(_ref, [this].concat(args))), _this), _this.isBottom = false, _this.isTop = false, _this.cancelScroll = function (event) {\n event.preventDefault();\n event.stopPropagation();\n }, _this.handleEventDelta = function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n }, _this.onWheel = function (event) {\n _this.handleEventDelta(event, event.deltaY);\n }, _this.onTouchStart = function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n }, _this.onTouchMove = function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n _this.handleEventDelta(event, deltaY);\n }, _this.getScrollTarget = function (ref) {\n _this.scrollTarget = ref;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(ScrollCaptor, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: 'startListening',\n value: function startListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return;\n\n // all the if statements are to appease Flow 😢\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: 'stopListening',\n value: function stopListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return;\n\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n NodeResolver,\n { innerRef: this.getScrollTarget },\n this.props.children\n );\n }\n }]);\n return ScrollCaptor;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar ScrollCaptorSwitch = function (_Component2) {\n inherits(ScrollCaptorSwitch, _Component2);\n\n function ScrollCaptorSwitch() {\n classCallCheck(this, ScrollCaptorSwitch);\n return possibleConstructorReturn(this, (ScrollCaptorSwitch.__proto__ || Object.getPrototypeOf(ScrollCaptorSwitch)).apply(this, arguments));\n }\n\n createClass(ScrollCaptorSwitch, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n isEnabled = _props.isEnabled,\n props = objectWithoutProperties(_props, ['isEnabled']);\n\n return isEnabled ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ScrollCaptor, props) : this.props.children;\n }\n }]);\n return ScrollCaptorSwitch;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nScrollCaptorSwitch.defaultProps = { isEnabled: true };\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var isSearchable = context.isSearchable,\n isMulti = context.isMulti,\n label = context.label;\n\n switch (event) {\n case 'menu':\n return 'Use Up and Down to choose options, press Backspace to select the currently focused option, press Escape to exit the menu, press Tab to select the option and exit the menu.';\n case 'input':\n return (label ? label : 'Select') + ' is focused ' + (isSearchable ? ',type to refine list' : '') + ', press Down to open the menu, ' + (isMulti ? ' press left to focus selected values' : '');\n case 'value':\n return 'Use left and right to toggle between focused values, press Enter to remove the currently focused value';\n }\n};\n\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value;\n\n if (!value) return;\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return 'option ' + value + ', deselected.';\n case 'select-option':\n return 'option ' + value + ', selected.';\n }\n};\n\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return 'value ' + getOptionLabel(focusedValue) + ' focused, ' + (selectValue.indexOf(focusedValue) + 1) + ' of ' + selectValue.length + '.';\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return 'option ' + getOptionLabel(focusedOption) + ' focused, ' + (options.indexOf(focusedOption) + 1) + ' of ' + options.length + '.';\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return '' + screenReaderMessage + (inputValue ? ' for search term ' + inputValue : '') + '.';\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\n\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\n\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\n\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null, // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('container', props)), {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps),\n children\n );\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: spacing.baseUnit / 2 + 'px ' + spacing.baseUnit * 2 + 'px',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function (_Component) {\n inherits(ValueContainer, _Component);\n\n function ValueContainer() {\n classCallCheck(this, ValueContainer);\n return possibleConstructorReturn(this, (ValueContainer.__proto__ || Object.getPrototypeOf(ValueContainer)).apply(this, arguments));\n }\n\n createClass(ValueContainer, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n cx = _props.cx,\n isMulti = _props.isMulti,\n getStyles = _props.getStyles,\n hasValue = _props.hasValue;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('valueContainer', this.props)), {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n },\n children\n );\n }\n }]);\n return ValueContainer;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('indicatorsContainer', props)), {\n 'indicators': true\n }, className)\n },\n children\n );\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\n\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = objectWithoutProperties(_ref, ['size']);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('svg', _extends({\n height: size,\n width: size,\n viewBox: '0 0 20 20',\n 'aria-hidden': 'true',\n focusable: 'false',\n className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n display: 'inline-block',\n fill: 'currentColor',\n lineHeight: 1,\n stroke: 'currentColor',\n strokeWidth: 0\n })\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Svg,\n _extends({ size: 20 }, props),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('path', { d: 'M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z' })\n );\n};\nvar DownChevron = function DownChevron(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Svg,\n _extends({ size: 20 }, props),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('path', { d: 'M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z' })\n );\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref2) {\n var isFocused = _ref2.isFocused,\n _ref2$theme = _ref2.theme,\n baseUnit = _ref2$theme.spacing.baseUnit,\n colors = _ref2$theme.colors;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('dropdownIndicator', props)), {\n 'indicator': true,\n 'dropdown-indicator': true\n }, className)\n }),\n children\n );\n};\nDropdownIndicator.defaultProps = {\n children: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DownChevron, null)\n};\n\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('clearIndicator', props)), {\n 'indicator': true,\n 'clear-indicator': true\n }, className)\n }),\n children\n );\n};\n\nClearIndicator.defaultProps = {\n children: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(CrossIcon, null)\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref3) {\n var isDisabled = _ref3.isDisabled,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\n\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('span', _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('indicatorSeparator', props)), { 'indicator-separator': true }, className)\n }));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar keyframesName = 'react-select-loading-indicator';\n\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref4) {\n var isFocused = _ref4.isFocused,\n size = _ref4.size,\n _ref4$theme = _ref4.theme,\n colors = _ref4$theme.colors,\n baseUnit = _ref4$theme.spacing.baseUnit;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref5) {\n var color = _ref5.color,\n delay = _ref5.delay,\n offset = _ref5.offset;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('span', {\n className: Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n animationDuration: '1s',\n animationDelay: delay + 'ms',\n animationIterationCount: 'infinite',\n animationName: keyframesName,\n animationTimingFunction: 'ease-in-out',\n backgroundColor: color,\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n })\n });\n};\n\n// eslint-disable-next-line no-unused-expressions\nObject(emotion__WEBPACK_IMPORTED_MODULE_2__[\"injectGlobal\"])('@keyframes ', keyframesName, '{0%,80%,100%{opacity:0;}40%{opacity:1;}};');\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isFocused = props.isFocused,\n isRtl = props.isRtl,\n colors = props.theme.colors;\n\n var color = isFocused ? colors.neutral80 : colors.neutral20;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('loadingIndicator', props)), {\n 'indicator': true,\n 'loading-indicator': true\n }, className)\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingDot, { color: color, delay: 0, offset: isRtl }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingDot, { color: color, delay: 160, offset: true }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingDot, { color: color, delay: 320, offset: !isRtl })\n );\n};\nLoadingIndicator.defaultProps = { size: 4 };\n\nvar css$1 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? '0 0 0 1px ' + colors.primary : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('control', props)), {\n 'control': true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('group', props)), { 'group': true }, className)\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Heading,\n _extends({}, headingProps, { theme: theme, getStyles: getStyles, cx: cx }),\n label\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n null,\n children\n )\n );\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\n\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n cleanProps = objectWithoutProperties(props, ['className', 'cx', 'getStyles', 'theme']);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('div', _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('groupHeading', _extends({ theme: theme }, cleanProps))), { 'group-heading': true }, className)\n }, cleanProps));\n};\n\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\nvar inputStyle = function inputStyle(isHidden) {\n return {\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n props = objectWithoutProperties(_ref2, ['className', 'cx', 'getStyles', 'innerRef', 'isHidden', 'isDisabled', 'theme']);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('input', _extends({ theme: theme }, props)))\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_input_autosize__WEBPACK_IMPORTED_MODULE_5___default.a, _extends({\n className: cx(null, { 'input': true }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props))\n );\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n };\n};\n\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\n\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\n\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n innerProps,\n children\n );\n};\n\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\n\nvar MultiValueRemove = function (_Component) {\n inherits(MultiValueRemove, _Component);\n\n function MultiValueRemove() {\n classCallCheck(this, MultiValueRemove);\n return possibleConstructorReturn(this, (MultiValueRemove.__proto__ || Object.getPrototypeOf(MultiValueRemove)).apply(this, arguments));\n }\n\n createClass(MultiValueRemove, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n innerProps = _props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n innerProps,\n children\n );\n }\n }]);\n return MultiValueRemove;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nMultiValueRemove.defaultProps = {\n children: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(CrossIcon, { size: 14 })\n};\n\nvar MultiValue = function (_Component2) {\n inherits(MultiValue, _Component2);\n\n function MultiValue() {\n classCallCheck(this, MultiValue);\n return possibleConstructorReturn(this, (MultiValue.__proto__ || Object.getPrototypeOf(MultiValue)).apply(this, arguments));\n }\n\n createClass(MultiValue, [{\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n components = _props2.components,\n cx = _props2.cx,\n data = _props2.data,\n getStyles = _props2.getStyles,\n innerProps = _props2.innerProps,\n isDisabled = _props2.isDisabled,\n removeProps = _props2.removeProps,\n selectProps = _props2.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n\n\n var containerInnerProps = _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('multiValue', this.props)), {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className)\n }, innerProps);\n\n var labelInnerProps = {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('multiValueLabel', this.props)), {\n 'multi-value__label': true\n }, className)\n };\n\n var removeInnerProps = _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('multiValueRemove', this.props)), {\n 'multi-value__remove': true\n }, className)\n }, removeProps);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Container,\n {\n data: data,\n innerProps: containerInnerProps,\n selectProps: selectProps\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Label,\n {\n data: data,\n innerProps: labelInnerProps,\n selectProps: selectProps\n },\n children\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Remove, {\n data: data,\n innerProps: removeInnerProps,\n selectProps: selectProps\n })\n );\n }\n }]);\n return MultiValue;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: spacing.baseUnit * 2 + 'px ' + spacing.baseUnit * 3 + 'px',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: isSelected ? colors.primary : colors.primary50\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('option', props)), {\n 'option': true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('placeholder', props)), {\n 'placeholder': true\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar css$2 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: 'calc(100% - ' + spacing.baseUnit * 2 + 'px)',\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('singleValue', props)), {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\n\nvar defaultComponents = function defaultComponents(props) {\n return _extends({}, components, props.components);\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n};\n\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _extends({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\n\nvar borderRadius = 4;\nvar baseUnit = 4; /* Used to calculate consistent margin/padding on elements */\nvar controlHeight = 38; /* The minimum height of the control */\nvar menuGutter = baseUnit * 2; /* The amount of space between the control and menu */\n\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\n\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return count + ' result' + (count !== 1 ? 's' : '') + ' available';\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\n\nvar instanceId = 1;\n\nvar Select = function (_Component) {\n inherits(Select, _Component);\n\n // Lifecycle\n // ------------------------------\n\n // Refs\n // ------------------------------\n\n // Misc. Instance Properties\n // ------------------------------\n\n function Select(props) {\n classCallCheck(this, Select);\n\n var _this = possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var value = props.value;\n\n _this.cacheComponents = Object(memoize_one__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_this.cacheComponents, exportedEqual).bind(_this);\n _this.cacheComponents(props.components);\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var selectValue = cleanValue(value);\n var menuOptions = _this.buildMenuOptions(props, selectValue);\n\n _this.state.menuOptions = menuOptions;\n _this.state.selectValue = selectValue;\n return _this;\n } // TODO\n\n\n createClass(Select, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _props = this.props,\n options = _props.options,\n value = _props.value,\n inputValue = _props.inputValue;\n // re-cache custom components\n\n this.cacheComponents(nextProps.components);\n // rebuild the menu options\n if (nextProps.value !== value || nextProps.options !== options || nextProps.inputValue !== inputValue) {\n var _selectValue = cleanValue(nextProps.value);\n var _menuOptions = this.buildMenuOptions(nextProps, _selectValue);\n var _focusedValue = this.getNextFocusedValue(_selectValue);\n var _focusedOption = this.getNextFocusedOption(_menuOptions.focusable);\n this.setState({ menuOptions: _menuOptions, selectValue: _selectValue, focusedOption: _focusedOption, focusedValue: _focusedValue });\n }\n // some updates should toggle the state of the input visibility\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _props2 = this.props,\n isDisabled = _props2.isDisabled,\n menuIsOpen = _props2.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: 'onMenuOpen',\n\n // ==============================\n // Consumer Handlers\n // ==============================\n\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: 'onMenuClose',\n value: function onMenuClose() {\n var _props3 = this.props,\n isSearchable = _props3.isSearchable,\n isMulti = _props3.isMulti;\n\n this.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n this.onInputChange('', { action: 'menu-close' });\n this.props.onMenuClose();\n }\n }, {\n key: 'onInputChange',\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n\n }, {\n key: 'focusInput',\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: 'blurInput',\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n\n }, {\n key: 'openMenu',\n value: function openMenu(focusOption) {\n var _state = this.state,\n menuOptions = _state.menuOptions,\n selectValue = _state.selectValue;\n var isMulti = this.props.isMulti;\n\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.inputIsHiddenAfterUpdate = false;\n\n this.onMenuOpen();\n this.setState({\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n });\n\n this.announceAriaLiveContext({ event: 'menu' });\n }\n }, {\n key: 'focusValue',\n value: function focusValue(direction) {\n var _props4 = this.props,\n isMulti = _props4.isMulti,\n isSearchable = _props4.isSearchable;\n var _state2 = this.state,\n selectValue = _state2.selectValue,\n focusedValue = _state2.focusedValue;\n\n // Only multiselects support value focusing\n\n if (!isMulti) return;\n\n this.setState({\n focusedOption: null\n });\n\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({ event: 'value' });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus === -1 ? false : true,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: 'focusOption',\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var _state3 = this.state,\n focusedOption = _state3.focusedOption,\n menuOptions = _state3.menuOptions;\n\n var options = menuOptions.focusable;\n\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({ event: 'menu' });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: 'getTheme',\n\n\n // ==============================\n // Getters\n // ==============================\n\n value: function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _extends({}, defaultTheme, this.props.theme);\n }\n }, {\n key: 'getCommonProps',\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n\n var hasValue = this.hasValue();\n var getValue = function getValue() {\n return selectValue;\n };\n var cxPrefix = classNamePrefix;\n\n var cx = classNames.bind(null, cxPrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: 'getNextFocusedValue',\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n var _state4 = this.state,\n focusedValue = _state4.focusedValue,\n lastSelectValue = _state4.selectValue;\n\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n }\n }, {\n key: 'getNextFocusedOption',\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n\n // ==============================\n // Helpers\n // ==============================\n\n }, {\n key: 'hasValue',\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n\n return selectValue.length > 0;\n }\n }, {\n key: 'hasOptions',\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: 'countOptions',\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: 'isClearable',\n value: function isClearable() {\n var _props5 = this.props,\n isClearable = _props5.isClearable,\n isMulti = _props5.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n\n return isClearable;\n }\n }, {\n key: 'isOptionDisabled',\n value: function isOptionDisabled$$1(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: 'isOptionSelected',\n value: function isOptionSelected(option, selectValue) {\n var _this2 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this2.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: 'filterOption',\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: 'formatOptionLabel',\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue2 = this.state.selectValue;\n\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue2\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: 'formatGroupLabel',\n value: function formatGroupLabel$$1(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: 'startListeningComposition',\n\n\n // ==============================\n // Composition Handlers\n // ==============================\n\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: 'stopListeningComposition',\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: 'startListeningToTouch',\n\n\n // ==============================\n // Touch Handlers\n // ==============================\n\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: 'stopListeningToTouch',\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n\n // ==============================\n // Focus Handlers\n // ==============================\n\n // ==============================\n // Keyboard Handlers\n // ==============================\n\n }, {\n key: 'buildMenuOptions',\n\n\n // ==============================\n // Menu Options\n // ==============================\n\n value: function buildMenuOptions(props, selectValue) {\n var _this3 = this;\n\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === undefined ? '' : _props$inputValue,\n options = props.options;\n\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this3.isOptionDisabled(option, selectValue);\n var isSelected = _this3.isOptionSelected(option, selectValue);\n var label = _this3.getOptionLabel(option);\n var value = _this3.getOptionValue(option);\n\n if (_this3.shouldHideSelectedOptions() && isSelected || !_this3.filterOption({ label: label, value: value, data: option }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this3.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this3.selectOption(option);\n };\n var optionId = _this3.getElementId('option') + '-' + id;\n\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n role: 'option',\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this3.hasGroups) _this3.hasGroups = true;\n\n var items = item.options;\n\n var children = items.map(function (child, i) {\n var option = toOption(child, itemIndex + '-' + i);\n if (option && !option.isDisabled) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n if (children.length) {\n var groupId = _this3.getElementId('group') + '-' + itemIndex;\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, '' + itemIndex);\n if (option) {\n acc.render.push(option);\n if (!option.isDisabled) acc.focusable.push(item);\n }\n }\n return acc;\n }, { render: [], focusable: [] });\n }\n\n // ==============================\n // Renderers\n // ==============================\n\n }, {\n key: 'constructAriaLiveMessage',\n value: function constructAriaLiveMessage() {\n var _state5 = this.state,\n ariaLiveContext = _state5.ariaLiveContext,\n selectValue = _state5.selectValue,\n focusedValue = _state5.focusedValue,\n focusedOption = _state5.focusedOption;\n var _props6 = this.props,\n options = _props6.options,\n menuIsOpen = _props6.menuIsOpen,\n inputValue = _props6.inputValue,\n screenReaderStatus = _props6.screenReaderStatus;\n\n // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : '';\n // An aria live message representing the currently focused option in the select.\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : '';\n // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({ count: this.countOptions() })\n });\n\n return focusedValueMsg + ' ' + focusedOptionMsg + ' ' + resultsMsg + ' ' + ariaLiveContext;\n }\n }, {\n key: 'renderInput',\n value: function renderInput() {\n var _props7 = this.props,\n isDisabled = _props7.isDisabled,\n isSearchable = _props7.isSearchable,\n inputId = _props7.inputId,\n inputValue = _props7.inputValue,\n tabIndex = _props7.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n\n\n var id = inputId || this.getElementId('input');\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DummyInput, {\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n tabIndex: tabIndex,\n value: ''\n });\n }\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n var _commonProps = this.commonProps,\n cx = _commonProps.cx,\n theme = _commonProps.theme;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Input, _extends({\n autoCapitalize: 'none',\n autoComplete: 'off',\n autoCorrect: 'off',\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: 'false',\n tabIndex: tabIndex,\n theme: theme,\n type: 'text',\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: 'renderPlaceholderOrValue',\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _components = this.components,\n MultiValue = _components.MultiValue,\n MultiValueContainer = _components.MultiValueContainer,\n MultiValueLabel = _components.MultiValueLabel,\n MultiValueRemove = _components.MultiValueRemove,\n SingleValue = _components.SingleValue,\n Placeholder = _components.Placeholder;\n var commonProps = this.commonProps;\n var _props8 = this.props,\n controlShouldRenderValue = _props8.controlShouldRenderValue,\n isDisabled = _props8.isDisabled,\n isMulti = _props8.isMulti,\n inputValue = _props8.inputValue,\n placeholder = _props8.placeholder;\n var _state6 = this.state,\n selectValue = _state6.selectValue,\n focusedValue = _state6.focusedValue;\n\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Placeholder,\n _extends({}, commonProps, { key: 'placeholder', isDisabled: isDisabled }),\n placeholder\n );\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt) {\n var isFocused = opt === focusedValue;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MultiValue,\n _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }),\n _this4.formatOptionLabel(opt, 'value')\n );\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n SingleValue,\n _extends({}, commonProps, { data: singleValue, isDisabled: isDisabled }),\n this.formatOptionLabel(singleValue, 'value')\n );\n }\n }, {\n key: 'renderClearIndicator',\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _props9 = this.props,\n isDisabled = _props9.isDisabled,\n isLoading = _props9.isLoading;\n var isFocused = this.state.isFocused;\n\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderLoadingIndicator',\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _props10 = this.props,\n isDisabled = _props10.isDisabled,\n isLoading = _props10.isLoading;\n var isFocused = this.state.isFocused;\n\n\n if (!LoadingIndicator || !isLoading) return null;\n\n var innerProps = { 'aria-hidden': 'true' };\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderIndicatorSeparator',\n value: function renderIndicatorSeparator() {\n var _components2 = this.components,\n DropdownIndicator = _components2.DropdownIndicator,\n IndicatorSeparator = _components2.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderDropdownIndicator',\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderMenu',\n value: function renderMenu() {\n var _this5 = this;\n\n var _components3 = this.components,\n Group = _components3.Group,\n GroupHeading = _components3.GroupHeading,\n Menu$$1 = _components3.Menu,\n MenuList$$1 = _components3.MenuList,\n MenuPortal$$1 = _components3.MenuPortal,\n LoadingMessage$$1 = _components3.LoadingMessage,\n NoOptionsMessage$$1 = _components3.NoOptionsMessage,\n Option = _components3.Option;\n var commonProps = this.commonProps;\n var _state7 = this.state,\n focusedOption = _state7.focusedOption,\n menuOptions = _state7.menuOptions;\n var _props11 = this.props,\n captureMenuScroll = _props11.captureMenuScroll,\n inputValue = _props11.inputValue,\n isLoading = _props11.isLoading,\n loadingMessage = _props11.loadingMessage,\n minMenuHeight = _props11.minMenuHeight,\n maxMenuHeight = _props11.maxMenuHeight,\n menuIsOpen = _props11.menuIsOpen,\n menuPlacement = _props11.menuPlacement,\n menuPosition = _props11.menuPosition,\n menuPortalTarget = _props11.menuPortalTarget,\n menuShouldBlockScroll = _props11.menuShouldBlockScroll,\n menuShouldScrollIntoView = _props11.menuShouldScrollIntoView,\n noOptionsMessage = _props11.noOptionsMessage,\n onMenuScrollToTop = _props11.onMenuScrollToTop,\n onMenuScrollToBottom = _props11.onMenuScrollToBottom;\n\n\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Option,\n _extends({}, commonProps, props, { isFocused: isFocused }),\n _this5.formatOptionLabel(props.data, 'menu')\n );\n };\n\n var menuUI = void 0;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = objectWithoutProperties(item, ['type']);\n\n var headingId = item.key + '-heading';\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Group,\n _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }),\n item.options.map(function (option) {\n return render(option);\n })\n );\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({ inputValue: inputValue });\n if (message === null) return null;\n menuUI = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n LoadingMessage$$1,\n commonProps,\n message\n );\n } else {\n var _message = noOptionsMessage({ inputValue: inputValue });\n if (_message === null) return null;\n menuUI = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n NoOptionsMessage$$1,\n commonProps,\n _message\n );\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n\n var menuElement = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MenuPlacer,\n _extends({}, commonProps, menuPlacementProps),\n function (_ref2) {\n var ref = _ref2.ref,\n _ref2$placerProps = _ref2.placerProps,\n placement = _ref2$placerProps.placement,\n maxHeight = _ref2$placerProps.maxHeight;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Menu$$1,\n _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n ScrollCaptorSwitch,\n {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n ScrollBlock,\n { isEnabled: menuShouldBlockScroll },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MenuList$$1,\n _extends({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }),\n menuUI\n )\n )\n )\n );\n }\n );\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MenuPortal$$1,\n _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }),\n menuElement\n ) : menuElement;\n }\n }, {\n key: 'renderFormField',\n value: function renderFormField() {\n var _this6 = this;\n\n var _props12 = this.props,\n delimiter = _props12.delimiter,\n isDisabled = _props12.isDisabled,\n isMulti = _props12.isMulti,\n name = _props12.name;\n var selectValue = this.state.selectValue;\n\n\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var _value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', { name: name, type: 'hidden', value: _value });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', {\n key: 'i-' + i,\n name: name,\n type: 'hidden',\n value: _this6.getOptionValue(opt)\n });\n }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', { name: name, type: 'hidden' });\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n null,\n input\n );\n }\n } else {\n var _value2 = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', { name: name, type: 'hidden', value: _value2 });\n }\n }\n }, {\n key: 'renderLiveRegion',\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n A11yText,\n { 'aria-live': 'assertive' },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'p',\n { id: 'aria-selection-event' },\n '\\xA0',\n this.state.ariaLiveSelection\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'p',\n { id: 'aria-context' },\n '\\xA0',\n this.constructAriaLiveMessage()\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _components4 = this.components,\n Control = _components4.Control,\n IndicatorsContainer = _components4.IndicatorsContainer,\n SelectContainer = _components4.SelectContainer,\n ValueContainer = _components4.ValueContainer;\n var _props13 = this.props,\n className = _props13.className,\n id = _props13.id,\n isDisabled = _props13.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n var commonProps = this.commonProps = this.getCommonProps();\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n SelectContainer,\n _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }),\n this.renderLiveRegion(),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Control,\n _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n ValueContainer,\n _extends({}, commonProps, { isDisabled: isDisabled }),\n this.renderPlaceholderOrValue(),\n this.renderInput()\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n IndicatorsContainer,\n _extends({}, commonProps, { isDisabled: isDisabled }),\n this.renderClearIndicator(),\n this.renderLoadingIndicator(),\n this.renderIndicatorSeparator(),\n this.renderDropdownIndicator()\n )\n ),\n this.renderMenu(),\n this.renderFormField()\n );\n }\n }]);\n return Select;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nSelect.defaultProps = defaultProps;\n\nvar _initialiseProps = function _initialiseProps() {\n var _this7 = this;\n\n this.state = {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n isComposing: false,\n menuOptions: { render: [], focusable: [] },\n selectValue: []\n };\n this.blockOptionHover = false;\n this.clearFocusValueOnUpdate = false;\n this.hasGroups = false;\n this.initialTouchX = 0;\n this.initialTouchY = 0;\n this.instancePrefix = '';\n this.openAfterFocus = false;\n this.scrollToFocusedOptionOnUpdate = false;\n this.controlRef = null;\n\n this.getControlRef = function (ref) {\n _this7.controlRef = ref;\n };\n\n this.focusedOptionRef = null;\n\n this.getFocusedOptionRef = function (ref) {\n _this7.focusedOptionRef = ref;\n };\n\n this.menuListRef = null;\n\n this.getMenuListRef = function (ref) {\n _this7.menuListRef = ref;\n };\n\n this.inputRef = null;\n\n this.getInputRef = function (ref) {\n _this7.inputRef = ref;\n };\n\n this.cacheComponents = function (components$$1) {\n _this7.components = defaultComponents({ components: components$$1 });\n };\n\n this.focus = this.focusInput;\n this.blur = this.blurInput;\n\n this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments[2];\n var _props14 = _this7.props,\n closeMenuOnSelect = _props14.closeMenuOnSelect,\n isMulti = _props14.isMulti,\n onChange = _props14.onChange;\n\n _this7.onInputChange('', { action: 'set-value' });\n if (closeMenuOnSelect) {\n _this7.inputIsHiddenAfterUpdate = !isMulti;\n _this7.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this7.clearFocusValueOnUpdate = true;\n onChange(newValue, { action: action, option: option });\n };\n\n this.selectOption = function (newValue) {\n var _props15 = _this7.props,\n blurInputOnSelect = _props15.blurInputOnSelect,\n isMulti = _props15.isMulti;\n\n\n if (isMulti) {\n var _selectValue3 = _this7.state.selectValue;\n\n if (_this7.isOptionSelected(newValue, _selectValue3)) {\n var candidate = _this7.getOptionValue(newValue);\n _this7.setValue(_selectValue3.filter(function (i) {\n return _this7.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n _this7.announceAriaLiveSelection({\n event: 'deselect-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n } else {\n _this7.setValue([].concat(toConsumableArray(_selectValue3), [newValue]), 'select-option', newValue);\n _this7.announceAriaLiveSelection({\n event: 'select-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n }\n } else {\n _this7.setValue(newValue, 'select-option');\n _this7.announceAriaLiveSelection({\n event: 'select-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n }\n\n if (blurInputOnSelect) {\n _this7.blurInput();\n }\n };\n\n this.removeValue = function (removedValue) {\n var onChange = _this7.props.onChange;\n var selectValue = _this7.state.selectValue;\n\n var candidate = _this7.getOptionValue(removedValue);\n onChange(selectValue.filter(function (i) {\n return _this7.getOptionValue(i) !== candidate;\n }), {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this7.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this7.getOptionLabel(removedValue) : undefined\n }\n });\n _this7.focusInput();\n };\n\n this.clearValue = function () {\n var _props16 = _this7.props,\n isMulti = _props16.isMulti,\n onChange = _props16.onChange;\n\n onChange(isMulti ? [] : null, { action: 'clear' });\n };\n\n this.popValue = function () {\n var onChange = _this7.props.onChange;\n var selectValue = _this7.state.selectValue;\n\n var lastSelectedValue = selectValue[selectValue.length - 1];\n _this7.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this7.getOptionLabel(lastSelectedValue) : undefined\n }\n });\n onChange(selectValue.slice(0, selectValue.length - 1), {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n this.getOptionLabel = function (data) {\n return _this7.props.getOptionLabel(data);\n };\n\n this.getOptionValue = function (data) {\n return _this7.props.getOptionValue(data);\n };\n\n this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this7.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n this.getElementId = function (element) {\n return _this7.instancePrefix + '-' + element;\n };\n\n this.getActiveDescendentId = function () {\n var menuIsOpen = _this7.props.menuIsOpen;\n var _state8 = _this7.state,\n menuOptions = _state8.menuOptions,\n focusedOption = _state8.focusedOption;\n\n\n if (!focusedOption || !menuIsOpen) return undefined;\n\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n\n return option && option.key;\n };\n\n this.announceAriaLiveSelection = function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this7.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n };\n\n this.announceAriaLiveContext = function (_ref4) {\n var event = _ref4.event,\n context = _ref4.context;\n\n _this7.setState({\n ariaLiveContext: instructionsAriaMessage(event, _extends({}, context, {\n label: _this7.props['aria-label']\n }))\n });\n };\n\n this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this7.focusInput();\n };\n\n this.onMenuMouseMove = function (event) {\n _this7.blockOptionHover = false;\n };\n\n this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this7.props.openMenuOnClick;\n\n if (!_this7.state.isFocused) {\n if (openMenuOnClick) {\n _this7.openAfterFocus = true;\n }\n _this7.focusInput();\n } else if (!_this7.props.menuIsOpen) {\n _this7.openMenu('first');\n } else {\n _this7.onMenuClose();\n }\n // $FlowFixMe HTMLElement type does not have tagName property\n if (event.target.tagName !== 'INPUT') {\n event.preventDefault();\n }\n };\n\n this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this7.props.isDisabled) return;\n var _props17 = _this7.props,\n isMulti = _props17.isMulti,\n menuIsOpen = _props17.menuIsOpen;\n\n _this7.focusInput();\n if (menuIsOpen) {\n _this7.inputIsHiddenAfterUpdate = !isMulti;\n _this7.onMenuClose();\n } else {\n _this7.openMenu('first');\n }\n event.preventDefault();\n event.stopPropagation();\n };\n\n this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this7.clearValue();\n event.stopPropagation();\n _this7.openAfterFocus = false;\n setTimeout(function () {\n return _this7.focusInput();\n });\n };\n\n this.onScroll = function (event) {\n if (typeof _this7.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this7.props.onMenuClose();\n }\n } else if (typeof _this7.props.closeMenuOnScroll === 'function') {\n if (_this7.props.closeMenuOnScroll(event)) {\n _this7.props.onMenuClose();\n }\n }\n };\n\n this.onCompositionStart = function () {\n _this7.setState({\n isComposing: true\n });\n };\n\n this.onCompositionEnd = function () {\n _this7.setState({\n isComposing: false\n });\n };\n\n this.onTouchStart = function (_ref5) {\n var _ref5$touches = slicedToArray(_ref5.touches, 1),\n touch = _ref5$touches[0];\n\n _this7.initialTouchX = touch.clientX;\n _this7.initialTouchY = touch.clientY;\n _this7.userIsDragging = false;\n };\n\n this.onTouchMove = function (_ref6) {\n var _ref6$touches = slicedToArray(_ref6.touches, 1),\n touch = _ref6$touches[0];\n\n var deltaX = Math.abs(touch.clientX - _this7.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this7.initialTouchY);\n var moveThreshold = 5;\n\n _this7.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n this.onTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n // type cast the EventTarget\n var target = event.target;\n\n // close the menu if the user taps outside\n if (_this7.controlRef && !_this7.controlRef.contains(target) && _this7.menuListRef && !_this7.menuListRef.contains(target)) {\n _this7.blurInput();\n }\n\n // reset move vars\n _this7.initialTouchX = 0;\n _this7.initialTouchY = 0;\n };\n\n this.onControlTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onControlMouseDown(event);\n };\n\n this.onClearIndicatorTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onClearIndicatorMouseDown(event);\n };\n\n this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onDropdownIndicatorMouseDown(event);\n };\n\n this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.onInputChange(inputValue, { action: 'input-change' });\n _this7.onMenuOpen();\n };\n\n this.onInputFocus = function (event) {\n var _props18 = _this7.props,\n isSearchable = _props18.isSearchable,\n isMulti = _props18.isMulti;\n\n if (_this7.props.onFocus) {\n _this7.props.onFocus(event);\n }\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n _this7.setState({\n isFocused: true\n });\n if (_this7.openAfterFocus || _this7.props.openMenuOnFocus) {\n _this7.openMenu('first');\n }\n _this7.openAfterFocus = false;\n };\n\n this.onInputBlur = function (event) {\n if (_this7.props.onBlur) {\n _this7.props.onBlur(event);\n }\n _this7.onInputChange('', { action: 'input-blur' });\n _this7.onMenuClose();\n _this7.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n this.onOptionHover = function (focusedOption) {\n if (_this7.blockOptionHover || _this7.state.focusedOption === focusedOption) {\n return;\n }\n _this7.setState({ focusedOption: focusedOption });\n };\n\n this.shouldHideSelectedOptions = function () {\n var _props19 = _this7.props,\n hideSelectedOptions = _props19.hideSelectedOptions,\n isMulti = _props19.isMulti;\n\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n };\n\n this.onKeyDown = function (event) {\n var _props20 = _this7.props,\n isMulti = _props20.isMulti,\n backspaceRemovesValue = _props20.backspaceRemovesValue,\n escapeClearsValue = _props20.escapeClearsValue,\n inputValue = _props20.inputValue,\n isClearable = _props20.isClearable,\n isDisabled = _props20.isDisabled,\n menuIsOpen = _props20.menuIsOpen,\n onKeyDown = _props20.onKeyDown,\n tabSelectsValue = _props20.tabSelectsValue,\n openMenuOnFocus = _props20.openMenuOnFocus;\n var _state9 = _this7.state,\n isComposing = _state9.isComposing,\n focusedOption = _state9.focusedOption,\n focusedValue = _state9.focusedValue,\n selectValue = _state9.selectValue;\n\n\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this7.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this7.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this7.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this7.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n _this7.popValue();\n }\n break;\n case 'Tab':\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this7.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this7.selectOption(focusedOption);\n break;\n case 'Enter':\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (isComposing) return;\n _this7.selectOption(focusedOption);\n } else {\n _this7.focusOption('first');\n }\n break;\n case 'Escape':\n if (menuIsOpen) {\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.onInputChange('', { action: 'menu-close' });\n _this7.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this7.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this7.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this7.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this7.focusOption('up');\n } else {\n _this7.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this7.focusOption('down');\n } else {\n _this7.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this7.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this7.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this7.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this7.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp2;\n\n return _temp2 = _class = function (_Component) {\n inherits(StateManager, _Component);\n\n function StateManager() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, StateManager);\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, (_ref = StateManager.__proto__ || Object.getPrototypeOf(StateManager)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n }, _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n _this.setState({ value: value });\n }, _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n }, _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n _this.setState({ menuIsOpen: true });\n }, _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n _this.setState({ menuIsOpen: false });\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(StateManager, [{\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'getProp',\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n }\n }, {\n key: 'callProp',\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _props;\n\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_props = this.props)[name].apply(_props, toConsumableArray(args));\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n _this2.select = _ref2;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n return StateManager;\n }(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]), _class.defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n }, _temp2;\n};\n\nvar defaultProps$1 = {\n cacheOptions: false,\n defaultOptions: false\n};\n\nvar makeAsyncSelect = function makeAsyncSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n inherits(Async, _Component);\n\n function Async(props) {\n classCallCheck(this, Async);\n\n var _this = possibleConstructorReturn(this, (Async.__proto__ || Object.getPrototypeOf(Async)).call(this));\n\n _this.mounted = false;\n _this.optionsCache = {};\n\n _this.handleInputChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n cacheOptions = _this$props.cacheOptions,\n onInputChange = _this$props.onInputChange;\n // TODO\n\n var inputValue = handleInputChange(newValue, actionMeta, onInputChange);\n if (!inputValue) {\n delete _this.lastRequest;\n _this.setState({\n inputValue: '',\n loadedInputValue: '',\n loadedOptions: [],\n isLoading: false,\n passEmptyOptions: false\n });\n return;\n }\n if (cacheOptions && _this.optionsCache[inputValue]) {\n _this.setState({\n inputValue: inputValue,\n loadedInputValue: inputValue,\n loadedOptions: _this.optionsCache[inputValue],\n isLoading: false,\n passEmptyOptions: false\n });\n } else {\n var request = _this.lastRequest = {};\n _this.setState({\n inputValue: inputValue,\n isLoading: true,\n passEmptyOptions: !_this.state.loadedInputValue\n }, function () {\n _this.loadOptions(inputValue, function (options) {\n if (!_this.mounted) return;\n if (options) {\n _this.optionsCache[inputValue] = options;\n }\n if (request !== _this.lastRequest) return;\n delete _this.lastRequest;\n _this.setState({\n isLoading: false,\n loadedInputValue: inputValue,\n loadedOptions: options || [],\n passEmptyOptions: false\n });\n });\n });\n }\n return inputValue;\n };\n\n _this.state = {\n defaultOptions: Array.isArray(props.defaultOptions) ? props.defaultOptions : undefined,\n inputValue: '',\n isLoading: props.defaultOptions === true ? true : false,\n loadedOptions: [],\n passEmptyOptions: false\n };\n return _this;\n }\n\n createClass(Async, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.mounted = true;\n var defaultOptions = this.props.defaultOptions;\n\n if (defaultOptions === true) {\n this.loadOptions('', function (options) {\n if (!_this2.mounted) return;\n var isLoading = !!_this2.lastRequest;\n _this2.setState({ defaultOptions: options || [], isLoading: isLoading });\n });\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n // if the cacheOptions prop changes, clear the cache\n if (nextProps.cacheOptions !== this.props.cacheOptions) {\n this.optionsCache = {};\n }\n if (nextProps.defaultOptions !== this.props.defaultOptions) {\n this.setState({\n defaultOptions: Array.isArray(nextProps.defaultOptions) ? nextProps.defaultOptions : undefined\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'loadOptions',\n value: function loadOptions(inputValue, callback) {\n var loadOptions = this.props.loadOptions;\n\n if (!loadOptions) return callback();\n var loader = loadOptions(inputValue, callback);\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n loadOptions = _props.loadOptions,\n props = objectWithoutProperties(_props, ['loadOptions']);\n var _state = this.state,\n defaultOptions = _state.defaultOptions,\n inputValue = _state.inputValue,\n isLoading = _state.isLoading,\n loadedInputValue = _state.loadedInputValue,\n loadedOptions = _state.loadedOptions,\n passEmptyOptions = _state.passEmptyOptions;\n\n var options = passEmptyOptions ? [] : inputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return (\n // $FlowFixMe\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectComponent, _extends({}, props, {\n filterOption: this.props.filterOption || null,\n ref: function ref(_ref) {\n _this3.select = _ref;\n },\n options: options,\n isLoading: isLoading,\n onInputChange: this.handleInputChange\n }))\n );\n }\n }]);\n return Async;\n }(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]), _class.defaultProps = defaultProps$1, _temp;\n};\nvar Async = makeAsyncSelect(manageState(Select));\n\nvar compareOption = function compareOption(inputValue, option) {\n var candidate = inputValue.toLowerCase();\n return option.value.toLowerCase() === candidate || option.label.toLowerCase() === candidate;\n};\n\nvar builtins = {\n formatCreateLabel: function formatCreateLabel(inputValue) {\n return 'Create \"' + inputValue + '\"';\n },\n isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions) {\n return !(!inputValue || selectValue.some(function (option) {\n return compareOption(inputValue, option);\n }) || selectOptions.some(function (option) {\n return compareOption(inputValue, option);\n }));\n },\n getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n return {\n label: optionLabel,\n value: inputValue,\n __isNew__: true\n };\n }\n};\n\nvar defaultProps$2 = _extends({\n allowCreateWhileLoading: false,\n createOptionPosition: 'last'\n}, builtins);\n\nvar makeCreatableSelect = function makeCreatableSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n inherits(Creatable, _Component);\n\n function Creatable(props) {\n classCallCheck(this, Creatable);\n\n var _this = possibleConstructorReturn(this, (Creatable.__proto__ || Object.getPrototypeOf(Creatable)).call(this, props));\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n getNewOptionData = _this$props.getNewOptionData,\n inputValue = _this$props.inputValue,\n isMulti = _this$props.isMulti,\n onChange = _this$props.onChange,\n onCreateOption = _this$props.onCreateOption,\n value = _this$props.value;\n\n if (actionMeta.action !== 'select-option') {\n return onChange(newValue, actionMeta);\n }\n var newOption = _this.state.newOption;\n\n var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n\n if (valueArray[valueArray.length - 1] === newOption) {\n if (onCreateOption) onCreateOption(inputValue);else {\n var newOptionData = getNewOptionData(inputValue, inputValue);\n var newActionMeta = { action: 'create-option' };\n if (isMulti) {\n onChange([].concat(toConsumableArray(cleanValue(value)), [newOptionData]), newActionMeta);\n } else {\n onChange(newOptionData, newActionMeta);\n }\n }\n return;\n }\n onChange(newValue, actionMeta);\n };\n\n var options = props.options || [];\n _this.state = {\n newOption: undefined,\n options: options\n };\n return _this;\n }\n\n createClass(Creatable, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var allowCreateWhileLoading = nextProps.allowCreateWhileLoading,\n createOptionPosition = nextProps.createOptionPosition,\n formatCreateLabel = nextProps.formatCreateLabel,\n getNewOptionData = nextProps.getNewOptionData,\n inputValue = nextProps.inputValue,\n isLoading = nextProps.isLoading,\n isValidNewOption = nextProps.isValidNewOption,\n value = nextProps.value;\n\n var options = nextProps.options || [];\n var newOption = this.state.newOption;\n\n if (isValidNewOption(inputValue, cleanValue(value), options)) {\n newOption = getNewOptionData(inputValue, formatCreateLabel(inputValue));\n } else {\n newOption = undefined;\n }\n this.setState({\n newOption: newOption,\n options: (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(toConsumableArray(options)) : [].concat(toConsumableArray(options), [newOption]) : options\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = objectWithoutProperties(this.props, []);\n var options = this.state.options;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n options: options,\n onChange: this.onChange\n }));\n }\n }]);\n return Creatable;\n }(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]), _class.defaultProps = defaultProps$2, _temp;\n};\nvar Creatable = manageState(makeCreatableSelect(Select));\n\nvar AsyncCreatable = makeAsyncSelect(manageState(makeCreatableSelect(Select)));\n\n// ==============================\n// Fade Transition\n// ==============================\n\nvar Fade = function Fade(_ref) {\n var Tag = _ref.component,\n _ref$duration = _ref.duration,\n duration = _ref$duration === undefined ? 1 : _ref$duration,\n inProp = _ref.in,\n onExited = _ref.onExited,\n props = objectWithoutProperties(_ref, ['component', 'duration', 'in', 'onExited']);\n\n var transition = {\n entering: { opacity: 0 },\n entered: { opacity: 1, transition: 'opacity ' + duration + 'ms' },\n exiting: { opacity: 0 },\n exited: { opacity: 0 }\n };\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n react_transition_group__WEBPACK_IMPORTED_MODULE_7__[\"Transition\"],\n { mountOnEnter: true, unmountOnExit: true, 'in': inProp, timeout: duration },\n function (state) {\n var innerProps = {\n style: _extends({}, transition[state])\n };\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Tag, _extends({ innerProps: innerProps }, props));\n }\n );\n};\nvar collapseDuration = 260;\n\n// wrap each MultiValue with a collapse transition; decreases width until\n// finally removing from DOM\nvar Collapse = function (_Component) {\n inherits(Collapse, _Component);\n\n function Collapse() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, Collapse);\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, (_ref2 = Collapse.__proto__ || Object.getPrototypeOf(Collapse)).call.apply(_ref2, [this].concat(args))), _this), _this.duration = collapseDuration, _this.state = { width: 'auto' }, _this.transition = {\n exiting: { width: 0, transition: 'width ' + _this.duration + 'ms ease-out' },\n exited: { width: 0 }\n }, _this.getWidth = function (ref) {\n if (ref && isNaN(_this.state.width)) {\n // cannot use `offsetWidth` because it is rounded\n var _ref$getBoundingClien = ref.getBoundingClientRect(),\n _width = _ref$getBoundingClien.width;\n\n _this.setState({ width: _width });\n }\n }, _this.getStyle = function (width) {\n return {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: width\n };\n }, _this.getTransition = function (state) {\n return _this.transition[state];\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // width must be calculated; cannot transition from `undefined` to `number`\n\n\n // get base styles\n\n\n // get transition styles\n\n\n createClass(Collapse, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n inProp = _props.in;\n var width = this.state.width;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n react_transition_group__WEBPACK_IMPORTED_MODULE_7__[\"Transition\"],\n {\n enter: false,\n mountOnEnter: true,\n unmountOnExit: true,\n 'in': inProp,\n timeout: this.duration\n },\n function (state) {\n var style = _extends({}, _this2.getStyle(width), _this2.getTransition(state));\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n { ref: _this2.getWidth, style: style },\n children\n );\n }\n );\n }\n }]);\n return Collapse;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\n// strip transition props off before spreading onto select component\n// note we need to be explicit about innerRef for flow\nvar AnimatedInput = function AnimatedInput(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n innerRef = _ref.innerRef,\n props = objectWithoutProperties(_ref, ['in', 'onExited', 'appear', 'enter', 'exit', 'innerRef']);\n return (\n // $FlowFixMe\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(WrappedComponent, _extends({ innerRef: innerRef }, props))\n );\n };\n};\n\n// strip transition props off before spreading onto actual component\n\n\nvar AnimatedMultiValue = function AnimatedMultiValue(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n props = objectWithoutProperties(_ref, ['in', 'onExited']);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Collapse,\n { 'in': inProp, onExited: onExited },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(WrappedComponent, _extends({ cropWithEllipsis: inProp }, props))\n );\n };\n};\n\n// fade in when last multi-value removed, otherwise instant\nvar AnimatedPlaceholder = function AnimatedPlaceholder(WrappedComponent) {\n return function (props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Fade, _extends({\n component: WrappedComponent,\n duration: props.isMulti ? collapseDuration : 1\n }, props));\n };\n};\n\n// instant fade; all transition-group children must be transitions\n\nvar AnimatedSingleValue = function AnimatedSingleValue(WrappedComponent) {\n return function (props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Fade, _extends({ component: WrappedComponent }, props));\n };\n};\n\n// make ValueContainer a transition group\nvar AnimatedValueContainer = function AnimatedValueContainer(WrappedComponent) {\n return function (props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_transition_group__WEBPACK_IMPORTED_MODULE_7__[\"TransitionGroup\"], _extends({ component: WrappedComponent }, props));\n };\n};\n\nvar makeAnimated = function makeAnimated(externalComponents) {\n var components$$1 = defaultComponents({ components: externalComponents });\n var Input = components$$1.Input,\n MultiValue = components$$1.MultiValue,\n Placeholder = components$$1.Placeholder,\n SingleValue = components$$1.SingleValue,\n ValueContainer = components$$1.ValueContainer,\n rest = objectWithoutProperties(components$$1, ['Input', 'MultiValue', 'Placeholder', 'SingleValue', 'ValueContainer']);\n\n return _extends({\n Input: AnimatedInput(Input),\n MultiValue: AnimatedMultiValue(MultiValue),\n Placeholder: AnimatedPlaceholder(Placeholder),\n SingleValue: AnimatedSingleValue(SingleValue),\n ValueContainer: AnimatedValueContainer(ValueContainer)\n }, rest);\n};\n\nvar AnimatedComponents = makeAnimated();\n\nvar Input$1 = AnimatedComponents.Input;\nvar MultiValue$1 = AnimatedComponents.MultiValue;\nvar Placeholder$1 = AnimatedComponents.Placeholder;\nvar SingleValue$1 = AnimatedComponents.SingleValue;\nvar ValueContainer$1 = AnimatedComponents.ValueContainer;\n\nvar index = Object(memoize_one__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(makeAnimated, exportedEqual);\n\nvar index$1 = manageState(Select);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index$1);\n\n\n\n//# sourceURL=webpack:///./node_modules/react-select/dist/react-select.esm.js?")},"./node_modules/react-transition-group/CSSTransition.js": |
| 257 | /*! exports provided: default, SelectBase, Async, AsyncCreatable, Creatable, createFilter, makeAnimated, components, mergeStyles, defaultTheme */function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectBase\", function() { return Select; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Async\", function() { return Async; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AsyncCreatable\", function() { return AsyncCreatable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Creatable\", function() { return Creatable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createFilter\", function() { return createFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeAnimated\", function() { return index; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"components\", function() { return components; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeStyles\", function() { return mergeStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTheme\", function() { return defaultTheme; });\n/* harmony import */ var raf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! raf */ \"./node_modules/raf/index.js\");\n/* harmony import */ var raf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(raf__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var emotion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! emotion */ \"./node_modules/emotion/dist/index.esm.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_input_autosize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-input-autosize */ \"./node_modules/react-input-autosize/lib/AutosizeInput.js\");\n/* harmony import */ var react_input_autosize__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_input_autosize__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! memoize-one */ \"./node_modules/memoize-one/dist/memoize-one.esm.js\");\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/index.js\");\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_transition_group__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, cssKey, state, className) {\n var arr = [cssKey, className];\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push('' + applyPrefixToName(prefix, key));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\n\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n raf__WEBPACK_IMPORTED_MODULE_0___default()(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n );\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Menu\n// ==============================\n\n// Get Menu Placement\n// ------------------------------\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n\n var scrollParent = getScrollParent(menuEl);\n var defaultState = { placement: 'bottom', maxHeight: maxHeight };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --\x3e it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n // $FlowFixMe function returns above if there's no offsetParent\n\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return { placement: 'top', maxHeight: _constrainedHeight };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return { placement: 'top', maxHeight: maxHeight };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return { placement: 'top', maxHeight: maxHeight };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return { placement: 'bottom', maxHeight: maxHeight };\n default:\n throw new Error('Invalid placement provided \"' + placement + '\".');\n }\n\n // fulfil contract with flow: implicit return value of undefined\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = { bottom: 'top', top: 'bottom' };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {}, defineProperty(_ref3, alignToControl(placement), '100%'), defineProperty(_ref3, 'backgroundColor', colors.neutral0), defineProperty(_ref3, 'borderRadius', borderRadius), defineProperty(_ref3, 'boxShadow', '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), defineProperty(_ref3, 'marginBottom', spacing.menuGutter), defineProperty(_ref3, 'marginTop', spacing.menuGutter), defineProperty(_ref3, 'position', 'absolute'), defineProperty(_ref3, 'width', '100%'), defineProperty(_ref3, 'zIndex', 1), _ref3;\n};\n\n// NOTE: internal only\nvar MenuPlacer = function (_Component) {\n inherits(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _ref4;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, MenuPlacer);\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, (_ref4 = MenuPlacer.__proto__ || Object.getPrototypeOf(MenuPlacer)).call.apply(_ref4, [this].concat(args))), _this), _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n }, _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n\n\n if (!ref) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n }, _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n\n return _extends({}, _this.props, { placement: placement, maxHeight: _this.state.maxHeight });\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(MenuPlacer, [{\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n return MenuPlacer;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nMenuPlacer.contextTypes = {\n getPortalPlacement: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n var cn = cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('menu', props)), { menu: true }, className);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({ className: cn }, innerProps, { ref: innerRef }),\n children\n );\n};\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref5) {\n var maxHeight = _ref5.maxHeight,\n baseUnit = _ref5.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative', // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('menuList', props)), {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n },\n children\n );\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref6) {\n var _ref6$theme = _ref6.theme,\n baseUnit = _ref6$theme.spacing.baseUnit,\n colors = _ref6$theme.colors;\n return {\n color: colors.neutral40,\n padding: baseUnit * 2 + 'px ' + baseUnit * 3 + 'px',\n textAlign: 'center'\n };\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\n\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('noOptionsMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps),\n children\n );\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\n\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('loadingMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps),\n children\n );\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref7) {\n var rect = _ref7.rect,\n offset = _ref7.offset,\n position = _ref7.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\n\nvar MenuPortal = function (_Component2) {\n inherits(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _ref8;\n\n var _temp2, _this2, _ret2;\n\n classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = possibleConstructorReturn(this, (_ref8 = MenuPortal.__proto__ || Object.getPrototypeOf(MenuPortal)).call.apply(_ref8, [this].concat(args))), _this2), _this2.state = { placement: null }, _this2.getPortalPlacement = function (_ref9) {\n var placement = _ref9.placement;\n\n var initialPlacement = coercePlacement(_this2.props.menuPlacement);\n\n // avoid re-renders if the placement has not changed\n if (placement !== initialPlacement) {\n _this2.setState({ placement: placement });\n }\n }, _temp2), possibleConstructorReturn(_this2, _ret2);\n }\n\n createClass(MenuPortal, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n }\n\n // callback for occassions where the menu must \"flip\"\n\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n appendTo = _props.appendTo,\n children = _props.children,\n controlElement = _props.controlElement,\n menuPlacement = _props.menuPlacement,\n position = _props.menuPosition,\n getStyles = _props.getStyles;\n\n var isFixed = position === 'fixed';\n\n // bail early if required elements aren't present\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = { offset: offset, position: position, rect: rect };\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n { className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('menuPortal', state)) },\n children\n );\n\n return appendTo ? Object(react_dom__WEBPACK_IMPORTED_MODULE_3__[\"createPortal\"])(menuWrapper, appendTo) : menuWrapper;\n }\n }]);\n return MenuPortal;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\nMenuPortal.childContextTypes = {\n getPortalPlacement: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func\n};\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && (typeof a === 'undefined' ? 'undefined' : _typeof(a)) == 'object' && (typeof b === 'undefined' ? 'undefined' : _typeof(b)) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n }\n // end fast-deep-equal\n\n // Custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n}\n\nvar diacritics = [{ base: 'A', letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g }, { base: 'AA', letters: /[\\uA732]/g }, { base: 'AE', letters: /[\\u00C6\\u01FC\\u01E2]/g }, { base: 'AO', letters: /[\\uA734]/g }, { base: 'AU', letters: /[\\uA736]/g }, { base: 'AV', letters: /[\\uA738\\uA73A]/g }, { base: 'AY', letters: /[\\uA73C]/g }, { base: 'B', letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g }, { base: 'C', letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g }, { base: 'D', letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g }, { base: 'DZ', letters: /[\\u01F1\\u01C4]/g }, { base: 'Dz', letters: /[\\u01F2\\u01C5]/g }, { base: 'E', letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g }, { base: 'F', letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g }, { base: 'G', letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g }, { base: 'H', letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g }, { base: 'I', letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g }, { base: 'J', letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g }, { base: 'K', letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g }, { base: 'L', letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g }, { base: 'LJ', letters: /[\\u01C7]/g }, { base: 'Lj', letters: /[\\u01C8]/g }, { base: 'M', letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g }, { base: 'N', letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g }, { base: 'NJ', letters: /[\\u01CA]/g }, { base: 'Nj', letters: /[\\u01CB]/g }, { base: 'O', letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g }, { base: 'OI', letters: /[\\u01A2]/g }, { base: 'OO', letters: /[\\uA74E]/g }, { base: 'OU', letters: /[\\u0222]/g }, { base: 'P', letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g }, { base: 'Q', letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g }, { base: 'R', letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g }, { base: 'S', letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g }, { base: 'T', letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g }, { base: 'TZ', letters: /[\\uA728]/g }, { base: 'U', letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g }, { base: 'V', letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g }, { base: 'VY', letters: /[\\uA760]/g }, { base: 'W', letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g }, { base: 'X', letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g }, { base: 'Y', letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g }, { base: 'Z', letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g }, { base: 'a', letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g }, { base: 'aa', letters: /[\\uA733]/g }, { base: 'ae', letters: /[\\u00E6\\u01FD\\u01E3]/g }, { base: 'ao', letters: /[\\uA735]/g }, { base: 'au', letters: /[\\uA737]/g }, { base: 'av', letters: /[\\uA739\\uA73B]/g }, { base: 'ay', letters: /[\\uA73D]/g }, { base: 'b', letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g }, { base: 'c', letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g }, { base: 'd', letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g }, { base: 'dz', letters: /[\\u01F3\\u01C6]/g }, { base: 'e', letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g }, { base: 'f', letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g }, { base: 'g', letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g }, { base: 'h', letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g }, { base: 'hv', letters: /[\\u0195]/g }, { base: 'i', letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g }, { base: 'j', letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g }, { base: 'k', letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g }, { base: 'l', letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g }, { base: 'lj', letters: /[\\u01C9]/g }, { base: 'm', letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g }, { base: 'n', letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g }, { base: 'nj', letters: /[\\u01CC]/g }, { base: 'o', letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g }, { base: 'oi', letters: /[\\u01A3]/g }, { base: 'ou', letters: /[\\u0223]/g }, { base: 'oo', letters: /[\\uA74F]/g }, { base: 'p', letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g }, { base: 'q', letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g }, { base: 'r', letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g }, { base: 's', letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g }, { base: 't', letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g }, { base: 'tz', letters: /[\\uA729]/g }, { base: 'u', letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g }, { base: 'v', letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g }, { base: 'vy', letters: /[\\uA761]/g }, { base: 'w', letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g }, { base: 'x', letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g }, { base: 'y', letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g }, { base: 'z', letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g }];\n\nvar stripDiacritics = function stripDiacritics(str) {\n\tfor (var i = 0; i < diacritics.length; i++) {\n\t\tstr = str.replace(diacritics[i].letters, diacritics[i].base);\n\t}\n\treturn str;\n};\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return option.label + ' ' + option.value;\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _extends({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar A11yText = function A11yText(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('span', _extends({\n className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n zIndex: 9999,\n border: 0,\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: 1,\n width: 1,\n position: 'absolute',\n overflow: 'hidden',\n padding: 0,\n whiteSpace: 'nowrap',\n backgroundColor: 'red',\n color: 'blue'\n })\n }, props));\n};\n\nvar DummyInput = function (_Component) {\n inherits(DummyInput, _Component);\n\n function DummyInput() {\n classCallCheck(this, DummyInput);\n return possibleConstructorReturn(this, (DummyInput.__proto__ || Object.getPrototypeOf(DummyInput)).apply(this, arguments));\n }\n\n createClass(DummyInput, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n inProp = _props.in,\n out = _props.out,\n onExited = _props.onExited,\n appear = _props.appear,\n enter = _props.enter,\n exit = _props.exit,\n innerRef = _props.innerRef,\n emotion = _props.emotion,\n props = objectWithoutProperties(_props, ['in', 'out', 'onExited', 'appear', 'enter', 'exit', 'innerRef', 'emotion']);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', _extends({\n ref: innerRef\n }, props, {\n className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n\n // important! without `width` browsers won't allow focus\n width: 1,\n\n // remove cursor on desktop\n color: 'transparent',\n\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n })\n }));\n }\n }]);\n return DummyInput;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar NodeResolver = function (_Component) {\n inherits(NodeResolver, _Component);\n\n function NodeResolver() {\n classCallCheck(this, NodeResolver);\n return possibleConstructorReturn(this, (NodeResolver.__proto__ || Object.getPrototypeOf(NodeResolver)).apply(this, arguments));\n }\n\n createClass(NodeResolver, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.props.innerRef(Object(react_dom__WEBPACK_IMPORTED_MODULE_3__[\"findDOMNode\"])(this));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.props.innerRef(null);\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n return NodeResolver;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\n\nvar LOCK_STYLES = {\n boxSizing: 'border-box', // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar activeScrollLocks = 0;\n\nvar ScrollLock = function (_Component) {\n inherits(ScrollLock, _Component);\n\n function ScrollLock() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollLock);\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, (_ref = ScrollLock.__proto__ || Object.getPrototypeOf(ScrollLock)).call.apply(_ref, [this].concat(args))), _this), _this.originalStyles = {}, _this.listenerOptions = {\n capture: false,\n passive: false\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(ScrollLock, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n\n var _props = this.props,\n accountForScrollbars = _props.accountForScrollbars,\n touchScrollTarget = _props.touchScrollTarget;\n\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = adjustedPadding + 'px';\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n\n var _props2 = this.props,\n accountForScrollbars = _props2.accountForScrollbars,\n touchScrollTarget = _props2.touchScrollTarget;\n\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n return ScrollLock;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nScrollLock.defaultProps = {\n accountForScrollbars: true\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\n\nvar ScrollBlock = function (_PureComponent) {\n inherits(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollBlock);\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, (_ref = ScrollBlock.__proto__ || Object.getPrototypeOf(ScrollBlock)).call.apply(_ref, [this].concat(args))), _this), _this.state = { touchScrollTarget: null }, _this.getScrollTarget = function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n _this.setState({ touchScrollTarget: ref });\n }, _this.blurSelectInput = function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // must be in state to trigger a re-render, only runs once per instance\n\n\n // this will close the menu when a user clicks outside\n\n\n createClass(ScrollBlock, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n isEnabled = _props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget;\n\n // bail early if not enabled\n\n if (!isEnabled) return children;\n\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n null,\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('div', {\n onClick: this.blurSelectInput,\n className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({ position: 'fixed', left: 0, bottom: 0, right: 0, top: 0 })\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n NodeResolver,\n { innerRef: this.getScrollTarget },\n children\n ),\n touchScrollTarget ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ScrollLock, { touchScrollTarget: touchScrollTarget }) : null\n );\n }\n }]);\n return ScrollBlock;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"PureComponent\"]);\n\nvar ScrollCaptor = function (_Component) {\n inherits(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollCaptor);\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, (_ref = ScrollCaptor.__proto__ || Object.getPrototypeOf(ScrollCaptor)).call.apply(_ref, [this].concat(args))), _this), _this.isBottom = false, _this.isTop = false, _this.cancelScroll = function (event) {\n event.preventDefault();\n event.stopPropagation();\n }, _this.handleEventDelta = function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n }, _this.onWheel = function (event) {\n _this.handleEventDelta(event, event.deltaY);\n }, _this.onTouchStart = function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n }, _this.onTouchMove = function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n _this.handleEventDelta(event, deltaY);\n }, _this.getScrollTarget = function (ref) {\n _this.scrollTarget = ref;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(ScrollCaptor, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: 'startListening',\n value: function startListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return;\n\n // all the if statements are to appease Flow 😢\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: 'stopListening',\n value: function stopListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return;\n\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n NodeResolver,\n { innerRef: this.getScrollTarget },\n this.props.children\n );\n }\n }]);\n return ScrollCaptor;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar ScrollCaptorSwitch = function (_Component2) {\n inherits(ScrollCaptorSwitch, _Component2);\n\n function ScrollCaptorSwitch() {\n classCallCheck(this, ScrollCaptorSwitch);\n return possibleConstructorReturn(this, (ScrollCaptorSwitch.__proto__ || Object.getPrototypeOf(ScrollCaptorSwitch)).apply(this, arguments));\n }\n\n createClass(ScrollCaptorSwitch, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n isEnabled = _props.isEnabled,\n props = objectWithoutProperties(_props, ['isEnabled']);\n\n return isEnabled ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ScrollCaptor, props) : this.props.children;\n }\n }]);\n return ScrollCaptorSwitch;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nScrollCaptorSwitch.defaultProps = { isEnabled: true };\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var isSearchable = context.isSearchable,\n isMulti = context.isMulti,\n label = context.label;\n\n switch (event) {\n case 'menu':\n return 'Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu, press Tab to select the option and exit the menu.';\n case 'input':\n return (label ? label : 'Select') + ' is focused ' + (isSearchable ? ',type to refine list' : '') + ', press Down to open the menu, ' + (isMulti ? ' press left to focus selected values' : '');\n case 'value':\n return 'Use left and right to toggle between focused values, press Enter to remove the currently focused value';\n }\n};\n\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value;\n\n if (!value) return;\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return 'option ' + value + ', deselected.';\n case 'select-option':\n return 'option ' + value + ', selected.';\n }\n};\n\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return 'value ' + getOptionLabel(focusedValue) + ' focused, ' + (selectValue.indexOf(focusedValue) + 1) + ' of ' + selectValue.length + '.';\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return 'option ' + getOptionLabel(focusedOption) + ' focused, ' + (options.indexOf(focusedOption) + 1) + ' of ' + options.length + '.';\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return '' + screenReaderMessage + (inputValue ? ' for search term ' + inputValue : '') + '.';\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\n\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\n\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\n\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null, // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('container', props)), {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps),\n children\n );\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: spacing.baseUnit / 2 + 'px ' + spacing.baseUnit * 2 + 'px',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function (_Component) {\n inherits(ValueContainer, _Component);\n\n function ValueContainer() {\n classCallCheck(this, ValueContainer);\n return possibleConstructorReturn(this, (ValueContainer.__proto__ || Object.getPrototypeOf(ValueContainer)).apply(this, arguments));\n }\n\n createClass(ValueContainer, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n cx = _props.cx,\n isMulti = _props.isMulti,\n getStyles = _props.getStyles,\n hasValue = _props.hasValue;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('valueContainer', this.props)), {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n },\n children\n );\n }\n }]);\n return ValueContainer;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('indicatorsContainer', props)), {\n 'indicators': true\n }, className)\n },\n children\n );\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\n\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = objectWithoutProperties(_ref, ['size']);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('svg', _extends({\n height: size,\n width: size,\n viewBox: '0 0 20 20',\n 'aria-hidden': 'true',\n focusable: 'false',\n className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n display: 'inline-block',\n fill: 'currentColor',\n lineHeight: 1,\n stroke: 'currentColor',\n strokeWidth: 0\n })\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Svg,\n _extends({ size: 20 }, props),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('path', { d: 'M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z' })\n );\n};\nvar DownChevron = function DownChevron(props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Svg,\n _extends({ size: 20 }, props),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('path', { d: 'M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z' })\n );\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref2) {\n var isFocused = _ref2.isFocused,\n _ref2$theme = _ref2.theme,\n baseUnit = _ref2$theme.spacing.baseUnit,\n colors = _ref2$theme.colors;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('dropdownIndicator', props)), {\n 'indicator': true,\n 'dropdown-indicator': true\n }, className)\n }),\n children || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DownChevron, null)\n );\n};\n\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('clearIndicator', props)), {\n 'indicator': true,\n 'clear-indicator': true\n }, className)\n }),\n children || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(CrossIcon, null)\n );\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref3) {\n var isDisabled = _ref3.isDisabled,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\n\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('span', _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('indicatorSeparator', props)), { 'indicator-separator': true }, className)\n }));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar keyframesName = 'react-select-loading-indicator';\nvar keyframesInjected = false;\n\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref4) {\n var isFocused = _ref4.isFocused,\n size = _ref4.size,\n _ref4$theme = _ref4.theme,\n colors = _ref4$theme.colors,\n baseUnit = _ref4$theme.spacing.baseUnit;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref5) {\n var color = _ref5.color,\n delay = _ref5.delay,\n offset = _ref5.offset;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('span', {\n className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])({\n animationDuration: '1s',\n animationDelay: delay + 'ms',\n animationIterationCount: 'infinite',\n animationName: keyframesName,\n animationTimingFunction: 'ease-in-out',\n backgroundColor: color,\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n })\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isFocused = props.isFocused,\n isRtl = props.isRtl,\n colors = props.theme.colors;\n\n var color = isFocused ? colors.neutral80 : colors.neutral20;\n\n if (!keyframesInjected) {\n // eslint-disable-next-line no-unused-expressions\n Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"injectGlobal\"])('@keyframes ', keyframesName, '{0%,80%,100%{opacity:0;}40%{opacity:1;}};');\n keyframesInjected = true;\n }\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('loadingIndicator', props)), {\n 'indicator': true,\n 'loading-indicator': true\n }, className)\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingDot, { color: color, delay: 0, offset: isRtl }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingDot, { color: color, delay: 160, offset: true }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingDot, { color: color, delay: 320, offset: !isRtl })\n );\n};\nLoadingIndicator.defaultProps = { size: 4 };\n\nvar css$1 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? '0 0 0 1px ' + colors.primary : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('control', props)), {\n 'control': true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('group', props)), { 'group': true }, className)\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Heading,\n _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }),\n label\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n null,\n children\n )\n );\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\n\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n selectProps = props.selectProps,\n cleanProps = objectWithoutProperties(props, ['className', 'cx', 'getStyles', 'theme', 'selectProps']);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('div', _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('groupHeading', _extends({ theme: theme }, cleanProps))), { 'group-heading': true }, className)\n }, cleanProps));\n};\n\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\nvar inputStyle = function inputStyle(isHidden) {\n return {\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n selectProps = _ref2.selectProps,\n props = objectWithoutProperties(_ref2, ['className', 'cx', 'getStyles', 'innerRef', 'isHidden', 'isDisabled', 'theme', 'selectProps']);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n { className: /*#__PURE__*/ /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('input', _extends({ theme: theme }, props))) },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_input_autosize__WEBPACK_IMPORTED_MODULE_5___default.a, _extends({\n className: cx(null, { 'input': true }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props))\n );\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n };\n};\n\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\n\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\n\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n innerProps,\n children\n );\n};\n\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\n\nvar MultiValueRemove = function (_Component) {\n inherits(MultiValueRemove, _Component);\n\n function MultiValueRemove() {\n classCallCheck(this, MultiValueRemove);\n return possibleConstructorReturn(this, (MultiValueRemove.__proto__ || Object.getPrototypeOf(MultiValueRemove)).apply(this, arguments));\n }\n\n createClass(MultiValueRemove, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n innerProps = _props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n innerProps,\n children || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(CrossIcon, { size: 14 })\n );\n }\n }]);\n return MultiValueRemove;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nvar MultiValue = function (_Component2) {\n inherits(MultiValue, _Component2);\n\n function MultiValue() {\n classCallCheck(this, MultiValue);\n return possibleConstructorReturn(this, (MultiValue.__proto__ || Object.getPrototypeOf(MultiValue)).apply(this, arguments));\n }\n\n createClass(MultiValue, [{\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n components = _props2.components,\n cx = _props2.cx,\n data = _props2.data,\n getStyles = _props2.getStyles,\n innerProps = _props2.innerProps,\n isDisabled = _props2.isDisabled,\n removeProps = _props2.removeProps,\n selectProps = _props2.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n\n\n var containerInnerProps = _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('multiValue', this.props)), {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className)\n }, innerProps);\n\n var labelInnerProps = {\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('multiValueLabel', this.props)), {\n 'multi-value__label': true\n }, className)\n };\n\n var removeInnerProps = _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('multiValueRemove', this.props)), {\n 'multi-value__remove': true\n }, className)\n }, removeProps);\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Container,\n {\n data: data,\n innerProps: containerInnerProps,\n selectProps: selectProps\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Label,\n {\n data: data,\n innerProps: labelInnerProps,\n selectProps: selectProps\n },\n children\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Remove, {\n data: data,\n innerProps: removeInnerProps,\n selectProps: selectProps\n })\n );\n }\n }]);\n return MultiValue;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: spacing.baseUnit * 2 + 'px ' + spacing.baseUnit * 3 + 'px',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: isSelected ? colors.primary : colors.primary50\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('option', props)), {\n 'option': true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('placeholder', props)), {\n 'placeholder': true\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar css$2 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: 'calc(100% - ' + spacing.baseUnit * 2 + 'px)',\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/Object(emotion__WEBPACK_IMPORTED_MODULE_2__[\"css\"])(getStyles('singleValue', props)), {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\n\nvar defaultComponents = function defaultComponents(props) {\n return _extends({}, components, props.components);\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n};\n\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _extends({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\n\nvar borderRadius = 4;\nvar baseUnit = 4; /* Used to calculate consistent margin/padding on elements */\nvar controlHeight = 38; /* The minimum height of the control */\nvar menuGutter = baseUnit * 2; /* The amount of space between the control and menu */\n\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\n\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return count + ' result' + (count !== 1 ? 's' : '') + ' available';\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\n\nvar instanceId = 1;\n\nvar Select = function (_Component) {\n inherits(Select, _Component);\n\n // Lifecycle\n // ------------------------------\n\n // Refs\n // ------------------------------\n\n // Misc. Instance Properties\n // ------------------------------\n\n function Select(props) {\n classCallCheck(this, Select);\n\n var _this = possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var value = props.value;\n\n _this.cacheComponents = Object(memoize_one__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_this.cacheComponents, exportedEqual).bind(_this);\n _this.cacheComponents(props.components);\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var selectValue = cleanValue(value);\n var menuOptions = _this.buildMenuOptions(props, selectValue);\n\n _this.state.menuOptions = menuOptions;\n _this.state.selectValue = selectValue;\n return _this;\n } // TODO\n\n\n createClass(Select, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _props = this.props,\n options = _props.options,\n value = _props.value,\n inputValue = _props.inputValue;\n // re-cache custom components\n\n this.cacheComponents(nextProps.components);\n // rebuild the menu options\n if (nextProps.value !== value || nextProps.options !== options || nextProps.inputValue !== inputValue) {\n var _selectValue = cleanValue(nextProps.value);\n var _menuOptions = this.buildMenuOptions(nextProps, _selectValue);\n var _focusedValue = this.getNextFocusedValue(_selectValue);\n var _focusedOption = this.getNextFocusedOption(_menuOptions.focusable);\n this.setState({ menuOptions: _menuOptions, selectValue: _selectValue, focusedOption: _focusedOption, focusedValue: _focusedValue });\n }\n // some updates should toggle the state of the input visibility\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _props2 = this.props,\n isDisabled = _props2.isDisabled,\n menuIsOpen = _props2.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: 'onMenuOpen',\n\n // ==============================\n // Consumer Handlers\n // ==============================\n\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: 'onMenuClose',\n value: function onMenuClose() {\n var _props3 = this.props,\n isSearchable = _props3.isSearchable,\n isMulti = _props3.isMulti;\n\n this.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n this.onInputChange('', { action: 'menu-close' });\n this.props.onMenuClose();\n }\n }, {\n key: 'onInputChange',\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n\n }, {\n key: 'focusInput',\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: 'blurInput',\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n\n }, {\n key: 'openMenu',\n value: function openMenu(focusOption) {\n var _state = this.state,\n menuOptions = _state.menuOptions,\n selectValue = _state.selectValue;\n var isMulti = this.props.isMulti;\n\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.inputIsHiddenAfterUpdate = false;\n\n this.onMenuOpen();\n this.setState({\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n });\n\n this.announceAriaLiveContext({ event: 'menu' });\n }\n }, {\n key: 'focusValue',\n value: function focusValue(direction) {\n var _props4 = this.props,\n isMulti = _props4.isMulti,\n isSearchable = _props4.isSearchable;\n var _state2 = this.state,\n selectValue = _state2.selectValue,\n focusedValue = _state2.focusedValue;\n\n // Only multiselects support value focusing\n\n if (!isMulti) return;\n\n this.setState({\n focusedOption: null\n });\n\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({ event: 'value' });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus === -1 ? false : true,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: 'focusOption',\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var _state3 = this.state,\n focusedOption = _state3.focusedOption,\n menuOptions = _state3.menuOptions;\n\n var options = menuOptions.focusable;\n\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({ event: 'menu' });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: 'getTheme',\n\n\n // ==============================\n // Getters\n // ==============================\n\n value: function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _extends({}, defaultTheme, this.props.theme);\n }\n }, {\n key: 'getCommonProps',\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n\n var hasValue = this.hasValue();\n var getValue = function getValue() {\n return selectValue;\n };\n var cxPrefix = classNamePrefix;\n\n var cx = classNames.bind(null, cxPrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: 'getNextFocusedValue',\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n var _state4 = this.state,\n focusedValue = _state4.focusedValue,\n lastSelectValue = _state4.selectValue;\n\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n }\n }, {\n key: 'getNextFocusedOption',\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n\n // ==============================\n // Helpers\n // ==============================\n\n }, {\n key: 'hasValue',\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n\n return selectValue.length > 0;\n }\n }, {\n key: 'hasOptions',\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: 'countOptions',\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: 'isClearable',\n value: function isClearable() {\n var _props5 = this.props,\n isClearable = _props5.isClearable,\n isMulti = _props5.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n\n return isClearable;\n }\n }, {\n key: 'isOptionDisabled',\n value: function isOptionDisabled$$1(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: 'isOptionSelected',\n value: function isOptionSelected(option, selectValue) {\n var _this2 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this2.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: 'filterOption',\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: 'formatOptionLabel',\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue2 = this.state.selectValue;\n\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue2\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: 'formatGroupLabel',\n value: function formatGroupLabel$$1(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: 'startListeningComposition',\n\n\n // ==============================\n // Composition Handlers\n // ==============================\n\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: 'stopListeningComposition',\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: 'startListeningToTouch',\n\n\n // ==============================\n // Touch Handlers\n // ==============================\n\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: 'stopListeningToTouch',\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n\n // ==============================\n // Focus Handlers\n // ==============================\n\n // ==============================\n // Keyboard Handlers\n // ==============================\n\n }, {\n key: 'buildMenuOptions',\n\n\n // ==============================\n // Menu Options\n // ==============================\n\n value: function buildMenuOptions(props, selectValue) {\n var _this3 = this;\n\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === undefined ? '' : _props$inputValue,\n options = props.options;\n\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this3.isOptionDisabled(option, selectValue);\n var isSelected = _this3.isOptionSelected(option, selectValue);\n var label = _this3.getOptionLabel(option);\n var value = _this3.getOptionValue(option);\n\n if (_this3.shouldHideSelectedOptions() && isSelected || !_this3.filterOption({ label: label, value: value, data: option }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this3.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this3.selectOption(option);\n };\n var optionId = _this3.getElementId('option') + '-' + id;\n\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n role: 'option',\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this3.hasGroups) _this3.hasGroups = true;\n\n var items = item.options;\n\n var children = items.map(function (child, i) {\n var option = toOption(child, itemIndex + '-' + i);\n if (option && !option.isDisabled) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n if (children.length) {\n var groupId = _this3.getElementId('group') + '-' + itemIndex;\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, '' + itemIndex);\n if (option) {\n acc.render.push(option);\n if (!option.isDisabled) acc.focusable.push(item);\n }\n }\n return acc;\n }, { render: [], focusable: [] });\n }\n\n // ==============================\n // Renderers\n // ==============================\n\n }, {\n key: 'constructAriaLiveMessage',\n value: function constructAriaLiveMessage() {\n var _state5 = this.state,\n ariaLiveContext = _state5.ariaLiveContext,\n selectValue = _state5.selectValue,\n focusedValue = _state5.focusedValue,\n focusedOption = _state5.focusedOption;\n var _props6 = this.props,\n options = _props6.options,\n menuIsOpen = _props6.menuIsOpen,\n inputValue = _props6.inputValue,\n screenReaderStatus = _props6.screenReaderStatus;\n\n // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : '';\n // An aria live message representing the currently focused option in the select.\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : '';\n // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({ count: this.countOptions() })\n });\n\n return focusedValueMsg + ' ' + focusedOptionMsg + ' ' + resultsMsg + ' ' + ariaLiveContext;\n }\n }, {\n key: 'renderInput',\n value: function renderInput() {\n var _props7 = this.props,\n isDisabled = _props7.isDisabled,\n isSearchable = _props7.isSearchable,\n inputId = _props7.inputId,\n inputValue = _props7.inputValue,\n tabIndex = _props7.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n\n\n var id = inputId || this.getElementId('input');\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DummyInput, {\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n value: ''\n });\n }\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n var _commonProps = this.commonProps,\n cx = _commonProps.cx,\n theme = _commonProps.theme,\n selectProps = _commonProps.selectProps;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Input, _extends({\n autoCapitalize: 'none',\n autoComplete: 'off',\n autoCorrect: 'off',\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: 'false',\n tabIndex: tabIndex,\n theme: theme,\n type: 'text',\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: 'renderPlaceholderOrValue',\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _components = this.components,\n MultiValue = _components.MultiValue,\n MultiValueContainer = _components.MultiValueContainer,\n MultiValueLabel = _components.MultiValueLabel,\n MultiValueRemove = _components.MultiValueRemove,\n SingleValue = _components.SingleValue,\n Placeholder = _components.Placeholder;\n var commonProps = this.commonProps;\n var _props8 = this.props,\n controlShouldRenderValue = _props8.controlShouldRenderValue,\n isDisabled = _props8.isDisabled,\n isMulti = _props8.isMulti,\n inputValue = _props8.inputValue,\n placeholder = _props8.placeholder;\n var _state6 = this.state,\n selectValue = _state6.selectValue,\n focusedValue = _state6.focusedValue,\n isFocused = _state6.isFocused;\n\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Placeholder,\n _extends({}, commonProps, {\n key: 'placeholder',\n isDisabled: isDisabled,\n isFocused: isFocused\n }),\n placeholder\n );\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt) {\n var isFocused = opt === focusedValue;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MultiValue,\n _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }),\n _this4.formatOptionLabel(opt, 'value')\n );\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n SingleValue,\n _extends({}, commonProps, { data: singleValue, isDisabled: isDisabled }),\n this.formatOptionLabel(singleValue, 'value')\n );\n }\n }, {\n key: 'renderClearIndicator',\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _props9 = this.props,\n isDisabled = _props9.isDisabled,\n isLoading = _props9.isLoading;\n var isFocused = this.state.isFocused;\n\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderLoadingIndicator',\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _props10 = this.props,\n isDisabled = _props10.isDisabled,\n isLoading = _props10.isLoading;\n var isFocused = this.state.isFocused;\n\n\n if (!LoadingIndicator || !isLoading) return null;\n\n var innerProps = { 'aria-hidden': 'true' };\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderIndicatorSeparator',\n value: function renderIndicatorSeparator() {\n var _components2 = this.components,\n DropdownIndicator = _components2.DropdownIndicator,\n IndicatorSeparator = _components2.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderDropdownIndicator',\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderMenu',\n value: function renderMenu() {\n var _this5 = this;\n\n var _components3 = this.components,\n Group = _components3.Group,\n GroupHeading = _components3.GroupHeading,\n Menu$$1 = _components3.Menu,\n MenuList$$1 = _components3.MenuList,\n MenuPortal$$1 = _components3.MenuPortal,\n LoadingMessage$$1 = _components3.LoadingMessage,\n NoOptionsMessage$$1 = _components3.NoOptionsMessage,\n Option = _components3.Option;\n var commonProps = this.commonProps;\n var _state7 = this.state,\n focusedOption = _state7.focusedOption,\n menuOptions = _state7.menuOptions;\n var _props11 = this.props,\n captureMenuScroll = _props11.captureMenuScroll,\n inputValue = _props11.inputValue,\n isLoading = _props11.isLoading,\n loadingMessage = _props11.loadingMessage,\n minMenuHeight = _props11.minMenuHeight,\n maxMenuHeight = _props11.maxMenuHeight,\n menuIsOpen = _props11.menuIsOpen,\n menuPlacement = _props11.menuPlacement,\n menuPosition = _props11.menuPosition,\n menuPortalTarget = _props11.menuPortalTarget,\n menuShouldBlockScroll = _props11.menuShouldBlockScroll,\n menuShouldScrollIntoView = _props11.menuShouldScrollIntoView,\n noOptionsMessage = _props11.noOptionsMessage,\n onMenuScrollToTop = _props11.onMenuScrollToTop,\n onMenuScrollToBottom = _props11.onMenuScrollToBottom;\n\n\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Option,\n _extends({}, commonProps, props, { isFocused: isFocused }),\n _this5.formatOptionLabel(props.data, 'menu')\n );\n };\n\n var menuUI = void 0;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = objectWithoutProperties(item, ['type']);\n\n var headingId = item.key + '-heading';\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Group,\n _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }),\n item.options.map(function (option) {\n return render(option);\n })\n );\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({ inputValue: inputValue });\n if (message === null) return null;\n menuUI = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n LoadingMessage$$1,\n commonProps,\n message\n );\n } else {\n var _message = noOptionsMessage({ inputValue: inputValue });\n if (_message === null) return null;\n menuUI = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n NoOptionsMessage$$1,\n commonProps,\n _message\n );\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n\n var menuElement = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MenuPlacer,\n _extends({}, commonProps, menuPlacementProps),\n function (_ref2) {\n var ref = _ref2.ref,\n _ref2$placerProps = _ref2.placerProps,\n placement = _ref2$placerProps.placement,\n maxHeight = _ref2$placerProps.maxHeight;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Menu$$1,\n _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n ScrollCaptorSwitch,\n {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n ScrollBlock,\n { isEnabled: menuShouldBlockScroll },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MenuList$$1,\n _extends({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }),\n menuUI\n )\n )\n )\n );\n }\n );\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n MenuPortal$$1,\n _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }),\n menuElement\n ) : menuElement;\n }\n }, {\n key: 'renderFormField',\n value: function renderFormField() {\n var _this6 = this;\n\n var _props12 = this.props,\n delimiter = _props12.delimiter,\n isDisabled = _props12.isDisabled,\n isMulti = _props12.isMulti,\n name = _props12.name;\n var selectValue = this.state.selectValue;\n\n\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var _value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', { name: name, type: 'hidden', value: _value });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', {\n key: 'i-' + i,\n name: name,\n type: 'hidden',\n value: _this6.getOptionValue(opt)\n });\n }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', { name: name, type: 'hidden' });\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n null,\n input\n );\n }\n } else {\n var _value2 = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('input', { name: name, type: 'hidden', value: _value2 });\n }\n }\n }, {\n key: 'renderLiveRegion',\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n A11yText,\n { 'aria-live': 'assertive' },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'p',\n { id: 'aria-selection-event' },\n '\\xA0',\n this.state.ariaLiveSelection\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'p',\n { id: 'aria-context' },\n '\\xA0',\n this.constructAriaLiveMessage()\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _components4 = this.components,\n Control = _components4.Control,\n IndicatorsContainer = _components4.IndicatorsContainer,\n SelectContainer = _components4.SelectContainer,\n ValueContainer = _components4.ValueContainer;\n var _props13 = this.props,\n className = _props13.className,\n id = _props13.id,\n isDisabled = _props13.isDisabled,\n menuIsOpen = _props13.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n\n var commonProps = this.commonProps = this.getCommonProps();\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n SelectContainer,\n _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }),\n this.renderLiveRegion(),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Control,\n _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n ValueContainer,\n _extends({}, commonProps, { isDisabled: isDisabled }),\n this.renderPlaceholderOrValue(),\n this.renderInput()\n ),\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n IndicatorsContainer,\n _extends({}, commonProps, { isDisabled: isDisabled }),\n this.renderClearIndicator(),\n this.renderLoadingIndicator(),\n this.renderIndicatorSeparator(),\n this.renderDropdownIndicator()\n )\n ),\n this.renderMenu(),\n this.renderFormField()\n );\n }\n }]);\n return Select;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\nSelect.defaultProps = defaultProps;\n\nvar _initialiseProps = function _initialiseProps() {\n var _this7 = this;\n\n this.state = {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n isComposing: false,\n menuOptions: { render: [], focusable: [] },\n selectValue: []\n };\n this.blockOptionHover = false;\n this.clearFocusValueOnUpdate = false;\n this.hasGroups = false;\n this.initialTouchX = 0;\n this.initialTouchY = 0;\n this.instancePrefix = '';\n this.openAfterFocus = false;\n this.scrollToFocusedOptionOnUpdate = false;\n this.controlRef = null;\n\n this.getControlRef = function (ref) {\n _this7.controlRef = ref;\n };\n\n this.focusedOptionRef = null;\n\n this.getFocusedOptionRef = function (ref) {\n _this7.focusedOptionRef = ref;\n };\n\n this.menuListRef = null;\n\n this.getMenuListRef = function (ref) {\n _this7.menuListRef = ref;\n };\n\n this.inputRef = null;\n\n this.getInputRef = function (ref) {\n _this7.inputRef = ref;\n };\n\n this.cacheComponents = function (components$$1) {\n _this7.components = defaultComponents({ components: components$$1 });\n };\n\n this.focus = this.focusInput;\n this.blur = this.blurInput;\n\n this.onChange = function (newValue, actionMeta) {\n var _props14 = _this7.props,\n onChange = _props14.onChange,\n name = _props14.name;\n\n onChange(newValue, _extends({}, actionMeta, { name: name }));\n };\n\n this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments[2];\n var _props15 = _this7.props,\n closeMenuOnSelect = _props15.closeMenuOnSelect,\n isMulti = _props15.isMulti;\n\n _this7.onInputChange('', { action: 'set-value' });\n if (closeMenuOnSelect) {\n _this7.inputIsHiddenAfterUpdate = !isMulti;\n _this7.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this7.clearFocusValueOnUpdate = true;\n _this7.onChange(newValue, { action: action, option: option });\n };\n\n this.selectOption = function (newValue) {\n var _props16 = _this7.props,\n blurInputOnSelect = _props16.blurInputOnSelect,\n isMulti = _props16.isMulti;\n\n\n if (isMulti) {\n var _selectValue3 = _this7.state.selectValue;\n\n if (_this7.isOptionSelected(newValue, _selectValue3)) {\n var candidate = _this7.getOptionValue(newValue);\n _this7.setValue(_selectValue3.filter(function (i) {\n return _this7.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n _this7.announceAriaLiveSelection({\n event: 'deselect-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n } else {\n _this7.setValue([].concat(toConsumableArray(_selectValue3), [newValue]), 'select-option', newValue);\n _this7.announceAriaLiveSelection({\n event: 'select-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n }\n } else {\n _this7.setValue(newValue, 'select-option');\n _this7.announceAriaLiveSelection({\n event: 'select-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n }\n\n if (blurInputOnSelect) {\n _this7.blurInput();\n }\n };\n\n this.removeValue = function (removedValue) {\n var selectValue = _this7.state.selectValue;\n\n var candidate = _this7.getOptionValue(removedValue);\n _this7.onChange(selectValue.filter(function (i) {\n return _this7.getOptionValue(i) !== candidate;\n }), {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this7.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this7.getOptionLabel(removedValue) : undefined\n }\n });\n _this7.focusInput();\n };\n\n this.clearValue = function () {\n var isMulti = _this7.props.isMulti;\n\n _this7.onChange(isMulti ? [] : null, { action: 'clear' });\n };\n\n this.popValue = function () {\n var selectValue = _this7.state.selectValue;\n\n var lastSelectedValue = selectValue[selectValue.length - 1];\n _this7.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this7.getOptionLabel(lastSelectedValue) : undefined\n }\n });\n _this7.onChange(selectValue.slice(0, selectValue.length - 1), {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n this.getOptionLabel = function (data) {\n return _this7.props.getOptionLabel(data);\n };\n\n this.getOptionValue = function (data) {\n return _this7.props.getOptionValue(data);\n };\n\n this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this7.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n this.getElementId = function (element) {\n return _this7.instancePrefix + '-' + element;\n };\n\n this.getActiveDescendentId = function () {\n var menuIsOpen = _this7.props.menuIsOpen;\n var _state8 = _this7.state,\n menuOptions = _state8.menuOptions,\n focusedOption = _state8.focusedOption;\n\n\n if (!focusedOption || !menuIsOpen) return undefined;\n\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n\n return option && option.key;\n };\n\n this.announceAriaLiveSelection = function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this7.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n };\n\n this.announceAriaLiveContext = function (_ref4) {\n var event = _ref4.event,\n context = _ref4.context;\n\n _this7.setState({\n ariaLiveContext: instructionsAriaMessage(event, _extends({}, context, {\n label: _this7.props['aria-label']\n }))\n });\n };\n\n this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this7.focusInput();\n };\n\n this.onMenuMouseMove = function (event) {\n _this7.blockOptionHover = false;\n };\n\n this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this7.props.openMenuOnClick;\n\n if (!_this7.state.isFocused) {\n if (openMenuOnClick) {\n _this7.openAfterFocus = true;\n }\n _this7.focusInput();\n } else if (!_this7.props.menuIsOpen) {\n _this7.openMenu('first');\n } else {\n // $FlowFixMe HTMLElement type does not have tagName property\n if (event.target.tagName !== 'INPUT') {\n _this7.onMenuClose();\n }\n }\n // $FlowFixMe HTMLElement type does not have tagName property\n if (event.target.tagName !== 'INPUT') {\n event.preventDefault();\n }\n };\n\n this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this7.props.isDisabled) return;\n var _props17 = _this7.props,\n isMulti = _props17.isMulti,\n menuIsOpen = _props17.menuIsOpen;\n\n _this7.focusInput();\n if (menuIsOpen) {\n _this7.inputIsHiddenAfterUpdate = !isMulti;\n _this7.onMenuClose();\n } else {\n _this7.openMenu('first');\n }\n event.preventDefault();\n event.stopPropagation();\n };\n\n this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this7.clearValue();\n event.stopPropagation();\n _this7.openAfterFocus = false;\n setTimeout(function () {\n return _this7.focusInput();\n });\n };\n\n this.onScroll = function (event) {\n if (typeof _this7.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this7.props.onMenuClose();\n }\n } else if (typeof _this7.props.closeMenuOnScroll === 'function') {\n if (_this7.props.closeMenuOnScroll(event)) {\n _this7.props.onMenuClose();\n }\n }\n };\n\n this.onCompositionStart = function () {\n _this7.setState({\n isComposing: true\n });\n };\n\n this.onCompositionEnd = function () {\n _this7.setState({\n isComposing: false\n });\n };\n\n this.onTouchStart = function (_ref5) {\n var touches = _ref5.touches;\n\n var touch = touches.item(0);\n if (!touch) {\n return;\n }\n\n _this7.initialTouchX = touch.clientX;\n _this7.initialTouchY = touch.clientY;\n _this7.userIsDragging = false;\n };\n\n this.onTouchMove = function (_ref6) {\n var touches = _ref6.touches;\n\n var touch = touches.item(0);\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this7.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this7.initialTouchY);\n var moveThreshold = 5;\n\n _this7.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n this.onTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n // type cast the EventTarget\n var target = event.target;\n\n // close the menu if the user taps outside\n if (_this7.controlRef && !_this7.controlRef.contains(target) && _this7.menuListRef && !_this7.menuListRef.contains(target)) {\n _this7.blurInput();\n }\n\n // reset move vars\n _this7.initialTouchX = 0;\n _this7.initialTouchY = 0;\n };\n\n this.onControlTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onControlMouseDown(event);\n };\n\n this.onClearIndicatorTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onClearIndicatorMouseDown(event);\n };\n\n this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onDropdownIndicatorMouseDown(event);\n };\n\n this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.onInputChange(inputValue, { action: 'input-change' });\n _this7.onMenuOpen();\n };\n\n this.onInputFocus = function (event) {\n var _props18 = _this7.props,\n isSearchable = _props18.isSearchable,\n isMulti = _props18.isMulti;\n\n if (_this7.props.onFocus) {\n _this7.props.onFocus(event);\n }\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n _this7.setState({\n isFocused: true\n });\n if (_this7.openAfterFocus || _this7.props.openMenuOnFocus) {\n _this7.openMenu('first');\n }\n _this7.openAfterFocus = false;\n };\n\n this.onInputBlur = function (event) {\n if (_this7.menuListRef && _this7.menuListRef.contains(document.activeElement)) {\n _this7.inputRef.focus();\n return;\n }\n if (_this7.props.onBlur) {\n _this7.props.onBlur(event);\n }\n _this7.onInputChange('', { action: 'input-blur' });\n _this7.onMenuClose();\n _this7.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n this.onOptionHover = function (focusedOption) {\n if (_this7.blockOptionHover || _this7.state.focusedOption === focusedOption) {\n return;\n }\n _this7.setState({ focusedOption: focusedOption });\n };\n\n this.shouldHideSelectedOptions = function () {\n var _props19 = _this7.props,\n hideSelectedOptions = _props19.hideSelectedOptions,\n isMulti = _props19.isMulti;\n\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n };\n\n this.onKeyDown = function (event) {\n var _props20 = _this7.props,\n isMulti = _props20.isMulti,\n backspaceRemovesValue = _props20.backspaceRemovesValue,\n escapeClearsValue = _props20.escapeClearsValue,\n inputValue = _props20.inputValue,\n isClearable = _props20.isClearable,\n isDisabled = _props20.isDisabled,\n menuIsOpen = _props20.menuIsOpen,\n onKeyDown = _props20.onKeyDown,\n tabSelectsValue = _props20.tabSelectsValue,\n openMenuOnFocus = _props20.openMenuOnFocus;\n var _state9 = _this7.state,\n isComposing = _state9.isComposing,\n focusedOption = _state9.focusedOption,\n focusedValue = _state9.focusedValue,\n selectValue = _state9.selectValue;\n\n\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this7.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this7.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this7.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this7.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n if (isMulti) {\n _this7.popValue();\n } else if (isClearable) {\n _this7.clearValue();\n }\n }\n break;\n case 'Tab':\n if (isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this7.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this7.selectOption(focusedOption);\n break;\n case 'Enter':\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (isComposing) return;\n _this7.selectOption(focusedOption);\n } else {\n _this7.focusOption('first');\n }\n break;\n case 'Escape':\n if (menuIsOpen) {\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.onInputChange('', { action: 'menu-close' });\n _this7.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this7.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this7.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this7.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this7.focusOption('up');\n } else {\n _this7.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this7.focusOption('down');\n } else {\n _this7.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this7.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this7.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this7.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this7.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n};\n\nvar defaultProps$1 = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp2;\n\n return _temp2 = _class = function (_Component) {\n inherits(StateManager, _Component);\n\n function StateManager() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, StateManager);\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, (_ref = StateManager.__proto__ || Object.getPrototypeOf(StateManager)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n }, _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n _this.setState({ value: value });\n }, _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n }, _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n _this.setState({ menuIsOpen: true });\n }, _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n _this.setState({ menuIsOpen: false });\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(StateManager, [{\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'getProp',\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n }\n }, {\n key: 'callProp',\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _props;\n\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_props = this.props)[name].apply(_props, toConsumableArray(args));\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n _this2.select = _ref2;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n return StateManager;\n }(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]), _class.defaultProps = defaultProps$1, _temp2;\n};\n\nvar defaultProps$2 = {\n cacheOptions: false,\n defaultOptions: false\n};\n\nvar makeAsyncSelect = function makeAsyncSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n inherits(Async, _Component);\n\n function Async(props) {\n classCallCheck(this, Async);\n\n var _this = possibleConstructorReturn(this, (Async.__proto__ || Object.getPrototypeOf(Async)).call(this));\n\n _this.mounted = false;\n _this.optionsCache = {};\n\n _this.handleInputChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n cacheOptions = _this$props.cacheOptions,\n onInputChange = _this$props.onInputChange;\n // TODO\n\n var inputValue = handleInputChange(newValue, actionMeta, onInputChange);\n if (!inputValue) {\n delete _this.lastRequest;\n _this.setState({\n inputValue: '',\n loadedInputValue: '',\n loadedOptions: [],\n isLoading: false,\n passEmptyOptions: false\n });\n return;\n }\n if (cacheOptions && _this.optionsCache[inputValue]) {\n _this.setState({\n inputValue: inputValue,\n loadedInputValue: inputValue,\n loadedOptions: _this.optionsCache[inputValue],\n isLoading: false,\n passEmptyOptions: false\n });\n } else {\n var request = _this.lastRequest = {};\n _this.setState({\n inputValue: inputValue,\n isLoading: true,\n passEmptyOptions: !_this.state.loadedInputValue\n }, function () {\n _this.loadOptions(inputValue, function (options) {\n if (!_this.mounted) return;\n if (options) {\n _this.optionsCache[inputValue] = options;\n }\n if (request !== _this.lastRequest) return;\n delete _this.lastRequest;\n _this.setState({\n isLoading: false,\n loadedInputValue: inputValue,\n loadedOptions: options || [],\n passEmptyOptions: false\n });\n });\n });\n }\n return inputValue;\n };\n\n _this.state = {\n defaultOptions: Array.isArray(props.defaultOptions) ? props.defaultOptions : undefined,\n inputValue: typeof props.inputValue !== 'undefined' ? props.inputValue : '',\n isLoading: props.defaultOptions === true ? true : false,\n loadedOptions: [],\n passEmptyOptions: false\n };\n return _this;\n }\n\n createClass(Async, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.mounted = true;\n var defaultOptions = this.props.defaultOptions;\n var inputValue = this.state.inputValue;\n\n if (defaultOptions === true) {\n this.loadOptions(inputValue, function (options) {\n if (!_this2.mounted) return;\n var isLoading = !!_this2.lastRequest;\n _this2.setState({ defaultOptions: options || [], isLoading: isLoading });\n });\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n // if the cacheOptions prop changes, clear the cache\n if (nextProps.cacheOptions !== this.props.cacheOptions) {\n this.optionsCache = {};\n }\n if (nextProps.defaultOptions !== this.props.defaultOptions) {\n this.setState({\n defaultOptions: Array.isArray(nextProps.defaultOptions) ? nextProps.defaultOptions : undefined\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'loadOptions',\n value: function loadOptions(inputValue, callback) {\n var loadOptions = this.props.loadOptions;\n\n if (!loadOptions) return callback();\n var loader = loadOptions(inputValue, callback);\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n loadOptions = _props.loadOptions,\n props = objectWithoutProperties(_props, ['loadOptions']);\n var _state = this.state,\n defaultOptions = _state.defaultOptions,\n inputValue = _state.inputValue,\n isLoading = _state.isLoading,\n loadedInputValue = _state.loadedInputValue,\n loadedOptions = _state.loadedOptions,\n passEmptyOptions = _state.passEmptyOptions;\n\n var options = passEmptyOptions ? [] : inputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return (\n // $FlowFixMe\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectComponent, _extends({}, props, {\n filterOption: this.props.filterOption || null,\n ref: function ref(_ref) {\n _this3.select = _ref;\n },\n options: options,\n isLoading: isLoading,\n onInputChange: this.handleInputChange\n }))\n );\n }\n }]);\n return Async;\n }(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]), _class.defaultProps = defaultProps$2, _temp;\n};\nvar Async = makeAsyncSelect(manageState(Select));\n\nvar compareOption = function compareOption() {\n var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var option = arguments[1];\n\n var candidate = String(inputValue).toLowerCase();\n var optionValue = String(option.value).toLowerCase();\n var optionLabel = String(option.label).toLowerCase();\n return optionValue === candidate || optionLabel === candidate;\n};\n\nvar builtins = {\n formatCreateLabel: function formatCreateLabel(inputValue) {\n return 'Create \"' + inputValue + '\"';\n },\n isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions) {\n return !(!inputValue || selectValue.some(function (option) {\n return compareOption(inputValue, option);\n }) || selectOptions.some(function (option) {\n return compareOption(inputValue, option);\n }));\n },\n getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n return {\n label: optionLabel,\n value: inputValue,\n __isNew__: true\n };\n }\n};\n\nvar defaultProps$3 = _extends({\n allowCreateWhileLoading: false,\n createOptionPosition: 'last'\n}, builtins);\n\nvar makeCreatableSelect = function makeCreatableSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n inherits(Creatable, _Component);\n\n function Creatable(props) {\n classCallCheck(this, Creatable);\n\n var _this = possibleConstructorReturn(this, (Creatable.__proto__ || Object.getPrototypeOf(Creatable)).call(this, props));\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n getNewOptionData = _this$props.getNewOptionData,\n inputValue = _this$props.inputValue,\n isMulti = _this$props.isMulti,\n onChange = _this$props.onChange,\n onCreateOption = _this$props.onCreateOption,\n value = _this$props.value;\n\n if (actionMeta.action !== 'select-option') {\n return onChange(newValue, actionMeta);\n }\n var newOption = _this.state.newOption;\n\n var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n\n if (valueArray[valueArray.length - 1] === newOption) {\n if (onCreateOption) onCreateOption(inputValue);else {\n var newOptionData = getNewOptionData(inputValue, inputValue);\n var newActionMeta = { action: 'create-option' };\n if (isMulti) {\n onChange([].concat(toConsumableArray(cleanValue(value)), [newOptionData]), newActionMeta);\n } else {\n onChange(newOptionData, newActionMeta);\n }\n }\n return;\n }\n onChange(newValue, actionMeta);\n };\n\n var options = props.options || [];\n _this.state = {\n newOption: undefined,\n options: options\n };\n return _this;\n }\n\n createClass(Creatable, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var allowCreateWhileLoading = nextProps.allowCreateWhileLoading,\n createOptionPosition = nextProps.createOptionPosition,\n formatCreateLabel = nextProps.formatCreateLabel,\n getNewOptionData = nextProps.getNewOptionData,\n inputValue = nextProps.inputValue,\n isLoading = nextProps.isLoading,\n isValidNewOption = nextProps.isValidNewOption,\n value = nextProps.value;\n\n var options = nextProps.options || [];\n var newOption = this.state.newOption;\n\n if (isValidNewOption(inputValue, cleanValue(value), options)) {\n newOption = getNewOptionData(inputValue, formatCreateLabel(inputValue));\n } else {\n newOption = undefined;\n }\n this.setState({\n newOption: newOption,\n options: (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(toConsumableArray(options)) : [].concat(toConsumableArray(options), [newOption]) : options\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = objectWithoutProperties(this.props, []);\n var options = this.state.options;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n options: options,\n onChange: this.onChange\n }));\n }\n }]);\n return Creatable;\n }(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]), _class.defaultProps = defaultProps$3, _temp;\n};\nvar Creatable = manageState(makeCreatableSelect(Select));\n\nvar AsyncCreatable = makeAsyncSelect(manageState(makeCreatableSelect(Select)));\n\n// ==============================\n// Fade Transition\n// ==============================\n\nvar Fade = function Fade(_ref) {\n var Tag = _ref.component,\n _ref$duration = _ref.duration,\n duration = _ref$duration === undefined ? 1 : _ref$duration,\n inProp = _ref.in,\n onExited = _ref.onExited,\n props = objectWithoutProperties(_ref, ['component', 'duration', 'in', 'onExited']);\n\n var transition = {\n entering: { opacity: 0 },\n entered: { opacity: 1, transition: 'opacity ' + duration + 'ms' },\n exiting: { opacity: 0 },\n exited: { opacity: 0 }\n };\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n react_transition_group__WEBPACK_IMPORTED_MODULE_7__[\"Transition\"],\n { mountOnEnter: true, unmountOnExit: true, 'in': inProp, timeout: duration },\n function (state) {\n var innerProps = {\n style: _extends({}, transition[state])\n };\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Tag, _extends({ innerProps: innerProps }, props));\n }\n );\n};\nvar collapseDuration = 260;\n\n// wrap each MultiValue with a collapse transition; decreases width until\n// finally removing from DOM\nvar Collapse = function (_Component) {\n inherits(Collapse, _Component);\n\n function Collapse() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, Collapse);\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, (_ref2 = Collapse.__proto__ || Object.getPrototypeOf(Collapse)).call.apply(_ref2, [this].concat(args))), _this), _this.duration = collapseDuration, _this.state = { width: 'auto' }, _this.transition = {\n exiting: { width: 0, transition: 'width ' + _this.duration + 'ms ease-out' },\n exited: { width: 0 }\n }, _this.getWidth = function (ref) {\n if (ref && isNaN(_this.state.width)) {\n /*\n Here we're invoking requestAnimationFrame with a callback invoking our\n call to getBoundingClientRect and setState in order to resolve an edge case\n around portalling. Certain portalling solutions briefly remove children from the DOM\n before appending them to the target node. This is to avoid us trying to call getBoundingClientrect\n while the Select component is in this state.\n */\n // cannot use `offsetWidth` because it is rounded\n _this.rafID = window.requestAnimationFrame(function () {\n var _ref$getBoundingClien = ref.getBoundingClientRect(),\n width = _ref$getBoundingClien.width;\n\n _this.setState({ width: width });\n });\n }\n }, _this.getStyle = function (width) {\n return {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: width\n };\n }, _this.getTransition = function (state) {\n return _this.transition[state];\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(Collapse, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.rafID) {\n window.cancelAnimationFrame(this.rafID);\n }\n }\n\n // width must be calculated; cannot transition from `undefined` to `number`\n\n\n // get base styles\n\n\n // get transition styles\n\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n inProp = _props.in;\n var width = this.state.width;\n\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n react_transition_group__WEBPACK_IMPORTED_MODULE_7__[\"Transition\"],\n {\n enter: false,\n mountOnEnter: true,\n unmountOnExit: true,\n 'in': inProp,\n timeout: this.duration\n },\n function (state) {\n var style = _extends({}, _this2.getStyle(width), _this2.getTransition(state));\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n 'div',\n { ref: _this2.getWidth, style: style },\n children\n );\n }\n );\n }\n }]);\n return Collapse;\n}(react__WEBPACK_IMPORTED_MODULE_1__[\"Component\"]);\n\n// strip transition props off before spreading onto select component\n// note we need to be explicit about innerRef for flow\nvar AnimatedInput = function AnimatedInput(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n innerRef = _ref.innerRef,\n props = objectWithoutProperties(_ref, ['in', 'onExited', 'appear', 'enter', 'exit', 'innerRef']);\n return (\n // $FlowFixMe\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(WrappedComponent, _extends({ innerRef: innerRef }, props))\n );\n };\n};\n\n// strip transition props off before spreading onto actual component\n\n\nvar AnimatedMultiValue = function AnimatedMultiValue(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n props = objectWithoutProperties(_ref, ['in', 'onExited']);\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\n Collapse,\n { 'in': inProp, onExited: onExited },\n react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(WrappedComponent, _extends({ cropWithEllipsis: inProp }, props))\n );\n };\n};\n\n// fade in when last multi-value removed, otherwise instant\nvar AnimatedPlaceholder = function AnimatedPlaceholder(WrappedComponent) {\n return function (props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Fade, _extends({\n component: WrappedComponent,\n duration: props.isMulti ? collapseDuration : 1\n }, props));\n };\n};\n\n// instant fade; all transition-group children must be transitions\n\nvar AnimatedSingleValue = function AnimatedSingleValue(WrappedComponent) {\n return function (props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Fade, _extends({ component: WrappedComponent }, props));\n };\n};\n\n// make ValueContainer a transition group\nvar AnimatedValueContainer = function AnimatedValueContainer(WrappedComponent) {\n return function (props) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_transition_group__WEBPACK_IMPORTED_MODULE_7__[\"TransitionGroup\"], _extends({ component: WrappedComponent }, props));\n };\n};\n\nvar makeAnimated = function makeAnimated(externalComponents) {\n var components$$1 = defaultComponents({ components: externalComponents });\n var Input = components$$1.Input,\n MultiValue = components$$1.MultiValue,\n Placeholder = components$$1.Placeholder,\n SingleValue = components$$1.SingleValue,\n ValueContainer = components$$1.ValueContainer,\n rest = objectWithoutProperties(components$$1, ['Input', 'MultiValue', 'Placeholder', 'SingleValue', 'ValueContainer']);\n\n return _extends({\n Input: AnimatedInput(Input),\n MultiValue: AnimatedMultiValue(MultiValue),\n Placeholder: AnimatedPlaceholder(Placeholder),\n SingleValue: AnimatedSingleValue(SingleValue),\n ValueContainer: AnimatedValueContainer(ValueContainer)\n }, rest);\n};\n\nvar AnimatedComponents = makeAnimated();\n\nvar Input$1 = AnimatedComponents.Input;\nvar MultiValue$1 = AnimatedComponents.MultiValue;\nvar Placeholder$1 = AnimatedComponents.Placeholder;\nvar SingleValue$1 = AnimatedComponents.SingleValue;\nvar ValueContainer$1 = AnimatedComponents.ValueContainer;\n\nvar index = Object(memoize_one__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(makeAnimated, exportedEqual);\n\nvar index$1 = manageState(Select);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index$1);\n\n\n\n//# sourceURL=webpack:///./node_modules/react-select/dist/react-select.esm.js?")},"./node_modules/react-transition-group/CSSTransition.js": |