{"version":3,"sources":["webpack://checkout/./node_modules/downshift/dist/downshift.cjs.js","webpack://checkout/./node_modules/compute-scroll-into-view/index.js"],"names":["_interopDefault","ex","Object","defineProperty","exports","value","cleanupTimerID","_objectWithoutPropertiesLoose","require","_extends","_assertThisInitialized","_inheritsLoose","React","React__default","computeScrollIntoView","statusDiv","document","getElementById","setStatus","status","div","createElement","setAttribute","assign","style","border","clip","height","margin","overflow","padding","position","width","body","appendChild","getStatusDiv","clearTimeout","textContent","setTimeout","unknown","itemMouseEnter","keyDownArrowUp","keyDownArrowDown","keyDownEscape","keyDownEnter","keyDownHome","keyDownEnd","clickItem","blurInput","changeInput","keyDownSpaceButton","clickButton","blurButton","stateChangeTypes","freeze","mouseUp","controlledPropUpdatedSelectedItem","touchEnd","idCounter","cbToCb","cb","noop","isOrContainsNode","parent","child","contains","callAllEventHandlers","_len2","arguments","length","fns","Array","_key2","event","_len3","args","_key3","some","fn","apply","concat","preventDownshiftDefault","hasOwnProperty","nativeEvent","unwrapArray","arg","defaultValue","isArray","isDOMElement","element","type","getElementProps","props","stateKeys","pickState","state","result","forEach","k","normalizeArrowKey","key","keyCode","indexOf","getNextWrappingIndex","moveAmount","baseIndex","itemCount","itemsLastIndex","newIndex","Downshift","_Component","_props","_this","call","this","id","String","menuId","labelId","inputId","getItemId","index","input","items","previousResultCount","timeoutIds","internalSetTimeout","time","filter","i","push","setItemCount","count","unsetItemCount","setHighlightedIndex","highlightedIndex","otherStateToSet","defaultHighlightedIndex","internalSetState","clearSelection","selectedItem","inputValue","isOpen","defaultIsOpen","selectItem","item","itemToString","selectItemAtIndex","itemIndex","selectHighlightedItem","getState","stateToSet","isItemSelected","onChangeArg","onStateChangeArg","isStateToSetFunction","onInputValueChange","getStateAndHelpers","setState","newStateToSet","stateReducer","nextState","nextFullState","keys","isControlledProp","onStateChange","onSelect","undefined","onChange","onUserAction","rootRef","node","_rootNode","getRootProps","_temp","_temp2","_extends2","_ref","_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","eventHandlers","disabled","environment","activeElement","target","focus","blurTarget","isMouseDown","getLabelProps","htmlFor","getInputProps","_temp4","_ref4","onInput","onChangeText","_eventHandlers","_this$getState4","inputHandleChange","inputHandleKeyDown","inputHandleBlur","autoComplete","inputHandleTextChange","text","downshiftButtonIsActive","dataset","toggle","menuRef","_menuNode","getMenuProps","_temp5","_temp6","_extends3","_ref5","_ref5$refKey","ref","_ref6$suppressRefErro","_len4","_key4","_len5","_key5","callAll","getItemProps","_temp7","_enabledEventHandlers","_ref7","onMouseMove","onMouseDown","_ref7$item","customClickHandler","avoidScrolling","clearItems","_ref8","_ref9","_this$getState5","openMenu","closeMenu","updateStatus","timeoutId","cancel","wrapper","_len","_key","debounce","resultCount","getA11yStatusMessage","highlightedItem","_this$props","_this$props$initialHi","initialHighlightedIndex","_highlightedIndex","_this$props$initialIs","initialIsOpen","_isOpen","_this$props$initialIn","initialInputValue","_inputValue","_this$props$initialSe","initialSelectedItem","_selectedItem","_state","_proto","prototype","internalClearTimeouts","stateToMerge","_this4","reduce","scrollHighlightedItemIntoView","scrollIntoView","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","process","Component","defaultProps","_ref2","prevItem","window","menuNode","boundary","block","scrollMode","el","top","left","scrollTop","scrollLeft","default","resetIdCounter","isElement","nodeType","canOverflow","skipOverflowHiddenElements","isScrollable","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","__esModule","options","inline","checkBoundary","TypeError","scrollingElement","documentElement","frames","cursor","parentNode","viewportWidth","visualViewport","innerWidth","viewportHeight","innerHeight","viewportX","scrollX","pageXOffset","viewportY","scrollY","pageYOffset","_target$getBoundingCl","getBoundingClientRect","targetHeight","targetWidth","targetTop","targetRight","right","targetBottom","bottom","targetLeft","targetBlock","targetInline","computations","frame","_frame$getBoundingCli","_height","_width","_top","_left","frameStyle","borderLeft","parseInt","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","blockScroll","inlineScroll","scrollbarWidth","offsetWidth","scrollbarHeight","offsetHeight","Math","max","min","module"],"mappings":"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","file":"vendors~billing~shipping-c8c16cde.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _objectWithoutPropertiesLoose = _interopDefault(require('@babel/runtime/helpers/objectWithoutPropertiesLoose'));\nvar _extends = _interopDefault(require('@babel/runtime/helpers/extends'));\nvar _assertThisInitialized = _interopDefault(require('@babel/runtime/helpers/assertThisInitialized'));\nvar _inheritsLoose = _interopDefault(require('@babel/runtime/helpers/inheritsLoose'));\nvar PropTypes = _interopDefault(require('prop-types'));\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar reactIs = require('react-is');\nvar computeScrollIntoView = _interopDefault(require('compute-scroll-into-view'));\n\n// istanbul ignore next\nvar statusDiv = typeof document === 'undefined' ? null : document.getElementById('a11y-status-message');\nvar cleanupTimerID;\n/**\n * @param {String} status the status message\n */\n\nfunction setStatus(status) {\n  var div = getStatusDiv();\n\n  if (!status) {\n    return;\n  }\n\n  if (cleanupTimerID) {\n    clearTimeout(cleanupTimerID);\n    cleanupTimerID = null;\n  }\n\n  div.textContent = status;\n  cleanupTimerID = setTimeout(function () {\n    div.textContent = '';\n    cleanupTimerID = null;\n  }, 500);\n}\n/**\n * Get the status node or create it if it does not already exist\n * @return {HTMLElement} the status node\n */\n\n\nfunction getStatusDiv() {\n  if (statusDiv) {\n    return statusDiv;\n  }\n\n  statusDiv = document.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  document.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  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 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/**\n * This return a function that will call all the given functions with\n * the arguments with which it's called. It does a null-check before\n * attempting to call the functions and can take any number of functions.\n * @param {...Function} fns the functions to call\n * @return {Function} the function that calls all the functions\n */\n\n\nfunction callAll() {\n  for (var _len4 = arguments.length, fns = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    fns[_key4] = arguments[_key4];\n  }\n\n  return function () {\n    for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n      args[_key5] = arguments[_key5];\n    }\n\n    fns.forEach(function (fn) {\n      if (fn) {\n        fn.apply(void 0, args);\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 Downshift =\n/*#__PURE__*/\nfunction (_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          rest = _objectWithoutPropertiesLoose(_ref, [\"refKey\"]);\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] = _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.inputHandleTextChange\n    /* istanbul ignore next (react-native) */\n    = function (text) {\n      _this.internalSetState({\n        type: changeInput,\n        isOpen: true,\n        inputValue: text,\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] = callAll(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);\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      this.props.environment.addEventListener('mousedown', onMouseDown);\n      this.props.environment.addEventListener('mouseup', onMouseUp);\n      this.props.environment.addEventListener('touchstart', onTouchStart);\n      this.props.environment.addEventListener('touchmove', onTouchMove);\n      this.props.environment.addEventListener('touchend', onTouchEnd);\n\n      this.cleanup = function () {\n        _this5.internalClearTimeouts();\n\n        _this5.updateStatus.cancel();\n\n        _this5.props.environment.removeEventListener('mousedown', onMouseDown);\n\n        _this5.props.environment.removeEventListener('mouseup', onMouseUp);\n\n        _this5.props.environment.removeEventListener('touchstart', onTouchStart);\n\n        _this5.props.environment.removeEventListener('touchmove', onTouchMove);\n\n        _this5.props.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 React__default.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 use apply the getRootProps function');\n    }\n    /* istanbul ignore next */\n\n\n    return undefined;\n  };\n\n  return Downshift;\n}(React.Component);\n\nDownshift.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};\nDownshift.stateChangeTypes = stateChangeTypes;\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 && !reactIs.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 (!reactIs.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\nexports.default = Downshift;\nexports.resetIdCounter = resetIdCounter;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nfunction isElement(el) {\n  return el != null && typeof el === 'object' && el.nodeType === 1;\n}\n\nfunction canOverflow(overflow, skipOverflowHiddenElements) {\n  if (skipOverflowHiddenElements && overflow === 'hidden') {\n    return false;\n  }\n\n  return overflow !== 'visible' && overflow !== 'clip';\n}\n\nfunction isScrollable(el, skipOverflowHiddenElements) {\n  if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n    var style = getComputedStyle(el, null);\n    return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements);\n  }\n\n  return false;\n}\n\nfunction alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {\n  if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {\n    return 0;\n  }\n\n  if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {\n    return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;\n  }\n\n  if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {\n    return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;\n  }\n\n  return 0;\n}\n\nvar _default = function _default(target, options) {\n  var scrollMode = options.scrollMode,\n      block = options.block,\n      inline = options.inline,\n      boundary = options.boundary,\n      skipOverflowHiddenElements = options.skipOverflowHiddenElements;\n  var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {\n    return node !== boundary;\n  };\n\n  if (!isElement(target)) {\n    throw new TypeError('Invalid target');\n  }\n\n  var scrollingElement = document.scrollingElement || document.documentElement;\n  var frames = [];\n  var cursor = target;\n\n  while (isElement(cursor) && checkBoundary(cursor)) {\n    cursor = cursor.parentNode;\n\n    if (cursor === scrollingElement) {\n      frames.push(cursor);\n      break;\n    }\n\n    if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {\n      continue;\n    }\n\n    if (isScrollable(cursor, skipOverflowHiddenElements)) {\n      frames.push(cursor);\n    }\n  }\n\n  var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;\n  var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;\n  var viewportX = window.scrollX || pageXOffset;\n  var viewportY = window.scrollY || pageYOffset;\n\n  var _target$getBoundingCl = target.getBoundingClientRect(),\n      targetHeight = _target$getBoundingCl.height,\n      targetWidth = _target$getBoundingCl.width,\n      targetTop = _target$getBoundingCl.top,\n      targetRight = _target$getBoundingCl.right,\n      targetBottom = _target$getBoundingCl.bottom,\n      targetLeft = _target$getBoundingCl.left;\n\n  var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;\n  var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;\n  var computations = [];\n\n  for (var index = 0; index < frames.length; index++) {\n    var frame = frames[index];\n\n    var _frame$getBoundingCli = frame.getBoundingClientRect(),\n        _height = _frame$getBoundingCli.height,\n        _width = _frame$getBoundingCli.width,\n        _top = _frame$getBoundingCli.top,\n        right = _frame$getBoundingCli.right,\n        bottom = _frame$getBoundingCli.bottom,\n        _left = _frame$getBoundingCli.left;\n\n    if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= _top && targetBottom <= bottom && targetLeft >= _left && targetRight <= right) {\n      return computations;\n    }\n\n    var frameStyle = getComputedStyle(frame);\n    var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);\n    var borderTop = parseInt(frameStyle.borderTopWidth, 10);\n    var borderRight = parseInt(frameStyle.borderRightWidth, 10);\n    var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);\n    var blockScroll = 0;\n    var inlineScroll = 0;\n    var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;\n    var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;\n\n    if (scrollingElement === frame) {\n      if (block === 'start') {\n        blockScroll = targetBlock;\n      } else if (block === 'end') {\n        blockScroll = targetBlock - viewportHeight;\n      } else if (block === 'nearest') {\n        blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);\n      } else {\n        blockScroll = targetBlock - viewportHeight / 2;\n      }\n\n      if (inline === 'start') {\n        inlineScroll = targetInline;\n      } else if (inline === 'center') {\n        inlineScroll = targetInline - viewportWidth / 2;\n      } else if (inline === 'end') {\n        inlineScroll = targetInline - viewportWidth;\n      } else {\n        inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);\n      }\n\n      blockScroll = Math.max(0, blockScroll + viewportY);\n      inlineScroll = Math.max(0, inlineScroll + viewportX);\n    } else {\n      if (block === 'start') {\n        blockScroll = targetBlock - _top - borderTop;\n      } else if (block === 'end') {\n        blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;\n      } else if (block === 'nearest') {\n        blockScroll = alignNearest(_top, bottom, _height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);\n      } else {\n        blockScroll = targetBlock - (_top + _height / 2) + scrollbarHeight / 2;\n      }\n\n      if (inline === 'start') {\n        inlineScroll = targetInline - _left - borderLeft;\n      } else if (inline === 'center') {\n        inlineScroll = targetInline - (_left + _width / 2) + scrollbarWidth / 2;\n      } else if (inline === 'end') {\n        inlineScroll = targetInline - right + borderRight + scrollbarWidth;\n      } else {\n        inlineScroll = alignNearest(_left, right, _width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);\n      }\n\n      var scrollLeft = frame.scrollLeft,\n          scrollTop = frame.scrollTop;\n      blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - _height + scrollbarHeight));\n      inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - _width + scrollbarWidth));\n      targetBlock += scrollTop - blockScroll;\n      targetInline += scrollLeft - inlineScroll;\n    }\n\n    computations.push({\n      el: frame,\n      top: blockScroll,\n      left: inlineScroll\n    });\n  }\n\n  return computations;\n};\n\nexports.default = _default;\nmodule.exports = exports.default;"],"sourceRoot":""}