{"ast":null,"code":"import _extends from '@babel/runtime/helpers/esm/extends';\nimport { a as _objectSpread2, s as supportsPassiveEvents, b as clearIndicatorCSS, d as containerCSS, e as css$1, f as dropdownIndicatorCSS, g as groupCSS, h as groupHeadingCSS, i as indicatorsContainerCSS, j as indicatorSeparatorCSS, k as inputCSS, l as loadingIndicatorCSS, m as loadingMessageCSS, n as menuCSS, o as menuListCSS, p as menuPortalCSS, q as multiValueCSS, r as multiValueLabelCSS, t as multiValueRemoveCSS, u as noOptionsMessageCSS, v as optionCSS, w as placeholderCSS, x as css$2, y as valueContainerCSS, z as isTouchCapable, A as isMobileDevice, _ as _createSuper, B as classNames, C as defaultComponents, D as isDocumentElement, E as cleanValue, F as scrollIntoView, G as noop, M as MenuPlacer } from './index-4bd03571.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport React, { useMemo, useRef, useCallback, useEffect, Component } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n}\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFJIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbmNvbnN0IEExMXlUZXh0ID0gKHByb3BzOiBFbGVtZW50Q29uZmlnPCdzcGFuJz4pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n isDisabled = props.isDisabled;\n\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n _props$focused = props.focused,\n focused = _props$focused === void 0 ? {} : _props$focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live']; // Update aria live message configuration when prop changes\n\n var messages = useMemo(function () {\n return _objectSpread2(_objectSpread2({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]); // Update aria live selected option when prop changes\n\n var ariaSelected = useMemo(function () {\n var message = '';\n\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n removedValue = ariaSelection.removedValue,\n value = ariaSelection.value; // select-option when !isMulti does not return option so we assume selected option is value\n\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n var selected = removedValue || option || asOption(value);\n\n var onChangeProps = _objectSpread2({\n isDisabled: selected && isOptionDisabled(selected),\n label: selected ? getOptionLabel(selected) : ''\n }, ariaSelection);\n\n message = messages.onChange(onChangeProps);\n }\n\n return message;\n }, [ariaSelection, isOptionDisabled, getOptionLabel, messages]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused),\n isSelected: isSelected,\n options: options,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, options, selectValue]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n return jsx(A11yText, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && jsx(React.Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext)));\n};\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\n\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\n\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _objectSpread2({\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\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nfunction DummyInput(_ref) {\n _ref.in;\n _ref.out;\n _ref.onExited;\n _ref.appear;\n _ref.enter;\n _ref.exit;\n var innerRef = _ref.innerRef;\n _ref.emotion;\n\n var props = _objectWithoutProperties(_ref, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends({\n ref: innerRef\n }, props, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\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 }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJNIiwiZmlsZSI6IkR1bW15SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbjogaW5Qcm9wLFxuICBvdXQsXG4gIG9uRXhpdGVkLFxuICBhcHBlYXIsXG4gIGVudGVyLFxuICBleGl0LFxuICBpbm5lclJlZixcbiAgZW1vdGlvbixcbiAgLi4ucHJvcHNcbn06IGFueSkge1xuICByZXR1cm4gKFxuICAgIDxpbnB1dFxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIGNzcz17e1xuICAgICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICAgIG91dGxpbmU6IDAsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICAgIHdpZHRoOiAxLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICAgIGxlZnQ6IC0xMDAsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n // Reference should never be `null` at this point, but flow complains otherwise\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, []);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', onWheel, notPassive);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', onTouchStart, notPassive);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', onTouchMove, false);\n }\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // 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} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\n\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\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 originalStyles.current[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }, []);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, []);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n}\n\nvar blurSelectInput = function blurSelectInput() {\n return document.activeElement && document.activeElement.blur();\n};\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0RVIiwiZmlsZSI6IlNjcm9sbE1hbmFnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHsgdHlwZSBFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZVNjcm9sbENhcHR1cmUgZnJvbSAnLi91c2VTY3JvbGxDYXB0dXJlJztcbmltcG9ydCB1c2VTY3JvbGxMb2NrIGZyb20gJy4vdXNlU2Nyb2xsTG9jayc7XG5cbnR5cGUgUmVmQ2FsbGJhY2s8VD4gPSAoVCB8IG51bGwpID0+IHZvaWQ7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiAoUmVmQ2FsbGJhY2s8SFRNTEVsZW1lbnQ+KSA9PiBFbGVtZW50PCo+LFxuICBsb2NrRW5hYmxlZDogYm9vbGVhbixcbiAgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW4sXG4gIG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MRWxlbWVudD4pID0+IHZvaWQsXG4gIG9uQm90dG9tTGVhdmU/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZCxcbiAgb25Ub3BBcnJpdmU/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZCxcbiAgb25Ub3BMZWF2ZT86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB2b2lkLFxufTtcblxuY29uc3QgYmx1clNlbGVjdElucHV0ID0gKCkgPT5cbiAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcih7XG4gIGNoaWxkcmVuLFxuICBsb2NrRW5hYmxlZCxcbiAgY2FwdHVyZUVuYWJsZWQgPSB0cnVlLFxuICBvbkJvdHRvbUFycml2ZSxcbiAgb25Cb3R0b21MZWF2ZSxcbiAgb25Ub3BBcnJpdmUsXG4gIG9uVG9wTGVhdmUsXG59OiBQcm9wcykge1xuICBjb25zdCBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUsXG4gIH0pO1xuICBjb25zdCBzZXRTY3JvbGxMb2NrVGFyZ2V0ID0gdXNlU2Nyb2xsTG9jayh7IGlzRW5hYmxlZDogbG9ja0VuYWJsZWQgfSk7XG5cbiAgY29uc3QgdGFyZ2V0UmVmID0gZWxlbWVudCA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\n\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n\n return jsx(React.Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2\n }), children(targetRef));\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\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}; // 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] : {}; // initialize with source styles\n\n var styles = _objectSpread2({}, source); // massage in target styles\n\n\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 return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\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};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\nvar defaultProps = {\n 'aria-live': 'polite',\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 \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\n\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n\n var isSelected = _isOptionSelected(props, option, selectValue);\n\n var label = getOptionLabel$1(props, option);\n var value = getOptionValue$1(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\n\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if (groupOrOption.options) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }) // Flow limitation (see https://github.com/facebook/flow/issues/1414)\n .filter(function (categorizedOption) {\n return !!categorizedOption;\n });\n}\n\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n\n return optionsAccumulator;\n }, []);\n}\n\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\n\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\n\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\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\n return null;\n}\n\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\n\nvar getOptionLabel$1 = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\n\nvar getOptionValue$1 = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\n\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\n\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n\n var candidate = getOptionValue$1(props, option);\n return selectValue.some(function (i) {\n return getOptionValue$1(props, i) === candidate;\n });\n}\n\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\n\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\n\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n\n var _super = _createSuper(Select); // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n\n\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n\n _this.ariaOnChange(newValue, actionMeta);\n\n onChange(newValue, actionMeta);\n };\n\n _this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue([].concat(_toConsumableArray(selectValue), [newValue]), 'select-option', newValue);\n } else {\n _this.setValue(newValue, 'select-option');\n }\n } else {\n _this.ariaOnChange(newValue, {\n action: 'select-option',\n name: name\n });\n\n return;\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = isMulti ? newValueArray : newValueArray[0] || null;\n\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n\n _this.onChange(_this.props.isMulti ? [] : null, {\n action: 'clear',\n removedValues: selectValue\n });\n };\n\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = isMulti ? newValueArray : newValueArray[0] || null;\n\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n\n _this.getOptionLabel = function (data) {\n return getOptionLabel$1(_this.props, data);\n };\n\n _this.getOptionValue = function (data) {\n return getOptionValue$1(_this.props, data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread2({\n value: value\n }, actionMeta)\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\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\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\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\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // 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 && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n return _this;\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: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programatically disabled while focused\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n } // ==============================\n // Consumer Handlers\n // ==============================\n\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\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 } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue; // Only multiselects support value focusing\n\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\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\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\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 focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\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\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value: // ==============================\n // Getters\n // ==============================\n function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\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\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread2(_objectSpread2({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\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 selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n value: // ==============================\n // Composition Handlers\n // ==============================\n 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 value: // ==============================\n // Touch Handlers\n // ==============================\n 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 key: \"renderInput\",\n value: // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form;\n\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n\n var inputIsHidden = this.state.inputIsHidden;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\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 form: form,\n value: \"\"\n }, ariaAttributes));\n }\n\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\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 form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue,\n isFocused = _this$state4.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: \"\".concat(_this3.getOptionValue(opt)).concat(index),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\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 return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.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 _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.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 var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.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 _this4 = this;\n\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\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\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state5 = this.state,\n ariaSelection = _this$state5.ariaSelection,\n focusedOption = _this$state5.focusedOption,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused,\n selectValue = _this$state5.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion, _extends({}, commonProps, {\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _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 }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue;\n var newMenuOptionsState = {};\n\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var selectValue = cleanValue(value);\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n } // some updates should toggle the state of the input visibility\n\n\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n return _objectSpread2(_objectSpread2(_objectSpread2({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props\n });\n }\n }]);\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\nexport { Select as S, getOptionLabel as a, defaultProps as b, createFilter as c, defaultTheme as d, getOptionValue as g, mergeStyles as m };","map":{"version":3,"sources":["/app/node_modules/react-select/dist/Select-dbb12e54.esm.js"],"names":["_extends","a","_objectSpread2","s","supportsPassiveEvents","b","clearIndicatorCSS","d","containerCSS","e","css$1","f","dropdownIndicatorCSS","g","groupCSS","h","groupHeadingCSS","i","indicatorsContainerCSS","j","indicatorSeparatorCSS","k","inputCSS","l","loadingIndicatorCSS","m","loadingMessageCSS","n","menuCSS","o","menuListCSS","p","menuPortalCSS","q","multiValueCSS","r","multiValueLabelCSS","t","multiValueRemoveCSS","u","noOptionsMessageCSS","v","optionCSS","w","placeholderCSS","x","css$2","y","valueContainerCSS","z","isTouchCapable","A","isMobileDevice","_","_createSuper","B","classNames","C","defaultComponents","D","isDocumentElement","E","cleanValue","F","scrollIntoView","G","noop","M","MenuPlacer","_classCallCheck","_createClass","_inherits","_toConsumableArray","React","useMemo","useRef","useCallback","useEffect","Component","jsx","css","memoizeOne","_objectWithoutProperties","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref","process","env","NODE_ENV","name","styles","map","toString","A11yText","props","defaultAriaLiveMessages","guidance","isSearchable","isMulti","isDisabled","tabSelectsValue","context","concat","onChange","action","_props$label","label","onFocus","_props$focused","focused","options","_props$label2","selectValue","isSelected","getArrayIndex","arr","item","length","indexOf","disabled","status","onFilter","inputValue","resultsMessage","LiveRegion","ariaSelection","focusedOption","focusedValue","focusableOptions","isFocused","selectProps","ariaLiveMessages","getOptionLabel","isOptionDisabled","menuIsOpen","screenReaderStatus","ariaLabel","ariaLive","messages","ariaSelected","message","option","removedValue","value","asOption","val","Array","isArray","selected","onChangeProps","ariaFocused","focusMsg","includes","onFocusProps","ariaResults","resultsMsg","count","ariaGuidance","guidanceMsg","ariaContext","Fragment","id","diacritics","base","letters","anyDiacritic","RegExp","join","diacriticToBase","diacritic","stripDiacritics","str","replace","match","memoizedStripDiacriticsForInput","trimString","defaultStringify","createFilter","config","rawInput","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","stringify","trim","matchFrom","input","candidate","toLowerCase","substr","DummyInput","in","out","onExited","appear","enter","exit","innerRef","emotion","ref","background","border","fontSize","outline","padding","width","color","left","opacity","position","transform","cancelScroll","event","preventDefault","stopPropagation","useScrollCapture","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","delta","current","_scrollTarget$current","scrollTop","scrollHeight","clientHeight","target","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","deltaY","onTouchStart","changedTouches","clientY","onTouchMove","startListening","el","notPassive","passive","addEventListener","stopListening","removeEventListener","element","STYLE_KEYS","LOCK_STYLES","boxSizing","overflow","height","preventTouchMove","allowTouchMove","preventInertiaScroll","top","totalScroll","currentScroll","offsetHeight","isTouchDevice","window","navigator","maxTouchPoints","canUseDOM","document","createElement","activeScrollLocks","listenerOptions","capture","useScrollLock","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","body","targetStyle","style","forEach","key","currentPadding","parseInt","paddingRight","clientWidth","adjustedPadding","innerWidth","Object","keys","removeScrollLock","Math","max","_EMOTION_STRINGIFIED_CSS_ERROR__$1","blurSelectInput","activeElement","blur","_ref2","ScrollManager","children","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","setScrollLockTarget","targetRef","onClick","formatGroupLabel","group","getOptionValue","defaultStyles","clearIndicator","container","control","dropdownIndicator","groupHeading","indicatorsContainer","indicatorSeparator","loadingIndicator","loadingMessage","menu","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","noOptionsMessage","placeholder","singleValue","valueContainer","mergeStyles","source","arguments","undefined","rsCss","colors","primary","primary75","primary50","primary25","danger","dangerLight","neutral0","neutral5","neutral10","neutral20","neutral30","neutral40","neutral50","neutral60","neutral70","neutral80","neutral90","borderRadius","baseUnit","controlHeight","menuGutter","spacing","defaultTheme","defaultProps","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","components","controlShouldRenderValue","escapeClearsValue","filterOption","isLoading","isRtl","maxMenuHeight","minMenuHeight","menuPlacement","menuPosition","menuShouldBlockScroll","menuShouldScrollIntoView","openMenuOnFocus","openMenuOnClick","pageSize","tabIndex","toCategorizedOption","index","_isOptionDisabled","_isOptionSelected","getOptionLabel$1","getOptionValue$1","type","data","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","filter","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","reduce","optionsAccumulator","push","apply","buildFocusableOptions","_props$inputValue","shouldHideSelectedOptions","_filterOption","getNextFocusedValue","state","nextSelectValue","lastSelectValue","lastFocusedIndex","nextFocusedIndex","getNextFocusedOption","lastFocusedOption","isOptionSelected","some","hideSelectedOptions","instanceId","Select","_Component","_super","_props","_this","call","inputIsHidden","clearFocusValueOnUpdate","inputIsHiddenAfterUpdate","prevProps","blockOptionHover","isComposing","commonProps","initialTouchX","initialTouchY","instancePrefix","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","inputRef","getInputRef","focus","focusInput","blurInput","newValue","actionMeta","_this$props","ariaOnChange","setValue","_this$props2","onInputChange","setState","onMenuClose","selectOption","_this$props3","deselected","removeValue","newValueArray","clearValue","removedValues","popValue","lastSelectedValue","slice","getValue","cx","_len","args","_key","classNamePrefix","getStyles","custom","getElementId","getComponents","getCategorizedOptions","getFocusableOptions","onMenuMouseDown","button","onMenuMouseMove","onControlMouseDown","openMenu","tagName","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","setTimeout","onScroll","HTMLElement","onCompositionStart","onCompositionEnd","touches","touch","clientX","_ref3","deltaX","abs","moveThreshold","onTouchEnd","contains","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","currentTarget","onMenuOpen","onInputFocus","onInputBlur","onBlur","onOptionHover","onKeyDown","_this$props5","isClearable","_this$state","defaultPrevented","focusValue","shiftKey","keyCode","focusOption","componentDidMount","startListeningComposition","startListeningToTouch","autoFocus","componentDidUpdate","_this$props6","componentWillUnmount","stopListeningComposition","stopListeningToTouch","_this2","_this$state2","openAtIndex","selectedIndex","direction","_this$state3","focusedIndex","lastIndex","nextFocus","getTheme","theme","getCommonProps","hasValue","hasOptions","_this$props7","formatOptionLabel","renderInput","_this$props8","inputId","form","_this$getComponents","Input","ariaAttributes","readOnly","autoCapitalize","autoComplete","autoCorrect","isHidden","spellCheck","renderPlaceholderOrValue","_this3","_this$getComponents2","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","SingleValue","Placeholder","_this$props9","_this$state4","selectValues","opt","isOptionFocused","Container","Label","Remove","removeProps","onMouseDown","renderClearIndicator","_this$getComponents3","ClearIndicator","_this$props10","innerProps","renderLoadingIndicator","_this$getComponents4","LoadingIndicator","_this$props11","renderIndicatorSeparator","_this$getComponents5","DropdownIndicator","IndicatorSeparator","renderDropdownIndicator","_this$getComponents6","renderMenu","_this4","_this$getComponents7","Group","GroupHeading","Menu","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","Option","_this$props12","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","render","onHover","onSelect","optionId","onMouseMove","onMouseOver","menuUI","groupIndex","groupId","headingId","Heading","headingProps","_message","menuPlacementProps","menuElement","_ref4","_ref4$placerProps","placerProps","placement","maxHeight","scrollTargetRef","instance","appendTo","controlElement","renderFormField","_this5","_this$props13","delimiter","_value","renderLiveRegion","_this$state5","_this$getComponents8","Control","IndicatorsContainer","SelectContainer","ValueContainer","_this$props14","className","getDerivedStateFromProps","newMenuOptionsState","newInputIsHiddenState","S","c"],"mappings":"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","sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport { a as _objectSpread2, s as supportsPassiveEvents, b as clearIndicatorCSS, d as containerCSS, e as css$1, f as dropdownIndicatorCSS, g as groupCSS, h as groupHeadingCSS, i as indicatorsContainerCSS, j as indicatorSeparatorCSS, k as inputCSS, l as loadingIndicatorCSS, m as loadingMessageCSS, n as menuCSS, o as menuListCSS, p as menuPortalCSS, q as multiValueCSS, r as multiValueLabelCSS, t as multiValueRemoveCSS, u as noOptionsMessageCSS, v as optionCSS, w as placeholderCSS, x as css$2, y as valueContainerCSS, z as isTouchCapable, A as isMobileDevice, _ as _createSuper, B as classNames, C as defaultComponents, D as isDocumentElement, E as cleanValue, F as scrollIntoView, G as noop, M as MenuPlacer } from './index-4bd03571.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport React, { useMemo, useRef, useCallback, useEffect, Component } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFJIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbmNvbnN0IEExMXlUZXh0ID0gKHByb3BzOiBFbGVtZW50Q29uZmlnPCdzcGFuJz4pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n isDisabled = props.isDisabled;\n\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n _props$focused = props.focused,\n focused = _props$focused === void 0 ? {} : _props$focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live']; // Update aria live message configuration when prop changes\n\n var messages = useMemo(function () {\n return _objectSpread2(_objectSpread2({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]); // Update aria live selected option when prop changes\n\n var ariaSelected = useMemo(function () {\n var message = '';\n\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n removedValue = ariaSelection.removedValue,\n value = ariaSelection.value; // select-option when !isMulti does not return option so we assume selected option is value\n\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n var selected = removedValue || option || asOption(value);\n\n var onChangeProps = _objectSpread2({\n isDisabled: selected && isOptionDisabled(selected),\n label: selected ? getOptionLabel(selected) : ''\n }, ariaSelection);\n\n message = messages.onChange(onChangeProps);\n }\n\n return message;\n }, [ariaSelection, isOptionDisabled, getOptionLabel, messages]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused),\n isSelected: isSelected,\n options: options,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, options, selectValue]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n return jsx(A11yText, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && jsx(React.Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext)));\n};\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\n\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\n\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _objectSpread2({\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\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nfunction DummyInput(_ref) {\n _ref.in;\n _ref.out;\n _ref.onExited;\n _ref.appear;\n _ref.enter;\n _ref.exit;\n var innerRef = _ref.innerRef;\n _ref.emotion;\n var props = _objectWithoutProperties(_ref, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends({\n ref: innerRef\n }, props, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\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 }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJNIiwiZmlsZSI6IkR1bW15SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbjogaW5Qcm9wLFxuICBvdXQsXG4gIG9uRXhpdGVkLFxuICBhcHBlYXIsXG4gIGVudGVyLFxuICBleGl0LFxuICBpbm5lclJlZixcbiAgZW1vdGlvbixcbiAgLi4ucHJvcHNcbn06IGFueSkge1xuICByZXR1cm4gKFxuICAgIDxpbnB1dFxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIGNzcz17e1xuICAgICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICAgIG91dGxpbmU6IDAsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICAgIHdpZHRoOiAxLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICAgIGxlZnQ6IC0xMDAsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n // Reference should never be `null` at this point, but flow complains otherwise\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, []);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', onWheel, notPassive);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', onTouchStart, notPassive);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', onTouchMove, false);\n }\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // 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} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\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 originalStyles.current[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }, []);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, []);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar blurSelectInput = function blurSelectInput() {\n return document.activeElement && document.activeElement.blur();\n};\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0RVIiwiZmlsZSI6IlNjcm9sbE1hbmFnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHsgdHlwZSBFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZVNjcm9sbENhcHR1cmUgZnJvbSAnLi91c2VTY3JvbGxDYXB0dXJlJztcbmltcG9ydCB1c2VTY3JvbGxMb2NrIGZyb20gJy4vdXNlU2Nyb2xsTG9jayc7XG5cbnR5cGUgUmVmQ2FsbGJhY2s8VD4gPSAoVCB8IG51bGwpID0+IHZvaWQ7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiAoUmVmQ2FsbGJhY2s8SFRNTEVsZW1lbnQ+KSA9PiBFbGVtZW50PCo+LFxuICBsb2NrRW5hYmxlZDogYm9vbGVhbixcbiAgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW4sXG4gIG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MRWxlbWVudD4pID0+IHZvaWQsXG4gIG9uQm90dG9tTGVhdmU/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZCxcbiAgb25Ub3BBcnJpdmU/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZCxcbiAgb25Ub3BMZWF2ZT86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB2b2lkLFxufTtcblxuY29uc3QgYmx1clNlbGVjdElucHV0ID0gKCkgPT5cbiAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcih7XG4gIGNoaWxkcmVuLFxuICBsb2NrRW5hYmxlZCxcbiAgY2FwdHVyZUVuYWJsZWQgPSB0cnVlLFxuICBvbkJvdHRvbUFycml2ZSxcbiAgb25Cb3R0b21MZWF2ZSxcbiAgb25Ub3BBcnJpdmUsXG4gIG9uVG9wTGVhdmUsXG59OiBQcm9wcykge1xuICBjb25zdCBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUsXG4gIH0pO1xuICBjb25zdCBzZXRTY3JvbGxMb2NrVGFyZ2V0ID0gdXNlU2Nyb2xsTG9jayh7IGlzRW5hYmxlZDogbG9ja0VuYWJsZWQgfSk7XG5cbiAgY29uc3QgdGFyZ2V0UmVmID0gZWxlbWVudCA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\n\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n\n return jsx(React.Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2\n }), children(targetRef));\n}\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\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}; // 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 = _objectSpread2({}, source); // massage in target styles\n\n\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 return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\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};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\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 \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\n\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n\n var isSelected = _isOptionSelected(props, option, selectValue);\n\n var label = getOptionLabel$1(props, option);\n var value = getOptionValue$1(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\n\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if (groupOrOption.options) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }) // Flow limitation (see https://github.com/facebook/flow/issues/1414)\n .filter(function (categorizedOption) {\n return !!categorizedOption;\n });\n}\n\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n\n return optionsAccumulator;\n }, []);\n}\n\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\n\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\n\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\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\n return null;\n}\n\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\n\nvar getOptionLabel$1 = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\n\nvar getOptionValue$1 = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\n\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\n\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n\n var candidate = getOptionValue$1(props, option);\n return selectValue.some(function (i) {\n return getOptionValue$1(props, i) === candidate;\n });\n}\n\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\n\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\n\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n\n var _super = _createSuper(Select);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n\n _this.ariaOnChange(newValue, actionMeta);\n\n onChange(newValue, actionMeta);\n };\n\n _this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue([].concat(_toConsumableArray(selectValue), [newValue]), 'select-option', newValue);\n } else {\n _this.setValue(newValue, 'select-option');\n }\n } else {\n _this.ariaOnChange(newValue, {\n action: 'select-option',\n name: name\n });\n\n return;\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = isMulti ? newValueArray : newValueArray[0] || null;\n\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n\n _this.onChange(_this.props.isMulti ? [] : null, {\n action: 'clear',\n removedValues: selectValue\n });\n };\n\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = isMulti ? newValueArray : newValueArray[0] || null;\n\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n\n _this.getOptionLabel = function (data) {\n return getOptionLabel$1(_this.props, data);\n };\n\n _this.getOptionValue = function (data) {\n return getOptionValue$1(_this.props, data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread2({\n value: value\n }, actionMeta)\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\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\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\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\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // 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 && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n return _this;\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: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programatically disabled while focused\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n } // ==============================\n // Consumer Handlers\n // ==============================\n\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\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 } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue; // Only multiselects support value focusing\n\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\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\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\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 focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\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\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value: // ==============================\n // Getters\n // ==============================\n function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\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\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread2(_objectSpread2({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\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 selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n value: // ==============================\n // Composition Handlers\n // ==============================\n 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 value: // ==============================\n // Touch Handlers\n // ==============================\n 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 key: \"renderInput\",\n value: // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form;\n\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n\n var inputIsHidden = this.state.inputIsHidden;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\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 form: form,\n value: \"\"\n }, ariaAttributes));\n }\n\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\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 form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue,\n isFocused = _this$state4.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: \"\".concat(_this3.getOptionValue(opt)).concat(index),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\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 return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.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 _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.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 var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.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 _this4 = this;\n\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\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\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state5 = this.state,\n ariaSelection = _this$state5.ariaSelection,\n focusedOption = _this$state5.focusedOption,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused,\n selectValue = _this$state5.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion, _extends({}, commonProps, {\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _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 }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue;\n var newMenuOptionsState = {};\n\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var selectValue = cleanValue(value);\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n } // some updates should toggle the state of the input visibility\n\n\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n return _objectSpread2(_objectSpread2(_objectSpread2({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props\n });\n }\n }]);\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, getOptionLabel as a, defaultProps as b, createFilter as c, defaultTheme as d, getOptionValue as g, mergeStyles as m };\n"]},"metadata":{},"sourceType":"module"}