UNPKG

297 kBSource Map (JSON)View Raw
1{"version":3,"file":"downshift.umd.js","sources":["../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/compute-scroll-into-view/es/index.js","../src/utils.js","../src/set-a11y-status.js","../src/stateChangeTypes.js","../src/downshift.js","../src/hooks/utils.js","../src/hooks/useSelect/utils.js","../src/hooks/useSelect/stateChangeTypes.js","../src/hooks/useSelect/reducer.js","../src/hooks/useSelect/index.js","../src/hooks/useCombobox/utils.js","../src/hooks/useCombobox/stateChangeTypes.js","../src/hooks/useCombobox/reducer.js","../src/hooks/useCombobox/index.js"],"sourcesContent":["export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/** @license React v16.12.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118,x=b?Symbol.for(\"react.scope\"):60119;function y(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m}\nexports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p};\n","/** @license React v16.12.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\nvar lowPriorityWarningWithoutStack = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarningWithoutStack = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function isElement(el) {\n return el != null && typeof el === 'object' && el.nodeType === 1;\n}\n\nfunction canOverflow(overflow, skipOverflowHiddenElements) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false;\n }\n\n return overflow !== 'visible' && overflow !== 'clip';\n}\n\nfunction getFrameElement(el) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null;\n }\n\n return el.ownerDocument.defaultView.frameElement;\n}\n\nfunction isHiddenByFrame(el) {\n var frame = getFrameElement(el);\n\n if (!frame) {\n return false;\n }\n\n return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;\n}\n\nfunction isScrollable(el, skipOverflowHiddenElements) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n var style = getComputedStyle(el, null);\n return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);\n }\n\n return false;\n}\n\nfunction alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {\n if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {\n return 0;\n }\n\n if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;\n }\n\n if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;\n }\n\n return 0;\n}\n\nexport default (function (target, options) {\n var scrollMode = options.scrollMode,\n block = options.block,\n inline = options.inline,\n boundary = options.boundary,\n skipOverflowHiddenElements = options.skipOverflowHiddenElements;\n var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {\n return node !== boundary;\n };\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target');\n }\n\n var scrollingElement = document.scrollingElement || document.documentElement;\n var frames = [];\n var cursor = target;\n\n while (isElement(cursor) && checkBoundary(cursor)) {\n cursor = cursor.parentNode;\n\n if (cursor === scrollingElement) {\n frames.push(cursor);\n break;\n }\n\n if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {\n continue;\n }\n\n if (isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor);\n }\n }\n\n var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;\n var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;\n var viewportX = window.scrollX || pageXOffset;\n var viewportY = window.scrollY || pageYOffset;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n targetHeight = _target$getBoundingCl.height,\n targetWidth = _target$getBoundingCl.width,\n targetTop = _target$getBoundingCl.top,\n targetRight = _target$getBoundingCl.right,\n targetBottom = _target$getBoundingCl.bottom,\n targetLeft = _target$getBoundingCl.left;\n\n var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;\n var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;\n var computations = [];\n\n for (var index = 0; index < frames.length; index++) {\n var frame = frames[index];\n\n var _frame$getBoundingCli = frame.getBoundingClientRect(),\n height = _frame$getBoundingCli.height,\n width = _frame$getBoundingCli.width,\n top = _frame$getBoundingCli.top,\n right = _frame$getBoundingCli.right,\n bottom = _frame$getBoundingCli.bottom,\n left = _frame$getBoundingCli.left;\n\n if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {\n return computations;\n }\n\n var frameStyle = getComputedStyle(frame);\n var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);\n var borderTop = parseInt(frameStyle.borderTopWidth, 10);\n var borderRight = parseInt(frameStyle.borderRightWidth, 10);\n var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);\n var blockScroll = 0;\n var inlineScroll = 0;\n var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;\n var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;\n\n if (scrollingElement === frame) {\n if (block === 'start') {\n blockScroll = targetBlock;\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight;\n } else if (block === 'nearest') {\n blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);\n } else {\n blockScroll = targetBlock - viewportHeight / 2;\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline;\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2;\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth;\n } else {\n inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);\n }\n\n blockScroll = Math.max(0, blockScroll + viewportY);\n inlineScroll = Math.max(0, inlineScroll + viewportX);\n } else {\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop;\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;\n } else if (block === 'nearest') {\n blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);\n } else {\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft;\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth;\n } else {\n inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);\n }\n\n var scrollLeft = frame.scrollLeft,\n scrollTop = frame.scrollTop;\n blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));\n inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));\n targetBlock += scrollTop - blockScroll;\n targetInline += scrollLeft - inlineScroll;\n }\n\n computations.push({\n el: frame,\n top: blockScroll,\n left: inlineScroll\n });\n }\n\n return computations;\n});","import computeScrollIntoView from 'compute-scroll-into-view'\nimport {isPreact} from './is.macro'\n\nlet idCounter = 0\n\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop\n}\n\nfunction noop() {}\n\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\nfunction scrollIntoView(node, menuNode) {\n if (node === null) {\n return\n }\n\n const actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed',\n })\n actions.forEach(({el, top, left}) => {\n el.scrollTop = top\n el.scrollLeft = left\n })\n}\n\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\nfunction isOrContainsNode(parent, child) {\n return parent === child || (parent.contains && parent.contains(child))\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\nfunction debounce(fn, time) {\n let timeoutId\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n }\n\n function wrapper(...args) {\n cancel()\n timeoutId = setTimeout(() => {\n timeoutId = null\n fn(...args)\n }, time)\n }\n\n wrapper.cancel = cancel\n\n return wrapper\n}\n\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\nfunction callAllEventHandlers(...fns) {\n return (event, ...args) =>\n fns.some(fn => {\n if (fn) {\n fn(event, ...args)\n }\n return (\n event.preventDownshiftDefault ||\n (event.hasOwnProperty('nativeEvent') &&\n event.nativeEvent.preventDownshiftDefault)\n )\n })\n}\n\nfunction handleRefs(...refs) {\n return node => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n })\n }\n}\n\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\nfunction generateId() {\n return String(idCounter++)\n}\n\n/**\n * This is only used in tests\n * @param {Number} num the number to set the idCounter to\n */\nfunction setIdCounter(num) {\n idCounter = num\n}\n\n/**\n * Resets idCounter to 0. Used for SSR.\n */\nfunction resetIdCounter() {\n idCounter = 0\n}\n\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage({isOpen, resultCount}) {\n if (!isOpen) {\n return ''\n }\n\n if (!resultCount) {\n return 'No results are available.'\n }\n\n return `${resultCount} result${\n resultCount === 1 ? ' is' : 's are'\n } available, use up and down arrow keys to navigate. Press Enter key to select.`\n}\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ? /* istanbul ignore next (preact) */ arg[0] : arg\n if (!arg && defaultValue) {\n return defaultValue\n } else {\n return arg\n }\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\nfunction isDOMElement(element) {\n /* istanbul ignore if */\n if (isPreact) {\n // then this is preact or preact X\n return (\n typeof element.nodeName === 'string' || typeof element.type === 'string'\n )\n }\n\n // then we assume this is react\n return typeof element.type === 'string'\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\nfunction getElementProps(element) {\n // props for react, attributes for preact\n\n /* istanbul ignore if */\n if (isPreact) {\n return element.attributes || element.props\n }\n\n return element.props\n}\n\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(`The property \"${propName}\" is required in \"${fnName}\"`)\n}\n\nconst stateKeys = [\n 'highlightedIndex',\n 'inputValue',\n 'isOpen',\n 'selectedItem',\n 'type',\n]\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\nfunction pickState(state = {}) {\n const result = {}\n stateKeys.forEach(k => {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k]\n }\n })\n return result\n}\n\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\nfunction getState(state, props) {\n return Object.keys(state).reduce((prevState, key) => {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key]\n\n return prevState\n }, {})\n}\n\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\nfunction isControlledProp(props, key) {\n return props[key] !== undefined\n}\n\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\nfunction normalizeArrowKey(event) {\n const {key, keyCode} = event\n /* istanbul ignore next (ie) */\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return `Arrow${key}`\n }\n return key\n}\n\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]'\n}\n\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\nfunction getNextWrappingIndex(\n moveAmount,\n baseIndex,\n itemCount,\n getItemNodeFromIndex,\n circular = true,\n) {\n const itemsLastIndex = itemCount - 1\n\n if (\n typeof baseIndex !== 'number' ||\n baseIndex < 0 ||\n baseIndex >= itemCount\n ) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1\n }\n\n let newIndex = baseIndex + moveAmount\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex\n }\n\n const nonDisabledNewIndex = getNextNonDisabledIndex(\n moveAmount,\n newIndex,\n itemCount,\n getItemNodeFromIndex,\n circular,\n )\n\n return nonDisabledNewIndex === -1 ? baseIndex : nonDisabledNewIndex\n}\n\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\nfunction getNextNonDisabledIndex(\n moveAmount,\n baseIndex,\n itemCount,\n getItemNodeFromIndex,\n circular,\n) {\n const currentElementNode = getItemNodeFromIndex(baseIndex)\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex\n }\n\n if (moveAmount > 0) {\n for (let index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index\n }\n }\n } else {\n for (let index = baseIndex - 1; index >= 0; index--) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0\n ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false)\n : getNextNonDisabledIndex(\n -1,\n itemCount - 1,\n itemCount,\n getItemNodeFromIndex,\n false,\n )\n }\n\n return -1\n}\n\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Document} document The document.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\nfunction targetWithinDownshift(\n target,\n downshiftElements,\n document,\n checkActiveElement = true,\n) {\n return downshiftElements.some(\n contextNode =>\n contextNode &&\n (isOrContainsNode(contextNode, target) ||\n (checkActiveElement &&\n isOrContainsNode(contextNode, document.activeElement))),\n )\n}\n\nexport {\n cbToCb,\n callAllEventHandlers,\n handleRefs,\n debounce,\n scrollIntoView,\n generateId,\n getA11yStatusMessage,\n unwrapArray,\n isDOMElement,\n getElementProps,\n noop,\n requiredProp,\n setIdCounter,\n resetIdCounter,\n pickState,\n isPlainObject,\n normalizeArrowKey,\n getNextWrappingIndex,\n getNextNonDisabledIndex,\n targetWithinDownshift,\n getState,\n isControlledProp,\n}\n","import {debounce} from './utils'\n\nconst cleanupStatus = debounce(() => {\n getStatusDiv().textContent = ''\n}, 500)\n\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\nfunction setStatus(status, documentProp) {\n const div = getStatusDiv(documentProp)\n if (!status) {\n return\n }\n\n div.textContent = status\n cleanupStatus()\n}\n\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\nfunction getStatusDiv(documentProp = document) {\n let statusDiv = documentProp.getElementById('a11y-status-message')\n if (statusDiv) {\n return statusDiv\n }\n\n statusDiv = documentProp.createElement('div')\n statusDiv.setAttribute('id', 'a11y-status-message')\n statusDiv.setAttribute('role', 'status')\n statusDiv.setAttribute('aria-live', 'polite')\n statusDiv.setAttribute('aria-relevant', 'additions text')\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px',\n })\n documentProp.body.appendChild(statusDiv)\n return statusDiv\n}\n\nexport default setStatus\n","import productionEnum from './productionEnum.macro'\n\nexport const unknown = productionEnum('__autocomplete_unknown__')\nexport const mouseUp = productionEnum('__autocomplete_mouseup__')\nexport const itemMouseEnter = productionEnum('__autocomplete_item_mouseenter__')\nexport const keyDownArrowUp = productionEnum(\n '__autocomplete_keydown_arrow_up__',\n)\nexport const keyDownArrowDown = productionEnum(\n '__autocomplete_keydown_arrow_down__',\n)\nexport const keyDownEscape = productionEnum('__autocomplete_keydown_escape__')\nexport const keyDownEnter = productionEnum('__autocomplete_keydown_enter__')\nexport const keyDownHome = productionEnum('__autocomplete_keydown_home__')\nexport const keyDownEnd = productionEnum('__autocomplete_keydown_end__')\nexport const clickItem = productionEnum('__autocomplete_click_item__')\nexport const blurInput = productionEnum('__autocomplete_blur_input__')\nexport const changeInput = productionEnum('__autocomplete_change_input__')\nexport const keyDownSpaceButton = productionEnum(\n '__autocomplete_keydown_space_button__',\n)\nexport const clickButton = productionEnum('__autocomplete_click_button__')\nexport const blurButton = productionEnum('__autocomplete_blur_button__')\nexport const controlledPropUpdatedSelectedItem = productionEnum(\n '__autocomplete_controlled_prop_updated_selected_item__',\n)\nexport const touchEnd = productionEnum('__autocomplete_touchend__')\n","/* eslint camelcase:0 */\n\nimport PropTypes from 'prop-types'\nimport {Component, cloneElement} from 'react'\nimport {isForwardRef} from 'react-is'\nimport {isPreact, isReactNative} from './is.macro'\nimport setA11yStatus from './set-a11y-status'\nimport * as stateChangeTypes from './stateChangeTypes'\nimport {\n handleRefs,\n callAllEventHandlers,\n cbToCb,\n debounce,\n generateId,\n getA11yStatusMessage,\n getElementProps,\n isDOMElement,\n targetWithinDownshift,\n isPlainObject,\n noop,\n normalizeArrowKey,\n pickState,\n requiredProp,\n scrollIntoView,\n unwrapArray,\n getNextWrappingIndex,\n getNextNonDisabledIndex,\n getState,\n isControlledProp,\n} from './utils'\n\nclass Downshift extends Component {\n static propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any,\n }),\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n /* eslint-enable react/no-unused-prop-types */\n }\n\n static defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage,\n itemToString: i => {\n if (i == null) {\n return ''\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n isPlainObject(i) &&\n !i.hasOwnProperty('toString')\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.',\n 'The object that was passed:',\n i,\n )\n }\n return String(i)\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: (prevItem, item) => prevItem !== item,\n environment:\n typeof window === 'undefined' /* istanbul ignore next (ssr) */\n ? {}\n : window,\n stateReducer: (state, stateToSet) => stateToSet,\n suppressRefError: false,\n scrollIntoView,\n }\n\n static stateChangeTypes = stateChangeTypes\n\n constructor(props) {\n super(props)\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n const {\n defaultHighlightedIndex,\n initialHighlightedIndex: highlightedIndex = defaultHighlightedIndex,\n defaultIsOpen,\n initialIsOpen: isOpen = defaultIsOpen,\n initialInputValue: inputValue = '',\n initialSelectedItem: selectedItem = null,\n } = this.props\n const state = this.getState({\n highlightedIndex,\n isOpen,\n inputValue,\n selectedItem,\n })\n if (\n state.selectedItem != null &&\n this.props.initialInputValue === undefined\n ) {\n state.inputValue = this.props.itemToString(state.selectedItem)\n }\n this.state = state\n }\n\n id = this.props.id || `downshift-${generateId()}`\n menuId = this.props.menuId || `${this.id}-menu`\n labelId = this.props.labelId || `${this.id}-label`\n inputId = this.props.inputId || `${this.id}-input`\n getItemId = this.props.getItemId || (index => `${this.id}-item-${index}`)\n\n input = null\n items = []\n // itemCount can be changed asynchronously\n // from within downshift (so it can't come from a prop)\n // this is why we store it as an instance and use\n // getItemCount rather than just use items.length\n // (to support windowing + async)\n itemCount = null\n previousResultCount = 0\n\n timeoutIds = []\n\n /**\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n */\n internalSetTimeout = (fn, time) => {\n const id = setTimeout(() => {\n this.timeoutIds = this.timeoutIds.filter(i => i !== id)\n fn()\n }, time)\n\n this.timeoutIds.push(id)\n }\n\n /**\n * Clear all running timeouts\n */\n internalClearTimeouts() {\n this.timeoutIds.forEach(id => {\n clearTimeout(id)\n })\n\n this.timeoutIds = []\n }\n\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n getState(stateToMerge = this.state) {\n return getState(stateToMerge, this.props)\n }\n\n getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n let itemCount = this.items.length\n if (this.itemCount != null) {\n itemCount = this.itemCount\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount\n }\n return itemCount\n }\n\n setItemCount = count => {\n this.itemCount = count\n }\n\n unsetItemCount = () => {\n this.itemCount = null\n }\n\n getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index))\n }\n\n setHighlightedIndex = (\n highlightedIndex = this.props.defaultHighlightedIndex,\n otherStateToSet = {},\n ) => {\n otherStateToSet = pickState(otherStateToSet)\n this.internalSetState({highlightedIndex, ...otherStateToSet})\n }\n\n scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n if (!isReactNative) {\n const node = this.getItemNodeFromIndex(this.getState().highlightedIndex)\n this.props.scrollIntoView(node, this._menuNode)\n }\n }\n\n moveHighlightedIndex(amount, otherStateToSet) {\n const itemCount = this.getItemCount()\n const {highlightedIndex} = this.getState()\n if (itemCount > 0) {\n const nextHighlightedIndex = getNextWrappingIndex(\n amount,\n highlightedIndex,\n itemCount,\n index => this.getItemNodeFromIndex(index),\n )\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet)\n }\n }\n\n clearSelection = cb => {\n this.internalSetState(\n {\n selectedItem: null,\n inputValue: '',\n highlightedIndex: this.props.defaultHighlightedIndex,\n isOpen: this.props.defaultIsOpen,\n },\n cb,\n )\n }\n\n selectItem = (item, otherStateToSet, cb) => {\n otherStateToSet = pickState(otherStateToSet)\n this.internalSetState(\n {\n isOpen: this.props.defaultIsOpen,\n highlightedIndex: this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: this.props.itemToString(item),\n ...otherStateToSet,\n },\n cb,\n )\n }\n\n selectItemAtIndex = (itemIndex, otherStateToSet, cb) => {\n const item = this.items[itemIndex]\n if (item == null) {\n return\n }\n this.selectItem(item, otherStateToSet, cb)\n }\n\n selectHighlightedItem = (otherStateToSet, cb) => {\n return this.selectItemAtIndex(\n this.getState().highlightedIndex,\n otherStateToSet,\n cb,\n )\n }\n\n // any piece of our state can live in two places:\n // 1. Uncontrolled: it's internal (this.state)\n // We will call this.setState to update that state\n // 2. Controlled: it's external (this.props)\n // We will call this.props.onStateChange to update that state\n //\n // In addition, we'll call this.props.onChange if the\n // selectedItem is changed.\n internalSetState = (stateToSet, cb) => {\n let isItemSelected, onChangeArg\n\n const onStateChangeArg = {}\n const isStateToSetFunction = typeof stateToSet === 'function'\n\n // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n this.props.onInputValueChange(stateToSet.inputValue, {\n ...this.getStateAndHelpers(),\n ...stateToSet,\n })\n }\n return this.setState(\n state => {\n state = this.getState(state)\n let newStateToSet = isStateToSetFunction\n ? stateToSet(state)\n : stateToSet\n\n // Your own function that could modify the state that will be set.\n newStateToSet = this.props.stateReducer(state, newStateToSet)\n\n // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem')\n // this keeps track of the object we want to call with setState\n const nextState = {}\n // this is just used to tell whether the state changed\n const nextFullState = {}\n // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n if (\n isItemSelected &&\n newStateToSet.selectedItem !== state.selectedItem\n ) {\n onChangeArg = newStateToSet.selectedItem\n }\n newStateToSet.type = newStateToSet.type || stateChangeTypes.unknown\n\n Object.keys(newStateToSet).forEach(key => {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key]\n }\n // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n if (key === 'type') {\n return\n }\n nextFullState[key] = newStateToSet[key]\n // if it's coming from props, then we don't care to set it internally\n if (!isControlledProp(this.props, key)) {\n nextState[key] = newStateToSet[key]\n }\n })\n\n // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n if (\n isStateToSetFunction &&\n newStateToSet.hasOwnProperty('inputValue')\n ) {\n this.props.onInputValueChange(newStateToSet.inputValue, {\n ...this.getStateAndHelpers(),\n ...newStateToSet,\n })\n }\n\n return nextState\n },\n () => {\n // call the provided callback if it's a function\n cbToCb(cb)()\n\n // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n const hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1\n if (hasMoreStateThanType) {\n this.props.onStateChange(onStateChangeArg, this.getStateAndHelpers())\n }\n\n if (isItemSelected) {\n this.props.onSelect(\n stateToSet.selectedItem,\n this.getStateAndHelpers(),\n )\n }\n\n if (onChangeArg !== undefined) {\n this.props.onChange(onChangeArg, this.getStateAndHelpers())\n }\n // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n this.props.onUserAction(onStateChangeArg, this.getStateAndHelpers())\n },\n )\n }\n\n getStateAndHelpers() {\n const {highlightedIndex, inputValue, selectedItem, isOpen} = this.getState()\n const {itemToString} = this.props\n const {id} = this\n const {\n getRootProps,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n openMenu,\n closeMenu,\n toggleMenu,\n selectItem,\n selectItemAtIndex,\n selectHighlightedItem,\n setHighlightedIndex,\n clearSelection,\n clearItems,\n reset,\n setItemCount,\n unsetItemCount,\n internalSetState: setState,\n } = this\n return {\n // prop getters\n getRootProps,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n\n // actions\n reset,\n openMenu,\n closeMenu,\n toggleMenu,\n selectItem,\n selectItemAtIndex,\n selectHighlightedItem,\n setHighlightedIndex,\n clearSelection,\n clearItems,\n setItemCount,\n unsetItemCount,\n setState,\n\n // props\n itemToString,\n\n // derived\n id,\n\n // state\n highlightedIndex,\n inputValue,\n isOpen,\n selectedItem,\n }\n }\n\n //////////////////////////// ROOT\n\n rootRef = node => (this._rootNode = node)\n\n getRootProps = (\n {refKey = 'ref', ref, ...rest} = {},\n {suppressRefError = false} = {},\n ) => {\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n this.getRootProps.called = true\n this.getRootProps.refKey = refKey\n this.getRootProps.suppressRefError = suppressRefError\n const {isOpen} = this.getState()\n return {\n [refKey]: handleRefs(ref, this.rootRef),\n role: 'combobox',\n 'aria-expanded': isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': isOpen ? this.menuId : null,\n 'aria-labelledby': this.labelId,\n ...rest,\n }\n }\n\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ROOT\n\n keyDownHandlers = {\n ArrowDown(event) {\n event.preventDefault()\n\n if (this.getState().isOpen) {\n const amount = event.shiftKey ? 5 : 1\n this.moveHighlightedIndex(amount, {\n type: stateChangeTypes.keyDownArrowDown,\n })\n } else {\n this.internalSetState(\n {\n isOpen: true,\n type: stateChangeTypes.keyDownArrowDown,\n },\n () => {\n const itemCount = this.getItemCount()\n if (itemCount > 0) {\n const {highlightedIndex} = this.getState()\n const nextHighlightedIndex = getNextWrappingIndex(\n 1,\n highlightedIndex,\n itemCount,\n index => this.getItemNodeFromIndex(index),\n )\n\n this.setHighlightedIndex(nextHighlightedIndex, {\n type: stateChangeTypes.keyDownArrowDown,\n })\n }\n },\n )\n }\n },\n\n ArrowUp(event) {\n event.preventDefault()\n\n if (this.getState().isOpen) {\n const amount = event.shiftKey ? -5 : -1\n this.moveHighlightedIndex(amount, {\n type: stateChangeTypes.keyDownArrowUp,\n })\n } else {\n this.internalSetState(\n {\n isOpen: true,\n type: stateChangeTypes.keyDownArrowUp,\n },\n () => {\n const itemCount = this.getItemCount()\n if (itemCount > 0) {\n const {highlightedIndex} = this.getState()\n const nextHighlightedIndex = getNextWrappingIndex(\n -1,\n highlightedIndex,\n itemCount,\n index => this.getItemNodeFromIndex(index),\n )\n\n this.setHighlightedIndex(nextHighlightedIndex, {\n type: stateChangeTypes.keyDownArrowUp,\n })\n }\n },\n )\n }\n },\n\n Enter(event) {\n const {isOpen, highlightedIndex} = this.getState()\n if (isOpen && highlightedIndex != null) {\n event.preventDefault()\n const item = this.items[highlightedIndex]\n const itemNode = this.getItemNodeFromIndex(highlightedIndex)\n if (item == null || (itemNode && itemNode.hasAttribute('disabled'))) {\n return\n }\n this.selectHighlightedItem({\n type: stateChangeTypes.keyDownEnter,\n })\n }\n },\n\n Escape(event) {\n event.preventDefault()\n this.reset({\n type: stateChangeTypes.keyDownEscape,\n selectedItem: null,\n inputValue: '',\n })\n },\n }\n\n //////////////////////////// BUTTON\n\n buttonKeyDownHandlers = {\n ...this.keyDownHandlers,\n\n ' '(event) {\n event.preventDefault()\n this.toggleMenu({type: stateChangeTypes.keyDownSpaceButton})\n },\n }\n\n inputKeyDownHandlers = {\n ...this.keyDownHandlers,\n Home(event) {\n event.preventDefault()\n\n const itemCount = this.getItemCount()\n const {isOpen} = this.getState()\n\n if (itemCount <= 0 || !isOpen) {\n return\n }\n\n // get next non-disabled starting downwards from 0 if that's disabled.\n const newHighlightedIndex = getNextNonDisabledIndex(\n 1,\n 0,\n itemCount,\n index => this.getItemNodeFromIndex(index),\n false,\n )\n\n this.setHighlightedIndex(newHighlightedIndex, {\n type: stateChangeTypes.keyDownHome,\n })\n },\n\n End(event) {\n event.preventDefault()\n\n const itemCount = this.getItemCount()\n const {isOpen} = this.getState()\n\n if (itemCount <= 0 || !isOpen) {\n return\n }\n\n // get next non-disabled starting upwards from last index if that's disabled.\n const newHighlightedIndex = getNextNonDisabledIndex(\n -1,\n itemCount - 1,\n itemCount,\n index => this.getItemNodeFromIndex(index),\n false,\n )\n\n this.setHighlightedIndex(newHighlightedIndex, {\n type: stateChangeTypes.keyDownEnd,\n })\n },\n }\n\n getToggleButtonProps = ({\n onClick,\n onPress,\n onKeyDown,\n onKeyUp,\n onBlur,\n ...rest\n } = {}) => {\n const {isOpen} = this.getState()\n const enabledEventHandlers = isReactNative\n ? /* istanbul ignore next (react-native) */\n {\n onPress: callAllEventHandlers(onPress, this.buttonHandleClick),\n }\n : {\n onClick: callAllEventHandlers(onClick, this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, this.buttonHandleBlur),\n }\n const eventHandlers = rest.disabled ? {} : enabledEventHandlers\n return {\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true,\n ...eventHandlers,\n ...rest,\n }\n }\n\n buttonHandleKeyUp = event => {\n // Prevent click event from emitting in Firefox\n event.preventDefault()\n }\n\n buttonHandleKeyDown = event => {\n const key = normalizeArrowKey(event)\n if (this.buttonKeyDownHandlers[key]) {\n this.buttonKeyDownHandlers[key].call(this, event)\n }\n }\n\n buttonHandleClick = event => {\n event.preventDefault()\n // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n /* istanbul ignore if (can't reasonably test this) */\n if (\n !isReactNative &&\n this.props.environment.document.activeElement ===\n this.props.environment.document.body\n ) {\n event.target.focus()\n }\n // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n if (process.env.NODE_ENV === 'test') {\n this.toggleMenu({type: stateChangeTypes.clickButton})\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n this.internalSetTimeout(() =>\n this.toggleMenu({type: stateChangeTypes.clickButton}),\n )\n }\n }\n\n buttonHandleBlur = event => {\n const blurTarget = event.target // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n this.internalSetTimeout(() => {\n if (\n !this.isMouseDown &&\n (this.props.environment.document.activeElement == null ||\n this.props.environment.document.activeElement.id !== this.inputId) &&\n this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n this.reset({type: stateChangeTypes.blurButton})\n }\n })\n }\n\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BUTTON\n\n /////////////////////////////// LABEL\n\n getLabelProps = props => {\n return {htmlFor: this.inputId, id: this.labelId, ...props}\n }\n\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LABEL\n\n /////////////////////////////// INPUT\n\n getInputProps = ({\n onKeyDown,\n onBlur,\n onChange,\n onInput,\n onChangeText,\n ...rest\n } = {}) => {\n let onChangeKey\n let eventHandlers = {}\n\n /* istanbul ignore next (preact) */\n if (isPreact) {\n onChangeKey = 'onInput'\n } else {\n onChangeKey = 'onChange'\n }\n const {inputValue, isOpen, highlightedIndex} = this.getState()\n\n if (!rest.disabled) {\n eventHandlers = {\n [onChangeKey]: callAllEventHandlers(\n onChange,\n onInput,\n this.inputHandleChange,\n ),\n onKeyDown: callAllEventHandlers(onKeyDown, this.inputHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, this.inputHandleBlur),\n }\n }\n\n /* istanbul ignore if (react-native) */\n if (isReactNative) {\n eventHandlers = {\n onChange: callAllEventHandlers(\n onChange,\n onInput,\n this.inputHandleChange,\n ),\n onChangeText: callAllEventHandlers(onChangeText, onInput, text =>\n this.inputHandleChange({nativeEvent: {text}}),\n ),\n onBlur: callAllEventHandlers(onBlur, this.inputHandleBlur),\n }\n }\n\n return {\n 'aria-autocomplete': 'list',\n 'aria-activedescendant':\n isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0\n ? this.getItemId(highlightedIndex)\n : null,\n 'aria-controls': isOpen ? this.menuId : null,\n 'aria-labelledby': this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: this.inputId,\n ...eventHandlers,\n ...rest,\n }\n }\n\n inputHandleKeyDown = event => {\n const key = normalizeArrowKey(event)\n if (key && this.inputKeyDownHandlers[key]) {\n this.inputKeyDownHandlers[key].call(this, event)\n }\n }\n\n inputHandleChange = event => {\n this.internalSetState({\n type: stateChangeTypes.changeInput,\n isOpen: true,\n inputValue: isReactNative\n ? /* istanbul ignore next (react-native) */ event.nativeEvent.text\n : event.target.value,\n highlightedIndex: this.props.defaultHighlightedIndex,\n })\n }\n\n inputHandleBlur = () => {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n this.internalSetTimeout(() => {\n const downshiftButtonIsActive =\n this.props.environment.document &&\n !!this.props.environment.document.activeElement &&\n !!this.props.environment.document.activeElement.dataset &&\n this.props.environment.document.activeElement.dataset.toggle &&\n this._rootNode &&\n this._rootNode.contains(this.props.environment.document.activeElement)\n if (!this.isMouseDown && !downshiftButtonIsActive) {\n this.reset({type: stateChangeTypes.blurInput})\n }\n })\n }\n\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INPUT\n\n /////////////////////////////// MENU\n\n menuRef = node => {\n this._menuNode = node\n }\n\n getMenuProps = (\n {refKey = 'ref', ref, ...props} = {},\n {suppressRefError = false} = {},\n ) => {\n this.getMenuProps.called = true\n this.getMenuProps.refKey = refKey\n this.getMenuProps.suppressRefError = suppressRefError\n\n return {\n [refKey]: handleRefs(ref, this.menuRef),\n role: 'listbox',\n 'aria-labelledby': props && props['aria-label'] ? null : this.labelId,\n id: this.menuId,\n ...props,\n }\n }\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MENU\n\n /////////////////////////////// ITEM\n getItemProps = ({\n onMouseMove,\n onMouseDown,\n onClick,\n onPress,\n index,\n item = process.env.NODE_ENV === 'production'\n ? /* istanbul ignore next */ undefined\n : requiredProp('getItemProps', 'item'),\n ...rest\n } = {}) => {\n if (index === undefined) {\n this.items.push(item)\n index = this.items.indexOf(item)\n } else {\n this.items[index] = item\n }\n\n const onSelectKey = isReactNative\n ? /* istanbul ignore next (react-native) */ 'onPress'\n : 'onClick'\n const customClickHandler = isReactNative\n ? /* istanbul ignore next (react-native) */ onPress\n : onClick\n\n const enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, () => {\n if (index === this.getState().highlightedIndex) {\n return\n }\n this.setHighlightedIndex(index, {\n type: stateChangeTypes.itemMouseEnter,\n })\n\n // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n this.avoidScrolling = true\n this.internalSetTimeout(() => (this.avoidScrolling = false), 250)\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, event => {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault()\n }),\n [onSelectKey]: callAllEventHandlers(customClickHandler, () => {\n this.selectItemAtIndex(index, {\n type: stateChangeTypes.clickItem,\n })\n }),\n }\n\n // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n const eventHandlers = rest.disabled\n ? {onMouseDown: enabledEventHandlers.onMouseDown}\n : enabledEventHandlers\n\n return {\n id: this.getItemId(index),\n role: 'option',\n 'aria-selected': this.getState().highlightedIndex === index,\n ...eventHandlers,\n ...rest,\n }\n }\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ITEM\n\n clearItems = () => {\n this.items = []\n }\n\n reset = (otherStateToSet = {}, cb) => {\n otherStateToSet = pickState(otherStateToSet)\n this.internalSetState(\n ({selectedItem}) => ({\n isOpen: this.props.defaultIsOpen,\n highlightedIndex: this.props.defaultHighlightedIndex,\n inputValue: this.props.itemToString(selectedItem),\n ...otherStateToSet,\n }),\n cb,\n )\n }\n\n toggleMenu = (otherStateToSet = {}, cb) => {\n otherStateToSet = pickState(otherStateToSet)\n this.internalSetState(\n ({isOpen}) => {\n return {\n isOpen: !isOpen,\n ...(isOpen && {\n highlightedIndex: this.props.defaultHighlightedIndex,\n }),\n ...otherStateToSet,\n }\n },\n () => {\n const {isOpen, highlightedIndex} = this.getState()\n if (isOpen) {\n if (this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n this.setHighlightedIndex(highlightedIndex, otherStateToSet)\n }\n }\n cbToCb(cb)()\n },\n )\n }\n\n openMenu = cb => {\n this.internalSetState({isOpen: true}, cb)\n }\n\n closeMenu = cb => {\n this.internalSetState({isOpen: false}, cb)\n }\n\n updateStatus = debounce(() => {\n const state = this.getState()\n const item = this.items[state.highlightedIndex]\n const resultCount = this.getItemCount()\n const status = this.props.getA11yStatusMessage({\n itemToString: this.props.itemToString,\n previousResultCount: this.previousResultCount,\n resultCount,\n highlightedItem: item,\n ...state,\n })\n this.previousResultCount = resultCount\n\n setA11yStatus(status, this.props.environment.document)\n }, 200)\n\n componentDidMount() {\n /* istanbul ignore if (react-native) */\n if (\n process.env.NODE_ENV !== 'production' &&\n !isReactNative &&\n this.getMenuProps.called &&\n !this.getMenuProps.suppressRefError\n ) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps)\n }\n\n /* istanbul ignore if (react-native) */\n if (isReactNative) {\n this.cleanup = () => {\n this.internalClearTimeouts()\n }\n } else {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n const onMouseDown = () => {\n this.isMouseDown = true\n }\n const onMouseUp = event => {\n this.isMouseDown = false\n // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n const contextWithinDownshift = targetWithinDownshift(\n event.target,\n [this._rootNode, this._menuNode],\n this.props.environment.document,\n )\n if (!contextWithinDownshift && this.getState().isOpen) {\n this.reset({type: stateChangeTypes.mouseUp}, () =>\n this.props.onOuterClick(this.getStateAndHelpers()),\n )\n }\n }\n // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n const onTouchStart = () => {\n this.isTouchMove = false\n }\n\n const onTouchMove = () => {\n this.isTouchMove = true\n }\n\n const onTouchEnd = event => {\n const contextWithinDownshift = targetWithinDownshift(\n event.target,\n [this._rootNode, this._menuNode],\n this.props.environment.document,\n false,\n )\n if (\n !this.isTouchMove &&\n !contextWithinDownshift &&\n this.getState().isOpen\n ) {\n this.reset({type: stateChangeTypes.touchEnd}, () =>\n this.props.onOuterClick(this.getStateAndHelpers()),\n )\n }\n }\n const {environment} = this.props\n\n environment.addEventListener('mousedown', onMouseDown)\n environment.addEventListener('mouseup', onMouseUp)\n environment.addEventListener('touchstart', onTouchStart)\n environment.addEventListener('touchmove', onTouchMove)\n environment.addEventListener('touchend', onTouchEnd)\n\n this.cleanup = () => {\n this.internalClearTimeouts()\n this.updateStatus.cancel()\n environment.removeEventListener('mousedown', onMouseDown)\n environment.removeEventListener('mouseup', onMouseUp)\n environment.removeEventListener('touchstart', onTouchStart)\n environment.removeEventListener('touchmove', onTouchMove)\n environment.removeEventListener('touchend', onTouchEnd)\n }\n }\n }\n\n shouldScroll(prevState, prevProps) {\n const {highlightedIndex: currentHighlightedIndex} =\n this.props.highlightedIndex === undefined ? this.getState() : this.props\n const {highlightedIndex: prevHighlightedIndex} =\n prevProps.highlightedIndex === undefined ? prevState : prevProps\n const scrollWhenOpen =\n currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen\n const scrollWhenNavigating =\n currentHighlightedIndex !== prevHighlightedIndex\n\n return scrollWhenOpen || scrollWhenNavigating\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(prevProps, this.props)\n /* istanbul ignore if (react-native) */\n if (\n !isReactNative &&\n this.getMenuProps.called &&\n !this.getMenuProps.suppressRefError\n ) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps)\n }\n }\n\n if (\n isControlledProp(this.props, 'selectedItem') &&\n this.props.selectedItemChanged(\n prevProps.selectedItem,\n this.props.selectedItem,\n )\n ) {\n this.internalSetState({\n type: stateChangeTypes.controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem),\n })\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView()\n }\n\n /* istanbul ignore else (react-native) */\n if (!isReactNative) {\n this.updateStatus()\n }\n }\n\n componentWillUnmount() {\n this.cleanup() // avoids memory leak\n }\n\n render() {\n const children = unwrapArray(this.props.children, noop)\n // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n this.clearItems()\n // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n this.getRootProps.called = false\n this.getRootProps.refKey = undefined\n this.getRootProps.suppressRefError = undefined\n // we do something similar for getMenuProps\n this.getMenuProps.called = false\n this.getMenuProps.refKey = undefined\n this.getMenuProps.suppressRefError = undefined\n // we do something similar for getLabelProps\n this.getLabelProps.called = false\n // and something similar for getInputProps\n this.getInputProps.called = false\n const element = unwrapArray(children(this.getStateAndHelpers()))\n if (!element) {\n return null\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (\n process.env.NODE_ENV !== 'production' &&\n !this.getRootProps.suppressRefError &&\n !this.props.suppressRefError\n ) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps)\n }\n return element\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return cloneElement(element, this.getRootProps(getElementProps(element)))\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n\n throw new Error(\n 'downshift: If you return a non-DOM element, you must apply the getRootProps function',\n )\n }\n\n /* istanbul ignore next */\n return undefined\n }\n}\n\nexport default Downshift\n\nfunction validateGetMenuPropsCalledCorrectly(node, {refKey}) {\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\n `downshift: The ref prop \"${refKey}\" from getMenuProps was not applied correctly on your menu element.`,\n )\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, {refKey}) {\n const refKeySpecified = refKey !== 'ref'\n const isComposite = !isDOMElement(element)\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error(\n 'downshift: You returned a non-DOM element. You must specify a refKey in getRootProps',\n )\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\n `downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \"${refKey}\"`,\n )\n }\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\n `downshift: You must apply the ref prop \"${refKey}\" from getRootProps onto your root element.`,\n )\n }\n}\n\nfunction validateControlledUnchanged(prevProps, nextProps) {\n const warningDescription = `This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props`\n ;['selectedItem', 'isOpen', 'inputValue', 'highlightedIndex'].forEach(\n propKey => {\n if (\n prevProps[propKey] !== undefined &&\n nextProps[propKey] === undefined\n ) {\n // eslint-disable-next-line no-console\n console.error(\n `downshift: A component has changed the controlled prop \"${propKey}\" to be uncontrolled. ${warningDescription}`,\n )\n } else if (\n prevProps[propKey] === undefined &&\n nextProps[propKey] !== undefined\n ) {\n // eslint-disable-next-line no-console\n console.error(\n `downshift: A component has changed the uncontrolled prop \"${propKey}\" to be controlled. ${warningDescription}`,\n )\n }\n },\n )\n}\n","import PropTypes from 'prop-types'\nimport {useCallback, useReducer} from 'react'\nimport {\n scrollIntoView,\n getNextWrappingIndex,\n getState,\n generateId,\n} from '../utils'\n\nconst defaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: '',\n}\n\nfunction getElementIds({id, labelId, menuId, getItemId, toggleButtonId}) {\n const uniqueId = id === undefined ? `downshift-${generateId()}` : id\n\n return {\n labelId: labelId || `${uniqueId}-label`,\n menuId: menuId || `${uniqueId}-menu`,\n getItemId: getItemId || (index => `${uniqueId}-item-${index}`),\n toggleButtonId: toggleButtonId || `${uniqueId}-toggle-button`,\n }\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index\n }\n if (items.length === 0) {\n return -1\n }\n return items.indexOf(item)\n}\n\nfunction itemToString(item) {\n return item ? String(item) : ''\n}\n\nfunction getPropTypesValidator(caller, propTypes) {\n // istanbul ignore next\n return function validate(options = {}) {\n Object.keys(propTypes).forEach(key => {\n PropTypes.checkPropTypes(propTypes, options, key, caller.name)\n })\n }\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key)\n}\n\nfunction capitalizeString(string) {\n return `${string.slice(0, 1).toUpperCase()}${string.slice(1)}`\n}\n\nfunction invokeOnChangeHandler(key, props, state, newState) {\n const handler = `on${capitalizeString(key)}Change`\n if (\n props[handler] &&\n newState[key] !== undefined &&\n newState[key] !== state[key]\n ) {\n props[handler](newState)\n }\n}\n\nfunction callOnChangeProps(action, state, newState) {\n const {props, type} = action\n const changes = {}\n\n Object.keys(state).forEach(key => {\n invokeOnChangeHandler(key, props, state, newState)\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key]\n }\n })\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange({type, ...changes})\n }\n}\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n const enhancedReducer = useCallback(\n (state, action) => {\n state = getState(state, action.props)\n\n const {stateReducer: stateReduceLocal} = action.props\n const changes = reducer(state, action)\n const newState = stateReduceLocal(state, {...action, changes})\n\n callOnChangeProps(action, state, newState)\n\n return newState\n },\n [reducer],\n )\n\n const [state, dispatch] = useReducer(enhancedReducer, initialState)\n const dispatchWithProps = action => dispatch({props, ...action})\n\n return [getState(state, props), dispatchWithProps]\n}\n\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\nfunction stateReducer(s, a) {\n return a.changes\n}\n\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\nfunction getA11ySelectionMessage(selectionParameters) {\n const {selectedItem, itemToString: itemToStringLocal} = selectionParameters\n\n return `${itemToStringLocal(selectedItem)} has been selected.`\n}\n\nconst defaultProps = {\n itemToString,\n stateReducer,\n getA11ySelectionMessage,\n scrollIntoView,\n circularNavigation: false,\n environment:\n typeof window === 'undefined' /* istanbul ignore next (ssr) */\n ? {}\n : window,\n}\n\nfunction getDefaultValue(props, propKey) {\n const defaultPropKey = `default${capitalizeString(propKey)}`\n\n if (defaultPropKey in props) {\n return props[defaultPropKey]\n }\n\n return defaultStateValues[propKey]\n}\n\nfunction getInitialValue(props, propKey) {\n if (propKey in props) {\n return props[propKey]\n }\n\n const initialPropKey = `initial${capitalizeString(propKey)}`\n\n if (initialPropKey in props) {\n return props[initialPropKey]\n }\n return getDefaultValue(props, propKey)\n}\n\nfunction getInitialState(props) {\n const selectedItem = getInitialValue(props, 'selectedItem')\n const isOpen = getInitialValue(props, 'isOpen')\n const highlightedIndex = getInitialValue(props, 'highlightedIndex')\n const inputValue = getInitialValue(props, 'inputValue')\n\n return {\n highlightedIndex:\n highlightedIndex < 0 && selectedItem\n ? props.items.indexOf(selectedItem)\n : highlightedIndex,\n isOpen,\n selectedItem,\n inputValue,\n }\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n const {items, initialHighlightedIndex, defaultHighlightedIndex} = props\n const {selectedItem, highlightedIndex} = state\n\n // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n if (\n initialHighlightedIndex !== undefined &&\n highlightedIndex === initialHighlightedIndex\n ) {\n return initialHighlightedIndex\n }\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex\n }\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem)\n }\n return getNextWrappingIndex(\n offset,\n items.indexOf(selectedItem),\n items.length,\n getItemNodeFromIndex,\n false,\n )\n }\n if (offset === 0) {\n return -1\n }\n return offset < 0 ? items.length - 1 : 0\n}\n\nexport {\n getElementIds,\n getItemIndex,\n getPropTypesValidator,\n isAcceptedCharacterKey,\n useEnhancedReducer,\n capitalizeString,\n defaultProps,\n getDefaultValue,\n getInitialValue,\n getHighlightedIndexOnOpen,\n defaultStateValues,\n getInitialState,\n}\n","import PropTypes from 'prop-types'\nimport {defaultProps as commonDefaultProps} from '../utils'\n\nfunction getItemIndexByCharacterKey(\n keysSoFar,\n highlightedIndex,\n items,\n itemToStringParam,\n getItemNodeFromIndex,\n) {\n const lowerCasedItemStrings = items.map(item =>\n itemToStringParam(item).toLowerCase(),\n )\n const lowerCasedKeysSoFar = keysSoFar.toLowerCase()\n const isValid = (itemString, index) => {\n const element = getItemNodeFromIndex(index)\n\n return (\n itemString.startsWith(lowerCasedKeysSoFar) &&\n !(element && element.hasAttribute('disabled'))\n )\n }\n\n for (\n let index = highlightedIndex + 1;\n index < lowerCasedItemStrings.length;\n index++\n ) {\n const itemString = lowerCasedItemStrings[index]\n\n if (isValid(itemString, index)) {\n return index\n }\n }\n\n for (let index = 0; index < highlightedIndex; index++) {\n const itemString = lowerCasedItemStrings[index]\n\n if (isValid(itemString, index)) {\n return index\n }\n }\n\n return highlightedIndex\n}\n\nconst propTypes = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any,\n }),\n }),\n}\n\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage({isOpen, resultCount}) {\n if (!isOpen) {\n return ''\n }\n\n if (!resultCount) {\n return 'No results are available.'\n }\n\n return `${resultCount} result${\n resultCount === 1 ? ' is' : 's are'\n } available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.`\n}\n\nconst defaultProps = {\n ...commonDefaultProps,\n getA11yStatusMessage,\n}\n\nexport {propTypes, getItemIndexByCharacterKey, defaultProps}\n","import productionEnum from '../../productionEnum.macro'\n\nexport const MenuKeyDownArrowDown = productionEnum(\n '__menu_keydown_arrow_down__',\n)\nexport const MenuKeyDownArrowUp = productionEnum('__menu_keydown_arrow_up__')\nexport const MenuKeyDownEscape = productionEnum('__menu_keydown_escape__')\nexport const MenuKeyDownHome = productionEnum('__menu_keydown_home__')\nexport const MenuKeyDownEnd = productionEnum('__menu_keydown_end__')\nexport const MenuKeyDownEnter = productionEnum('__menu_keydown_enter__')\nexport const MenuKeyDownSpaceButton = productionEnum(\n '__menu_keydown_space_button__',\n)\nexport const MenuKeyDownCharacter = productionEnum('__menu_keydown_character__')\nexport const MenuBlur = productionEnum('__menu_blur__')\nexport const MenuMouseLeave = productionEnum('__menu_mouse_leave__')\n\nexport const ItemMouseMove = productionEnum('__item_mouse_move__')\nexport const ItemClick = productionEnum('__item_click__')\n\nexport const ToggleButtonClick = productionEnum('__togglebutton_click__')\nexport const ToggleButtonKeyDownArrowDown = productionEnum(\n '__togglebutton_keydown_arrow_down__',\n)\nexport const ToggleButtonKeyDownArrowUp = productionEnum(\n '__togglebutton_keydown_arrow_up__',\n)\nexport const ToggleButtonKeyDownCharacter = productionEnum(\n '__togglebutton_keydown_character__',\n)\n\nexport const FunctionToggleMenu = productionEnum('__function_toggle_menu__')\nexport const FunctionOpenMenu = productionEnum('__function_open_menu__')\nexport const FunctionCloseMenu = productionEnum('__function_close_menu__')\nexport const FunctionSetHighlightedIndex = productionEnum(\n '__function_set_highlighted_index__',\n)\nexport const FunctionSelectItem = productionEnum('__function_select_item__')\nexport const FunctionSetInputValue = productionEnum(\n '__function_set_input_value__',\n)\nexport const FunctionReset = productionEnum('__function_reset__')\n","import {getNextWrappingIndex, getNextNonDisabledIndex} from '../../utils'\nimport {getHighlightedIndexOnOpen, getDefaultValue} from '../utils'\nimport {getItemIndexByCharacterKey} from './utils'\nimport * as stateChangeTypes from './stateChangeTypes'\n\n/* eslint-disable complexity */\nexport default function downshiftSelectReducer(state, action) {\n const {type, props, shiftKey} = action\n let changes\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.index,\n }\n\n break\n case stateChangeTypes.ItemClick:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n }\n\n break\n case stateChangeTypes.ToggleButtonKeyDownCharacter:\n {\n const lowercasedKey = action.key\n const inputValue = `${state.inputValue}${lowercasedKey}`\n const itemIndex = getItemIndexByCharacterKey(\n inputValue,\n state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,\n props.items,\n props.itemToString,\n action.getItemNodeFromIndex,\n )\n\n changes = {\n inputValue,\n ...(itemIndex >= 0 && {\n selectedItem: props.items[itemIndex],\n }),\n }\n }\n\n break\n case stateChangeTypes.ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(\n props,\n state,\n 1,\n action.getItemNodeFromIndex,\n ),\n isOpen: true,\n }\n\n break\n case stateChangeTypes.ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(\n props,\n state,\n -1,\n action.getItemNodeFromIndex,\n ),\n isOpen: true,\n }\n\n break\n case stateChangeTypes.MenuKeyDownEnter:\n case stateChangeTypes.MenuKeyDownSpaceButton:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n ...(state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n }),\n }\n\n break\n case stateChangeTypes.MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(\n 1,\n 0,\n props.items.length,\n action.getItemNodeFromIndex,\n false,\n ),\n }\n\n break\n case stateChangeTypes.MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(\n -1,\n props.items.length - 1,\n props.items.length,\n action.getItemNodeFromIndex,\n false,\n ),\n }\n\n break\n case stateChangeTypes.MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1,\n }\n\n break\n case stateChangeTypes.MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1,\n }\n\n break\n case stateChangeTypes.MenuKeyDownCharacter:\n {\n const lowercasedKey = action.key\n const inputValue = `${state.inputValue}${lowercasedKey}`\n const highlightedIndex = getItemIndexByCharacterKey(\n inputValue,\n state.highlightedIndex,\n props.items,\n props.itemToString,\n action.getItemNodeFromIndex,\n )\n\n changes = {\n inputValue,\n ...(highlightedIndex >= 0 && {\n highlightedIndex,\n }),\n }\n }\n break\n case stateChangeTypes.MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(\n shiftKey ? 5 : 1,\n state.highlightedIndex,\n props.items.length,\n action.getItemNodeFromIndex,\n props.circularNavigation,\n ),\n }\n\n break\n case stateChangeTypes.MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(\n shiftKey ? -5 : -1,\n state.highlightedIndex,\n props.items.length,\n action.getItemNodeFromIndex,\n props.circularNavigation,\n ),\n }\n\n break\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1,\n }\n\n break\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen\n ? -1\n : getHighlightedIndexOnOpen(props, state, 0),\n }\n\n break\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0),\n }\n\n break\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false,\n }\n\n break\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex,\n }\n\n break\n case stateChangeTypes.FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n }\n\n break\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue,\n }\n\n break\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem'),\n inputValue: getDefaultValue(props, 'inputValue'),\n }\n\n break\n default:\n throw new Error('Reducer called without proper action type.')\n }\n\n return {\n ...state,\n ...changes,\n }\n}\n/* eslint-enable complexity */\n","/* eslint-disable max-statements */\nimport {useRef, useEffect} from 'react'\nimport {\n getElementIds,\n getItemIndex,\n getPropTypesValidator,\n isAcceptedCharacterKey,\n useEnhancedReducer,\n getInitialState,\n} from '../utils'\nimport setStatus from '../../set-a11y-status'\nimport {\n callAllEventHandlers,\n handleRefs,\n debounce,\n normalizeArrowKey,\n targetWithinDownshift,\n} from '../../utils'\nimport downshiftSelectReducer from './reducer'\nimport {propTypes, defaultProps} from './utils'\nimport * as stateChangeTypes from './stateChangeTypes'\n\nconst validatePropTypes =\n process.env.NODE_ENV === 'production'\n ? /* istanbul ignore next */ null\n : getPropTypesValidator(useSelect, propTypes)\n\nuseSelect.stateChangeTypes = stateChangeTypes\n\nfunction useSelect(userProps = {}) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes(userProps)\n }\n // Props defaults and destructuring.\n const props = {\n ...defaultProps,\n ...userProps,\n }\n const {\n items,\n itemToString,\n getA11yStatusMessage,\n getA11ySelectionMessage,\n scrollIntoView,\n environment,\n initialIsOpen,\n defaultIsOpen,\n } = props\n // Initial state depending on controlled props.\n const initialState = getInitialState(props)\n\n // Reducer init.\n const [\n {isOpen, highlightedIndex, selectedItem, inputValue},\n dispatch,\n ] = useEnhancedReducer(downshiftSelectReducer, initialState, props)\n\n /* Refs */\n const toggleButtonRef = useRef(null)\n const menuRef = useRef(null)\n const isInitialMount = useRef(true)\n const shouldScroll = useRef(true)\n const clearTimeout = useRef(null)\n const mouseAndTouchTrackers = useRef({\n isMouseDown: false,\n isTouchMove: false,\n })\n const elementIds = useRef(getElementIds(props))\n\n // Some utils.\n const getItemNodeFromIndex = index =>\n environment.document.getElementById(elementIds.current.getItemId(index))\n\n /* Effects */\n /* Sets a11y status message on changes in isOpen. */\n useEffect(() => {\n if (isInitialMount.current) {\n return\n }\n\n setStatus(\n getA11yStatusMessage({\n highlightedIndex,\n inputValue,\n isOpen,\n itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem,\n }),\n environment.document,\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen])\n /* Sets a11y status message on changes in selectedItem. */\n useEffect(() => {\n if (isInitialMount.current) {\n return\n }\n\n setStatus(\n getA11ySelectionMessage({\n highlightedIndex,\n inputValue,\n isOpen,\n itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem,\n }),\n environment.document,\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItem])\n /* Sets cleanup for the keysSoFar after 500ms. */\n useEffect(() => {\n // init the clean function here as we need access to dispatch.\n if (isInitialMount.current) {\n clearTimeout.current = debounce(outerDispatch => {\n outerDispatch({\n type: stateChangeTypes.FunctionSetInputValue,\n inputValue: '',\n })\n }, 500)\n }\n\n if (!inputValue) {\n return\n }\n clearTimeout.current(dispatch)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue])\n /* Controls the focus on the menu or the toggle button. */\n useEffect(() => {\n // Don't focus menu on first render.\n if (isInitialMount.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus()\n }\n return\n }\n // Focus menu on open.\n // istanbul ignore next\n if (isOpen && menuRef.current) {\n menuRef.current.focus()\n // Focus toggleButton on close.\n } else if (\n environment.document.activeElement === menuRef.current &&\n toggleButtonRef.current\n ) {\n toggleButtonRef.current.focus()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen])\n /* Scroll on highlighted item if change comes from keyboard. */\n useEffect(() => {\n if (highlightedIndex < 0 || !isOpen || !items.length) {\n return\n }\n if (shouldScroll.current === false) {\n shouldScroll.current = true\n } else {\n scrollIntoView(getItemNodeFromIndex(highlightedIndex), menuRef.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [highlightedIndex])\n /* Make initial ref false. */\n useEffect(() => {\n isInitialMount.current = false\n }, [])\n /* Add mouse/touch events to document. */\n useEffect(() => {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n const onMouseDown = () => {\n mouseAndTouchTrackers.current.isMouseDown = true\n }\n const onMouseUp = event => {\n mouseAndTouchTrackers.current.isMouseDown = false\n if (\n isOpen &&\n !targetWithinDownshift(\n event.target,\n [toggleButtonRef.current, menuRef.current],\n environment.document,\n )\n ) {\n dispatch({\n type: stateChangeTypes.MenuBlur,\n })\n }\n }\n const onTouchStart = () => {\n mouseAndTouchTrackers.current.isTouchMove = false\n }\n const onTouchMove = () => {\n mouseAndTouchTrackers.current.isTouchMove = true\n }\n const onTouchEnd = event => {\n if (\n isOpen &&\n !mouseAndTouchTrackers.current.isTouchMove &&\n !targetWithinDownshift(\n event.target,\n [toggleButtonRef.current, menuRef.current],\n environment.document,\n false,\n )\n ) {\n dispatch({\n type: stateChangeTypes.MenuBlur,\n })\n }\n }\n\n environment.addEventListener('mousedown', onMouseDown)\n environment.addEventListener('mouseup', onMouseUp)\n environment.addEventListener('touchstart', onTouchStart)\n environment.addEventListener('touchmove', onTouchMove)\n environment.addEventListener('touchend', onTouchEnd)\n\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown)\n environment.removeEventListener('mouseup', onMouseUp)\n environment.removeEventListener('touchstart', onTouchStart)\n environment.removeEventListener('touchmove', onTouchMove)\n environment.removeEventListener('touchend', onTouchEnd)\n }\n })\n\n // Event handler functions.\n const toggleButtonKeyDownHandlers = {\n ArrowDown(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey,\n })\n },\n ArrowUp(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey,\n })\n },\n }\n const menuKeyDownHandlers = {\n ArrowDown(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.MenuKeyDownArrowDown,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey,\n })\n },\n ArrowUp(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.MenuKeyDownArrowUp,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey,\n })\n },\n Home(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.MenuKeyDownHome,\n getItemNodeFromIndex,\n })\n },\n End(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.MenuKeyDownEnd,\n getItemNodeFromIndex,\n })\n },\n Escape() {\n dispatch({\n type: stateChangeTypes.MenuKeyDownEscape,\n })\n },\n Enter(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.MenuKeyDownEnter,\n })\n },\n ' '(event) {\n event.preventDefault()\n\n dispatch({\n type: stateChangeTypes.MenuKeyDownSpaceButton,\n })\n },\n }\n\n // Event handlers.\n const menuHandleKeyDown = event => {\n const key = normalizeArrowKey(event)\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event)\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: stateChangeTypes.MenuKeyDownCharacter,\n key,\n getItemNodeFromIndex,\n })\n }\n }\n const menuHandleBlur = () => {\n const shouldBlur = !mouseAndTouchTrackers.current.isMouseDown\n /* istanbul ignore else */\n if (shouldBlur) {\n dispatch({type: stateChangeTypes.MenuBlur})\n }\n }\n const menuHandleMouseLeave = () => {\n dispatch({\n type: stateChangeTypes.MenuMouseLeave,\n })\n }\n const toggleButtonHandleClick = () => {\n dispatch({\n type: stateChangeTypes.ToggleButtonClick,\n })\n }\n const toggleButtonHandleKeyDown = event => {\n const key = normalizeArrowKey(event)\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event)\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: stateChangeTypes.ToggleButtonKeyDownCharacter,\n key,\n getItemNodeFromIndex,\n })\n }\n }\n const itemHandleMouseMove = index => {\n if (index === highlightedIndex) {\n return\n }\n shouldScroll.current = false\n dispatch({\n type: stateChangeTypes.ItemMouseMove,\n index,\n })\n }\n const itemHandleClick = index => {\n dispatch({\n type: stateChangeTypes.ItemClick,\n index,\n })\n }\n\n // Action functions.\n const toggleMenu = () => {\n dispatch({\n type: stateChangeTypes.FunctionToggleMenu,\n })\n }\n const closeMenu = () => {\n dispatch({\n type: stateChangeTypes.FunctionCloseMenu,\n })\n }\n const openMenu = () => {\n dispatch({\n type: stateChangeTypes.FunctionOpenMenu,\n })\n }\n const setHighlightedIndex = newHighlightedIndex => {\n dispatch({\n type: stateChangeTypes.FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex,\n })\n }\n const selectItem = newSelectedItem => {\n dispatch({\n type: stateChangeTypes.FunctionSelectItem,\n selectedItem: newSelectedItem,\n })\n }\n const reset = () => {\n dispatch({\n type: stateChangeTypes.FunctionReset,\n })\n }\n const setInputValue = newInputValue => {\n dispatch({\n type: stateChangeTypes.FunctionSetInputValue,\n inputValue: newInputValue,\n })\n }\n // Getter functions.\n const getLabelProps = labelProps => ({\n id: elementIds.current.labelId,\n htmlFor: elementIds.current.toggleButtonId,\n ...labelProps,\n })\n const getMenuProps = ({\n onMouseLeave,\n refKey = 'ref',\n onKeyDown,\n onBlur,\n ref,\n ...rest\n } = {}) => ({\n [refKey]: handleRefs(ref, menuNode => {\n menuRef.current = menuNode\n }),\n id: elementIds.current.menuId,\n role: 'listbox',\n 'aria-labelledby': elementIds.current.labelId,\n tabIndex: -1,\n ...(isOpen &&\n highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.current.getItemId(highlightedIndex),\n }),\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur),\n ...rest,\n })\n const getToggleButtonProps = ({\n onClick,\n onKeyDown,\n refKey = 'ref',\n ref,\n ...rest\n } = {}) => {\n const toggleProps = {\n [refKey]: handleRefs(ref, toggleButtonNode => {\n toggleButtonRef.current = toggleButtonNode\n }),\n id: elementIds.current.toggleButtonId,\n 'aria-haspopup': 'listbox',\n 'aria-expanded': isOpen,\n 'aria-labelledby': `${elementIds.current.labelId} ${elementIds.current.toggleButtonId}`,\n ...rest,\n }\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(\n onClick,\n toggleButtonHandleClick,\n )\n toggleProps.onKeyDown = callAllEventHandlers(\n onKeyDown,\n toggleButtonHandleKeyDown,\n )\n }\n\n return toggleProps\n }\n const getItemProps = ({item, index, onMouseMove, onClick, ...rest} = {}) => {\n const itemIndex = getItemIndex(index, item, items)\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!')\n }\n const itemProps = {\n role: 'option',\n 'aria-selected': `${itemIndex === highlightedIndex}`,\n id: elementIds.current.getItemId(itemIndex),\n ...rest,\n }\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, () =>\n itemHandleMouseMove(itemIndex),\n )\n itemProps.onClick = callAllEventHandlers(onClick, () =>\n itemHandleClick(itemIndex),\n )\n }\n\n return itemProps\n }\n\n return {\n // prop getters.\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n // actions.\n toggleMenu,\n openMenu,\n closeMenu,\n setHighlightedIndex,\n selectItem,\n reset,\n setInputValue,\n // state.\n highlightedIndex,\n isOpen,\n selectedItem,\n inputValue,\n }\n}\n\nexport default useSelect\n","import PropTypes from 'prop-types'\nimport {generateId, getA11yStatusMessage} from '../../utils'\nimport {\n getElementIds as getElementIdsCommon,\n defaultProps as defaultPropsCommon,\n getInitialState as getInitialStateCommon,\n} from '../utils'\n\nfunction getElementIds({id, inputId, ...rest}) {\n const uniqueId = id === undefined ? `downshift-${generateId()}` : id\n\n return {\n inputId: inputId || `${uniqueId}-input`,\n ...getElementIdsCommon({id, ...rest}),\n }\n}\n\nfunction getInitialState(props) {\n const initialState = getInitialStateCommon(props)\n const {selectedItem} = initialState\n let {inputValue} = initialState\n\n if (\n inputValue === '' &&\n selectedItem &&\n props.defaultInputValue === undefined &&\n props.initialInputValue === undefined &&\n props.inputValue === undefined\n ) {\n inputValue = props.itemToString(selectedItem)\n }\n\n return {\n ...initialState,\n inputValue,\n }\n}\n\nconst propTypes = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any,\n }),\n }),\n}\n\nconst defaultProps = {\n ...defaultPropsCommon,\n getA11yStatusMessage,\n circularNavigation: true,\n}\n\nexport {getInitialState, propTypes, defaultProps, getElementIds}\n","import productionEnum from '../../productionEnum.macro'\n\nexport const InputKeyDownArrowDown = productionEnum(\n '__input_keydown_arrow_down__',\n)\nexport const InputKeyDownArrowUp = productionEnum('__input_keydown_arrow_up__')\nexport const InputKeyDownEscape = productionEnum('__input_keydown_escape__')\nexport const InputKeyDownHome = productionEnum('__input_keydown_home__')\nexport const InputKeyDownEnd = productionEnum('__input_keydown_end__')\nexport const InputKeyDownEnter = productionEnum('__input_keydown_enter__')\nexport const InputChange = productionEnum('__input_change__')\nexport const InputBlur = productionEnum('__input_blur__')\n\nexport const MenuMouseLeave = productionEnum('__menu_mouse_leave__')\n\nexport const ItemMouseMove = productionEnum('__item_mouse_move__')\nexport const ItemClick = productionEnum('__item_click__')\n\nexport const ToggleButtonClick = productionEnum('__togglebutton_click__')\n\nexport const FunctionToggleMenu = productionEnum('__function_toggle_menu__')\nexport const FunctionOpenMenu = productionEnum('__function_open_menu__')\nexport const FunctionCloseMenu = productionEnum('__function_close_menu__')\nexport const FunctionSetHighlightedIndex = productionEnum(\n '__function_set_highlighted_index__',\n)\nexport const FunctionSelectItem = productionEnum('__function_select_item__')\nexport const FunctionSetInputValue = productionEnum(\n '__function_set_input_value__',\n)\nexport const FunctionReset = productionEnum('__function_reset__')\n","import {getHighlightedIndexOnOpen, getDefaultValue} from '../utils'\nimport {getNextWrappingIndex, getNextNonDisabledIndex} from '../../utils'\nimport * as stateChangeTypes from './stateChangeTypes'\n\n/* eslint-disable complexity */\nexport default function downshiftUseComboboxReducer(state, action) {\n const {type, props, shiftKey} = action\n let changes\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.index,\n }\n break\n case stateChangeTypes.ItemClick:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index]),\n }\n break\n case stateChangeTypes.InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(\n shiftKey ? 5 : 1,\n state.highlightedIndex,\n props.items.length,\n action.getItemNodeFromIndex,\n props.circularNavigation,\n ),\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(\n props,\n state,\n 1,\n action.getItemNodeFromIndex,\n ),\n isOpen: true,\n }\n }\n break\n case stateChangeTypes.InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(\n shiftKey ? -5 : -1,\n state.highlightedIndex,\n props.items.length,\n action.getItemNodeFromIndex,\n props.circularNavigation,\n ),\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(\n props,\n state,\n -1,\n action.getItemNodeFromIndex,\n ),\n isOpen: true,\n }\n }\n break\n case stateChangeTypes.InputKeyDownEnter:\n changes = {\n ...(state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex]),\n }),\n }\n break\n case stateChangeTypes.InputKeyDownEscape:\n changes = {\n isOpen: false,\n selectedItem: null,\n highlightedIndex: -1,\n inputValue: '',\n }\n break\n case stateChangeTypes.InputKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(\n 1,\n 0,\n props.items.length,\n action.getItemNodeFromIndex,\n false,\n ),\n }\n break\n case stateChangeTypes.InputKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(\n -1,\n props.items.length - 1,\n props.items.length,\n action.getItemNodeFromIndex,\n false,\n ),\n }\n break\n case stateChangeTypes.InputBlur:\n changes = {\n isOpen: false,\n ...(state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex]),\n highlightedIndex: -1,\n }),\n }\n break\n case stateChangeTypes.InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n inputValue: action.inputValue,\n }\n break\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1,\n }\n break\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen\n ? -1\n : getHighlightedIndexOnOpen(props, state, 0),\n }\n break\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0),\n }\n break\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false,\n }\n break\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex,\n }\n break\n case stateChangeTypes.FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n }\n break\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue,\n }\n break\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem'),\n inputValue: getDefaultValue(props, 'inputValue'),\n }\n break\n default:\n throw new Error('Reducer called without proper action type.')\n }\n\n return {\n ...state,\n ...changes,\n }\n}\n/* eslint-enable complexity */\n","/* eslint-disable max-statements */\nimport {useRef, useEffect} from 'react'\nimport {isPreact, isReactNative} from '../../is.macro'\nimport setStatus from '../../set-a11y-status'\nimport {\n handleRefs,\n normalizeArrowKey,\n callAllEventHandlers,\n targetWithinDownshift,\n} from '../../utils'\nimport {getItemIndex, getPropTypesValidator, useEnhancedReducer} from '../utils'\nimport {getInitialState, propTypes, defaultProps, getElementIds} from './utils'\nimport downshiftUseComboboxReducer from './reducer'\nimport * as stateChangeTypes from './stateChangeTypes'\n\nconst validatePropTypes =\n process.env.NODE_ENV === 'production'\n ? /* istanbul ignore next */ null\n : getPropTypesValidator(useCombobox, propTypes)\n\nuseCombobox.stateChangeTypes = stateChangeTypes\n\nfunction useCombobox(userProps = {}) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes(userProps)\n }\n // Props defaults and destructuring.\n const props = {\n ...defaultProps,\n ...userProps,\n }\n const {\n initialIsOpen,\n defaultIsOpen,\n items,\n scrollIntoView,\n getA11ySelectionMessage,\n getA11yStatusMessage,\n itemToString,\n environment,\n } = props\n // Initial state depending on controlled props.\n const initialState = getInitialState(props)\n\n // Reducer init.\n const [\n {isOpen, highlightedIndex, selectedItem, inputValue},\n dispatch,\n ] = useEnhancedReducer(downshiftUseComboboxReducer, initialState, props)\n\n /* Refs */\n const menuRef = useRef(null)\n const itemRefs = useRef()\n const inputRef = useRef(null)\n const toggleButtonRef = useRef(null)\n const comboboxRef = useRef(null)\n itemRefs.current = []\n const shouldScroll = useRef(true)\n const isInitialMount = useRef(true)\n const mouseAndTouchTrackers = useRef({\n isMouseDown: false,\n isTouchMove: false,\n })\n const elementIds = useRef(getElementIds(props))\n\n /* Effects */\n /* Sets a11y status message on changes in isOpen. */\n useEffect(() => {\n if (isInitialMount.current) {\n return\n }\n\n setStatus(\n getA11yStatusMessage({\n highlightedIndex,\n inputValue,\n isOpen,\n itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem,\n }),\n environment.document,\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen])\n /* Sets a11y status message on changes in selectedItem. */\n useEffect(() => {\n if (isInitialMount.current) {\n return\n }\n\n setStatus(\n getA11ySelectionMessage({\n highlightedIndex,\n inputValue,\n isOpen,\n itemToString,\n resultCount: items.length,\n highlightedItem: items[highlightedIndex],\n selectedItem,\n }),\n environment.document,\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItem])\n /* Scroll on highlighted item if change comes from keyboard. */\n useEffect(() => {\n if (highlightedIndex < 0 || !isOpen || !itemRefs.current.length) {\n return\n }\n\n if (shouldScroll.current === false) {\n shouldScroll.current = true\n } else {\n scrollIntoView(itemRefs.current[highlightedIndex], menuRef.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [highlightedIndex])\n /* Controls the focus on the menu or the toggle button. */\n useEffect(() => {\n // Don't focus menu on first render.\n if (isInitialMount.current) {\n // Unless it was initialised as open.\n if (initialIsOpen || defaultIsOpen || isOpen) {\n if (inputRef.current) {\n inputRef.current.focus()\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen])\n /* Make initial ref false. */\n useEffect(() => {\n isInitialMount.current = false\n }, [])\n /* Add mouse/touch events to document. */\n useEffect(() => {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n const onMouseDown = () => {\n mouseAndTouchTrackers.current.isMouseDown = true\n }\n const onMouseUp = event => {\n mouseAndTouchTrackers.current.isMouseDown = false\n if (\n isOpen &&\n !targetWithinDownshift(\n event.target,\n [comboboxRef.current, menuRef.current, toggleButtonRef.current],\n environment.document,\n )\n ) {\n dispatch({\n type: stateChangeTypes.InputBlur,\n })\n }\n }\n const onTouchStart = () => {\n mouseAndTouchTrackers.current.isTouchMove = false\n }\n const onTouchMove = () => {\n mouseAndTouchTrackers.current.isTouchMove = true\n }\n const onTouchEnd = event => {\n if (\n isOpen &&\n !mouseAndTouchTrackers.current.isTouchMove &&\n !targetWithinDownshift(\n event.target,\n [comboboxRef.current, menuRef.current, toggleButtonRef.current],\n environment.document,\n false,\n )\n ) {\n dispatch({\n type: stateChangeTypes.InputBlur,\n })\n }\n }\n\n environment.addEventListener('mousedown', onMouseDown)\n environment.addEventListener('mouseup', onMouseUp)\n environment.addEventListener('touchstart', onTouchStart)\n environment.addEventListener('touchmove', onTouchMove)\n environment.addEventListener('touchend', onTouchEnd)\n\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown)\n environment.removeEventListener('mouseup', onMouseUp)\n environment.removeEventListener('touchstart', onTouchStart)\n environment.removeEventListener('touchmove', onTouchMove)\n environment.removeEventListener('touchend', onTouchEnd)\n }\n })\n\n const getItemNodeFromIndex = index => itemRefs.current[index]\n\n /* Event handler functions */\n const inputKeyDownHandlers = {\n ArrowDown(event) {\n event.preventDefault()\n dispatch({\n type: stateChangeTypes.InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex,\n })\n },\n ArrowUp(event) {\n event.preventDefault()\n dispatch({\n type: stateChangeTypes.InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex,\n })\n },\n Home(event) {\n event.preventDefault()\n dispatch({\n type: stateChangeTypes.InputKeyDownHome,\n getItemNodeFromIndex,\n })\n },\n End(event) {\n event.preventDefault()\n dispatch({\n type: stateChangeTypes.InputKeyDownEnd,\n getItemNodeFromIndex,\n })\n },\n Escape() {\n dispatch({\n type: stateChangeTypes.InputKeyDownEscape,\n })\n },\n Enter(event) {\n event.preventDefault()\n dispatch({\n type: stateChangeTypes.InputKeyDownEnter,\n getItemNodeFromIndex,\n })\n },\n }\n\n // Event handlers.\n const inputHandleKeyDown = event => {\n const key = normalizeArrowKey(event)\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event)\n }\n }\n const inputHandleChange = event => {\n dispatch({\n type: stateChangeTypes.InputChange,\n inputValue: isReactNative\n ? /* istanbul ignore next (react-native) */ event.nativeEvent.text\n : event.target.value,\n })\n }\n const inputHandleBlur = () => {\n /* istanbul ignore else */\n if (!mouseAndTouchTrackers.current.isMouseDown) {\n dispatch({\n type: stateChangeTypes.InputBlur,\n })\n }\n }\n const menuHandleMouseLeave = () => {\n dispatch({\n type: stateChangeTypes.MenuMouseLeave,\n })\n }\n const itemHandleMouseMove = index => {\n if (index === highlightedIndex) {\n return\n }\n shouldScroll.current = false\n dispatch({\n type: stateChangeTypes.ItemMouseMove,\n index,\n })\n }\n const itemHandleClick = index => {\n dispatch({\n type: stateChangeTypes.ItemClick,\n index,\n })\n }\n const toggleButtonHandleClick = () => {\n dispatch({\n type: stateChangeTypes.ToggleButtonClick,\n })\n\n if (!isOpen && inputRef.current) {\n inputRef.current.focus()\n }\n }\n\n // returns\n const getLabelProps = labelProps => ({\n id: elementIds.current.labelId,\n htmlFor: elementIds.current.inputId,\n ...labelProps,\n })\n const getMenuProps = ({onMouseLeave, refKey = 'ref', ref, ...rest} = {}) => ({\n [refKey]: handleRefs(ref, menuNode => {\n menuRef.current = menuNode\n }),\n id: elementIds.current.menuId,\n role: 'listbox',\n 'aria-labelledby': elementIds.current.labelId,\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n ...rest,\n })\n const getItemProps = ({\n item,\n index,\n refKey = 'ref',\n ref,\n onMouseMove,\n onClick,\n onPress,\n ...rest\n } = {}) => {\n const itemIndex = getItemIndex(index, item, items)\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!')\n }\n\n const onSelectKey = isReactNative\n ? /* istanbul ignore next (react-native) */ 'onPress'\n : 'onClick'\n const customClickHandler = isReactNative\n ? /* istanbul ignore next (react-native) */ onPress\n : onClick\n\n return {\n [refKey]: handleRefs(ref, itemNode => {\n if (itemNode) {\n itemRefs.current.push(itemNode)\n }\n }),\n role: 'option',\n 'aria-selected': `${itemIndex === highlightedIndex}`,\n id: elementIds.current.getItemId(itemIndex),\n ...(!rest.disabled && {\n onMouseMove: callAllEventHandlers(onMouseMove, () => {\n itemHandleMouseMove(itemIndex)\n }),\n [onSelectKey]: callAllEventHandlers(customClickHandler, () => {\n itemHandleClick(itemIndex)\n }),\n }),\n ...rest,\n }\n }\n const getToggleButtonProps = ({\n onClick,\n onPress,\n refKey = 'ref',\n ref,\n ...rest\n } = {}) => {\n return {\n [refKey]: handleRefs(ref, toggleButtonNode => {\n toggleButtonRef.current = toggleButtonNode\n }),\n id: elementIds.current.toggleButtonId,\n tabIndex: -1,\n ...(!rest.disabled && {\n ...(isReactNative\n ? /* istanbul ignore next (react-native) */ {\n onPress: callAllEventHandlers(onPress, toggleButtonHandleClick),\n }\n : {onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)}),\n }),\n ...rest,\n }\n }\n const getInputProps = ({\n onKeyDown,\n onChange,\n onInput,\n onBlur,\n onChangeText,\n refKey = 'ref',\n ref,\n ...rest\n } = {}) => {\n /* istanbul ignore next (preact) */\n const onChangeKey = isPreact ? 'onInput' : 'onChange'\n let eventHandlers = {}\n\n if (!rest.disabled) {\n eventHandlers = {\n [onChangeKey]: callAllEventHandlers(\n onChange,\n onInput,\n inputHandleChange,\n ),\n onKeyDown: callAllEventHandlers(onKeyDown, inputHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, inputHandleBlur),\n }\n }\n\n /* istanbul ignore if (react-native) */\n if (isReactNative) {\n eventHandlers.onChange = callAllEventHandlers(\n onChange,\n onInput,\n inputHandleChange,\n )\n eventHandlers.onChangeText = callAllEventHandlers(\n onChangeText,\n onInput,\n text => {\n inputHandleChange({nativeEvent: {text}})\n },\n )\n }\n\n return {\n [refKey]: handleRefs(ref, inputNode => {\n inputRef.current = inputNode\n }),\n id: elementIds.current.inputId,\n 'aria-autocomplete': 'list',\n 'aria-controls': elementIds.current.menuId,\n ...(isOpen &&\n highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.current.getItemId(\n highlightedIndex,\n ),\n }),\n 'aria-labelledby': elementIds.current.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n ...eventHandlers,\n ...rest,\n }\n }\n const getComboboxProps = ({refKey = 'ref', ref, ...rest} = {}) => ({\n [refKey]: handleRefs(ref, comboboxNode => {\n comboboxRef.current = comboboxNode\n }),\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-owns': elementIds.current.menuId,\n 'aria-expanded': isOpen,\n ...rest,\n })\n\n // returns\n const toggleMenu = () => {\n dispatch({\n type: stateChangeTypes.FunctionToggleMenu,\n })\n }\n const closeMenu = () => {\n dispatch({\n type: stateChangeTypes.FunctionCloseMenu,\n })\n }\n const openMenu = () => {\n dispatch({\n type: stateChangeTypes.FunctionOpenMenu,\n })\n }\n const setHighlightedIndex = newHighlightedIndex => {\n dispatch({\n type: stateChangeTypes.FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex,\n })\n }\n const selectItem = newSelectedItem => {\n dispatch({\n type: stateChangeTypes.FunctionSelectItem,\n selectedItem: newSelectedItem,\n })\n }\n const setInputValue = newInputValue => {\n dispatch({\n type: stateChangeTypes.FunctionSetInputValue,\n inputValue: newInputValue,\n })\n }\n const reset = () => {\n dispatch({\n type: stateChangeTypes.FunctionReset,\n })\n }\n\n return {\n // prop getters.\n getItemProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getComboboxProps,\n getToggleButtonProps,\n // actions.\n toggleMenu,\n openMenu,\n closeMenu,\n setHighlightedIndex,\n setInputValue,\n selectItem,\n reset,\n // state.\n highlightedIndex,\n isOpen,\n selectedItem,\n inputValue,\n }\n}\n\nexport default useCombobox\n"],"names":["_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","Object","keys","key","i","length","indexOf","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","create","constructor","__proto__","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","a","u","$$typeof","type","z","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","lowPriorityWarningWithoutStack","printWarning","format","_len","args","Array","_key","argIndex","message","replace","console","warn","Error","condition","undefined","_len2","_key2","concat","lowPriorityWarningWithoutStack$1","typeOf","object","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","module","require$$1","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","val","TypeError","shouldUseNative","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","map","join","test3","split","forEach","letter","err","from","to","symbols","s","ReactPropTypesSecret","require$$0","loggedTypeFailures","has","Function","bind","text","error","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","name","ex","stack","resetWarningCache","emptyFunctionThatReturnsNull","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bool","func","number","string","symbol","any","createAnyTypeChecker","arrayOf","createArrayOfTypeChecker","element","createElementTypeChecker","elementType","createElementTypeTypeChecker","instanceOf","createInstanceTypeChecker","node","createNodeChecker","objectOf","createObjectOfTypeChecker","oneOf","createEnumTypeChecker","oneOfType","createUnionTypeChecker","shape","createShapeTypeChecker","exact","createStrictShapeTypeChecker","is","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","props","propName","propFullName","secret","process","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","isArray","ReactIs","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","JSON","stringify","replacer","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","isNode","shapeTypes","allKeys","every","step","entries","next","done","entry","isSymbol","RegExp","Date","PropTypes","el","nodeType","canOverflow","overflow","skipOverflowHiddenElements","getFrameElement","ownerDocument","defaultView","frameElement","isHiddenByFrame","frame","clientHeight","scrollHeight","clientWidth","scrollWidth","isScrollable","style","getComputedStyle","overflowY","overflowX","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","options","scrollMode","block","inline","boundary","checkBoundary","scrollingElement","document","documentElement","frames","cursor","parentNode","push","body","viewportWidth","window","visualViewport","width","innerWidth","viewportHeight","height","innerHeight","viewportX","scrollX","pageXOffset","viewportY","scrollY","pageYOffset","_target$getBoundingCl","getBoundingClientRect","targetHeight","targetWidth","targetTop","top","targetRight","right","targetBottom","bottom","targetLeft","left","targetBlock","targetInline","computations","index","_frame$getBoundingCli","frameStyle","borderLeft","parseInt","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","blockScroll","inlineScroll","scrollbarWidth","offsetWidth","scrollbarHeight","offsetHeight","Math","max","scrollLeft","scrollTop","min","idCounter","cbToCb","cb","noop","scrollIntoView","menuNode","actions","computeScrollIntoView","isOrContainsNode","parent","child","contains","debounce","fn","time","timeoutId","cancel","clearTimeout","wrapper","setTimeout","callAllEventHandlers","fns","event","some","preventDownshiftDefault","nativeEvent","handleRefs","refs","ref","current","generateId","resetIdCounter","getA11yStatusMessage","isOpen","resultCount","unwrapArray","arg","defaultValue","isDOMElement","getElementProps","requiredProp","fnName","stateKeys","pickState","state","result","getState","reduce","prevState","isControlledProp","normalizeArrowKey","keyCode","isPlainObject","obj","toString","getNextWrappingIndex","moveAmount","baseIndex","itemCount","getItemNodeFromIndex","circular","itemsLastIndex","newIndex","nonDisabledNewIndex","getNextNonDisabledIndex","currentElementNode","hasAttribute","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","activeElement","cleanupStatus","getStatusDiv","textContent","setStatus","status","documentProp","div","statusDiv","getElementById","createElement","setAttribute","border","clip","margin","padding","position","appendChild","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchEnd","Downshift","id","menuId","labelId","inputId","getItemId","input","items","previousResultCount","timeoutIds","internalSetTimeout","filter","setItemCount","count","unsetItemCount","setHighlightedIndex","highlightedIndex","otherStateToSet","defaultHighlightedIndex","internalSetState","clearSelection","selectedItem","inputValue","defaultIsOpen","selectItem","item","itemToString","selectItemAtIndex","itemIndex","selectHighlightedItem","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","onInputValueChange","getStateAndHelpers","setState","newStateToSet","stateReducer","nextState","nextFullState","stateChangeTypes","hasMoreStateThanType","onStateChange","onSelect","onChange","onUserAction","rootRef","_rootNode","getRootProps","suppressRefError","refKey","rest","called","role","keyDownHandlers","ArrowDown","preventDefault","amount","shiftKey","moveHighlightedIndex","getItemCount","nextHighlightedIndex","ArrowUp","Enter","itemNode","Escape","reset","buttonKeyDownHandlers","toggleMenu","inputKeyDownHandlers","Home","newHighlightedIndex","End","getToggleButtonProps","onClick","onPress","onKeyDown","onKeyUp","onBlur","enabledEventHandlers","buttonHandleClick","buttonHandleKeyDown","buttonHandleKeyUp","buttonHandleBlur","eventHandlers","disabled","environment","focus","blurTarget","isMouseDown","getLabelProps","htmlFor","getInputProps","onInput","onChangeText","onChangeKey","inputHandleChange","inputHandleKeyDown","inputHandleBlur","autoComplete","downshiftButtonIsActive","dataset","toggle","menuRef","_menuNode","getMenuProps","getItemProps","onMouseMove","onMouseDown","onSelectKey","customClickHandler","avoidScrolling","clearItems","openMenu","closeMenu","updateStatus","highlightedItem","setA11yStatus","initialHighlightedIndex","initialIsOpen","initialInputValue","initialSelectedItem","internalClearTimeouts","stateToMerge","scrollHighlightedItemIntoView","componentDidMount","validateGetMenuPropsCalledCorrectly","onMouseUp","contextWithinDownshift","onOuterClick","onTouchStart","isTouchMove","onTouchMove","onTouchEnd","addEventListener","cleanup","removeEventListener","shouldScroll","prevProps","currentHighlightedIndex","prevHighlightedIndex","scrollWhenOpen","componentDidUpdate","validateControlledUnchanged","selectedItemChanged","componentWillUnmount","render","children","validateGetRootPropsCalledCorrectly","cloneElement","Component","defaultProps","prevItem","propTypes","refKeySpecified","isComposite","nextProps","warningDescription","propKey","defaultStateValues","getElementIds","toggleButtonId","uniqueId","getItemIndex","getPropTypesValidator","caller","isAcceptedCharacterKey","test","capitalizeString","slice","toUpperCase","invokeOnChangeHandler","newState","handler","callOnChangeProps","action","changes","useEnhancedReducer","reducer","initialState","enhancedReducer","useCallback","stateReduceLocal","useReducer","dispatch","dispatchWithProps","getA11ySelectionMessage","selectionParameters","itemToStringLocal","circularNavigation","getDefaultValue","defaultPropKey","getInitialValue","initialPropKey","getInitialState","getHighlightedIndexOnOpen","offset","getItemIndexByCharacterKey","keysSoFar","itemToStringParam","lowerCasedItemStrings","toLowerCase","lowerCasedKeysSoFar","isValid","itemString","startsWith","defaultSelectedItem","onSelectedItemChange","onHighlightedIndexChange","onIsOpenChange","commonDefaultProps","MenuKeyDownArrowDown","MenuKeyDownArrowUp","MenuKeyDownEscape","MenuKeyDownHome","MenuKeyDownEnd","MenuKeyDownEnter","MenuKeyDownSpaceButton","MenuKeyDownCharacter","MenuBlur","MenuMouseLeave","ItemMouseMove","ItemClick","ToggleButtonClick","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSelectItem","FunctionSetInputValue","FunctionReset","downshiftSelectReducer","lowercasedKey","validatePropTypes","useSelect","userProps","toggleButtonRef","useRef","isInitialMount","mouseAndTouchTrackers","elementIds","useEffect","outerDispatch","toggleButtonKeyDownHandlers","menuKeyDownHandlers","menuHandleKeyDown","menuHandleBlur","shouldBlur","menuHandleMouseLeave","toggleButtonHandleClick","toggleButtonHandleKeyDown","itemHandleMouseMove","itemHandleClick","toggleProps","toggleButtonNode","labelProps","onMouseLeave","tabIndex","itemProps","newSelectedItem","setInputValue","newInputValue","getElementIdsCommon","getInitialStateCommon","defaultInputValue","defaultPropsCommon","InputKeyDownArrowDown","InputKeyDownArrowUp","InputKeyDownEscape","InputKeyDownHome","InputKeyDownEnd","InputKeyDownEnter","InputChange","InputBlur","downshiftUseComboboxReducer","useCombobox","itemRefs","inputRef","comboboxRef","inputNode","getComboboxProps","comboboxNode"],"mappings":"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"}
\No newline at end of file