downshift
Version:
A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete components
3 lines (2 loc) • 42.8 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).Downshift={},e.React)}(this,(function(e,t){"use strict";function n(e,t){if(null==e)return{};var n,o,i={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(i[n]=e[n]);return i}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function u(e,t){return e(t={exports:{}},t.exports),t.exports}var s=u((function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&Symbol.for,o=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,r=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,a=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,d=n?Symbol.for("react.async_mode"):60111,c=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,m=n?Symbol.for("react.lazy"):60116,I=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118;function y(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case d:case c:case r:case s:case u:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case a:return e;default:return t}}case m:case g:case i:return t}}}function x(e){return y(e)===c}t.typeOf=y,t.AsyncMode=d,t.ConcurrentMode=c,t.ContextConsumer=l,t.ContextProvider=a,t.Element=o,t.ForwardRef=p,t.Fragment=r,t.Lazy=m,t.Memo=g,t.Portal=i,t.Profiler=s,t.StrictMode=u,t.Suspense=f,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===c||e===s||e===u||e===f||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===g||e.$$typeof===a||e.$$typeof===l||e.$$typeof===p||e.$$typeof===I||e.$$typeof===v)},t.isAsyncMode=function(e){return x(e)||y(e)===d},t.isConcurrentMode=x,t.isContextConsumer=function(e){return y(e)===l},t.isContextProvider=function(e){return y(e)===a},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return y(e)===p},t.isFragment=function(e){return y(e)===r},t.isLazy=function(e){return y(e)===m},t.isMemo=function(e){return y(e)===g},t.isPortal=function(e){return y(e)===i},t.isProfiler=function(e){return y(e)===s},t.isStrictMode=function(e){return y(e)===u},t.isSuspense=function(e){return y(e)===f}}));r(s);s.typeOf,s.AsyncMode,s.ConcurrentMode,s.ContextConsumer,s.ContextProvider,s.Element,s.ForwardRef,s.Fragment,s.Lazy,s.Memo,s.Portal,s.Profiler,s.StrictMode,s.Suspense,s.isValidElementType,s.isAsyncMode,s.isConcurrentMode,s.isContextConsumer,s.isContextProvider,s.isElement,s.isForwardRef,s.isFragment,s.isLazy,s.isMemo,s.isPortal,s.isProfiler,s.isStrictMode,s.isSuspense;var a=u((function(e,t){}));r(a);a.typeOf,a.AsyncMode,a.ConcurrentMode,a.ContextConsumer,a.ContextProvider,a.Element,a.ForwardRef,a.Fragment,a.Lazy,a.Memo,a.Portal,a.Profiler,a.StrictMode,a.Suspense,a.isValidElementType,a.isAsyncMode,a.isConcurrentMode,a.isContextConsumer,a.isContextProvider,a.isElement,a.isForwardRef,a.isFragment,a.isLazy,a.isMemo,a.isPortal,a.isProfiler,a.isStrictMode,a.isSuspense,u((function(e){e.exports=s})).isForwardRef;var l=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;function p(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach((function(e){o[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}})()&&Object.assign;var f="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";Function.call.bind(Object.prototype.hasOwnProperty);function h(){}function g(){}g.resetWarningCache=h;var m=u((function(e){e.exports=function(){function e(e,t,n,o,i,r){if(r!==f){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:g,resetWarningCache:h};return n.PropTypes=n,n}()}));function I(e){return null!=e&&"object"==typeof e&&1===e.nodeType}function v(e,t){return(!t||"hidden"!==e)&&("visible"!==e&&"clip"!==e)}function y(e,t){if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){var n=getComputedStyle(e,null);return v(n.overflowY,t)||v(n.overflowX,t)}return!1}function x(e,t,n,o,i,r,u,s){return r<e&&u>t||r>e&&u<t?0:r<=e&&s<=n||u>=t&&s>=n?r-e-o:u>t&&s<n||r<e&&s>n?u-t+i:0}var b=function(e,t){var n=t.scrollMode,o=t.block,i=t.inline,r=t.boundary,u=t.skipOverflowHiddenElements,s="function"==typeof r?r:function(e){return e!==r};if(!I(e))throw new TypeError("Invalid target");for(var a=document.scrollingElement||document.documentElement,l=[],d=e;I(d)&&s(d);){if((d=d.parentNode)===a){l.push(d);break}d===document.body&&y(d)&&!y(document.documentElement)||y(d,u)&&l.push(d)}for(var c=window.visualViewport?visualViewport.width:innerWidth,p=window.visualViewport?visualViewport.height:innerHeight,f=window.scrollX||pageXOffset,h=window.scrollY||pageYOffset,g=e.getBoundingClientRect(),m=g.height,v=g.width,b=g.top,w=g.right,S=g.bottom,O=g.left,M="start"===o||"nearest"===o?b:"end"===o?S:b+m/2,C="center"===i?O+v/2:"end"===i?w:O,E=[],k=0;k<l.length;k++){var D=l[k],P=D.getBoundingClientRect(),K=P.height,T=P.width,H=P.top,F=P.right,R=P.bottom,A=P.left;if("if-needed"===n&&b>=0&&O>=0&&S<=p&&w<=c&&b>=H&&S<=R&&O>=A&&w<=F)return E;var V=getComputedStyle(D),N=parseInt(V.borderLeftWidth,10),L=parseInt(V.borderTopWidth,10),_=parseInt(V.borderRightWidth,10),B=parseInt(V.borderBottomWidth,10),j=0,U=0,$="offsetWidth"in D?D.offsetWidth-D.clientWidth-N-_:0,W="offsetHeight"in D?D.offsetHeight-D.clientHeight-L-B:0;if(a===D)j="start"===o?M:"end"===o?M-p:"nearest"===o?x(h,h+p,p,L,B,h+M,h+M+m,m):M-p/2,U="start"===i?C:"center"===i?C-c/2:"end"===i?C-c:x(f,f+c,c,N,_,f+C,f+C+v,v),j=Math.max(0,j+h),U=Math.max(0,U+f);else{j="start"===o?M-H-L:"end"===o?M-R+B+W:"nearest"===o?x(H,R,K,L,B+W,M,M+m,m):M-(H+K/2)+W/2,U="start"===i?C-A-N:"center"===i?C-(A+T/2)+$/2:"end"===i?C-F+_+$:x(A,F,T,N,_+$,C,C+v,v);var z=D.scrollLeft,q=D.scrollTop;M+=q-(j=Math.max(0,Math.min(q+j,D.scrollHeight-K+W))),C+=z-(U=Math.max(0,Math.min(z+U,D.scrollWidth-T+$)))}E.push({el:D,top:j,left:U})}return E},w=0;function S(e){return"function"==typeof e?e:O}function O(){}function M(e,t){null!==e&&b(e,{boundary:t,block:"nearest",scrollMode:"if-needed"}).forEach((function(e){var t=e.el,n=e.top,o=e.left;t.scrollTop=n,t.scrollLeft=o}))}function C(e,t){return e===t||e.contains&&e.contains(t)}function E(e,t){var n;function o(){n&&clearTimeout(n)}function i(){for(var i=arguments.length,r=new Array(i),u=0;u<i;u++)r[u]=arguments[u];o(),n=setTimeout((function(){n=null,e.apply(void 0,r)}),t)}return i.cancel=o,i}function k(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return t.some((function(t){return t&&t.apply(void 0,[e].concat(o)),e.preventDownshiftDefault||e.hasOwnProperty("nativeEvent")&&e.nativeEvent.preventDownshiftDefault}))}}function D(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){"function"==typeof t?t(e):t&&(t.current=e)}))}}function P(e){var t=e.isOpen,n=e.selectedItem,o=e.resultCount,i=e.previousResultCount,r=e.itemToString;return t?o?o!==i?o+" result"+(1===o?" is":"s are")+" available, use up and down arrow keys to navigate. Press Enter key to select.":"":"No results are available.":n?r(n):""}function K(e,t){return!(e=Array.isArray(e)?e[0]:e)&&t?t:e}var T=["highlightedIndex","inputValue","isOpen","selectedItem","type"];function H(e){void 0===e&&(e={});var t={};return T.forEach((function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}function F(e,t){return Object.keys(e).reduce((function(n,o){return n[o]=R(t,o)?t[o]:e[o],n}),{})}function R(e,t){return void 0!==e[t]}function A(e){var t=e.key,n=e.keyCode;return n>=37&&n<=40&&0!==t.indexOf("Arrow")?"Arrow"+t:t}function V(e,t,n,o,i){void 0===i&&(i=!0);var r=n-1;("number"!=typeof t||t<0||t>=n)&&(t=e>0?-1:r+1);var u=t+e;u<0?u=i?r:0:u>r&&(u=i?0:r);var s=N(e,u,n,o,i);return-1===s?t:s}function N(e,t,n,o,i){var r=o(t);if(!r||!r.hasAttribute("disabled"))return t;if(e>0){for(var u=t+1;u<n;u++)if(!o(u).hasAttribute("disabled"))return u}else for(var s=t-1;s>=0;s--)if(!o(s).hasAttribute("disabled"))return s;return i?e>0?N(1,0,n,o,!1):N(-1,n-1,n,o,!1):-1}function L(e,t,n,o,i){return void 0===i&&(i=!0),[t,n].some((function(t){return t&&(C(t,e)||i&&C(t,o.activeElement))}))}var _=E((function(){j().textContent=""}),500);function B(e,t){var n=j(t);e&&(n.textContent=e,_())}function j(e){void 0===e&&(e=document);var t=e.getElementById("a11y-status-message");return t||((t=e.createElement("div")).setAttribute("id","a11y-status-message"),t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.setAttribute("aria-relevant","additions text"),Object.assign(t.style,{border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",width:"1px"}),e.body.appendChild(t),t)}var U=0,$=2,W=3,z=4,q=5,Y=6,X=7,G=8,J=9,Q=10,Z=11,ee=12,te=13,ne=14,oe=Object.freeze({__proto__:null,unknown:U,mouseUp:1,itemMouseEnter:$,keyDownArrowUp:W,keyDownArrowDown:z,keyDownEscape:q,keyDownEnter:Y,keyDownHome:X,keyDownEnd:G,clickItem:J,blurInput:Q,changeInput:Z,keyDownSpaceButton:ee,clickButton:te,blurButton:ne,controlledPropUpdatedSelectedItem:15,touchEnd:16}),ie=function(){var e=function(e){var r,u;function s(t){var r=e.call(this,t)||this;r.id=r.props.id||"downshift-"+String(w++),r.menuId=r.props.menuId||r.id+"-menu",r.labelId=r.props.labelId||r.id+"-label",r.inputId=r.props.inputId||r.id+"-input",r.getItemId=r.props.getItemId||function(e){return r.id+"-item-"+e},r.input=null,r.items=[],r.itemCount=null,r.previousResultCount=0,r.timeoutIds=[],r.internalSetTimeout=function(e,t){var n=setTimeout((function(){r.timeoutIds=r.timeoutIds.filter((function(e){return e!==n})),e()}),t);r.timeoutIds.push(n)},r.setItemCount=function(e){r.itemCount=e},r.unsetItemCount=function(){r.itemCount=null},r.setHighlightedIndex=function(e,t){void 0===e&&(e=r.props.defaultHighlightedIndex),void 0===t&&(t={}),t=H(t),r.internalSetState(o({highlightedIndex:e},t))},r.clearSelection=function(e){r.internalSetState({selectedItem:null,inputValue:"",highlightedIndex:r.props.defaultHighlightedIndex,isOpen:r.props.defaultIsOpen},e)},r.selectItem=function(e,t,n){t=H(t),r.internalSetState(o({isOpen:r.props.defaultIsOpen,highlightedIndex:r.props.defaultHighlightedIndex,selectedItem:e,inputValue:r.props.itemToString(e)},t),n)},r.selectItemAtIndex=function(e,t,n){var o=r.items[e];null!=o&&r.selectItem(o,t,n)},r.selectHighlightedItem=function(e,t){return r.selectItemAtIndex(r.getState().highlightedIndex,e,t)},r.internalSetState=function(e,t){var n,i,u={},s="function"==typeof e;return!s&&e.hasOwnProperty("inputValue")&&r.props.onInputValueChange(e.inputValue,o({},r.getStateAndHelpers(),{},e)),r.setState((function(t){t=r.getState(t);var a=s?e(t):e;a=r.props.stateReducer(t,a),n=a.hasOwnProperty("selectedItem");var l={},d={};return n&&a.selectedItem!==t.selectedItem&&(i=a.selectedItem),a.type=a.type||U,Object.keys(a).forEach((function(e){t[e]!==a[e]&&(u[e]=a[e]),"type"!==e&&(d[e]=a[e],R(r.props,e)||(l[e]=a[e]))})),s&&a.hasOwnProperty("inputValue")&&r.props.onInputValueChange(a.inputValue,o({},r.getStateAndHelpers(),{},a)),l}),(function(){S(t)(),Object.keys(u).length>1&&r.props.onStateChange(u,r.getStateAndHelpers()),n&&r.props.onSelect(e.selectedItem,r.getStateAndHelpers()),void 0!==i&&r.props.onChange(i,r.getStateAndHelpers()),r.props.onUserAction(u,r.getStateAndHelpers())}))},r.rootRef=function(e){return r._rootNode=e},r.getRootProps=function(e,t){var i,u=void 0===e?{}:e,s=u.refKey,a=void 0===s?"ref":s,l=u.ref,d=n(u,["refKey","ref"]),c=(void 0===t?{}:t).suppressRefError,p=void 0!==c&&c;r.getRootProps.called=!0,r.getRootProps.refKey=a,r.getRootProps.suppressRefError=p;var f=r.getState().isOpen;return o(((i={})[a]=D(l,r.rootRef),i.role="combobox",i["aria-expanded"]=f,i["aria-haspopup"]="listbox",i["aria-owns"]=f?r.menuId:null,i["aria-labelledby"]=r.labelId,i),d)},r.keyDownHandlers={ArrowDown:function(e){var t=this;if(e.preventDefault(),this.getState().isOpen){var n=e.shiftKey?5:1;this.moveHighlightedIndex(n,{type:z})}else this.internalSetState({isOpen:!0,type:z},(function(){var e=t.getItemCount();if(e>0){var n=V(1,t.getState().highlightedIndex,e,(function(e){return t.getItemNodeFromIndex(e)}));t.setHighlightedIndex(n,{type:z})}}))},ArrowUp:function(e){var t=this;if(e.preventDefault(),this.getState().isOpen){var n=e.shiftKey?-5:-1;this.moveHighlightedIndex(n,{type:W})}else this.internalSetState({isOpen:!0,type:W},(function(){var e=t.getItemCount();if(e>0){var n=V(-1,t.getState().highlightedIndex,e,(function(e){return t.getItemNodeFromIndex(e)}));t.setHighlightedIndex(n,{type:W})}}))},Enter:function(e){var t=this.getState(),n=t.isOpen,o=t.highlightedIndex;if(n&&null!=o){e.preventDefault();var i=this.items[o],r=this.getItemNodeFromIndex(o);if(null==i||r&&r.hasAttribute("disabled"))return;this.selectHighlightedItem({type:Y})}},Escape:function(e){e.preventDefault(),this.reset({type:q,selectedItem:null,inputValue:""})}},r.buttonKeyDownHandlers=o({},r.keyDownHandlers,{" ":function(e){e.preventDefault(),this.toggleMenu({type:ee})}}),r.inputKeyDownHandlers=o({},r.keyDownHandlers,{Home:function(e){var t=this;e.preventDefault();var n=this.getItemCount(),o=this.getState().isOpen;if(!(n<=0)&&o){var i=N(1,0,n,(function(e){return t.getItemNodeFromIndex(e)}),!1);this.setHighlightedIndex(i,{type:X})}},End:function(e){var t=this;e.preventDefault();var n=this.getItemCount(),o=this.getState().isOpen;if(!(n<=0)&&o){var i=N(-1,n-1,n,(function(e){return t.getItemNodeFromIndex(e)}),!1);this.setHighlightedIndex(i,{type:G})}}}),r.getToggleButtonProps=function(e){var t=void 0===e?{}:e,i=t.onClick,u=(t.onPress,t.onKeyDown),s=t.onKeyUp,a=t.onBlur,l=n(t,["onClick","onPress","onKeyDown","onKeyUp","onBlur"]),d=r.getState().isOpen,c={onClick:k(i,r.buttonHandleClick),onKeyDown:k(u,r.buttonHandleKeyDown),onKeyUp:k(s,r.buttonHandleKeyUp),onBlur:k(a,r.buttonHandleBlur)};return o({type:"button",role:"button","aria-label":d?"close menu":"open menu","aria-haspopup":!0,"data-toggle":!0},l.disabled?{}:c,{},l)},r.buttonHandleKeyUp=function(e){e.preventDefault()},r.buttonHandleKeyDown=function(e){var t=A(e);r.buttonKeyDownHandlers[t]&&r.buttonKeyDownHandlers[t].call(i(r),e)},r.buttonHandleClick=function(e){e.preventDefault(),r.props.environment.document.activeElement===r.props.environment.document.body&&e.target.focus(),r.internalSetTimeout((function(){return r.toggleMenu({type:te})}))},r.buttonHandleBlur=function(e){var t=e.target;r.internalSetTimeout((function(){r.isMouseDown||null!=r.props.environment.document.activeElement&&r.props.environment.document.activeElement.id===r.inputId||r.props.environment.document.activeElement===t||r.reset({type:ne})}))},r.getLabelProps=function(e){return o({htmlFor:r.inputId,id:r.labelId},e)},r.getInputProps=function(e){var t=void 0===e?{}:e,i=t.onKeyDown,u=t.onBlur,s=t.onChange,a=t.onInput,l=(t.onChangeText,n(t,["onKeyDown","onBlur","onChange","onInput","onChangeText"])),d={};var c,p=r.getState(),f=p.inputValue,h=p.isOpen,g=p.highlightedIndex;l.disabled||((c={}).onChange=k(s,a,r.inputHandleChange),c.onKeyDown=k(i,r.inputHandleKeyDown),c.onBlur=k(u,r.inputHandleBlur),d=c);return o({"aria-autocomplete":"list","aria-activedescendant":h&&"number"==typeof g&&g>=0?r.getItemId(g):null,"aria-controls":h?r.menuId:null,"aria-labelledby":r.labelId,autoComplete:"off",value:f,id:r.inputId},d,{},l)},r.inputHandleKeyDown=function(e){var t=A(e);t&&r.inputKeyDownHandlers[t]&&r.inputKeyDownHandlers[t].call(i(r),e)},r.inputHandleChange=function(e){r.internalSetState({type:Z,isOpen:!0,inputValue:e.target.value,highlightedIndex:r.props.defaultHighlightedIndex})},r.inputHandleBlur=function(){r.internalSetTimeout((function(){var e=r.props.environment.document&&!!r.props.environment.document.activeElement&&!!r.props.environment.document.activeElement.dataset&&r.props.environment.document.activeElement.dataset.toggle&&r._rootNode&&r._rootNode.contains(r.props.environment.document.activeElement);r.isMouseDown||e||r.reset({type:Q})}))},r.menuRef=function(e){r._menuNode=e},r.getMenuProps=function(e,t){var i,u=void 0===e?{}:e,s=u.refKey,a=void 0===s?"ref":s,l=u.ref,d=n(u,["refKey","ref"]),c=(void 0===t?{}:t).suppressRefError,p=void 0!==c&&c;return r.getMenuProps.called=!0,r.getMenuProps.refKey=a,r.getMenuProps.suppressRefError=p,o(((i={})[a]=D(l,r.menuRef),i.role="listbox",i["aria-labelledby"]=d&&d["aria-label"]?null:r.labelId,i.id=r.menuId,i),d)},r.getItemProps=function(e){var t,i=void 0===e?{}:e,u=i.onMouseMove,s=i.onMouseDown,a=i.onClick,l=(i.onPress,i.index),d=i.item,c=void 0===d?void 0:d,p=n(i,["onMouseMove","onMouseDown","onClick","onPress","index","item"]);void 0===l?(r.items.push(c),l=r.items.indexOf(c)):r.items[l]=c;var f=a,h=((t={onMouseMove:k(u,(function(){l!==r.getState().highlightedIndex&&(r.setHighlightedIndex(l,{type:$}),r.avoidScrolling=!0,r.internalSetTimeout((function(){return r.avoidScrolling=!1}),250))})),onMouseDown:k(s,(function(e){e.preventDefault()}))}).onClick=k(f,(function(){r.selectItemAtIndex(l,{type:J})})),t),g=p.disabled?{onMouseDown:h.onMouseDown}:h;return o({id:r.getItemId(l),role:"option","aria-selected":r.getState().highlightedIndex===l},g,{},p)},r.clearItems=function(){r.items=[]},r.reset=function(e,t){void 0===e&&(e={}),e=H(e),r.internalSetState((function(t){var n=t.selectedItem;return o({isOpen:r.props.defaultIsOpen,highlightedIndex:r.props.defaultHighlightedIndex,inputValue:r.props.itemToString(n)},e)}),t)},r.toggleMenu=function(e,t){void 0===e&&(e={}),e=H(e),r.internalSetState((function(t){var n=t.isOpen;return o({isOpen:!n},n&&{highlightedIndex:r.props.defaultHighlightedIndex},{},e)}),(function(){var n=r.getState(),o=n.isOpen,i=n.highlightedIndex;o&&r.getItemCount()>0&&"number"==typeof i&&r.setHighlightedIndex(i,e),S(t)()}))},r.openMenu=function(e){r.internalSetState({isOpen:!0},e)},r.closeMenu=function(e){r.internalSetState({isOpen:!1},e)},r.updateStatus=E((function(){var e=r.getState(),t=r.items[e.highlightedIndex],n=r.getItemCount(),i=r.props.getA11yStatusMessage(o({itemToString:r.props.itemToString,previousResultCount:r.previousResultCount,resultCount:n,highlightedItem:t},e));r.previousResultCount=n,B(i,r.props.environment.document)}),200);var u=r.props,s=u.defaultHighlightedIndex,a=u.initialHighlightedIndex,l=void 0===a?s:a,d=u.defaultIsOpen,c=u.initialIsOpen,p=void 0===c?d:c,f=u.initialInputValue,h=void 0===f?"":f,g=u.initialSelectedItem,m=void 0===g?null:g,I=r.getState({highlightedIndex:l,isOpen:p,inputValue:h,selectedItem:m});return null!=I.selectedItem&&void 0===r.props.initialInputValue&&(I.inputValue=r.props.itemToString(I.selectedItem)),r.state=I,r}u=e,(r=s).prototype=Object.create(u.prototype),r.prototype.constructor=r,r.__proto__=u;var a=s.prototype;return a.internalClearTimeouts=function(){this.timeoutIds.forEach((function(e){clearTimeout(e)})),this.timeoutIds=[]},a.getState=function(e){return void 0===e&&(e=this.state),F(e,this.props)},a.getItemCount=function(){var e=this.items.length;return null!=this.itemCount?e=this.itemCount:void 0!==this.props.itemCount&&(e=this.props.itemCount),e},a.getItemNodeFromIndex=function(e){return this.props.environment.document.getElementById(this.getItemId(e))},a.scrollHighlightedItemIntoView=function(){var e=this.getItemNodeFromIndex(this.getState().highlightedIndex);this.props.scrollIntoView(e,this._menuNode)},a.moveHighlightedIndex=function(e,t){var n=this,o=this.getItemCount(),i=this.getState().highlightedIndex;if(o>0){var r=V(e,i,o,(function(e){return n.getItemNodeFromIndex(e)}));this.setHighlightedIndex(r,t)}},a.getStateAndHelpers=function(){var e=this.getState(),t=e.highlightedIndex,n=e.inputValue,o=e.selectedItem,i=e.isOpen,r=this.props.itemToString,u=this.id,s=this.getRootProps,a=this.getToggleButtonProps,l=this.getLabelProps,d=this.getMenuProps,c=this.getInputProps,p=this.getItemProps,f=this.openMenu,h=this.closeMenu,g=this.toggleMenu,m=this.selectItem,I=this.selectItemAtIndex,v=this.selectHighlightedItem,y=this.setHighlightedIndex,x=this.clearSelection,b=this.clearItems;return{getRootProps:s,getToggleButtonProps:a,getLabelProps:l,getMenuProps:d,getInputProps:c,getItemProps:p,reset:this.reset,openMenu:f,closeMenu:h,toggleMenu:g,selectItem:m,selectItemAtIndex:I,selectHighlightedItem:v,setHighlightedIndex:y,clearSelection:x,clearItems:b,setItemCount:this.setItemCount,unsetItemCount:this.unsetItemCount,setState:this.internalSetState,itemToString:r,id:u,highlightedIndex:t,inputValue:n,isOpen:i,selectedItem:o}},a.componentDidMount=function(){var e=this,t=function(){e.isMouseDown=!0},n=function(t){e.isMouseDown=!1,!L(t.target,e._rootNode,e._menuNode,e.props.environment.document)&&e.getState().isOpen&&e.reset({type:1},(function(){return e.props.onOuterClick(e.getStateAndHelpers())}))},o=function(){e.isTouchMove=!1},i=function(){e.isTouchMove=!0},r=function(t){var n=L(t.target,e._rootNode,e._menuNode,e.props.environment.document,!1);e.isTouchMove||n||!e.getState().isOpen||e.reset({type:16},(function(){return e.props.onOuterClick(e.getStateAndHelpers())}))},u=this.props.environment;u.addEventListener("mousedown",t),u.addEventListener("mouseup",n),u.addEventListener("touchstart",o),u.addEventListener("touchmove",i),u.addEventListener("touchend",r),this.cleanup=function(){e.internalClearTimeouts(),e.updateStatus.cancel(),u.removeEventListener("mousedown",t),u.removeEventListener("mouseup",n),u.removeEventListener("touchstart",o),u.removeEventListener("touchmove",i),u.removeEventListener("touchend",r)}},a.shouldScroll=function(e,t){var n=(void 0===this.props.highlightedIndex?this.getState():this.props).highlightedIndex,o=(void 0===t.highlightedIndex?e:t).highlightedIndex;return n&&this.getState().isOpen&&!e.isOpen||n!==o},a.componentDidUpdate=function(e,t){R(this.props,"selectedItem")&&this.props.selectedItemChanged(e.selectedItem,this.props.selectedItem)&&this.internalSetState({type:15,inputValue:this.props.itemToString(this.props.selectedItem)}),!this.avoidScrolling&&this.shouldScroll(t,e)&&this.scrollHighlightedItemIntoView(),this.updateStatus()},a.componentWillUnmount=function(){this.cleanup()},a.render=function(){var e=K(this.props.children,O);this.clearItems(),this.getRootProps.called=!1,this.getRootProps.refKey=void 0,this.getRootProps.suppressRefError=void 0,this.getMenuProps.called=!1,this.getMenuProps.refKey=void 0,this.getMenuProps.suppressRefError=void 0,this.getLabelProps.called=!1,this.getInputProps.called=!1;var n=K(e(this.getStateAndHelpers()));return n?this.getRootProps.called||this.props.suppressRefError?n:function(e){return"string"==typeof e.type}(n)?t.cloneElement(n,this.getRootProps(function(e){return e.props}(n))):void 0:null},s}(t.Component);return e.defaultProps={defaultHighlightedIndex:null,defaultIsOpen:!1,getA11yStatusMessage:P,itemToString:function(e){return null==e?"":String(e)},onStateChange:O,onInputValueChange:O,onUserAction:O,onChange:O,onSelect:O,onOuterClick:O,selectedItemChanged:function(e,t){return e!==t},environment:"undefined"==typeof window?{}:window,stateReducer:function(e,t){return t},suppressRefError:!1,scrollIntoView:M},e.stateChangeTypes=oe,e}(),re={highlightedIndex:-1,isOpen:!1,selectedItem:null};function ue(e,t){var n=void 0===t?{}:t,o=n.id,i=n.labelId,r=n.menuId,u=n.getItemId,s=n.toggleButtonId,a=void 0===o?"downshift-"+e():o;return{labelId:i||a+"-label",menuId:r||a+"-menu",getItemId:u||function(e){return a+"-item-"+e},toggleButtonId:s||a+"-toggle-button"}}function se(e,t,n){return void 0!==e?e:0===n.length?-1:n.indexOf(t)}function ae(e){return/^\S{1}$/.test(e)}function le(e){return""+e.slice(0,1).toUpperCase()+e.slice(1)}function de(e,t,n){Object.keys(t).forEach((function(o){!function(e,t,n,o){var i="on"+le(e)+"Change";t[i]&&void 0!==o[e]&&o[e]!==n[e]&&t[i](o)}(o,e,t,n)})),e.onStateChange&&void 0!==n&&e.onStateChange(n)}function ce(e,n,i){var r=t.useRef(),u=t.useCallback((function(t,n){return t=F(t,n.props),(0,n.props.stateReducer)(t,o({},n,{changes:e(t,n)}))}),[e]),s=t.useReducer(u,n),a=s[0],l=s[1];return t.useEffect((function(){r.current&&de(i,r.current,a),r.current=a}),[a,i]),[F(a,i),l]}var pe=0,fe=function(){return++pe};function he(){var e=t.useState(null),n=e[0],o=e[1];return t.useEffect((function(){return o(fe())}),[]),n}function ge(e,t){return!!t&&(e.relatedTarget===t||e.nativeEvent&&(t===e.nativeEvent.explicitOriginalTarget||t.contains(e.nativeEvent.explicitOriginalTarget)))}var me={itemToString:function(e){return e?String(e):""},stateReducer:function(e,t){return t.changes},getA11yStatusMessage:function(e){var t=e.isOpen,n=e.items;if(!n)return"";var o=n.length;return t?0===o?"No results are available":o+" result"+(1===o?" is":"s are")+" available, use up and down arrow keys to navigate. Press Enter key to select.":""},getA11ySelectionMessage:function(e){var t=e.selectedItem;return(0,e.itemToString)(t)+" has been selected."},scrollIntoView:M,circularNavigation:!1,environment:"undefined"==typeof window?{}:window};function Ie(e,t,n){var i="default"+le(t);return i in e?e[i]:o({},re,{},n)[t]}function ve(e,t,n){if(t in e)return e[t];var o="initial"+le(t);return o in e?e[o]:Ie(e,t,n)}function ye(e,t,n,o){var i=e.items,r=e.initialHighlightedIndex,u=e.defaultHighlightedIndex,s=t.selectedItem,a=t.highlightedIndex;return void 0!==r&&a===r?r:void 0!==u?u:s?0===n?i.indexOf(s):V(n,i.indexOf(s),i.length,o,!1):0===n?-1:n<0?i.length-1:0}var xe={keysSoFar:""};function be(e,t){return Ie(e,t,xe)}function we(e,t){return ve(e,t,xe)}function Se(e,t,n,o,i){for(var r=n.map((function(e){return o(e).toLowerCase()})),u=e.toLowerCase(),s=function(e,t){var n=i(t);return e.startsWith(u)&&!(n&&n.hasAttribute("disabled"))},a=t+1;a<r.length;a++){if(s(r[a],a))return a}for(var l=0;l<t;l++){if(s(r[l],l))return l}return t}m.array.isRequired,m.func,m.func,m.func,m.bool,m.number,m.number,m.number,m.bool,m.bool,m.bool,m.any,m.any,m.any,m.string,m.string,m.string,m.func,m.string,m.func,m.func,m.func,m.func,m.func,m.shape({addEventListener:m.func,removeEventListener:m.func,document:m.shape({getElementById:m.func,activeElement:m.any,body:m.any})});var Oe=0,Me=1,Ce=2,Ee=3,ke=4,De=5,Pe=6,Ke=7,Te=8,He=9,Fe=10,Re=11,Ae=12,Ve=13,Ne=14,Le=15,_e=16,Be=17,je=18,Ue=19,$e=20,We=21,ze=22,qe=Object.freeze({__proto__:null,MenuKeyDownArrowDown:Oe,MenuKeyDownArrowUp:Me,MenuKeyDownEscape:Ce,MenuKeyDownHome:Ee,MenuKeyDownEnd:ke,MenuKeyDownEnter:De,MenuKeyDownSpaceButton:Pe,MenuKeyDownCharacter:Ke,MenuBlur:Te,MenuMouseLeave:He,ItemMouseMove:Fe,ItemClick:Re,ToggleButtonKeyDownCharacter:Ae,ToggleButtonKeyDownArrowDown:Ve,ToggleButtonKeyDownArrowUp:Ne,ToggleButtonClick:Le,FunctionToggleMenu:_e,FunctionOpenMenu:Be,FunctionCloseMenu:je,FunctionSetHighlightedIndex:Ue,FunctionSelectItem:$e,FunctionClearKeysSoFar:We,FunctionReset:ze});function Ye(e,t){var n,i=t.type,r=t.props,u=t.shiftKey;switch(i){case Fe:n={highlightedIndex:t.index};break;case Re:n={isOpen:be(r,"isOpen"),highlightedIndex:be(r,"highlightedIndex"),selectedItem:r.items[t.index]};break;case Te:n={isOpen:!1,highlightedIndex:-1};break;case Oe:n={highlightedIndex:V(u?5:1,e.highlightedIndex,r.items.length,t.getItemNodeFromIndex,r.circularNavigation)};break;case Me:n={highlightedIndex:V(u?-5:-1,e.highlightedIndex,r.items.length,t.getItemNodeFromIndex,r.circularNavigation)};break;case Ee:n={highlightedIndex:N(1,0,r.items.length,t.getItemNodeFromIndex,!1)};break;case ke:n={highlightedIndex:N(-1,r.items.length-1,r.items.length,t.getItemNodeFromIndex,!1)};break;case Ce:n={isOpen:!1,highlightedIndex:-1};break;case De:case Pe:n=o({isOpen:be(r,"isOpen"),highlightedIndex:be(r,"highlightedIndex")},e.highlightedIndex>=0&&{selectedItem:r.items[e.highlightedIndex]});break;case Ke:var s=t.key,a=""+e.keysSoFar+s,l=Se(a,e.highlightedIndex,r.items,r.itemToString,t.getItemNodeFromIndex);n=o({keysSoFar:a},l>=0&&{highlightedIndex:l});break;case He:n={highlightedIndex:-1};break;case Ae:var d=t.key,c=""+e.keysSoFar+d,p=Se(c,e.selectedItem?r.items.indexOf(e.selectedItem):-1,r.items,r.itemToString,t.getItemNodeFromIndex);n=o({keysSoFar:c},p>=0&&{selectedItem:r.items[p]});break;case Ve:n={isOpen:!0,highlightedIndex:ye(r,e,1,t.getItemNodeFromIndex)};break;case Ne:n={isOpen:!0,highlightedIndex:ye(r,e,-1,t.getItemNodeFromIndex)};break;case Le:case _e:n={isOpen:!e.isOpen,highlightedIndex:e.isOpen?-1:ye(r,e,0)};break;case Be:n={isOpen:!0,highlightedIndex:ye(r,e,0)};break;case je:n={isOpen:!1};break;case Ue:n={highlightedIndex:t.highlightedIndex};break;case $e:n={selectedItem:t.selectedItem};break;case We:n={keysSoFar:""};break;case ze:n={highlightedIndex:be(r,"highlightedIndex"),isOpen:be(r,"isOpen"),selectedItem:be(r,"selectedItem")};break;default:throw new Error("Reducer called without proper action type.")}return o({},e,{},n)}function Xe(e){void 0===e&&(e={});var i=o({},me,{},e),r=i.items,u=i.itemToString,s=i.getA11yStatusMessage,a=i.getA11ySelectionMessage,l=i.initialIsOpen,d=i.defaultIsOpen,c=i.scrollIntoView,p=i.environment,f=ce(Ye,function(e){var t=we(e,"selectedItem"),n=we(e,"isOpen"),o=we(e,"highlightedIndex");return{highlightedIndex:o<0&&t?e.items.indexOf(t):o,isOpen:n,selectedItem:t,keysSoFar:""}}(i),i),h=f[0],g=h.isOpen,m=h.highlightedIndex,I=h.selectedItem,v=h.keysSoFar,y=f[1],x=function(e){return y(o({props:i},e))},b=ue(he,i),w=b.labelId,S=b.getItemId,O=b.menuId,M=b.toggleButtonId,C=t.useRef(null),P=t.useRef(null),K=t.useRef();K.current=[];var T=t.useRef(!0),H=t.useRef(!0),F=t.useRef(null);t.useEffect((function(){T.current||B(s({isOpen:g,items:r,selectedItem:I,itemToString:u}),p.document)}),[g]),t.useEffect((function(){T.current||B(a({isOpen:g,items:r,selectedItem:I,itemToString:u}),p.document)}),[I]),t.useEffect((function(){T.current&&(F.current=E((function(){x({type:We})}),500)),v&&F.current()}),[v]),t.useEffect((function(){T.current?(l||d||g)&&P.current.focus():g?P.current.focus():p.document.activeElement===P.current&&C.current.focus()}),[g]),t.useEffect((function(){m<0||!g||!K.current.length||(!1===H.current?H.current=!0:c(K.current[m],P.current))}),[m]),t.useEffect((function(){T.current=!1}),[]);var R=function(e){return K.current[e]},V={ArrowDown:function(e){e.preventDefault(),x({type:Oe,shiftKey:e.shiftKey,getItemNodeFromIndex:R})},ArrowUp:function(e){e.preventDefault(),x({type:Me,shiftKey:e.shiftKey,getItemNodeFromIndex:R})},Home:function(e){e.preventDefault(),x({type:Ee,getItemNodeFromIndex:R})},End:function(e){e.preventDefault(),x({type:ke,getItemNodeFromIndex:R})},Escape:function(){x({type:Ce})},Enter:function(e){e.preventDefault(),x({type:De})}," ":function(e){e.preventDefault(),x({type:Pe})},Tab:function(e){e.shiftKey&&x({type:Te})}},N={ArrowDown:function(e){e.preventDefault(),x({type:Ve,getItemNodeFromIndex:R})},ArrowUp:function(e){e.preventDefault(),x({type:Ne,getItemNodeFromIndex:R})}},L=function(e){var t=A(e);t&&V[t]?V[t](e):ae(t)&&x({type:Ke,key:t,getItemNodeFromIndex:R})},_=function(e){ge(e,C.current)||x({type:Te})},j=function(){x({type:He})},U=function(){x({type:Le})},$=function(e){var t=A(e);t&&N[t]?N[t](e):ae(t)&&x({type:Ae,key:t,getItemNodeFromIndex:R})};return{getToggleButtonProps:function(e){var t,i=void 0===e?{}:e,r=i.onClick,u=i.onKeyDown,s=i.refKey,a=void 0===s?"ref":s,l=i.ref,d=n(i,["onClick","onKeyDown","refKey","ref"]),c=o(((t={})[a]=D(l,(function(e){C.current=e})),t.id=M,t["aria-haspopup"]="listbox",t["aria-expanded"]=g,t["aria-labelledby"]=w+" "+M,t),d);return d.disabled||(c.onClick=k(r,U),c.onKeyDown=k(u,$)),c},getLabelProps:function(e){return o({id:w,htmlFor:M},e)},getMenuProps:function(e){var t,i=void 0===e?{}:e,r=i.onKeyDown,u=i.onBlur,s=i.onMouseLeave,a=i.refKey,l=void 0===a?"ref":a,d=i.ref,c=n(i,["onKeyDown","onBlur","onMouseLeave","refKey","ref"]);return o(((t={})[l]=D(d,(function(e){P.current=e})),t.id=O,t.role="listbox",t["aria-labelledby"]=w,t.tabIndex=-1,t),m>-1&&{"aria-activedescendant":S(m)},{onKeyDown:k(r,L),onBlur:k(u,_),onMouseLeave:k(s,j)},c)},getItemProps:function(e){var t,i=void 0===e?{}:e,u=i.item,s=i.index,a=i.refKey,l=void 0===a?"ref":a,d=i.ref,c=i.onMouseMove,p=i.onClick,f=n(i,["item","index","refKey","ref","onMouseMove","onClick"]),h=se(s,u,r);if(h<0)throw new Error("Pass either item or item index in getItemProps!");var g=o(((t={})[l]=D(d,(function(e){e&&K.current.push(e)})),t.role="option",t),h===m&&{"aria-selected":!0},{id:S(h)},f);return f.disabled||(g.onMouseMove=k(c,(function(){return function(e){e!==m&&(H.current=!1,x({type:Fe,index:e}))}(h)})),g.onClick=k(p,(function(){return function(e){x({type:Re,index:e})}(h)}))),g},toggleMenu:function(){x({type:_e})},openMenu:function(){x({type:Be})},closeMenu:function(){x({type:je})},setHighlightedIndex:function(e){x({type:Ue,highlightedIndex:e})},selectItem:function(e){x({type:$e,selectedItem:e})},reset:function(){x({type:ze})},highlightedIndex:m,isOpen:g,selectedItem:I}}Xe.stateChangeTypes=qe;var Ge={inputValue:""};function Je(e,t){return Ie(e,t,Ge)}function Qe(e,t){return ve(e,t,Ge)}m.array.isRequired,m.func,m.func,m.func,m.bool,m.number,m.number,m.number,m.bool,m.bool,m.bool,m.any,m.any,m.any,m.string,m.string,m.string,m.string,m.string,m.string,m.func,m.string,m.string,m.func,m.func,m.func,m.func,m.func,m.func,m.shape({addEventListener:m.func,removeEventListener:m.func,document:m.shape({getElementById:m.func,activeElement:m.any,body:m.any})});var Ze=o({},me,{circularNavigation:!0}),et=0,tt=1,nt=2,ot=3,it=4,rt=5,ut=6,st=7,at=8,lt=9,dt=10,ct=11,pt=12,ft=13,ht=14,gt=15,mt=16,It=17,vt=18,yt=Object.freeze({__proto__:null,InputKeyDownArrowDown:et,InputKeyDownArrowUp:tt,InputKeyDownEscape:nt,InputKeyDownHome:ot,InputKeyDownEnd:it,InputKeyDownEnter:rt,InputChange:ut,InputBlur:st,MenuMouseLeave:at,ItemMouseMove:lt,ItemClick:dt,ToggleButtonClick:ct,FunctionToggleMenu:pt,FunctionOpenMenu:ft,FunctionCloseMenu:ht,FunctionSetHighlightedIndex:gt,FunctionSelectItem:mt,FunctionSetInputValue:It,FunctionReset:vt});function xt(e,t){var n,i=t.type,r=t.props,u=t.shiftKey;switch(i){case lt:n={highlightedIndex:t.index};break;case dt:n={isOpen:Je(r,"isOpen"),highlightedIndex:Je(r,"highlightedIndex"),selectedItem:r.items[t.index],inputValue:r.itemToString(r.items[t.index])};break;case et:n=e.isOpen?{highlightedIndex:V(u?5:1,e.highlightedIndex,r.items.length,t.getItemNodeFromIndex,r.circularNavigation)}:{highlightedIndex:ye(r,e,1,t.getItemNodeFromIndex),isOpen:!0};break;case tt:n=e.isOpen?{highlightedIndex:V(u?-5:-1,e.highlightedIndex,r.items.length,t.getItemNodeFromIndex,r.circularNavigation)}:{highlightedIndex:ye(r,e,-1,t.getItemNodeFromIndex),isOpen:!0};break;case rt:n=o({},e.highlightedIndex>=0&&{selectedItem:r.items[e.highlightedIndex],isOpen:Je(r,"isOpen"),highlightedIndex:Je(r,"highlightedIndex"),inputValue:r.itemToString(r.items[e.highlightedIndex])});break;case nt:n={isOpen:!1,selectedItem:null,highlightedIndex:-1,inputValue:""};break;case ot:n={highlightedIndex:N(1,0,r.items.length,t.getItemNodeFromIndex,!1)};break;case it:n={highlightedIndex:N(-1,r.items.length-1,r.items.length,t.getItemNodeFromIndex,!1)};break;case st:n=o({isOpen:!1},e.highlightedIndex>=0&&{selectedItem:r.items[e.highlightedIndex],inputValue:r.itemToString(r.items[e.highlightedIndex]),highlightedIndex:-1});break;case ut:n={isOpen:!0,highlightedIndex:Je(r,"highlightedIndex"),inputValue:t.inputValue};break;case at:n={highlightedIndex:-1};break;case ct:case pt:n={isOpen:!e.isOpen,highlightedIndex:e.isOpen?-1:ye(r,e,0)};break;case ft:n={isOpen:!0,highlightedIndex:ye(r,e,0)};break;case ht:n={isOpen:!1};break;case gt:n={highlightedIndex:t.highlightedIndex};break;case mt:n={selectedItem:t.selectedItem};break;case It:n={inputValue:t.inputValue};break;case vt:n={highlightedIndex:Je(r,"highlightedIndex"),isOpen:Je(r,"isOpen"),selectedItem:Je(r,"selectedItem"),inputValue:Je(r,"inputValue")};break;default:throw new Error("Reducer called without proper action type.")}return o({},e,{},n)}function bt(e){void 0===e&&(e={});var i=o({},Ze,{},e),r=i.initialIsOpen,u=i.defaultIsOpen,s=i.items,a=i.scrollIntoView,l=i.getA11ySelectionMessage,d=i.getA11yStatusMessage,c=i.itemToString,p=i.environment,f=ce(xt,function(e){var t=Qe(e,"selectedItem"),n=Qe(e,"isOpen"),o=Qe(e,"highlightedIndex"),i=Qe(e,"inputValue");return""===i&&t&&void 0===e.defaultInputValue&&void 0===e.initialInputValue&&void 0===e.inputValue&&(i=e.itemToString(t)),{highlightedIndex:o<0&&t?e.items.indexOf(t):o,isOpen:n,selectedItem:t,inputValue:i}}(i),i),h=f[0],g=h.isOpen,m=h.highlightedIndex,I=h.selectedItem,v=h.inputValue,y=f[1],x=function(e){return y(o({props:i},e))},b=function(e,t){var i=void 0===t?{}:t,r=i.id,u=i.inputId,s=n(i,["id","inputId"]),a=void 0===r?"downshift-"+e():r;return o({inputId:u||a+"-input"},ue(e,o({id:r},s)))}(he,i),w=b.labelId,S=b.getItemId,O=b.menuId,M=b.toggleButtonId,C=b.inputId,E=t.useRef(null),P=t.useRef(),K=t.useRef(null),T=t.useRef(null),H=t.useRef(null);P.current=[];var F=t.useRef(!0),R=t.useRef(!0),V=t.useRef({isMouseDown:!1,isTouchMove:!1});t.useEffect((function(){R.current||B(d({isOpen:g,items:s,selectedItem:I,itemToString:c,inputValue:v}),p.document)}),[g]),t.useEffect((function(){R.current||B(l({isOpen:g,items:s,selectedItem:I,itemToString:c,inputValue:v}),p.document)}),[I]),t.useEffect((function(){m<0||!g||!P.current.length||(!1===F.current?F.current=!0:a(P.current[m],E.current))}),[m]),t.useEffect((function(){R.current?(r||u||g)&&K.current.focus():g&&K.current.focus()}),[g]),t.useEffect((function(){R.current=!1}),[]),t.useEffect((function(){var e=function(){V.current.isMouseDown=!0},t=function(e){V.current.isMouseDown=!1,g&&!L(e.target,H.current,E.current,p.document)&&x({type:st})},n=function(){V.current.isTouchMove=!1},o=function(){V.current.isTouchMove=!0},i=function(e){!g||V.current.isTouchMove||L(e.target,H.current,E.current,p.document,!1)||x({type:st})};return p.addEventListener("mousedown",e),p.addEventListener("mouseup",t),p.addEventListener("touchstart",n),p.addEventListener("touchmove",o),p.addEventListener("touchend",i),function(){p.removeEventListener("mousedown",e),p.removeEventListener("mouseup",t),p.removeEventListener("touchstart",n),p.removeEventListener("touchmove",o),p.removeEventListener("touchend",i)}}));var N=function(e){return P.current[e]},_={ArrowDown:function(e){e.preventDefault(),x({type:et,shiftKey:e.shiftKey,getItemNodeFromIndex:N})},ArrowUp:function(e){e.preventDefault(),x({type:tt,shiftKey:e.shiftKey,getItemNodeFromIndex:N})},Home:function(e){e.preventDefault(),x({type:ot,getItemNodeFromIndex:N})},End:function(e){e.preventDefault(),x({type:it,getItemNodeFromIndex:N})},Escape:function(){x({type:nt})},Enter:function(e){e.preventDefault(),x({type:rt,getItemNodeFromIndex:N})}},j=function(e){var t=A(e);t&&_[t]&&_[t](e)},U=function(e){x({type:ut,inputValue:e.target.value})},$=function(e){!(V.current.isMouseDown||ge(e,T.current))&&x({type:st})},W=function(){x({type:at})},z=function(){x({type:ct})};return{getItemProps:function(e){var t,i,r=void 0===e?{}:e,u=r.item,a=r.index,l=r.refKey,d=void 0===l?"ref":l,c=r.ref,p=r.onMouseMove,f=r.onClick,h=(r.onPress,n(r,["item","index","refKey","ref","onMouseMove","onClick","onPress"])),g=se(a,u,s);if(g<0)throw new Error("Pass either item or item index in getItemProps!");var I=f;return o(((t={})[d]=D(c,(function(e){e&&P.current.push(e)})),t.role="option",t),g===m&&{"aria-selected":!0},{id:S(g)},!h.disabled&&((i={onMouseMove:k(p,(function(){!function(e){e!==m&&(F.current=!1,x({type:lt,index:e}))}(g)}))}).onClick=k(I,(function(){!function(e){x({type:dt,index:e})}(g)})),i),{},h)},getLabelProps:function(e){return o({id:w,htmlFor:C},e)},getMenuProps:function(e){var t,i=void 0===e?{}:e,r=i.onMouseLeave,u=i.refKey,s=void 0===u?"ref":u,a=i.ref,l=n(i,["onMouseLeave","refKey","ref"]);return o(((t={})[s]=D(a,(function(e){E.current=e})),t.id=O,t.role="listbox",t["aria-labelledby"]=w,t.onMouseLeave=k(r,W),t),l)},getInputProps:function(e){var t,i,r=void 0===e?{}:e,u=r.onKeyDown,s=r.onChange,a=r.onInput,l=r.onBlur,d=(r.onChangeText,r.refKey),c=void 0===d?"ref":d,p=r.ref,f=n(r,["onKeyDown","onChange","onInput","onBlur","onChangeText","refKey","ref"]),h={};f.disabled||((i={}).onChange=k(s,a,U),i.onKeyDown=k(u,j),i.onBlur=k(l,$),h=i);return o(((t={})[c]=D(p,(function(e){K.current=e})),t.id=C,t["aria-autocomplete"]="list",t["aria-controls"]=O,t),m>-1&&{"aria-activedescendant":S(m)},{"aria-labelledby":w,autoComplete:"off",value:v},h,{},f)},getComboboxProps:function(e){var t,i=void 0===e?{}:e,r=i.refKey,u=void 0===r?"ref":r,s=i.ref,a=n(i,["refKey","ref"]);return o(((t={})[u]=D(s,(function(e){H.current=e})),t.role="combobox",t["aria-haspopup"]="listbox",t["aria-owns"]=O,t["aria-expanded"]=g,t),a)},getToggleButtonProps:function(e){var t,i=void 0===e?{}:e,r=i.onClick,u=(i.onPress,i.refKey),s=void 0===u?"ref":u,a=i.ref,l=n(i,["onClick","onPress","refKey","ref"]);return o(((t={})[s]=D(a,(function(e){T.current=e})),t.id=M,t.tabIndex=-1,t),!l.disabled&&o({},{onClick:k(r,z)}),{},l)},toggleMenu:function(){x({type:pt})},openMenu:function(){x({type:ft})},closeMenu:function(){x({type:ht})},setHighlightedIndex:function(e){x({type:gt,highlightedIndex:e})},setInputValue:function(e){x({type:It,inputValue:e})},selectItem:function(e){x({type:mt,selectedItem:e})},reset:function(){x({type:vt})},highlightedIndex:m,isOpen:g,selectedItem:I,inputValue:v}}bt.stateChangeTypes=yt,e.default=ie,e.resetIdCounter=function(){w=0},e.useCombobox=bt,e.useSelect=Xe,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=downshift.umd.min.js.map