{"version":3,"file":"AsyncTypeahead-Bw2uDm7m.js","sources":["../../../node_modules/lodash.debounce/index.js","../../../node_modules/@restart/hooks/esm/useForceUpdate.js","../../../node_modules/@restart/hooks/esm/usePrevious.js","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/react-bootstrap-typeahead/es/constants.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getStringLabelKey.js","../../../node_modules/react-bootstrap-typeahead/es/utils/nodash.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getOptionLabel.js","../../../node_modules/react-bootstrap-typeahead/es/utils/addCustomOption.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getOptionProperty.js","../../../node_modules/react-bootstrap-typeahead/es/utils/stripDiacritics.js","../../../node_modules/react-bootstrap-typeahead/es/utils/warn.js","../../../node_modules/react-bootstrap-typeahead/es/utils/defaultFilterBy.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getDisplayName.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getMatchBounds.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getHintText.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getMenuItemId.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getInputProps.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getInputText.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getIsOnlyResult.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getTruncatedOptions.js","../../../node_modules/react-bootstrap-typeahead/es/utils/getUpdatedActiveIndex.js","../../../node_modules/react-bootstrap-typeahead/es/utils/isSelectable.js","../../../node_modules/react-bootstrap-typeahead/es/utils/isShown.js","../../../node_modules/react-bootstrap-typeahead/es/utils/preventInputBlur.js","../../../node_modules/react-bootstrap-typeahead/es/utils/size.js","../../../node_modules/react-bootstrap-typeahead/es/utils/validateSelectedPropChange.js","../../../node_modules/react-bootstrap-typeahead/es/core/Context.js","../../../node_modules/react-bootstrap-typeahead/es/core/TypeaheadManager.js","../../../node_modules/react-bootstrap-typeahead/es/propTypes.js","../../../node_modules/react-bootstrap-typeahead/es/core/Typeahead.js","../../../node_modules/react-bootstrap-typeahead/es/behaviors/async.js","../../../node_modules/dom-helpers/esm/contains.js","../../../node_modules/dom-helpers/esm/canUseDOM.js","../../../node_modules/dom-helpers/esm/addEventListener.js","../../../node_modules/dom-helpers/esm/removeEventListener.js","../../../node_modules/dom-helpers/esm/listen.js","../../../node_modules/react-overlays/node_modules/@restart/hooks/esm/useCommittedRef.js","../../../node_modules/react-overlays/node_modules/@restart/hooks/esm/useEventCallback.js","../../../node_modules/dom-helpers/esm/ownerDocument.js","../../../node_modules/react-overlays/esm/safeFindDOMNode.js","../../../node_modules/react-overlays/esm/ownerDocument.js","../../../node_modules/react-overlays/esm/useRootClose.js","../../../node_modules/react-bootstrap-typeahead/es/components/ClearButton.js","../../../node_modules/react-bootstrap-typeahead/es/components/Loader.js","../../../node_modules/is-arguments/index.js","../../../node_modules/regexp.prototype.flags/implementation.js","../../../node_modules/regexp.prototype.flags/polyfill.js","../../../node_modules/regexp.prototype.flags/shim.js","../../../node_modules/regexp.prototype.flags/index.js","../../../node_modules/deep-equal/index.js","../../../node_modules/popper.js/dist/esm/popper.js","../../../node_modules/react-popper/lib/esm/Manager.js","../../../node_modules/react-popper/lib/esm/utils.js","../../../node_modules/react-popper/lib/esm/Popper.js","../../../node_modules/react-bootstrap-typeahead/es/components/Overlay.js","../../../node_modules/react-bootstrap-typeahead/es/behaviors/token.js","../../../node_modules/react-bootstrap-typeahead/es/components/Token.js","../../../node_modules/react-bootstrap-typeahead/es/components/Hint.js","../../../node_modules/react-bootstrap-typeahead/es/components/Input.js","../../../node_modules/react-bootstrap-typeahead/es/behaviors/classNames.js","../../../node_modules/react-bootstrap-typeahead/es/components/TypeaheadInputMulti.js","../../../node_modules/react-bootstrap-typeahead/es/components/TypeaheadInputSingle.js","../../../node_modules/react-bootstrap-typeahead/es/components/Highlighter.js","../../../node_modules/compute-scroll-into-view/es/index.js","../../../node_modules/scroll-into-view-if-needed/es/index.js","../../../node_modules/react-bootstrap-typeahead/es/behaviors/item.js","../../../node_modules/react-bootstrap-typeahead/es/components/MenuItem.js","../../../node_modules/react-bootstrap-typeahead/es/components/Menu.js","../../../node_modules/react-bootstrap-typeahead/es/components/TypeaheadMenu.js","../../../node_modules/react-bootstrap-typeahead/es/components/Typeahead.js","../../../node_modules/react-bootstrap-typeahead/es/components/AsyncTypeahead.js"],"sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","import { useReducer } from 'react';\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return <button type=\"button\" onClick={updateOnClick}>Hi there</button>\n * ```\n */\n\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are stricting equal to the last state value\n var _useReducer = useReducer(function (state) {\n return !state;\n }, false),\n dispatch = _useReducer[1];\n\n return dispatch;\n}","import { useEffect, useRef } from 'react';\n/**\n * Store the last of some value. Tracked via a `Ref` only updating it\n * after the component renders.\n *\n * Helpful if you need to compare a prop value to it's previous value during render.\n *\n * ```ts\n * function Component(props) {\n * const lastProps = usePrevious(props)\n *\n * if (lastProps.foo !== props.foo)\n * resetValueFromProps(props.foo)\n * }\n * ```\n *\n * @param value the value to track\n */\n\nexport default function usePrevious(value) {\n var ref = useRef(null);\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/**\n * Common (non-printable) keycodes for `keydown` and `keyup` events. Note that\n * `keypress` handles things differently and may not return the same values.\n */\nexport var BACKSPACE = 8;\nexport var TAB = 9;\nexport var RETURN = 13;\nexport var ESC = 27;\nexport var SPACE = 32;\nexport var LEFT = 37;\nexport var UP = 38;\nexport var RIGHT = 39;\nexport var DOWN = 40;\nexport var DEFAULT_LABELKEY = 'label';\nexport var ALIGN = {\n JUSTIFY: 'justify',\n LEFT: 'left',\n RIGHT: 'right'\n};\nexport var SIZE = {\n LARGE: 'large',\n LG: 'lg',\n SM: 'sm',\n SMALL: 'small'\n};","import { DEFAULT_LABELKEY } from '../constants';\nexport default function getStringLabelKey(labelKey) {\n return typeof labelKey === 'string' ? labelKey : DEFAULT_LABELKEY;\n}","var idCounter = 0;\nexport function head(arr) {\n return Array.isArray(arr) && arr.length ? arr[0] : undefined;\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function noop() {}\nexport function pick(obj, keys) {\n var result = {};\n keys.forEach(function (k) {\n if (Object.prototype.hasOwnProperty.call(obj, k)) {\n result[k] = obj[k];\n }\n });\n return result;\n}\nexport function uniqueId(prefix) {\n idCounter += 1;\n return (prefix == null ? '' : String(prefix)) + idCounter;\n} // Export for testing purposes.\n\nexport function valuesPolyfill(obj) {\n return Object.keys(obj).reduce(function (accum, key) {\n if (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n accum.push(obj[key]);\n }\n\n return accum;\n }, []);\n}\nexport function values(obj) {\n return isFunction(Object.values) ? Object.values(obj) : valuesPolyfill(obj);\n}","import invariant from 'invariant';\nimport getStringLabelKey from './getStringLabelKey';\nimport { isFunction, isString } from './nodash';\n\n/**\n * Retrieves the display string from an option. Options can be the string\n * themselves, or an object with a defined display string. Anything else throws\n * an error.\n */\nfunction getOptionLabel(option, labelKey) {\n // Handle internally created options first.\n if (!isString(option) && (option.paginationOption || option.customOption)) {\n return option[getStringLabelKey(labelKey)];\n }\n\n var optionLabel;\n\n if (isFunction(labelKey)) {\n optionLabel = labelKey(option);\n } else if (isString(option)) {\n optionLabel = option;\n } else {\n // `option` is an object and `labelKey` is a string.\n optionLabel = option[labelKey];\n }\n\n !isString(optionLabel) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'One or more options does not have a valid label string. Check the ' + '`labelKey` prop to ensure that it matches the correct option key and ' + 'provides a string for filtering and display.') : invariant(false) : void 0;\n return optionLabel;\n}\n\nexport default getOptionLabel;","import getOptionLabel from './getOptionLabel';\n\nfunction addCustomOption(results, props) {\n var allowNew = props.allowNew,\n labelKey = props.labelKey,\n text = props.text;\n\n if (!allowNew || !text.trim()) {\n return false;\n } // If the consumer has provided a callback, use that to determine whether or\n // not to add the custom option.\n\n\n if (typeof allowNew === 'function') {\n return allowNew(results, props);\n } // By default, don't add the custom option if there is an exact text match\n // with an existing option.\n\n\n return !results.some(function (o) {\n return getOptionLabel(o, labelKey) === text;\n });\n}\n\nexport default addCustomOption;","import { isString } from './nodash';\nexport default function getOptionProperty(option, key) {\n if (isString(option)) {\n return undefined;\n }\n\n return option[key];\n}","/**\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Taken from: http://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/18391901#18391901\n */\n\n/* eslint-disable max-len */\nvar map = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\\xD0\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'OE',\n letters: \"\\x8C\\u0152\"\n}, {\n base: 'oe',\n letters: \"\\x9C\\u0153\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\n/* eslint-enable max-len */\n\nvar diacriticsMap = {};\n\nfor (var ii = 0; ii < map.length; ii++) {\n var letters = map[ii].letters;\n\n for (var jj = 0; jj < letters.length; jj++) {\n diacriticsMap[letters[jj]] = map[ii].base;\n }\n} // \"what?\" version ... http://jsperf.com/diacritics/12\n\n\nexport default function stripDiacritics(str) {\n return str.replace(/[\\u0300-\\u036F]/g, '') // Remove combining diacritics\n\n /* eslint-disable-next-line no-control-regex */\n .replace(/[^\\u0000-\\u007E]/g, function (a) {\n return diacriticsMap[a] || a;\n });\n}","import warning from 'warning';\nvar warned = {};\n/**\n * Copied from: https://github.com/ReactTraining/react-router/blob/master/modules/routerWarning.js\n */\n\nexport default function warn(falseToWarn, message) {\n // Only issue deprecation warnings once.\n if (!falseToWarn && message.indexOf('deprecated') !== -1) {\n if (warned[message]) {\n return;\n }\n\n warned[message] = true;\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n warning.apply(void 0, [falseToWarn, \"[react-bootstrap-typeahead] \".concat(message)].concat(args));\n}\nexport function resetWarned() {\n warned = {};\n}","import isEqual from 'fast-deep-equal';\nimport getOptionProperty from './getOptionProperty';\nimport { isFunction, isString } from './nodash';\nimport stripDiacritics from './stripDiacritics';\nimport warn from './warn';\n\nfunction isMatch(input, string, props) {\n var searchStr = input;\n var str = string;\n\n if (!props.caseSensitive) {\n searchStr = searchStr.toLowerCase();\n str = str.toLowerCase();\n }\n\n if (props.ignoreDiacritics) {\n searchStr = stripDiacritics(searchStr);\n str = stripDiacritics(str);\n }\n\n return str.indexOf(searchStr) !== -1;\n}\n/**\n * Default algorithm for filtering results.\n */\n\n\nexport default function defaultFilterBy(option, props) {\n var filterBy = props.filterBy,\n labelKey = props.labelKey,\n multiple = props.multiple,\n selected = props.selected,\n text = props.text; // Don't show selected options in the menu for the multi-select case.\n\n if (multiple && selected.some(function (o) {\n return isEqual(o, option);\n })) {\n return false;\n }\n\n if (isFunction(labelKey) && isMatch(text, labelKey(option), props)) {\n return true;\n }\n\n var fields = filterBy.slice();\n\n if (isString(labelKey)) {\n // Add the `labelKey` field to the list of fields if it isn't already there.\n if (fields.indexOf(labelKey) === -1) {\n fields.unshift(labelKey);\n }\n }\n\n if (isString(option)) {\n warn(fields.length <= 1, 'You cannot filter by properties when `option` is a string.');\n return isMatch(text, option, props);\n }\n\n return fields.some(function (field) {\n var value = getOptionProperty(option, field);\n\n if (!isString(value)) {\n warn(false, 'Fields passed to `filterBy` should have string values. Value will ' + 'be converted to a string; results may be unexpected.');\n value = String(value);\n }\n\n return isMatch(text, value, props);\n });\n}","export default function getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}","import invariant from 'invariant';\nimport stripDiacritics from './stripDiacritics';\nvar CASE_INSENSITIVE = 'i';\nvar COMBINING_MARKS = /[\\u0300-\\u036F]/;\n// Export for testing.\nexport function escapeStringRegexp(str) {\n !(typeof str === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`escapeStringRegexp` expected a string.') : invariant(false) : void 0; // Escape characters with special meaning either inside or outside character\n // sets. Use a simple backslash escape when it’s always valid, and a \\unnnn\n // escape when the simpler form would be disallowed by Unicode patterns’\n // stricter grammar.\n\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\nexport default function getMatchBounds(subject, str) {\n var search = new RegExp(escapeStringRegexp(stripDiacritics(str)), CASE_INSENSITIVE);\n var matches = search.exec(stripDiacritics(subject));\n\n if (!matches) {\n return null;\n }\n\n var start = matches.index;\n var matchLength = matches[0].length; // Account for combining marks, which changes the indices.\n\n if (COMBINING_MARKS.test(subject)) {\n // Starting at the beginning of the subject string, check for the number of\n // combining marks and increment the start index whenever one is found.\n for (var ii = 0; ii <= start; ii++) {\n if (COMBINING_MARKS.test(subject[ii])) {\n start += 1;\n }\n } // Similarly, increment the length of the match string if it contains a\n // combining mark.\n\n\n for (var _ii = start; _ii <= start + matchLength; _ii++) {\n if (COMBINING_MARKS.test(subject[_ii])) {\n matchLength += 1;\n }\n }\n }\n\n return {\n end: start + matchLength,\n start: start\n };\n}","import getMatchBounds from './getMatchBounds';\nimport getOptionLabel from './getOptionLabel';\n\nfunction getHintText(props) {\n var activeIndex = props.activeIndex,\n initialItem = props.initialItem,\n isFocused = props.isFocused,\n isMenuShown = props.isMenuShown,\n labelKey = props.labelKey,\n multiple = props.multiple,\n selected = props.selected,\n text = props.text; // Don't display a hint under the following conditions:\n\n if ( // No text entered.\n !text || // The input is not focused.\n !isFocused || // The menu is hidden.\n !isMenuShown || // No item in the menu.\n !initialItem || // The initial item is a custom option.\n initialItem.customOption || // One of the menu items is active.\n activeIndex > -1 || // There's already a selection in single-select mode.\n !!selected.length && !multiple) {\n return '';\n }\n\n var initialItemStr = getOptionLabel(initialItem, labelKey);\n var bounds = getMatchBounds(initialItemStr.toLowerCase(), text.toLowerCase());\n\n if (!(bounds && bounds.start === 0)) {\n return '';\n } // Text matching is case- and accent-insensitive, so to display the hint\n // correctly, splice the input string with the hint string.\n\n\n return text + initialItemStr.slice(bounds.end, initialItemStr.length);\n}\n\nexport default getHintText;","export default function getMenuItemId(id, position) {\n return \"\".concat(id || '', \"-item-\").concat(position);\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"activeIndex\", \"id\", \"isFocused\", \"isMenuShown\", \"multiple\", \"onFocus\", \"placeholder\"],\n _excluded2 = [\"className\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport cx from 'classnames';\nimport getMenuItemId from './getMenuItemId';\n\nvar getInputProps = function getInputProps(_ref) {\n var activeIndex = _ref.activeIndex,\n id = _ref.id,\n isFocused = _ref.isFocused,\n isMenuShown = _ref.isMenuShown,\n multiple = _ref.multiple,\n onFocus = _ref.onFocus,\n placeholder = _ref.placeholder,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return function () {\n var _cx;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n className = _ref2.className,\n inputProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var props = _objectSpread(_objectSpread(_objectSpread({\n /* eslint-disable sort-keys */\n // These props can be overridden by values in `inputProps`.\n autoComplete: 'off',\n placeholder: placeholder,\n type: 'text'\n }, inputProps), rest), {}, {\n 'aria-activedescendant': activeIndex >= 0 ? getMenuItemId(id, activeIndex) : undefined,\n 'aria-autocomplete': 'both',\n 'aria-expanded': isMenuShown,\n 'aria-haspopup': 'listbox',\n 'aria-owns': isMenuShown ? id : undefined,\n className: cx((_cx = {}, _defineProperty(_cx, className || '', !multiple), _defineProperty(_cx, \"focus\", isFocused), _cx)),\n onClick: function onClick(e) {\n // Re-open the menu if it's closed, eg: via ESC.\n onFocus && onFocus(e);\n inputProps.onClick && inputProps.onClick(e);\n },\n onFocus: onFocus,\n // Comboboxes are single-select by definition:\n // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox\n role: 'combobox'\n /* eslint-enable sort-keys */\n\n });\n\n if (!multiple) {\n return props;\n }\n\n return _objectSpread(_objectSpread({}, props), {}, {\n 'aria-autocomplete': 'list',\n 'aria-expanded': undefined,\n inputClassName: className,\n role: undefined\n });\n };\n};\n\nexport default getInputProps;","import getOptionLabel from './getOptionLabel';\nimport { head } from './nodash';\n\nfunction getInputText(props) {\n var activeItem = props.activeItem,\n labelKey = props.labelKey,\n multiple = props.multiple,\n selected = props.selected,\n text = props.text;\n\n if (activeItem) {\n // Display the input value if the pagination item is active.\n return getOptionLabel(activeItem, labelKey);\n }\n\n var selectedItem = !multiple && !!selected.length && head(selected);\n\n if (selectedItem) {\n return getOptionLabel(selectedItem, labelKey);\n }\n\n return text;\n}\n\nexport default getInputText;","import getOptionProperty from './getOptionProperty';\nimport { head } from './nodash';\n\nfunction getIsOnlyResult(props) {\n var allowNew = props.allowNew,\n highlightOnlyResult = props.highlightOnlyResult,\n results = props.results;\n\n if (!highlightOnlyResult || allowNew) {\n return false;\n }\n\n return results.length === 1 && !getOptionProperty(head(results), 'disabled');\n}\n\nexport default getIsOnlyResult;","/**\n * Truncates the result set based on `maxResults` and returns the new set.\n */\nfunction getTruncatedOptions(options, maxResults) {\n if (!maxResults || maxResults >= options.length) {\n return options;\n }\n\n return options.slice(0, maxResults);\n}\n\nexport default getTruncatedOptions;","import { DOWN, UP } from '../constants';\n\nfunction skipDisabledOptions(currentIndex, keyCode, items) {\n var newIndex = currentIndex;\n\n while (items[newIndex] && items[newIndex].disabled) {\n newIndex += keyCode === UP ? -1 : 1;\n }\n\n return newIndex;\n}\n\nexport default function getUpdatedActiveIndex(currentIndex, keyCode, items) {\n var newIndex = currentIndex; // Increment or decrement index based on user keystroke.\n\n newIndex += keyCode === UP ? -1 : 1; // Skip over any disabled options.\n\n newIndex = skipDisabledOptions(newIndex, keyCode, items); // If we've reached the end, go back to the beginning or vice-versa.\n\n if (newIndex === items.length) {\n newIndex = -1;\n } else if (newIndex === -2) {\n newIndex = items.length - 1; // Skip over any disabled options.\n\n newIndex = skipDisabledOptions(newIndex, keyCode, items);\n }\n\n return newIndex;\n}","/**\n * Check if an input type is selectable, based on WHATWG spec.\n *\n * See:\n * - https://stackoverflow.com/questions/21177489/selectionstart-selectionend-on-input-type-number-no-longer-allowed-in-chrome/24175357\n * - https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n */\nexport default function isSelectable(inputNode) {\n return inputNode.selectionStart != null;\n}","export default function isShown(props) {\n var open = props.open,\n minLength = props.minLength,\n showMenu = props.showMenu,\n text = props.text; // If menu visibility is controlled via props, that value takes precedence.\n\n if (open || open === false) {\n return open;\n }\n\n if (text.length < minLength) {\n return false;\n }\n\n return showMenu;\n}","/**\n * Prevent the main input from blurring when a menu item or the clear button is\n * clicked. (#226 & #310)\n */\nexport default function preventInputBlur(e) {\n e.preventDefault();\n}","export function isSizeLarge(size) {\n return size === 'large' || size === 'lg';\n}\nexport function isSizeSmall(size) {\n return size === 'small' || size === 'sm';\n}","import warn from './warn';\nexport default function validateSelectedPropChange(prevSelected, selected) {\n var uncontrolledToControlled = !prevSelected && selected;\n var controlledToUncontrolled = prevSelected && !selected;\n var from, to, precedent;\n\n if (uncontrolledToControlled) {\n from = 'uncontrolled';\n to = 'controlled';\n precedent = 'an';\n } else {\n from = 'controlled';\n to = 'uncontrolled';\n precedent = 'a';\n }\n\n var message = \"You are changing \".concat(precedent, \" \").concat(from, \" typeahead to be \").concat(to, \". \") + \"Input elements should not switch from \".concat(from, \" to \").concat(to, \" (or vice versa). \") + 'Decide between using a controlled or uncontrolled element for the ' + 'lifetime of the component.';\n warn(!(uncontrolledToControlled || controlledToUncontrolled), message);\n}","import { createContext, useContext } from 'react';\nimport { noop } from '../utils';\nexport var TypeaheadContext = /*#__PURE__*/createContext({\n activeIndex: -1,\n hintText: '',\n id: '',\n initialItem: null,\n inputNode: null,\n isOnlyResult: false,\n onActiveItemChange: noop,\n onAdd: noop,\n onInitialItemChange: noop,\n onMenuItemClick: noop,\n selectHintOnEnter: undefined,\n setItem: noop\n});\nexport var useTypeaheadContext = function useTypeaheadContext() {\n return useContext(TypeaheadContext);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { useEffect } from 'react';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport { TypeaheadContext } from './Context';\nimport { getHintText, getInputProps, getInputText, getIsOnlyResult, pick } from '../utils';\nimport { RETURN } from '../constants';\nvar inputPropKeys = ['activeIndex', 'disabled', 'id', 'inputRef', 'isFocused', 'isMenuShown', 'multiple', 'onBlur', 'onChange', 'onFocus', 'onKeyDown', 'placeholder'];\nvar propKeys = ['activeIndex', 'hideMenu', 'isMenuShown', 'labelKey', 'onClear', 'onHide', 'onRemove', 'results', 'selected', 'text', 'toggleMenu'];\nvar contextKeys = ['activeIndex', 'id', 'initialItem', 'inputNode', 'onActiveItemChange', 'onAdd', 'onInitialItemChange', 'onMenuItemClick', 'selectHintOnEnter', 'setItem'];\n\nvar TypeaheadManager = function TypeaheadManager(props) {\n var allowNew = props.allowNew,\n children = props.children,\n initialItem = props.initialItem,\n isMenuShown = props.isMenuShown,\n onAdd = props.onAdd,\n onInitialItemChange = props.onInitialItemChange,\n onKeyDown = props.onKeyDown,\n onMenuToggle = props.onMenuToggle,\n results = props.results;\n var prevProps = usePrevious(props);\n useEffect(function () {\n // Clear the initial item when there are no results.\n if (!(allowNew || results.length)) {\n onInitialItemChange(null);\n }\n });\n useEffect(function () {\n if (prevProps && prevProps.isMenuShown !== isMenuShown) {\n onMenuToggle(isMenuShown);\n }\n });\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.keyCode) {\n case RETURN:\n if (initialItem && getIsOnlyResult(props)) {\n onAdd(initialItem);\n }\n\n break;\n\n default:\n break;\n }\n\n onKeyDown(e);\n };\n\n var childProps = _objectSpread(_objectSpread({}, pick(props, propKeys)), {}, {\n getInputProps: getInputProps(_objectSpread(_objectSpread({}, pick(props, inputPropKeys)), {}, {\n onKeyDown: handleKeyDown,\n value: getInputText(props)\n }))\n });\n\n var contextValue = _objectSpread(_objectSpread({}, pick(props, contextKeys)), {}, {\n hintText: getHintText(props),\n isOnlyResult: getIsOnlyResult(props)\n });\n\n return /*#__PURE__*/React.createElement(TypeaheadContext.Provider, {\n value: contextValue\n }, children(childProps));\n};\n\nexport default TypeaheadManager;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport PropTypes from 'prop-types';\nimport { isFunction, values, warn } from './utils';\nimport { SIZE } from './constants';\nvar INPUT_PROPS_BLACKLIST = [{\n alt: 'onBlur',\n prop: 'onBlur'\n}, {\n alt: 'onInputChange',\n prop: 'onChange'\n}, {\n alt: 'onFocus',\n prop: 'onFocus'\n}, {\n alt: 'onKeyDown',\n prop: 'onKeyDown'\n}];\nexport var sizeType = PropTypes.oneOf(values(SIZE));\n/**\n * Allows additional warnings or messaging related to prop validation.\n */\n\nexport function checkPropType(validator, callback) {\n return function (props, propName, componentName) {\n PropTypes.checkPropTypes(_defineProperty({}, propName, validator), props, 'prop', componentName);\n isFunction(callback) && callback(props, propName, componentName);\n };\n}\nexport function caseSensitiveType(props, propName, componentName) {\n var caseSensitive = props.caseSensitive,\n filterBy = props.filterBy;\n warn(!caseSensitive || typeof filterBy !== 'function', 'Your `filterBy` function will override the `caseSensitive` prop.');\n}\nexport function deprecated(validator, reason) {\n return function (props, propName, componentName) {\n if (props[propName] != null) {\n warn(false, \"The `\".concat(propName, \"` prop is deprecated. \").concat(reason));\n }\n\n return PropTypes.checkPropTypes(_defineProperty({}, propName, validator), props, 'prop', componentName);\n };\n}\nexport function defaultInputValueType(props, propName, componentName) {\n var defaultInputValue = props.defaultInputValue,\n defaultSelected = props.defaultSelected,\n multiple = props.multiple,\n selected = props.selected;\n var name = defaultSelected.length ? 'defaultSelected' : 'selected';\n warn(!(!multiple && defaultInputValue && (defaultSelected.length || selected && selected.length)), \"`defaultInputValue` will be overridden by the value from `\".concat(name, \"`.\"));\n}\nexport function defaultSelectedType(props, propName, componentName) {\n var defaultSelected = props.defaultSelected,\n multiple = props.multiple;\n warn(multiple || defaultSelected.length <= 1, 'You are passing multiple options to the `defaultSelected` prop of a ' + 'Typeahead in single-select mode. The selections will be truncated to a ' + 'single selection.');\n}\nexport function highlightOnlyResultType(props, propName, componentName) {\n var allowNew = props.allowNew,\n highlightOnlyResult = props.highlightOnlyResult;\n warn(!(highlightOnlyResult && allowNew), '`highlightOnlyResult` will not work with `allowNew`.');\n}\nexport function ignoreDiacriticsType(props, propName, componentName) {\n var filterBy = props.filterBy,\n ignoreDiacritics = props.ignoreDiacritics;\n warn(ignoreDiacritics || typeof filterBy !== 'function', 'Your `filterBy` function will override the `ignoreDiacritics` prop.');\n}\nexport function inputPropsType(props, propName, componentName) {\n var inputProps = props.inputProps;\n\n if (!(inputProps && Object.prototype.toString.call(inputProps) === '[object Object]')) {\n return;\n } // Blacklisted properties.\n\n\n INPUT_PROPS_BLACKLIST.forEach(function (_ref) {\n var alt = _ref.alt,\n prop = _ref.prop;\n var msg = alt ? \" Use the top-level `\".concat(alt, \"` prop instead.\") : null;\n warn(!inputProps[prop], \"The `\".concat(prop, \"` property of `inputProps` will be ignored.\").concat(msg));\n });\n}\nexport function isRequiredForA11y(props, propName, componentName) {\n warn(props[propName] != null, \"The prop `\".concat(propName, \"` is required to make `\").concat(componentName, \"` \") + 'accessible for users of assistive technologies such as screen readers.');\n}\nexport function labelKeyType(props, propName, componentName) {\n var allowNew = props.allowNew,\n labelKey = props.labelKey;\n warn(!(isFunction(labelKey) && allowNew), '`labelKey` must be a string when `allowNew={true}`.');\n}\nexport var optionType = PropTypes.oneOfType([PropTypes.object, PropTypes.string]);\nexport function selectedType(props, propName, componentName) {\n var multiple = props.multiple,\n onChange = props.onChange,\n selected = props.selected;\n warn(multiple || !selected || selected.length <= 1, 'You are passing multiple options to the `selected` prop of a Typeahead ' + 'in single-select mode. This may lead to unexpected behaviors or errors.');\n warn(!selected || selected && isFunction(onChange), 'You provided a `selected` prop without an `onChange` handler. If you ' + 'want the typeahead to be uncontrolled, use `defaultSelected`. ' + 'Otherwise, set `onChange`.');\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"onChange\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport isEqual from 'fast-deep-equal';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TypeaheadManager from './TypeaheadManager';\nimport { caseSensitiveType, checkPropType, defaultInputValueType, defaultSelectedType, deprecated, highlightOnlyResultType, ignoreDiacriticsType, isRequiredForA11y, labelKeyType, optionType, selectedType } from '../propTypes';\nimport { addCustomOption, defaultFilterBy, getOptionLabel, getStringLabelKey, getUpdatedActiveIndex, getTruncatedOptions, head, isShown, isString, noop, uniqueId, validateSelectedPropChange } from '../utils';\nimport { DEFAULT_LABELKEY, DOWN, ESC, RETURN, TAB, UP } from '../constants';\nvar propTypes = {\n /**\n * Allows the creation of new selections on the fly. Note that any new items\n * will be added to the list of selections, but not the list of original\n * options unless handled as such by `Typeahead`'s parent.\n *\n * If a function is specified, it will be used to determine whether a custom\n * option should be included. The return value should be true or false.\n */\n allowNew: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n\n /**\n * Autofocus the input when the component initially mounts.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Whether or not filtering should be case-sensitive.\n */\n caseSensitive: checkPropType(PropTypes.bool, caseSensitiveType),\n\n /**\n * The initial value displayed in the text input.\n */\n defaultInputValue: checkPropType(PropTypes.string, defaultInputValueType),\n\n /**\n * Whether or not the menu is displayed upon initial render.\n */\n defaultOpen: PropTypes.bool,\n\n /**\n * Specify any pre-selected options. Use only if you want the component to\n * be uncontrolled.\n */\n defaultSelected: checkPropType(PropTypes.arrayOf(optionType), defaultSelectedType),\n\n /**\n * Either an array of fields in `option` to search, or a custom filtering\n * callback.\n */\n filterBy: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]),\n\n /**\n * Highlights the menu item if there is only one result and allows selecting\n * that item by hitting enter. Does not work with `allowNew`.\n */\n highlightOnlyResult: checkPropType(PropTypes.bool, highlightOnlyResultType),\n\n /**\n * An html id attribute, required for assistive technologies such as screen\n * readers.\n */\n id: checkPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), isRequiredForA11y),\n\n /**\n * Whether the filter should ignore accents and other diacritical marks.\n */\n ignoreDiacritics: checkPropType(PropTypes.bool, ignoreDiacriticsType),\n\n /**\n * Specify the option key to use for display or a function returning the\n * display string. By default, the selector will use the `label` key.\n */\n labelKey: checkPropType(PropTypes.oneOfType([PropTypes.string, PropTypes.func]), labelKeyType),\n\n /**\n * Maximum number of results to display by default. Mostly done for\n * performance reasons so as not to render too many DOM nodes in the case of\n * large data sets.\n */\n maxResults: PropTypes.number,\n\n /**\n * Number of input characters that must be entered before showing results.\n */\n minLength: PropTypes.number,\n\n /**\n * Whether or not multiple selections are allowed.\n */\n multiple: PropTypes.bool,\n\n /**\n * Invoked when the input is blurred. Receives an event.\n */\n onBlur: PropTypes.func,\n\n /**\n * Invoked whenever items are added or removed. Receives an array of the\n * selected options.\n */\n onChange: PropTypes.func,\n\n /**\n * Invoked when the input is focused. Receives an event.\n */\n onFocus: PropTypes.func,\n\n /**\n * Invoked when the input value changes. Receives the string value of the\n * input.\n */\n onInputChange: PropTypes.func,\n\n /**\n * Invoked when a key is pressed. Receives an event.\n */\n onKeyDown: PropTypes.func,\n\n /**\n * Invoked when menu visibility changes.\n */\n onMenuToggle: PropTypes.func,\n\n /**\n * Invoked when the pagination menu item is clicked. Receives an event.\n */\n onPaginate: PropTypes.func,\n\n /**\n * Whether or not the menu should be displayed. `undefined` allows the\n * component to control visibility, while `true` and `false` show and hide\n * the menu, respectively.\n */\n open: PropTypes.bool,\n\n /**\n * Full set of options, including pre-selected options. Must either be an\n * array of objects (recommended) or strings.\n */\n options: PropTypes.arrayOf(optionType).isRequired,\n\n /**\n * Give user the ability to display additional results if the number of\n * results exceeds `maxResults`.\n */\n paginate: PropTypes.bool,\n\n /**\n * The selected option(s) displayed in the input. Use this prop if you want\n * to control the component via its parent.\n */\n selected: checkPropType(PropTypes.arrayOf(optionType), selectedType),\n\n /**\n * Allows selecting the hinted result by pressing enter.\n */\n selectHintOnEnter: deprecated(PropTypes.bool, 'Use the `shouldSelect` prop on the `Hint` component to define which ' + 'keystrokes can select the hint.')\n};\nvar defaultProps = {\n allowNew: false,\n autoFocus: false,\n caseSensitive: false,\n defaultInputValue: '',\n defaultOpen: false,\n defaultSelected: [],\n filterBy: [],\n highlightOnlyResult: false,\n ignoreDiacritics: true,\n labelKey: DEFAULT_LABELKEY,\n maxResults: 100,\n minLength: 0,\n multiple: false,\n onBlur: noop,\n onFocus: noop,\n onInputChange: noop,\n onKeyDown: noop,\n onMenuToggle: noop,\n onPaginate: noop,\n paginate: true\n};\nexport function getInitialState(props) {\n var defaultInputValue = props.defaultInputValue,\n defaultOpen = props.defaultOpen,\n defaultSelected = props.defaultSelected,\n maxResults = props.maxResults,\n multiple = props.multiple;\n var selected = props.selected ? props.selected.slice() : defaultSelected.slice();\n var text = defaultInputValue;\n\n if (!multiple && selected.length) {\n // Set the text if an initial selection is passed in.\n text = getOptionLabel(head(selected), props.labelKey);\n\n if (selected.length > 1) {\n // Limit to 1 selection in single-select mode.\n selected = selected.slice(0, 1);\n }\n }\n\n return {\n activeIndex: -1,\n activeItem: null,\n initialItem: null,\n isFocused: false,\n selected: selected,\n showMenu: defaultOpen,\n shownResults: maxResults,\n text: text\n };\n}\nexport function clearTypeahead(state, props) {\n return _objectSpread(_objectSpread({}, getInitialState(props)), {}, {\n isFocused: state.isFocused,\n selected: [],\n text: ''\n });\n}\nexport function hideMenu(state, props) {\n var _getInitialState = getInitialState(props),\n activeIndex = _getInitialState.activeIndex,\n activeItem = _getInitialState.activeItem,\n initialItem = _getInitialState.initialItem,\n shownResults = _getInitialState.shownResults;\n\n return {\n activeIndex: activeIndex,\n activeItem: activeItem,\n initialItem: initialItem,\n showMenu: false,\n shownResults: shownResults\n };\n}\nexport function toggleMenu(state, props) {\n return state.showMenu ? hideMenu(state, props) : {\n showMenu: true\n };\n}\n/**\n * Manually trigger the input's change event.\n * https://stackoverflow.com/questions/23892547/what-is-the-best-way-to-trigger-onchange-event-in-react-js/46012210#46012210\n */\n\nfunction triggerInputChange(input, value) {\n var inputValue = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value');\n inputValue && inputValue.set && inputValue.set.call(input, value);\n var e = new Event('input', {\n bubbles: true\n });\n input.dispatchEvent(e);\n}\n\nvar Typeahead = /*#__PURE__*/function (_React$Component) {\n _inherits(Typeahead, _React$Component);\n\n var _super = _createSuper(Typeahead);\n\n function Typeahead() {\n var _this;\n\n _classCallCheck(this, Typeahead);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", getInitialState(_this.props));\n\n _defineProperty(_assertThisInitialized(_this), \"inputNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"isMenuShown\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"items\", []);\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n _this.inputNode && _this.inputNode.blur();\n\n _this.hideMenu();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clear\", function () {\n _this.setState(clearTypeahead);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n _this.inputNode && _this.inputNode.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInput\", function () {\n return _this.inputNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"inputRef\", function (inputNode) {\n _this.inputNode = inputNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItem\", function (item, position) {\n _this.items[position] = item;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"hideMenu\", function () {\n _this.setState(hideMenu);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"toggleMenu\", function () {\n _this.setState(toggleMenu);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleActiveIndexChange\", function (activeIndex) {\n _this.setState(function (state) {\n return {\n activeIndex: activeIndex,\n activeItem: activeIndex === -1 ? null : state.activeItem\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleActiveItemChange\", function (activeItem) {\n // Don't update the active item if it hasn't changed.\n if (!isEqual(activeItem, _this.state.activeItem)) {\n _this.setState({\n activeItem: activeItem\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleBlur\", function (e) {\n e.persist();\n\n _this.setState({\n isFocused: false\n }, function () {\n return _this.props.onBlur(e);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleChange\", function (selected) {\n _this.props.onChange && _this.props.onChange(selected);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleClear\", function () {\n _this.inputNode && triggerInputChange(_this.inputNode, '');\n\n _this.setState(clearTypeahead, function () {\n // Change handler is automatically triggered for single selections but\n // not multi-selections.\n if (_this.props.multiple) {\n _this._handleChange([]);\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleFocus\", function (e) {\n e.persist();\n\n _this.setState({\n isFocused: true,\n showMenu: true\n }, function () {\n return _this.props.onFocus(e);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleInitialItemChange\", function (initialItem) {\n // Don't update the initial item if it hasn't changed.\n if (!isEqual(initialItem, _this.state.initialItem)) {\n _this.setState({\n initialItem: initialItem\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleInputChange\", function (e) {\n e.persist();\n var text = e.currentTarget.value;\n var _this$props = _this.props,\n multiple = _this$props.multiple,\n onInputChange = _this$props.onInputChange; // Clear selections when the input value changes in single-select mode.\n\n var shouldClearSelections = _this.state.selected.length && !multiple;\n\n _this.setState(function (state, props) {\n var _getInitialState2 = getInitialState(props),\n activeIndex = _getInitialState2.activeIndex,\n activeItem = _getInitialState2.activeItem,\n shownResults = _getInitialState2.shownResults;\n\n return {\n activeIndex: activeIndex,\n activeItem: activeItem,\n selected: shouldClearSelections ? [] : state.selected,\n showMenu: true,\n shownResults: shownResults,\n text: text\n };\n }, function () {\n onInputChange(text, e);\n shouldClearSelections && _this._handleChange([]);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleKeyDown\", function (e) {\n var activeItem = _this.state.activeItem; // Skip most actions when the menu is hidden.\n\n if (!_this.isMenuShown) {\n if (e.keyCode === UP || e.keyCode === DOWN) {\n _this.setState({\n showMenu: true\n });\n }\n\n _this.props.onKeyDown(e);\n\n return;\n }\n\n switch (e.keyCode) {\n case UP:\n case DOWN:\n // Prevent input cursor from going to the beginning when pressing up.\n e.preventDefault();\n\n _this._handleActiveIndexChange(getUpdatedActiveIndex(_this.state.activeIndex, e.keyCode, _this.items));\n\n break;\n\n case RETURN:\n // Prevent form submission while menu is open.\n e.preventDefault();\n activeItem && _this._handleMenuItemSelect(activeItem, e);\n break;\n\n case ESC:\n case TAB:\n // ESC simply hides the menu. TAB will blur the input and move focus to\n // the next item; hide the menu so it doesn't gain focus.\n _this.hideMenu();\n\n break;\n\n default:\n break;\n }\n\n _this.props.onKeyDown(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleMenuItemSelect\", function (option, e) {\n if (option.paginationOption) {\n _this._handlePaginate(e);\n } else {\n _this._handleSelectionAdd(option);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handlePaginate\", function (e) {\n e.persist();\n\n _this.setState(function (state, props) {\n return {\n shownResults: state.shownResults + props.maxResults\n };\n }, function () {\n return _this.props.onPaginate(e, _this.state.shownResults);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleSelectionAdd\", function (option) {\n var _this$props2 = _this.props,\n multiple = _this$props2.multiple,\n labelKey = _this$props2.labelKey;\n var selected;\n var selection = option;\n var text; // Add a unique id to the custom selection. Avoid doing this in `render` so\n // the id doesn't increment every time.\n\n if (!isString(selection) && selection.customOption) {\n selection = _objectSpread(_objectSpread({}, selection), {}, {\n id: uniqueId('new-id-')\n });\n }\n\n if (multiple) {\n // If multiple selections are allowed, add the new selection to the\n // existing selections.\n selected = _this.state.selected.concat(selection);\n text = '';\n } else {\n // If only a single selection is allowed, replace the existing selection\n // with the new one.\n selected = [selection];\n text = getOptionLabel(selection, labelKey);\n }\n\n _this.setState(function (state, props) {\n return _objectSpread(_objectSpread({}, hideMenu(state, props)), {}, {\n initialItem: selection,\n selected: selected,\n text: text\n });\n }, function () {\n return _this._handleChange(selected);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleSelectionRemove\", function (selection) {\n var selected = _this.state.selected.filter(function (option) {\n return !isEqual(option, selection);\n }); // Make sure the input stays focused after the item is removed.\n\n\n _this.focus();\n\n _this.setState(function (state, props) {\n return _objectSpread(_objectSpread({}, hideMenu(state, props)), {}, {\n selected: selected\n });\n }, function () {\n return _this._handleChange(selected);\n });\n });\n\n return _this;\n }\n\n _createClass(Typeahead, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.props.autoFocus && this.focus();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props3 = this.props,\n labelKey = _this$props3.labelKey,\n multiple = _this$props3.multiple,\n selected = _this$props3.selected;\n validateSelectedPropChange(selected, prevProps.selected); // Sync selections in state with those in props.\n\n if (selected && !isEqual(selected, prevState.selected)) {\n this.setState({\n selected: selected\n });\n\n if (!multiple) {\n this.setState({\n text: selected.length ? getOptionLabel(head(selected), labelKey) : ''\n });\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n // Omit `onChange` so Flow doesn't complain.\n var _this$props4 = this.props,\n onChange = _this$props4.onChange,\n otherProps = _objectWithoutProperties(_this$props4, _excluded);\n\n var mergedPropsAndState = _objectSpread(_objectSpread({}, otherProps), this.state);\n\n var filterBy = mergedPropsAndState.filterBy,\n labelKey = mergedPropsAndState.labelKey,\n options = mergedPropsAndState.options,\n paginate = mergedPropsAndState.paginate,\n shownResults = mergedPropsAndState.shownResults,\n text = mergedPropsAndState.text;\n this.isMenuShown = isShown(mergedPropsAndState);\n this.items = []; // Reset items on re-render.\n\n var results = [];\n\n if (this.isMenuShown) {\n var cb = typeof filterBy === 'function' ? filterBy : defaultFilterBy;\n results = options.filter(function (option) {\n return cb(option, mergedPropsAndState);\n }); // This must come before results are truncated.\n\n var shouldPaginate = paginate && results.length > shownResults; // Truncate results if necessary.\n\n results = getTruncatedOptions(results, shownResults); // Add the custom option if necessary.\n\n if (addCustomOption(results, mergedPropsAndState)) {\n results.push(_defineProperty({\n customOption: true\n }, getStringLabelKey(labelKey), text));\n } // Add the pagination item if necessary.\n\n\n if (shouldPaginate) {\n var _results$push2;\n\n results.push((_results$push2 = {}, _defineProperty(_results$push2, getStringLabelKey(labelKey), ''), _defineProperty(_results$push2, \"paginationOption\", true), _results$push2));\n }\n }\n\n return /*#__PURE__*/React.createElement(TypeaheadManager, _extends({}, mergedPropsAndState, {\n hideMenu: this.hideMenu,\n inputNode: this.inputNode,\n inputRef: this.inputRef,\n isMenuShown: this.isMenuShown,\n onActiveItemChange: this._handleActiveItemChange,\n onAdd: this._handleSelectionAdd,\n onBlur: this._handleBlur,\n onChange: this._handleInputChange,\n onClear: this._handleClear,\n onFocus: this._handleFocus,\n onHide: this.hideMenu,\n onInitialItemChange: this._handleInitialItemChange,\n onKeyDown: this._handleKeyDown,\n onMenuItemClick: this._handleMenuItemSelect,\n onRemove: this._handleSelectionRemove,\n results: results,\n setItem: this.setItem,\n toggleMenu: this.toggleMenu\n }));\n }\n }]);\n\n return Typeahead;\n}(React.Component);\n\n_defineProperty(Typeahead, \"propTypes\", propTypes);\n\n_defineProperty(Typeahead, \"defaultProps\", defaultProps);\n\nexport default Typeahead;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"allowNew\", \"delay\", \"emptyLabel\", \"isLoading\", \"minLength\", \"onInputChange\", \"onSearch\", \"options\", \"promptText\", \"searchText\", \"useCache\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport debounce from 'lodash.debounce';\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, useCallback, useEffect, useRef } from 'react';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport Typeahead from '../core/Typeahead';\nimport { optionType } from '../propTypes';\nimport { getDisplayName, isFunction, warn } from '../utils';\nvar propTypes = {\n /**\n * Delay, in milliseconds, before performing search.\n */\n delay: PropTypes.number,\n\n /**\n * Whether or not a request is currently pending. Necessary for the\n * container to know when new results are available.\n */\n isLoading: PropTypes.bool.isRequired,\n\n /**\n * Number of input characters that must be entered before showing results.\n */\n minLength: PropTypes.number,\n\n /**\n * Callback to perform when the search is executed.\n */\n onSearch: PropTypes.func.isRequired,\n\n /**\n * Options to be passed to the typeahead. Will typically be the query\n * results, but can also be initial default options.\n */\n options: PropTypes.arrayOf(optionType),\n\n /**\n * Message displayed in the menu when there is no user input.\n */\n promptText: PropTypes.node,\n\n /**\n * Message displayed in the menu while the request is pending.\n */\n searchText: PropTypes.node,\n\n /**\n * Whether or not the component should cache query results.\n */\n useCache: PropTypes.bool\n};\nvar defaultProps = {\n delay: 200,\n minLength: 2,\n options: [],\n promptText: 'Type to search...',\n searchText: 'Searching...',\n useCache: true\n};\n\n/**\n * Logic that encapsulates common behavior and functionality around\n * asynchronous searches, including:\n *\n * - Debouncing user input\n * - Optional query caching\n * - Search prompt and empty results behaviors\n */\nexport function useAsync(props) {\n var allowNew = props.allowNew,\n delay = props.delay,\n emptyLabel = props.emptyLabel,\n isLoading = props.isLoading,\n minLength = props.minLength,\n onInputChange = props.onInputChange,\n onSearch = props.onSearch,\n options = props.options,\n promptText = props.promptText,\n searchText = props.searchText,\n useCache = props.useCache,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var cacheRef = useRef({});\n var handleSearchDebouncedRef = useRef();\n var queryRef = useRef(props.defaultInputValue || '');\n var forceUpdate = useForceUpdate();\n var prevProps = usePrevious(props);\n var handleSearch = useCallback(function (query) {\n queryRef.current = query;\n\n if (!query || minLength && query.length < minLength) {\n return;\n } // Use cached results, if applicable.\n\n\n if (useCache && cacheRef.current[query]) {\n // Re-render the component with the cached results.\n forceUpdate();\n return;\n } // Perform the search.\n\n\n onSearch(query);\n }, [forceUpdate, minLength, onSearch, useCache]); // Set the debounced search function.\n\n useEffect(function () {\n handleSearchDebouncedRef.current = debounce(handleSearch, delay);\n return function () {\n handleSearchDebouncedRef.current && handleSearchDebouncedRef.current.cancel();\n };\n }, [delay, handleSearch]);\n useEffect(function () {\n // Ensure that we've gone from a loading to a completed state. Otherwise\n // an empty response could get cached if the component updates during the\n // request (eg: if the parent re-renders for some reason).\n if (!isLoading && prevProps && prevProps.isLoading && useCache) {\n cacheRef.current[queryRef.current] = options;\n }\n });\n\n var getEmptyLabel = function getEmptyLabel() {\n if (!queryRef.current.length) {\n return promptText;\n }\n\n if (isLoading) {\n return searchText;\n }\n\n return emptyLabel;\n };\n\n var handleInputChange = useCallback(function (query, e) {\n onInputChange && onInputChange(query, e);\n handleSearchDebouncedRef.current && handleSearchDebouncedRef.current(query);\n }, [onInputChange]);\n var cachedQuery = cacheRef.current[queryRef.current];\n return _objectSpread(_objectSpread({}, otherProps), {}, {\n // Disable custom selections during a search if `allowNew` isn't a function.\n allowNew: isFunction(allowNew) ? allowNew : allowNew && !isLoading,\n emptyLabel: getEmptyLabel(),\n isLoading: isLoading,\n minLength: minLength,\n onInputChange: handleInputChange,\n options: useCache && cachedQuery ? cachedQuery : options\n });\n}\nexport function withAsync(Component) {\n var AsyncTypeahead = /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Component, _extends({}, useAsync(props), {\n ref: ref\n }));\n });\n AsyncTypeahead.displayName = \"withAsync(\".concat(getDisplayName(Component), \")\"); // $FlowFixMe\n\n AsyncTypeahead.propTypes = propTypes; // $FlowFixMe\n\n AsyncTypeahead.defaultProps = defaultProps;\n return AsyncTypeahead;\n}\nexport default function asyncContainer(Component) {\n /* istanbul ignore next */\n warn(false, 'The `asyncContainer` export is deprecated; use `withAsync` instead.');\n /* istanbul ignore next */\n\n return withAsync(Component);\n}","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n\n return componentOrElement != null ? componentOrElement : null;\n}","import ownerDocument from 'dom-helpers/ownerDocument';\nimport safeFindDOMNode from './safeFindDOMNode';\nexport default (function (componentOrElement) {\n return ownerDocument(safeFindDOMNode(componentOrElement));\n});","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\nimport ownerDocument from './ownerDocument';\nvar escapeKeyCode = 27;\n\nvar noop = function noop() {};\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar getRefTarget = function getRefTarget(ref) {\n return ref && ('current' in ref ? ref.current : ref);\n};\n\n/**\n * The `useRootClose` hook registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref The element boundary\n * @param {function} onRootClose\n * @param {object=} options\n * @param {boolean=} options.disabled\n * @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useRootClose(ref, onRootClose, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n disabled = _ref.disabled,\n _ref$clickTrigger = _ref.clickTrigger,\n clickTrigger = _ref$clickTrigger === void 0 ? 'click' : _ref$clickTrigger;\n\n var preventMouseRootCloseRef = useRef(false);\n var onClose = onRootClose || noop;\n var handleMouseCapture = useCallback(function (e) {\n var currentTarget = getRefTarget(ref);\n warning(!!currentTarget, 'RootClose captured a close event but does not have a ref to compare it to. ' + 'useRootClose(), should be passed a ref that resolves to a DOM node');\n preventMouseRootCloseRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target);\n }, [ref]);\n var handleMouse = useEventCallback(function (e) {\n if (!preventMouseRootCloseRef.current) {\n onClose(e);\n }\n });\n var handleKeyUp = useEventCallback(function (e) {\n if (e.keyCode === escapeKeyCode) {\n onClose(e);\n }\n });\n useEffect(function () {\n if (disabled || ref == null) return undefined; // Store the current event to avoid triggering handlers immediately\n // https://github.com/facebook/react/issues/20074\n\n var currentEvent = window.event;\n var doc = ownerDocument(getRefTarget(ref)); // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n\n var removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n var removeMouseListener = listen(doc, clickTrigger, function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n\n handleMouse(e);\n });\n var removeKeyupListener = listen(doc, 'keyup', function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n\n handleKeyUp(e);\n });\n var mobileSafariHackListeners = [];\n\n if ('ontouchstart' in doc.documentElement) {\n mobileSafariHackListeners = [].slice.call(doc.body.children).map(function (el) {\n return listen(el, 'mousemove', noop);\n });\n }\n\n return function () {\n removeMouseCaptureListener();\n removeMouseListener();\n removeKeyupListener();\n mobileSafariHackListeners.forEach(function (remove) {\n return remove();\n });\n };\n }, [ref, disabled, clickTrigger, handleMouseCapture, handleMouse, handleKeyUp]);\n}\n\nexport default useRootClose;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"className\", \"label\", \"onClick\", \"onKeyDown\", \"size\"];\nimport cx from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { isSizeLarge, noop } from '../utils';\nimport { sizeType } from '../propTypes';\nimport { BACKSPACE } from '../constants';\nvar propTypes = {\n label: PropTypes.string,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n size: sizeType\n};\nvar defaultProps = {\n label: 'Clear',\n onClick: noop,\n onKeyDown: noop\n};\n\n/**\n * ClearButton\n *\n * http://getbootstrap.com/css/#helper-classes-close\n */\nvar ClearButton = function ClearButton(_ref) {\n var className = _ref.className,\n label = _ref.label,\n _onClick = _ref.onClick,\n _onKeyDown = _ref.onKeyDown,\n size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n \"aria-label\": label,\n className: cx('close', 'rbt-close', {\n 'rbt-close-lg': isSizeLarge(size)\n }, className),\n onClick: function onClick(e) {\n e.stopPropagation();\n\n _onClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n // Prevent browser from navigating back.\n if (e.keyCode === BACKSPACE) {\n e.preventDefault();\n }\n\n _onKeyDown(e);\n },\n type: \"button\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, \"\\xD7\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only visually-hidden\"\n }, label));\n};\n\nClearButton.propTypes = propTypes;\nClearButton.defaultProps = defaultProps;\nexport default ClearButton;","import PropTypes from 'prop-types';\nimport React from 'react';\nvar propTypes = {\n label: PropTypes.string\n};\nvar defaultProps = {\n label: 'Loading...'\n};\n\nvar Loader = function Loader(_ref) {\n var label = _ref.label;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rbt-loader spinner-border spinner-border-sm\",\n role: \"status\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only visually-hidden\"\n }, label));\n};\n\nLoader.propTypes = propTypes;\nLoader.defaultProps = defaultProps;\nexport default Loader;","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar toStr = Object.prototype.toString;\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn toStr.call(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\ttoStr.call(value) !== '[object Array]' &&\n\t\ttoStr.call(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from 'create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\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 return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_this), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"styles\"],\n _excluded2 = [\"ref\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable react/no-unused-prop-types */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Popper } from 'react-popper';\nimport { values } from '../utils';\nimport { ALIGN } from '../constants';\n// `Element` is not defined during server-side rendering, so shim it here.\n\n/* istanbul ignore next */\nvar SafeElement = typeof Element === 'undefined' ? function () {} : Element;\nvar propTypes = {\n /**\n * Specify menu alignment. The default value is `justify`, which makes the\n * menu as wide as the input and truncates long values. Specifying `left`\n * or `right` will align the menu to that side and the width will be\n * determined by the length of menu item values.\n */\n align: PropTypes.oneOf(values(ALIGN)),\n children: PropTypes.func.isRequired,\n\n /**\n * Specify whether the menu should appear above the input.\n */\n dropup: PropTypes.bool,\n\n /**\n * Whether or not to automatically adjust the position of the menu when it\n * reaches the viewport boundaries.\n */\n flip: PropTypes.bool,\n isMenuShown: PropTypes.bool,\n positionFixed: PropTypes.bool,\n referenceElement: PropTypes.instanceOf(SafeElement)\n};\nvar defaultProps = {\n align: ALIGN.JUSTIFY,\n dropup: false,\n flip: false,\n isMenuShown: false,\n positionFixed: false\n};\n\nfunction getModifiers(_ref) {\n var align = _ref.align,\n flip = _ref.flip;\n return {\n computeStyles: {\n enabled: true,\n fn: function fn(_ref2) {\n var styles = _ref2.styles,\n data = _objectWithoutProperties(_ref2, _excluded);\n\n return _objectSpread(_objectSpread({}, data), {}, {\n styles: _objectSpread(_objectSpread({}, styles), {}, {\n // Use the following condition instead of `align === 'justify'`\n // since it allows the component to fall back to justifying the\n // menu width if `align` is undefined.\n width: align !== ALIGN.RIGHT && align !== ALIGN.LEFT ? // Set the popper width to match the target width.\n data.offsets.reference.width : styles.width\n })\n });\n }\n },\n flip: {\n enabled: flip\n },\n preventOverflow: {\n escapeWithReference: true\n }\n };\n} // Flow expects a string literal value for `placement`.\n\n\nvar PLACEMENT = {\n bottom: {\n end: 'bottom-end',\n start: 'bottom-start'\n },\n top: {\n end: 'top-end',\n start: 'top-start'\n }\n};\nexport function getPlacement(_ref3) {\n var align = _ref3.align,\n dropup = _ref3.dropup;\n var x = align === ALIGN.RIGHT ? 'end' : 'start';\n var y = dropup ? 'top' : 'bottom';\n return PLACEMENT[y][x];\n}\n\nvar Overlay = function Overlay(props) {\n var children = props.children,\n isMenuShown = props.isMenuShown,\n positionFixed = props.positionFixed,\n referenceElement = props.referenceElement;\n\n if (!isMenuShown) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Popper, {\n modifiers: getModifiers(props),\n placement: getPlacement(props),\n positionFixed: positionFixed,\n referenceElement: referenceElement\n }, function (_ref4) {\n var ref = _ref4.ref,\n popperProps = _objectWithoutProperties(_ref4, _excluded2);\n\n return children(_objectSpread(_objectSpread({}, popperProps), {}, {\n innerRef: ref,\n inputHeight: referenceElement ? referenceElement.offsetHeight : 0\n }));\n });\n};\n\nOverlay.propTypes = propTypes;\nOverlay.defaultProps = defaultProps;\nexport default Overlay;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"onBlur\", \"onClick\", \"onFocus\", \"onRemove\", \"option\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport useRootClose from \"react-overlays/useRootClose\";\nimport { getDisplayName, isFunction, warn } from '../utils';\nimport { BACKSPACE } from '../constants';\nimport { optionType } from '../propTypes';\nvar propTypes = {\n onBlur: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onRemove: PropTypes.func,\n option: optionType.isRequired\n};\nexport var useToken = function useToken(_ref) {\n var onBlur = _ref.onBlur,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n onRemove = _ref.onRemove,\n option = _ref.option,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n active = _useState2[0],\n setActive = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n rootElement = _useState4[0],\n attachRef = _useState4[1];\n\n var handleActiveChange = function handleActiveChange(e, isActive, callback) {\n setActive(isActive);\n typeof callback === 'function' && callback(e);\n };\n\n var handleBlur = function handleBlur(e) {\n handleActiveChange(e, false, onBlur);\n };\n\n var handleClick = function handleClick(e) {\n handleActiveChange(e, true, onClick);\n };\n\n var handleFocus = function handleFocus(e) {\n handleActiveChange(e, true, onFocus);\n };\n\n var handleRemove = function handleRemove() {\n onRemove && onRemove(option);\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.keyCode) {\n case BACKSPACE:\n if (active) {\n // Prevent backspace keypress from triggering the browser \"back\"\n // action.\n e.preventDefault();\n handleRemove();\n }\n\n break;\n\n default:\n break;\n }\n };\n\n useRootClose(rootElement, handleBlur, _objectSpread(_objectSpread({}, props), {}, {\n disabled: !active\n }));\n return _objectSpread(_objectSpread({}, props), {}, {\n active: active,\n onBlur: handleBlur,\n onClick: handleClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onRemove: isFunction(onRemove) ? handleRemove : undefined,\n ref: attachRef\n });\n};\nexport var withToken = function withToken(Component) {\n var displayName = \"withToken(\".concat(getDisplayName(Component), \")\");\n\n var WrappedToken = function WrappedToken(props) {\n return /*#__PURE__*/React.createElement(Component, useToken(props));\n };\n\n WrappedToken.displayName = displayName;\n WrappedToken.propTypes = propTypes;\n return WrappedToken;\n};\nexport default function tokenContainer(Component) {\n /* istanbul ignore next */\n warn(false, 'The `tokenContainer` export is deprecated; use `withToken` instead.');\n /* istanbul ignore next */\n\n return withToken(Component);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"active\", \"children\", \"className\", \"onRemove\", \"tabIndex\"];\nimport cx from 'classnames';\nimport React, { forwardRef } from 'react';\nimport ClearButton from './ClearButton';\nimport { withToken } from '../behaviors/token';\nimport { isFunction } from '../utils';\nvar InteractiveToken = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var active = _ref.active,\n children = _ref.children,\n className = _ref.className,\n onRemove = _ref.onRemove,\n tabIndex = _ref.tabIndex,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: cx('rbt-token', 'rbt-token-removeable', {\n 'rbt-token-active': !!active\n }, className),\n ref: ref,\n tabIndex: tabIndex || 0\n }), children, /*#__PURE__*/React.createElement(ClearButton, {\n className: \"rbt-token-remove-button\",\n label: \"Remove\",\n onClick: onRemove,\n tabIndex: -1\n }));\n});\n\nvar StaticToken = function StaticToken(_ref2) {\n var children = _ref2.children,\n className = _ref2.className,\n disabled = _ref2.disabled,\n href = _ref2.href;\n var classnames = cx('rbt-token', {\n 'rbt-token-disabled': disabled\n }, className);\n\n if (href && !disabled) {\n return /*#__PURE__*/React.createElement(\"a\", {\n className: classnames,\n href: href\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames\n }, children);\n};\n/**\n * Token\n *\n * Individual token component, generally displayed within the TokenizerInput\n * component, but can also be rendered on its own.\n */\n\n\nvar Token = /*#__PURE__*/forwardRef(function (props, ref) {\n var disabled = props.disabled,\n onRemove = props.onRemove,\n readOnly = props.readOnly;\n return !disabled && !readOnly && isFunction(onRemove) ? /*#__PURE__*/React.createElement(InteractiveToken, _extends({}, props, {\n ref: ref\n })) : /*#__PURE__*/React.createElement(StaticToken, props);\n});\nexport default withToken(Token);","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"className\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport invariant from 'invariant';\nimport React, { cloneElement, useEffect, useRef } from 'react';\nimport { useTypeaheadContext } from '../core/Context';\nimport { isSelectable } from '../utils';\nimport { RETURN, RIGHT, TAB } from '../constants';\n\n// IE doesn't seem to get the composite computed value (eg: 'padding',\n// 'borderStyle', etc.), so generate these from the individual values.\nfunction interpolateStyle(styles, attr) {\n var subattr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n // Title-case the sub-attribute.\n if (subattr) {\n /* eslint-disable-next-line no-param-reassign */\n subattr = subattr.replace(subattr[0], subattr[0].toUpperCase());\n }\n\n return ['Top', 'Right', 'Bottom', 'Left'].map(function (dir) {\n return styles[attr + dir + subattr];\n }).join(' ');\n}\n\nfunction copyStyles(inputNode, hintNode) {\n if (!inputNode || !hintNode) {\n return;\n }\n\n var inputStyle = window.getComputedStyle(inputNode);\n /* eslint-disable no-param-reassign */\n\n hintNode.style.borderStyle = interpolateStyle(inputStyle, 'border', 'style');\n hintNode.style.borderWidth = interpolateStyle(inputStyle, 'border', 'width');\n hintNode.style.fontSize = inputStyle.fontSize;\n hintNode.style.height = inputStyle.height;\n hintNode.style.lineHeight = inputStyle.lineHeight;\n hintNode.style.margin = interpolateStyle(inputStyle, 'margin');\n hintNode.style.padding = interpolateStyle(inputStyle, 'padding');\n /* eslint-enable no-param-reassign */\n}\n\nexport function defaultShouldSelect(e, state) {\n var shouldSelectHint = false;\n var currentTarget = e.currentTarget,\n keyCode = e.keyCode;\n\n if (keyCode === RIGHT) {\n // For selectable input types (\"text\", \"search\"), only select the hint if\n // it's at the end of the input value. For non-selectable types (\"email\",\n // \"number\"), always select the hint.\n shouldSelectHint = isSelectable(currentTarget) ? currentTarget.selectionStart === currentTarget.value.length : true;\n }\n\n if (keyCode === TAB) {\n // Prevent input from blurring on TAB.\n e.preventDefault();\n shouldSelectHint = true;\n }\n\n if (keyCode === RETURN) {\n shouldSelectHint = !!state.selectHintOnEnter;\n }\n\n return typeof state.shouldSelect === 'function' ? state.shouldSelect(shouldSelectHint, e) : shouldSelectHint;\n}\nexport var useHint = function useHint(_ref) {\n var children = _ref.children,\n shouldSelect = _ref.shouldSelect;\n !(React.Children.count(children) === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`useHint` expects one child.') : invariant(false) : void 0;\n\n var _useTypeaheadContext = useTypeaheadContext(),\n hintText = _useTypeaheadContext.hintText,\n initialItem = _useTypeaheadContext.initialItem,\n inputNode = _useTypeaheadContext.inputNode,\n onAdd = _useTypeaheadContext.onAdd,\n selectHintOnEnter = _useTypeaheadContext.selectHintOnEnter;\n\n var hintRef = useRef(null);\n\n var onKeyDown = function onKeyDown(e) {\n if (hintText && initialItem && defaultShouldSelect(e, {\n selectHintOnEnter: selectHintOnEnter,\n shouldSelect: shouldSelect\n })) {\n onAdd(initialItem);\n }\n\n children.props.onKeyDown && children.props.onKeyDown(e);\n };\n\n useEffect(function () {\n copyStyles(inputNode, hintRef.current);\n });\n return {\n child: /*#__PURE__*/cloneElement(children, _objectSpread(_objectSpread({}, children.props), {}, {\n onKeyDown: onKeyDown\n })),\n hintRef: hintRef,\n hintText: hintText\n };\n};\n\nvar Hint = function Hint(_ref2) {\n var className = _ref2.className,\n props = _objectWithoutProperties(_ref2, _excluded);\n\n var _useHint = useHint(props),\n child = _useHint.child,\n hintRef = _useHint.hintRef,\n hintText = _useHint.hintText;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: {\n display: 'flex',\n flex: 1,\n height: '100%',\n position: 'relative'\n }\n }, child, /*#__PURE__*/React.createElement(\"input\", {\n \"aria-hidden\": true,\n className: \"rbt-input-hint\",\n ref: hintRef,\n readOnly: true,\n style: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n boxShadow: 'none',\n color: 'rgba(0, 0, 0, 0.54)',\n left: 0,\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: '100%'\n },\n tabIndex: -1,\n value: hintText\n }));\n};\n\nexport default Hint;","import _extends from \"@babel/runtime/helpers/extends\";\nimport cx from 'classnames';\nimport React from 'react';\nvar Input = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(\"input\", _extends({}, props, {\n className: cx('rbt-input-main', props.className),\n ref: ref\n }));\n});\nexport default Input;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"className\", \"isInvalid\", \"isValid\", \"size\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport cx from 'classnames';\nimport React from 'react';\nimport { getDisplayName, isSizeLarge, isSizeSmall } from '../utils';\n\nfunction withClassNames(Component) {\n // Use a class instead of function component to support refs.\n\n /* eslint-disable-next-line react/prefer-stateless-function */\n var WrappedComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(WrappedComponent, _React$Component);\n\n var _super = _createSuper(WrappedComponent);\n\n function WrappedComponent() {\n _classCallCheck(this, WrappedComponent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(WrappedComponent, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n isInvalid = _this$props.isInvalid,\n isValid = _this$props.isValid,\n size = _this$props.size,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n className: cx('form-control', 'rbt-input', {\n 'form-control-lg': isSizeLarge(size),\n 'form-control-sm': isSizeSmall(size),\n 'is-invalid': isInvalid,\n 'is-valid': isValid\n }, className)\n }));\n }\n }]);\n\n return WrappedComponent;\n }(React.Component);\n\n _defineProperty(WrappedComponent, \"displayName\", \"withClassNames(\".concat(getDisplayName(Component), \")\"));\n\n return WrappedComponent;\n}\n\nexport default withClassNames;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"children\", \"className\", \"inputClassName\", \"inputRef\", \"placeholder\", \"referenceElementRef\", \"selected\", \"shouldSelectHint\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport cx from 'classnames';\nimport React from 'react';\nimport Hint from './Hint';\nimport Input from './Input';\nimport { isSelectable } from '../utils';\nimport withClassNames from '../behaviors/classNames';\nimport { BACKSPACE } from '../constants';\n\nvar TypeaheadInputMulti = /*#__PURE__*/function (_React$Component) {\n _inherits(TypeaheadInputMulti, _React$Component);\n\n var _super = _createSuper(TypeaheadInputMulti);\n\n function TypeaheadInputMulti() {\n var _this;\n\n _classCallCheck(this, TypeaheadInputMulti);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"wrapperRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"_input\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"getInputRef\", function (input) {\n _this._input = input;\n\n _this.props.inputRef(input);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleContainerClickOrFocus\", function (e) {\n // Don't focus the input if it's disabled.\n if (_this.props.disabled) {\n e.currentTarget.blur();\n return;\n } // Move cursor to the end if the user clicks outside the actual input.\n\n\n var inputNode = _this._input;\n\n if (!inputNode || // $FlowFixMe\n e.currentTarget.contains(e.target) && e.currentTarget !== e.target) {\n return;\n }\n\n if (isSelectable(inputNode)) {\n inputNode.selectionStart = inputNode.value.length;\n }\n\n inputNode.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleKeyDown\", function (e) {\n var _this$props = _this.props,\n onKeyDown = _this$props.onKeyDown,\n selected = _this$props.selected,\n value = _this$props.value;\n\n switch (e.keyCode) {\n case BACKSPACE:\n if (e.currentTarget === _this._input && selected.length && !value) {\n // Prevent browser from going back.\n e.preventDefault(); // If the input is selected and there is no text, focus the last\n // token when the user hits backspace.\n\n if (_this.wrapperRef.current) {\n var children = _this.wrapperRef.current.children;\n var lastToken = children[children.length - 2];\n lastToken && lastToken.focus();\n }\n }\n\n break;\n\n default:\n break;\n }\n\n onKeyDown(e);\n });\n\n return _this;\n }\n\n _createClass(TypeaheadInputMulti, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n inputClassName = _this$props2.inputClassName,\n inputRef = _this$props2.inputRef,\n placeholder = _this$props2.placeholder,\n referenceElementRef = _this$props2.referenceElementRef,\n selected = _this$props2.selected,\n shouldSelectHint = _this$props2.shouldSelectHint,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cx('rbt-input-multi', className),\n disabled: props.disabled,\n onClick: this._handleContainerClickOrFocus,\n onFocus: this._handleContainerClickOrFocus,\n ref: referenceElementRef,\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"rbt-input-wrapper\",\n ref: this.wrapperRef\n }, children, /*#__PURE__*/React.createElement(Hint, {\n shouldSelect: shouldSelectHint\n }, /*#__PURE__*/React.createElement(Input, _extends({}, props, {\n className: inputClassName,\n onKeyDown: this._handleKeyDown,\n placeholder: selected.length ? '' : placeholder,\n ref: this.getInputRef,\n style: {\n backgroundColor: 'transparent',\n border: 0,\n boxShadow: 'none',\n cursor: 'inherit',\n outline: 'none',\n padding: 0,\n width: '100%',\n zIndex: 1\n }\n })))));\n }\n }]);\n\n return TypeaheadInputMulti;\n}(React.Component);\n\nexport default withClassNames(TypeaheadInputMulti);","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"inputRef\", \"referenceElementRef\", \"shouldSelectHint\"];\nimport React from 'react';\nimport Hint from './Hint';\nimport Input from './Input';\nimport withClassNames from '../behaviors/classNames';\nexport default withClassNames(function (_ref) {\n var inputRef = _ref.inputRef,\n referenceElementRef = _ref.referenceElementRef,\n shouldSelectHint = _ref.shouldSelectHint,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(Hint, {\n shouldSelect: shouldSelectHint\n }, /*#__PURE__*/React.createElement(Input, _extends({}, props, {\n ref: function ref(node) {\n inputRef(node);\n referenceElementRef(node);\n }\n })));\n});","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { getMatchBounds } from '../utils';\nvar propTypes = {\n children: PropTypes.string.isRequired,\n highlightClassName: PropTypes.string,\n search: PropTypes.string.isRequired\n};\nvar defaultProps = {\n highlightClassName: 'rbt-highlight-text'\n};\n\n/**\n * Stripped-down version of https://github.com/helior/react-highlighter\n *\n * Results are already filtered by the time the component is used internally so\n * we can safely ignore case and diacritical marks for the purposes of matching.\n */\nvar Highlighter = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Highlighter, _React$PureComponent);\n\n var _super = _createSuper(Highlighter);\n\n function Highlighter() {\n _classCallCheck(this, Highlighter);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Highlighter, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n highlightClassName = _this$props.highlightClassName,\n search = _this$props.search;\n\n if (!search || !children) {\n return children;\n }\n\n var matchCount = 0;\n var remaining = children;\n var highlighterChildren = [];\n\n while (remaining) {\n var bounds = getMatchBounds(remaining, search); // No match anywhere in the remaining string, stop.\n\n if (!bounds) {\n highlighterChildren.push(remaining);\n break;\n } // Capture the string that leads up to a match.\n\n\n var nonMatch = remaining.slice(0, bounds.start);\n\n if (nonMatch) {\n highlighterChildren.push(nonMatch);\n } // Capture the matching string.\n\n\n var match = remaining.slice(bounds.start, bounds.end);\n highlighterChildren.push( /*#__PURE__*/React.createElement(\"mark\", {\n className: highlightClassName,\n key: matchCount\n }, match));\n matchCount += 1; // And if there's anything left over, continue the loop.\n\n remaining = remaining.slice(bounds.end);\n }\n\n return highlighterChildren;\n }\n }]);\n\n return Highlighter;\n}(React.PureComponent);\n\n_defineProperty(Highlighter, \"propTypes\", propTypes);\n\n_defineProperty(Highlighter, \"defaultProps\", defaultProps);\n\nexport default Highlighter;","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 try {\n return el.ownerDocument.defaultView.frameElement;\n } catch (e) {\n return null;\n }\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 compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var targetIsDetached = !target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(targetIsDetached ? [] : compute(target, options));\n }\n\n if (targetIsDetached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"label\", \"onClick\", \"option\", \"position\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTypeaheadContext } from '../core/Context';\nimport { getDisplayName, getMenuItemId, preventInputBlur, warn } from '../utils';\nimport { optionType } from '../propTypes';\nvar propTypes = {\n option: optionType.isRequired,\n position: PropTypes.number\n};\nexport var useItem = function useItem(_ref) {\n var label = _ref.label,\n onClick = _ref.onClick,\n option = _ref.option,\n position = _ref.position,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useTypeaheadContext = useTypeaheadContext(),\n activeIndex = _useTypeaheadContext.activeIndex,\n id = _useTypeaheadContext.id,\n isOnlyResult = _useTypeaheadContext.isOnlyResult,\n onActiveItemChange = _useTypeaheadContext.onActiveItemChange,\n onInitialItemChange = _useTypeaheadContext.onInitialItemChange,\n onMenuItemClick = _useTypeaheadContext.onMenuItemClick,\n setItem = _useTypeaheadContext.setItem;\n\n var itemRef = useRef(null);\n useEffect(function () {\n if (position === 0) {\n onInitialItemChange(option);\n }\n });\n useEffect(function () {\n if (position === activeIndex) {\n onActiveItemChange(option); // Automatically scroll the menu as the user keys through it.\n\n var node = itemRef.current;\n node && scrollIntoView(node, {\n block: 'nearest',\n boundary: node.parentNode,\n inline: 'nearest',\n scrollMode: 'if-needed'\n });\n }\n });\n var handleClick = useCallback(function (e) {\n onMenuItemClick(option, e);\n onClick && onClick(e);\n }, [onClick, onMenuItemClick, option]);\n var active = isOnlyResult || activeIndex === position; // Update the item's position in the item stack.\n\n setItem(option, position);\n return _objectSpread(_objectSpread({}, props), {}, {\n active: active,\n 'aria-label': label,\n 'aria-selected': active,\n id: getMenuItemId(id, position),\n onClick: handleClick,\n onMouseDown: preventInputBlur,\n ref: itemRef,\n role: 'option'\n });\n};\nexport var withItem = function withItem(Component) {\n var displayName = \"withItem(\".concat(getDisplayName(Component), \")\");\n\n var WrappedMenuItem = function WrappedMenuItem(props) {\n return /*#__PURE__*/React.createElement(Component, useItem(props));\n };\n\n WrappedMenuItem.displayName = displayName;\n WrappedMenuItem.propTypes = propTypes;\n return WrappedMenuItem;\n};\nexport default function menuItemContainer(Component) {\n /* istanbul ignore next */\n warn(false, 'The `menuItemContainer` export is deprecated; use `withItem` instead.');\n /* istanbul ignore next */\n\n return withItem(Component);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"active\", \"children\", \"className\", \"disabled\", \"onClick\"];\nimport cx from 'classnames';\nimport React from 'react';\nimport { withItem } from '../behaviors/item';\nvar BaseMenuItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var active = _ref.active,\n children = _ref.children,\n className = _ref.className,\n disabled = _ref.disabled,\n _onClick = _ref.onClick,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, props, {\n className: cx('dropdown-item', {\n active: active,\n disabled: disabled\n }, className),\n href: props.href || '#',\n onClick: function onClick(e) {\n e.preventDefault();\n !disabled && _onClick && _onClick(e);\n },\n ref: ref\n }), children);\n});\nexport { BaseMenuItem };\nexport default withItem(BaseMenuItem);","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { Children } from 'react';\nimport { BaseMenuItem } from './MenuItem';\nimport { preventInputBlur } from '../utils';\nimport { checkPropType, isRequiredForA11y } from '../propTypes';\n\nvar MenuDivider = function MenuDivider(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"dropdown-divider\",\n role: \"separator\"\n });\n};\n\nvar MenuHeader = function MenuHeader(props) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n React.createElement(\"div\", _extends({}, props, {\n className: \"dropdown-header\",\n role: \"heading\"\n }))\n );\n};\n\nvar propTypes = {\n 'aria-label': PropTypes.string,\n\n /**\n * Message to display in the menu if there are no valid results.\n */\n emptyLabel: PropTypes.node,\n\n /**\n * Needed for accessibility.\n */\n id: checkPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), isRequiredForA11y),\n\n /**\n * Maximum height of the dropdown menu.\n */\n maxHeight: PropTypes.string\n};\nvar defaultProps = {\n 'aria-label': 'menu-options',\n emptyLabel: 'No matches found.',\n maxHeight: '300px'\n};\n\n/**\n * Menu component that handles empty state when passed a set of results.\n */\nvar Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n\n var _super = _createSuper(Menu);\n\n function Menu() {\n _classCallCheck(this, Menu);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Menu, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n inputHeight = _this$props.inputHeight,\n scheduleUpdate = _this$props.scheduleUpdate; // Update the menu position if the height of the input changes.\n\n if (inputHeight !== prevProps.inputHeight) {\n scheduleUpdate();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n emptyLabel = _this$props2.emptyLabel,\n id = _this$props2.id,\n innerRef = _this$props2.innerRef,\n maxHeight = _this$props2.maxHeight,\n style = _this$props2.style,\n text = _this$props2.text;\n var contents = Children.count(children) === 0 ? /*#__PURE__*/React.createElement(BaseMenuItem, {\n disabled: true,\n role: \"option\"\n }, emptyLabel) : children;\n return (\n /*#__PURE__*/\n\n /* eslint-disable jsx-a11y/interactive-supports-focus */\n React.createElement(\"div\", {\n \"aria-label\": this.props['aria-label'],\n className: cx('rbt-menu', 'dropdown-menu', 'show', className),\n id: id,\n key: // Force a re-render if the text changes to ensure that menu\n // positioning updates correctly.\n text,\n onMouseDown: // Prevent input from blurring when clicking on the menu scrollbar.\n preventInputBlur,\n ref: innerRef,\n role: \"listbox\",\n style: _objectSpread(_objectSpread({}, style), {}, {\n display: 'block',\n maxHeight: maxHeight,\n overflow: 'auto'\n })\n }, contents)\n /* eslint-enable jsx-a11y/interactive-supports-focus */\n\n );\n }\n }]);\n\n return Menu;\n}(React.Component);\n\n_defineProperty(Menu, \"propTypes\", propTypes);\n\n_defineProperty(Menu, \"defaultProps\", defaultProps);\n\n_defineProperty(Menu, \"Divider\", MenuDivider);\n\n_defineProperty(Menu, \"Header\", MenuHeader);\n\nexport default Menu;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"labelKey\", \"newSelectionPrefix\", \"options\", \"paginationText\", \"renderMenuItemChildren\", \"text\"];\nimport React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport Highlighter from './Highlighter';\nimport Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport { getOptionLabel, getOptionProperty } from '../utils';\nvar propTypes = {\n /**\n * Provides the ability to specify a prefix before the user-entered text to\n * indicate that the selection will be new. No-op unless `allowNew={true}`.\n */\n newSelectionPrefix: PropTypes.node,\n\n /**\n * Prompt displayed when large data sets are paginated.\n */\n paginationText: PropTypes.node,\n\n /**\n * Provides a hook for customized rendering of menu item contents.\n */\n renderMenuItemChildren: PropTypes.func\n};\nvar defaultProps = {\n newSelectionPrefix: 'New selection: ',\n paginationText: 'Display additional results...',\n renderMenuItemChildren: function renderMenuItemChildren(option, props, idx) {\n return /*#__PURE__*/React.createElement(Highlighter, {\n search: props.text\n }, getOptionLabel(option, props.labelKey));\n }\n};\n\nvar TypeaheadMenu = function TypeaheadMenu(props) {\n var labelKey = props.labelKey,\n newSelectionPrefix = props.newSelectionPrefix,\n options = props.options,\n paginationText = props.paginationText,\n renderMenuItemChildren = props.renderMenuItemChildren,\n text = props.text,\n menuProps = _objectWithoutProperties(props, _excluded);\n\n var renderMenuItem = function renderMenuItem(option, position) {\n var label = getOptionLabel(option, labelKey);\n var menuItemProps = {\n disabled: getOptionProperty(option, 'disabled'),\n label: label,\n option: option,\n position: position\n };\n\n if (option.customOption) {\n return /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {\n className: \"rbt-menu-custom-option\",\n key: position,\n label: label\n }), newSelectionPrefix, /*#__PURE__*/React.createElement(Highlighter, {\n search: text\n }, label));\n }\n\n if (option.paginationOption) {\n return /*#__PURE__*/React.createElement(Fragment, {\n key: \"pagination-item\"\n }, /*#__PURE__*/React.createElement(Menu.Divider, null), /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {\n className: \"rbt-menu-pagination-option\",\n label: paginationText\n }), paginationText));\n }\n\n return /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {\n key: position\n }), renderMenuItemChildren(option, props, position));\n };\n\n return (\n /*#__PURE__*/\n // Explictly pass `text` so Flow doesn't complain...\n React.createElement(Menu, _extends({}, menuProps, {\n text: text\n }), options.map(renderMenuItem))\n );\n};\n\nTypeaheadMenu.propTypes = propTypes;\nTypeaheadMenu.defaultProps = defaultProps;\nexport default TypeaheadMenu;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nvar _excluded = [\"children\", \"onRootClose\"],\n _excluded2 = [\"getInputProps\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, useState } from 'react';\nimport useRootClose from \"react-overlays/useRootClose\";\nimport Typeahead from '../core/Typeahead';\nimport ClearButton from './ClearButton';\nimport Loader from './Loader';\nimport Overlay from './Overlay';\nimport Token from './Token';\nimport TypeaheadInputMulti from './TypeaheadInputMulti';\nimport TypeaheadInputSingle from './TypeaheadInputSingle';\nimport TypeaheadMenu from './TypeaheadMenu';\nimport { getOptionLabel, isFunction, isSizeLarge, pick, preventInputBlur } from '../utils';\nimport { checkPropType, inputPropsType, sizeType } from '../propTypes';\nvar propTypes = {\n /**\n * Displays a button to clear the input when there are selections.\n */\n clearButton: PropTypes.bool,\n\n /**\n * Props to be applied directly to the input. `onBlur`, `onChange`,\n * `onFocus`, and `onKeyDown` are ignored.\n */\n inputProps: checkPropType(PropTypes.object, inputPropsType),\n\n /**\n * Bootstrap 4 only. Adds the `is-invalid` classname to the `form-control`.\n */\n isInvalid: PropTypes.bool,\n\n /**\n * Indicate whether an asynchronous data fetch is happening.\n */\n isLoading: PropTypes.bool,\n\n /**\n * Bootstrap 4 only. Adds the `is-valid` classname to the `form-control`.\n */\n isValid: PropTypes.bool,\n\n /**\n * Callback for custom input rendering.\n */\n renderInput: PropTypes.func,\n\n /**\n * Callback for custom menu rendering.\n */\n renderMenu: PropTypes.func,\n\n /**\n * Callback for custom menu rendering.\n */\n renderToken: PropTypes.func,\n\n /**\n * Specifies the size of the input.\n */\n size: sizeType\n};\nvar defaultProps = {\n clearButton: false,\n inputProps: {},\n isInvalid: false,\n isLoading: false,\n isValid: false,\n renderMenu: function renderMenu(results, menuProps, props) {\n return /*#__PURE__*/React.createElement(TypeaheadMenu, _extends({}, menuProps, {\n labelKey: props.labelKey,\n options: results,\n text: props.text\n }));\n },\n renderToken: function renderToken(option, props, idx) {\n return /*#__PURE__*/React.createElement(Token, {\n disabled: props.disabled,\n key: idx,\n onRemove: props.onRemove,\n option: option,\n tabIndex: props.tabIndex\n }, getOptionLabel(option, props.labelKey));\n }\n};\n\nfunction getOverlayProps(props) {\n return pick(props, ['align', 'dropup', 'flip', 'positionFixed']);\n}\n\nvar RootClose = function RootClose(_ref) {\n var children = _ref.children,\n onRootClose = _ref.onRootClose,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n rootElement = _useState2[0],\n attachRef = _useState2[1];\n\n useRootClose(rootElement, onRootClose, props);\n return children(attachRef);\n};\n\nvar TypeaheadComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(TypeaheadComponent, _React$Component);\n\n var _super = _createSuper(TypeaheadComponent);\n\n function TypeaheadComponent() {\n var _this;\n\n _classCallCheck(this, TypeaheadComponent);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"_referenceElement\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"referenceElementRef\", function (referenceElement) {\n _this._referenceElement = referenceElement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderInput\", function (inputProps, props) {\n var _this$props = _this.props,\n isInvalid = _this$props.isInvalid,\n isValid = _this$props.isValid,\n multiple = _this$props.multiple,\n renderInput = _this$props.renderInput,\n renderToken = _this$props.renderToken,\n size = _this$props.size;\n\n if (isFunction(renderInput)) {\n return renderInput(inputProps, props);\n }\n\n var commonProps = _objectSpread(_objectSpread({}, inputProps), {}, {\n isInvalid: isInvalid,\n isValid: isValid,\n size: size\n });\n\n if (!multiple) {\n return /*#__PURE__*/React.createElement(TypeaheadInputSingle, commonProps);\n }\n\n var labelKey = props.labelKey,\n onRemove = props.onRemove,\n selected = props.selected;\n return /*#__PURE__*/React.createElement(TypeaheadInputMulti, _extends({}, commonProps, {\n selected: selected\n }), selected.map(function (option, idx) {\n return renderToken(option, _objectSpread(_objectSpread({}, commonProps), {}, {\n labelKey: labelKey,\n onRemove: onRemove\n }), idx);\n }));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderMenu\", function (results, menuProps, props) {\n var _this$props2 = _this.props,\n emptyLabel = _this$props2.emptyLabel,\n id = _this$props2.id,\n maxHeight = _this$props2.maxHeight,\n newSelectionPrefix = _this$props2.newSelectionPrefix,\n paginationText = _this$props2.paginationText,\n renderMenu = _this$props2.renderMenu,\n renderMenuItemChildren = _this$props2.renderMenuItemChildren;\n return renderMenu(results, _objectSpread(_objectSpread({}, menuProps), {}, {\n emptyLabel: emptyLabel,\n id: id,\n maxHeight: maxHeight,\n newSelectionPrefix: newSelectionPrefix,\n paginationText: paginationText,\n renderMenuItemChildren: renderMenuItemChildren\n }), props);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderAux\", function (_ref2) {\n var onClear = _ref2.onClear,\n selected = _ref2.selected;\n var _this$props3 = _this.props,\n clearButton = _this$props3.clearButton,\n disabled = _this$props3.disabled,\n isLoading = _this$props3.isLoading,\n size = _this$props3.size;\n var content;\n\n if (isLoading) {\n content = /*#__PURE__*/React.createElement(Loader, null);\n } else if (clearButton && !disabled && selected.length) {\n content = /*#__PURE__*/React.createElement(ClearButton, {\n onClick: onClear,\n onFocus: function onFocus(e) {\n // Prevent the main input from auto-focusing again.\n e.stopPropagation();\n },\n onMouseDown: preventInputBlur,\n size: size\n });\n }\n\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: cx('rbt-aux', {\n 'rbt-aux-lg': isSizeLarge(size)\n })\n }, content) : null;\n });\n\n return _this;\n }\n\n _createClass(TypeaheadComponent, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n instanceRef = _this$props4.instanceRef,\n open = _this$props4.open,\n options = _this$props4.options,\n style = _this$props4.style;\n return /*#__PURE__*/React.createElement(Typeahead, _extends({}, this.props, {\n options: options,\n ref: instanceRef\n }), function (_ref3) {\n var getInputProps = _ref3.getInputProps,\n props = _objectWithoutProperties(_ref3, _excluded2);\n\n var hideMenu = props.hideMenu,\n isMenuShown = props.isMenuShown,\n results = props.results;\n\n var auxContent = _this2._renderAux(props);\n\n return /*#__PURE__*/React.createElement(RootClose, {\n disabled: open || !isMenuShown,\n onRootClose: hideMenu\n }, function (ref) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cx('rbt', {\n 'has-aux': !!auxContent\n }, className),\n ref: ref,\n style: _objectSpread(_objectSpread({}, style), {}, {\n outline: 'none',\n position: 'relative'\n }),\n tabIndex: -1\n }, _this2._renderInput(_objectSpread(_objectSpread({}, getInputProps(_this2.props.inputProps)), {}, {\n referenceElementRef: _this2.referenceElementRef\n }), props), /*#__PURE__*/React.createElement(Overlay, _extends({}, getOverlayProps(_this2.props), {\n isMenuShown: isMenuShown,\n referenceElement: _this2._referenceElement\n }), function (menuProps) {\n return _this2._renderMenu(results, menuProps, props);\n }), auxContent, isFunction(children) ? children(props) : children);\n });\n });\n }\n }]);\n\n return TypeaheadComponent;\n}(React.Component);\n\n_defineProperty(TypeaheadComponent, \"propTypes\", propTypes);\n\n_defineProperty(TypeaheadComponent, \"defaultProps\", defaultProps);\n\nexport default /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(TypeaheadComponent, _extends({}, props, {\n instanceRef: ref\n }));\n});","import { withAsync } from '../behaviors/async';\nimport Typeahead from './Typeahead';\nexport default withAsync(Typeahead);"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","root","objectProto","objectToString","nativeMax","nativeMin","now","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","isObject","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","value","type","isObjectLike","isSymbol","other","isBinary","lodash_debounce","useForceUpdate","_useReducer","useReducer","state","dispatch","usePrevious","ref","useRef","useEffect","fastDeepEqual","equal","a","b","length","keys","key","BACKSPACE","TAB","RETURN","ESC","UP","RIGHT","DOWN","DEFAULT_LABELKEY","ALIGN","SIZE","getStringLabelKey","labelKey","idCounter","head","arr","isFunction","isString","noop","pick","obj","k","uniqueId","prefix","valuesPolyfill","accum","values","getOptionLabel","option","optionLabel","invariant","addCustomOption","results","props","allowNew","text","o","getOptionProperty","map","diacriticsMap","ii","letters","jj","stripDiacritics","str","warned","warn","falseToWarn","message","_len","_key","warning","isMatch","input","string","searchStr","defaultFilterBy","filterBy","multiple","selected","isEqual","fields","field","getDisplayName","Component","CASE_INSENSITIVE","COMBINING_MARKS","escapeStringRegexp","getMatchBounds","subject","search","matches","start","matchLength","_ii","getHintText","activeIndex","initialItem","isFocused","isMenuShown","initialItemStr","bounds","getMenuItemId","id","position","_excluded","_excluded2","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread","target","i","source","_defineProperty","getInputProps","_ref","onFocus","placeholder","rest","_objectWithoutProperties","_cx","_ref2","className","inputProps","cx","e","getInputText","activeItem","selectedItem","getIsOnlyResult","highlightOnlyResult","getTruncatedOptions","maxResults","skipDisabledOptions","currentIndex","keyCode","items","newIndex","getUpdatedActiveIndex","isSelectable","inputNode","isShown","open","minLength","showMenu","preventInputBlur","isSizeLarge","size","isSizeSmall","validateSelectedPropChange","prevSelected","uncontrolledToControlled","controlledToUncontrolled","from","to","precedent","TypeaheadContext","createContext","useTypeaheadContext","useContext","inputPropKeys","propKeys","contextKeys","TypeaheadManager","children","onAdd","onInitialItemChange","onKeyDown","onMenuToggle","prevProps","handleKeyDown","childProps","contextValue","React","INPUT_PROPS_BLACKLIST","sizeType","PropTypes","checkPropType","validator","callback","propName","componentName","caseSensitiveType","caseSensitive","deprecated","reason","defaultInputValueType","defaultInputValue","defaultSelected","name","defaultSelectedType","highlightOnlyResultType","ignoreDiacriticsType","ignoreDiacritics","inputPropsType","alt","prop","msg","isRequiredForA11y","labelKeyType","optionType","selectedType","onChange","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","propTypes","defaultProps","getInitialState","defaultOpen","clearTypeahead","hideMenu","_getInitialState","shownResults","toggleMenu","triggerInputChange","inputValue","Typeahead","_React$Component","_inherits","_super","_this","_classCallCheck","_assertThisInitialized","item","_this$props","onInputChange","shouldClearSelections","_getInitialState2","_this$props2","selection","_createClass","prevState","_this$props3","_this$props4","otherProps","mergedPropsAndState","paginate","cb","shouldPaginate","_results$push2","_extends","useAsync","delay","emptyLabel","isLoading","onSearch","promptText","searchText","useCache","cacheRef","handleSearchDebouncedRef","queryRef","forceUpdate","handleSearch","useCallback","query","getEmptyLabel","handleInputChange","cachedQuery","withAsync","AsyncTypeahead","forwardRef","contains","context","node","canUseDOM","optionsSupported","onceSupported","addEventListener","eventName","handler","once","capture","wrappedHandler","onceHandler","event","removeEventListener","listen","useCommittedRef","useEventCallback","fn","ownerDocument","safeFindDOMNode","componentOrElement","ReactDOM","escapeKeyCode","isLeftClickEvent","isModifiedEvent","getRefTarget","useRootClose","onRootClose","_temp","disabled","_ref$clickTrigger","clickTrigger","preventMouseRootCloseRef","onClose","handleMouseCapture","currentTarget","handleMouse","handleKeyUp","currentEvent","doc","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","el","remove","ClearButton","label","_onClick","_onKeyDown","Loader","hasToStringTag","toStr","isStandardArguments","isLegacyArguments","supportsStandardArguments","isArguments","functionsHaveConfigurableNames","require$$0","$Object","$TypeError","module","implementation","supportsDescriptors","require$$1","$gOPD","polyfill","descriptor","calls","getPolyfill","gOPD","defineProperty","TypeErr","getProto","regex","shim","proto","define","callBind","require$$2","require$$3","require$$4","flagsBound","regexp_prototype_flags","objectKeys","is","isRegex","flags","isDate","require$$5","getTime","deepEqual","actual","expected","opts","objEquiv","isUndefinedOrNull","isBuffer","x","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","ka","kb","deepEqual_1","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getType","getStyleComputedProperty","element","property","window","css","getParentNode","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","isIE11","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nodeName","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","end","range","commonAncestorContainer","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","getSize","body","computedStyle","getWindowSizes","document","classCallCheck","instance","Constructor","createClass","defineProperties","protoProps","staticProps","getClientRect","offsets","getBoundingClientRect","sizes","width","height","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","offset","isFixed","parentNode","getFixedPositionOffsetParent","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","y","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","check","findIndex","cur","match","runModifiers","modifiers","data","ends","modifiersToRun","update","isModifierEnabled","modifierName","enabled","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","enableEventListeners","removeEventListeners","disableEventListeners","isNumeric","n","setStyles","unit","setAttributes","attributes","applyStyle","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","left","top","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","arrow","_data$offsets$arrow","arrowElement","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","index","BEHAVIORS","flip","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","keepTogether","toValue","split","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","transform","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Defaults","Popper","eventsEnabled","ManagerReferenceNodeContext","unwrapArray","arg","safeInvoke","setRef","initialStyle","initialArrowStyle","InnerPopper","_inheritsLoose","popperNode","arrowNode","_assertThisInitialize","referenceElement","PopperJS","_proto","React.Component","_objectWithoutPropertiesLoose","React.createElement","referenceNode","SafeElement","getModifiers","align","PLACEMENT","getPlacement","_ref3","dropup","Overlay","positionFixed","_ref4","popperProps","useToken","onBlur","onClick","onRemove","_useState","useState","_useState2","_slicedToArray","active","setActive","_useState3","_useState4","rootElement","attachRef","handleActiveChange","isActive","handleBlur","handleClick","handleFocus","handleRemove","withToken","displayName","WrappedToken","InteractiveToken","tabIndex","StaticToken","href","classnames","Token","readOnly","Token$1","interpolateStyle","attr","subattr","dir","copyStyles","hintNode","inputStyle","defaultShouldSelect","shouldSelectHint","useHint","shouldSelect","_useTypeaheadContext","hintText","selectHintOnEnter","hintRef","cloneElement","Hint","_useHint","child","Input","withClassNames","WrappedComponent","isInvalid","isValid","TypeaheadInputMulti","lastToken","inputClassName","referenceElementRef","TypeaheadInputMulti$1","TypeaheadInputSingle","inputRef","Highlighter","_React$PureComponent","highlightClassName","matchCount","remaining","highlighterChildren","nonMatch","isElement","canOverflow","skipOverflowHiddenElements","getFrameElement","isHiddenByFrame","frame","isScrollable","style","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","compute","scrollMode","block","inline","boundary","checkBoundary","frames","cursor","viewportWidth","viewportHeight","viewportX","viewportY","_target$getBoundingCl","targetHeight","targetWidth","targetTop","targetRight","targetBottom","targetLeft","targetBlock","targetInline","computations","_frame$getBoundingCli","right","bottom","frameStyle","borderLeft","borderTop","borderRight","borderBottom","blockScroll","inlineScroll","scrollbarWidth","scrollbarHeight","isOptionsObject","defaultBehavior","actions","behavior","canSmoothScroll","getOptions","scrollIntoView","targetIsDetached","computeOptions","useItem","isOnlyResult","onActiveItemChange","onMenuItemClick","setItem","itemRef","withItem","WrappedMenuItem","BaseMenuItem","MenuItem","MenuDivider","MenuHeader","Menu","inputHeight","scheduleUpdate","innerRef","maxHeight","contents","Children","idx","TypeaheadMenu","newSelectionPrefix","paginationText","renderMenuItemChildren","menuProps","renderMenuItem","menuItemProps","Fragment","getOverlayProps","RootClose","TypeaheadComponent","renderInput","renderToken","commonProps","renderMenu","onClear","clearButton","content","_this2","instanceRef","auxContent"],"mappings":"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IACX,EAAG,CACD,KAAM,IACN,QAAS,gCACX,EAAG,CACD,KAAM,IACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,EAAG,CACD,KAAM,IACN,QAAS,sBACX,EAAG,CACD,KAAM,IACN,QAAS,OACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,EAAG,CACD,KAAM,IACN,QAAS,oBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,UACX,EAAG,CACD,KAAM,IACN,QAAS,kBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,IACX,EAAG,CACD,KAAM,KACN,QAAS,IACX,EAAG,CACD,KAAM,IACN,QAAS,YACX,EAAG,CACD,KAAM,IACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mBACX,EAAG,CACD,KAAM,IACN,QAAS,mBACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,oCACX,EAAG,CACD,KAAM,IACN,QAAS,UACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,YACX,EAAG,CACD,KAAM,IACN,QAAS,OACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,EAAG,CACD,KAAM,IACN,QAAS,qCACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,KACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,IACX,EAAG,CACD,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71]}