{"version":3,"file":"vendors-node_modules_estee_elc-dropdown_src_views_Dropdown_tsx.18567c3374e303a80c6c.bundle.js","mappings":"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","sources":["webpack://elc-service-prodcat/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://elc-service-prodcat/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://elc-service-prodcat/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://elc-service-prodcat/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://elc-service-prodcat/./node_modules/compute-scroll-into-view/dist/index.module.js","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/node_modules/downshift/dist/downshift.esm.js","webpack://elc-service-prodcat/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/node_modules/@estee/elc-icons/src/views/Icon.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/node_modules/@estee/elc-icons/src/views/ArrowIcon.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-inputs/src/views/InputWrapper.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-inputs/src/theme/default-theme.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-inputs/src/views/StyledLabel.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-inputs/src/views/FloatingLabelInput.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/src/theme/default-theme.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/src/views/DropdownItem.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/src/views/DropdownItems.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-dropdown/src/views/Dropdown.tsx","webpack://elc-service-prodcat/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://elc-service-prodcat/./node_modules/prop-types/index.js","webpack://elc-service-prodcat/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://elc-service-prodcat/./node_modules/react-is/cjs/react-is.production.min.js","webpack://elc-service-prodcat/./node_modules/react-is/index.js"],"sourcesContent":["export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeighte||o>t&&l=e&&d>=n?o-t-r:l>e&&dn?l-e+i:0}export default function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x=\"start\"===d||\"nearest\"===d?y:\"end\"===d?M:y+b/2,I=\"center\"===u?V+H/2:\"end\"===u?E:V,C=[],T=0;T=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J=\"offsetWidth\"in k?k.offsetWidth-k.clientWidth-j-z:0,K=\"offsetHeight\"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F=\"start\"===d?x:\"end\"===d?x-g:\"nearest\"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G=\"start\"===u?I:\"center\"===u?I-m/2:\"end\"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F=\"start\"===d?x-R-q:\"end\"===d?x-Y+A+K:\"nearest\"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G=\"start\"===u?I-L-j:\"center\"===u?I-(L+O/2)+J/2:\"end\"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}\n//# sourceMappingURL=index.module.js.map\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport { cloneElement, Component, useCallback, useReducer, useState, useEffect, useRef } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (node === null) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child) {\n return parent === child || parent.contains && parent.contains(child);\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n selectedItem = _ref2.selectedItem,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount,\n itemToString = _ref2.itemToString;\n\n if (!isOpen) {\n return selectedItem ? itemToString(selectedItem) : '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount) {\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = itemsLastIndex;\n } else if (newIndex > itemsLastIndex) {\n newIndex = 0;\n }\n\n return newIndex;\n}\n\nvar cleanupStatus = debounce(function () {\n getStatusDiv().textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus();\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar Downshift =\n/*#__PURE__*/\nfunction () {\n var Downshift =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this = _Component.call(this, _props) || this;\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), {}, stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!_this.isControlledProp(key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), {}, newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"refKey\", \"ref\"]);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n _this2.setHighlightedIndex(getNextWrappingIndex(1, _this2.getState().highlightedIndex, itemCount), {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n _this3.setHighlightedIndex(getNextWrappingIndex(-1, _this3.getState().highlightedIndex, itemCount), {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset({\n type: keyDownEscape,\n selectedItem: null,\n inputValue: ''\n });\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n this.highlightFirstOrLastIndex(event, true, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n this.highlightFirstOrLastIndex(event, false, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onPress = _ref3.onPress,\n onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"]);\n\n var _this$getState3 = _this.getState(),\n isOpen = _this$getState3.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, {}, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if ( _this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput,\n onChangeText = _ref4.onChangeText,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"]);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n onChangeKey = 'onChange';\n\n var _this$getState4 = _this.getState(),\n inputValue = _this$getState4.inputValue,\n isOpen = _this$getState4.isOpen,\n highlightedIndex = _this$getState4.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n /* istanbul ignore if (react-native) */\n\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, {}, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, [\"refKey\", \"ref\"]);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick,\n onPress = _ref7.onPress,\n index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"]);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, {}, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, {}, otherStateToSet);\n }, function () {\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen,\n highlightedIndex = _this$getState5.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState(stateToMerge) {\n var _this4 = this;\n\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return Object.keys(stateToMerge).reduce(function (state, key) {\n state[key] = _this4.isControlledProp(key) ? _this4.props[key] : stateToMerge[key];\n return state;\n }, {});\n }\n /**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n ;\n\n _proto.isControlledProp = function isControlledProp(key) {\n return this.props[key] !== undefined;\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, this.getState().highlightedIndex, itemCount);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.highlightFirstOrLastIndex = function highlightFirstOrLastIndex(event, first, otherStateToSet) {\n var itemsLastIndex = this.getItemCount() - 1;\n\n if (itemsLastIndex < 0 || !this.getState().isOpen) {\n return;\n }\n\n event.preventDefault();\n this.setHighlightedIndex(first ? 0 : itemsLastIndex, otherStateToSet);\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState6 = this.getState(),\n highlightedIndex = _this$getState6.highlightedIndex,\n inputValue = _this$getState6.inputValue,\n selectedItem = _this$getState6.selectedItem,\n isOpen = _this$getState6.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this5 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n var targetWithinDownshift = function (target, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n var document = _this5.props.environment.document;\n return [_this5._rootNode, _this5._menuNode].some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));\n });\n }; // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n\n\n var onMouseDown = function () {\n _this5.isMouseDown = true;\n };\n\n var onMouseUp = function (event) {\n _this5.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target);\n\n if (!contextWithinDownshift && _this5.getState().isOpen) {\n _this5.reset({\n type: mouseUp\n }, function () {\n return _this5.props.onOuterClick(_this5.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function () {\n _this5.isTouchMove = false;\n };\n\n var onTouchMove = function () {\n _this5.isTouchMove = true;\n };\n\n var onTouchEnd = function (event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, false);\n\n if (!_this5.isTouchMove && !contextWithinDownshift && _this5.getState().isOpen) {\n _this5.reset({\n type: touchEnd\n }, function () {\n return _this5.props.onOuterClick(_this5.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this5.internalClearTimeouts();\n\n _this5.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n return scrollWhenOpen || currentHighlightedIndex !== prevHighlightedIndex;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if ( this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (this.isControlledProp('selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n this.updateStatus();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nfunction validateControlledUnchanged(prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n ['selectedItem', 'isOpen', 'inputValue', 'highlightedIndex'].forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n}\n\nfunction getElementIds(generateDefaultId, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId;\n\n var uniqueId = id === undefined ? \"downshift-\" + generateDefaultId() : id;\n return {\n labelId: labelId || uniqueId + \"-label\",\n menuId: menuId || uniqueId + \"-menu\",\n getItemId: getItemId || function (index) {\n return uniqueId + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || uniqueId + \"-toggle-button\"\n };\n}\n\nfunction getNextWrappingIndex$1(moveAmount, baseIndex, itemsLength, circular) {\n if (baseIndex === -1) {\n return moveAmount > 0 ? 0 : itemsLength - 1;\n }\n\n var nextIndex = baseIndex + moveAmount;\n\n if (nextIndex < 0) {\n return circular ? itemsLength - 1 : 0;\n }\n\n if (nextIndex >= itemsLength) {\n return circular ? 0 : itemsLength - 1;\n }\n\n return nextIndex;\n}\n\nfunction getItemIndexByCharacterKey(keysSoFar, highlightedIndex, items, itemToStringParam) {\n var newHighlightedIndex = -1;\n var itemStrings = items.map(function (item) {\n return itemToStringParam(item).toLowerCase();\n });\n var startPosition = highlightedIndex + 1;\n newHighlightedIndex = itemStrings.slice(startPosition).findIndex(function (itemString) {\n return itemString.startsWith(keysSoFar);\n });\n\n if (newHighlightedIndex > -1) {\n return newHighlightedIndex + startPosition;\n } else {\n return itemStrings.slice(0, startPosition).findIndex(function (itemString) {\n return itemString.startsWith(keysSoFar);\n });\n }\n}\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n // eslint-disable-next-line no-param-reassign\n prevState[key] = key in props ? props[key] : state[key];\n return prevState;\n }, {});\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction getPropTypesValidator(caller, propTypes) {\n // istanbul ignore next\n return function (options) {\n if (options === void 0) {\n options = {};\n }\n\n Object.entries(propTypes).forEach(function (_ref2) {\n var key = _ref2[0];\n PropTypes.checkPropTypes(propTypes, options, key, caller.name);\n });\n };\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction invokeOnChangeHandler(propKey, props, state, changes) {\n var handler = \"on\" + capitalizeString(propKey) + \"Change\";\n\n if (props[handler] && changes[propKey] !== undefined && changes[propKey] !== state[propKey]) {\n props[handler](changes);\n }\n}\n\nfunction callOnChangeProps(props, state, changes) {\n Object.keys(state).forEach(function (stateKey) {\n invokeOnChangeHandler(stateKey, props, state, changes);\n });\n\n if (props.onStateChange && changes !== undefined) {\n props.onStateChange(changes);\n }\n}\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var enhancedReducer = useCallback(function (state, action) {\n state = getState(state, action.props);\n var stateReducer = action.props.stateReducer;\n var changes = reducer(state, action);\n var newState = stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n callOnChangeProps(action.props, state, newState);\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar lastId = 0; // istanbul ignore next\n\nvar genId = function () {\n return ++lastId;\n};\n/**\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n * Taken from @reach/auto-id\n * @see https://github.com/reach/reach-ui/blob/6e9dbcf716d5c9a3420e062e5bac1ac4671d01cb/packages/auto-id/src/index.js\n */\n// istanbul ignore next\n\n\nfunction useId() {\n var _useState = useState(null),\n id = _useState[0],\n setId = _useState[1];\n\n useEffect(function () {\n return setId(genId());\n }, []);\n return id;\n}\n/**\n * Checks if nextElement receives focus after the blur event.\n *\n * @param {FocusEvent} event The blur event.\n * @param {Element} nextElement The element to check that receive focus next.\n * @returns {boolean} If the focus lands on nextElement.\n */\n\n\nfunction focusLandsOnElement(event, nextElement) {\n return event.relatedTarget === nextElement || // https://github.com/downshift-js/downshift/issues/832 - workaround for Firefox.\n event.nativeEvent && (nextElement === event.nativeEvent.explicitOriginalTarget || nextElement.contains(event.nativeEvent.explicitOriginalTarget));\n}\n\nvar defaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null\n};\n\nfunction getA11yStatusMessage$1(_ref) {\n var isOpen = _ref.isOpen,\n items = _ref.items;\n\n if (!items) {\n return '';\n }\n\n var resultCount = items.length;\n\n if (isOpen) {\n if (resultCount === 0) {\n return 'No results are available';\n }\n\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n\nfunction getA11ySelectionMessage(_ref2) {\n var selectedItem = _ref2.selectedItem,\n itemToString = _ref2.itemToString;\n return itemToString(selectedItem) + \" has been selected.\";\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex; // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n if (initialHighlightedIndex !== undefined && highlightedIndex > -1) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex$1(offset, items.indexOf(selectedItem), items.length, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n\nfunction getDefaultValue(props, propKey) {\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue(props, propKey) {\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue(props, propKey);\n}\n\nfunction getInitialState(props) {\n var selectedItem = getInitialValue(props, 'selectedItem');\n var highlightedIndex = getInitialValue(props, 'highlightedIndex');\n var isOpen = getInitialValue(props, 'isOpen');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n keysSoFar: ''\n };\n}\n\nvar propTypes = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 6;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 7;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 11;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 12;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionClearKeysSoFar = process.env.NODE_ENV !== \"production\" ? '__function_clear_keys_so_far__' : 20;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonClick: ToggleButtonClick,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionClearKeysSoFar: FunctionClearKeysSoFar,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case ItemClick:\n changes = {\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex$1(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex$1(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: 0\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: props.items.length - 1\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownEnter:\n changes = _extends({\n isOpen: getDefaultValue(props, 'isOpen'),\n highlightedIndex: getDefaultValue(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var keysSoFar = \"\" + state.keysSoFar + lowercasedKey;\n var highlightedIndex = getItemIndexByCharacterKey(keysSoFar, state.highlightedIndex, props.items, props.itemToString);\n changes = _extends({\n keysSoFar: keysSoFar\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _keysSoFar = \"\" + state.keysSoFar + _lowercasedKey;\n\n var itemIndex = getItemIndexByCharacterKey(_keysSoFar, state.selectedItem ? props.items.indexOf(state.selectedItem) : -1, props.items, props.itemToString);\n changes = _extends({\n keysSoFar: _keysSoFar\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n {\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1)\n };\n break;\n }\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1)\n };\n break;\n\n case ToggleButtonClick:\n case FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n case FunctionClearKeysSoFar:\n changes = {\n keysSoFar: ''\n };\n break;\n\n case FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n isOpen: getDefaultValue(props, 'isOpen'),\n selectedItem: getDefaultValue(props, 'selectedItem')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, {}, changes);\n}\n/* eslint-enable complexity */\n\nvar validatePropTypes = process.env.NODE_ENV === 'production' ?\n/* istanbul ignore next */\nnull : getPropTypesValidator(useSelect, propTypes);\nvar defaultProps = {\n itemToString: itemToString,\n stateReducer: function stateReducer(s, a) {\n return a.changes;\n },\n getA11yStatusMessage: getA11yStatusMessage$1,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n environment: typeof window === 'undefined'\n /* istanbul ignore next (ssr) */\n ? {} : window\n};\nuseSelect.stateChangeTypes = stateChangeTypes$1;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n validatePropTypes(userProps);\n } // Props defaults and destructuring.\n\n\n var props = _extends({}, defaultProps, {}, userProps);\n\n var items = props.items,\n itemToString = props.itemToString,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment; // Initial state depending on controlled props.\n\n var initialState = getInitialState(props); // Reducer init.\n\n var _useEnhancedReducer = useEnhancedReducer(downshiftSelectReducer, initialState, props),\n _useEnhancedReducer$ = _useEnhancedReducer[0],\n isOpen = _useEnhancedReducer$.isOpen,\n highlightedIndex = _useEnhancedReducer$.highlightedIndex,\n selectedItem = _useEnhancedReducer$.selectedItem,\n keysSoFar = _useEnhancedReducer$.keysSoFar,\n dispatchWithoutProps = _useEnhancedReducer[1];\n\n var dispatch = function (action) {\n return dispatchWithoutProps(_extends({\n props: props\n }, action));\n }; // IDs generation.\n\n\n var _getElementIds = getElementIds(useId, props),\n labelId = _getElementIds.labelId,\n getItemId = _getElementIds.getItemId,\n menuId = _getElementIds.menuId,\n toggleButtonId = _getElementIds.toggleButtonId;\n /* Refs */\n\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef();\n itemRefs.current = [];\n var isInitialMount = useRef(true);\n var shouldScroll = useRef(true);\n var clearTimeout = useRef(null);\n /* Effects */\n\n /* Sets a11y status message on changes in isOpen. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11yStatusMessage({\n isOpen: isOpen,\n items: items,\n selectedItem: selectedItem,\n itemToString: itemToString\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMount.current) {\n return;\n }\n\n setStatus(getA11ySelectionMessage({\n isOpen: isOpen,\n items: items,\n selectedItem: selectedItem,\n itemToString: itemToString\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItem]);\n /* Sets cleanup for the keysSoFar after 500ms. */\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n if (isInitialMount.current) {\n clearTimeout.current = debounce(function () {\n dispatch({\n type: FunctionClearKeysSoFar\n });\n }, 500);\n }\n\n if (!keysSoFar) {\n return;\n }\n\n clearTimeout.current(); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [keysSoFar]);\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMount.current) {\n // Unless it was initialised as open.\n if (initialIsOpen || defaultIsOpen || isOpen) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n // istanbul ignore next\n\n\n if (isOpen) {\n menuRef.current.focus(); // Focus toggleButton on close.\n } else if (environment.document.activeElement === menuRef.current) {\n toggleButtonRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n /* Scroll on highlighted item if change comes from keyboard. */\n\n useEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !itemRefs.current.length) {\n return;\n }\n\n if (shouldScroll.current === false) {\n shouldScroll.current = true;\n } else {\n scrollIntoView(itemRefs.current[highlightedIndex], menuRef.current);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n /* Make initial ref false. */\n\n useEffect(function () {\n isInitialMount.current = false;\n }, []);\n /* Event handler functions */\n\n var menuKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n Tab: function Tab(event) {\n // The exception that calls MenuBlur.\n // istanbul ignore next\n if (event.shiftKey) {\n dispatch({\n type: MenuBlur\n });\n }\n }\n };\n var toggleButtonKeyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp\n });\n }\n }; // Event handlers.\n\n var menuHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key\n });\n }\n }; // Focus going back to the toggleButton is something we control (Escape, Enter, Click).\n // We are toggleing special actions for these cases in reducer, not MenuBlur.\n // Since Shift-Tab also lands focus on toggleButton, we will handle it as exception and call MenuBlur.\n\n\n var menuHandleBlur = function (event) {\n if (!focusLandsOnElement(event, toggleButtonRef.current)) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function () {\n dispatch({\n type: MenuMouseLeave\n });\n };\n\n var toggleButtonHandleClick = function () {\n dispatch({\n type: ToggleButtonClick\n });\n };\n\n var toggleButtonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n\n var itemHandleMouseMove = function (index) {\n if (index === highlightedIndex) {\n return;\n }\n\n shouldScroll.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function (index) {\n dispatch({\n type: ItemClick,\n index: index\n });\n }; // returns\n\n\n return {\n // prop getters.\n getToggleButtonProps: function getToggleButtonProps(_temp2) {\n var _extends3;\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onClick = _ref2.onClick,\n onKeyDown = _ref2.onKeyDown,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"]);\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = isOpen, _extends3['aria-labelledby'] = labelId + \" \" + toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n return toggleProps;\n },\n getLabelProps: function getLabelProps(labelProps) {\n return _extends({\n id: labelId,\n htmlFor: toggleButtonId\n }, labelProps);\n },\n getMenuProps: function getMenuProps(_temp) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onKeyDown = _ref.onKeyDown,\n onBlur = _ref.onBlur,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"onKeyDown\", \"onBlur\", \"onMouseLeave\", \"refKey\", \"ref\"]);\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = labelId, _extends2.tabIndex = -1, _extends2), highlightedIndex > -1 && {\n 'aria-activedescendant': getItemId(highlightedIndex)\n }, {\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur),\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave)\n }, rest);\n },\n getItemProps: function getItemProps(_temp3) {\n var _extends4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n item = _ref3.item,\n index = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onClick = _ref3.onClick,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\"]);\n\n var itemIndex = getItemIndex(index, item, items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current.push(itemNode);\n }\n }), _extends4.role = 'option', _extends4), itemIndex === highlightedIndex && {\n 'aria-selected': true\n }, {\n id: getItemId(itemIndex)\n }, rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, function () {\n return itemHandleMouseMove(itemIndex);\n });\n itemProps.onClick = callAllEventHandlers(onClick, function () {\n return itemHandleClick(itemIndex);\n });\n }\n\n return itemProps;\n },\n // actions.\n toggleMenu: function toggleMenu() {\n dispatch({\n type: FunctionToggleMenu\n });\n },\n openMenu: function openMenu() {\n dispatch({\n type: FunctionOpenMenu\n });\n },\n closeMenu: function closeMenu() {\n dispatch({\n type: FunctionCloseMenu\n });\n },\n setHighlightedIndex: function setHighlightedIndex(newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n },\n selectItem: function selectItem(newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n },\n reset: function reset() {\n dispatch({\n type: FunctionReset\n });\n },\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n}\n\nexport default Downshift;\nexport { resetIdCounter, useSelect };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import * as React from 'react';\nimport { Colors } from '@estee/elc-base-theme';\nimport styled from 'styled-components';\nimport * as classnames from 'classnames';\n\nexport interface IIconProps {\n className: string;\n size: string;\n width?: number;\n height?: number;\n image?: string;\n color?: string;\n background?: string;\n transform?: string;\n 'aria-label'?: string;\n}\n\ninterface ISizes {\n [key: string]: number;\n}\n\nexport const SIZES: ISizes = {\n xsmall: 10,\n small: 16,\n medium: 20,\n large: 24,\n xlarge: 60,\n xxlarge: 90\n};\n\nconst IconPlaceholder = styled.div`\n cursor: pointer;\n width: ${props =>\n props.theme.size !== 'custom' ? SIZES[props.theme.size] : props.theme.width}px;\n height: ${props =>\n props.theme.size !== 'custom' ? SIZES[props.theme.size] : props.theme.height}px;\n transform: ${props => (props.theme.transform ? props.theme.transform : '')};\n`;\n\nconst MaskIconPlaceholder = styled(IconPlaceholder)`\n background-color: ${props => (props.theme.color ? props.theme.color : Colors.black)};\n mask: ${props => props.theme.image && props.theme.image} no-repeat center;\n`;\n\nconst BackgroundIconPlaceholder = styled(IconPlaceholder)`\n background: ${props => props.theme.background && props.theme.background} no-repeat center;\n`;\n\nconst Icon = (props: IIconProps) => {\n const { className, 'aria-label': ariaLabel, ...theme } = props;\n const genericIconClassname = 'elc-icon js-icon';\n\n return theme.image ? (\n \n ) : (\n \n );\n};\n\nexport { Icon };\n","import * as React from 'react';\nimport * as classNames from 'classnames';\nimport { Icon } from './Icon';\n\nexport interface IArrowIconProps {\n isOpen: boolean;\n className?: string;\n}\n\nconst ArrowIcon = (props: IArrowIconProps) => {\n const className = classNames('elc-arrow-icon', props.className);\n const image = `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' preserveAspectRatio='none' stroke-width='1px' %3E%3Cpath d='M1,6 L10,15 L19,6' /%3E%3C/svg%3E\")`;\n\n return (\n \n );\n};\n\nexport { ArrowIcon };\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nexport interface IStyledInput {\n smallInput?: boolean;\n left?: boolean;\n right?: boolean;\n}\n\nexport type InputWrapperType = React.ComponentType>;\nexport const InputWrapper: InputWrapperType = styled.div`\n width: 100%;\n display: inline-block;\n margin: 0;\n vertical-align: top;\n`;\nInputWrapper.displayName = 'InputWrapper';\n\nexport const InfoWrapper: React.ComponentType = styled.div`\n text-align: right;\n font-style: italic;\n padding-right: 10px;\n\n [dir='rtl'] & {\n text-align: left;\n }\n`;\nInfoWrapper.displayName = 'InfoWrapper';\n","import { Colors } from '@estee/elc-base-theme';\n\nexport const inputTheme = () => `\n background: ${Colors.white};\n border-color: ${Colors.blackDisabledEmphasis};\n border-radius: 4px;\n`;\n\nexport const disabledInputTheme = () => `\n background: ${Colors.white};\n color: ${Colors.primary500};\n border-color: ${Colors.blackDisabledEmphasis};\n border-radius: 4px;\n`;\n\nexport const focusInputTheme = () => `\n border-color: ${Colors.black};\n outline-width: 0;\n`;\n\nexport const errorInputTheme = () => `\n border-color: ${Colors.danger};\n color: ${Colors.danger};\n`;\n\nexport const floatingLabelTheme = () => `\n background: ${Colors.white};\n border-top-color: ${Colors.white};\n`;\n\nexport const errorFloatingLabelTheme = () => `\n color: ${Colors.danger};\n`;\n\nexport const AlertIconTheme = () => `\n fill: ${Colors.danger};\n`;\n\nexport const ValidIconTheme = () => `\n fill: ${Colors.success};\n`;\n\nexport const EyeIconTheme = () => `\n fill: ${Colors.primary700};\n`;\n\n//StyledLabel\nexport const TextBackgroundColorTheme = () => `\n background-color: ${Colors.white};\n`;\n\nexport const ErrorTextTheme = () => `\n color: ${Colors.danger};\n`;\n\nexport const StyledLabelMovedUpTheme = `\n font-size: 12px;\n`;\n\nexport const floatingLabelRequiredWrapperTheme = `\n &:after {\n content: '*'\n }\n`;\n","import * as classnames from 'classnames';\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { Body1 } from '@estee/elc-typography';\nimport {\n TextBackgroundColorTheme,\n ErrorTextTheme,\n StyledLabelMovedUpTheme\n} from '../theme/default-theme';\n\nexport interface IMarkAsError {\n markAsError?: boolean;\n}\n\nconst StyledLabelText = styled(Body1)`\n line-height: 26px;\n`;\n\nconst RelativePositionedTextWrapper = styled('span')<\n IMarkAsError & React.HtmlHTMLAttributes\n>`\n position: relative;\n ${TextBackgroundColorTheme} ${({ markAsError }) =>\n markAsError &&\n css`\n ${ErrorTextTheme};\n `};\n`;\n\nconst Label: React.FunctionComponent = props => {\n const labelClassName = classnames(\n 'elc-floating-label-string',\n 'js-floating-label-string',\n props.className\n );\n\n return (\n \n \n {props.children}\n \n \n );\n};\n\nconst moveLabelUpCss = ({\n moveLabelUp,\n readOnly\n}: {\n moveLabelUp: boolean;\n readOnly: boolean;\n}): string => {\n if (moveLabelUp) {\n return `\n ${StyledLabelMovedUpTheme}\n text-transform: capitalize;\n background: transparent;\n opacity: 1;\n top: 0;\n transform: translateY(-50%);\n `;\n } else if (!readOnly) {\n return 'cursor: text;';\n } else {\n return '';\n }\n};\n\nconst StyledLabel = styled(Label)`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n position: absolute;\n margin: 0;\n top: ${props => (props.elementType === 'textarea' ? '15px' : '50%')};\n transform: translateY(-50%);\n left: 15px;\n max-width: calc(100% - 30px);\n transition-property: top font-size;\n transition-duration: 0.2s;\n transition-timing-function: ease-out;\n opacity: 0.7;\n padding: 0 6px;\n user-select: none;\n animation-duration: 0.2s;\n animation-iteration-count: 1;\n animation-fill-mode: forwards;\n pointer-events: none;\n ${moveLabelUpCss};\n\n [dir='rtl'] & {\n right: 15px;\n left: auto;\n }\n\n &::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n height: calc(50% + 3px);\n box-sizing: content-box;\n z-index: 0;\n ${TextBackgroundColorTheme};\n }\n`;\n\nexport interface IInputLabelProps extends React.HTMLProps<{}> {\n className?: string;\n elementType?: string;\n inputId: string;\n moveLabelUp: boolean;\n readOnly: boolean;\n markAsError?: boolean;\n}\n\nexport { StyledLabel };\n","import * as classnames from 'classnames';\nimport * as React from 'react';\nimport styled from 'styled-components';\nimport { StyledLabel } from './StyledLabel';\nimport {\n inputTheme,\n focusInputTheme,\n errorInputTheme,\n errorFloatingLabelTheme,\n floatingLabelRequiredWrapperTheme\n} from '../theme/default-theme';\n\nconst InputWrapper = styled.div`\n position: relative;\n display: block;\n width: 100%;\n text-transform: capitalize;\n\n input {\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n padding: 15px;\n width: 100%;\n height: 52px;\n ${inputTheme};\n }\n\n input:focus {\n ${focusInputTheme};\n }\n\n input.elc-floating-label-input-errorField {\n ${errorInputTheme};\n }\n\n &.elc-floating-label-input-error label.elc-floating-label-string {\n ${errorFloatingLabelTheme};\n }\n\n .elc-floating-label__required-wrapper {\n ${floatingLabelRequiredWrapperTheme}\n }\n`;\n\nconst TextWrapper = styled.span``;\nconst RequiredWrapper = styled.span``;\n\nexport interface IFloatingLabelInputProps extends React.HTMLProps<{}> {\n inputLabel: string;\n inputValue?: string;\n inputType?: string;\n className?: string;\n customLabelClassName?: string;\n markAsError?: boolean;\n isRequired?: boolean;\n onBlurHandler?(name: string): void;\n onFocusHandler?(name: string): void;\n moveUp?: boolean;\n}\n\nexport interface IFloatingLabelInputState {\n isFocused: boolean;\n}\n\nexport class FloatingLabelInput extends React.Component<\n IFloatingLabelInputProps,\n IFloatingLabelInputState\n> {\n constructor(props: IFloatingLabelInputProps) {\n super(props);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n\n this.state = {\n isFocused: false\n };\n }\n\n private handleInputChange(val: React.ChangeEvent): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const defaultOnChange: any = (this.props.children as React.ReactElement).props.onChange;\n if (typeof defaultOnChange === 'function') {\n defaultOnChange(val);\n }\n }\n\n private handleInputBlur(event: React.FocusEvent): void {\n const defaultOnBlur: (event: React.FocusEvent) => void = (this.props\n .children as React.ReactElement).props.onBlur;\n\n if (typeof defaultOnBlur === 'function') {\n defaultOnBlur(event);\n }\n\n if (this.props.onBlurHandler) {\n this.props.onBlurHandler(event.currentTarget.name);\n }\n this.setState({\n isFocused: false\n });\n }\n\n private handleInputFocus(event: React.FocusEvent): void {\n const defaultOnFocus: (event: React.FocusEvent) => void = (this.props\n .children as React.ReactElement).props.onFocus;\n\n if (typeof defaultOnFocus === 'function') {\n defaultOnFocus(event);\n }\n\n if (this.props.onFocusHandler) {\n this.props.onFocusHandler(event.currentTarget.name);\n }\n this.setState({\n isFocused: true\n });\n }\n\n public render() {\n const classname = classnames(\n 'elc-floating-label-input',\n 'js-floating-label-input',\n this.props.className,\n {\n 'elc-floating-label-input-error': this.props.markAsError,\n 'elc-floating-label-input-required': this.props.isRequired,\n 'js-floating-label-input-required': this.props.isRequired\n }\n );\n\n const inputClassName = classnames({\n 'elc-floating-label-input-errorField': this.props.markAsError,\n 'elc-floating-label-input-field': true,\n 'js-floating-label-input-field': true\n });\n\n const childrenClassName: string =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.props.children as any).props.className || '';\n const childrenDisabled: boolean =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.props.children as any).props.disabled === true;\n const childrenReadOnly: boolean =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.props.children as any).props.readOnly === true;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const input: any = React.cloneElement(this.props.children as React.ReactElement, {\n onFocus: this.handleInputFocus,\n onBlur: this.handleInputBlur,\n onChange: this.handleInputChange,\n className: `${childrenClassName} ${inputClassName}`,\n 'aria-disabled': childrenDisabled\n });\n const inputPlaceHolder: string = React.isValidElement(input)\n ? (input as React.ReactElement).props.placeholder\n : '';\n const readOnly: boolean = childrenReadOnly || childrenDisabled;\n const moveLabelUp =\n this.props.moveUp ||\n this.state.isFocused ||\n this.props.inputType === 'date' ||\n !!this.props.inputValue ||\n !!inputPlaceHolder;\n\n const inputId: string = (this.props.children as React.ReactElement).props.id;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elementTarget: string | any = (this.props.children as any).type.target;\n const elementType =\n elementTarget && elementTarget.hasOwnProperty('name')\n ? elementTarget.name\n : elementTarget;\n\n const labelWrapperClassName = classnames(\n this.props.customLabelClassName,\n 'elc-floating-label__label-wrapper',\n 'js-floating-label__label-wrapper',\n {\n 'elc-floating-label__label-is-down': !moveLabelUp\n }\n );\n const textWrapperClassName = classnames(\n 'elc-floating-label__text-wrapper',\n 'js-floating-label__text-wrapper'\n );\n const requiredWrapperClassName = classnames(\n 'elc-floating-label__required-wrapper',\n 'js-floating-label__required-wrapper'\n );\n\n return (\n \n {input}\n \n \n {this.props.inputLabel}\n \n {this.props.isRequired && (\n \n )}\n \n \n );\n }\n}\n","import { Colors, Fonts } from '@estee/elc-base-theme';\n\nexport const dropdownContainerTheme = () => `\n color: ${Colors.primary700};\n font-family: ${Fonts.roboto};\n`;\n\nexport const dropdownArrowButtonTheme = () => `\n border-color: ${Colors.primary300};\n svg {\n fill: ${Colors.primary700};\n }\n`;\nexport const iconDisabledTheme = () => `\n border-color: ${Colors.blackPaleEmphasis};\n svg {\n fill: ${Colors.blackPaleEmphasis};\n }\n`;\n\nexport const dropdownInputWrapperTheme = () => `\n border-color: ${Colors.primary300};\n border-radius: 2px;\n`;\n\nexport const dropdownItemsTheme = () => `\n border-color: ${Colors.primary300};\n`;\n\nexport const dropdownItemTheme = () => `\n font-size: 13px;\n &:hover {\n background-color: ${Colors.primary100};\n }\n`;\n\nexport const labelTheme = () => `\n font-family: ${Fonts.robotoMedium};\n font-size: 14px;\n`;\n\nexport const dropdownBackgroundTheme = () => `\n background: ${Colors.white};\n`;\n\nexport const dropdownDisabledTheme = () => `\n border-color: ${Colors.blackPaleEmphasis};\n`;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { ContentSpacing, Colors } from '@estee/elc-base-theme';\nimport { ISelectedItem, IDropdownItem } from '../interfaces/IDropDownItem';\nimport { dropdownItemTheme } from '../theme/default-theme';\nimport * as classnames from 'classnames';\n\nconst StyledItem = styled.li`\n cursor: pointer;\n padding: ${ContentSpacing.space10};\n font-weight: ${({ isSelectedItem }: ISelectedItem) => (isSelectedItem ? 'bold' : 'normal')};\n background-color: ${({ isSelectedItem }: ISelectedItem) =>\n isSelectedItem ? `${Colors.primary100}` : 'initial'};\n ${dropdownItemTheme};\n`;\n\nconst IconWrapper = styled.div`\n display: inline-block;\n vertical-align: bottom;\n margin: 0 ${ContentSpacing.space16} 0 ${ContentSpacing.space8};\n`;\n\nexport const DropdownItem = (props: IDropdownItem) => {\n const { id, onClick, onMouseEnter, item, isSelectedItem, isActiveItem } = props;\n const { label, dataTestId, customAttributes, icon, htmlContent } = item;\n\n const dropdownClassNames = classnames('elc-dropdown-option', 'js-dropdown-option', {\n highlighted: isSelectedItem,\n active: isActiveItem\n });\n const iconWrapperClassNames = classnames('elc-icon-wrapper', 'js-icon-wrapper');\n\n return (\n \n {icon && (\n \n {icon}\n \n )}\n {htmlContent || label}\n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { DropdownItem } from './DropdownItem';\nimport { IOptionItem } from '../interfaces/IDropDownItem';\nimport { dropdownItemsTheme, dropdownBackgroundTheme } from '../theme/default-theme';\n\nexport interface IDropdownItems {\n items: IOptionItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getItemProps: any;\n highlightedIndex: number | null;\n useDropup?: boolean;\n getMenuProps(): void;\n activeItem?: IOptionItem;\n}\n\nconst OptionsWrapper = styled.div`\n z-index: 2;\n position: relative;\n`;\n\nconst OptionsList = styled.ul`\n max-height: 200px;\n overflow-y: auto;\n position: absolute;\n left: 0;\n right: 0;\n margin-top: -1px;\n border: 1px solid;\n list-style: none;\n ${dropdownItemsTheme};\n ${dropdownBackgroundTheme};\n ${(props: { useDropup?: boolean }) => props.useDropup && 'bottom: 40px;'};\n`;\n\nexport const DropdownItems = React.forwardRef(\n (\n {\n items,\n getItemProps,\n highlightedIndex,\n activeItem,\n useDropup,\n getMenuProps\n }: IDropdownItems,\n ref: React.RefObject\n ) => (\n \n
\n \n {items.map((item: IOptionItem, index: number) => (\n \n ))}\n \n
\n
\n )\n);\n","import * as React from 'react';\nimport { action, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Downshift, {\n DownshiftState,\n StateChangeOptions,\n ControllerStateAndHelpers\n} from 'downshift';\nimport computeScrollIntoView from 'compute-scroll-into-view';\nimport * as classnames from 'classnames';\nimport styled, { css, StyledComponentBase } from 'styled-components';\nimport { ArrowIcon } from '@estee/elc-icons';\nimport { InputWrapper, FloatingLabelInput } from '@estee/elc-inputs';\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { IOptionItem } from '../interfaces/IDropDownItem';\nimport { IDropDownFieldProps } from '../interfaces/IDropDownFieldProps';\nimport { DropdownItems } from './DropdownItems';\nimport {\n dropdownContainerTheme,\n dropdownArrowButtonTheme,\n dropdownInputWrapperTheme,\n labelTheme,\n dropdownDisabledTheme,\n iconDisabledTheme\n} from '../theme/default-theme';\n\ninterface IStyledInput {\n className?: string;\n}\n\nconst DropdownWrapper: StyledComponentBase<'input', {}> & IStyledInput = styled(InputWrapper)`\n width: 100%;\n`;\n\nconst DropdownContainer = styled.div`\n ${dropdownContainerTheme};\n`;\n\nconst Label = styled.label`\n cursor: pointer;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0 ${ContentSpacing.space8};\n ${labelTheme};\n`;\n\nconst IconContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 ${ContentSpacing.space8};\n`;\n\nconst Button = styled.button<{ disabled: boolean }>`\n background-color: transparent;\n border: none;\n border-left-width: 1px;\n border-left-style: solid;\n cursor: pointer;\n height: 40px;\n padding: 0 ${ContentSpacing.space16};\n ${dropdownArrowButtonTheme};\n ${({ disabled }) =>\n disabled &&\n css`\n ${dropdownDisabledTheme} ${iconDisabledTheme};\n `};\n\n [dir='rtl'] & {\n border-left: none;\n border-right-width: 1px;\n border-right-style: solid;\n }\n`;\n\nconst DropdownInputWrapper = styled.div<{ isDisabled: boolean }>`\n border: 1px solid;\n cursor: pointer;\n display: flex;\n align-items: center;\n padding-left: ${ContentSpacing.space8};\n position: relative;\n ${dropdownInputWrapperTheme};\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n ${dropdownDisabledTheme};\n `};\n\n [dir='rtl'] & {\n padding-left: 0;\n padding-right: ${ContentSpacing.space8};\n }\n`;\n\nconst ReadonlyInput = styled.div`\n display: flex;\n align-items: center;\n flex: 1;\n font-size: 14px;\n overflow: hidden;\n padding: 0 ${ContentSpacing.space8};\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\n// cannot use input as styled component\n// issue open: https://github.com/downshift-js/downshift/issues/718\n@observer\nexport class Dropdown extends React.Component {\n @observable private searchAheadValue: string = '';\n private timeout: number;\n private dropdownListRef: React.RefObject = React.createRef();\n\n public componentDidMount() {\n this.setDropdownRoleSafari();\n }\n\n public onInputChangeHandle = (inputValue: string) => {\n if (inputValue === '' && !this.props.allowCustomInput && !this.props.isFilterable) {\n return;\n }\n this.props.onChange(this.props.name, inputValue);\n };\n\n public outerClickHandler = () => {\n if (this.props.dropdownClickOutside) {\n this.props.dropdownClickOutside(this.props.name);\n }\n };\n\n @action\n private enableSearchAhead = (\n updatehighlightedIndex: (index: number | null) => void,\n highlightedIndex: number | null\n ) => {\n window.onkeydown = (e: KeyboardEvent) => {\n if (!this.searchAheadValue) {\n this.timeout = window.setTimeout(() => {\n this.clearSearchAhead();\n }, 2000);\n }\n this.searchAheadValue += e.key;\n\n const first = this.props.options.findIndex(\n this.optionStartsWithSearchText(this.searchAheadValue)\n );\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n updatehighlightedIndex(highlightedIndex);\n this.clearSearchAhead();\n } else {\n updatehighlightedIndex(first);\n }\n };\n };\n\n @action\n private disableSearchAhead = () => {\n window.onkeydown = null;\n clearTimeout(this.timeout);\n this.clearSearchAhead();\n this.props.onChange(this.props.name, this.props.selectedValue);\n };\n\n @action\n public clearSearchAhead = () => {\n this.searchAheadValue = '';\n };\n\n private getLabel = (value: string | null): string => {\n if (value === null) {\n return '';\n }\n const selectedItem = this.getItems().find((item: IOptionItem) => item.value === value);\n\n return selectedItem ? selectedItem.label : value;\n };\n\n private optionStartsWithSearchText = (filterBy: string) => (item: IOptionItem) =>\n item.label.toLowerCase().indexOf(filterBy.toLowerCase()) === 0;\n\n private getItems(filterBy: string = '') {\n const { options, isFilterable } = this.props;\n\n return isFilterable && filterBy\n ? options.filter(this.optionStartsWithSearchText(filterBy))\n : options;\n }\n\n private scrollIntoView = (node: HTMLElement) => {\n if (node) {\n const actions = computeScrollIntoView(node, {\n scrollMode: 'always',\n block: 'start',\n inline: 'start',\n boundary: this.dropdownListRef.current\n });\n actions.forEach(({ el, top, left }) => {\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n }\n };\n\n private multiSelectionStateReducer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n state: DownshiftState,\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n changes: StateChangeOptions\n ) => {\n let updatedChanges = changes;\n // keep dropdown open\n if (changes.type === Downshift.stateChangeTypes.clickItem) {\n const { isOpen, ...restChanges } = changes;\n updatedChanges = restChanges;\n }\n\n // selection should not change when clicking outside\n if (changes.type === Downshift.stateChangeTypes.mouseUp) {\n const { inputValue, ...restChanges } = changes;\n updatedChanges = restChanges;\n }\n\n return { ...state, ...updatedChanges };\n };\n\n handleStateChange = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n changes: StateChangeOptions,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n stateAndHelpers: ControllerStateAndHelpers\n ) => {\n const { searchAhead } = this.props;\n if (searchAhead) {\n if (stateAndHelpers.isOpen) {\n this.enableSearchAhead(\n stateAndHelpers.setHighlightedIndex,\n stateAndHelpers.highlightedIndex\n );\n } else {\n this.disableSearchAhead();\n }\n }\n };\n\n private get placeholder() {\n const { placeholder, isRequired, withFloatingLabel } = this.props;\n\n return placeholder ? `${placeholder}${!withFloatingLabel && isRequired ? '*' : ''}` : '';\n }\n\n private getAriaLabelBtn = (isOpen: boolean) => {\n const { withNameInAriaLabel, name } = this.props;\n if (withNameInAriaLabel) {\n return isOpen ? `close ${name} menu` : `open ${name} menu`;\n } else {\n return isOpen ? 'close menu' : 'open menu';\n }\n };\n\n // Safari/Voiceover a11y bug workaround\n private setDropdownRoleSafari = (): void => {\n const combobox = document.querySelector('[role=\"combobox\"]');\n const dropdown = combobox && combobox.getAttribute('aria-labelledby');\n const isDownshift = RegExp('downshift').test(dropdown as string);\n const safariCheck = RegExp(/^((?!chrome).)*safari/);\n const isSafari = safariCheck.test(window.navigator.userAgent.toLowerCase());\n if (isSafari && combobox && isDownshift) {\n combobox.removeAttribute('role');\n }\n };\n\n private getDropdownComponent = () => {\n const props = this.props;\n\n const {\n isDisabled = false,\n dropdownIcon,\n keepItOpenOnSelection,\n withFloatingLabel,\n autoComplete\n } = props;\n\n const className: string = classnames(\n 'elc-dropdown',\n 'js-dropdown',\n props.className,\n props.customClassName,\n {\n 'elc-dropdown-disabled js-dropdown-disabled': isDisabled\n }\n );\n const dropdownWrapperClassNames = classnames('elc-dropdown-wrapper', 'js-dropdown-wrapper');\n const dropdownInputWrapperClassNames = classnames(\n 'elc-dropdown-input-wrapper',\n 'js-dropdown-input-wrapper'\n );\n const showInput = (props.allowCustomInput || props.isFilterable) && !props.isDisabled;\n\n return (\n \n \n {({\n getInputProps,\n getLabelProps,\n getItemProps,\n getToggleButtonProps,\n isOpen,\n inputValue,\n toggleMenu,\n clearSelection,\n highlightedIndex,\n getMenuProps\n }) => {\n const selectedLabel = this.getLabel(inputValue);\n const selectedItem = this.getItems().find(\n (item: IOptionItem) => item.value === inputValue\n );\n\n const htmlContent =\n selectedItem && selectedItem.htmlContent\n ? selectedItem.htmlContent\n : null;\n const hasHtmlContent = htmlContent ? true : false;\n\n const toggleDropDownMenu = () => {\n if (!isDisabled) {\n toggleMenu();\n }\n };\n\n const onDropdownClick = (event: React.MouseEvent) => {\n event.preventDefault();\n if (props.isFilterable) {\n clearSelection();\n }\n toggleDropDownMenu();\n };\n\n const readonlyInputClass = classnames(\n this.props.customReadOnlyClass,\n 'elc-dropdown-readonly-input',\n 'js-dropdown-readonly-input',\n 'notranslate',\n {\n 'elc-dropdown-readonly-error js-dropdown-readonly-error':\n props.hasError\n }\n );\n\n const labelClass = classnames('elc-dropdown-label', 'js-dropdown-label', {\n 'elc-dropdown-label-error js-dropdown-label-error': props.hasError\n });\n\n const arrowButtonIsTabable = props.isFilterable ? -1 : 0;\n\n const dropdownInput = (\n \n );\n const dropdownReadonlyInput = (\n \n \n {selectedLabel}\n \n );\n\n return (\n
\n \n \n {props.icon && !dropdownIcon && (\n \n {props.icon}\n \n )}\n {this.placeholder && !withFloatingLabel && (\n \n {this.placeholder}\n {props.selectedValue && ':'}\n \n )}\n {hasHtmlContent\n ? htmlContent\n : showInput\n ? dropdownInput\n : dropdownReadonlyInput}\n \n {dropdownIcon ? (\n dropdownIcon\n ) : (\n \n )}\n \n \n {isOpen ? (\n \n ) : null}\n \n
\n );\n }}\n \n
\n );\n };\n\n public render() {\n if (this.props.withFloatingLabel) {\n return (\n \n {this.getDropdownComponent()}\n \n );\n }\n\n return <>{this.getDropdownComponent()};\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n"],"names":["_objectWithoutPropertiesLoose","source","excluded","key","i","target","sourceKeys","Object","keys","length","indexOf","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","this","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","__proto__","t","nodeType","e","n","clientHeight","scrollHeight","clientWidth","scrollWidth","r","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","l","d","window","scrollMode","block","u","inline","h","boundary","a","skipOverflowHiddenElements","c","TypeError","f","document","scrollingElement","documentElement","s","parentElement","push","body","m","visualViewport","width","innerWidth","g","height","innerHeight","w","scrollX","pageXOffset","v","scrollY","pageYOffset","W","getBoundingClientRect","b","H","y","top","E","right","M","bottom","V","left","x","I","C","T","k","B","D","O","R","X","Y","L","S","j","parseInt","borderLeftWidth","q","borderTopWidth","z","borderRightWidth","A","borderBottomWidth","F","G","J","offsetWidth","K","offsetHeight","Math","max","N","scrollLeft","P","scrollTop","min","el","idCounter","cbToCb","cb","noop","scrollIntoView","node","menuNode","forEach","_ref","isOrContainsNode","parent","child","contains","debounce","fn","time","timeoutId","cancel","clearTimeout","wrapper","_len","args","Array","_key","setTimeout","callAllEventHandlers","_len2","fns","_key2","event","_len3","_key3","some","concat","preventDownshiftDefault","nativeEvent","handleRefs","_len4","refs","_key4","ref","current","getA11yStatusMessage","_ref2","isOpen","selectedItem","resultCount","previousResultCount","itemToString","unwrapArray","arg","defaultValue","isArray","isDOMElement","element","type","getElementProps","props","stateKeys","pickState","state","result","normalizeArrowKey","keyCode","getNextWrappingIndex","moveAmount","baseIndex","itemCount","itemsLastIndex","newIndex","cleanupStatus","getStatusDiv","textContent","setStatus","status","documentProp","div","statusDiv","getElementById","createElement","setAttribute","style","border","clip","margin","overflow","padding","position","appendChild","stateChangeTypes","freeze","unknown","mouseUp","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","controlledPropUpdatedSelectedItem","touchEnd","Downshift","_Component","subClass","superClass","_props","_this","id","String","menuId","labelId","inputId","getItemId","index","input","items","timeoutIds","internalSetTimeout","filter","setItemCount","count","unsetItemCount","setHighlightedIndex","highlightedIndex","otherStateToSet","defaultHighlightedIndex","internalSetState","clearSelection","inputValue","defaultIsOpen","selectItem","item","selectItemAtIndex","itemIndex","selectHighlightedItem","getState","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","onInputValueChange","getStateAndHelpers","setState","newStateToSet","stateReducer","nextState","nextFullState","isControlledProp","onStateChange","onSelect","undefined","onChange","onUserAction","rootRef","_rootNode","getRootProps","_temp","_temp2","_extends2","_ref$refKey","refKey","rest","_ref2$suppressRefErro","suppressRefError","called","role","keyDownHandlers","ArrowDown","_this2","preventDefault","amount","shiftKey","moveHighlightedIndex","getItemCount","ArrowUp","_this3","Enter","_this$getState2","itemNode","getItemNodeFromIndex","hasAttribute","Escape","reset","buttonKeyDownHandlers","toggleMenu","inputKeyDownHandlers","Home","highlightFirstOrLastIndex","End","getToggleButtonProps","_temp3","_ref3","onClick","onKeyDown","onPress","onKeyUp","onBlur","enabledEventHandlers","buttonHandleClick","buttonHandleKeyDown","buttonHandleKeyUp","buttonHandleBlur","disabled","environment","activeElement","focus","blurTarget","isMouseDown","getLabelProps","htmlFor","getInputProps","_temp4","_ref4","onInput","onChangeText","eventHandlers","_eventHandlers","_this$getState4","inputHandleChange","inputHandleKeyDown","inputHandleBlur","autoComplete","value","downshiftButtonIsActive","dataset","toggle","menuRef","_menuNode","getMenuProps","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","_ref6$suppressRefErro","getItemProps","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","customClickHandler","avoidScrolling","clearItems","_ref8","_ref9","_this$getState5","openMenu","closeMenu","updateStatus","highlightedItem","_this$props","_this$props$initialHi","initialHighlightedIndex","_highlightedIndex","_this$props$initialIs","initialIsOpen","_isOpen","_this$props$initialIn","initialInputValue","_inputValue","_this$props$initialSe","initialSelectedItem","_selectedItem","_state","create","constructor","_proto","internalClearTimeouts","stateToMerge","_this4","reduce","scrollHighlightedItemIntoView","nextHighlightedIndex","first","_this$getState6","componentDidMount","_this5","targetWithinDownshift","checkActiveElement","contextNode","onMouseUp","onOuterClick","onTouchStart","isTouchMove","onTouchMove","onTouchEnd","contextWithinDownshift","addEventListener","cleanup","removeEventListener","shouldScroll","prevState","prevProps","currentHighlightedIndex","prevHighlightedIndex","componentDidUpdate","selectedItemChanged","componentWillUnmount","render","children","cloneElement","Component","defaultProps","prevItem","SIZES","xsmall","small","medium","large","xlarge","xxlarge","IconPlaceholder","theme","size","transform","MaskIconPlaceholder","color","image","BackgroundIconPlaceholder","background","Icon","className","ariaLabel","classnames","ArrowIcon","InputWrapper","displayName","TextBackgroundColorTheme","ErrorTextTheme","StyledLabelText","RelativePositionedTextWrapper","markAsError","css","StyledLabel","labelClassName","elementType","moveLabelUp","readOnly","TextWrapper","RequiredWrapper","FloatingLabelInput","super","handleInputChange","bind","handleInputFocus","handleInputBlur","isFocused","val","defaultOnChange","defaultOnBlur","onBlurHandler","currentTarget","name","defaultOnFocus","onFocus","onFocusHandler","classname","isRequired","inputClassName","childrenClassName","childrenDisabled","childrenReadOnly","inputPlaceHolder","placeholder","moveUp","inputType","elementTarget","labelWrapperClassName","customLabelClassName","textWrapperClassName","requiredWrapperClassName","inputLabel","iconDisabledTheme","dropdownDisabledTheme","StyledItem","ContentSpacing","isSelectedItem","IconWrapper","DropdownItem","onMouseEnter","isActiveItem","label","dataTestId","customAttributes","icon","htmlContent","dropdownClassNames","highlighted","active","iconWrapperClassNames","title","OptionsWrapper","OptionsList","useDropup","DropdownItems","activeItem","map","DropdownWrapper","DropdownContainer","Fonts","IconContainer","Button","DropdownInputWrapper","isDisabled","ReadonlyInput","Dropdown","searchAheadValue","dropdownListRef","onInputChangeHandle","allowCustomInput","isFilterable","outerClickHandler","dropdownClickOutside","enableSearchAhead","updatehighlightedIndex","onkeydown","timeout","clearSearchAhead","options","findIndex","optionStartsWithSearchText","disableSearchAhead","selectedValue","getLabel","getItems","find","filterBy","toLowerCase","multiSelectionStateReducer","changes","updatedChanges","handleStateChange","stateAndHelpers","searchAhead","getAriaLabelBtn","withNameInAriaLabel","setDropdownRoleSafari","combobox","querySelector","dropdown","getAttribute","isDownshift","RegExp","test","navigator","userAgent","removeAttribute","getDropdownComponent","dropdownIcon","keepItOpenOnSelection","withFloatingLabel","customClassName","dropdownWrapperClassNames","dropdownInputWrapperClassNames","showInput","isOpenByDefault","selectedLabel","hasHtmlContent","toggleDropDownMenu","readonlyInputClass","customReadOnlyClass","hasError","labelClass","arrowButtonIsTabable","dropdownInput","outline","dropdownReadonlyInput","dropdownDataTestId","tabIndex","Boolean","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","propName","componentName","location","propFullName","secret","err","Error","getShim","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Symbol","for","$$typeof"],"sourceRoot":""}