downshift
Version:
🏎 A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components.
1 lines • 54.6 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact/compat"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","preact/compat","prop-types"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Downshift={},e.React,e.PropTypes)}(this,function(e,t,n){"use strict";function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var o=i(t);function r(e,t){if(null==e)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;n[i]=e[i]}return n}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},u.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}var l,a,d={exports:{}},c={};a||(a=1,d.exports=function(){if(l)return c;l=1;var e,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),s=Symbol.for("react.context"),a=Symbol.for("react.server_context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.for("react.offscreen");function I(e){if("object"==typeof e&&null!==e){var l=e.$$typeof;switch(l){case t:switch(e=e.type){case i:case r:case o:case p:case f:return e;default:switch(e=e&&e.$$typeof){case a:case s:case d:case h:case g:case u:return e;default:return l}}case n:return l}}}return e=Symbol.for("react.module.reference"),c.ContextConsumer=s,c.ContextProvider=u,c.Element=t,c.ForwardRef=d,c.Fragment=i,c.Lazy=h,c.Memo=g,c.Portal=n,c.Profiler=r,c.StrictMode=o,c.Suspense=p,c.SuspenseList=f,c.isAsyncMode=function(){return!1},c.isConcurrentMode=function(){return!1},c.isContextConsumer=function(e){return I(e)===s},c.isContextProvider=function(e){return I(e)===u},c.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===t},c.isForwardRef=function(e){return I(e)===d},c.isFragment=function(e){return I(e)===i},c.isLazy=function(e){return I(e)===h},c.isMemo=function(e){return I(e)===g},c.isPortal=function(e){return I(e)===n},c.isProfiler=function(e){return I(e)===r},c.isStrictMode=function(e){return I(e)===o},c.isSuspense=function(e){return I(e)===p},c.isSuspenseList=function(e){return I(e)===f},c.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===r||t===o||t===p||t===f||t===m||"object"==typeof t&&null!==t&&(t.$$typeof===h||t.$$typeof===g||t.$$typeof===u||t.$$typeof===s||t.$$typeof===d||t.$$typeof===e||void 0!==t.getModuleId)},c.typeOf=I,c}()),d.exports;var p=Object.freeze({__proto__:null,blurButton:14,blurInput:10,changeInput:11,clickButton:13,clickItem:9,controlledPropUpdatedSelectedItem:15,itemMouseEnter:2,keyDownArrowDown:4,keyDownArrowUp:3,keyDownEnd:8,keyDownEnter:6,keyDownEscape:5,keyDownHome:7,keyDownSpaceButton:12,mouseUp:1,touchEnd:16,unknown:0}),f=0;function g(){return String(f++)}function h(e){var t=o.useRef(e);return t.current=e,t}function m(){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 I(){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,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];return t.some(function(t){return t&&t.apply(void 0,[e].concat(i)),e.preventDownshiftDefault||e.hasOwnProperty("nativeEvent")&&e.nativeEvent.preventDownshiftDefault})}}function v(e,t){var n;function i(){n&&clearTimeout(n)}function o(){for(var o=arguments.length,r=new Array(o),u=0;u<o;u++)r[u]=arguments[u];i(),n=setTimeout(function(){n=null,e.apply(void 0,r)},t)}return o.cancel=i,o}var y=v(function(e){b(e).textContent=""},500);function b(e){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)}function x(e,t){e&&t&&(b(t).textContent=e,y(t))}function w(){}function k(e,t){return t?Object.keys(e).reduce(function(e,n){return void 0!==t[n]&&(e[n]=t[n]),e},u({},e)):e}const D=e=>"object"==typeof e&&null!=e&&1===e.nodeType,C=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,S=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){const n=getComputedStyle(e,null);return C(n.overflowY,t)||C(n.overflowX,t)||(e=>{const t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},O=(e,t,n,i,o,r,u,s)=>r<e&&u>t||r>e&&u<t?0:r<=e&&s<=n||u>=t&&s>=n?r-e-i:u>t&&s<n||r<e&&s>n?u-t+o:0,M=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t};function K(e,t){if(e){var n=((e,t)=>{var n,i,o,r;if("undefined"==typeof document)return[];const{inline:u,boundary:s,skipOverflowHiddenElements:l}=t,a="function"==typeof s?s:e=>e!==s;if(!D(e))throw new TypeError("Invalid target");const d=document.scrollingElement||document.documentElement,c=[];let p=e;for(;D(p)&&a(p);){if(p=M(p),p===d){c.push(p);break}null!=p&&p===document.body&&S(p)&&!S(document.documentElement)||null!=p&&S(p,l)&&c.push(p)}const f=null!=(i=null==(n=window.visualViewport)?void 0:n.width)?i:innerWidth,g=null!=(r=null==(o=window.visualViewport)?void 0:o.height)?r:innerHeight,{scrollX:h,scrollY:m}=window,{height:I,width:v,top:y,right:b,bottom:x,left:w}=e.getBoundingClientRect(),{top:k,right:C,left:K}=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);let T=y-k,E="center"===u?w+v/2-K+C:"end"===u?b+C:w-K;const H=[];for(let e=0;e<c.length;e++){const t=c[e],{height:n,width:i,top:o,right:r,bottom:s,left:l}=t.getBoundingClientRect();if(y>=0&&w>=0&&x<=g&&b<=f&&(t===d&&!S(t)||y>=o&&x<=s&&w>=l&&b<=r))return H;const a=getComputedStyle(t),p=parseInt(a.borderLeftWidth,10),k=parseInt(a.borderTopWidth,10),D=parseInt(a.borderRightWidth,10),C=parseInt(a.borderBottomWidth,10);let M=0,K=0;const P="offsetWidth"in t?t.offsetWidth-t.clientWidth-p-D:0,R="offsetHeight"in t?t.offsetHeight-t.clientHeight-k-C:0,V="offsetWidth"in t?0===t.offsetWidth?0:i/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(d===t)M=O(m,m+g,g,k,C,m+T,m+T+I,I),K="start"===u?E:"center"===u?E-f/2:"end"===u?E-f:O(h,h+f,f,p,D,h+E,h+E+v,v),M=Math.max(0,M+m),K=Math.max(0,K+h);else{M=O(o,s,n,k,C+R,T,T+I,I),K="start"===u?E-l-p:"center"===u?E-(l+i/2)+P/2:"end"===u?E-r+D+P:O(l,r,i,p,D+P,E,E+v,v);const{scrollLeft:e,scrollTop:a}=t;M=0===A?0:Math.max(0,Math.min(a+M/A,t.scrollHeight-n/A+R)),K=0===V?0:Math.max(0,Math.min(e+K/V,t.scrollWidth-i/V+P)),T+=a-M,E+=e-K}H.push({el:t,top:M,left:K})}return H})(e,{boundary:t});n.forEach(function(e){var t=e.el,n=e.top,i=e.left;t.scrollTop=n,t.scrollLeft=i})}}function T(e){var t=e.key,n=e.keyCode;return n>=37&&n<=40&&!t.startsWith("Arrow")?"Arrow"+t:t}function E(e,t,n,i,o){void 0===o&&(o=!1);var r=n.length;if(t){for(var u=e;u>=0;u--)if(!i(n[u],u))return u}else for(var s=e;s<r;s++)if(!i(n[s],s))return s;return o?E(t?r-1:0,t,n,i):-1}function H(e,t,n,i,o){void 0===o&&(o=!1);var r=n.length;if(0===r)return-1;var u=r-1;("number"!=typeof e||e<0||e>u)&&(e=t>0?-1:u+1);var s=e+t;s<0?s=o?u:0:s>u&&(s=o?0:u);var l=E(s,t<0,n,i,o);return-1===l?e>=r?-1:e:l}function P(e,t,n,i){return void 0===i&&(i=!0),!!n&&t.some(function(t){return t&&(R(t,e,n)||i&&R(t,n.document.activeElement,n))})}function R(e,t,n){return e===t||t instanceof n.Node&&e.contains(t)}function V(e){return"function"==typeof e?e:w}function A(e){var t=e.isOpen,n=e.resultCount,i=e.previousResultCount;return t?n?n!==i?n+" result"+(1===n?" is":"s are")+" available, use up and down arrow keys to navigate. Press Enter key to select.":"":"No results are available.":""}function B(e,t){return!(e=Array.isArray(e)?e[0]:e)&&t?t:e}var L=["highlightedIndex","inputValue","isOpen","selectedItem","type"];function F(e){void 0===e&&(e={});var t={};return L.forEach(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])}),t}var _=["refKey","ref"],j=["onClick","onPress","onKeyDown","onKeyUp","onBlur"],N=["onKeyDown","onBlur","onChange","onInput","onChangeText"],U=["refKey","ref"],W=["onMouseMove","onMouseDown","onClick","onPress","index","item"],$=function(){var e=function(e){function n(t){var n=e.call(this,t)||this;n.id=n.props.id||"downshift-"+g(),n.menuId=n.props.menuId||n.id+"-menu",n.labelId=n.props.labelId||n.id+"-label",n.inputId=n.props.inputId||n.id+"-input",n.getItemId=n.props.getItemId||function(e){return n.id+"-item-"+e},n.items=[],n.itemCount=null,n.previousResultCount=0,n.timeoutIds=[],n.internalSetTimeout=function(e,t){var i=setTimeout(function(){n.timeoutIds=n.timeoutIds.filter(function(e){return e!==i}),e()},t);n.timeoutIds.push(i)},n.setItemCount=function(e){n.itemCount=e},n.unsetItemCount=function(){n.itemCount=null},n.isItemDisabled=function(e,t){var i=n.getItemNodeFromIndex(t);return i&&i.hasAttribute("disabled")},n.setHighlightedIndex=function(e,t){void 0===e&&(e=n.props.defaultHighlightedIndex),void 0===t&&(t={}),t=F(t),n.internalSetState(u({highlightedIndex:e},t))},n.clearSelection=function(e){n.internalSetState({selectedItem:null,inputValue:"",highlightedIndex:n.props.defaultHighlightedIndex,isOpen:n.props.defaultIsOpen},e)},n.selectItem=function(e,t,i){t=F(t),n.internalSetState(u({isOpen:n.props.defaultIsOpen,highlightedIndex:n.props.defaultHighlightedIndex,selectedItem:e,inputValue:n.props.itemToString(e)},t),i)},n.selectItemAtIndex=function(e,t,i){var o=n.items[e];null!=o&&n.selectItem(o,t,i)},n.selectHighlightedItem=function(e,t){return n.selectItemAtIndex(n.getState().highlightedIndex,e,t)},n.internalSetState=function(e,t){var i,o,r={},s="function"==typeof e;return!s&&e.hasOwnProperty("inputValue")&&n.props.onInputValueChange(e.inputValue,u({},n.getStateAndHelpers(),e)),n.setState(function(t){var l;t=n.getState(t);var a=s?e(t):e;a=n.props.stateReducer(t,a),i=a.hasOwnProperty("selectedItem");var d={};return i&&a.selectedItem!==t.selectedItem&&(o=a.selectedItem),(l=a).type||(l.type=0),Object.keys(a).forEach(function(e){t[e]!==a[e]&&(r[e]=a[e]),"type"!==e&&(a[e],void 0===n.props[e]&&(d[e]=a[e]))}),s&&a.hasOwnProperty("inputValue")&&n.props.onInputValueChange(a.inputValue,u({},n.getStateAndHelpers(),a)),d},function(){V(t)(),Object.keys(r).length>1&&n.props.onStateChange(r,n.getStateAndHelpers()),i&&n.props.onSelect(e.selectedItem,n.getStateAndHelpers()),void 0!==o&&n.props.onChange(o,n.getStateAndHelpers()),n.props.onUserAction(r,n.getStateAndHelpers())})},n.rootRef=function(e){return n._rootNode=e},n.getRootProps=function(e,t){var i,o=void 0===e?{}:e,s=o.refKey,l=void 0===s?"ref":s,a=o.ref,d=r(o,_),c=(void 0===t?{}:t).suppressRefError,p=void 0!==c&&c;n.getRootProps.called=!0,n.getRootProps.refKey=l,n.getRootProps.suppressRefError=p;var f=n.getState().isOpen;return u(((i={})[l]=m(a,n.rootRef),i.role="combobox",i["aria-expanded"]=f,i["aria-haspopup"]="listbox",i["aria-owns"]=f?n.menuId:void 0,i["aria-labelledby"]=n.labelId,i),d)},n.keyDownHandlers={ArrowDown:function(e){var t=this;if(e.preventDefault(),this.getState().isOpen){var n=e.shiftKey?5:1;this.moveHighlightedIndex(n,{type:4})}else this.internalSetState({isOpen:!0,type:4},function(){var e=t.getItemCount();if(e>0){var n=H(t.getState().highlightedIndex,1,{length:e},t.isItemDisabled,!0);t.setHighlightedIndex(n,{type:4})}})},ArrowUp:function(e){var t=this;if(e.preventDefault(),this.getState().isOpen){var n=e.shiftKey?-5:-1;this.moveHighlightedIndex(n,{type:3})}else this.internalSetState({isOpen:!0,type:3},function(){var e=t.getItemCount();if(e>0){var n=H(t.getState().highlightedIndex,-1,{length:e},t.isItemDisabled,!0);t.setHighlightedIndex(n,{type:3})}})},Enter:function(e){if(229!==e.which){var t=this.getState(),n=t.isOpen,i=t.highlightedIndex;if(n&&null!=i){e.preventDefault();var o=this.items[i],r=this.getItemNodeFromIndex(i);if(null==o||r&&r.hasAttribute("disabled"))return;this.selectHighlightedItem({type:6})}}},Escape:function(e){e.preventDefault(),this.reset(u({type:5},!this.state.isOpen&&{selectedItem:null,inputValue:""}))}},n.buttonKeyDownHandlers=u({},n.keyDownHandlers,{" ":function(e){e.preventDefault(),this.toggleMenu({type:12})}}),n.inputKeyDownHandlers=u({},n.keyDownHandlers,{Home:function(e){var t=this.getState().isOpen;if(t){e.preventDefault();var n=this.getItemCount();if(!(n<=0)&&t){var i=E(0,!1,{length:n},this.isItemDisabled);this.setHighlightedIndex(i,{type:7})}}},End:function(e){var t=this.getState().isOpen;if(t){e.preventDefault();var n=this.getItemCount();if(!(n<=0)&&t){var i=E(n-1,!0,{length:n},this.isItemDisabled);this.setHighlightedIndex(i,{type:8})}}}}),n.getToggleButtonProps=function(e){var t=void 0===e?{}:e,i=t.onClick;t.onPress;var o=t.onKeyDown,s=t.onKeyUp,l=t.onBlur,a=r(t,j),d=n.getState().isOpen,c={onClick:I(i,n.buttonHandleClick),onKeyDown:I(o,n.buttonHandleKeyDown),onKeyUp:I(s,n.buttonHandleKeyUp),onBlur:I(l,n.buttonHandleBlur)};return u({type:"button",role:"button","aria-label":d?"close menu":"open menu","aria-haspopup":!0,"data-toggle":!0},a.disabled?{}:c,a)},n.buttonHandleKeyUp=function(e){e.preventDefault()},n.buttonHandleKeyDown=function(e){var t=T(e);n.buttonKeyDownHandlers[t]&&n.buttonKeyDownHandlers[t].call(n,e)},n.buttonHandleClick=function(e){if(e.preventDefault(),n.props.environment){var t=n.props.environment.document,i=t.body,o=t.activeElement;i&&i===o&&e.target.focus()}n.internalSetTimeout(function(){return n.toggleMenu({type:13})})},n.buttonHandleBlur=function(e){var t=e.target;n.internalSetTimeout(function(){if(!n.isMouseDown&&n.props.environment){var e=n.props.environment.document.activeElement;null!=e&&e.id===n.inputId||e===t||n.reset({type:14})}})},n.getLabelProps=function(e){return u({htmlFor:n.inputId,id:n.labelId},e)},n.getInputProps=function(e){var t=void 0===e?{}:e,i=t.onKeyDown,o=t.onBlur,s=t.onChange,l=t.onInput;t.onChangeText;var a=r(t,N),d={};var c,p=n.getState(),f=p.inputValue,g=p.isOpen,h=p.highlightedIndex;a.disabled||((c={}).onInput=I(s,l,n.inputHandleChange),c.onKeyDown=I(i,n.inputHandleKeyDown),c.onBlur=I(o,n.inputHandleBlur),d=c);return u({"aria-autocomplete":"list","aria-activedescendant":g&&"number"==typeof h&&h>=0?n.getItemId(h):void 0,"aria-controls":g?n.menuId:void 0,"aria-labelledby":a&&a["aria-label"]?void 0:n.labelId,autoComplete:"off",value:f,id:n.inputId},d,a)},n.inputHandleKeyDown=function(e){var t=T(e);t&&n.inputKeyDownHandlers[t]&&n.inputKeyDownHandlers[t].call(n,e)},n.inputHandleChange=function(e){n.internalSetState({type:11,isOpen:!0,inputValue:e.target.value,highlightedIndex:n.props.defaultHighlightedIndex})},n.inputHandleBlur=function(){n.internalSetTimeout(function(){var e;if(!n.isMouseDown&&n.props.environment){var t=n.props.environment.document.activeElement;(null==t||null==(e=t.dataset)?void 0:e.toggle)&&n._rootNode&&n._rootNode.contains(t)||n.reset({type:10})}})},n.menuRef=function(e){n._menuNode=e},n.getMenuProps=function(e,t){var i,o=void 0===e?{}:e,s=o.refKey,l=void 0===s?"ref":s,a=o.ref,d=r(o,U),c=(void 0===t?{}:t).suppressRefError,p=void 0!==c&&c;return n.getMenuProps.called=!0,n.getMenuProps.refKey=l,n.getMenuProps.suppressRefError=p,u(((i={})[l]=m(a,n.menuRef),i.role="listbox",i["aria-labelledby"]=d&&d["aria-label"]?void 0:n.labelId,i.id=n.menuId,i),d)},n.getItemProps=function(e){var t,i=void 0===e?{}:e,o=i.onMouseMove,s=i.onMouseDown,l=i.onClick;i.onPress;var a=i.index,d=i.item,c=void 0===d?void 0:d,p=r(i,W);void 0===a?(n.items.push(c),a=n.items.indexOf(c)):n.items[a]=c;var f=l,g=((t={onMouseMove:I(o,function(){a!==n.getState().highlightedIndex&&(n.setHighlightedIndex(a,{type:2}),n.avoidScrolling=!0,n.internalSetTimeout(function(){return n.avoidScrolling=!1},250))}),onMouseDown:I(s,function(e){e.preventDefault()})}).onClick=I(f,function(){n.selectItemAtIndex(a,{type:9})}),t),h=p.disabled?{onMouseDown:g.onMouseDown}:g;return u({id:n.getItemId(a),role:"option","aria-selected":n.getState().highlightedIndex===a},h,p)},n.clearItems=function(){n.items=[]},n.reset=function(e,t){void 0===e&&(e={}),e=F(e),n.internalSetState(function(t){var i=t.selectedItem;return u({isOpen:n.props.defaultIsOpen,highlightedIndex:n.props.defaultHighlightedIndex,inputValue:n.props.itemToString(i)},e)},t)},n.toggleMenu=function(e,t){void 0===e&&(e={}),e=F(e),n.internalSetState(function(t){var i=t.isOpen;return u({isOpen:!i},i&&{highlightedIndex:n.props.defaultHighlightedIndex},e)},function(){var i=n.getState(),o=i.isOpen,r=i.highlightedIndex;o&&n.getItemCount()>0&&"number"==typeof r&&n.setHighlightedIndex(r,e),V(t)()})},n.openMenu=function(e){n.internalSetState({isOpen:!0},e)},n.closeMenu=function(e){n.internalSetState({isOpen:!1},e)},n.updateStatus=v(function(){var e;if(null!=(e=n.props)&&null!=(e=e.environment)&&e.document){var t=n.getState(),i=n.items[t.highlightedIndex],o=n.getItemCount(),r=n.props.getA11yStatusMessage(u({itemToString:n.props.itemToString,previousResultCount:n.previousResultCount,resultCount:o,highlightedItem:i},t));n.previousResultCount=o,x(r,n.props.environment.document)}},200);var i=n.props,o=i.defaultHighlightedIndex,s=i.initialHighlightedIndex,l=void 0===s?o:s,a=i.defaultIsOpen,d=i.initialIsOpen,c=void 0===d?a:d,p=i.initialInputValue,f=void 0===p?"":p,h=i.initialSelectedItem,y=void 0===h?null:h,b=n.getState({highlightedIndex:l,isOpen:c,inputValue:f,selectedItem:y});return null!=b.selectedItem&&void 0===n.props.initialInputValue&&(b.inputValue=n.props.itemToString(b.selectedItem)),n.state=b,n}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,s(e,t)}(n,e);var i=n.prototype;return i.internalClearTimeouts=function(){this.timeoutIds.forEach(function(e){clearTimeout(e)}),this.timeoutIds=[]},i.getState=function(e){return void 0===e&&(e=this.state),k(e,this.props)},i.getItemCount=function(){var e=this.items.length;return null!=this.itemCount?e=this.itemCount:void 0!==this.props.itemCount&&(e=this.props.itemCount),e},i.getItemNodeFromIndex=function(e){return this.props.environment?this.props.environment.document.getElementById(this.getItemId(e)):null},i.scrollHighlightedItemIntoView=function(){var e=this.getItemNodeFromIndex(this.getState().highlightedIndex);this.props.scrollIntoView(e,this._menuNode)},i.moveHighlightedIndex=function(e,t){var n=this.getItemCount(),i=this.getState().highlightedIndex;if(n>0){var o=H(i,e,{length:n},this.isItemDisabled,!0);this.setHighlightedIndex(o,t)}},i.getStateAndHelpers=function(){var e=this.getState(),t=e.highlightedIndex,n=e.inputValue,i=e.selectedItem,o=e.isOpen,r=this.props.itemToString,u=this.id,s=this.getRootProps,l=this.getToggleButtonProps,a=this.getLabelProps,d=this.getMenuProps,c=this.getInputProps,p=this.getItemProps,f=this.openMenu,g=this.closeMenu,h=this.toggleMenu,m=this.selectItem,I=this.selectItemAtIndex,v=this.selectHighlightedItem,y=this.setHighlightedIndex,b=this.clearSelection,x=this.clearItems;return{getRootProps:s,getToggleButtonProps:l,getLabelProps:a,getMenuProps:d,getInputProps:c,getItemProps:p,reset:this.reset,openMenu:f,closeMenu:g,toggleMenu:h,selectItem:m,selectItemAtIndex:I,selectHighlightedItem:v,setHighlightedIndex:y,clearSelection:b,clearItems:x,setItemCount:this.setItemCount,unsetItemCount:this.unsetItemCount,setState:this.internalSetState,itemToString:r,id:u,highlightedIndex:t,inputValue:n,isOpen:o,selectedItem:i}},i.componentDidMount=function(){var e=this;if(this.props.environment){var t=function(){e.isMouseDown=!0},n=function(t){e.isMouseDown=!1,!P(t.target,[e._rootNode,e._menuNode],e.props.environment)&&e.getState().isOpen&&e.reset({type:1},function(){return e.props.onOuterClick(e.getStateAndHelpers())})},i=function(){e.isTouchMove=!1},o=function(){e.isTouchMove=!0},r=function(t){var n=P(t.target,[e._rootNode,e._menuNode],e.props.environment,!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",i),u.addEventListener("touchmove",o),u.addEventListener("touchend",r),this.cleanup=function(){e.internalClearTimeouts(),e.updateStatus.cancel(),u.removeEventListener("mousedown",t),u.removeEventListener("mouseup",n),u.removeEventListener("touchstart",i),u.removeEventListener("touchmove",o),u.removeEventListener("touchend",r)}}else this.cleanup=function(){e.internalClearTimeouts()}},i.shouldScroll=function(e,t){var n=(void 0===this.props.highlightedIndex?this.getState():this.props).highlightedIndex,i=(void 0===t.highlightedIndex?e:t).highlightedIndex;return n&&this.getState().isOpen&&!e.isOpen||n!==i},i.componentDidUpdate=function(e,t){void 0!==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()},i.componentWillUnmount=function(){this.cleanup()},i.render=function(){var e=B(this.props.children,w);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=B(e(this.getStateAndHelpers()));return n?this.getRootProps.called||this.props.suppressRefError?n:function(e){return"string"==typeof e.type||"string"==typeof e.nodeName}(n)?t.cloneElement(n,this.getRootProps(function(e){return e.props||e.attributes}(n))):void 0:null},n}(t.Component);return e.defaultProps={defaultHighlightedIndex:null,defaultIsOpen:!1,getA11yStatusMessage:A,itemToString:function(e){return null==e?"":String(e)},onStateChange:w,onInputValueChange:w,onUserAction:w,onChange:w,onSelect:w,onOuterClick:w,selectedItemChanged:function(e,t){return e!==t},environment:"undefined"==typeof window?void 0:window,stateReducer:function(e,t){return t},suppressRefError:!1,scrollIntoView:K},e.stateChangeTypes=p,e}();function G(e,t,n,i,o){if(o[e]!==i[e]){var r,s=n["on"+(""+(r=e).slice(0,1).toUpperCase()+r.slice(1)+"Change")];if("function"==typeof s)s(u({type:t.type},o))}}function q(e,t,n,i){var r=o.useRef({}),s=o.useRef(),l=o.useCallback(function(t,n){s.current=n,t=k(t,n.props);var i=e(t,n),o=n.props.stateReducer(t,u({},n,{changes:i}));return u({},t,o)},[e]),a=o.useReducer(l,t,n),d=a[0],c=a[1],p=h(t),f=o.useCallback(function(e){return c(u({},e,{props:p.current}))},[p]),g=s.current;return o.useEffect(function(){var e=k(r.current,null==g?void 0:g.props);g&&!i(e,d)&&function(e,t,n,i){for(var o=e.type,r={},s=0,l=Object.keys(n);s<l.length;s++){var a=l[s];G(a,e,t,n,i),i[a]!==n[a]&&(r[a]=i[a])}"function"==typeof t.onStateChange&&Object.keys(r).length&&t.onStateChange(u({type:o},r))}(g,g.props,e,d),r.current=d},[d,g,i]),[d,f]}function z(e,t,n,i){var o=q(e,t,n,i),r=o[0],u=o[1];return[k(r,t),u]}function X(e,t,n,i){if(void 0!==e&&void 0!==t)return[e,t];if(void 0!==e){if(n.indexOf(e)<0)throw new Error(i);return[e,n.indexOf(e)]}if(void 0!==t){var o=n[t];if(void 0===o)throw new Error(i);return[o,t]}throw new Error(i)}function Y(){var e=o.useRef(!0);return o.useEffect(function(){return e.current=!1,function(){e.current=!0}},[]),e.current}var J={environment:n.shape({addEventListener:n.func.isRequired,removeEventListener:n.func.isRequired,document:n.shape({createElement:n.func.isRequired,getElementById:n.func.isRequired,activeElement:n.any.isRequired,body:n.any.isRequired}).isRequired,Node:n.func.isRequired}),itemToKey:n.func,stateReducer:n.func};function Q(e,t){return void 0===e?t:e}function Z(e,t,n,i){return void 0!==e?e:void 0!==t?t:void 0!==n?n:i}var ee=v(function(e,t){x(e,t)},200);function te(e,t,n,i){var r=null==i?void 0:i.document,u=Y();o.useEffect(function(){if(e&&!u&&r){var n=e(t);ee(n,r)}},n),o.useEffect(function(){return function(){ee.cancel(),function(e){var t=null==e?void 0:e.getElementById("a11y-status-message");t&&t.remove()}(r)}},[r])}var ne=u({},J,{getA11yStatusMessage:n.func,highlightedIndex:n.number,defaultHighlightedIndex:n.number,initialHighlightedIndex:n.number,isOpen:n.bool,defaultIsOpen:n.bool,initialIsOpen:n.bool,selectedItem:n.any,initialSelectedItem:n.any,defaultSelectedItem:n.any,id:n.string,labelId:n.string,menuId:n.string,getItemId:n.func,toggleButtonId:n.string,onSelectedItemChange:n.func,onHighlightedIndexChange:n.func,onStateChange:n.func,onIsOpenChange:n.func,scrollIntoView:n.func}),ie={itemToString:function(e){return e?String(e):""},itemToKey:function(e){return e},isItemDisabled:function(){return!1},stateReducer:function(e,t){return t.changes},scrollIntoView:K,environment:"undefined"==typeof window?void 0:window},oe=-1,re=!1,ue=null,se="",le=u({},o).useId,ae="function"==typeof le?function(e){var t=e.id,n=e.labelId,i=e.menuId,r=e.getItemId,u=e.toggleButtonId,s=e.inputId,l="downshift-"+le();t||(t=l);return o.useMemo(function(){return{labelId:null!=n?n:t+"-label",menuId:null!=i?i:t+"-menu",getItemId:null!=r?r:function(e){return t+"-item-"+e},toggleButtonId:null!=u?u:t+"-toggle-button",inputId:null!=s?s:t+"-input"}},[r,t,s,n,i,u])}:function(e){var t=e.id,n=e.labelId,i=e.menuId,r=e.getItemId,u=e.toggleButtonId,s=e.inputId,l=o.useRef(null!=t?t:"downshift-"+g()).current;return o.useMemo(function(){return{labelId:null!=n?n:l+"-label",menuId:null!=i?i:l+"-menu",getItemId:null!=r?r:function(e){return l+"-item-"+e},toggleButtonId:null!=u?u:l+"-toggle-button",inputId:null!=s?s:l+"-input"}},[r,s,n,i,u,l])};function de(e,t,n){var i=Q(n,oe);return e[i]&&t(e[i],i)?-1:i}function ce(e,t,n,i,o,r){return u({isOpen:!1,highlightedIndex:-1},e.length&&o>=0&&u({selectedItem:e[o],isOpen:Q(n,re),highlightedIndex:Q(i,oe)},r&&{inputValue:t(e[o])}))}function pe(e,t,n,i,o,r,u,s){return 0===e.length?-1:void 0===t||u!==t||-1!==t&&(void 0===e[t]||i(e[t],t))?void 0===n||-1!==n&&(void 0===e[n]||i(e[n],n))?r?e.findIndex(function(e){return o(r)===o(e)}):s<0&&e[e.length-1]&&!i(e[e.length-1],e.length-1)?e.length-1:s>0&&e[0]&&!i(e[0],0)?0:-1:n:t}function fe(e){var t=Z(e.selectedItem,e.initialSelectedItem,e.defaultSelectedItem,ue),n=Z(e.isOpen,e.initialIsOpen,e.defaultIsOpen,re),i=function(e){var t=Z(e.highlightedIndex,e.initialHighlightedIndex,e.defaultHighlightedIndex,oe);if(t>-1&&e.items[t]&&e.isItemDisabled(e.items[t],t))return-1;return t}(e),o=Z(e.inputValue,e.initialInputValue,e.defaultInputValue,se);return{highlightedIndex:i<0&&t&&n?e.items.findIndex(function(n){return e.itemToKey(n)===e.itemToKey(t)}):i,isOpen:n,selectedItem:t,inputValue:o}}function ge(e,t,n){var i=o.useRef({isMouseDown:!1,isTouchMove:!1,isTouchEnd:!1}),r=o.useCallback(function(){return n.map(function(e){return e.current})},[n]);return o.useEffect(function(){if(!e)return w;function n(){i.current.isTouchEnd=!1,i.current.isMouseDown=!0}function o(n){i.current.isMouseDown=!1,P(n.target,r(),e)||t()}function u(){i.current.isTouchEnd=!1,i.current.isTouchMove=!1}function s(){i.current.isTouchMove=!0}function l(n){i.current.isTouchEnd=!0,i.current.isTouchMove||P(n.target,r(),e,!1)||t()}return e.addEventListener("mousedown",n),e.addEventListener("mouseup",o),e.addEventListener("touchstart",u),e.addEventListener("touchmove",s),e.addEventListener("touchend",l),function(){e.removeEventListener("mousedown",n),e.removeEventListener("mouseup",o),e.removeEventListener("touchstart",u),e.removeEventListener("touchmove",s),e.removeEventListener("touchend",l)}},[e,r,t]),i.current}var he=function(){return w},me="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?o.useLayoutEffect:o.useEffect;function Ie(e,t,n,i,r,u){var s=o.useRef(!0);return me(function(){if(!(t<0)&&n&&Object.keys(r).length)if(s.current){var o=r[u(t)];o&&i&&e(o,i)}else s.current=!0},[t]),o.useCallback(function(){s.current=!1},[])}function ve(e,t){return e.isOpen===t.isOpen&&e.inputValue===t.inputValue&&e.highlightedIndex===t.highlightedIndex&&e.selectedItem===t.selectedItem}function ye(e,t,n,i){var o;switch(n.type){case i.ItemMouseMove:o={highlightedIndex:n.disabled?-1:n.index};break;case i.MenuMouseLeave:o={highlightedIndex:-1};break;case i.ToggleButtonClick:case i.FunctionToggleMenu:o={isOpen:!e.isOpen,highlightedIndex:e.isOpen?-1:pe(t.items,t.initialHighlightedIndex,t.defaultHighlightedIndex,t.isItemDisabled,t.itemToKey,e.selectedItem,e.highlightedIndex,0)};break;case i.FunctionOpenMenu:o={isOpen:!0,highlightedIndex:pe(t.items,t.initialHighlightedIndex,t.defaultHighlightedIndex,t.isItemDisabled,t.itemToKey,e.selectedItem,e.highlightedIndex,0)};break;case i.FunctionCloseMenu:o={isOpen:!1};break;case i.FunctionSetHighlightedIndex:var r=n.highlightedIndex;o={highlightedIndex:t.isItemDisabled(t.items[r],r)?-1:r};break;case i.FunctionSetInputValue:o={inputValue:n.inputValue};break;case i.FunctionReset:o={highlightedIndex:de(t.items,t.isItemDisabled,t.defaultHighlightedIndex),isOpen:Q(t.defaultIsOpen,re),selectedItem:Q(t.defaultSelectedItem,ue),inputValue:Q(t.defaultInputValue,se)};break;default:throw new Error("Reducer called without proper action type.")}return u({},e,o)}var be=Object.freeze({__proto__:null,FunctionCloseMenu:17,FunctionOpenMenu:16,FunctionReset:21,FunctionSelectItem:19,FunctionSetHighlightedIndex:18,FunctionSetInputValue:20,FunctionToggleMenu:15,ItemClick:14,ItemMouseMove:13,MenuMouseLeave:12,ToggleButtonBlur:11,ToggleButtonClick:0,ToggleButtonKeyDownArrowDown:1,ToggleButtonKeyDownArrowUp:2,ToggleButtonKeyDownCharacter:3,ToggleButtonKeyDownEnd:6,ToggleButtonKeyDownEnter:7,ToggleButtonKeyDownEscape:4,ToggleButtonKeyDownHome:5,ToggleButtonKeyDownPageDown:10,ToggleButtonKeyDownPageUp:9,ToggleButtonKeyDownSpaceButton:8});function xe(e,t){var n,i=t.type,o=t.props;switch(i){case 14:n={isOpen:Q(o.defaultIsOpen,re),highlightedIndex:de(o.items,o.isItemDisabled,o.defaultHighlightedIndex),selectedItem:o.items[t.index]};break;case 3:var r=t.key,s=""+e.inputValue+r;n={inputValue:s,highlightedIndex:function(e){for(var t=e.keysSoFar,n=e.highlightedIndex,i=e.items,o=e.itemToString,r=e.isItemDisabled,u=t.toLowerCase(),s=0;s<i.length;s++){var l=(s+n+(t.length<2?1:0))%i.length,a=i[l];if(void 0!==a&&o(a).toLowerCase().startsWith(u)&&!r(a,l))return l}return n}({keysSoFar:s,highlightedIndex:!e.isOpen&&e.selectedItem?o.items.findIndex(function(t){return o.itemToKey(t)===o.itemToKey(e.selectedItem)}):e.highlightedIndex,items:o.items,itemToString:o.itemToString,isItemDisabled:o.isItemDisabled}),isOpen:!0};break;case 1:var l=t.altKey;n={highlightedIndex:e.isOpen?H(e.highlightedIndex,1,o.items,o.isItemDisabled):l&&null==e.selectedItem?-1:pe(o.items,o.initialHighlightedIndex,o.defaultHighlightedIndex,o.isItemDisabled,o.itemToKey,e.selectedItem,e.highlightedIndex,1),isOpen:!0};break;case 2:var a=t.altKey;if(e.isOpen&&a)n=ce(o.items,o.itemToString,o.defaultIsOpen,o.defaultHighlightedIndex,e.highlightedIndex,!1);else n={highlightedIndex:e.isOpen?H(e.highlightedIndex,-1,o.items,o.isItemDisabled):pe(o.items,o.initialHighlightedIndex,o.defaultHighlightedIndex,o.isItemDisabled,o.itemToKey,e.selectedItem,e.highlightedIndex,-1),isOpen:!0};break;case 7:case 8:n=ce(o.items,o.itemToString,o.defaultIsOpen,o.defaultHighlightedIndex,e.highlightedIndex,!1);break;case 5:n={highlightedIndex:E(0,!1,o.items,o.isItemDisabled),isOpen:!0};break;case 6:n={highlightedIndex:E(o.items.length-1,!0,o.items,o.isItemDisabled),isOpen:!0};break;case 9:n={highlightedIndex:H(e.highlightedIndex,-10,o.items,o.isItemDisabled)};break;case 10:n={highlightedIndex:H(e.highlightedIndex,10,o.items,o.isItemDisabled)};break;case 4:n={isOpen:!1,highlightedIndex:-1};break;case 11:n=u({isOpen:!1,highlightedIndex:-1},e.highlightedIndex>=0&&o.items.length&&{selectedItem:o.items[e.highlightedIndex]});break;case 19:n={selectedItem:t.selectedItem};break;default:return ye(e,o,t,be)}return u({},e,n)}var we=["onClick"],ke=["onMouseLeave","refKey","ref","aria-label"],De=["onBlur","onClick","onPress","onKeyDown","refKey","ref"],Ce=["item","index","onMouseMove","onClick","onMouseDown","onPress","refKey","disabled","ref"];function Se(e){void 0===e&&(e={});var n=u({},ie,e),i=n.scrollIntoView,o=n.environment,s=n.getA11yStatusMessage,l=z(xe,n,fe,ve),a=l[0],d=l[1],c=a.isOpen,p=a.highlightedIndex,f=a.selectedItem,g=a.inputValue,y=t.useRef(null),b=t.useRef(null),x=t.useRef({}),w=t.useRef(null),k=ae(n),D=h({state:a,props:n});te(s,a,[c,p,f,g],o);var C=Ie(i,p,c,b.current,x.current,k.getItemId);t.useEffect(function(){return w.current=v(function(e){e({type:20,inputValue:""})},500),function(){var e;null==(e=w.current)||e.cancel()}},[]),t.useEffect(function(){g&&(null==w.current||w.current(d))},[d,g]),t.useEffect(function(){Z(n.isOpen,n.initialIsOpen,n.defaultIsOpen,re)&&y.current&&y.current.focus()},[]);var S=ge(o,t.useCallback(function(){D.current.state.isOpen&&d({type:11})},[d,D]),t.useMemo(function(){return[b,y]},[])),O=he();t.useEffect(function(){c||(x.current={})},[c]);var M=t.useMemo(function(){return{ArrowDown:function(e){e.preventDefault(),d({type:1,altKey:e.altKey})},ArrowUp:function(e){e.preventDefault(),d({type:2,altKey:e.altKey})},Home:function(e){e.preventDefault(),d({type:5})},End:function(e){e.preventDefault(),d({type:6})},Escape:function(){D.current.state.isOpen&&d({type:4})},Enter:function(e){e.preventDefault(),d({type:D.current.state.isOpen?7:0})},PageUp:function(e){D.current.state.isOpen&&(e.preventDefault(),d({type:9}))},PageDown:function(e){D.current.state.isOpen&&(e.preventDefault(),d({type:10}))}," ":function(e){e.preventDefault();var t=D.current.state;t.isOpen?t.inputValue?d({type:3,key:" "}):d({type:8}):d({type:0})}}},[d,D]),K=t.useCallback(function(e){var t=null!=e?e:{},n=t.onClick,i=r(t,we);return u({id:k.labelId,htmlFor:k.toggleButtonId,onClick:I(n,function(){var e;null==(e=y.current)||e.focus()})},i)},[k]),E=t.useCallback(function(e,t){var n,i=null!=e?e:{},o=i.onMouseLeave,s=i.refKey,l=void 0===s?"ref":s,a=i.ref,c=i["aria-label"],p=r(i,ke);return(null!=t?t:{}).suppressRefError,u(((n={})[l]=m(a,function(e){b.current=e}),n.id=k.menuId,n.role="listbox",n["aria-label"]=c,n["aria-labelledby"]=c?void 0:""+k.labelId,n.onMouseLeave=I(o,function(){d({type:12})}),n),p)},[d,O,k]),H=t.useCallback(function(e,t){var n,i=null!=e?e:{},o=i.onBlur,s=i.onClick;i.onPress;var l=i.onKeyDown,a=i.refKey,c=void 0===a?"ref":a,p=i.ref,f=r(i,De);(null!=t?t:{}).suppressRefError;var g=D.current.state,h=u(((n={})[c]=m(p,function(e){y.current=e}),n["aria-activedescendant"]=g.isOpen&&g.highlightedIndex>-1?k.getItemId(g.highlightedIndex):"",n["aria-controls"]=k.menuId,n["aria-expanded"]=D.current.state.isOpen,n["aria-haspopup"]="listbox",n["aria-labelledby"]=f["aria-label"]?void 0:""+k.labelId,n.id=k.toggleButtonId,n.role="combobox",n.tabIndex=0,n.onBlur=I(o,function(){g.isOpen&&!S.isMouseDown&&d({type:11})}),n),f);return f.disabled||Object.assign(h,{onClick:I(s,function(){d({type:0})}),onKeyDown:I(l,function(e){var t=T(e);t&&t in M?M[t](e):/^\S{1}$/.test(t)&&d({type:3,key:t})})}),h},[d,k,D,S,O,M]),P=t.useCallback(function(e){var t,n=null!=e?e:{},i=n.item,o=n.index,s=n.onMouseMove,l=n.onClick,a=n.onMouseDown;n.onPress;var c=n.refKey,p=void 0===c?"ref":c,f=n.disabled,g=n.ref,h=r(n,Ce);void 0!==f&&console.warn('Passing "disabled" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useSelect.');var v=D.current,y=v.state,b=v.props,w=X(i,o,b.items,"Pass either item or index to getItemProps!"),O=w[0],M=w[1],K=b.isItemDisabled(O,M),T=u(((t={})[p]=m(g,function(e){e&&(x.current[k.getItemId(M)]=e)}),t["aria-disabled"]=K,t["aria-selected"]=O===y.selectedItem,t.id=k.getItemId(M),t.role="option",t.onMouseMove=I(s,function(){S.isTouchEnd||M===y.highlightedIndex||(C(),d({type:13,index:M,disabled:K}))}),t.onMouseDown=I(a,function(e){return e.preventDefault()}),t),h);return K||Object.assign(T,{onClick:I(l,function(){d({type:14,index:M})})}),T},[D,k,S,C,d]),R=t.useCallback(function(){d({type:15})},[d]),V=t.useCallback(function(){d({type:17})},[d]);return{getToggleButtonProps:H,getLabelProps:K,getMenuProps:E,getItemProps:P,toggleMenu:R,openMenu:t.useCallback(function(){d({type:16})},[d]),closeMenu:V,setHighlightedIndex:t.useCallback(function(e){d({type:18,highlightedIndex:e})},[d]),selectItem:t.useCallback(function(e){d({type:19,selectedItem:e})},[d]),reset:t.useCallback(function(){d({type:21})},[d]),setInputValue:t.useCallback(function(e){d({type:20,inputValue:e})},[d]),highlightedIndex:p,isOpen:c,selectedItem:f,inputValue:g}}function Oe(e){var t=fe(e),n=t.selectedItem,i=t.inputValue;return""===i&&n&&void 0===e.defaultInputValue&&void 0===e.initialInputValue&&void 0===e.inputValue&&(i=e.itemToString(n)),u({},t,{inputValue:i})}Se.stateChangeTypes=be;var Me=Object.freeze({__proto__:null,ControlledPropUpdatedSelectedItem:22,FunctionCloseMenu:17,FunctionOpenMenu:16,FunctionReset:21,FunctionSelectItem:19,FunctionSetHighlightedIndex:18,FunctionSetInputValue:20,FunctionToggleMenu:15,InputBlur:9,InputChange:8,InputClick:10,InputKeyDownArrowDown:0,InputKeyDownArrowUp:1,InputKeyDownEnd:4,InputKeyDownEnter:7,InputKeyDownEscape:2,InputKeyDownHome:3,InputKeyDownPageDown:6,InputKeyDownPageUp:5,ItemClick:13,ItemMouseMove:12,MenuMouseLeave:11,ToggleButtonClick:14});function Ke(e,t){var n,i=t.type,o=t.props;switch(i){case 13:n={isOpen:Q(o.defaultIsOpen,re),highlightedIndex:de(o.items,o.isItemDisabled,o.defaultHighlightedIndex),selectedItem:o.items[t.index],inputValue:o.itemToString(o.items[t.index])};break;case 0:n=e.isOpen?{highlightedIndex:H(e.highlightedIndex,1,o.items,o.isItemDisabled,!0)}:{highlightedIndex:t.altKey&&null==e.selectedItem?-1:pe(o.items,o.initialHighlightedIndex,o.defaultHighlightedIndex,o.isItemDisabled,o.itemToKey,e.selectedItem,e.highlightedIndex,1),isOpen:o.items.length>=0};break;case 1:n=e.isOpen?t.altKey?ce(o.items,o.itemToString,o.defaultIsOpen,o.defaultHighlightedIndex,e.highlightedIndex,!0):{highlightedIndex:H(e.highlightedIndex,-1,o.items,o.isItemDisabled,!0)}:{highlightedIndex:pe(o.items,o.initialHighlightedIndex,o.defaultHighlightedIndex,o.isItemDisabled,o.itemToKey,e.selectedItem,e.highlightedIndex,-1),isOpen:o.items.length>=0};break;case 7:n=ce(o.items,o.itemToString,o.defaultIsOpen,o.defaultHighlightedIndex,e.highlightedIndex,!0);break;case 2:n=u({isOpen:!1,highlightedIndex:-1},!e.isOpen&&{selectedItem:null,inputValue:""});break;case 5:n={highlightedIndex:H(e.highlightedIndex,-10,o.items,o.isItemDisabled,!0)};break;case 6:n={highlightedIndex:H(e.highlightedIndex,10,o.items,o.isItemDisabled,!0)};break;case 3:n={highlightedIndex:E(0,!1,o.items,o.isItemDisabled)};break;case 4:n={highlightedIndex:E(o.items.length-1,!0,o.items,o.isItemDisabled)};break;case 9:n=u({isOpen:!1,highlightedIndex:-1},e.highlightedIndex>=0&&o.items.length&&t.selectItem&&{selectedItem:o.items[e.highlightedIndex],inputValue:o.itemToString(o.items[e.highlightedIndex])});break;case 8:n={isOpen:!0,highlightedIndex:de(o.items,o.isItemDisabled,o.defaultHighlightedIndex),inputValue:t.inputValue};break;case 10:n={isOpen:!e.isOpen,highlightedIndex:e.isOpen?-1:pe(o.items,o.initialHighlightedIndex,o.defaultHighlightedIndex,o.isItemDisabled,o.itemToKey,e.selectedItem,e.highlightedIndex,0)};break;case 19:n={selectedItem:t.selectedItem,inputValue:o.itemToString(t.selectedItem)};break;case 22:n={inputValue:t.inputValue};break;default:return ye(e,o,t,Me)}return u({},e,n)}var Te=["onMouseLeave","refKey","ref","aria-label"],Ee=["item","index","refKey","ref","onMouseMove","onMouseDown","onClick","onPress","disabled"],He=["onClick","onPress","refKey","ref"],Pe=["aria-label","onKeyDown","onChange","onInput","onBlur","onChangeText","onClick","refKey","ref"];function Re(e){void 0===e&&(e={});var n=u({},ie,e),i=n.items,o=n.scrollIntoView,s=n.environment,l=n.getA11yStatusMessage,a=function(e,n,i,o){var r=t.useRef(null),u=q(e,n,i,o),s=u[0],l=u[1],a=Y();return t.useEffect(function(){void 0!==n.selectedItem&&(a||n.itemToKey(n.selectedItem)!==n.itemToKey(r.current)&&l({type:22,inputValue:n.itemToString(n.selectedItem)}),r.current=s.selectedItem===r.current?n.selectedItem:s.selectedItem)},[s.selectedItem,n.selectedItem]),[k(s,n),l]}(Ke,n,Oe,ve),d=a[0],c=a[1],p=d.isOpen,f=d.highlightedIndex,g=d.selectedItem,v=d.inputValue,y=t.useRef(null),b=t.useRef({}),x=t.useRef(null),w=t.useRef(null),D=Y(),C=ae(n),S=t.useRef(),O=h({state:d,props:n});te(l,d,[p,f,g,v],s);var M=Ie(o,f,p,y.current,b.current,C.getItemId);t.useEffect(function(){Z(n.isOpen,n.initialIsOpen,n.defaultIsOpen,re)&&x.current&&x.current.focus()},[]),t.useEffect(function(){D||(S.current=i.length)});var K=t.useCallback(function(){O.current.state.isOpen&&c({type:9})},[c,O]),E=t.useMemo(function(){return[y,w,x]},[]),H=ge(s,K,E),P=he();t.useEffect(function(){p||(b.current={})},[p]),t.useEffect(function(){var e;p&&null!=s&&s.document&&null!=(e=x.current)&&e.focus&&s.document.activeElement!==x.current&&x.current.focus()},[p,s]);var R=t.useMemo(function(){return{ArrowDown:function(e){e.preventDefault(),c({type:0,altKey:e.altKey})},ArrowUp:function(e){e.preventDefault(),c({type:1,altKey:e.altKey})},Home:function(e){O.current.state.isOpen&&(e.preventDefault(),c({type:3}))},End:function(e){O.current.state.isOpen&&(e.preventDefault(),c({type:4}))},Escape:function(e){var t=O.current.state;(t.isOpen||t.inputValue||t.selectedItem||t.highlightedIndex>-1)&&(e.preventDefault(),c({type:2}))},Enter:function(e){O.current.state.isOpen&&229!==e.which&&(e.preventDefault(),c({type:7}))},PageUp:function(e){O.current.state.isOpen&&(e.preventDefault(),c({type:5}))},PageDown:function(e){O.current.state.isOpen&&(e.preventDefault(),c({type:6}))}}},[c,O]),V=t.useCallback(function(e){return u({id:C.labelId,htmlFor:C.inputId},e)},[C]),A=t.useCallback(function(e,t){var n,i=null!=e?e:{},o=i.onMouseLeave,s=i.refKey,l=void 0===s?"ref":s,a=i.ref,d=i["aria-label"],p=r(i,Te);return(null!=t?t:{}).suppressRefError,u(((n={})[l]=m(a,function(e){y.current=e}),n.id=C.menuId,n.role="listbox",n["aria-label"]=d,n["aria-labelledby"]=d?void 0:""+C.labelId,n.onMouseLeave=I(o,function(){c({type:11})}),n),p)},[c,P,C]),B=t.useCallback(function(e){var t,n,i=null!=e?e:{},o=i.item,s=i.index,l=i.refKey,a=void 0===l?"ref":l,d=i.ref,p=i.onMouseMove,f=i.onMouseDown,g=i.onClick;i.onPress;var h=i.disabled,v=r(i,Ee);void 0!==h&&console.warn('Passing "disabled" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useCombobox.');var y=O.current,x=y.props,w=y.state,k=X(o,s,x.items,"Pass either item or index to getItemProps!"),D=k[0],S=k[1],K=x.isItemDisabled(D,S),T=g;return u(((t={})[a]=m(d,function(e){e&&(b.current[C.getItemId(S)]=e)}),t["aria-disabled"]=K,t["aria-selected"]=S===w.highlightedIndex,t.id=C.getItemId(S),t.role="option",t),!K&&((n={}).onClick=I(T,function(){c({type:13,index:S})}),n),{onMouseMove:I(p,function(){H.isTouchEnd||S===w.highlightedIndex||(M(),c({type:12,index:S,disabled:K}))}),onMouseDown:I(f,function(e){return e.preventDefault()})},v)},[c,C,O,H,M]),L=t.useCallback(function(e){var t,n=null!=e?e:{},i=n.onClick;n.onPress;var o=n.refKey,s=void 0===o?"ref":o,l=n.ref,a=r(n,He),d=O.current.state;return u(((t={})[s]=m(l,function(e){w.current=e}),t["aria-controls"]=C.menuId,t["aria-expanded"]=d.isOpen,t.id=C.toggleButtonId,t.tabIndex=-1,t),!a.disabled&&u({},{onClick:I(i,function(){c({type:14})})}),a)},[c,O,C]),F=t.useCallback(function(e,t){var n,i=null!=e?e:{},o=i["aria-label"],l=i.onKeyDown,a=i.onChange,d=i.onInput,p=i.onBlur;i.onChangeText;var f=i.onClick,g=i.refKey,h=void 0===g?"ref":g,v=i.ref,y=r(i,Pe);(null!=t?t:{}).suppressRefError;var b,w=O.current.state,k={};y.disabled||((b={}).onInput=I(a,d,function(e){c({type:8,inputValue:e.target.value})}),b.onKeyDown=I(l,function(e){var t=T(e);t&&t in R&&R[t](e)}),b.onBlur=I(p,function(e){if(null!=s&&s.document&&w.isOpen&&!H.isMouseDown){var t=null===e.relatedTarget&&s.document.activeElement!==s.document.body;c({type:9,selectItem:!t})}}),b.onClick=I(f,function(){c({type:10})}),k=b);return u(((n={})[h]=m(v,function(e){x.current=e}),n["aria-activedescendant"]=w.isOpen&&w.highlightedIndex>-1?C.getItemId(w.highlightedIndex):"",n["aria-autocomplete"]="list",n["aria-controls"]=C.menuId,n["aria-expanded"]=w.isOpen,n["aria-labelledby"]=o?void 0:C.labelId,n["aria-label"]=o,n.autoComplete="off",n.id=C.inputId,n.role="combobox",n.value=w.inputValue,n),k,y)},[c,C,s,R,O,H,P]),_=t.useCallback(function(){c({type:15})},[c]),j=t.useCallback(function(){c({type:17})},[c]),N=t.useCallback(function(){c({type:16})},[c]),U=t.useCallback(function(e){c({type:18,highlightedIndex:e})},[c]),W=t.useCallback(function(e){c({type:19,selectedItem:e})},[c]);return{getItemProps:B,getLabelProps:V,getMenuProps:A,getInputProps:F,getToggleButtonProps:L,toggleMenu:_,openMenu:N,closeMenu:j,setHighlightedIndex:U,setInputValue:t.useCallback(function(e){c({type:20,inputValue:e})},[c]),selectItem:W,reset:t.useCallback(function(){c({type:21})},[c]),highlightedIndex:f,isOpen:p,selectedItem:g,inputValue:v}}Re.stateChangeTypes=Me;var Ve=-1,Ae=[];function Be(e){return{activeIndex:Z(e.activeIndex,e.initialActiveIndex,e.defaultActiveIndex,Ve),selectedItems:Z(e.selectedItems,e.initialSelectedItems,e.defaultSelectedItems,Ae)}}function Le(e){if(e.shiftKey||e.metaKey||e.ctrlKey||e.altKey)return!1;var t=e.target;return!(t instanceof HTMLInputElement&&""!==t.value)||0===t.selectionStart&&0===t.selectionEnd}function Fe(e,t){return e.selectedItems===t.selectedItems&&e.activeIndex===t.activeIndex}ne.stateReducer,ne.itemToKey,ne.environment,n.array,n.array,n.array,n.func,n.number,n.number,n.number,n.func,n.func,n.string,n.string;var _e={itemToKey:ie.itemToKey,stateReducer:ie.stateReducer,environment:ie.environment,keyNavigationNext:"ArrowRight",keyNavigationPrevious:"ArrowLeft"},je=Object.freeze({__proto__:null,DropdownClick:7,DropdownKeyDownBackspace:6,DropdownKeyDownNavigationPrevious:5,FunctionAddSelectedItem:8,FunctionRemoveSelectedItem:9,FunctionReset:12,FunctionSetActiveIndex:11,FunctionSetSelectedItems:10,SelectedItemClick:0,SelectedItemKeyDownBackspace:2,SelectedItemKeyDownDelete:1,SelectedItemKeyDownNavigationNext:3,SelectedItemKeyDownNavigationPrevious:4});function Ne(e,t){var n,i=t.type,o=t.index,r=t.selectedItem,s=t.props,l=e.activeIndex,a=e.selectedItems;switch(i){case 0:n={activeIndex:o};break;case 4:n={activeIndex:l-1<0?0:l-1};break;case 3:n={activeIndex:l+1>=a.length?-1:l+1};break;case 2:case 1:if(l<0)break;var d=l;1===a.length?d=-1:l===a.length-1&&(d=a.length-2),n=u({selectedItems:[].concat(a.slice(0,l),a.slice(l+1))},{activeIndex:d});break;case 5:n={activeIndex:a.length-1};break;case 6:n={selectedItems:a.slice(0,a.length-1)};break;case 8:n={selectedItems:[].concat(a,[r])};break;case 7:n={activeIndex:-1};break;case 9:var c=l,p=a.findIndex(function(e){return s.itemToKey(e)===s.itemToKey(r)});if(p<0)break;1===a.length?c=-1:p===a.length-1&&(c=a.length-2),n={selectedItems:[].concat(a.slice(0,p),a.slice(p+1)),activeIndex:c};break;case 10:n={selectedItems:t.selectedItems};break;case 11:n={activeIndex:t.activeIndex};break;case 12:n={activeIndex:Q(s.defaultActiveIndex,Ve),selectedItems:Q(s.defaultSelectedItems,Ae)};break;default:throw new Error("Reducer called without proper action type.")}return u({},e,n)}var Ue=["refKey","ref","onClick","onKeyDown","selectedItem","index"],We=["refKey","ref","onKeyDown","onClick","preventKeyAction"];function $e(e){void 0===e&&(e={});var n=u({},_e,e),i=n.getA11yStatusMessage,o=n.environment,s=n.keyNavigationNext,l=n.keyNavigationPrevious,a=z(Ne,n,Be,Fe),d=a[0],c=a[1],p=d.activeIndex,f=d.selectedItems,g=Y(),v=t.useRef(null),y=t.useRef();y.current=[];var b=h({state:d,props:n});te(i,d,[p,f],o),t.useEffect(function(){g||(-1===p&&v.current?v.current.focus():y.current[p]&&y.current[p].focus())},[p]);var x=he(),w=t.useMemo(function(){var e;return(e={})[l]=function(){c({type:4})},e[s]=function(){c({type:3})},e.Delete=function(){c({type:1})},e.Backspace=function(){c({type:2})},e},[c,s,l]),k=t.useMemo(function(){var e;return(e={})[l]=function(e){Le(e)&&c({type:5})},e.Backspace=function(e){Le(e)&&c({type:6})},e},[c,l]);return{getSelectedItemProps:t.useCallback(function(e){var t,n=void 0===e?{}:e,i=n.refKey,o=void 0===i?"ref":i,s=n.ref,l=n.onClick,a=n.onKeyDown,d=n.selectedItem,p=n.index,f=r(n,Ue),g=b.current.state,h=X(d,p,g.selectedItems,"Pass either item or index to getSelectedItemProps!")[1],v=h>-1&&h===g.activeIndex;return u(((t={})[o]=m(s,function(e){e&&y.current.push(e)}),t.tabIndex=v?0:-1,t.onClick=I(l,function(){c({type:0,index:h})}),t.onKeyDown=I(a,function(e){var t=T(e);t&&w[t]&&w[t](e)}),t),f)},[c,b,w]),getDropdownProps:t.useCallback(function(e,t){var n,i=void 0===e?{}:e,o=i.refKey,s=void 0===o?"ref":o,l=i.ref,a=i.onKeyDown,d=i.onClick,p=i.preventKeyAction,f=void 0!==p&&p,g=r(i,We);return(void 0===t?{}:t).suppressRefError,u(((n={})[s]=m(l,function(e){e&&(v.current=e)}),n),!f&&{onKeyDown:I(a,function(e){var t=T(e);t&&k[t]&&k[t](e)}),onClick:I(d,function(){c({type:7})})},g)},[c,k,x]),addSelectedItem:t.useCallback(function(e){c({type:8,selectedItem:e})},[c]),removeSelectedItem:t.useCallback(function(e){c({type:9,selectedItem:e})},[c]),setSelectedItems:t.useCallback(function(e){c({type:10,selectedItems:e})},[c]),setActiveIndex:t.useCallback(function(e){c({type:11,activeIndex:e})},[c]),reset:t.useCallback(function(){c({type:12})},[c