{"version":3,"sources":["webpack:///./node_modules/react-redux/es/components/Context.js","webpack:///./node_modules/react-redux/es/utils/batch.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-redux/es/utils/bindActionCreators.js","webpack:///./node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/react-redux/es/hooks/useReduxContext.js","webpack:///./node_modules/react-redux/es/hooks/useStore.js","webpack:///./node_modules/react-redux/es/hooks/useDispatch.js","webpack:///./node_modules/react-redux/es/hooks/useSelector.js","webpack:///./node_modules/react-redux/es/index.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack:///./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/index.js","webpack:///./node_modules/react-redux/node_modules/react-is/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/@redux-beacon/google-tag-manager/dist/index.js","webpack:///./node_modules/downshift/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/@redux-saga/core/dist/redux-saga-effects.esm.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/reakit/es/Id/IdProvider.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/compute-scroll-into-view/dist/index.mjs","webpack:///./node_modules/downshift/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/downshift/dist/downshift.esm.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/@loadable/component/dist/loadable.esm.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/@clarketm/saga-monitor/dist/saga-monitor.es.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/dexie/dist/dexie.mjs","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@redux-beacon/google-tag-manager/dist/utils.js","webpack:///./node_modules/@xstyled/system/dist/index.esm.js","webpack:///./node_modules/@redux-beacon/google-tag-manager/dist/google-tag-manager.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/downshift/node_modules/react-is/index.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@redux-beacon/offline-web/dist/index.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@xstyled/core/dist/index.esm.js","webpack:///./node_modules/@xstyled/styled-components/dist/index.esm.js","webpack:///./node_modules/@redux-beacon/offline-web/dist/offline-web.js","webpack:///./node_modules/reakit/es/Provider.js","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./node_modules/workbox-window/build/workbox-window.prod.es5.mjs","webpack:///./node_modules/redux-saga/dist/redux-saga-core-npm-proxy.esm.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/@xstyled/util/dist/index.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/axios.js"],"names":["ReactReduxContext","createContext","callback","createListenerCollection","batch","first","last","clear","notify","listener","next","get","listeners","push","subscribe","isSubscribed","prev","nullListeners","createSubscription","store","parentSub","unsubscribe","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","notifyNestedSubs","Boolean","tryUnsubscribe","undefined","getListeners","useIsomorphicLayoutEffect","window","document","createElement","_ref","context","children","contextValue","previousState","getState","Context","Provider","value","_excluded","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","state","action","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","apply","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","error","latestStoreState","e","type","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","name","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","props","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","didStoreComeFromProps","dispatch","createChildSelector","_useMemo2","bind","overriddenContextValue","_useReducer","previousStateUpdateResult","renderedWrappedComponent","ref","Connect","memo","forwarded","is","x","y","shallowEqual","objA","objB","keysA","Object","keys","keysB","length","i","prototype","hasOwnProperty","call","wrapMapToPropsConstant","getConstant","options","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","_loop","key","actionCreator","arguments","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","match","arg","factories","result","Error","strictEqual","a","b","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","createStoreHook","useReduxContext","createDispatchHook","useStore","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","s","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","err","message","stack","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","newBatch","_extends","assign","target","source","this","_assertThisInitialized","self","ReferenceError","_React$Component","subClass","superClass","ReCAPTCHA","_this","handleExpired","handleErrored","handleChange","handleRecaptchaRef","create","constructor","__proto__","_proto","getValue","grecaptcha","_widgetId","getResponse","getWidgetId","execute","_executeRequested","executeAsync","_this2","Promise","resolve","reject","executionResolve","executionReject","reset","onExpired","onErrored","token","onChange","explicitRender","render","wrapper","sitekey","theme","tabindex","size","stoken","hl","badge","captcha","appendChild","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","body","style","display","firstChild","setTimeout","removeChild","elem","_this$props","childProps","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","Component","propTypes","string","isRequired","func","object","oneOf","number","defaultProps","SCRIPT_MAP","idCount","getScriptURL","recaptchaOptions","useRecaptchaNet","callbackName","globalName","AsyncScriptLoader","_Component","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","_this3","scriptURL","_options","scriptId","entry","errored","script","attribute","src","async","attributes","setAttribute","id","callObserverFuncAndRemoveObserver","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","parentNode","forwardedRef","ForwardedComponent","module","exports","_classCallCheck","instance","Constructor","TypeError","copy","fill","readUInt8","url","test","defineProperty","google_tag_manager_1","default","c","d","f","g","h","k","l","m","n","p","q","r","u","v","w","Symbol","for","t","$$typeof","z","A","B","C","D","E","F","G","H","I","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","baseURL","relativeURL","replace","done","qEnd","safeName","patternOrChannel","String","fsmIterator","fsm","startState","stateUpdater","errorState","effect","currentState","takeEvery","worker","_len","args","Array","_key","yTake","yFork","ac","concat","setAction","q1","q2","takeLatest","task","yCancel","setTask","q3","takeEvery$1","takeLatest$1","_len2","_key2","utils","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","forEach","fn","_unsupportedIterableToArray","o","minLen","toString","slice","from","buildURL","dispatchRequest","mergeConfig","validator","validators","Axios","instanceConfig","defaults","interceptors","request","response","config","method","toLowerCase","transitional","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","promise","responseInterceptorChain","chain","then","shift","newConfig","onFulfilled","onRejected","getUri","params","paramsSerializer","data","arr","_objectWithoutProperties","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","thisArg","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","adapter","XMLHttpRequest","process","getDefaultAdapter","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","stringify","stringifySafely","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","merge","_inherits","writable","configurable","generateRandomString","prefix","Math","random","substr","unstable_IdContext","unstable_IdProvider","_ref$prefix","count","generateId","localPrefix","ctor","superCtor","super_","enumerable","TempCtor","_toConsumableArray","isArray","arrayLikeToArray","iter","iterator","unsupportedIterableToArray","_getPrototypeOf","setPrototypeOf","getPrototypeOf","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","Super","NewTarget","code","__CANCEL__","nodeType","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","__assign","idCounter","noop","node","menuNode","scrollMode","block","inline","boundary","skipOverflowHiddenElements","scrollingElement","documentElement","parentElement","getRootNode","host","visualViewport","width","innerWidth","height","innerHeight","W","scrollX","pageXOffset","scrollY","pageYOffset","getBoundingClientRect","M","top","V","right","bottom","left","R","T","O","X","Y","L","S","j","N","parseInt","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","J","K","offsetWidth","P","offsetHeight","Q","U","max","Z","scrollLeft","$","scrollTop","min","el","isOrContainsNode","parent","child","environment","Node","contains","debounce","time","timeoutId","cancel","clearTimeout","callAllEventHandlers","fns","event","_len3","_key3","some","preventDownshiftDefault","nativeEvent","handleRefs","_len4","refs","_key4","getA11yStatusMessage$1","isOpen","resultCount","previousResultCount","reduce","prevState","isControlledProp","normalizeArrowKey","keyCode","getNextWrappingIndex","moveAmount","baseIndex","itemCount","getItemNodeFromIndex","circular","itemsLastIndex","newIndex","nonDisabledNewIndex","getNextNonDisabledIndex","currentElementNode","hasAttribute","index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","activeElement","cleanupStatus","documentProp","getStatusDiv","textContent","setStatus","div","statusDiv","getElementById","border","clip","margin","overflow","padding","position","dropdownDefaultStateValues","highlightedIndex","selectedItem","inputValue","callOnChangeProps","newState","changes","handler","capitalizeString","invokeOnChangeHandler","updateA11yStatus","getA11yMessage","useElementIds","labelId","menuId","getItemId","toggleButtonId","inputId","getItemIndex","item","items","toUpperCase","useLatestRef","val","useEnhancedReducer","reducer","initialState","prevStateRef","actionRef","enhancedReducer","stateReducer","propsRef","dispatchWithProps","defaultProps$3","itemToString","getA11ySelectionMessage","selectionParameters","itemToStringLocal","scrollIntoView","circularNavigation","getDefaultValue$1","propKey","defaultStateValues","defaultValue","getInitialValue$1","initialValue","getInitialState$2","getHighlightedIndexOnOpen","offset","initialHighlightedIndex","defaultHighlightedIndex","useMouseAndTouchTracker","downshiftElementRefs","handleBlur","mouseAndTouchTrackersRef","isMouseDown","isTouchMove","onMouseDown","onMouseUp","map","onTouchStart","onTouchMove","onTouchEnd","addEventListener","removeEventListener","useGetterPropsCalledChecker","useA11yMessageSetter","dependencyArray","isInitialMount","rest","highlightedItem","useScrollIntoView","itemRefs","menuElement","scrollIntoViewProp","shouldScrollRef","useControlPropsValidator","downshiftCommonReducer","stateChangeTypes","ItemMouseMove","disabled","MenuMouseLeave","ToggleButtonClick","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSetInputValue","FunctionReset","array","bool","any","shape","getA11yStatusMessage","_a","stateChangeTypes$1","freeze","InputKeyDownArrowDown","InputKeyDownArrowUp","InputKeyDownEscape","InputKeyDownHome","InputKeyDownEnd","InputKeyDownEnter","InputChange","InputBlur","ItemClick","FunctionSelectItem","ControlledPropUpdatedSelectedItem","validatePropTypes$1","defaultProps$1","downshiftUseComboboxReducer","shiftKey","selectItem","useCombobox","userProps","initialIsOpen","defaultIsOpen","defaultInputValue","initialInputValue","getInitialState$1","previousSelectedItemRef","useControlledReducer","menuRef","inputRef","toggleButtonRef","comboboxRef","isInitialMountRef","elementIds","previousResultCountRef","latest","focus","setGetterPropCallInfo","inputKeyDownHandlers","preventDefault","latestState","which","getLabelProps","labelProps","htmlFor","getMenuProps","_temp2","onMouseLeave","refKey","suppressRefError","role","getItemProps","_temp3","onMouseMove","onClick","onPress","latestProps","itemIndex","customClickHandler","itemNode","getToggleButtonProps","_temp4","toggleButtonNode","tabIndex","getInputProps","_temp5","_temp6","onKeyDown","onInput","onBlur","onChangeText","inputHandleKeyDown","inputHandleChange","inputHandleBlur","eventHandlers","inputNode","autoComplete","getComboboxProps","_temp7","_temp8","comboboxNode","toggleMenu","closeMenu","openMenu","setHighlightedIndex","newHighlightedIndex","newSelectedItem","setInputValue","newInputValue","getOwnPropertyDescriptors","obj","descriptors","getOwnPropertyDescriptor","formatRegExp","format","objects","inspect","join","len","str","Number","_","isNull","deprecate","msg","noDeprecation","warned","throwDeprecation","traceDeprecation","console","trace","debugEnviron","debugs","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","isFunction","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","RegExp","isDate","Date","output","base","braces","toUTCString","formatProperty","formatArray","pop","cur","numLinesEst","reduceToSingleString","desc","set","split","line","ar","re","objectToString","pad","debuglog","env","NODE_DEBUG","pid","isNullOrUndefined","isSymbol","isPrimitive","months","timestamp","getHours","getMinutes","getSeconds","getDate","getMonth","prop","log","inherits","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","promiseResolve","promiseReject","defineProperties","custom","callbackify","callbackified","maybeCb","nextTick","rej","invariant","condition","framesToPop","warn","getRequiredChunkKey","namespace","LOADABLE_SHARED","initialChunks","identity","createLoadable","_ref$defaultResolveCo","defaultResolveComponent","_render","onLoad","loadable","loadableConstructor","requireAsync","chunkName","resolveConstructor","cache","_getCacheKey","cacheKey","Loadable","resolveComponent","preload","cachedLoad","fileName","EnhancedInnerLoadable","LoadableWithChunkExtractor","extractor","__chunkExtractor","withChunkExtractor","InnerLoadable","loading","requireSync","ssr","loadSync","addChunk","isReady","getDerivedStateFromProps","mounted","cachedPromise","getCache","setCache","loadAsync","prevProps","safeSetState","getCacheKey","triggerOnLoad","resolveAsync","loadedModule","_this$props2","propFallback","fallback","_this$state","suspense","load","lazy","_createLoadable","__esModule","_createLoadable$1","loadable$1","lazy$1","BROWSER","loadableReady","_ref$namespace","_ref$chunkLoadingGlob","chunkLoadingGlobal","requiredChunks","dataElement","extElement","namedChunks","resolved","loadedChunks","originalPush","checkReadyState","every","chunk","loadable$2","lib","encode","encodeURIComponent","serializedParams","parts","toISOString","hashmarkIndex","_slicedToArray","_i","_s","_e","_x","_r","_arr","_n","_d","isAxiosError","toJSON","description","lineNumber","columnNumber","isStandardBrowserEnv","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","href","protocol","search","hostname","port","pathname","charAt","location","requestURL","parsed","_typeof","_defineProperties","descriptor","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","ownKeys","filter","sym","_setPrototypeOf","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","createSymbol","IO","TASK","eff","IS_BROWSER","IS_REACT_NATIVE","product","effectTypes","TAKE","PUT","ALL","RACE","CALL","CPS","FORK","JOIN","CANCEL","SELECT","ACTION_CHANNEL","CANCELLED","FLUSH","GET_CONTEXT","SET_CONTEXT","isRaceEffect","groupPrefix","consoleGroup","_console","_console2","group","DescriptorFormatter","_Formatter","isCancel","logMethod","styleOverride","text","ignoreResult","duration","appendData","addValue","toFixed","Formatter","logs","suffix","prevMsg","_this$suffix","argToString","msgs","msgsArgs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_step$value","return","logSaga","manager","color","getRootIds","now","logEffectTree","effectId","childIds","getChildIds","formatter","winnerInd","winner","addLabel","label","root","addEffectType","resetStyle","addCall","saga","addDescResult","it","throw","_desc$effect","channel","pattern","detached","getFormatterFromDescriptor","getLog","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","groupEnd","globalScope","global","performance","Manager","rootIds","childIdsMap","parentEffectId","computeEffectDur","effect$$1","end","start","resolveEffect","toPromise","taskResult","isCancelled","cancelEffect","taskError","rejectEffect","setRaceWinner","raceEffectId","winnerLabel","childId","childEffect","defaultConfig","level","verbose","rootSagaStart","effectTrigger","effectResolve","effectReject","effectCancel","actionDispatch","createSagaMonitor","rootSagaStarted","setRootEffect","effectTriggered","effectResolved","effectRejected","effectCancelled","actionDispatched","$$LogSagas","VERSION","createError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","axiosKeys","otherKeys","__spreadArray","to","pack","_global","globalThis","extend","extension","getProto","_hasOwn","hasOwn","proto","setProp","functionOrGetSet","derive","Child","Parent","getPropertyDescriptor","_slice","override","origFunc","overridedFactory","assert","asap$1","setImmediate","arrayToObject","nameAndValue","getByKeyPath","keyPath","rv","period","innerObj","setByKeyPath","isFrozen","currentKeyPath","remainingKeyPath","isNaN","splice","shallowClone","flatten","intrinsicTypeNames","num","intrinsicTypes","circularRefs","deepClone","WeakMap","innerDeepClone","toStringTag","iteratorSymbol","getIteratorOf","NO_CHAR_ARRAY","getArrayOf","arrayLike","isAsyncFunction","debug","setDebug","libraryFilter","NEEDS_THROW_FOR_STACK","getErrorWithStack","prettyStack","exception","numIgnoredFrames","frame","idbDomErrorNames","errorList","defaultTexts","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","DexieError","getMultiErrorMessage","failures","ModifyError","successCount","failedKeys","BulkError","pos","failuresByPos","_stack","errnames","BaseException","exceptions","fullName","msgOrInner","inner","Syntax","SyntaxError","Type","Range","RangeError","exceptionMap","fullNameExceptions","nop","mirror","pureFunctionChain","f1","f2","callBoth","on1","on2","hookCreatingChain","res","onsuccess","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","thiz","INTERNAL","_a$1","globalP","crypto","subtle","nativeP","digest","Uint8Array","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","stack_being_generated","schedulePhysicalTick","physicalTick","MutationObserver","hiddenDiv","observe","asap","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","currentFulfiller","rejectionMapper","globalPSD","unhandleds","onunhandled","globalError","pgp","finalize","uh","PSD","numScheduledCalls","tickFinalizers","DexiePromise","_listeners","onuncatched","_lib","psd","_PSD","_stackHolder","_prev","_numPrev","_state","_value","handleRejection","executePromiseTask","thenProp","microTaskId","totalEchoes","possibleAwait","cleanup","decrementExpectedAwaits","propagateToListener","Listener","nativeAwaitCompatibleWrap","linkToPreviousPromise","zone","shouldExecuteTick","beginMicroTickScope","_then","propagateAllListeners","endMicroTickScope","ex","_promise","tryCatch","origProp","addPossiblyUnhandledError","finalizePhysicalTick","callListener","markErrorAsHandled","numPrev","wasRootExec","callbacks","unhandledErrs","finalizers","PromiseReject","wrap","errorCatcher","outerScope","switchToZone","catch","finally","onFinally","getStack","stacks","limit","errorName","failure","ms","Infinity","handle","Timeout","snapShot","all","values","onPossibleParallellAsync","remaining","race","newPSD","newScope","usePSD","scheduler","follow","zoneProps","finalizer","run_at_end_of_this_or_next_physical_tick","allSettled","possiblePromises","results","AggregateError","awaits","echoes","taskCounter","zoneStack","zoneEchoes","zone_id_counter","a1","a2","globalEnv","PromiseProp","nthen","getPatchedPromiseThen","gthen","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","bEnteringZone","currentZone","enqueueNativeMicroTask","GlobalPromise_1","targetEnv","GlobalPromise","a3","job","outerZone","origThen","onResolved","eventData","createEvent","initEvent","CustomEvent","detail","dispatchEvent","PromiseRejectionEvent","onunhandledrejection","defaultPrevented","maxString","fromCharCode","INVALID_KEY_ARGUMENT","connections","isIEOrEdge","hasIEDeleteObjectStoreBug","hangsOnDeleteLargeKeyRange","dexieStackFrameFilter","combine","filter1","filter2","AnyRange","lower","lowerOpen","upper","upperOpen","workaroundForUndefinedPrimKey","Table","_trans","mode","writeLocked","trans","_tx","tableName","checkTableInTransaction","schema","NotFound","idbtrans","db","transless","tempTransaction","storeNames","idbdb","openComplete","letThrough","_vip","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","_close","open","_completion","dbOpenError","isBeingOpened","autoOpen","dbReadyPromise","keyOrCrit","where","core","hook","reading","fire","indexOrCrit","WhereClause","keyPaths","equals","compoundIndex","indexes","primKey","ix","compound","_maxKey","kp","idxByName","idb","_deps","indexedDB","cmp","prevIndex","prevFilterFn","multi","filterFunction","toCollection","and","thenShortcut","numRows","each","toArray","Collection","orderBy","reverse","mapToClass","mappedClass","readHook","defineClass","content","auto","objToAdd","mutate","numFailures","lastResult","update","keyOrObject","modify","InvalidArgument","put","delete","range","bulkGet","getMany","bulkAdd","keysOrOptions","wantResults","allKeys","numObjects","objectsToAdd","bulkPut","objectsToPut","bulkDelete","numKeys","Events","evs","eventName","subscriber","addEventType","chainFunction","defaultFunction","addConfiguredEvents","subscribers","cfg","makeClassConstructor","isPlainKeyRange","ignoreLimitFilter","algorithm","or","justLimit","replayFilter","addFilter","addReplayFilter","factory","isLimitFilter","curr","getIndexOrStore","coreSchema","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","coreTable","keysOnly","dir","unique","query","coreTrans","set_1","union","cursor","advance","stop","fail","_iterate","iterate","valueMapper","cursorPromise","wrappedFn","continue","advancer","ta","tb","NaN","al","bl","compareUint8Arrays","getUint8Array","compareArrays","ArrayBuffer","isView","tsTag","byteOffset","byteLength","_read","_ctx","table","_write","_addAlgorithm","clone","raw","sortBy","lastPart","lastIndex","getval","order","sorter","aVal","bVal","sort","valueMapper_1","a_1","offsetLeft","rowsLeft","until","bIncludeStopEntry","isMatch","indexName","_ondirectionchange","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","distinct","strKey","found","modifyer","anythingModified","outbound","extractKey","modifyChunkSize","totalFailures","applyMutateResult","expectedCount","nextChunk","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","criteria","deleteCallback","changeSpec","coreRange","simpleCompare","simpleCompareReverse","collectionOrWhereClause","collection","emptyCollection","whereClause","rangeEqual","nextCasing","lowerKey","upperNeedle","lowerNeedle","llp","lwrKeyChar","addIgnoreCaseAlgorithm","needles","compare","upperNeedles","lowerNeedles","direction","nextKeySuffix","needlesLen","initDirection","upperFactory","lowerFactory","needleBounds","needle","nb","createRange","firstPossibleNeedle","lowestPossibleCasing","casing","between","includeLower","includeUpper","_cmp","above","aboveOrEqual","below","belowOrEqual","startsWith","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","anyOf","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","ranges","ascending","descending","_min","_max","sortDirection","rangeSorter","newRange","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","checkKey","keyWithinCurrentRange","startsWithAnyOf","eventRejectHandler","stopPropagation","globalEvents","Transaction","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","fnAndPSD","OpenFailed","active","transaction","durability","chromeTransactionDurability","ev","_reject","onabort","on","oncomplete","_resolve","storagemutated","bWriteLock","ReadOnly","_root","waitFor","promiseLike","_waitingFor","_waitingQueue","objectStore","spin","_spinCount","currentWaitPromise","abort","memoizedTables","_memoizedTables","tableSchema","transactionBoundTable","createIndexSpec","nameFromKeyPath","createTableSchema","getMaxKey","IdbKeyRange","only","getKeyExtractor","getSinglePathKeyExtractor","arrayify","_id_counter","getKeyPathAlias","createDBCore","tmpTrans","makeIDBKeyRange","upperBound","lowerBound","bound","tables","objectStoreNames","autoIncrement","indexByKeyPath","isPrimaryKey","indexNames","multiEntry","hasGetAll","extractSchema","isAddOrPut","req","reqs","errorHandler","args1","args2","keyCount","callbackCount","successHandler","_pos","nonInfinitLimit","idbKeyRange","getAll","getAllKeys","count_1","req_1","openKeyCursor","result_1","___id","_cursorContinue","_cursorContinuePrimaryKey","continuePrimaryKey","_cursorAdvance","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","createDbCoreTable","tableMap","MIN_KEY","MAX_KEY","createMiddlewareStacks","middlewares","IDBKeyRange","dbcore","stackImpl","down","createMiddlewareStack","generateMiddlewareStacks","_novip","_middlewares","tbl","setApiOnPlace","objs","tableNames","dbschema","propDesc","removeTablesApi","lowerVersionFirst","_cfg","version","runUpgraders","oldVersion","idbUpgradeTrans","globalSchema","_storeNames","rejectTransaction","createTable","populate","queue","versions","_versions","buildGlobalSchema","anyContentUpgraderHasRun","runQueue","oldSchema","newSchema","adjustToExistingIndexNames","diff","getSchemaDiff","tuple","change","recreate","Upgrade","store_1","addIndex","deleteIndex","del","idxName","contentUpgrade","upgradeSchema_1","returnValue_1","contentUpgradeIsAsync_1","promiseFollowed","decrementor","storeName","deleteObjectStore","deleteRemovedTables","updateTablesAndIndexes","oldDef","newDef","def","oldIndexes","newIndexes","oldIdx","newIdx","createObjectStore","createIndex","idbindex","_hasGetAll","dexieName","indexSpec","WorkerGlobalScope","Version","_parseStoresSpec","stores","outSchema","indexNum","storesSource","storesSpec","_allTables","upgrade","upgradeFunction","getDbNamesTable","dbNamesDB","Dexie$1","addons","dbnames","hasDatabasesNative","databases","_onDatabaseDeleted","vip","idbReady","intervalId","userAgentData","tryIdb","setInterval","clearInterval","dexieOpen","openCanceller","throwIfCancelled","resolveDbReady","dbReadyResolve","upgradeTransaction","wasCreated","dbName","autoSchema","round","verno","onblocked","_fireOnBlocked","onupgradeneeded","allowEmptyDB","close","delreq","deleteDatabase","NoSuchDatabase","oldVer","pow","readGlobalSchema","ch","verifyInstalledSchema","onversionchange","vcFired","onclose","_onDatabaseCreated","onReadyBeingFired","ready","fireRemainders","remainders_1","awaitIterator","callNext","onSuccess","step","onError","getNext","extractTransactionArgs","_tableArgs_","scopeFunc","enterTransactionScope","parentTransaction","returnValue","scopeFuncIsAsync","PrematureCommit","virtualIndexMiddleware","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","translateRequest","createVirtualCursor","getObjectDiff","prfx","ap","bp","apTypeName","hooksMiddleware","downCore","downTable","dxTrans","deleting","creating","updating","addPutOrDelete","deleteNextChunk","deleteRange","getEffectiveKeys","effectiveKeys","getExistingValues","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","getFromTransactionCache","cacheExistingValuesMiddleware","cachedResult","isEmptyRange","RangeSet","fromOrTree","addRange","rebalance","rightWasCutOff","mergeRanges","newSet","_addRangeSet","getRangeSetIterator","keyProvided","up","_b","rootClone","oldRootRight","computeDepth","rangeSet","addKey","addKeys","observabilityMiddleware","FULL_RANGE","tableClone","mutatedParts","getRangeSet","part","pkRangeSet","delsRangeSet","newObjs","oldCache","oldObjs","addKeyOrKeys","oldKey","newKey","trackAffectedIndexes","getRange","_c","readSubscribers","subscr","pkRangeSet_1","delsRangeSet_1","queriedIndex","queriedRanges","keysPromise_1","resultingKeys","pKeys","cursor_1","wantValues_1","pkey","domDeps","Dexie","deps","cancelOpen","bSticky","db_1","keyRangeGenerator","keyRange","whereCtx","readingHook","createTableConstructor","complete","wasActive","createTransactionConstructor","versionNumber","createVersionConstructor","orCollection","_IDBKeyRange","createWhereClauseConstructor","newVersion","addon","versionInstance","_whenReady","unuse","mw","hasArguments","doDelete","backendDB","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","idbMode","onlyIfCompatible","SubTransaction","enterTransaction","InvalidTable","symbolObservable","observable","Observable","_subscribe","extendObservabilitySet","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","propagateLocally","updateParts","wasMe","propagatingLocally","databaseName","exists","getDatabaseNames","infos","ignoreTransaction","generatorFn","spawn","currentTransaction","promiseOrFunction","optionalTimeout","liveQuery","querier","closed","accumMuts","currentObs","mutationListener","querying","startedListening","shouldNotify","rangeSet1","rangeSet2","i1","nextResult1","i2","nextResult2","rangesOverlap","doQuery","exec","delByKeyPath","minKey","semVer","maxKey","updatedParts","event_1","initCustomEvent","BroadcastChannel","bc_1","changedParts","postMessage","onmessage","localStorage","setItem","trig","matchAll","includeUncontrolled","client","newValue","swContainer","serviceWorker","domError","transformData","throwIfCancellationRequested","cancelToken","throwIfRequested","__rest","convertFromGoogleAnalyticsEventIfNeeded","hitType","__pow","unit","unit2","px$1","deg","pxToRem","rootFontSize","remPx","num2","rpx","transformNegative","variants","neg","abs","varVal","mediaMinWidth","getBreakpointMin","screens","getBreakpointMax","__defProp$6","__getOwnPropSymbols$6","__hasOwnProp$6","__propIsEnum$6","__defNormalProp$6","__spreadValues$6","getScreens","getCachedVariants","has","states","getStates","medias","getVariants","caches","Map","noopCache","getThemeCache","__defProp$5","__getOwnPropSymbols$5","__hasOwnProp$5","__propIsEnum$5","__defNormalProp$5","obj2","themeGetterId","SPLITTERS","splitValue","splitter","transform","themeGetter","defaultTransform","compose","compose2","shorthand","multiple","getter","value2","localDefaultValue","path","fromTheme","transformers","meta","createStyleGenerator","getStyle","cssGetters","generators","generator","__spreadValues$5","reduceVariants","style2","flatGenerators","generatorsByProp","indexGeneratorsByProp","props2","merged","variant","sortStyles","getMixinFromCSSOption","css","properties","themeGet","cssProps","cssPropsOption","mixin2","generators2","prop2","mixin","fromValue","getStyleFactory","getters","cssProp","dasherize","getPx","settings","getDuration","getAngle","getPercent","getTransition","getTransitionProperty","getTimingFunction","transition","transitionProperty","transitionDuration","transitionTimingFunction","transitionDelay","transitions$1","getAnimation","animation","animationDuration","animationTimingFunction","animations","getColor","gradientBackgrounds","background","backgroundColor","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","backgroundAttachment","backgroundClip","gradientFrom","gradientVia","gradientTo","backgrounds","getBorder","getBorderWidth","getBorderColor","getBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderWidth","borderStyle","outline","outlineColor","outlineWidth","outlineStyle","getRadius","borderRadius","divideSelector","divideY","divideX","divideXReverse","divideYReverse","divideColor","divideStyle","getRingWidth","ring","boxShadow","ringInset","ringColor","borders","getShadow","opacity","textShadow","effects","__defProp$4","__getOwnPropSymbols$4","__hasOwnProp$4","__propIsEnum$4","__defNormalProp$4","__spreadValues$4","row","boxSizing","flexGrow","flexWrap","getColStyle","flexBasis","maxWidth","flex","sizeWidth","col","breakpointsStyle","flexboxGrids","__defProp$3","__getOwnPropSymbols$3","__hasOwnProp$3","__propIsEnum$3","__defNormalProp$3","float","container","breakpoints","__spreadValues$3","getZIndex","zIndex","getInset","visibility","overscrollBehavior","objectFit","layout","alignItems","alignContent","justifyContent","justifyItems","flexShrink","flexDirection","justifySelf","alignSelf","flexboxes","getSpace","marginTop","marginRight","marginBottom","marginLeft","mx","my","paddingTop","paddingRight","paddingBottom","paddingLeft","px","py","spaceY","spaceX","spaceXReverse","spaceYReverse","space$1","gap","columnGap","rowGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","grids","appearance","pointerEvents","resize","userSelect","interactivity","getSize","maxHeight","minWidth","minHeight","maskSize","sizing","stroke","svg","borderCollapse","tableLayout","getTransform","transformOrigin","translateX","translateY","rotate","skewX","skewY","scale","scaleX","scaleY","transforms","__defProp$2","__defProps$1","__getOwnPropDescs$1","__getOwnPropSymbols$2","__hasOwnProp$2","__propIsEnum$2","__defNormalProp$2","getFont","getLineHeight","getFontWeight","getLetterSpacing","getFontSize","fontFamily","fontSize","lineHeight","fontWeight","fontStyle","letterSpacing","textTransform","textDecoration","textAlign","verticalAlign","whiteSpace","textOverflow","listStyleType","listStylePosition","__spreadProps$1","__spreadValues$2","typography","system","th","rules","allRules","keysLength","rpxTransformers","__defProp$1","__getOwnPropSymbols$1","__hasOwnProp$1","__propIsEnum$1","__defNormalProp$1","__spreadValues$1","defaultAlphaVariants","generateHexAlphaVariants","alphaColors","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","space","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96","timingFunctions","transitionProperties","shadow","transitions","property","fontSizes","xs","sm","lg","xl","texts","texts2","defaultTheme","black","white","md","durations","instant","sizes","__spreadProps","__spreadValues","full","radii","none","shadows","fontWeights","hairline","thin","light","normal","medium","semibold","bold","extrabold","fonts","mono","serif","sans","letterSpacings","tighter","tight","wide","wider","widest","lineHeights","snug","relaxed","loose","borderWidths","ringWidths","ping","pulse","bounce","motionSafe","motionReduce","odd","even","visited","checked","focusWithin","hover","focusVisible","placeholder","getPreflightStyles","utils_1","dataLayerName","events","_arrayLikeToArray","Cancel","write","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","remove","isAbsoluteURL","combineURLs","requestedURL","offline_web_1","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","allowUnknown","CancelToken","executor","resolvePromise","useThemeScreens","useViewportWidth","setWidth","handleResize","useThemeDown","breakPoint","useThemeMaxValue","toVarName","toVarValue","toProp","toCustomPropertiesReferences","toCustomPropertiesDeclarations","__objRest","exclude","STORAGE_KEY","storage","removeItem","getItem","getColorModeClassName","SYSTEM_MODES","getColorModeQuery","checkHasColorModes","modes","checkHasCustomPropertiesEnabled","useCustomProperties","getInitialColorModeName","initialColorModeName","getUsedColorKeys","createColorStyles","targetSelector","colorKeys","getModePropertiesDeclarations","modeTheme","getModeTheme","_a2","modes2","colors2","useColorSchemeMediaQuery","mediaQuery","useSystemMode","configs","checkHasMediaQueryEnabled","mql","matchMedia","getSystemModeMql","systemMode","setSystemMode","find","matches","cleans","previousMode","clean","useColorModeState","defaultColorMode","defaultColorModeName","getDefaultColorModeName","initialColorMode","setMode","customPropertiesEnabled","manualSetRef","manuallySetMode","storedMode","targetMode","className","usedTarget","classList","ColorModeContext","getMediaWidth","getBreakpointBound","mediaGetters","MATCH_REGEXP","QUERY_REGEXP","mediaTransform","colon","createUseGetter","useTheme","ThemeContext","ThemeProvider","ColorModeStyle","createColorModeProvider","useDown","angle","font","inset","percent","radius","ringWidth","timingFunction","Preflight","createCssFunction","imp","semi","media","brace","createTransform","scCssArgs","getCreateStyle","baseCreateStyle","createStyle","attrs","withConfig","createShouldForwardProp","propSet","Set","defaultValidatorFn","elementToBeCreated","createBaseStyled","shouldForwardProp","component","baseStyled","createStyled","styled","xstyled","box","createX","tag","createCreateGlobalStyle","createGlobalStyle","openDB","save","addEvents","timeSaved","addTimestamp","purge","oldEvents","isConnected","saveEvents","purgeEvents","handlePurgedEvents","defaultSystem","unstable_prefix","_ref$unstable_system","unstable_system","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","clock","currentTime","cafPolyfill","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","getAttribute","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","innerHTML","styleSheet","cssText","createTextNode","existingTag","isEqualNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","link","noscript","HelmetExport","_class","HelmetWrapper","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","Children","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","oneOfType","arrayOf","defaultTitle","defer","titleTemplate","peek","rewind","mappedState","Helmet","renderStatic","MessageChannel","port1","port2","URL","nn","tn","rn","en","un","an","cn","installing","sn","vn","hn","ln","sw","isExternal","originalEvent","mn","isUpdate","wn","waiting","dn","controller","gn","ports","getSW","register","immediate","readyState","yn","pn","bn","once","wasWaitingBeforeRegister","messageSW","messageSkipWaiting","Pn","Sn","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","username","password","unescape","Authorization","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","responseURL","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","send","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","_e2","interleave","strings","interpolations","EMPTY_OBJECT","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","REACT_APP_SC_ATTR","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","STATIC_EXECUTION_CONTEXT","StyledComponentsError","_Error","SC_COMPONENT_ID","extractComps","maybeCSS","existingComponents","componentId","matchIndex","nextComp","cssFromDOM","COMMENT_REGEX","stylisSplitter","cascade","keyframe","compress","semicolon","stylis","parsingRules","returnRulesPlugin","parsedRules","parseRulesPlugin","rule","_componentId","_selector","_selectorRegexp","selfReferenceReplacer","selectors","lastIndexOf","splitByRules","stringifyRules","flatCSS","cssStr","getNonce","addNameForId","names","resetIdNames","hasNameForId","stringifyNames","sheetForTag","sheet","styleSheets","ownerNode","safeInsertRule","cssRule","maxIndex","cssRules","insertRule","makeTextMarker","addUpUntilIndex","totalUpToIndex","wrapAsHtmlTag","additionalAttrs","nonce","SC_VERSION_ATTR","wrapAsElement","getIdsFromMarkersFactory","markers","makeTextNode","targetDocument","makeServerTag","namesArg","markersArg","insertMarker","cssForId","namesClone","cloneNames","markersClone","getIds","insertRules","removeRules","marker","sealed","styleTag","toElement","toHTML","makeTag","tagEl","forceServer","insertBefore","getImportRuleTag","nextSibling","makeStyleTag","extractImport","usedImportRuleTag","importRules","cssRulesSize","mayHaveImport","separator","newMarker","replaceChild","makeBrowserTag","insertIndex","injectedRules","removalIndex","deleteRule","deleteRules","makeSpeedyTag","SPLIT_REGEX","MAX_SIZE","sheetRunningId","master","StyleSheet","importRuleTag","firstTag","tagMap","deferred","rehydratedNames","ignoreRehydratedNames","capacity","clones","rehydrate","els","extracted","isStreamed","nodes","nodesSize","elNames","elNamesSize","extractedSize","_extracted$i","_j","ids","newTag","sealAllTags","lastEl","getTagForId","hasId","deferredInject","inject","toReactElements","Keyframes","getName","uppercasePattern","msPattern","hyphenateStyleName","isFalsish","objToCssArray","prevKey","executionContext","ruleSet","isReactComponent","murmurhash","charCodeAt","getAlphabeticChar","generateAlphabeticName","floor","isStaticRules","hasFunctionObjectKey","_TYPE_STATICS","hasher","ComponentStyle","isStatic","generateAndInjectStyles","lastClassName","generateName","determineTheme","fallbackTheme","isDefaultTheme","escapeRegex","dashesAtEnds","escape","isTag","REACT_STATICS","childContextTypes","contextTypes","KNOWN_STATICS","caller","callee","arity","TYPE_STATICS","defineProperty$1","_Object$getOwnPropert","objectPrototype","arrayPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ThemeConsumer","getContext","renderInner","outerTheme","getTheme","StyleSheetContext","ServerStyleSheet","masterSheet","seal","collectStyles","StyleSheetManager","getStyleTags","getStyleElement","interleaveWithNodeStream","readableStream","StyleSheetConsumer","identifiers","StyledComponent","renderOuter","forwardedComponent","componentStyle","_props$forwardedCompo","foldedComponentIds","generatedClassName","as","isTargetTag","propsForElement","computedProps","buildExecutionContext","attrDef","resolvedAttrDef","attrDefWasFn","_props$forwardedCompo2","warnTooManyClasses","createStyledComponent","isTargetStyledComp","isClass","_options$displayName","generateDisplayName","_options$componentId","_ComponentStyle","_displayName","parentComponentId","nr","_options$ParentCompon","ParentComponent","_options$attrs","finalAttrs","WrappedStyledComponent","withComponent","previousComponentId","optionsToCopy","newComponentId","_foldedDefaultProps","constructWithOptions","componentConstructor","templateFunction","domElement","GlobalStyle","createStyles","removeStyles","renderStyles","GlobalStyleComponent","_this$constructor","globalStyle","scCGSHMRCache","ignoreDuplicateOf","specialProperties","negative","getThemeValue","initial","paths","pathsLength","path2","flattenStrings","flattenedArray","_regeneratorRuntime","Op","$Symbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","record","__await","unwrapped","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","skipTempReset","rootRecord","rval","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","FormData","pipe","URLSearchParams","assignValue","stripBOM","normalizedName","createInstance","axios","promises","spread"],"mappings":"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","file":"static/js/61.4759ad70.chunk.js","sourcesContent":["import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar google_tag_manager_1 = require(\"./google-tag-manager\");\nexports.default = google_tag_manager_1.default;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","import '@redux-saga/symbols';\nimport '@babel/runtime/helpers/esm/extends';\nimport { channel, stringableFunc, func, notUndef } from '@redux-saga/is';\nimport { q as makeIterator, K as take, L as fork, M as cancel, N as call, O as actionChannel, Q as sliding, U as delay, V as race, c as check } from './io-40341e1a.js';\nexport { O as actionChannel, _ as all, $ as apply, N as call, M as cancel, a4 as cancelled, a0 as cps, U as delay, W as effectTypes, a5 as flush, L as fork, a6 as getContext, a2 as join, Y as put, Z as putResolve, V as race, a3 as select, a7 as setContext, a1 as spawn, K as take, X as takeMaybe } from './io-40341e1a.js';\nimport '@redux-saga/delay-p';\n\nvar done = function done(value) {\n return {\n done: true,\n value: value\n };\n};\n\nvar qEnd = {};\nfunction safeName(patternOrChannel) {\n if (channel(patternOrChannel)) {\n return 'channel';\n }\n\n if (stringableFunc(patternOrChannel)) {\n return String(patternOrChannel);\n }\n\n if (func(patternOrChannel)) {\n return patternOrChannel.name;\n }\n\n return String(patternOrChannel);\n}\nfunction fsmIterator(fsm, startState, name) {\n var stateUpdater,\n errorState,\n effect,\n nextState = startState;\n\n function next(arg, error) {\n if (nextState === qEnd) {\n return done(arg);\n }\n\n if (error && !errorState) {\n nextState = qEnd;\n throw error;\n } else {\n stateUpdater && stateUpdater(arg);\n var currentState = error ? fsm[errorState](error) : fsm[nextState]();\n nextState = currentState.nextState;\n effect = currentState.effect;\n stateUpdater = currentState.stateUpdater;\n errorState = currentState.errorState;\n return nextState === qEnd ? done(arg) : effect;\n }\n }\n\n return makeIterator(next, function (error) {\n return next(null, error);\n }, name);\n}\n\nfunction takeEvery(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action,\n setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yFork(action)\n };\n }\n }, 'q1', \"takeEvery(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yCancel = function yCancel(task) {\n return {\n done: false,\n value: cancel(task)\n };\n };\n\n var task, action;\n\n var setTask = function setTask(t) {\n return task = t;\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return task ? {\n nextState: 'q3',\n effect: yCancel(task)\n } : {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n },\n q3: function q3() {\n return {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n }\n }, 'q1', \"takeLatest(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLeading(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yCall = function yCall(ac) {\n return {\n done: false,\n value: call.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action;\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yCall(action)\n };\n }\n }, 'q1', \"takeLeading(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction throttle(delayLength, pattern, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, channel;\n var yActionChannel = {\n done: false,\n value: actionChannel(pattern, sliding(1))\n };\n\n var yTake = function yTake() {\n return {\n done: false,\n value: take(channel)\n };\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setChannel = function setChannel(ch) {\n return channel = ch;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yActionChannel,\n stateUpdater: setChannel\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yTake(),\n stateUpdater: setAction\n };\n },\n q3: function q3() {\n return {\n nextState: 'q4',\n effect: yFork(action)\n };\n },\n q4: function q4() {\n return {\n nextState: 'q2',\n effect: yDelay\n };\n }\n }, 'q1', \"throttle(\" + safeName(pattern) + \", \" + worker.name + \")\");\n}\n\nfunction retry(maxTries, delayLength, fn) {\n var counter = maxTries;\n\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var yCall = {\n done: false,\n value: call.apply(void 0, [fn].concat(args))\n };\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yCall,\n errorState: 'q10'\n };\n },\n q2: function q2() {\n return {\n nextState: qEnd\n };\n },\n q10: function q10(error) {\n counter -= 1;\n\n if (counter <= 0) {\n throw error;\n }\n\n return {\n nextState: 'q1',\n effect: yDelay\n };\n }\n }, 'q1', \"retry(\" + fn.name + \")\");\n}\n\nfunction debounceHelper(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, raceOutput;\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n var yRace = {\n done: false,\n value: race({\n action: take(patternOrChannel),\n debounce: delay(delayLength)\n })\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yNoop = function yNoop(value) {\n return {\n done: false,\n value: value\n };\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setRaceOutput = function setRaceOutput(ro) {\n return raceOutput = ro;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yRace,\n stateUpdater: setRaceOutput\n };\n },\n q3: function q3() {\n return raceOutput.debounce ? {\n nextState: 'q1',\n effect: yFork(action)\n } : {\n nextState: 'q2',\n effect: yNoop(raceOutput.action),\n stateUpdater: setAction\n };\n }\n }, 'q1', \"debounce(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nvar validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {\n check(patternOrChannel, notUndef, fn.name + \" requires a pattern or channel\");\n check(worker, notUndef, fn.name + \" requires a saga parameter\");\n};\n\nfunction takeEvery$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeEvery$1, patternOrChannel, worker);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));\n}\nfunction takeLatest$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLatest$1, patternOrChannel, worker);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));\n}\nfunction takeLeading$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLeading$1, patternOrChannel, worker);\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));\n}\nfunction throttle$1(ms, pattern, worker) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern, notUndef, 'throttle requires a pattern');\n check(worker, notUndef, 'throttle requires a saga parameter');\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n args[_key4 - 3] = arguments[_key4];\n }\n\n return fork.apply(void 0, [throttle, ms, pattern, worker].concat(args));\n}\nfunction retry$1(maxTries, delayLength, worker) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {\n args[_key5 - 3] = arguments[_key5];\n }\n\n return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));\n}\nfunction debounce(delayLength, pattern, worker) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {\n args[_key6 - 3] = arguments[_key6];\n }\n\n return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));\n}\n\nexport { debounce, retry$1 as retry, takeEvery$1 as takeEvery, takeLatest$1 as takeLatest, takeLeading$1 as takeLeading, throttle$1 as throttle };\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import { createContext, useRef, useCallback, createElement } from 'react';\n\nvar defaultPrefix = \"id\";\nfunction generateRandomString(prefix) {\n if (prefix === void 0) {\n prefix = defaultPrefix;\n }\n\n return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(32).substr(2, 6);\n}\n\nvar unstable_IdContext = /*#__PURE__*/createContext(generateRandomString);\nfunction unstable_IdProvider(_ref) {\n var children = _ref.children,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;\n var count = useRef(0);\n var generateId = useCallback(function (localPrefix) {\n if (localPrefix === void 0) {\n localPrefix = prefix;\n }\n\n return \"\" + (localPrefix ? localPrefix + \"-\" : \"\") + ++count.current;\n }, [prefix]);\n return /*#__PURE__*/createElement(unstable_IdContext.Provider, {\n value: generateId\n }, children);\n}\n\nexport { unstable_IdContext, unstable_IdProvider };\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeighte||o>t&&l=e&&d>=n?o-t-r:l>e&&dn?l-e+i:0}var i=function(e,i){var o=window,l=i.scrollMode,d=i.block,f=i.inline,h=i.boundary,u=i.skipOverflowHiddenElements,s=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var a,c,g=document.scrollingElement||document.documentElement,p=[],m=e;t(m)&&s(m);){if((m=null==(c=(a=m).parentElement)?a.getRootNode().host||null:c)===g){p.push(m);break}null!=m&&m===document.body&&n(m)&&!n(document.documentElement)||null!=m&&n(m,u)&&p.push(m)}for(var w=o.visualViewport?o.visualViewport.width:innerWidth,v=o.visualViewport?o.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,H=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),y=b.height,E=b.width,M=b.top,V=b.right,x=b.bottom,I=b.left,C=\"start\"===d||\"nearest\"===d?M:\"end\"===d?x:M+y/2,R=\"center\"===f?I+E/2:\"end\"===f?V:I,T=[],k=0;k=0&&I>=0&&x<=v&&V<=w&&M>=Y&&x<=S&&I>=j&&V<=L)return T;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K=\"offsetWidth\"in B?B.offsetWidth-B.clientWidth-q-A:0,P=\"offsetHeight\"in B?B.offsetHeight-B.clientHeight-z-F:0,Q=\"offsetWidth\"in B?0===B.offsetWidth?0:X/B.offsetWidth:0,U=\"offsetHeight\"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(g===B)G=\"start\"===d?C:\"end\"===d?C-v:\"nearest\"===d?r(H,H+v,v,z,F,H+C,H+C+y,y):C-v/2,J=\"start\"===f?R:\"center\"===f?R-w/2:\"end\"===f?R-w:r(W,W+w,w,q,A,W+R,W+R+E,E),G=Math.max(0,G+H),J=Math.max(0,J+W);else{G=\"start\"===d?C-Y-z:\"end\"===d?C-S+F+P:\"nearest\"===d?r(Y,S,O,z,F+P,C,C+y,y):C-(Y+O/2)+P/2,J=\"start\"===f?R-j-q:\"center\"===f?R-(j+X/2)+K/2:\"end\"===f?R-L+A+K:r(j,L,X,q,A+K,R,R+E,E);var Z=B.scrollLeft,$=B.scrollTop;C+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),R+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-X/Q+K)))}T.push({el:B,top:G,left:J})}return T};export{i as default};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import PropTypes from 'prop-types';\nimport { Component, cloneElement, useRef, useEffect, useCallback, useLayoutEffect, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nlet idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n const actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(_ref => {\n let {\n el,\n top,\n left\n } = _ref;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child, environment) {\n const result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n let timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(() => {\n timeoutId = null;\n fn(...args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(fn => {\n if (fn) {\n fn(event, ...args);\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return node => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage$1(_ref2) {\n let {\n isOpen,\n resultCount,\n previousResultCount\n } = _ref2;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return `${resultCount} result${resultCount === 1 ? ' is' : 's are'} available, use up and down arrow keys to navigate. Press Enter key to select.`;\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n\n\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(`The property \"${propName}\" is required in \"${fnName}\"`);\n}\n\nconst stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n const result = {};\n stateKeys.forEach(k => {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n return Object.keys(state).reduce((prevState, key) => {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n const {\n key,\n keyCode\n } = event;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return `Arrow${key}`;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n if (circular === void 0) {\n circular = true;\n }\n\n if (itemCount === 0) {\n return -1;\n }\n\n const itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n let newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0;\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex;\n }\n\n const nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n\n if (nonDisabledNewIndex === -1) {\n return baseIndex >= itemCount ? -1 : baseIndex;\n }\n\n return nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n const currentElementNode = getItemNodeFromIndex(baseIndex);\n\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex;\n }\n\n if (moveAmount > 0) {\n for (let index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n } else {\n for (let index = baseIndex - 1; index >= 0; index--) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return downshiftElements.some(contextNode => contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment)));\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nlet validateControlledUnchanged = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = (state, prevProps, nextProps) => {\n const warningDescription = `This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props`;\n Object.keys(state).forEach(propKey => {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(`downshift: A component has changed the controlled prop \"${propKey}\" to be uncontrolled. ${warningDescription}`);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(`downshift: A component has changed the uncontrolled prop \"${propKey}\" to be controlled. ${warningDescription}`);\n }\n });\n };\n}\n\nconst cleanupStatus = debounce(documentProp => {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n const div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n let statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nconst unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nconst mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nconst itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nconst keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nconst keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nconst keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nconst keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nconst keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nconst keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nconst clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nconst blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nconst changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nconst keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nconst clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nconst blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nconst controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nconst touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\n/* eslint camelcase:0 */\n\nconst Downshift = /*#__PURE__*/(() => {\n class Downshift extends Component {\n constructor(_props) {\n var _this;\n\n super(_props);\n _this = this;\n this.id = this.props.id || `downshift-${generateId()}`;\n this.menuId = this.props.menuId || `${this.id}-menu`;\n this.labelId = this.props.labelId || `${this.id}-label`;\n this.inputId = this.props.inputId || `${this.id}-input`;\n\n this.getItemId = this.props.getItemId || (index => `${this.id}-item-${index}`);\n\n this.input = null;\n this.items = [];\n this.itemCount = null;\n this.previousResultCount = 0;\n this.timeoutIds = [];\n\n this.internalSetTimeout = (fn, time) => {\n const id = setTimeout(() => {\n this.timeoutIds = this.timeoutIds.filter(i => i !== id);\n fn();\n }, time);\n this.timeoutIds.push(id);\n };\n\n this.setItemCount = count => {\n this.itemCount = count;\n };\n\n this.unsetItemCount = () => {\n this.itemCount = null;\n };\n\n this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState({\n highlightedIndex,\n ...otherStateToSet\n });\n };\n\n this.clearSelection = cb => {\n this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: this.props.defaultHighlightedIndex,\n isOpen: this.props.defaultIsOpen\n }, cb);\n };\n\n this.selectItem = (item, otherStateToSet, cb) => {\n otherStateToSet = pickState(otherStateToSet);\n this.internalSetState({\n isOpen: this.props.defaultIsOpen,\n highlightedIndex: this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: this.props.itemToString(item),\n ...otherStateToSet\n }, cb);\n };\n\n this.selectItemAtIndex = (itemIndex, otherStateToSet, cb) => {\n const item = this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n this.selectItem(item, otherStateToSet, cb);\n };\n\n this.selectHighlightedItem = (otherStateToSet, cb) => {\n return this.selectItemAtIndex(this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n this.internalSetState = (stateToSet, cb) => {\n let isItemSelected, onChangeArg;\n const onStateChangeArg = {};\n const isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n this.props.onInputValueChange(stateToSet.inputValue, { ...this.getStateAndHelpers(),\n ...stateToSet\n });\n }\n\n return this.setState(state => {\n state = this.getState(state);\n let newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n const nextState = {}; // this is just used to tell whether the state changed\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(key => {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n this.props.onInputValueChange(newStateToSet.inputValue, { ...this.getStateAndHelpers(),\n ...newStateToSet\n });\n }\n\n return nextState;\n }, () => {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n const hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n this.props.onStateChange(onStateChangeArg, this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n this.props.onSelect(stateToSet.selectedItem, this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n this.props.onChange(onChangeArg, this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n this.props.onUserAction(onStateChangeArg, this.getStateAndHelpers());\n });\n };\n\n this.rootRef = node => this._rootNode = node;\n\n this.getRootProps = function (_temp, _temp2) {\n let {\n refKey = 'ref',\n ref,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let {\n suppressRefError = false\n } = _temp2 === void 0 ? {} : _temp2;\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n const {\n isOpen\n } = _this.getState();\n\n return {\n [refKey]: handleRefs(ref, _this.rootRef),\n role: 'combobox',\n 'aria-expanded': isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n ...rest\n };\n };\n\n this.keyDownHandlers = {\n ArrowDown(event) {\n event.preventDefault();\n\n if (this.getState().isOpen) {\n const amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, () => {\n const itemCount = this.getItemCount();\n\n if (itemCount > 0) {\n const {\n highlightedIndex\n } = this.getState();\n const nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, index => this.getItemNodeFromIndex(index));\n this.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n\n ArrowUp(event) {\n event.preventDefault();\n\n if (this.getState().isOpen) {\n const amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, () => {\n const itemCount = this.getItemCount();\n\n if (itemCount > 0) {\n const {\n highlightedIndex\n } = this.getState();\n const nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, index => this.getItemNodeFromIndex(index));\n this.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n\n Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n const {\n isOpen,\n highlightedIndex\n } = this.getState();\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n const item = this.items[highlightedIndex];\n const itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n\n Escape(event) {\n event.preventDefault();\n this.reset({\n type: keyDownEscape,\n ...(!this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n })\n });\n }\n\n };\n this.buttonKeyDownHandlers = { ...this.keyDownHandlers,\n\n ' '(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n\n };\n this.inputKeyDownHandlers = { ...this.keyDownHandlers,\n\n Home(event) {\n const {\n isOpen\n } = this.getState();\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n const itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n const newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, index => this.getItemNodeFromIndex(index), false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n\n End(event) {\n const {\n isOpen\n } = this.getState();\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n const itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n const newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, index => this.getItemNodeFromIndex(index), false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n\n };\n\n this.getToggleButtonProps = function (_temp3) {\n let {\n onClick,\n onPress,\n onKeyDown,\n onKeyUp,\n onBlur,\n ...rest\n } = _temp3 === void 0 ? {} : _temp3;\n\n const {\n isOpen\n } = _this.getState();\n\n const enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n const eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return {\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true,\n ...eventHandlers,\n ...rest\n };\n };\n\n this.buttonHandleKeyUp = event => {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n this.buttonHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (this.buttonKeyDownHandlers[key]) {\n this.buttonKeyDownHandlers[key].call(this, event);\n }\n };\n\n this.buttonHandleClick = event => {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (this.props.environment.document.activeElement === this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n this.internalSetTimeout(() => this.toggleMenu({\n type: clickButton\n }));\n }\n };\n\n this.buttonHandleBlur = event => {\n const blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n this.internalSetTimeout(() => {\n if (!this.isMouseDown && (this.props.environment.document.activeElement == null || this.props.environment.document.activeElement.id !== this.inputId) && this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n this.reset({\n type: blurButton\n });\n }\n });\n };\n\n this.getLabelProps = props => {\n return {\n htmlFor: this.inputId,\n id: this.labelId,\n ...props\n };\n };\n\n this.getInputProps = function (_temp4) {\n let {\n onKeyDown,\n onBlur,\n onChange,\n onInput,\n onChangeText,\n ...rest\n } = _temp4 === void 0 ? {} : _temp4;\n let onChangeKey;\n let eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n {\n onChangeKey = 'onChange';\n }\n\n const {\n inputValue,\n isOpen,\n highlightedIndex\n } = _this.getState();\n\n if (!rest.disabled) {\n eventHandlers = {\n [onChangeKey]: callAllEventHandlers(onChange, onInput, _this.inputHandleChange),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, _this.inputHandleBlur)\n };\n }\n\n return {\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId,\n ...eventHandlers,\n ...rest\n };\n };\n\n this.inputHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (key && this.inputKeyDownHandlers[key]) {\n this.inputKeyDownHandlers[key].call(this, event);\n }\n };\n\n this.inputHandleChange = event => {\n this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: this.props.defaultHighlightedIndex\n });\n };\n\n this.inputHandleBlur = () => {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n this.internalSetTimeout(() => {\n const downshiftButtonIsActive = this.props.environment.document && !!this.props.environment.document.activeElement && !!this.props.environment.document.activeElement.dataset && this.props.environment.document.activeElement.dataset.toggle && this._rootNode && this._rootNode.contains(this.props.environment.document.activeElement);\n\n if (!this.isMouseDown && !downshiftButtonIsActive) {\n this.reset({\n type: blurInput\n });\n }\n });\n };\n\n this.menuRef = node => {\n this._menuNode = node;\n };\n\n this.getMenuProps = function (_temp5, _temp6) {\n let {\n refKey = 'ref',\n ref,\n ...props\n } = _temp5 === void 0 ? {} : _temp5;\n let {\n suppressRefError = false\n } = _temp6 === void 0 ? {} : _temp6;\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return {\n [refKey]: handleRefs(ref, _this.menuRef),\n role: 'listbox',\n 'aria-labelledby': props && props['aria-label'] ? null : _this.labelId,\n id: _this.menuId,\n ...props\n };\n };\n\n this.getItemProps = function (_temp7) {\n let {\n onMouseMove,\n onMouseDown,\n onClick,\n onPress,\n index,\n item = process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item'),\n ...rest\n } = _temp7 === void 0 ? {} : _temp7;\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n const onSelectKey = 'onClick';\n const customClickHandler = onClick;\n const enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, () => {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(() => _this.avoidScrolling = false, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, event => {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n }),\n [onSelectKey]: callAllEventHandlers(customClickHandler, () => {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n })\n }; // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n const eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return {\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index,\n ...eventHandlers,\n ...rest\n };\n };\n\n this.clearItems = () => {\n this.items = [];\n };\n\n this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_ref => {\n let {\n selectedItem\n } = _ref;\n return {\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem),\n ...otherStateToSet\n };\n }, cb);\n };\n\n this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_ref2 => {\n let {\n isOpen\n } = _ref2;\n return {\n isOpen: !isOpen,\n ...(isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }),\n ...otherStateToSet\n };\n }, () => {\n const {\n isOpen,\n highlightedIndex\n } = _this.getState();\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n this.openMenu = cb => {\n this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n this.closeMenu = cb => {\n this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n this.updateStatus = debounce(() => {\n const state = this.getState();\n const item = this.items[state.highlightedIndex];\n const resultCount = this.getItemCount();\n const status = this.props.getA11yStatusMessage({\n itemToString: this.props.itemToString,\n previousResultCount: this.previousResultCount,\n resultCount,\n highlightedItem: item,\n ...state\n });\n this.previousResultCount = resultCount;\n setStatus(status, this.props.environment.document);\n }, 200);\n // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n const {\n defaultHighlightedIndex,\n initialHighlightedIndex: _highlightedIndex = defaultHighlightedIndex,\n defaultIsOpen,\n initialIsOpen: _isOpen = defaultIsOpen,\n initialInputValue: _inputValue = '',\n initialSelectedItem: _selectedItem = null\n } = this.props;\n\n const _state = this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && this.props.initialInputValue === undefined) {\n _state.inputValue = this.props.itemToString(_state.selectedItem);\n }\n\n this.state = _state;\n }\n\n /**\n * Clear all running timeouts\n */\n internalClearTimeouts() {\n this.timeoutIds.forEach(id => {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n\n\n getState(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n }\n\n getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n let itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n }\n\n getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n }\n\n scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n const node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n }\n\n moveHighlightedIndex(amount, otherStateToSet) {\n const itemCount = this.getItemCount();\n const {\n highlightedIndex\n } = this.getState();\n\n if (itemCount > 0) {\n const nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, index => this.getItemNodeFromIndex(index));\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n }\n\n getStateAndHelpers() {\n const {\n highlightedIndex,\n inputValue,\n selectedItem,\n isOpen\n } = this.getState();\n const {\n itemToString\n } = this.props;\n const {\n id\n } = this;\n const {\n getRootProps,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n openMenu,\n closeMenu,\n toggleMenu,\n selectItem,\n selectItemAtIndex,\n selectHighlightedItem,\n setHighlightedIndex,\n clearSelection,\n clearItems,\n reset,\n setItemCount,\n unsetItemCount,\n internalSetState: setState\n } = this;\n return {\n // prop getters\n getRootProps,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n // actions\n reset,\n openMenu,\n closeMenu,\n toggleMenu,\n selectItem,\n selectItemAtIndex,\n selectHighlightedItem,\n setHighlightedIndex,\n clearSelection,\n clearItems,\n setItemCount,\n unsetItemCount,\n setState,\n // props\n itemToString,\n // derived\n id,\n // state\n highlightedIndex,\n inputValue,\n isOpen,\n selectedItem\n };\n } //////////////////////////// ROOT\n\n\n componentDidMount() {\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n const onMouseDown = () => {\n this.isMouseDown = true;\n };\n\n const onMouseUp = event => {\n this.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n const contextWithinDownshift = targetWithinDownshift(event.target, [this._rootNode, this._menuNode], this.props.environment);\n\n if (!contextWithinDownshift && this.getState().isOpen) {\n this.reset({\n type: mouseUp\n }, () => this.props.onOuterClick(this.getStateAndHelpers()));\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n const onTouchStart = () => {\n this.isTouchMove = false;\n };\n\n const onTouchMove = () => {\n this.isTouchMove = true;\n };\n\n const onTouchEnd = event => {\n const contextWithinDownshift = targetWithinDownshift(event.target, [this._rootNode, this._menuNode], this.props.environment, false);\n\n if (!this.isTouchMove && !contextWithinDownshift && this.getState().isOpen) {\n this.reset({\n type: touchEnd\n }, () => this.props.onOuterClick(this.getStateAndHelpers()));\n }\n };\n\n const {\n environment\n } = this.props;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = () => {\n this.internalClearTimeouts();\n this.updateStatus.cancel();\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n }\n\n shouldScroll(prevState, prevProps) {\n const {\n highlightedIndex: currentHighlightedIndex\n } = this.props.highlightedIndex === undefined ? this.getState() : this.props;\n const {\n highlightedIndex: prevHighlightedIndex\n } = prevProps.highlightedIndex === undefined ? prevState : prevProps;\n const scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n const scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n {\n this.updateStatus();\n }\n }\n\n componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n }\n\n render() {\n const children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n const element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n }\n\n }\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage$1,\n itemToString: i => {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: (prevItem, item) => prevItem !== item,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window,\n stateReducer: (state, stateToSet) => stateToSet,\n suppressRefError: false,\n scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n})();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\nvar Downshift$1 = Downshift;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref3) {\n let {\n refKey\n } = _ref3;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(`downshift: The ref prop \"${refKey}\" from getMenuProps was not applied correctly on your menu element.`);\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref4) {\n let {\n refKey\n } = _ref4;\n const refKeySpecified = refKey !== 'ref';\n const isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(`downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \"${refKey}\"`);\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(`downshift: You must apply the ref prop \"${refKey}\" from getRootProps onto your root element.`);\n }\n}\n\nconst dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n const {\n props,\n type\n } = action;\n const changes = {};\n Object.keys(state).forEach(key => {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange({\n type,\n ...changes\n });\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n const {\n props,\n type\n } = action;\n const handler = `on${capitalizeString(key)}Change`;\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler]({\n type,\n ...newState\n });\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11ySelectionMessage(selectionParameters) {\n const {\n selectedItem,\n itemToString: itemToStringLocal\n } = selectionParameters;\n return selectedItem ? `${itemToStringLocal(selectedItem)} has been selected.` : '';\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nconst updateA11yStatus = debounce((getA11yMessage, document) => {\n setStatus(getA11yMessage(), document);\n}, 200); // istanbul ignore next\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useElementIds(_ref) {\n let {\n id = `downshift-${generateId()}`,\n labelId,\n menuId,\n getItemId,\n toggleButtonId,\n inputId\n } = _ref;\n const elementIdsRef = useRef({\n labelId: labelId || `${id}-label`,\n menuId: menuId || `${id}-menu`,\n getItemId: getItemId || (index => `${id}-item-${index}`),\n toggleButtonId: toggleButtonId || `${id}-toggle-button`,\n inputId: inputId || `${id}-input`\n });\n return elementIdsRef.current;\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return `${string.slice(0, 1).toUpperCase()}${string.slice(1)}`;\n}\n\nfunction useLatestRef(val) {\n const ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n const prevStateRef = useRef();\n const actionRef = useRef();\n const enhancedReducer = useCallback((state, action) => {\n actionRef.current = action;\n state = getState(state, action.props);\n const changes = reducer(state, action);\n const newState = action.props.stateReducer(state, { ...action,\n changes\n });\n return newState;\n }, [reducer]);\n const [state, dispatch] = useReducer(enhancedReducer, initialState);\n const propsRef = useLatestRef(props);\n const dispatchWithProps = useCallback(action => dispatch({\n props: propsRef.current,\n ...action\n }), [propsRef]);\n const action = actionRef.current;\n useEffect(() => {\n if (action && prevStateRef.current && prevStateRef.current !== state) {\n callOnChangeProps(action, getState(prevStateRef.current, action.props), state);\n }\n\n prevStateRef.current = state;\n }, [state, props, action]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer$1(reducer, initialState, props) {\n const [state, dispatch] = useEnhancedReducer(reducer, initialState, props);\n return [getState(state, props), dispatch];\n}\n\nconst defaultProps$3 = {\n itemToString,\n stateReducer,\n getA11ySelectionMessage,\n scrollIntoView,\n circularNavigation: false,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window\n};\n\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n const defaultValue = props[`default${capitalizeString(propKey)}`];\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n const value = props[propKey];\n\n if (value !== undefined) {\n return value;\n }\n\n const initialValue = props[`initial${capitalizeString(propKey)}`];\n\n if (initialValue !== undefined) {\n return initialValue;\n }\n\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\nfunction getInitialState$2(props) {\n const selectedItem = getInitialValue$1(props, 'selectedItem');\n const isOpen = getInitialValue$1(props, 'isOpen');\n const highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n const inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen,\n selectedItem,\n inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n const {\n items,\n initialHighlightedIndex,\n defaultHighlightedIndex\n } = props;\n const {\n selectedItem,\n highlightedIndex\n } = state;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n/**\n * Reuse the movement tracking of mouse and touch events.\n *\n * @param {boolean} isOpen Whether the dropdown is open or not.\n * @param {Array} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)\n * @param {Object} environment Environment where component/hook exists.\n * @param {Function} handleBlur Handler on blur from mouse or touch.\n * @returns {Object} Ref containing whether mouseDown or touchMove event is happening\n */\n\n\nfunction useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {\n const mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n useEffect(() => {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n const onMouseDown = () => {\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n };\n\n const onMouseUp = event => {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(ref => ref.current), environment)) {\n handleBlur();\n }\n };\n\n const onTouchStart = () => {\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n };\n\n const onTouchMove = () => {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n };\n\n const onTouchEnd = event => {\n if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(ref => ref.current), environment, false)) {\n handleBlur();\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, environment]);\n return mouseAndTouchTrackersRef;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\n\n\nlet useGetterPropsCalledChecker = () => noop;\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\n/* istanbul ignore next */\n\n\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function () {\n const isInitialMountRef = useRef(true);\n\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n const getterPropsCalledRef = useRef(propKeys.reduce((acc, propKey) => {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(() => {\n Object.keys(getterPropsCalledRef.current).forEach(propKey => {\n const propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (isInitialMountRef.current) {\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(`downshift: You forgot to call the ${propKey} getter function on your component / element.`);\n return;\n }\n }\n\n const {\n suppressRefError,\n refKey,\n elementRef\n } = propCallInfo;\n\n if ((!elementRef || !elementRef.current) && !suppressRefError) {\n // eslint-disable-next-line no-console\n console.error(`downshift: The ref prop \"${refKey}\" from ${propKey} was not applied correctly on your element.`);\n }\n });\n isInitialMountRef.current = false;\n });\n const setGetterPropCallInfo = useCallback((propKey, suppressRefError, refKey, elementRef) => {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError,\n refKey,\n elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n\nfunction useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {\n let {\n isInitialMount,\n highlightedIndex,\n items,\n environment,\n ...rest\n } = _ref2;\n // Sets a11y status message on changes in state.\n useEffect(() => {\n if (isInitialMount || false) {\n return;\n }\n\n updateA11yStatus(() => getA11yMessage({\n highlightedIndex,\n highlightedItem: items[highlightedIndex],\n resultCount: items.length,\n ...rest\n }), environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n}\n\nfunction useScrollIntoView(_ref3) {\n let {\n highlightedIndex,\n isOpen,\n itemRefs,\n getItemNodeFromIndex,\n menuElement,\n scrollIntoView: scrollIntoViewProp\n } = _ref3;\n // used not to scroll on highlight by mouse.\n const shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useIsomorphicLayoutEffect(() => {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nlet useControlPropsValidator = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = _ref4 => {\n let {\n isInitialMount,\n props,\n state\n } = _ref4;\n // used for checking when props are moving from controlled to uncontrolled.\n const prevPropsRef = useRef(props);\n useEffect(() => {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/* eslint-disable complexity */\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n const {\n type,\n props\n } = action;\n let changes;\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.disabled ? -1 : action.index\n };\n break;\n\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return { ...state,\n ...changes\n };\n}\n/* eslint-enable complexity */\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n var offsetIndex = (index + highlightedIndex + 1) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item)\n .toLowerCase()\n .startsWith(lowerCasedKeysSoFar)) {\n var element = getItemNodeFromIndex(offsetIndex);\n if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {\n return offsetIndex;\n }\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage(_a) {\n var isOpen = _a.isOpen, resultCount = _a.resultCount, previousResultCount = _a.previousResultCount;\n if (!isOpen) {\n return '';\n }\n if (!resultCount) {\n return 'No results are available.';\n }\n if (resultCount !== previousResultCount) {\n return \"\".concat(resultCount, \" result\").concat(resultCount === 1 ? ' is' : 's are', \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\");\n }\n return '';\n}\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { getA11yStatusMessage: getA11yStatusMessage });\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function (options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nconst MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nconst MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nconst MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nconst MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nconst MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nconst MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nconst MenuKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_space_button__' : 6;\nconst MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 7;\nconst MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 8;\nconst MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 9;\nconst ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 10;\nconst ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 11;\nconst ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 12;\nconst ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 13;\nconst ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 14;\nconst ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 15;\nconst FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 16;\nconst FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 17;\nconst FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 18;\nconst FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 19;\nconst FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 20;\nconst FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 21;\nconst FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 22;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave$1,\n ItemMouseMove: ItemMouseMove$1,\n ItemClick: ItemClick$1,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n FunctionToggleMenu: FunctionToggleMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionReset: FunctionReset$2\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n const {\n type,\n props,\n shiftKey\n } = action;\n let changes;\n\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n const lowercasedKey = action.key;\n const inputValue = `${state.inputValue}${lowercasedKey}`;\n const itemIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = {\n inputValue,\n ...(itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n })\n };\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case MenuKeyDownEnter:\n case MenuKeyDownSpaceButton:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n ...(state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n })\n };\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownCharacter:\n {\n const lowercasedKey = action.key;\n const inputValue = `${state.inputValue}${lowercasedKey}`;\n const highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: state.highlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = {\n inputValue,\n ...(highlightedIndex >= 0 && {\n highlightedIndex\n })\n };\n }\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n\n return { ...state,\n ...changes\n };\n}\n/* eslint-enable complexity */\n\n/* eslint-disable max-statements */\nuseSelect.stateChangeTypes = stateChangeTypes$2;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.\n\n const props = { ...defaultProps$2,\n ...userProps\n };\n const {\n items,\n scrollIntoView,\n environment,\n initialIsOpen,\n defaultIsOpen,\n itemToString,\n getA11ySelectionMessage,\n getA11yStatusMessage\n } = props; // Initial state depending on controlled props.\n\n const initialState = getInitialState$2(props);\n const [state, dispatch] = useControlledReducer$1(downshiftSelectReducer, initialState, props);\n const {\n isOpen,\n highlightedIndex,\n selectedItem,\n inputValue\n } = state; // Element efs.\n\n const toggleButtonRef = useRef(null);\n const menuRef = useRef(null);\n const itemRefs = useRef({}); // used not to trigger menu blur action in some scenarios.\n\n const shouldBlurRef = useRef(true); // used to keep the inputValue clearTimeout object between renders.\n\n const clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n const elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n const previousResultCountRef = useRef();\n const isInitialMountRef = useRef(true); // utility callback to get item element.\n\n const latest = useLatestRef({\n state,\n props\n }); // Some utils.\n\n const getItemNodeFromIndex = useCallback(index => itemRefs.current[elementIds.getItemId(index)], [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], {\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items,\n environment,\n itemToString,\n ...state\n }); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], {\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items,\n environment,\n itemToString,\n ...state\n }); // Scroll on highlighted item if change comes from keyboard.\n\n const shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex,\n isOpen,\n itemRefs,\n scrollIntoView,\n getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n\n useEffect(() => {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(outerDispatch => {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500); // Cancel any pending debounced calls on mount\n\n return () => {\n clearTimeoutRef.current.cancel();\n };\n }, []); // Invokes the keysSoFar callback set up above.\n\n useEffect(() => {\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props,\n state\n });\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(() => {\n // Don't focus menu on first render.\n if (isInitialMountRef.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n\n\n if (isOpen) {\n // istanbul ignore else\n if (menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.\n\n\n if (environment.document.activeElement === menuRef.current) {\n // istanbul ignore else\n if (toggleButtonRef.current) {\n shouldBlurRef.current = false;\n toggleButtonRef.current.focus();\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n useEffect(() => {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n const mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, () => {\n dispatch({\n type: MenuBlur\n });\n });\n const setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.\n\n useEffect(() => {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(() => {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Event handler functions.\n\n const toggleButtonKeyDownHandlers = useMemo(() => ({\n ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n\n ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n }\n\n }), [dispatch, getItemNodeFromIndex]);\n const menuKeyDownHandlers = useMemo(() => ({\n ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n\n ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n\n Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome,\n getItemNodeFromIndex\n });\n },\n\n End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd,\n getItemNodeFromIndex\n });\n },\n\n Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n\n Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n\n ' '(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownSpaceButton\n });\n }\n\n }), [dispatch, getItemNodeFromIndex]); // Action functions.\n\n const toggleMenu = useCallback(() => {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n const closeMenu = useCallback(() => {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n const openMenu = useCallback(() => {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n const setHighlightedIndex = useCallback(newHighlightedIndex => {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n const selectItem = useCallback(newSelectedItem => {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n const reset = useCallback(() => {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n const setInputValue = useCallback(newInputValue => {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n const getLabelProps = useCallback(labelProps => ({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId,\n ...labelProps\n }), [elementIds]);\n const getMenuProps = useCallback(function (_temp, _temp2) {\n let {\n onMouseLeave,\n refKey = 'ref',\n onKeyDown,\n onBlur,\n ref,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let {\n suppressRefError = false\n } = _temp2 === void 0 ? {} : _temp2;\n const latestState = latest.current.state;\n\n const menuHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key,\n getItemNodeFromIndex\n });\n }\n };\n\n const menuHandleBlur = () => {\n // if the blur was a result of selection, we don't trigger this action.\n if (shouldBlurRef.current === false) {\n shouldBlurRef.current = true;\n return;\n }\n\n const shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;\n /* istanbul ignore else */\n\n if (shouldBlur) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n const menuHandleMouseLeave = () => {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return {\n [refKey]: handleRefs(ref, menuNode => {\n menuRef.current = menuNode;\n }),\n id: elementIds.menuId,\n role: 'listbox',\n 'aria-labelledby': elementIds.labelId,\n tabIndex: -1,\n ...(latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }),\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur),\n ...rest\n };\n }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n const getToggleButtonProps = useCallback(function (_temp3, _temp4) {\n let {\n onClick,\n onKeyDown,\n refKey = 'ref',\n ref,\n ...rest\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n suppressRefError = false\n } = _temp4 === void 0 ? {} : _temp4;\n\n const toggleButtonHandleClick = () => {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n\n const toggleButtonHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key,\n getItemNodeFromIndex\n });\n }\n };\n\n const toggleProps = {\n [refKey]: handleRefs(ref, toggleButtonNode => {\n toggleButtonRef.current = toggleButtonNode;\n }),\n id: elementIds.toggleButtonId,\n 'aria-haspopup': 'listbox',\n 'aria-expanded': latest.current.state.isOpen,\n 'aria-labelledby': `${elementIds.labelId} ${elementIds.toggleButtonId}`,\n ...rest\n };\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n const getItemProps = useCallback(function (_temp5) {\n let {\n item,\n index,\n onMouseMove,\n onClick,\n refKey = 'ref',\n ref,\n disabled,\n ...rest\n } = _temp5 === void 0 ? {} : _temp5;\n const {\n state: latestState,\n props: latestProps\n } = latest.current;\n\n const itemHandleMouseMove = () => {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index,\n disabled\n });\n };\n\n const itemHandleClick = () => {\n dispatch({\n type: ItemClick$1,\n index\n });\n };\n\n const itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n const itemProps = {\n disabled,\n role: 'option',\n 'aria-selected': `${itemIndex === latestState.highlightedIndex}`,\n id: elementIds.getItemId(itemIndex),\n [refKey]: handleRefs(ref, itemNode => {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }),\n ...rest\n };\n\n if (!disabled) {\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n return itemProps;\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n return {\n // prop getters.\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n // actions.\n toggleMenu,\n openMenu,\n closeMenu,\n setHighlightedIndex,\n selectItem,\n reset,\n setInputValue,\n // state.\n highlightedIndex,\n isOpen,\n selectedItem,\n inputValue\n };\n}\n\nconst InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nconst InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nconst InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nconst InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nconst InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nconst InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 5;\nconst InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 6;\nconst InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 7;\nconst MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nconst ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nconst ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nconst ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 11;\nconst FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 12;\nconst FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 13;\nconst FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 14;\nconst FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 15;\nconst FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 16;\nconst FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 17;\nconst FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 18;\nconst ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 19;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputChange: InputChange,\n InputBlur: InputBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonClick: ToggleButtonClick,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionReset: FunctionReset$1,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem\n});\n\nfunction getInitialState$1(props) {\n const initialState = getInitialState$2(props);\n const {\n selectedItem\n } = initialState;\n let {\n inputValue\n } = initialState;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return { ...initialState,\n inputValue\n };\n}\n\nconst propTypes$1 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer(reducer, initialState, props) {\n const previousSelectedItemRef = useRef();\n const [state, dispatch] = useEnhancedReducer(reducer, initialState, props); // ToDo: if needed, make same approach as selectedItemChanged from Downshift.\n\n useEffect(() => {\n if (isControlledProp(props, 'selectedItem')) {\n if (previousSelectedItemRef.current !== props.selectedItem) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n }\n });\n return [getState(state, props), dispatch];\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nlet validatePropTypes$1 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = (options, caller) => {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\n\nconst defaultProps$1 = { ...defaultProps$3,\n getA11yStatusMessage: getA11yStatusMessage$1,\n circularNavigation: true\n};\n\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n const {\n type,\n props,\n shiftKey\n } = action;\n let changes;\n\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = { ...(state.isOpen && state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n })\n };\n break;\n\n case InputKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1,\n ...(!state.isOpen && {\n selectedItem: null,\n inputValue: ''\n })\n };\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1,\n ...(state.highlightedIndex >= 0 && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n })\n };\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: action.inputValue\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n\n return { ...state,\n ...changes\n };\n}\n/* eslint-enable complexity */\n\n/* eslint-disable max-statements */\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.\n\n const props = { ...defaultProps$1,\n ...userProps\n };\n const {\n initialIsOpen,\n defaultIsOpen,\n items,\n scrollIntoView,\n environment,\n getA11yStatusMessage,\n getA11ySelectionMessage,\n itemToString\n } = props; // Initial state depending on controlled props.\n\n const initialState = getInitialState$1(props);\n const [state, dispatch] = useControlledReducer(downshiftUseComboboxReducer, initialState, props);\n const {\n isOpen,\n highlightedIndex,\n selectedItem,\n inputValue\n } = state; // Element refs.\n\n const menuRef = useRef(null);\n const itemRefs = useRef({});\n const inputRef = useRef(null);\n const toggleButtonRef = useRef(null);\n const comboboxRef = useRef(null);\n const isInitialMountRef = useRef(true); // prevent id re-generation between renders.\n\n const elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n const previousResultCountRef = useRef(); // utility callback to get item element.\n\n const latest = useLatestRef({\n state,\n props\n });\n const getItemNodeFromIndex = useCallback(index => itemRefs.current[elementIds.getItemId(index)], [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], {\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items,\n environment,\n itemToString,\n ...state\n }); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], {\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items,\n environment,\n itemToString,\n ...state\n }); // Scroll on highlighted item if change comes from keyboard.\n\n const shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex,\n isOpen,\n itemRefs,\n scrollIntoView,\n getItemNodeFromIndex\n });\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props,\n state\n }); // Focus the input on first render if required.\n\n useEffect(() => {\n const focusOnOpen = initialIsOpen || defaultIsOpen || isOpen;\n\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(() => {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n const mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, () => {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n });\n const setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.\n\n useEffect(() => {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(() => {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n /* Event handler functions */\n\n const inputKeyDownHandlers = useMemo(() => ({\n ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex\n });\n },\n\n ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex\n });\n },\n\n Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome,\n getItemNodeFromIndex\n });\n },\n\n End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd,\n getItemNodeFromIndex\n });\n },\n\n Escape(event) {\n const latestState = latest.current.state;\n\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n\n Enter(event) {\n const latestState = latest.current.state; // if closed or no highlighted index, do nothing.\n\n if (!latestState.isOpen || latestState.highlightedIndex < 0 || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter,\n getItemNodeFromIndex\n });\n }\n\n }), [dispatch, latest, getItemNodeFromIndex]); // Getter props.\n\n const getLabelProps = useCallback(labelProps => ({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId,\n ...labelProps\n }), [elementIds]);\n const getMenuProps = useCallback(function (_temp, _temp2) {\n let {\n onMouseLeave,\n refKey = 'ref',\n ref,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let {\n suppressRefError = false\n } = _temp2 === void 0 ? {} : _temp2;\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return {\n [refKey]: handleRefs(ref, menuNode => {\n menuRef.current = menuNode;\n }),\n id: elementIds.menuId,\n role: 'listbox',\n 'aria-labelledby': elementIds.labelId,\n onMouseLeave: callAllEventHandlers(onMouseLeave, () => {\n dispatch({\n type: MenuMouseLeave\n });\n }),\n ...rest\n };\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n const getItemProps = useCallback(function (_temp3) {\n let {\n item,\n index,\n refKey = 'ref',\n ref,\n onMouseMove,\n onMouseDown,\n onClick,\n onPress,\n disabled,\n ...rest\n } = _temp3 === void 0 ? {} : _temp3;\n const {\n props: latestProps,\n state: latestState\n } = latest.current;\n const itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n const onSelectKey = 'onClick';\n const customClickHandler = onClick;\n\n const itemHandleMouseMove = () => {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index,\n disabled\n });\n };\n\n const itemHandleClick = () => {\n dispatch({\n type: ItemClick,\n index\n });\n };\n\n const itemHandleMouseDown = e => e.preventDefault();\n\n return {\n [refKey]: handleRefs(ref, itemNode => {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }),\n disabled,\n role: 'option',\n 'aria-selected': `${itemIndex === latestState.highlightedIndex}`,\n id: elementIds.getItemId(itemIndex),\n ...(!disabled && {\n [onSelectKey]: callAllEventHandlers(customClickHandler, itemHandleClick)\n }),\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),\n onMouseDown: callAllEventHandlers(onMouseDown, itemHandleMouseDown),\n ...rest\n };\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n const getToggleButtonProps = useCallback(function (_temp4) {\n let {\n onClick,\n onPress,\n refKey = 'ref',\n ref,\n ...rest\n } = _temp4 === void 0 ? {} : _temp4;\n\n const toggleButtonHandleClick = () => {\n dispatch({\n type: ToggleButtonClick\n });\n\n if (!latest.current.state.isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return {\n [refKey]: handleRefs(ref, toggleButtonNode => {\n toggleButtonRef.current = toggleButtonNode;\n }),\n id: elementIds.toggleButtonId,\n tabIndex: -1,\n ...(!rest.disabled && { ...({\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n })\n }),\n ...rest\n };\n }, [dispatch, latest, elementIds]);\n const getInputProps = useCallback(function (_temp5, _temp6) {\n let {\n onKeyDown,\n onChange,\n onInput,\n onBlur,\n onChangeText,\n refKey = 'ref',\n ref,\n ...rest\n } = _temp5 === void 0 ? {} : _temp5;\n let {\n suppressRefError = false\n } = _temp6 === void 0 ? {} : _temp6;\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n const latestState = latest.current.state;\n\n const inputHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n const inputHandleChange = event => {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n const inputHandleBlur = () => {\n /* istanbul ignore else */\n if (latestState.isOpen && !mouseAndTouchTrackersRef.current.isMouseDown) {\n dispatch({\n type: InputBlur,\n selectItem: true\n });\n }\n };\n /* istanbul ignore next (preact) */\n\n\n const onChangeKey = 'onChange';\n let eventHandlers = {};\n\n if (!rest.disabled) {\n eventHandlers = {\n [onChangeKey]: callAllEventHandlers(onChange, onInput, inputHandleChange),\n onKeyDown: callAllEventHandlers(onKeyDown, inputHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, inputHandleBlur)\n };\n }\n\n return {\n [refKey]: handleRefs(ref, inputNode => {\n inputRef.current = inputNode;\n }),\n id: elementIds.inputId,\n 'aria-autocomplete': 'list',\n 'aria-controls': elementIds.menuId,\n ...(latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }),\n 'aria-labelledby': elementIds.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: latestState.inputValue,\n ...eventHandlers,\n ...rest\n };\n }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds]);\n const getComboboxProps = useCallback(function (_temp7, _temp8) {\n let {\n refKey = 'ref',\n ref,\n ...rest\n } = _temp7 === void 0 ? {} : _temp7;\n let {\n suppressRefError = false\n } = _temp8 === void 0 ? {} : _temp8;\n setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);\n return {\n [refKey]: handleRefs(ref, comboboxNode => {\n comboboxRef.current = comboboxNode;\n }),\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-owns': elementIds.menuId,\n 'aria-expanded': latest.current.state.isOpen,\n ...rest\n };\n }, [latest, setGetterPropCallInfo, elementIds]); // returns\n\n const toggleMenu = useCallback(() => {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n const closeMenu = useCallback(() => {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n const openMenu = useCallback(() => {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n const setHighlightedIndex = useCallback(newHighlightedIndex => {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n const selectItem = useCallback(newSelectedItem => {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n const setInputValue = useCallback(newInputValue => {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n const reset = useCallback(() => {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getComboboxProps,\n getToggleButtonProps,\n // actions.\n toggleMenu,\n openMenu,\n closeMenu,\n setHighlightedIndex,\n setInputValue,\n selectItem,\n reset,\n // state.\n highlightedIndex,\n isOpen,\n selectedItem,\n inputValue\n };\n}\n\nconst defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\n\nfunction getInitialState(props) {\n const activeIndex = getInitialValue(props, 'activeIndex');\n const selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex,\n selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n const element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && ( // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Returns a message to be added to aria-live region when item is removed.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11yRemovalMessage(selectionParameters) {\n const {\n removedSelectedItem,\n itemToString: itemToStringLocal\n } = selectionParameters;\n return `${itemToStringLocal(removedSelectedItem)} has been removed.`;\n}\n\nconst propTypes = {\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n itemToString: PropTypes.func,\n getA11yRemovalMessage: PropTypes.func,\n stateReducer: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\nconst defaultProps = {\n itemToString: defaultProps$3.itemToString,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n getA11yRemovalMessage,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n}; // eslint-disable-next-line import/no-mutable-exports\n\nlet validatePropTypes = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = (options, caller) => {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nconst SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nconst SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nconst SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nconst SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nconst SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nconst DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nconst DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nconst DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nconst FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nconst FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nconst FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nconst FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nconst FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownClick: DropdownClick,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n const {\n type,\n index,\n props,\n selectedItem\n } = action;\n const {\n activeIndex,\n selectedItems\n } = state;\n let changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n let newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = {\n selectedItems: [...selectedItems.slice(0, activeIndex), ...selectedItems.slice(activeIndex + 1)],\n ...{\n activeIndex: newActiveIndex\n }\n };\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [...selectedItems, selectedItem]\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n let newActiveIndex = activeIndex;\n const selectedItemIndex = selectedItems.indexOf(selectedItem);\n\n if (selectedItemIndex >= 0) {\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = {\n selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],\n activeIndex: newActiveIndex\n };\n }\n\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n const {\n selectedItems: newSelectedItems\n } = action;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n const {\n activeIndex: newActiveIndex\n } = action;\n changes = {\n activeIndex: newActiveIndex\n };\n break;\n }\n\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return { ...state,\n ...changes\n };\n}\n\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.\n\n const props = { ...defaultProps,\n ...userProps\n };\n const {\n getA11yRemovalMessage,\n itemToString,\n environment,\n keyNavigationNext,\n keyNavigationPrevious\n } = props; // Reducer init.\n\n const [state, dispatch] = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props);\n const {\n activeIndex,\n selectedItems\n } = state; // Refs.\n\n const isInitialMountRef = useRef(true);\n const dropdownRef = useRef(null);\n const previousSelectedItemsRef = useRef(selectedItems);\n const selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n const latest = useLatestRef({\n state,\n props\n }); // Effects.\n\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(() => {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (selectedItems.length < previousSelectedItemsRef.current.length) {\n const removedSelectedItem = previousSelectedItemsRef.current.find(item => selectedItems.indexOf(item) < 0);\n setStatus(getA11yRemovalMessage({\n itemToString,\n resultCount: selectedItems.length,\n removedSelectedItem,\n activeIndex,\n activeSelectedItem: selectedItems[activeIndex]\n }), environment.document);\n }\n\n previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems.length]); // Sets focus on active item.\n\n useEffect(() => {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n }, [activeIndex]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props,\n state\n });\n const setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.\n\n useEffect(() => {\n isInitialMountRef.current = false;\n }, []); // Event handler functions.\n\n const selectedItemKeyDownHandlers = useMemo(() => ({\n [keyNavigationPrevious]() {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n },\n\n [keyNavigationNext]() {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n },\n\n Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n },\n\n Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }\n\n }), [dispatch, keyNavigationNext, keyNavigationPrevious]);\n const dropdownKeyDownHandlers = useMemo(() => ({\n [keyNavigationPrevious](event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n },\n\n Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }\n\n }), [dispatch, keyNavigationPrevious]); // Getter props.\n\n const getSelectedItemProps = useCallback(function (_temp) {\n let {\n refKey = 'ref',\n ref,\n onClick,\n onKeyDown,\n selectedItem,\n index,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const {\n state: latestState\n } = latest.current;\n const itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);\n\n if (itemIndex < 0) {\n throw new Error('Pass either selectedItem or index in getSelectedItemProps!');\n }\n\n const selectedItemHandleClick = () => {\n dispatch({\n type: SelectedItemClick,\n index\n });\n };\n\n const selectedItemHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n\n return {\n [refKey]: handleRefs(ref, selectedItemNode => {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }),\n tabIndex: index === latestState.activeIndex ? 0 : -1,\n onClick: callAllEventHandlers(onClick, selectedItemHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown),\n ...rest\n };\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n const getDropdownProps = useCallback(function (_temp2, _temp3) {\n let {\n refKey = 'ref',\n ref,\n onKeyDown,\n onClick,\n preventKeyAction = false,\n ...rest\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n suppressRefError = false\n } = _temp3 === void 0 ? {} : _temp3;\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n\n const dropdownHandleKeyDown = event => {\n const key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n\n const dropdownHandleClick = () => {\n dispatch({\n type: DropdownClick\n });\n };\n\n return {\n [refKey]: handleRefs(ref, dropdownNode => {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }),\n ...(!preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }),\n ...rest\n };\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n const addSelectedItem = useCallback(selectedItem => {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem\n });\n }, [dispatch]);\n const removeSelectedItem = useCallback(selectedItem => {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem\n });\n }, [dispatch]);\n const setSelectedItems = useCallback(newSelectedItems => {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n const setActiveIndex = useCallback(newActiveIndex => {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n const reset = useCallback(() => {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n removeSelectedItem,\n setSelectedItems,\n setActiveIndex,\n reset,\n selectedItems,\n activeIndex\n };\n}\n\nexport { Downshift$1 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","import React from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { isValidElementType } from 'react-is';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\n/* eslint-disable import/prefer-default-export */\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\n\nvar Context = /*#__PURE__*/\nReact.createContext();\n\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\n\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\n\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\n\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\n\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n\n return ctor;\n}\n\nvar withChunkExtractor = function withChunkExtractor(Component) {\n var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) {\n return React.createElement(Context.Consumer, null, function (extractor) {\n return React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n\n if (Component.displayName) {\n LoadableWithChunkExtractor.displayName = Component.displayName + \"WithChunkExtractor\";\n }\n\n return LoadableWithChunkExtractor;\n};\n\nvar identity = function identity(v) {\n return v;\n};\n\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module);\n\n if (options.resolveComponent && !isValidElementType(Component)) {\n throw new Error(\"resolveComponent returned something that is not a React component!\");\n }\n\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n\n var cachedLoad = function cachedLoad(props) {\n var cacheKey = _getCacheKey(props);\n\n var promise = cache[cacheKey];\n\n if (!promise || promise.status === STATUS_REJECTED) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n cache[cacheKey] = promise;\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(props),\n chunkName: ctor.chunkName(props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n\n return promise;\n };\n\n var InnerLoadable =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n\n function InnerLoadable(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n\n if (options.ssr !== false && ( // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n\n return _this;\n }\n\n var _proto = InnerLoadable.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */\n ;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */\n ;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */\n ;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n\n cache[this.getCacheKey()] = value;\n };\n\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */\n ;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */\n ;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, Loadable);\n\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */\n ;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n\n return cachedLoad(props);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n\n if (error) {\n throw error;\n }\n\n var fallback = propFallback || options.fallback || null;\n\n if (loading) {\n return fallback;\n }\n\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n\n return InnerLoadable;\n }(React.Component);\n\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = React.forwardRef(function (props, ref) {\n return React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n });\n Loadable.displayName = 'Loadable'; // In future, preload could use ``\n\n Loadable.preload = function (props) {\n Loadable.load(props);\n };\n\n Loadable.load = function (props) {\n return cachedLoad(props);\n };\n\n return Loadable;\n }\n\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\n\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable =\n/*#__PURE__*/\ncreateLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return React.createElement(Component, props);\n }\n}),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable$1 =\n/*#__PURE__*/\ncreateLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n\n if (props.children) {\n return props.children(result);\n }\n\n return null;\n }\n}),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n\n/* eslint-disable no-underscore-dangle, camelcase */\nvar BROWSER = typeof window !== 'undefined';\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace,\n _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal,\n chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob;\n\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n\n var requiredChunks = null;\n\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n\n var resolved = false;\n return new Promise(function (resolve) {\n window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || [];\n var loadedChunks = window[chunkLoadingGlobal];\n var originalPush = loadedChunks.push.bind(loadedChunks);\n\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n\n checkReadyState();\n }).then(done);\n}\n\n/* eslint-disable no-underscore-dangle */\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\n\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","/**\n * Copyright (c) 2019, Travis Clarke\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\n\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nvar PENDING = \"PENDING\";\nvar RESOLVED = \"RESOLVED\";\nvar REJECTED = \"REJECTED\";\nvar CANCELLED = \"CANCELLED\";\nvar IS_BROWSER = typeof window !== \"undefined\" && window.document;\nvar IS_REACT_NATIVE = typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\n\nfunction delayP(ms, val) {\n if (val === void 0) {\n val = true;\n }\n\n var timeoutId;\n var promise = new Promise(function (resolve) {\n timeoutId = setTimeout(resolve, ms, val);\n });\n\n promise[CANCEL] = function () {\n clearTimeout(timeoutId);\n };\n\n return promise;\n}\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\nvar noop = function noop() {};\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\n\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL$1 = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED$1 = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL$1,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED$1,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + String(args[0]) + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + String(args[0]) + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nvar isRaceEffect = function isRaceEffect(eff) {\n return effect(eff) && eff.type === effectTypes.RACE;\n};\n\n/* eslint-disable no-console */\n// Poor man's `console.group` and `console.groupEnd` for Node.\n// Can be overridden by the `console-group` polyfill.\n// The poor man's groups look nice, too, so whether to use\n// the polyfilled methods or the hand-made ones can be made a preference.\nvar groupPrefix = \"\";\nvar GROUP_SHIFT = \" \";\nvar GROUP_ARROW = \"▼\";\nfunction consoleGroup() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (console.group) {\n var _console;\n\n (_console = console).group.apply(_console, args);\n } else {\n var _console2;\n\n console.log(\"\");\n\n (_console2 = console).log.apply(_console2, [groupPrefix + GROUP_ARROW].concat(args));\n\n groupPrefix += GROUP_SHIFT;\n }\n}\nfunction consoleGroupEnd() {\n if (console.groupEnd) {\n console.groupEnd();\n } else {\n groupPrefix = groupPrefix.substr(0, groupPrefix.length - GROUP_SHIFT.length);\n }\n}\n\nfunction argToString(arg) {\n return typeof arg === \"function\" ? \"\".concat(arg.name) : typeof arg === \"string\" ? \"'\".concat(arg, \"'\") : arg;\n}\n\nfunction isPrimitive(val) {\n return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"boolean\" || _typeof(val) === \"symbol\" || val === null || val === undefined;\n}\n\nvar Formatter =\n/*#__PURE__*/\nfunction () {\n function Formatter() {\n _classCallCheck(this, Formatter);\n\n this.logs = [];\n this.suffix = [];\n }\n\n _createClass(Formatter, [{\n key: \"add\",\n value: function add(msg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // Remove the `%c` CSS styling that is not supported by the Node console.\n if (!IS_BROWSER && typeof msg === \"string\") {\n var prevMsg = msg;\n msg = msg.replace(/^%c\\s*/, \"\");\n\n if (msg !== prevMsg) {\n // Remove the first argument which is the CSS style string.\n args.shift();\n }\n }\n\n this.logs.push({\n msg: msg,\n args: args\n });\n return this;\n }\n }, {\n key: \"appendData\",\n value: function appendData() {\n var _this$suffix;\n\n (_this$suffix = this.suffix).push.apply(_this$suffix, arguments);\n\n return this;\n }\n }, {\n key: \"addValue\",\n value: function addValue(value) {\n if (isPrimitive(value)) {\n this.add(value);\n } else {\n // The browser console supports `%O`, the Node console does not.\n if (IS_BROWSER) {\n this.add(\"%O\", value);\n } else {\n this.add(\"%s\", require(\"util\").inspect(value));\n }\n }\n\n return this;\n }\n }, {\n key: \"addCall\",\n value: function addCall(name, args) {\n var _this = this;\n\n if (!args.length) {\n this.add(\"\".concat(name, \"()\"));\n } else {\n this.add(name);\n this.add(\"(\");\n args.forEach(function (arg, i) {\n _this.addValue(argToString(arg));\n\n _this.addValue(i === args.length - 1 ? \")\" : \", \");\n });\n }\n\n return this;\n }\n }, {\n key: \"getLog\",\n value: function getLog() {\n var msgs = [];\n var msgsArgs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.logs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _step$value = _step.value,\n msg = _step$value.msg,\n args = _step$value.args;\n msgs.push(msg);\n msgsArgs.push.apply(msgsArgs, _toConsumableArray(args));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return [msgs.join(\"\")].concat(msgsArgs, _toConsumableArray(this.suffix));\n }\n }]);\n\n return Formatter;\n}();\n\nvar DEFAULT_STYLE = \"color: inherit\";\nvar LABEL_STYLE = \"color: inherit\";\nvar ERROR_STYLE = \"color: red\";\nvar CANCEL_STYLE = \"color: #ccc\";\n\nvar DescriptorFormatter =\n/*#__PURE__*/\nfunction (_Formatter) {\n _inherits(DescriptorFormatter, _Formatter);\n\n function DescriptorFormatter(isCancel, isError) {\n var _this;\n\n var theme = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"\";\n\n _classCallCheck(this, DescriptorFormatter);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DescriptorFormatter).call(this));\n _this.theme = \"color: \".concat(theme);\n _this.logMethod = isError ? \"error\" : \"log\";\n\n _this.styleOverride = function (s) {\n return isCancel ? CANCEL_STYLE : isError ? ERROR_STYLE : s;\n };\n\n return _this;\n }\n\n _createClass(DescriptorFormatter, [{\n key: \"resetStyle\",\n value: function resetStyle() {\n return this.add(\"%c\", this.styleOverride(DEFAULT_STYLE));\n }\n }, {\n key: \"addLabel\",\n value: function addLabel(text) {\n if (text) {\n return this.add(\"%c \".concat(text, \" \"), this.styleOverride(LABEL_STYLE));\n } else {\n return this;\n }\n }\n }, {\n key: \"addEffectType\",\n value: function addEffectType(text) {\n return this.add(\"%c \".concat(text, \" \"), this.styleOverride(this.theme));\n }\n }, {\n key: \"addDescResult\",\n value: function addDescResult(descriptor, ignoreResult) {\n var status = descriptor.status,\n result = descriptor.result,\n error = descriptor.error,\n duration = descriptor.duration;\n\n if (status === RESOLVED && !ignoreResult) {\n if (array(result)) {\n this.addValue(\"➡️\");\n this.addValue(result);\n } else {\n this.appendData(\"➡️\", result);\n }\n } else if (status === REJECTED) {\n this.appendData(\"🛑\", error);\n } else if (status === PENDING) {\n this.appendData(\"⌛\");\n } else if (status === CANCELLED) {\n this.appendData(\"⚠️ Cancelled!\");\n }\n\n if (status !== PENDING) {\n this.appendData(\"(\".concat(duration.toFixed(2), \"ms)\"));\n }\n\n return this;\n }\n }]);\n\n return DescriptorFormatter;\n}(Formatter);\n\nfunction logSaga(manager, color) {\n if (manager.getRootIds().length === 0) {\n console.log(\"Saga monitor: No effects to log\");\n }\n\n console.log(\"\");\n console.log(\"Saga monitor:\", Date.now(), new Date().toISOString());\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = manager.getRootIds()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var id = _step.value;\n logEffectTree(manager, id, color);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n console.log(\"\");\n}\n\nfunction logEffectTree(manager, effectId, color) {\n var desc = manager.get(effectId);\n var childIds = manager.getChildIds(effectId);\n var formatter = getFormatterFromDescriptor(desc, color);\n\n if (childIds.length === 0) {\n var _console;\n\n (_console = console)[formatter.logMethod].apply(_console, _toConsumableArray(formatter.getLog()));\n } else {\n consoleGroup.apply(void 0, _toConsumableArray(formatter.getLog()));\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = childIds[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var id = _step2.value;\n logEffectTree(manager, id, color);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n consoleGroupEnd();\n }\n}\n\nfunction getFormatterFromDescriptor(desc, color) {\n var isCancel = desc.status === CANCELLED;\n var isError = desc.status === REJECTED;\n var formatter = new DescriptorFormatter(isCancel, isError, color);\n var winnerInd = desc.winner ? isError ? \"✘\" : \"✓\" : \"\";\n formatter.addLabel(winnerInd).addLabel(desc.label);\n\n if (desc.root) {\n formatter.addEffectType(\"root\").resetStyle().addCall(desc.saga.name, desc.args).addDescResult(desc);\n } else if (iterator(desc.effect)) {\n formatter.addValue(desc.effect.name).addDescResult(desc, true);\n } else if (promise(desc.effect)) {\n formatter.addEffectType(\"promise\").resetStyle().addDescResult(desc);\n } else if (effect(desc.effect)) {\n var _desc$effect = desc.effect,\n type = _desc$effect.type,\n payload = _desc$effect.payload;\n\n if (type === effectTypes.TAKE) {\n formatter.addEffectType(\"take\").resetStyle().addValue(payload.channel == null ? payload.pattern : payload).addDescResult(desc);\n } else if (type === effectTypes.PUT) {\n formatter.addEffectType(\"put\").resetStyle().addDescResult(Object.assign({}, desc, {\n result: payload\n }));\n } else if (type === effectTypes.ALL) {\n formatter.addEffectType(\"all\").resetStyle().addDescResult(desc, true);\n } else if (type === effectTypes.RACE) {\n formatter.addEffectType(\"race\").resetStyle().addDescResult(desc, true);\n } else if (type === effectTypes.CALL) {\n formatter.addEffectType(\"call\").resetStyle().addCall(payload.fn.name, payload.args).addDescResult(desc);\n } else if (type === effectTypes.CPS) {\n formatter.addEffectType(\"cps\").resetStyle().addCall(payload.fn.name, payload.args).addDescResult(desc);\n } else if (type === effectTypes.FORK) {\n formatter.addEffectType(payload.detached ? \"spawn\" : \"fork\").resetStyle().addCall(payload.fn.name, payload.args).addDescResult(desc);\n } else if (type === effectTypes.JOIN) {\n formatter.addEffectType(\"join\").resetStyle().addDescResult(desc);\n } else if (type === effectTypes.CANCEL) {\n formatter.addEffectType(\"cancel\").resetStyle().appendData(payload.name);\n } else if (type === effectTypes.SELECT) {\n formatter.addEffectType(\"select\").resetStyle().addCall(payload.selector.name, payload.args).addDescResult(desc);\n } else if (type === effectTypes.ACTION_CHANNEL) {\n formatter.addEffectType(\"actionChannel\").resetStyle().addValue(payload.buffer == null ? payload.pattern : payload).addDescResult(desc);\n } else if (type === effectTypes.CANCELLED) {\n formatter.addEffectType(\"cancelled\").resetStyle().addDescResult(desc);\n } else if (type === effectTypes.FLUSH) {\n formatter.addEffectType(\"flush\").resetStyle().addValue(payload).addDescResult(desc);\n } else if (type === effectTypes.GET_CONTEXT) {\n formatter.addEffectType(\"getContext\").resetStyle().addValue(payload).addDescResult(desc);\n } else if (type === effectTypes.SET_CONTEXT) {\n formatter.addEffectType(\"setContext\").resetStyle().addValue(payload).addDescResult(desc, true);\n } else {\n throw new Error(\"Invalid effect type \".concat(type));\n }\n } else {\n formatter.addEffectType(\"unknown\").resetStyle().addDescResult(desc);\n }\n\n return formatter;\n}\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n this.rootIds = []; // effect-id-to-effect-descriptor\n\n this.map = {}; // effect-id-to-array-of-child-id\n\n this.childIdsMap = {};\n }\n\n _createClass(Manager, [{\n key: \"get\",\n value: function get(effectId) {\n return this.map[effectId];\n }\n }, {\n key: \"set\",\n value: function set(effectId, desc) {\n this.map[effectId] = desc;\n\n if (this.childIdsMap[desc.parentEffectId] == null) {\n this.childIdsMap[desc.parentEffectId] = [];\n }\n\n this.childIdsMap[desc.parentEffectId].push(effectId);\n }\n }, {\n key: \"setRootEffect\",\n value: function setRootEffect(effectId, desc) {\n this.rootIds.push(effectId);\n this.set(effectId, Object.assign({\n root: true\n }, desc));\n }\n }, {\n key: \"getRootIds\",\n value: function getRootIds() {\n return this.rootIds;\n }\n }, {\n key: \"getChildIds\",\n value: function getChildIds(parentEffectId) {\n return this.childIdsMap[parentEffectId] || [];\n }\n }]);\n\n return Manager;\n}();\n\nvar version = \"2.0.1\";\n\nvar LOG_SAGAS_STYLE = \"font-weight: bold\";\nvar globalScope = IS_BROWSER ? window : IS_REACT_NATIVE ? global : null;\n\nfunction time() {\n if (typeof performance !== \"undefined\" && performance.now) {\n return performance.now();\n } else {\n return Date.now();\n }\n}\n\nvar manager = new Manager();\n\nfunction computeEffectDur(effect$$1) {\n var now = time();\n Object.assign(effect$$1, {\n end: now,\n duration: now - effect$$1.start\n });\n}\n\nfunction resolveEffect(effectId, result) {\n var effect$$1 = manager.get(effectId);\n\n if (task(result)) {\n result.toPromise().then(function (taskResult) {\n if (result.isCancelled()) {\n cancelEffect(effectId);\n } else {\n resolveEffect(effectId, taskResult);\n }\n }, function (taskError) {\n return rejectEffect(effectId, taskError);\n });\n } else {\n computeEffectDur(effect$$1);\n effect$$1.status = RESOLVED;\n effect$$1.result = result;\n\n if (isRaceEffect(effect$$1.effect)) {\n setRaceWinner(effectId, result);\n }\n }\n}\n\nfunction rejectEffect(effectId, error) {\n var effect$$1 = manager.get(effectId);\n computeEffectDur(effect$$1);\n effect$$1.status = REJECTED;\n effect$$1.error = error;\n\n if (isRaceEffect(effect$$1.effect)) {\n setRaceWinner(effectId, error);\n }\n}\n\nfunction cancelEffect(effectId) {\n var effect$$1 = manager.get(effectId);\n computeEffectDur(effect$$1);\n effect$$1.status = CANCELLED;\n}\n\nfunction setRaceWinner(raceEffectId, result) {\n var winnerLabel = Object.keys(result)[0];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = manager.getChildIds(raceEffectId)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var childId = _step.value;\n var childEffect = manager.get(childId);\n\n if (childEffect.label === winnerLabel) {\n childEffect.winner = true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nvar defaultConfig = {\n level: \"debug\",\n color: \"#03A9F4\",\n verbose: true,\n rootSagaStart: false,\n effectTrigger: false,\n effectResolve: false,\n effectReject: false,\n effectCancel: false,\n actionDispatch: false\n};\n\nfunction createSagaMonitor() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var config = _objectSpread({}, defaultConfig, options);\n\n var level = config.level,\n verbose = config.verbose,\n color = config.color,\n rootSagaStart = config.rootSagaStart,\n effectTrigger = config.effectTrigger,\n effectResolve = config.effectResolve,\n effectReject = config.effectReject,\n effectCancel = config.effectCancel,\n actionDispatch = config.actionDispatch;\n var styles = [\"color: \".concat(color), \"font-weight: bold\"].join(\";\");\n\n function rootSagaStarted(desc) {\n if (rootSagaStart) {\n console[level](\"%c Root saga started:\", styles, desc.saga.name || \"anonymous\", desc.args);\n }\n\n manager.setRootEffect(desc.effectId, Object.assign({}, desc, {\n status: PENDING,\n start: time()\n }));\n }\n\n function effectTriggered(desc) {\n if (effectTrigger) {\n console[level](\"%c effectTriggered:\", styles, desc);\n }\n\n manager.set(desc.effectId, Object.assign({}, desc, {\n status: PENDING,\n start: time()\n }));\n }\n\n function effectResolved(effectId, result) {\n if (effectResolve) {\n console[level](\"%c effectResolved:\", styles, effectId, result);\n }\n\n resolveEffect(effectId, result);\n }\n\n function effectRejected(effectId, error) {\n if (effectReject) {\n console[level](\"%c effectRejected:\", styles, effectId, error);\n }\n\n rejectEffect(effectId, error);\n }\n\n function effectCancelled(effectId) {\n if (effectCancel) {\n console[level](\"%c effectCancelled:\", styles, effectId);\n }\n\n cancelEffect(effectId);\n }\n\n function actionDispatched(action) {\n if (actionDispatch) {\n console[level](\"%c actionDispatched:\", styles, action);\n }\n }\n\n if (globalScope) {\n if (verbose) {\n console[level](\"View Sagas by executing %c$$LogSagas()\", LOG_SAGAS_STYLE, \"in the console\");\n } // Export the snapshot-logging function to run from the browser console or extensions.\n\n\n globalScope.$$LogSagas = function () {\n return logSaga(manager, color);\n };\n }\n\n return {\n rootSagaStarted: rootSagaStarted,\n effectTriggered: effectTriggered,\n effectResolved: effectResolved,\n effectRejected: effectRejected,\n effectCancelled: effectCancelled,\n actionDispatched: actionDispatched\n };\n} // Version\n\n\ncreateSagaMonitor.VERSION = version;\nlogSaga.VERSION = version; // Export the snapshot-logging function for arbitrary use by external code.\n\nexport default createSagaMonitor;\nexport { logSaga };\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 3.2.2, Wed Apr 27 2022\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n \n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nvar _global = typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n\nvar keys = Object.keys;\nvar isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise) {\n _global.Promise = Promise;\n}\nfunction extend(obj, extension) {\n if (typeof extension !== 'object')\n return obj;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj;\n}\nvar getProto = Object.getPrototypeOf;\nvar _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction props(proto, extension) {\n if (typeof extension === 'function')\n extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(function (key) {\n setProp(proto, key, extension[key]);\n });\n}\nvar defineProperty = Object.defineProperty;\nfunction setProp(obj, prop, functionOrGetSet, options) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } :\n { value: functionOrGetSet, configurable: true, writable: true }, options));\n}\nfunction derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nfunction getPropertyDescriptor(obj, prop) {\n var pd = getOwnPropertyDescriptor(obj, prop);\n var proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n}\nvar _slice = [].slice;\nfunction slice(args, start, end) {\n return _slice.call(args, start, end);\n}\nfunction override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\nfunction assert(b) {\n if (!b)\n throw new Error(\"Assertion Failed\");\n}\nfunction asap$1(fn) {\n if (_global.setImmediate)\n setImmediate(fn);\n else\n setTimeout(fn, 0);\n}\nfunction arrayToObject(array, extractor) {\n return array.reduce(function (result, item, i) {\n var nameAndValue = extractor(item, i);\n if (nameAndValue)\n result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\nfunction tryCatch(fn, onerror, args) {\n try {\n fn.apply(null, args);\n }\n catch (ex) {\n onerror && onerror(ex);\n }\n}\nfunction getByKeyPath(obj, keyPath) {\n if (hasOwn(obj, keyPath))\n return obj[keyPath];\n if (!keyPath)\n return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\nfunction setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath)))\n obj.splice(currentKeyPath, 1);\n else\n delete obj[currentKeyPath];\n }\n else\n obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath))\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath)))\n obj.splice(keyPath, 1);\n else\n delete obj[keyPath];\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nfunction delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function (kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\nfunction shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m))\n rv[m] = obj[m];\n }\n return rv;\n}\nvar concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\nvar intrinsicTypeNames = \"Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(flatten([8, 16, 32, 64].map(function (num) { return [\"Int\", \"Uint\", \"Float\"].map(function (t) { return t + num + \"Array\"; }); }))).filter(function (t) { return _global[t]; });\nvar intrinsicTypes = intrinsicTypeNames.map(function (t) { return _global[t]; });\narrayToObject(intrinsicTypeNames, function (x) { return [x, true]; });\nvar circularRefs = null;\nfunction deepClone(any) {\n circularRefs = typeof WeakMap !== 'undefined' && new WeakMap();\n var rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\nfunction innerDeepClone(any) {\n if (!any || typeof any !== 'object')\n return any;\n var rv = circularRefs && circularRefs.get(any);\n if (rv)\n return rv;\n if (isArray(any)) {\n rv = [];\n circularRefs && circularRefs.set(any, rv);\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(innerDeepClone(any[i]));\n }\n }\n else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n }\n else {\n var proto = getProto(any);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs && circularRefs.set(any, rv);\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = innerDeepClone(any[prop]);\n }\n }\n }\n return rv;\n}\nvar toString = {}.toString;\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nvar iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nvar getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function (x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nvar NO_CHAR_ARRAY = {};\nfunction getArrayOf(arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike))\n return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string')\n return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done)\n a.push(x.value);\n return a;\n }\n if (arrayLike == null)\n return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--)\n a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--)\n a[i] = arguments[i];\n return a;\n}\nvar isAsyncFunction = typeof Symbol !== 'undefined'\n ? function (fn) { return fn[Symbol.toStringTag] === 'AsyncFunction'; }\n : function () { return false; };\n\nvar debug = typeof location !== 'undefined' &&\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\nfunction setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\nvar libraryFilter = function () { return true; };\nvar NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\nfunction getErrorWithStack() {\n if (NEEDS_THROW_FOR_STACK)\n try {\n getErrorWithStack.arguments;\n throw new Error();\n }\n catch (e) {\n return e;\n }\n return new Error();\n}\nfunction prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack)\n return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(function (frame) { return \"\\n\" + frame; })\n .join('');\n}\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\nfunction DexieError(name, msg) {\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\nderive(DexieError).from(Error).extend({\n stack: {\n get: function () {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function () { return this.name + \": \" + this.message; }\n});\nfunction getMultiErrorMessage(msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(function (key) { return failures[key].toString(); })\n .filter(function (v, i, s) { return s.indexOf(v) === i; })\n .join('\\n');\n}\nfunction ModifyError(msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\nfunction BulkError(msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(function (pos) { return failures[pos]; });\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\nvar errnames = errorList.reduce(function (obj, name) { return (obj[name] = name + \"Error\", obj); }, {});\nvar BaseException = DexieError;\nvar exceptions = errorList.reduce(function (obj, name) {\n var fullName = name + \"Error\";\n function DexieError(msgOrInner, inner) {\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n }\n else if (typeof msgOrInner === 'string') {\n this.message = \"\" + msgOrInner + (!inner ? '' : '\\n ' + inner);\n this.inner = inner || null;\n }\n else if (typeof msgOrInner === 'object') {\n this.message = msgOrInner.name + \" \" + msgOrInner.message;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name] = DexieError;\n return obj;\n}, {});\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\nvar exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfunction mapError(domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n setProp(rv, \"stack\", { get: function () {\n return this.inner.stack;\n } });\n }\n return rv;\n}\nvar fullNameExceptions = errorList.reduce(function (obj, name) {\n if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n\nfunction nop() { }\nfunction mirror(val) { return val; }\nfunction pureFunctionChain(f1, f2) {\n if (f1 == null || f1 === mirror)\n return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\nfunction callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\nfunction hookCreatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined)\n arguments[0] = res;\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\nfunction hookDeletingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\nfunction hookUpdatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\nfunction reverseStoppableEventChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n if (f2.apply(this, arguments) === false)\n return false;\n return f1.apply(this, arguments);\n };\n}\nfunction promisableChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this, i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n\nvar INTERNAL = {};\nvar LONG_STACKS_CLIP_LIMIT = 100,\nMAX_LONG_STACKS = 20, ZONE_ECHO_LIMIT = 100, _a$1 = typeof Promise === 'undefined' ?\n [] :\n (function () {\n var globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(), resolvedNativePromise = _a$1[0], nativePromiseProto = _a$1[1], resolvedGlobalPromise = _a$1[2], nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\nvar NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nvar patchGlobalPromise = !!resolvedGlobalPromise;\nvar stack_being_generated = false;\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n function () { resolvedGlobalPromise.then(physicalTick); }\n :\n _global.setImmediate ?\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n function () {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(function () {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n function () { setTimeout(physicalTick, 0); };\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\nvar isOutsideMicroTick = true,\nneedsNewPhysicalTick = true,\nunhandledErrors = [],\nrejectingErrors = [],\ncurrentFulfiller = null, rejectionMapper = mirror;\nvar globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(function (uh) {\n try {\n globalError(uh[0], uh[1]);\n }\n catch (e) { }\n });\n }\n};\nvar PSD = globalPSD;\nvar microtickQueue = [];\nvar numScheduledCalls = 0;\nvar tickFinalizers = [];\nfunction DexiePromise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n this._listeners = [];\n this.onuncatched = nop;\n this._lib = false;\n var psd = (this._PSD = PSD);\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0;\n }\n if (typeof fn !== 'function') {\n if (fn !== INTERNAL)\n throw new TypeError('Not a function');\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value);\n return;\n }\n this._state = null;\n this._value = null;\n ++psd.ref;\n executePromiseTask(this, fn);\n}\nvar thenProp = {\n get: function () {\n var psd = PSD, microTaskId = totalEchoes;\n function then(onFulfilled, onRejected) {\n var _this = this;\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n var cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise(function (resolve, reject) {\n propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n then.prototype = INTERNAL;\n return then;\n },\n set: function (value) {\n setProp(this, 'then', value && value.prototype === INTERNAL ?\n thenProp :\n {\n get: function () {\n return value;\n },\n set: thenProp.set\n });\n }\n};\nprops(DexiePromise.prototype, {\n then: thenProp,\n _then: function (onFulfilled, onRejected) {\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n },\n catch: function (onRejected) {\n if (arguments.length === 1)\n return this.then(null, onRejected);\n var type = arguments[0], handler = arguments[1];\n return typeof type === 'function' ? this.then(null, function (err) {\n return err instanceof type ? handler(err) : PromiseReject(err);\n })\n : this.then(null, function (err) {\n return err && err.name === type ? handler(err) : PromiseReject(err);\n });\n },\n finally: function (onFinally) {\n return this.then(function (value) {\n onFinally();\n return value;\n }, function (err) {\n onFinally();\n return PromiseReject(err);\n });\n },\n stack: {\n get: function () {\n if (this._stack)\n return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack(this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null)\n this._stack = stack;\n return stack;\n }\n finally {\n stack_being_generated = false;\n }\n }\n },\n timeout: function (ms, msg) {\n var _this = this;\n return ms < Infinity ?\n new DexiePromise(function (resolve, reject) {\n var handle = setTimeout(function () { return reject(new exceptions.Timeout(msg)); }, ms);\n _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\nglobalPSD.env = snapShot();\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\nprops(DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments)\n .map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0)\n resolve([]);\n var remaining = values.length;\n values.forEach(function (a, i) { return DexiePromise.resolve(a).then(function (x) {\n values[i] = x;\n if (!--remaining)\n resolve(values);\n }, reject); });\n });\n },\n resolve: function (value) {\n if (value instanceof DexiePromise)\n return value;\n if (value && typeof value.then === 'function')\n return new DexiePromise(function (resolve, reject) {\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n reject: PromiseReject,\n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });\n });\n },\n PSD: {\n get: function () { return PSD; },\n set: function (value) { return PSD = value; }\n },\n totalEchoes: { get: function () { return totalEchoes; } },\n newPSD: newScope,\n usePSD: usePSD,\n scheduler: {\n get: function () { return asap; },\n set: function (value) { asap = value; }\n },\n rejectionMapper: {\n get: function () { return rejectionMapper; },\n set: function (value) { rejectionMapper = value; }\n },\n follow: function (fn, zoneProps) {\n return new DexiePromise(function (resolve, reject) {\n return newScope(function (resolve, reject) {\n var psd = PSD;\n psd.unhandleds = [];\n psd.onunhandled = reject;\n psd.finalize = callBoth(function () {\n var _this = this;\n run_at_end_of_this_or_next_physical_tick(function () {\n _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\nif (NativePromise) {\n if (NativePromise.allSettled)\n setProp(DexiePromise, \"allSettled\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve) {\n if (possiblePromises.length === 0)\n resolve([]);\n var remaining = possiblePromises.length;\n var results = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: \"fulfilled\", value: value }; }, function (reason) { return results[i] = { status: \"rejected\", reason: reason }; })\n .then(function () { return --remaining || resolve(results); }); });\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined')\n setProp(DexiePromise, \"any\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (possiblePromises.length === 0)\n reject(new AggregateError([]));\n var remaining = possiblePromises.length;\n var failures = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {\n failures[i] = failure;\n if (!--remaining)\n reject(new AggregateError(failures));\n }); });\n });\n });\n}\nfunction executePromiseTask(promise, fn) {\n try {\n fn(function (value) {\n if (promise._state !== null)\n return;\n if (value === promise)\n throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, function (resolve, reject) {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n }\n else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick)\n endMicroTickScope();\n }, handleRejection.bind(null, promise));\n }\n catch (ex) {\n handleRejection(promise, ex);\n }\n}\nfunction handleRejection(promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null)\n return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(function () {\n var origProp = getPropertyDescriptor(reason, \"stack\");\n reason._promise = promise;\n setProp(reason, \"stack\", {\n get: function () {\n return stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack;\n }\n });\n });\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick)\n endMicroTickScope();\n}\nfunction propagateAllListeners(promise) {\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize();\n if (numScheduledCalls === 0) {\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n }\n}\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n return (promise._state ? listener.resolve : listener.reject)(promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap(callListener, [cb, promise, listener]);\n}\nfunction callListener(cb, promise, listener) {\n try {\n currentFulfiller = promise;\n var ret, value = promise._value;\n if (promise._state) {\n ret = cb(value);\n }\n else {\n if (rejectingErrors.length)\n rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise);\n }\n listener.resolve(ret);\n }\n catch (e) {\n listener.reject(e);\n }\n finally {\n currentFulfiller = null;\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\nfunction getStack(promise, stacks, limit) {\n if (stacks.length === limit)\n return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value, errorName, message;\n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n }\n else {\n errorName = failure;\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1)\n stacks.push(stack);\n if (promise._prev)\n getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\nfunction linkToPreviousPromise(promise, prev) {\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) {\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\nfunction beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\nfunction endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(function (p) {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0);\n var i = finalizers.length;\n while (i)\n finalizers[--i]();\n}\nfunction run_at_end_of_this_or_next_physical_tick(fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n}\nfunction addPossiblyUnhandledError(promise) {\n if (!unhandledErrors.some(function (p) { return p._value === promise._value; }))\n unhandledErrors.push(promise);\n}\nfunction markErrorAsHandled(promise) {\n var i = unhandledErrors.length;\n while (i)\n if (unhandledErrors[--i]._value === promise._value) {\n unhandledErrors.splice(i, 1);\n return;\n }\n}\nfunction PromiseReject(reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\nfunction wrap(fn, errorCatcher) {\n var psd = PSD;\n return function () {\n var wasRootExec = beginMicroTickScope(), outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n }\n catch (e) {\n errorCatcher && errorCatcher(e);\n }\n finally {\n switchToZone(outerScope, false);\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n}\nvar task = { awaits: 0, echoes: 0, id: 0 };\nvar taskCounter = 0;\nvar zoneStack = [];\nvar zoneEchoes = 0;\nvar totalEchoes = 0;\nvar zone_id_counter = 0;\nfunction newScope(fn, props, a1, a2) {\n var parent = PSD, psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise,\n PromiseProp: { value: DexiePromise, configurable: true, writable: true },\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen(globalEnv.nthen, psd),\n gthen: getPatchedPromiseThen(globalEnv.gthen, psd)\n } : {};\n if (props)\n extend(psd, props);\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n };\n var rv = usePSD(psd, fn, a1, a2);\n if (psd.ref === 0)\n psd.finalize();\n return rv;\n}\nfunction incrementExpectedAwaits() {\n if (!task.id)\n task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\nfunction decrementExpectedAwaits() {\n if (!task.awaits)\n return false;\n if (--task.awaits === 0)\n task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n return true;\n}\nif (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\nfunction onPossibleParallellAsync(possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits();\n return possiblePromise.then(function (x) {\n decrementExpectedAwaits();\n return x;\n }, function (e) {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0;\n }\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length - 1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\nfunction switchToZone(targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD)\n return;\n PSD = targetZone;\n if (currentZone === globalPSD)\n globalPSD.env = snapShot();\n if (patchGlobalPromise) {\n var GlobalPromise_1 = globalPSD.env.Promise;\n var targetEnv = targetZone.env;\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise_1.prototype.then = targetEnv.gthen;\n if (currentZone.global || targetZone.global) {\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n GlobalPromise_1.all = targetEnv.all;\n GlobalPromise_1.race = targetEnv.race;\n GlobalPromise_1.resolve = targetEnv.resolve;\n GlobalPromise_1.reject = targetEnv.reject;\n if (targetEnv.allSettled)\n GlobalPromise_1.allSettled = targetEnv.allSettled;\n if (targetEnv.any)\n GlobalPromise_1.any = targetEnv.any;\n }\n }\n}\nfunction snapShot() {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\nfunction usePSD(psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n }\n finally {\n switchToZone(outerScope, false);\n }\n}\nfunction enqueueNativeMicroTask(job) {\n nativePromiseThen.call(resolvedNativePromise, job);\n}\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait)\n incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n }\n finally {\n switchToZone(outerZone, false);\n if (cleanup)\n enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\nfunction getPatchedPromiseThen(origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\nvar UNHANDLEDREJECTION = \"unhandledrejection\";\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n }\n catch (e) { }\n if (rv !== false)\n try {\n var event, eventData = { promise: promise, reason: err };\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n }\n else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData });\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n try {\n _global.onunhandledrejection(event);\n }\n catch (_) { }\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(\"Unhandled rejection: \" + (err.stack || err));\n }\n }\n catch (e) { }\n}\nvar rejection = DexiePromise.reject;\n\nfunction tempTransaction(db, mode, storeNames, fn) {\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop);\n }\n return db._state.dbReadyPromise.then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n return rejection(ex);\n }\n return trans._promise(mode, function (resolve, reject) {\n return newScope(function () {\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(function (result) {\n return trans._completion.then(function () { return result; });\n });\n }\n}\n\nvar DEXIE_VERSION = '3.2.2';\nvar maxString = String.fromCharCode(65535);\nvar minKey = -Infinity;\nvar INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\nvar STRING_EXPECTED = \"String expected.\";\nvar connections = [];\nvar isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nvar hasIEDeleteObjectStoreBug = isIEOrEdge;\nvar hangsOnDeleteLargeKeyRange = isIEOrEdge;\nvar dexieStackFrameFilter = function (frame) { return !/(dexie\\.js|dexie\\.min\\.js)/.test(frame); };\nvar DBNAMES_DB = '__dbnames';\nvar READONLY = 'readonly';\nvar READWRITE = 'readwrite';\n\nfunction combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n\nvar AnyRange = {\n type: 3 ,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n};\n\nfunction workaroundForUndefinedPrimKey(keyPath) {\n return typeof keyPath === \"string\" && !/\\./.test(keyPath)\n ? function (obj) {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : function (obj) { return obj; };\n}\n\nvar Table = (function () {\n function Table() {\n }\n Table.prototype._trans = function (mode, fn, writeLocked) {\n var trans = this._tx || PSD.trans;\n var tableName = this.name;\n function checkTableInTransaction(resolve, reject, trans) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n var wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(function () { return trans._promise(mode, checkTableInTransaction, writeLocked); }, { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n }\n finally {\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n Table.prototype.get = function (keyOrCrit, cb) {\n var _this = this;\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit).first(cb);\n return this._trans('readonly', function (trans) {\n return _this.core.get({ trans: trans, key: keyOrCrit })\n .then(function (res) { return _this.hook.reading.fire(res); });\n }).then(cb);\n };\n Table.prototype.where = function (indexOrCrit) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, \"[\" + indexOrCrit.join('+') + \"]\");\n var keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n return ix.compound &&\n keyPaths.every(function (keyPath) { return ix.keyPath.indexOf(keyPath) >= 0; }) &&\n ix.keyPath.every(function (keyPath) { return keyPaths.indexOf(keyPath) >= 0; });\n })[0];\n if (compoundIndex && this.db._maxKey !== maxString)\n return this\n .where(compoundIndex.name)\n .equals(compoundIndex.keyPath.map(function (kp) { return indexOrCrit[kp]; }));\n if (!compoundIndex && debug)\n console.warn(\"The query \" + JSON.stringify(indexOrCrit) + \" on \" + this.name + \" would benefit of a \" +\n (\"compound index [\" + keyPaths.join('+') + \"]\"));\n var idxByName = this.schema.idxByName;\n var idb = this.db._deps.indexedDB;\n function equals(a, b) {\n try {\n return idb.cmp(a, b) === 0;\n }\n catch (e) {\n return false;\n }\n }\n var _a = keyPaths.reduce(function (_a, keyPath) {\n var prevIndex = _a[0], prevFilterFn = _a[1];\n var index = idxByName[keyPath];\n var value = indexOrCrit[keyPath];\n return [\n prevIndex || index,\n prevIndex || !index ?\n combine(prevFilterFn, index && index.multi ?\n function (x) {\n var prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(function (item) { return equals(value, item); });\n } : function (x) { return equals(value, getByKeyPath(x, keyPath)); })\n : prevFilterFn\n ];\n }, [null, null]), idx = _a[0], filterFunction = _a[1];\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) :\n this.where(keyPaths).equals('');\n };\n Table.prototype.filter = function (filterFunction) {\n return this.toCollection().and(filterFunction);\n };\n Table.prototype.count = function (thenShortcut) {\n return this.toCollection().count(thenShortcut);\n };\n Table.prototype.offset = function (offset) {\n return this.toCollection().offset(offset);\n };\n Table.prototype.limit = function (numRows) {\n return this.toCollection().limit(numRows);\n };\n Table.prototype.each = function (callback) {\n return this.toCollection().each(callback);\n };\n Table.prototype.toArray = function (thenShortcut) {\n return this.toCollection().toArray(thenShortcut);\n };\n Table.prototype.toCollection = function () {\n return new this.db.Collection(new this.db.WhereClause(this));\n };\n Table.prototype.orderBy = function (index) {\n return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ?\n \"[\" + index.join('+') + \"]\" :\n index));\n };\n Table.prototype.reverse = function () {\n return this.toCollection().reverse();\n };\n Table.prototype.mapToClass = function (constructor) {\n this.schema.mappedClass = constructor;\n var readHook = function (obj) {\n if (!obj)\n return obj;\n var res = Object.create(constructor.prototype);\n for (var m in obj)\n if (hasOwn(obj, m))\n try {\n res[m] = obj[m];\n }\n catch (_) { }\n return res;\n };\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n };\n Table.prototype.defineClass = function () {\n function Class(content) {\n extend(this, content);\n }\n return this.mapToClass(Class);\n };\n Table.prototype.add = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] });\n }).then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.update = function (keyOrObject, modifications) {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined)\n return rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(function (keyPath) {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n }\n else {\n modifications(keyOrObject, { value: keyOrObject, primKey: key });\n }\n }\n catch (_a) {\n }\n return this.where(\":id\").equals(key).modify(modifications);\n }\n else {\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n };\n Table.prototype.put = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.delete = function (key) {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'delete', keys: [key] }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.clear = function () {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'deleteRange', range: AnyRange }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.bulkGet = function (keys) {\n var _this = this;\n return this._trans('readonly', function (trans) {\n return _this.core.getMany({\n keys: keys,\n trans: trans\n }).then(function (result) { return result.map(function (res) { return _this.hook.reading.fire(res); }); });\n });\n };\n Table.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'add', keys: keys, values: objectsToAdd, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkAdd(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkPut = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'put', keys: keys, values: objectsToPut, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkPut(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkDelete = function (keys) {\n var _this = this;\n var numKeys = keys.length;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'delete', keys: keys });\n }).then(function (_a) {\n var numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;\n if (numFailures === 0)\n return lastResult;\n throw new BulkError(_this.name + \".bulkDelete(): \" + numFailures + \" of \" + numKeys + \" operations failed\", failures);\n });\n };\n return Table;\n}());\n\nfunction Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n var i = arguments.length, args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n }\n else if (typeof (eventName) === 'string') {\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n return rv;\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object')\n return addConfiguredEvents(eventName);\n if (!chainFunction)\n chainFunction = reverseStoppableEventChain;\n if (!defaultFunction)\n defaultFunction = nop;\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n function addConfiguredEvents(cfg) {\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n }\n else if (args === 'asap') {\n var context = add(eventName, mirror, function fire() {\n var i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n context.subscribers.forEach(function (fn) {\n asap$1(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n }\n else\n throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n\nfunction makeClassConstructor(prototype, constructor) {\n derive(constructor).from({ prototype: prototype });\n return constructor;\n}\n\nfunction createTableConstructor(db) {\n return makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n });\n });\n}\n\nfunction isPlainKeyRange(ctx, ignoreLimitFilter) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n}\nfunction addFilter(ctx, fn) {\n ctx.filter = combine(ctx.filter, fn);\n}\nfunction addReplayFilter(ctx, factory, isLimitFilter) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? function () { return combine(curr(), factory()); } : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\nfunction addMatchFilter(ctx, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\nfunction getIndexOrStore(ctx, coreSchema) {\n if (ctx.isPrimKey)\n return coreSchema.primaryKey;\n var index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index)\n throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\nfunction openCursor(ctx, coreTable, trans) {\n var index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans: trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index: index,\n range: ctx.range\n }\n });\n}\nfunction iter(ctx, fn, coreTrans, coreTable) {\n var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n }\n else {\n var set_1 = {};\n var union = function (item, cursor, advance) {\n if (!filter || filter(cursor, advance, function (result) { return cursor.stop(result); }, function (err) { return cursor.fail(err); })) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]')\n key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set_1, key)) {\n set_1[key] = true;\n fn(item, cursor, advance);\n }\n }\n };\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\nfunction iterate(cursorPromise, filter, fn, valueMapper) {\n var mappedFn = valueMapper ? function (x, c, a) { return fn(valueMapper(x), c, a); } : fn;\n var wrappedFn = wrap(mappedFn);\n return cursorPromise.then(function (cursor) {\n if (cursor) {\n return cursor.start(function () {\n var c = function () { return cursor.continue(); };\n if (!filter || filter(cursor, function (advancer) { return c = advancer; }, function (val) { cursor.stop(val); c = nop; }, function (e) { cursor.fail(e); c = nop; }))\n wrappedFn(cursor.value, cursor, function (advancer) { return c = advancer; });\n c();\n });\n }\n });\n}\n\nfunction cmp(a, b) {\n try {\n var ta = type(a);\n var tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array')\n return 1;\n if (tb === 'Array')\n return -1;\n if (ta === 'binary')\n return 1;\n if (tb === 'binary')\n return -1;\n if (ta === 'string')\n return 1;\n if (tb === 'string')\n return -1;\n if (ta === 'Date')\n return 1;\n if (tb !== 'Date')\n return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n }\n catch (_a) { }\n return NaN;\n}\nfunction compareArrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n var res = cmp(a[i], b[i]);\n if (res !== 0)\n return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction compareUint8Arrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n if (a[i] !== b[i])\n return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction type(x) {\n var t = typeof x;\n if (t !== 'object')\n return t;\n if (ArrayBuffer.isView(x))\n return 'binary';\n var tsTag = toStringTag(x);\n return tsTag === 'ArrayBuffer' ? 'binary' : tsTag;\n}\nfunction getUint8Array(a) {\n if (a instanceof Uint8Array)\n return a;\n if (ArrayBuffer.isView(a))\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a);\n}\n\nvar Collection = (function () {\n function Collection() {\n }\n Collection.prototype._read = function (fn, cb) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n };\n Collection.prototype._write = function (fn) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\");\n };\n Collection.prototype._addAlgorithm = function (fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n };\n Collection.prototype._iterate = function (fn, coreTrans) {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n };\n Collection.prototype.clone = function (props) {\n var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);\n if (props)\n extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n };\n Collection.prototype.raw = function () {\n this._ctx.valueMapper = null;\n return this;\n };\n Collection.prototype.each = function (fn) {\n var ctx = this._ctx;\n return this._read(function (trans) { return iter(ctx, fn, trans, ctx.table.core); });\n };\n Collection.prototype.count = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n var coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n return coreTable.count({\n trans: trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(function (count) { return Math.min(count, ctx.limit); });\n }\n else {\n var count = 0;\n return iter(ctx, function () { ++count; return false; }, trans, coreTable)\n .then(function () { return count; });\n }\n }).then(cb);\n };\n Collection.prototype.sortBy = function (keyPath, cb) {\n var parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i)\n return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n function sorter(a, b) {\n var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n };\n Collection.prototype.toArray = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n var valueMapper_1 = ctx.valueMapper;\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n limit: ctx.limit,\n values: true,\n query: {\n index: index,\n range: ctx.range\n }\n }).then(function (_a) {\n var result = _a.result;\n return valueMapper_1 ? result.map(valueMapper_1) : result;\n });\n }\n else {\n var a_1 = [];\n return iter(ctx, function (item) { return a_1.push(item); }, trans, ctx.table.core).then(function () { return a_1; });\n }\n }, cb);\n };\n Collection.prototype.offset = function (offset) {\n var ctx = this._ctx;\n if (offset <= 0)\n return this;\n ctx.offset += offset;\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function (cursor, advance) {\n if (offsetLeft === 0)\n return true;\n if (offsetLeft === 1) {\n --offsetLeft;\n return false;\n }\n advance(function () {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n }\n else {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function () { return (--offsetLeft < 0); };\n });\n }\n return this;\n };\n Collection.prototype.limit = function (numRows) {\n this._ctx.limit = Math.min(this._ctx.limit, numRows);\n addReplayFilter(this._ctx, function () {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0)\n advance(resolve);\n return rowsLeft >= 0;\n };\n }, true);\n return this;\n };\n Collection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n }\n else {\n return true;\n }\n });\n return this;\n };\n Collection.prototype.first = function (cb) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.last = function (cb) {\n return this.reverse().first(cb);\n };\n Collection.prototype.filter = function (filterFunction) {\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n addMatchFilter(this._ctx, filterFunction);\n return this;\n };\n Collection.prototype.and = function (filter) {\n return this.filter(filter);\n };\n Collection.prototype.or = function (indexName) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n };\n Collection.prototype.reverse = function () {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange)\n this._ondirectionchange(this._ctx.dir);\n return this;\n };\n Collection.prototype.desc = function () {\n return this.reverse();\n };\n Collection.prototype.eachKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n };\n Collection.prototype.eachUniqueKey = function (cb) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n };\n Collection.prototype.eachPrimaryKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n };\n Collection.prototype.keys = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.primaryKeys = function (cb) {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n return this._read(function (trans) {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n values: false,\n limit: ctx.limit,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }).then(function (_a) {\n var result = _a.result;\n return result;\n }).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.uniqueKeys = function (cb) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n };\n Collection.prototype.firstKey = function (cb) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.lastKey = function (cb) {\n return this.reverse().firstKey(cb);\n };\n Collection.prototype.distinct = function () {\n var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi)\n return this;\n var set = {};\n addFilter(this._ctx, function (cursor) {\n var strKey = cursor.primaryKey.toString();\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n };\n Collection.prototype.modify = function (changes) {\n var _this = this;\n var ctx = this._ctx;\n return this._write(function (trans) {\n var modifyer;\n if (typeof changes === 'function') {\n modifyer = changes;\n }\n else {\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val);\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n var coreTable = ctx.table.core;\n var _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;\n var limit = _this.db._options.modifyChunkSize || 200;\n var totalFailures = [];\n var successCount = 0;\n var failedKeys = [];\n var applyMutateResult = function (expectedCount, res) {\n var failures = res.failures, numFailures = res.numFailures;\n successCount += expectedCount - numFailures;\n for (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n var pos = _a[_i];\n totalFailures.push(failures[pos]);\n }\n };\n return _this.clone().primaryKeys().then(function (keys) {\n var nextChunk = function (offset) {\n var count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans: trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\"\n }).then(function (values) {\n var addValues = [];\n var putValues = [];\n var putKeys = outbound ? [] : null;\n var deleteKeys = [];\n for (var i = 0; i < count; ++i) {\n var origValue = values[i];\n var ctx_1 = {\n value: deepClone(origValue),\n primKey: keys[offset + i]\n };\n if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n if (ctx_1.value == null) {\n deleteKeys.push(keys[offset + i]);\n }\n else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n deleteKeys.push(keys[offset + i]);\n addValues.push(ctx_1.value);\n }\n else {\n putValues.push(ctx_1.value);\n if (outbound)\n putKeys.push(keys[offset + i]);\n }\n }\n }\n var criteria = isPlainKeyRange(ctx) &&\n ctx.limit === Infinity &&\n (typeof changes !== 'function' || changes === deleteCallback) && {\n index: ctx.index,\n range: ctx.range\n };\n return Promise.resolve(addValues.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'add', values: addValues })\n .then(function (res) {\n for (var pos in res.failures) {\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })).then(function () { return (putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans: trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria: criteria,\n changeSpec: typeof changes !== 'function'\n && changes\n }).then(function (res) { return applyMutateResult(putValues.length, res); }); }).then(function () { return (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n coreTable.mutate({\n trans: trans,\n type: 'delete',\n keys: deleteKeys,\n criteria: criteria\n }).then(function (res) { return applyMutateResult(deleteKeys.length, res); }); }).then(function () {\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n };\n return nextChunk(0).then(function () {\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n return keys.length;\n });\n });\n });\n };\n Collection.prototype.delete = function () {\n var ctx = this._ctx, range = ctx.range;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 ))\n {\n return this._write(function (trans) {\n var primaryKey = ctx.table.core.schema.primaryKey;\n var coreRange = range;\n return ctx.table.core.count({ trans: trans, query: { index: primaryKey, range: coreRange } }).then(function (count) {\n return ctx.table.core.mutate({ trans: trans, type: 'deleteRange', range: coreRange })\n .then(function (_a) {\n var failures = _a.failures; _a.lastResult; _a.results; var numFailures = _a.numFailures;\n if (numFailures)\n throw new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) { return failures[pos]; }), count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n return this.modify(deleteCallback);\n };\n return Collection;\n}());\nvar deleteCallback = function (value, ctx) { return ctx.value = null; };\n\nfunction createCollectionConstructor(db) {\n return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {\n this.db = db;\n var keyRange = AnyRange, error = null;\n if (keyRangeGenerator)\n try {\n keyRange = keyRangeGenerator();\n }\n catch (ex) {\n error = ex;\n }\n var whereCtx = whereClause._ctx;\n var table = whereCtx.table;\n var readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true,\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error,\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n });\n}\n\nfunction simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\nfunction simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n\nfunction fail(collectionOrWhereClause, err, T) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection(collectionOrWhereClause) :\n collectionOrWhereClause;\n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\nfunction emptyCollection(whereClause) {\n return new whereClause.Collection(whereClause, function () { return rangeEqual(\"\"); }).limit(0);\n}\nfunction upperFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toUpperCase(); } :\n function (s) { return s.toLowerCase(); };\n}\nfunction lowerFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toLowerCase(); } :\n function (s) { return s.toUpperCase(); };\n}\nfunction nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0)\n return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0)\n return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0)\n return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0)\n llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\")\n return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\")\n return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\nfunction addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;\n if (!needles.every(function (s) { return typeof s === 'string'; })) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle) {\n return { lower: lower(needle), upper: upper(needle) };\n }).sort(function (a, b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb) { return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb) { return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n var c = new whereClause.Collection(whereClause, function () { return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix); });\n c._ondirectionchange = function (direction) {\n initDirection(direction);\n };\n var firstPossibleNeedle = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n if (typeof key !== 'string')\n return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n }\n else {\n var lowestPossibleCasing = null;\n for (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null)\n firstPossibleNeedle = i + 1;\n else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n }\n else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\nfunction createRange(lower, upper, lowerOpen, upperOpen) {\n return {\n type: 2 ,\n lower: lower,\n upper: upper,\n lowerOpen: lowerOpen,\n upperOpen: upperOpen\n };\n}\nfunction rangeEqual(value) {\n return {\n type: 1 ,\n lower: value,\n upper: value\n };\n}\n\nvar WhereClause = (function () {\n function WhereClause() {\n }\n Object.defineProperty(WhereClause.prototype, \"Collection\", {\n get: function () {\n return this._ctx.table.db.Collection;\n },\n enumerable: false,\n configurable: true\n });\n WhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n includeLower = includeLower !== false;\n includeUpper = includeUpper === true;\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this);\n return new this.Collection(this, function () { return createRange(lower, upper, !includeLower, !includeUpper); });\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n };\n WhereClause.prototype.equals = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return rangeEqual(value); });\n };\n WhereClause.prototype.above = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, true); });\n };\n WhereClause.prototype.aboveOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, false); });\n };\n WhereClause.prototype.below = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value, false, true); });\n };\n WhereClause.prototype.belowOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value); });\n };\n WhereClause.prototype.startsWith = function (str) {\n if (typeof str !== 'string')\n return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n };\n WhereClause.prototype.startsWithIgnoreCase = function (str) {\n if (str === \"\")\n return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x.indexOf(a[0]) === 0; }, [str], maxString);\n };\n WhereClause.prototype.equalsIgnoreCase = function (str) {\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x === a[0]; }, [str], \"\");\n };\n WhereClause.prototype.anyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.indexOf(x) !== -1; }, set, \"\");\n };\n WhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.some(function (n) { return x.indexOf(n) === 0; }); }, set, maxString);\n };\n WhereClause.prototype.anyOf = function () {\n var _this = this;\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n var compare = this._cmp;\n try {\n set.sort(compare);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n if (set.length === 0)\n return emptyCollection(this);\n var c = new this.Collection(this, function () { return createRange(set[0], set[set.length - 1]); });\n c._ondirectionchange = function (direction) {\n compare = (direction === \"next\" ?\n _this._ascending :\n _this._descending);\n set.sort(compare);\n };\n var i = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (compare(key, set[i]) > 0) {\n ++i;\n if (i === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n return true;\n }\n else {\n advance(function () { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.notEqual = function (value) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.noneOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return new this.Collection(this);\n try {\n set.sort(this._ascending);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var ranges = set.reduce(function (res, val) { return res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]]; }, null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.inAnyRange = function (ranges, options) {\n var _this = this;\n var cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;\n if (ranges.length === 0)\n return emptyCollection(this);\n if (!ranges.every(function (range) {\n return range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0;\n })) {\n return fail(this, \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\", exceptions.InvalidArgument);\n }\n var includeLowers = !options || options.includeLowers !== false;\n var includeUppers = options && options.includeUppers === true;\n function addRange(ranges, newRange) {\n var i = 0, l = ranges.length;\n for (; i < l; ++i) {\n var range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n var sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n var set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n }\n catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var rangePos = 0;\n var keyIsBeyondCurrentEntry = includeUppers ?\n function (key) { return ascending(key, set[rangePos][1]) > 0; } :\n function (key) { return ascending(key, set[rangePos][1]) >= 0; };\n var keyIsBeforeCurrentEntry = includeLowers ?\n function (key) { return descending(key, set[rangePos][0]) > 0; } :\n function (key) { return descending(key, set[rangePos][0]) >= 0; };\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n var checkKey = keyIsBeyondCurrentEntry;\n var c = new this.Collection(this, function () { return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers); });\n c._ondirectionchange = function (direction) {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n }\n else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (checkKey(key)) {\n ++rangePos;\n if (rangePos === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n return true;\n }\n else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n return false;\n }\n else {\n advance(function () {\n if (sortDirection === ascending)\n cursor.continue(set[rangePos][0]);\n else\n cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.startsWithAnyOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (!set.every(function (s) { return typeof s === 'string'; })) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0)\n return emptyCollection(this);\n return this.inAnyRange(set.map(function (str) { return [str, str + maxString]; }));\n };\n return WhereClause;\n}());\n\nfunction createWhereClauseConstructor(db) {\n return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n var indexedDB = db._deps.indexedDB;\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = function (a, b) { return indexedDB.cmp(b, a); };\n this._max = function (a, b) { return indexedDB.cmp(a, b) > 0 ? a : b; };\n this._min = function (a, b) { return indexedDB.cmp(a, b) < 0 ? a : b; };\n this._IDBKeyRange = db._deps.IDBKeyRange;\n });\n}\n\nfunction eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject(event.target.error);\n return false;\n });\n}\nfunction preventDefault(event) {\n if (event.stopPropagation)\n event.stopPropagation();\n if (event.preventDefault)\n event.preventDefault();\n}\n\nvar DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';\nvar STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\nvar globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);\n\nvar Transaction = (function () {\n function Transaction() {\n }\n Transaction.prototype._lock = function () {\n assert(!PSD.global);\n ++this._reculock;\n if (this._reculock === 1 && !PSD.global)\n PSD.lockOwnerFor = this;\n return this;\n };\n Transaction.prototype._unlock = function () {\n assert(!PSD.global);\n if (--this._reculock === 0) {\n if (!PSD.global)\n PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try {\n usePSD(fnAndPSD[1], fnAndPSD[0]);\n }\n catch (e) { }\n }\n }\n return this;\n };\n Transaction.prototype._locked = function () {\n return this._reculock && PSD.lockOwnerFor !== this;\n };\n Transaction.prototype.create = function (idbtrans) {\n var _this = this;\n if (!this.mode)\n return this;\n var idbdb = this.db.idbdb;\n var dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active)\n throw new exceptions.TransactionInactive();\n assert(this._completion._state === null);\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core\n ? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }));\n idbtrans.onerror = wrap(function (ev) {\n preventDefault(ev);\n _this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(function (ev) {\n preventDefault(ev);\n _this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n _this.active = false;\n _this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(function () {\n _this.active = false;\n _this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n };\n Transaction.prototype._promise = function (mode, fn, bWriteLock) {\n var _this = this;\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n if (this._locked()) {\n return new DexiePromise(function (resolve, reject) {\n _this._blockedFuncs.push([function () {\n _this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n }\n else if (bWriteLock) {\n return newScope(function () {\n var p = new DexiePromise(function (resolve, reject) {\n _this._lock();\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p.finally(function () { return _this._unlock(); });\n p._lib = true;\n return p;\n });\n }\n else {\n var p = new DexiePromise(function (resolve, reject) {\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n };\n Transaction.prototype._root = function () {\n return this.parent ? this.parent._root() : this;\n };\n Transaction.prototype.waitFor = function (promiseLike) {\n var root = this._root();\n var promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n root._waitingFor = root._waitingFor.then(function () { return promise; });\n }\n else {\n root._waitingFor = promise;\n root._waitingQueue = [];\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount;\n while (root._waitingQueue.length)\n (root._waitingQueue.shift())();\n if (root._waitingFor)\n store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise(function (resolve, reject) {\n promise.then(function (res) { return root._waitingQueue.push(wrap(resolve.bind(null, res))); }, function (err) { return root._waitingQueue.push(wrap(reject.bind(null, err))); }).finally(function () {\n if (root._waitingFor === currentWaitPromise) {\n root._waitingFor = null;\n }\n });\n });\n };\n Transaction.prototype.abort = function () {\n if (this.active) {\n this.active = false;\n if (this.idbtrans)\n this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n };\n Transaction.prototype.table = function (tableName) {\n var memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n var tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n }\n var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n };\n return Transaction;\n}());\n\nfunction createTransactionConstructor(db) {\n return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {\n var _this = this;\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0;\n this._completion = new DexiePromise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n this._completion.then(function () {\n _this.active = false;\n _this.on.complete.fire();\n }, function (e) {\n var wasActive = _this.active;\n _this.active = false;\n _this.on.error.fire(e);\n _this.parent ?\n _this.parent._reject(e) :\n wasActive && _this.idbtrans && _this.idbtrans.abort();\n return rejection(e);\n });\n });\n}\n\nfunction createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n return {\n name: name,\n keyPath: keyPath,\n unique: unique,\n multi: multi,\n auto: auto,\n compound: compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n };\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\nfunction createTableSchema(name, primKey, indexes) {\n return {\n name: name,\n primKey: primKey,\n indexes: indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, function (index) { return [index.name, index]; })\n };\n}\n\nfunction safariMultiStoreFix(storeNames) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\nvar getMaxKey = function (IdbKeyRange) {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = function () { return [[]]; };\n return [[]];\n }\n catch (e) {\n getMaxKey = function () { return maxString; };\n return maxString;\n }\n};\n\nfunction getKeyExtractor(keyPath) {\n if (keyPath == null) {\n return function () { return undefined; };\n }\n else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\nfunction getSinglePathKeyExtractor(keyPath) {\n var split = keyPath.split('.');\n if (split.length === 1) {\n return function (obj) { return obj[keyPath]; };\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\n\nfunction arrayify(arrayLike) {\n return [].slice.call(arrayLike);\n}\nvar _id_counter = 0;\nfunction getKeyPathAlias(keyPath) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n \"[\" + keyPath.join('+') + \"]\";\n}\nfunction createDBCore(db, IdbKeyRange, tmpTrans) {\n function extractSchema(db, trans) {\n var tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(function (table) { return trans.objectStore(table); }).map(function (store) {\n var keyPath = store.keyPath, autoIncrement = store.autoIncrement;\n var compound = isArray(keyPath);\n var outbound = keyPath == null;\n var indexByKeyPath = {};\n var result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound: outbound,\n compound: compound,\n keyPath: keyPath,\n autoIncrement: autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n },\n indexes: arrayify(store.indexNames).map(function (indexName) { return store.index(indexName); })\n .map(function (index) {\n var name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;\n var compound = isArray(keyPath);\n var result = {\n name: name,\n compound: compound,\n keyPath: keyPath,\n unique: unique,\n multiEntry: multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: function (keyPath) { return indexByKeyPath[getKeyPathAlias(keyPath)]; }\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n };\n }\n function makeIDBKeyRange(range) {\n if (range.type === 3 )\n return null;\n if (range.type === 4 )\n throw new Error(\"Cannot convert never type to IDBKeyRange\");\n var lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;\n var idbRange = lower === undefined ?\n upper === undefined ?\n null :\n IdbKeyRange.upperBound(upper, !!upperOpen) :\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) :\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n function createDbCoreTable(tableSchema) {\n var tableName = tableSchema.name;\n function mutate(_a) {\n var trans = _a.trans, type = _a.type, keys = _a.keys, values = _a.values, range = _a.range;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var outbound = store.keyPath == null;\n var isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error(\"Invalid operation type: \" + type);\n var length = (keys || values || { length: 1 }).length;\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined });\n var req;\n var reqs = [];\n var failures = [];\n var numFailures = 0;\n var errorHandler = function (event) {\n ++numFailures;\n preventDefault(event);\n };\n if (type === 'deleteRange') {\n if (range.type === 4 )\n return resolve({ numFailures: numFailures, failures: failures, results: [], lastResult: undefined });\n if (range.type === 3 )\n reqs.push(req = store.clear());\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n }\n else {\n var _a = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null], args1 = _a[0], args2 = _a[1];\n if (isAddOrPut) {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = (args2 && args2[i] !== undefined ?\n store[type](args1[i], args2[i]) :\n store[type](args1[i])));\n req.onerror = errorHandler;\n }\n }\n else {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = store[type](args1[i]));\n req.onerror = errorHandler;\n }\n }\n }\n var done = function (event) {\n var lastResult = event.target.result;\n reqs.forEach(function (req, i) { return req.error != null && (failures[i] = req.error); });\n resolve({\n numFailures: numFailures,\n failures: failures,\n results: type === \"delete\" ? keys : reqs.map(function (req) { return req.result; }),\n lastResult: lastResult\n });\n };\n req.onerror = function (event) {\n errorHandler(event);\n done(event);\n };\n req.onsuccess = done;\n });\n }\n function openCursor(_a) {\n var trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n var direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n var req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(function (ev) {\n var cursor = req.result;\n if (!cursor) {\n resolve(null);\n return;\n }\n cursor.___id = ++_id_counter;\n cursor.done = false;\n var _cursorContinue = cursor.continue.bind(cursor);\n var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey)\n _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n var _cursorAdvance = cursor.advance.bind(cursor);\n var doThrowCursorIsNotStarted = function () { throw new Error(\"Cursor not started\"); };\n var doThrowCursorIsStopped = function () { throw new Error(\"Cursor not stopped\"); };\n cursor.trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function () {\n var _this = this;\n var gotOne = 1;\n return this.start(function () { return gotOne-- ? _this.continue() : _this.stop(); }).then(function () { return _this; });\n };\n cursor.start = function (callback) {\n var iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = function (value) {\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n var guardedCallback = function () {\n if (req.result) {\n try {\n callback();\n }\n catch (err) {\n cursor.fail(err);\n }\n }\n else {\n cursor.done = true;\n cursor.start = function () { throw new Error(\"Cursor behind last entry\"); };\n cursor.stop();\n }\n };\n req.onsuccess = wrap(function (ev) {\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject);\n });\n }\n function query(hasGetAll) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var trans = request.trans, values = request.values, limit = request.limit, query = request.query;\n var nonInfinitLimit = limit === Infinity ? undefined : limit;\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0)\n return resolve({ result: [] });\n if (hasGetAll) {\n var req = values ?\n source.getAll(idbKeyRange, nonInfinitLimit) :\n source.getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = function (event) { return resolve({ result: event.target.result }); };\n req.onerror = eventRejectHandler(reject);\n }\n else {\n var count_1 = 0;\n var req_1 = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange);\n var result_1 = [];\n req_1.onsuccess = function (event) {\n var cursor = req_1.result;\n if (!cursor)\n return resolve({ result: result_1 });\n result_1.push(values ? cursor.value : cursor.primaryKey);\n if (++count_1 === limit)\n return resolve({ result: result_1 });\n cursor.continue();\n };\n req_1.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n return {\n name: tableName,\n schema: tableSchema,\n mutate: mutate,\n getMany: function (_a) {\n var trans = _a.trans, keys = _a.keys;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var length = keys.length;\n var result = new Array(length);\n var keyCount = 0;\n var callbackCount = 0;\n var req;\n var successHandler = function (event) {\n var req = event.target;\n if ((result[req._pos] = req.result) != null)\n ;\n if (++callbackCount === keyCount)\n resolve(result);\n };\n var errorHandler = eventRejectHandler(reject);\n for (var i = 0; i < length; ++i) {\n var key = keys[i];\n if (key != null) {\n req = store.get(keys[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0)\n resolve(result);\n });\n },\n get: function (_a) {\n var trans = _a.trans, key = _a.key;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var req = store.get(key);\n req.onsuccess = function (event) { return resolve(event.target.result); };\n req.onerror = eventRejectHandler(reject);\n });\n },\n query: query(hasGetAll),\n openCursor: openCursor,\n count: function (_a) {\n var query = _a.query, trans = _a.trans;\n var index = query.index, range = query.range;\n return new Promise(function (resolve, reject) {\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n var req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(function (ev) { return resolve(ev.target.result); });\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n var _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;\n var tables = schema.tables.map(function (tableSchema) { return createDbCoreTable(tableSchema); });\n var tableMap = {};\n tables.forEach(function (table) { return tableMap[table.name] = table; });\n return {\n stack: \"dbcore\",\n transaction: db.transaction.bind(db),\n table: function (name) {\n var result = tableMap[name];\n if (!result)\n throw new Error(\"Table '\" + name + \"' not found\");\n return tableMap[name];\n },\n MIN_KEY: -Infinity,\n MAX_KEY: getMaxKey(IdbKeyRange),\n schema: schema\n };\n}\n\nfunction createMiddlewareStack(stackImpl, middlewares) {\n return middlewares.reduce(function (down, _a) {\n var create = _a.create;\n return (__assign(__assign({}, down), create(down)));\n }, stackImpl);\n}\nfunction createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n var IDBKeyRange = _a.IDBKeyRange; _a.indexedDB;\n var dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);\n return {\n dbcore: dbcore\n };\n}\nfunction generateMiddlewareStacks(_a, tmpTrans) {\n var db = _a._novip;\n var idbdb = tmpTrans.db;\n var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore;\n db.tables.forEach(function (table) {\n var tableName = table.name;\n if (db.core.schema.tables.some(function (tbl) { return tbl.name === tableName; })) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n\nfunction setApiOnPlace(_a, objs, tableNames, dbschema) {\n var db = _a._novip;\n tableNames.forEach(function (tableName) {\n var schema = dbschema[tableName];\n objs.forEach(function (obj) {\n var propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n setProp(obj, tableName, {\n get: function () { return this.table(tableName); },\n set: function (value) {\n defineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });\n }\n });\n }\n else {\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\nfunction removeTablesApi(_a, objs) {\n var db = _a._novip;\n objs.forEach(function (obj) {\n for (var key in obj) {\n if (obj[key] instanceof db.Table)\n delete obj[key];\n }\n });\n}\nfunction lowerVersionFirst(a, b) {\n return a._cfg.version - b._cfg.version;\n}\nfunction runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n var globalSchema = db._dbSchema;\n var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n var rejectTransaction = trans._reject.bind(trans);\n var transless = PSD.transless || PSD;\n newScope(function () {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n keys(globalSchema).forEach(function (tableName) {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n DexiePromise.follow(function () { return db.on.populate.fire(trans); }).catch(rejectTransaction);\n }\n else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\nfunction updateTablesAndIndexes(_a, oldVersion, trans, idbUpgradeTrans) {\n var db = _a._novip;\n var queue = [];\n var versions = db._versions;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n var anyContentUpgraderHasRun = false;\n var versToRun = versions.filter(function (v) { return v._cfg.version >= oldVersion; });\n versToRun.forEach(function (version) {\n queue.push(function () {\n var oldSchema = globalSchema;\n var newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n globalSchema = db._dbSchema = newSchema;\n var diff = getSchemaDiff(oldSchema, newSchema);\n diff.add.forEach(function (tuple) {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n diff.change.forEach(function (change) {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n }\n else {\n var store_1 = idbUpgradeTrans.objectStore(change.name);\n change.add.forEach(function (idx) { return addIndex(store_1, idx); });\n change.change.forEach(function (idx) {\n store_1.deleteIndex(idx.name);\n addIndex(store_1, idx);\n });\n change.del.forEach(function (idxName) { return store_1.deleteIndex(idxName); });\n }\n });\n var contentUpgrade = version._cfg.contentUpgrade;\n if (contentUpgrade && version._cfg.version > oldVersion) {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {};\n anyContentUpgraderHasRun = true;\n var upgradeSchema_1 = shallowClone(newSchema);\n diff.del.forEach(function (table) {\n upgradeSchema_1[table] = oldSchema[table];\n });\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n trans.schema = upgradeSchema_1;\n var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync_1) {\n incrementExpectedAwaits();\n }\n var returnValue_1;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue_1 = contentUpgrade(trans);\n if (returnValue_1) {\n if (contentUpgradeIsAsync_1) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue_1.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue_1 && typeof returnValue_1.then === 'function' ?\n DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () { return returnValue_1; }));\n }\n });\n queue.push(function (idbtrans) {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) {\n var newSchema = version._cfg.dbschema;\n deleteRemovedTables(newSchema, idbtrans);\n }\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n function runQueue() {\n return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n DexiePromise.resolve();\n }\n return runQueue().then(function () {\n createMissingTables(globalSchema, idbUpgradeTrans);\n });\n}\nfunction getSchemaDiff(oldSchema, newSchema) {\n var diff = {\n del: [],\n add: [],\n change: []\n };\n var table;\n for (table in oldSchema) {\n if (!newSchema[table])\n diff.del.push(table);\n }\n for (table in newSchema) {\n var oldDef = oldSchema[table], newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n }\n else {\n var change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if ((\n '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) ||\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge))\n {\n change.recreate = true;\n diff.change.push(change);\n }\n else {\n var oldIndexes = oldDef.idxByName;\n var newIndexes = newDef.idxByName;\n var idxName = void 0;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName])\n change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n var oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];\n if (!oldIdx)\n change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src)\n change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\nfunction createTable(idbtrans, tableName, primKey, indexes) {\n var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto });\n indexes.forEach(function (idx) { return addIndex(store, idx); });\n return store;\n}\nfunction createMissingTables(newSchema, idbtrans) {\n keys(newSchema).forEach(function (tableName) {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\nfunction deleteRemovedTables(newSchema, idbtrans) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(function (storeName) {\n return newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);\n });\n}\nfunction addIndex(store, idx) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\nfunction buildGlobalSchema(db, idbdb, tmpTrans) {\n var globalSchema = {};\n var dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(function (storeName) {\n var store = tmpTrans.objectStore(storeName);\n var keyPath = store.keyPath;\n var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n var indexes = [];\n for (var j = 0; j < store.indexNames.length; ++j) {\n var idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\nfunction readGlobalSchema(_a, idbdb, tmpTrans) {\n var db = _a._novip;\n db.verno = idbdb.version / 10;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\nfunction verifyInstalledSchema(db, tmpTrans) {\n var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n var diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(function (ch) { return ch.add.length || ch.change.length; }));\n}\nfunction adjustToExistingIndexNames(_a, schema, idbtrans) {\n var db = _a._novip;\n var storeNames = idbtrans.db.objectStoreNames;\n for (var i = 0; i < storeNames.length; ++i) {\n var storeName = storeNames[i];\n var store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n for (var j = 0; j < store.indexNames.length; ++j) {\n var indexName = store.indexNames[j];\n var keyPath = store.index(indexName).keyPath;\n var dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n var indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n db._hasGetAll = false;\n }\n}\nfunction parseIndexSyntax(primKeyAndIndexes) {\n return primKeyAndIndexes.split(',').map(function (index, indexNum) {\n index = index.trim();\n var name = index.replace(/([&*]|\\+\\+)/g, \"\");\n var keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n return createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n });\n}\n\nvar Version = (function () {\n function Version() {\n }\n Version.prototype._parseStoresSpec = function (stores, outSchema) {\n keys(stores).forEach(function (tableName) {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi)\n throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(function (idx) {\n if (idx.auto)\n throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath)\n throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n };\n Version.prototype.stores = function (stores) {\n var db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n var versions = db._versions;\n var storesSpec = {};\n var dbschema = {};\n versions.forEach(function (version) {\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n db._dbSchema = dbschema;\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n };\n Version.prototype.upgrade = function (upgradeFunction) {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n };\n return Version;\n}());\n\nfunction createVersionConstructor(db) {\n return makeClassConstructor(Version.prototype, function Version(versionNumber) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n}\n\nfunction getDbNamesTable(indexedDB, IDBKeyRange) {\n var dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie$1(DBNAMES_DB, {\n addons: [],\n indexedDB: indexedDB,\n IDBKeyRange: IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\");\n}\nfunction hasDatabasesNative(indexedDB) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\nfunction getDatabaseNames(_a) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then(function (infos) {\n return infos\n .map(function (info) { return info.name; })\n .filter(function (name) { return name !== DBNAMES_DB; });\n })\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\nfunction _onDatabaseCreated(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({ name: name }).catch(nop);\n}\nfunction _onDatabaseDeleted(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n\nfunction vip(fn) {\n return newScope(function () {\n PSD.letThrough = true;\n return fn();\n });\n}\n\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nfunction dexieOpen(db) {\n var state = db._state;\n var indexedDB = db._deps.indexedDB;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(function () { return state.dbOpenError ?\n rejection(state.dbOpenError) :\n db; });\n debug && (state.openCanceller._stackHolder = getErrorWithStack());\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n var openCanceller = state.openCanceller;\n function throwIfCancelled() {\n if (state.openCanceller !== openCanceller)\n throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n var resolveDbReady = state.dbReadyResolve,\n upgradeTransaction = null, wasCreated = false;\n return DexiePromise.race([openCanceller, (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(function () { return new DexiePromise(function (resolve, reject) {\n throwIfCancelled();\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n var dbName = db.name;\n var req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req)\n throw new exceptions.MissingAPI();\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap(function (e) {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) {\n req.onerror = preventDefault;\n upgradeTransaction.abort();\n req.result.close();\n var delreq = indexedDB.deleteDatabase(dbName);\n delreq.onsuccess = delreq.onerror = wrap(function () {\n reject(new exceptions.NoSuchDatabase(\"Database \" + dbName + \" doesnt exist\"));\n });\n }\n else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n wasCreated = oldVer < 1;\n db._novip.idbdb = req.result;\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n req.onsuccess = wrap(function () {\n upgradeTransaction = null;\n var idbdb = db._novip.idbdb = req.result;\n var objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0)\n try {\n var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema)\n readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\");\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n }\n catch (e) {\n }\n connections.push(db);\n idbdb.onversionchange = wrap(function (ev) {\n state.vcFired = true;\n db.on(\"versionchange\").fire(ev);\n });\n idbdb.onclose = wrap(function (ev) {\n db.on(\"close\").fire(ev);\n });\n if (wasCreated)\n _onDatabaseCreated(db._deps, dbName);\n resolve();\n }, reject);\n }); })]).then(function () {\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return db.on.ready.fire(db.vip); })).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n var remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return remainders_1(db.vip); })).then(fireRemainders);\n }\n });\n }).finally(function () {\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }).then(function () {\n return db;\n }).catch(function (err) {\n state.dbOpenError = err;\n try {\n upgradeTransaction && upgradeTransaction.abort();\n }\n catch (_a) { }\n if (openCanceller === state.openCanceller) {\n db._close();\n }\n return rejection(err);\n }).finally(function () {\n state.openComplete = true;\n resolveDbReady();\n });\n}\n\nfunction awaitIterator(iterator) {\n var callNext = function (result) { return iterator.next(result); }, doThrow = function (error) { return iterator.throw(error); }, onSuccess = step(callNext), onError = step(doThrow);\n function step(getNext) {\n return function (val) {\n var next = getNext(val), value = next.value;\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n return step(callNext)();\n}\n\nfunction extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n var i = arguments.length;\n if (i < 2)\n throw new exceptions.InvalidArgument(\"Too few arguments\");\n var args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n scopeFunc = args.pop();\n var tables = flatten(args);\n return [mode, tables, scopeFunc];\n}\nfunction enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n return DexiePromise.resolve().then(function () {\n var transless = PSD.transless || PSD;\n var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n var zoneProps = {\n trans: trans,\n transless: transless\n };\n if (parentTransaction) {\n trans.idbtrans = parentTransaction.idbtrans;\n }\n else {\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return enterTransactionScope(db, mode, storeNames, null, scopeFunc); });\n }\n return rejection(ex);\n }\n }\n var scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var returnValue;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n DexiePromise.resolve(returnValue).then(function (x) { return trans.active ?\n x\n : rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")); })\n : promiseFollowed.then(function () { return returnValue; })).then(function (x) {\n if (parentTransaction)\n trans._resolve();\n return trans._completion.then(function () { return x; });\n }).catch(function (e) {\n trans._reject(e);\n return rejection(e);\n });\n });\n}\n\nfunction pad(a, value, count) {\n var result = isArray(a) ? a.slice() : [a];\n for (var i = 0; i < count; ++i)\n result.push(value);\n return result;\n}\nfunction createVirtualIndexMiddleware(down) {\n return __assign(__assign({}, down), { table: function (tableName) {\n var table = down.table(tableName);\n var schema = table.schema;\n var indexLookup = {};\n var allVirtualIndexes = [];\n function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n var keyPathAlias = getKeyPathAlias(keyPath);\n var indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n var isVirtual = keyTail > 0;\n var virtualIndex = __assign(__assign({}, lowLevelIndex), { isVirtual: isVirtual, keyTail: keyTail, keyLength: keyLength, extractKey: getKeyExtractor(keyPath), unique: !isVirtual && lowLevelIndex.unique });\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n var virtualKeyPath = keyLength === 2 ?\n keyPath[0] :\n keyPath.slice(0, keyLength - 1);\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort(function (a, b) { return a.keyTail - b.keyTail; });\n return virtualIndex;\n }\n var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n var index = _a[_i];\n addVirtualIndexes(index.keyPath, 0, index);\n }\n function findBestIndex(keyPath) {\n var result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n function translateRange(range, keyTail) {\n return {\n type: range.type === 1 ?\n 2 :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true,\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true\n };\n }\n function translateRequest(req) {\n var index = req.query.index;\n return index.isVirtual ? __assign(__assign({}, req), { query: {\n index: index,\n range: translateRange(req.query.range, index.keyTail)\n } }) : req;\n }\n var result = __assign(__assign({}, table), { schema: __assign(__assign({}, schema), { primaryKey: primaryKey, indexes: allVirtualIndexes, getIndexByKeyPath: findBestIndex }), count: function (req) {\n return table.count(translateRequest(req));\n }, query: function (req) {\n return table.query(translateRequest(req));\n }, openCursor: function (req) {\n var _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;\n if (!isVirtual)\n return table.openCursor(req);\n function createVirtualCursor(cursor) {\n function _continue(key) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)) :\n cursor.continue();\n }\n var virtualCursor = Object.create(cursor, {\n continue: { value: _continue },\n continuePrimaryKey: {\n value: function (key, primaryKey) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get: function () {\n return cursor.primaryKey;\n }\n },\n key: {\n get: function () {\n var key = cursor.key;\n return keyLength === 1 ?\n key[0] :\n key.slice(0, keyLength);\n }\n },\n value: {\n get: function () {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n return table.openCursor(translateRequest(req))\n .then(function (cursor) { return cursor && createVirtualCursor(cursor); });\n } });\n return result;\n } });\n}\nvar virtualIndexMiddleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\nfunction getObjectDiff(a, b, rv, prfx) {\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach(function (prop) {\n if (!hasOwn(b, prop)) {\n rv[prfx + prop] = undefined;\n }\n else {\n var ap = a[prop], bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n var apTypeName = toStringTag(ap);\n var bpTypeName = toStringTag(bp);\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop];\n }\n else if (apTypeName === 'Object') {\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n }\n else if (ap !== bp) {\n rv[prfx + prop] = b[prop];\n }\n }\n else if (ap !== bp)\n rv[prfx + prop] = b[prop];\n }\n });\n keys(b).forEach(function (prop) {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop];\n }\n });\n return rv;\n}\n\nfunction getEffectiveKeys(primaryKey, req) {\n if (req.type === 'delete')\n return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey);\n}\n\nvar hooksMiddleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: function (downCore) { return (__assign(__assign({}, downCore), { table: function (tableName) {\n var downTable = downCore.table(tableName);\n var primaryKey = downTable.schema.primaryKey;\n var tableMiddleware = __assign(__assign({}, downTable), { mutate: function (req) {\n var dxTrans = PSD.trans;\n var _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'delete':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'deleteRange':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return deleteRange(req); }, true);\n }\n return downTable.mutate(req);\n function addPutOrDelete(req) {\n var dxTrans = PSD.trans;\n var keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys)\n throw new Error(\"Keys missing\");\n req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), { keys: keys }) : __assign({}, req);\n if (req.type !== 'delete')\n req.values = __spreadArray([], req.values, true);\n if (req.keys)\n req.keys = __spreadArray([], req.keys, true);\n return getExistingValues(downTable, req, keys).then(function (existingValues) {\n var contexts = keys.map(function (key, i) {\n var existingValue = existingValues[i];\n var ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n }\n else if (req.type === 'add' || existingValue === undefined) {\n var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n }\n else {\n var objectDiff = getObjectDiff(existingValue, req.values[i]);\n var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges_1) {\n var requestedValue_1 = req.values[i];\n Object.keys(additionalChanges_1).forEach(function (keyPath) {\n if (hasOwn(requestedValue_1, keyPath)) {\n requestedValue_1[keyPath] = additionalChanges_1[keyPath];\n }\n else {\n setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(function (_a) {\n var failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;\n for (var i = 0; i < keys.length; ++i) {\n var primKey = results ? results[i] : keys[i];\n var ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n }\n else {\n ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ?\n req.values[i] :\n primKey\n );\n }\n }\n return { failures: failures, results: results, numFailures: numFailures, lastResult: lastResult };\n }).catch(function (error) {\n contexts.forEach(function (ctx) { return ctx.onerror && ctx.onerror(error); });\n return Promise.reject(error);\n });\n });\n }\n function deleteRange(req) {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n function deleteNextChunk(trans, range, limit) {\n return downTable.query({ trans: trans, values: false, query: { index: primaryKey, range: range }, limit: limit })\n .then(function (_a) {\n var result = _a.result;\n return addPutOrDelete({ type: 'delete', keys: result, trans: trans }).then(function (res) {\n if (res.numFailures > 0)\n return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return { failures: [], numFailures: 0, lastResult: undefined };\n }\n else {\n return deleteNextChunk(trans, __assign(__assign({}, range), { lower: result[result.length - 1], lowerOpen: true }), limit);\n }\n });\n });\n }\n } });\n return tableMiddleware;\n } })); }\n};\nfunction getExistingValues(table, req, effectiveKeys) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n\nfunction getFromTransactionCache(keys, cache, clone) {\n try {\n if (!cache)\n return null;\n if (cache.keys.length < keys.length)\n return null;\n var result = [];\n for (var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0)\n continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n return result.length === keys.length ? result : null;\n }\n catch (_a) {\n return null;\n }\n}\nvar cacheExistingValuesMiddleware = {\n stack: \"dbcore\",\n level: -1,\n create: function (core) {\n return {\n table: function (tableName) {\n var table = core.table(tableName);\n return __assign(__assign({}, table), { getMany: function (req) {\n if (!req.cache) {\n return table.getMany(req);\n }\n var cachedResult = getFromTransactionCache(req.keys, req.trans[\"_cache\"], req.cache === \"clone\");\n if (cachedResult) {\n return DexiePromise.resolve(cachedResult);\n }\n return table.getMany(req).then(function (res) {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n }, mutate: function (req) {\n if (req.type !== \"add\")\n req.trans[\"_cache\"] = null;\n return table.mutate(req);\n } });\n },\n };\n },\n};\n\nvar _a;\nfunction isEmptyRange(node) {\n return !(\"from\" in node);\n}\nvar RangeSet = function (fromOrTree, to) {\n if (this) {\n extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });\n }\n else {\n var rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n};\nprops(RangeSet.prototype, (_a = {\n add: function (rangeSet) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey: function (key) {\n addRange(this, key, key);\n return this;\n },\n addKeys: function (keys) {\n var _this = this;\n keys.forEach(function (key) { return addRange(_this, key, key); });\n return this;\n }\n },\n _a[iteratorSymbol] = function () {\n return getRangeSetIterator(this);\n },\n _a));\nfunction addRange(target, from, to) {\n var diff = cmp(from, to);\n if (isNaN(diff))\n return;\n if (diff > 0)\n throw RangeError();\n if (isEmptyRange(target))\n return extend(target, { from: from, to: to, d: 1 });\n var left = target.l;\n var right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null;\n target.d = right ? right.d + 1 : 1;\n }\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null;\n target.d = target.l ? target.l.d + 1 : 1;\n }\n var rightWasCutOff = !target.r;\n if (left && !target.l) {\n mergeRanges(target, left);\n }\n if (right && rightWasCutOff) {\n mergeRanges(target, right);\n }\n}\nfunction mergeRanges(target, newSet) {\n function _addRangeSet(target, _a) {\n var from = _a.from, to = _a.to, l = _a.l, r = _a.r;\n addRange(target, from, to);\n if (l)\n _addRangeSet(target, l);\n if (r)\n _addRangeSet(target, r);\n }\n if (!isEmptyRange(newSet))\n _addRangeSet(target, newSet);\n}\nfunction rangesOverlap(rangeSet1, rangeSet2) {\n var i1 = getRangeSetIterator(rangeSet2);\n var nextResult1 = i1.next();\n if (nextResult1.done)\n return false;\n var a = nextResult1.value;\n var i2 = getRangeSetIterator(rangeSet1);\n var nextResult2 = i2.next(a.from);\n var b = nextResult2.value;\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)\n return true;\n cmp(a.from, b.from) < 0\n ? (a = (nextResult1 = i1.next(b.from)).value)\n : (b = (nextResult2 = i2.next(a.from)).value);\n }\n return false;\n}\nfunction getRangeSetIterator(node) {\n var state = isEmptyRange(node) ? null : { s: 0, n: node };\n return {\n next: function (key) {\n var keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n }\n else {\n while (state.n.l)\n state = { up: state, n: state.n.l, s: 1 };\n }\n case 1:\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n if (state.n.r) {\n state.s = 3;\n state = { up: state, n: state.n.r, s: 0 };\n continue;\n }\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n };\n}\nfunction rebalance(target) {\n var _a, _b;\n var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);\n var r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n var l = r === \"r\" ? \"l\" : \"r\";\n var rootClone = __assign({}, target);\n var oldRootRight = target[r];\n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\nfunction computeDepth(_a) {\n var r = _a.r, l = _a.l;\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n\nvar observabilityMiddleware = {\n stack: \"dbcore\",\n level: 0,\n create: function (core) {\n var dbName = core.schema.name;\n var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n return __assign(__assign({}, core), { table: function (tableName) {\n var table = core.table(tableName);\n var schema = table.schema;\n var primaryKey = schema.primaryKey;\n var extractKey = primaryKey.extractKey, outbound = primaryKey.outbound;\n var tableClone = __assign(__assign({}, table), { mutate: function (req) {\n var trans = req.trans;\n var mutatedParts = trans.mutatedParts || (trans.mutatedParts = {});\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet()));\n };\n var pkRangeSet = getRangeSet(\"\");\n var delsRangeSet = getRangeSet(\":dels\");\n var type = req.type;\n var _a = req.type === \"deleteRange\"\n ? [req.range]\n : req.type === \"delete\"\n ? [req.keys]\n : req.values.length < 50\n ? [[], req.values]\n : [], keys = _a[0], newObjs = _a[1];\n var oldCache = req.trans[\"_cache\"];\n return table.mutate(req).then(function (res) {\n if (isArray(keys)) {\n if (type !== \"delete\")\n keys = res.results;\n pkRangeSet.addKeys(keys);\n var oldObjs = getFromTransactionCache(keys, oldCache);\n if (!oldObjs && type !== \"add\") {\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n }\n else if (keys) {\n var range = { from: keys.lower, to: keys.upper };\n delsRangeSet.add(range);\n pkRangeSet.add(range);\n }\n else {\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(function (idx) { return getRangeSet(idx.name).add(FULL_RANGE); });\n }\n return res;\n });\n } });\n var getRange = function (_a) {\n var _b, _c;\n var _d = _a.query, index = _d.index, range = _d.range;\n return [\n index,\n new RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY),\n ];\n };\n var readSubscribers = {\n get: function (req) { return [primaryKey, new RangeSet(req.key)]; },\n getMany: function (req) { return [primaryKey, new RangeSet().addKeys(req.keys)]; },\n count: getRange,\n query: getRange,\n openCursor: getRange,\n };\n keys(readSubscribers).forEach(function (method) {\n tableClone[method] = function (req) {\n var subscr = PSD.subscr;\n if (subscr) {\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (subscr[part] ||\n (subscr[part] = new RangeSet()));\n };\n var pkRangeSet_1 = getRangeSet(\"\");\n var delsRangeSet_1 = getRangeSet(\":dels\");\n var _a = readSubscribers[method](req), queriedIndex = _a[0], queriedRanges = _a[1];\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n if (!queriedIndex.isPrimaryKey) {\n if (method === \"count\") {\n delsRangeSet_1.add(FULL_RANGE);\n }\n else {\n var keysPromise_1 = method === \"query\" &&\n outbound &&\n req.values &&\n table.query(__assign(__assign({}, req), { values: false }));\n return table[method].apply(this, arguments).then(function (res) {\n if (method === \"query\") {\n if (outbound && req.values) {\n return keysPromise_1.then(function (_a) {\n var resultingKeys = _a.result;\n pkRangeSet_1.addKeys(resultingKeys);\n return res;\n });\n }\n var pKeys = req.values\n ? res.result.map(extractKey)\n : res.result;\n if (req.values) {\n pkRangeSet_1.addKeys(pKeys);\n }\n else {\n delsRangeSet_1.addKeys(pKeys);\n }\n }\n else if (method === \"openCursor\") {\n var cursor_1 = res;\n var wantValues_1 = req.values;\n return (cursor_1 &&\n Object.create(cursor_1, {\n key: {\n get: function () {\n delsRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.key;\n },\n },\n primaryKey: {\n get: function () {\n var pkey = cursor_1.primaryKey;\n delsRangeSet_1.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get: function () {\n wantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.value;\n },\n },\n }));\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n } });\n },\n};\nfunction trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {\n function addAffectedIndex(ix) {\n var rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n var addKeyOrKeys = function (key) { return ix.multiEntry && isArray(key)\n ? key.forEach(function (key) { return rangeSet.addKey(key); })\n : rangeSet.addKey(key); };\n (oldObjs || newObjs).forEach(function (_, i) {\n var oldKey = oldObjs && extractKey(oldObjs[i]);\n var newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n if (oldKey != null)\n addKeyOrKeys(oldKey);\n if (newKey != null)\n addKeyOrKeys(newKey);\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n\nvar Dexie$1 = (function () {\n function Dexie(name, options) {\n var _this = this;\n this._middlewares = {};\n this.verno = 0;\n var deps = Dexie.dependencies;\n this._options = options = __assign({\n addons: Dexie.addons, autoOpen: true,\n indexedDB: deps.indexedDB, IDBKeyRange: deps.IDBKeyRange }, options);\n this._deps = {\n indexedDB: options.indexedDB,\n IDBKeyRange: options.IDBKeyRange\n };\n var addons = options.addons;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n var state = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null,\n cancelOpen: nop,\n openCanceller: null,\n autoSchema: true,\n PR1398_maxLoop: 3\n };\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] });\n this.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n return function (subscriber, bSticky) {\n Dexie.vip(function () {\n var state = _this._state;\n if (state.openComplete) {\n if (!state.dbOpenError)\n DexiePromise.resolve().then(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else if (state.onReadyBeingFired) {\n state.onReadyBeingFired.push(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else {\n subscribe(subscriber);\n var db_1 = _this;\n if (!bSticky)\n subscribe(function unsubscribe() {\n db_1.on.ready.unsubscribe(subscriber);\n db_1.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n };\n });\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n this.on(\"versionchange\", function (ev) {\n if (ev.newVersion > 0)\n console.warn(\"Another connection wants to upgrade database '\" + _this.name + \"'. Closing db now to resume the upgrade.\");\n else\n console.warn(\"Another connection wants to delete database '\" + _this.name + \"'. Closing db now to resume the delete request.\");\n _this.close();\n });\n this.on(\"blocked\", function (ev) {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(\"Dexie.delete('\" + _this.name + \"') was blocked\");\n else\n console.warn(\"Upgrade '\" + _this.name + \"' blocked by other connection holding version \" + ev.oldVersion / 10);\n });\n this._maxKey = getMaxKey(options.IDBKeyRange);\n this._createTransaction = function (mode, storeNames, dbschema, parentTransaction) { return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction); };\n this._fireOnBlocked = function (ev) {\n _this.on(\"blocked\").fire(ev);\n connections\n .filter(function (c) { return c.name === _this.name && c !== _this && !c._state.vcFired; })\n .map(function (c) { return c.on(\"versionchange\").fire(ev); });\n };\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n this.use(observabilityMiddleware);\n this.use(cacheExistingValuesMiddleware);\n this.vip = Object.create(this, { _vip: { value: true } });\n addons.forEach(function (addon) { return addon(_this); });\n }\n Dexie.prototype.version = function (versionNumber) {\n if (isNaN(versionNumber) || versionNumber < 0.1)\n throw new exceptions.Type(\"Given version is not a positive number\");\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n var versions = this._versions;\n var versionInstance = versions.filter(function (v) { return v._cfg.version === versionNumber; })[0];\n if (versionInstance)\n return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({});\n this._state.autoSchema = false;\n return versionInstance;\n };\n Dexie.prototype._whenReady = function (fn) {\n var _this = this;\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise(function (resolve, reject) {\n if (_this._state.openComplete) {\n return reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));\n }\n if (!_this._state.isBeingOpened) {\n if (!_this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n _this.open().catch(nop);\n }\n _this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n };\n Dexie.prototype.use = function (_a) {\n var stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;\n if (name)\n this.unuse({ stack: stack, name: name });\n var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({ stack: stack, create: create, level: level == null ? 10 : level, name: name });\n middlewares.sort(function (a, b) { return a.level - b.level; });\n return this;\n };\n Dexie.prototype.unuse = function (_a) {\n var stack = _a.stack, name = _a.name, create = _a.create;\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n return create ? mw.create !== create :\n name ? mw.name !== name :\n false;\n });\n }\n return this;\n };\n Dexie.prototype.open = function () {\n return dexieOpen(this);\n };\n Dexie.prototype._close = function () {\n var state = this._state;\n var idx = connections.indexOf(this);\n if (idx >= 0)\n connections.splice(idx, 1);\n if (this.idbdb) {\n try {\n this.idbdb.close();\n }\n catch (e) { }\n this._novip.idbdb = null;\n }\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n };\n Dexie.prototype.close = function () {\n this._close();\n var state = this._state;\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n };\n Dexie.prototype.delete = function () {\n var _this = this;\n var hasArguments = arguments.length > 0;\n var state = this._state;\n return new DexiePromise(function (resolve, reject) {\n var doDelete = function () {\n _this.close();\n var req = _this._deps.indexedDB.deleteDatabase(_this.name);\n req.onsuccess = wrap(function () {\n _onDatabaseDeleted(_this._deps, _this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = _this._fireOnBlocked;\n };\n if (hasArguments)\n throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n }\n else {\n doDelete();\n }\n });\n };\n Dexie.prototype.backendDB = function () {\n return this.idbdb;\n };\n Dexie.prototype.isOpen = function () {\n return this.idbdb !== null;\n };\n Dexie.prototype.hasBeenClosed = function () {\n var dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n };\n Dexie.prototype.hasFailed = function () {\n return this._state.dbOpenError !== null;\n };\n Dexie.prototype.dynamicallyOpened = function () {\n return this._state.autoSchema;\n };\n Object.defineProperty(Dexie.prototype, \"tables\", {\n get: function () {\n var _this = this;\n return keys(this._allTables).map(function (name) { return _this._allTables[name]; });\n },\n enumerable: false,\n configurable: true\n });\n Dexie.prototype.transaction = function () {\n var args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n };\n Dexie.prototype._transaction = function (mode, tables, scopeFunc) {\n var _this = this;\n var parentTransaction = PSD.trans;\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1)\n parentTransaction = null;\n var onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '');\n var idbMode, storeNames;\n try {\n storeNames = tables.map(function (table) {\n var storeName = table instanceof _this.Table ? table.name : table;\n if (typeof storeName !== 'string')\n throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n if (parentTransaction) {\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(function (storeName) {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n parentTransaction = null;\n }\n }\n }\n catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, function (_, reject) { reject(e); }) :\n rejection(e);\n }\n var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n usePSD(PSD.transless, function () { return _this._whenReady(enterTransaction); }) :\n this._whenReady(enterTransaction));\n };\n Dexie.prototype.table = function (tableName) {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(\"Table \" + tableName + \" does not exist\");\n }\n return this._allTables[tableName];\n };\n return Dexie;\n}());\n\nvar symbolObservable = typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\";\nvar Observable = (function () {\n function Observable(subscribe) {\n this._subscribe = subscribe;\n }\n Observable.prototype.subscribe = function (x, error, complete) {\n return this._subscribe(!x || typeof x === \"function\" ? { next: x, error: error, complete: complete } : x);\n };\n Observable.prototype[symbolObservable] = function () {\n return this;\n };\n return Observable;\n}());\n\nfunction extendObservabilitySet(target, newSet) {\n keys(newSet).forEach(function (part) {\n var rangeSet = target[part] || (target[part] = new RangeSet());\n mergeRanges(rangeSet, newSet[part]);\n });\n return target;\n}\n\nfunction liveQuery(querier) {\n return new Observable(function (observer) {\n var scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(subscr) {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var exec = function () { return newScope(querier, { subscr: subscr, trans: null }); };\n var rv = PSD.trans\n ?\n usePSD(PSD.transless, exec)\n : exec();\n if (scopeFuncIsAsync) {\n rv.then(decrementExpectedAwaits, decrementExpectedAwaits);\n }\n return rv;\n }\n var closed = false;\n var accumMuts = {};\n var currentObs = {};\n var subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: function () {\n closed = true;\n globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n observer.start && observer.start(subscription);\n var querying = false, startedListening = false;\n function shouldNotify() {\n return keys(currentObs).some(function (key) {\n return accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key]);\n });\n }\n var mutationListener = function (parts) {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n var doQuery = function () {\n if (querying || closed)\n return;\n accumMuts = {};\n var subscr = {};\n var ret = execute(subscr);\n if (!startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n querying = true;\n Promise.resolve(ret).then(function (result) {\n querying = false;\n if (closed)\n return;\n if (shouldNotify()) {\n doQuery();\n }\n else {\n accumMuts = {};\n currentObs = subscr;\n observer.next && observer.next(result);\n }\n }, function (err) {\n querying = false;\n observer.error && observer.error(err);\n subscription.unsubscribe();\n });\n };\n doQuery();\n return subscription;\n });\n}\n\nvar domDeps;\ntry {\n domDeps = {\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n}\ncatch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n\nvar Dexie = Dexie$1;\nprops(Dexie, __assign(__assign({}, fullNameExceptions), {\n delete: function (databaseName) {\n var db = new Dexie(databaseName, { addons: [] });\n return db.delete();\n },\n exists: function (name) {\n return new Dexie(name, { addons: [] }).open().then(function (db) {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', function () { return false; });\n },\n getDatabaseNames: function (cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n }\n catch (_a) {\n return rejection(new exceptions.MissingAPI());\n }\n },\n defineClass: function () {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n }, ignoreTransaction: function (scopeFunc) {\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) :\n scopeFunc();\n }, vip: vip, async: function (generatorFn) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n };\n }, spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n },\n currentTransaction: {\n get: function () { return PSD.trans || null; }\n }, waitFor: function (promiseOrFunction, optionalTimeout) {\n var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000);\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n Promise: DexiePromise,\n debug: {\n get: function () { return debug; },\n set: function (value) {\n setDebug(value, value === 'dexie' ? function () { return true; } : dexieStackFrameFilter);\n }\n },\n derive: derive, extend: extend, props: props, override: override,\n Events: Events, on: globalEvents, liveQuery: liveQuery, extendObservabilitySet: extendObservabilitySet,\n getByKeyPath: getByKeyPath, setByKeyPath: setByKeyPath, delByKeyPath: delByKeyPath, shallowClone: shallowClone, deepClone: deepClone, getObjectDiff: getObjectDiff, cmp: cmp, asap: asap$1,\n minKey: minKey,\n addons: [],\n connections: connections,\n errnames: errnames,\n dependencies: domDeps,\n semVer: DEXIE_VERSION, version: DEXIE_VERSION.split('.')\n .map(function (n) { return parseInt(n); })\n .reduce(function (p, c, i) { return p + (c / Math.pow(10, i * 2)); }) }));\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (updatedParts) {\n if (!propagatingLocally) {\n var event_1;\n if (isIEOrEdge) {\n event_1 = document.createEvent('CustomEvent');\n event_1.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts);\n }\n else {\n event_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n }\n propagatingLocally = true;\n dispatchEvent(event_1);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function (_a) {\n var detail = _a.detail;\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\nfunction propagateLocally(updateParts) {\n var wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n }\n finally {\n propagatingLocally = wasMe;\n }\n}\nvar propagatingLocally = false;\n\nif (typeof BroadcastChannel !== 'undefined') {\n var bc_1 = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n if (!propagatingLocally) {\n bc_1.postMessage(changedParts);\n }\n });\n bc_1.onmessage = function (ev) {\n if (ev.data)\n propagateLocally(ev.data);\n };\n}\nelse if (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n try {\n if (!propagatingLocally) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME, JSON.stringify({\n trig: Math.random(),\n changedParts: changedParts,\n }));\n }\n if (typeof self['clients'] === 'object') {\n __spreadArray([], self['clients'].matchAll({ includeUncontrolled: true }), true).forEach(function (client) {\n return client.postMessage({\n type: STORAGE_MUTATED_DOM_EVENT_NAME,\n changedParts: changedParts,\n });\n });\n }\n }\n }\n catch (_a) { }\n });\n if (typeof addEventListener !== 'undefined') {\n addEventListener('storage', function (ev) {\n if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) {\n var data = JSON.parse(ev.newValue);\n if (data)\n propagateLocally(data.changedParts);\n }\n });\n }\n var swContainer = self.document && navigator.serviceWorker;\n if (swContainer) {\n swContainer.addEventListener('message', propagateMessageLocally);\n }\n}\nfunction propagateMessageLocally(_a) {\n var data = _a.data;\n if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) {\n propagateLocally(data.changedParts);\n }\n}\n\nDexiePromise.rejectionMapper = mapError;\nsetDebug(debug, dexieStackFrameFilter);\n\nexport { Dexie$1 as Dexie, RangeSet, Dexie$1 as default, liveQuery, mergeRanges, rangesOverlap };\n//# sourceMappingURL=dexie.mjs.map\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertFromGoogleAnalyticsEventIfNeeded = function (event) {\n if (!event.event && event.hitType) {\n var hitType = event.hitType, rest = __rest(event, [\"hitType\"]);\n return __assign({}, rest, { event: hitType });\n }\n return event;\n};\n","import { num, string, getThemeValue, negative, warn, merge, assign, func, is, obj, cascade } from '@xstyled/util';\n\nvar __pow = Math.pow;\nconst round = (value) => Math.round(value * __pow(10, 4)) / __pow(10, 4);\nconst unit = (unit2) => (value) => num(value) && value !== 0 ? `${value}${unit2}` : value;\nconst ms = unit(\"ms\");\nconst px$1 = unit(\"px\");\nconst deg = unit(\"deg\");\nconst pxToRem = (value, { rootFontSize = 16 } = {}) => round(value / rootFontSize);\nconst remPx = (value, options) => {\n const num2 = Number(value);\n if (Number.isNaN(num2) || num2 === 0)\n return value;\n return `${pxToRem(num2, options)}rem`;\n};\nconst rpx = (value, options) => {\n if (!string(value) || value.length < 4)\n return value;\n const unit2 = value.slice(-3);\n if (unit2 !== \"rpx\")\n return value;\n const n = Number(value.slice(0, value.length - 3));\n if (n === 0)\n return 0;\n return `${pxToRem(n, options)}rem`;\n};\nconst percent = (n) => num(n) && n !== 0 && n >= -1 && n <= 1 ? `${round(n * 100)}%` : n;\nconst transformNegative = (_, { rawValue, variants, props }) => {\n if (string(rawValue)) {\n const neg = rawValue.startsWith(\"-\");\n const abs = neg ? rawValue.substr(1) : rawValue;\n const varVal = getThemeValue(props, abs, variants);\n const value = string(varVal) || num(varVal) ? varVal : abs;\n return neg ? `-${value}` : value;\n }\n if (num(rawValue)) {\n const neg = negative(rawValue);\n const abs = Math.abs(rawValue);\n const varVal = variants ? variants[abs] : void 0;\n if (string(varVal))\n return neg ? `-${varVal}` : varVal;\n const value = num(varVal) ? varVal : abs;\n return neg ? value * -1 : value;\n }\n return void 0;\n};\n\nconst mediaMinWidth = (value) => value ? `@media (min-width: ${value})` : null;\nconst mediaMaxWidth = (value) => value ? `@media (max-width: ${value})` : null;\nconst mediaBetweenWidth = (min, max) => min && max ? `@media (min-width: ${min}) and (max-width: ${max})` : null;\nconst getBreakpointMin = (screens, key) => {\n const value = screens[key];\n return value === 0 ? null : px$1(value);\n};\nconst getBreakpointMax = (screens, key) => {\n const value = screens[key];\n return value === 0 ? null : px$1(value - 0.02);\n};\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nconst getScreens = (props) => {\n return props.theme && props.theme.screens ? props.theme.screens : {};\n};\nconst getStates = (props) => {\n return props.theme && props.theme.states ? props.theme.states : {};\n};\nconst getVariants = (props) => {\n const screens = getScreens(props);\n const states = getStates(props);\n const medias = {};\n for (const value in screens) {\n medias[value] = mediaMinWidth(getBreakpointMin(screens, value));\n }\n return __spreadValues$6(__spreadValues$6({}, medias), states);\n};\nconst getCachedVariants = (props, cache) => {\n if (cache.has(\"_variants\"))\n return cache.get(\"_variants\");\n const states = getVariants(props);\n cache.set(\"_variants\", states);\n return states;\n};\n\nconst cacheSupported = typeof Map !== \"undefined\" && typeof WeakMap !== \"undefined\";\nconst caches = cacheSupported ? new WeakMap() : null;\nconst getThemeCache = (theme) => {\n if (caches === null)\n return null;\n if (caches.has(theme))\n return caches.get(theme) || null;\n const cache = {};\n caches.set(theme, cache);\n return cache;\n};\nconst noopCache = {\n has: () => false,\n set: () => void 0,\n get: () => void 0\n};\nconst getCache = (theme, namespace) => {\n if (!theme)\n return noopCache;\n const cache = getThemeCache(theme);\n if (!cache || !theme)\n return noopCache;\n cache[namespace] = cache[namespace] || new Map();\n return cache[namespace];\n};\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj2, key, value) => key in obj2 ? __defProp$5(obj2, key, { enumerable: true, configurable: true, writable: true, value }) : obj2[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nlet themeGetterId = 0;\nconst SPLITTERS = {\n shorthand: [/\\s+/, \" \"],\n multiple: [/\\s*,\\s*/, \",\"]\n};\nconst splitValue = (splitter, transform) => (value) => value.split(splitter[0]).map(transform).join(splitter[1]);\nconst themeGetter = ({\n name,\n transform: defaultTransform,\n key,\n compose: compose2,\n shorthand,\n multiple\n}) => {\n const id = themeGetterId++;\n const getter = (value, defaultValue) => (props) => {\n let res = value;\n if (!string(value) && !num(value) && value !== true) {\n return res;\n }\n const cacheKey = `${typeof value}-${value}-${defaultValue}`;\n const cache = getCache(props.theme, `__themeGetter${id}`);\n if (cache.has(cacheKey))\n return cache.get(cacheKey);\n const getValue = (value2) => {\n const localDefaultValue = is(defaultValue) ? defaultValue : value2;\n let res2 = value2;\n const variants = is(key) ? getThemeValue(props, key) : null;\n if (is(variants)) {\n const path = value2 === true ? \"default\" : string(value2) || num(value2) ? value2 : null;\n if (is(path)) {\n const fromTheme = getThemeValue(props, path, variants);\n res2 = Array.isArray(fromTheme) ? fromTheme.join(\",\") : fromTheme;\n }\n }\n let rawValue = value2;\n if (!is(res2)) {\n rawValue = localDefaultValue;\n res2 = localDefaultValue;\n }\n const transform = (name && props.theme && props.theme.transformers ? props.theme.transformers[name] : null) || defaultTransform;\n if (transform) {\n res2 = transform(res2, {\n rawValue,\n variants,\n props\n });\n }\n return compose2 ? compose2(res2)(props) : res2;\n };\n if ((shorthand || multiple) && string(value)) {\n let transform = getValue;\n if (shorthand)\n transform = splitValue(SPLITTERS.shorthand, transform);\n if (multiple)\n transform = splitValue(SPLITTERS.multiple, transform);\n res = transform(value);\n } else {\n res = getValue(value);\n }\n cache.set(cacheKey, res);\n return res;\n };\n getter.meta = { name, transform: defaultTransform };\n return getter;\n};\nconst createStyleGenerator = ({\n getStyle,\n props,\n cssGetters = {},\n generators\n}) => {\n const generator = getStyle;\n generator.meta = {\n props,\n cssGetters,\n getStyle: generator,\n generators\n };\n generator.apply = (values) => ({ theme }) => generator(__spreadValues$5({ theme }, values));\n return generator;\n};\nconst reduceVariants = (props, values, getStyle) => {\n const cache = getCache(props.theme, \"__variants\");\n const variants = getCachedVariants(props, cache);\n let styles = {};\n for (const value in values) {\n const style2 = getStyle(values[value]);\n if (style2 === null)\n continue;\n const state = variants[value];\n if (state === void 0)\n continue;\n if (state === null) {\n styles = merge(styles, style2);\n } else {\n styles[state] = styles[state] ? assign(styles[state], style2) : style2;\n }\n }\n return styles;\n};\nconst getStyleFactory = (prop, mixin, themeGet) => {\n return (props) => {\n const fromValue = (value2) => {\n if (!is(value2))\n return null;\n if (obj(value2))\n return reduceVariants(props, value2, fromValue);\n return cascade(mixin(themeGet ? themeGet(value2)(props) : value2), props);\n };\n const value = props[prop];\n if (!is(value))\n return null;\n const cache = getCache(props.theme, prop);\n if (cache.has(value))\n return cache.get(value);\n const style2 = fromValue(props[prop]);\n cache.set(value, style2);\n return style2;\n };\n};\nconst indexGeneratorsByProp = (generators) => {\n const index = {};\n for (let i = 0; i < generators.length; i++) {\n const style2 = generators[i];\n if (style2 && style2.meta) {\n for (let j = 0; j < style2.meta.props.length; j++) {\n const prop = style2.meta.props[j];\n index[prop] = style2;\n }\n }\n }\n return index;\n};\nconst sortStyles = (styles, variants) => {\n for (const key in variants) {\n const variant = variants[key];\n const style2 = styles[variant];\n if (!style2)\n continue;\n delete styles[variant];\n styles[variant] = style2;\n }\n return styles;\n};\nconst compose = (...generators) => {\n let flatGenerators = [];\n generators.forEach((gen) => {\n warn(Boolean(gen), `Undefined generator in \"compose\" method`);\n if (!gen)\n return;\n if (gen.meta.generators) {\n flatGenerators = [...flatGenerators, ...gen.meta.generators];\n } else {\n flatGenerators.push(gen);\n }\n });\n const generatorsByProp = indexGeneratorsByProp(flatGenerators);\n const getStyle = (props2, sort = true) => {\n const styles = {};\n let merged;\n for (const key in props2) {\n const generator = generatorsByProp[key];\n if (generator) {\n const style2 = generator.meta.getStyle(props2, false);\n merge(styles, style2);\n merged = true;\n }\n }\n if (!merged || !sort)\n return styles;\n const medias = getCachedVariants(props2, getCache(props2.theme, \"__states\"));\n return sortStyles(styles, medias);\n };\n const props = [];\n const cssGetters = {};\n for (let i = 0; i < flatGenerators.length; i++) {\n const generator = flatGenerators[i];\n props.push(...generator.meta.props);\n Object.assign(cssGetters, generator.meta.cssGetters);\n }\n return createStyleGenerator({ getStyle, props, cssGetters, generators });\n};\nconst getMixinFromCSSProperties = (properties) => (value) => {\n if (string(properties))\n return { [properties]: value };\n const style2 = {};\n for (const key in properties) {\n style2[properties[key]] = value;\n }\n return style2;\n};\nconst getMixinFromCSSOption = (css) => {\n if (func(css))\n return css;\n return getMixinFromCSSProperties(css);\n};\nconst dasherize = (key) => key.replace(/[A-Z]/g, \"-$&\").toLowerCase();\nconst style = ({\n prop,\n css,\n themeGet,\n key,\n transform,\n cssProps: cssPropsOption\n}) => {\n const getter = themeGet || (key || transform ? themeGetter({ key, transform }) : void 0);\n const cssProps = cssPropsOption || (string(css) ? [css] : Array.isArray(css) ? css : string(prop) ? [prop] : Array.isArray(prop) ? prop : []);\n if (Array.isArray(prop)) {\n const mixin2 = css ? getMixinFromCSSOption(css) : css;\n const generators2 = prop.map((prop2) => style({ prop: prop2, css: mixin2, cssProps, themeGet: getter }));\n return compose(...generators2);\n }\n const props = [prop];\n const mixin = getMixinFromCSSOption(css || props);\n const generators = [];\n const getStyle = getStyleFactory(prop, mixin, getter);\n const cssGetters = getter ? cssProps.reduce((getters, cssProp) => {\n getters[dasherize(cssProp)] = getter;\n return getters;\n }, {}) : {};\n const generator = createStyleGenerator({ getStyle, props, cssGetters });\n generators.push(generator);\n return compose(...generators);\n};\n\nconst getPx = themeGetter({\n name: \"px\",\n transform: (value, { props }) => {\n var _a, _b, _c;\n const rootFontSize = (_c = (_b = (_a = props == null ? void 0 : props.theme) == null ? void 0 : _a.settings) == null ? void 0 : _b.rootFontSize) != null ? _c : void 0;\n const num = Number(value);\n return px$1(rpx(Number.isNaN(num) ? value : num, { rootFontSize }));\n }\n});\nconst getDuration = themeGetter({\n name: \"duration\",\n key: \"durations\",\n transform: (value) => {\n const num = Number(value);\n return ms(Number.isNaN(num) ? value : num);\n }\n});\nconst getAngle = themeGetter({\n name: \"angle\",\n transform: (value) => {\n const num = Number(value);\n return deg(Number.isNaN(num) ? value : num);\n }\n});\nconst getPercent = themeGetter({\n name: \"percent\",\n compose: getPx,\n transform: percent\n});\n\nconst getTransition = themeGetter({\n name: \"transition\",\n key: \"transitions\"\n});\nconst getTransitionProperty = themeGetter({\n name: \"transitionProperty\",\n key: \"transitionProperties\"\n});\nconst getTimingFunction = themeGetter({\n name: \"timingFunction\",\n key: \"timingFunctions\"\n});\nconst transition = style({\n prop: \"transition\",\n themeGet: getTransition\n});\nconst transitionProperty = style({\n prop: \"transitionProperty\",\n themeGet: getTransitionProperty\n});\nconst transitionDuration = style({\n prop: \"transitionDuration\",\n themeGet: getDuration\n});\nconst transitionTimingFunction = style({\n prop: \"transitionTimingFunction\",\n themeGet: getTimingFunction\n});\nconst transitionDelay = style({\n prop: \"transitionDelay\",\n themeGet: getDuration\n});\nconst transitions$1 = compose(transition, transitionProperty, transitionDuration, transitionTimingFunction, transitionDelay);\n\nconst getAnimation = themeGetter({\n name: \"animation\",\n key: \"animations\"\n});\nconst animation = style({\n prop: \"animation\",\n themeGet: getAnimation\n});\nconst animationDuration = style({\n prop: \"animationDuration\",\n themeGet: getDuration\n});\nconst animationTimingFunction = style({\n prop: \"animationTimingFunction\",\n themeGet: getTimingFunction\n});\nconst animations = compose(animation, animationDuration, animationTimingFunction);\n\nconst getColor = themeGetter({\n name: \"color\",\n key: \"colors\"\n});\n\nconst gradientBackgrounds = {\n \"gradient-to-t\": \"linear-gradient(to top, var(--x-gradient-stops))\",\n \"gradient-to-tr\": \"linear-gradient(to top right, var(--x-gradient-stops))\",\n \"gradient-to-r\": \"linear-gradient(to right, var(--x-gradient-stops))\",\n \"gradient-to-br\": \"linear-gradient(to bottom right, var(--x-gradient-stops))\",\n \"gradient-to-b\": \"linear-gradient(to bottom, var(--x-gradient-stops))\",\n \"gradient-to-bl\": \"linear-gradient(to bottom left, var(--x-gradient-stops))\",\n \"gradient-to-l\": \"linear-gradient(to left, var(--x-gradient-stops))\",\n \"gradient-to-tl\": \"linear-gradient(to top left, var(--x-gradient-stops))\"\n};\nconst background = style({\n prop: \"background\",\n css: (value) => ({\n background: gradientBackgrounds[value] || value\n })\n});\nconst backgroundColor = style({\n prop: [\"backgroundColor\", \"bg\"],\n css: \"backgroundColor\",\n themeGet: getColor\n});\nconst backgroundImage = style({\n prop: \"backgroundImage\",\n css: (value) => ({\n backgroundImage: gradientBackgrounds[value] || value\n })\n});\nconst backgroundSize = style({\n prop: \"backgroundSize\"\n});\nconst backgroundPosition = style({\n prop: \"backgroundPosition\"\n});\nconst backgroundRepeat = style({\n prop: \"backgroundRepeat\"\n});\nconst backgroundAttachment = style({\n prop: \"backgroundAttachment\"\n});\nconst backgroundClip = style({\n prop: \"backgroundClip\",\n css: [\"backgroundClip\", \"-webkitBackgroundClip\"]\n});\nconst gradientFrom = style({\n prop: \"gradientFrom\",\n themeGet: getColor,\n css: (value) => {\n return {\n \"--x-gradient-from\": value,\n \"--x-gradient-stops\": \"var(--x-gradient-from), var(--x-gradient-to, transparent)\"\n };\n }\n});\nconst gradientVia = style({\n prop: \"gradientVia\",\n themeGet: getColor,\n css: (value) => ({\n \"--x-gradient-stops\": `var(--x-gradient-from), ${value}, var(--x-gradient-to, transparent)`\n })\n});\nconst gradientTo = style({\n prop: \"gradientTo\",\n themeGet: getColor,\n css: \"--x-gradient-to\"\n});\nconst backgrounds = compose(background, backgroundColor, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat, backgroundAttachment, backgroundClip, gradientFrom, gradientVia, gradientTo);\n\nconst getBorder = themeGetter({\n name: \"border\",\n key: \"borders\",\n transform: (value) => {\n const num = Number(value);\n return num > 0 ? `${px$1(num)} solid` : value;\n }\n});\nconst getBorderWidth = themeGetter({\n name: \"borderWidth\",\n key: \"borderWidths\",\n compose: getPx,\n shorthand: true\n});\nconst getBorderColor = themeGetter({\n name: \"borderColor\",\n compose: getColor,\n shorthand: true\n});\nconst getBorderStyle = themeGetter({\n name: \"borderStyle\",\n key: \"borderStyles\"\n});\nconst border = style({\n prop: \"border\",\n themeGet: getBorder\n});\nconst borderTop = style({\n prop: \"borderTop\",\n themeGet: getBorder\n});\nconst borderRight = style({\n prop: \"borderRight\",\n themeGet: getBorder\n});\nconst borderBottom = style({\n prop: \"borderBottom\",\n themeGet: getBorder\n});\nconst borderLeft = style({\n prop: \"borderLeft\",\n themeGet: getBorder\n});\nconst borderColor = style({\n prop: \"borderColor\",\n themeGet: getBorderColor\n});\nconst borderTopColor = style({\n prop: \"borderTopColor\",\n themeGet: getColor\n});\nconst borderRightColor = style({\n prop: \"borderRightColor\",\n themeGet: getColor\n});\nconst borderBottomColor = style({\n prop: \"borderBottomColor\",\n themeGet: getColor\n});\nconst borderLeftColor = style({\n prop: \"borderLeftColor\",\n themeGet: getColor\n});\nconst borderWidth = style({\n prop: \"borderWidth\",\n themeGet: getBorderWidth\n});\nconst borderTopWidth = style({\n prop: \"borderTopWidth\",\n themeGet: getBorderWidth\n});\nconst borderRightWidth = style({\n prop: \"borderRightWidth\",\n themeGet: getBorderWidth\n});\nconst borderBottomWidth = style({\n prop: \"borderBottomWidth\",\n themeGet: getBorderWidth\n});\nconst borderLeftWidth = style({\n prop: \"borderLeftWidth\",\n themeGet: getBorderWidth\n});\nconst borderStyle = style({\n prop: \"borderStyle\",\n themeGet: getBorderStyle,\n cssProps: [\n \"borderStyle\",\n \"borderTopStyle\",\n \"borderRightStyle\",\n \"borderBottomStyle\",\n \"borderLeftStyle\"\n ]\n});\nconst outline = style({\n prop: \"outline\",\n themeGet: getBorder\n});\nconst outlineColor = style({\n prop: \"outlineColor\",\n themeGet: getColor\n});\nconst outlineWidth = style({\n prop: \"outlineWidth\",\n themeGet: getBorderWidth\n});\nconst outlineStyle = style({\n prop: \"outlineStyle\",\n themeGet: getBorderStyle\n});\nconst getRadius = themeGetter({\n name: \"radius\",\n key: \"radii\",\n compose: getPx,\n shorthand: true\n});\nconst borderRadius = style({\n prop: \"borderRadius\",\n themeGet: getRadius,\n cssProps: [\n \"borderRadius\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomRightRadius\",\n \"borderBottomLeftRadius\"\n ]\n});\nconst divideSelector = `& > :not([hidden]) ~ :not([hidden])`;\nconst divideY = style({\n prop: \"divideY\",\n themeGet: getBorderWidth,\n css: (value) => {\n const v = value === true ? 1 : value;\n return {\n [divideSelector]: {\n \"--x-divide-y-reverse\": 0,\n borderTopWidth: `calc(${v} * calc(1 - var(--x-divide-y-reverse)))`,\n borderBottomWidth: `calc(${v} * var(--x-divide-y-reverse))`\n }\n };\n }\n});\nconst divideX = style({\n prop: \"divideX\",\n themeGet: getBorderWidth,\n css: (value) => {\n const v = value === true ? 1 : value;\n return {\n [divideSelector]: {\n \"--x-divide-x-reverse\": 0,\n borderRightWidth: `calc(${v} * var(--x-divide-x-reverse))`,\n borderLeftWidth: `calc(${v} * calc(1 - var(--x-divide-x-reverse)))`\n }\n };\n }\n});\nconst divideXReverse = style({\n prop: \"divideXReverse\",\n css: () => ({\n [divideSelector]: {\n \"--x-divide-x-reverse\": \"1\"\n }\n })\n});\nconst divideYReverse = style({\n prop: \"divideYReverse\",\n css: () => ({\n [divideSelector]: {\n \"--x-divide-y-reverse\": \"1\"\n }\n })\n});\nconst divideColor = style({\n prop: \"divideColor\",\n themeGet: getColor,\n css: (value) => ({\n [divideSelector]: {\n borderColor: value\n }\n })\n});\nconst divideStyle = style({\n prop: \"divideStyle\",\n themeGet: getBorderStyle,\n css: (value) => ({\n [divideSelector]: {\n borderStyle: value\n }\n })\n});\nconst getRingWidth = themeGetter({\n name: \"ringWidth\",\n key: \"ringWidths\",\n compose: getPx\n});\nconst ring = style({\n prop: \"ring\",\n themeGet: getRingWidth,\n css: (value) => ({\n \"--x-ring-shadow\": `var(--x-ring-inset, /*!*/ /*!*/) 0 0 0 ${value} var(--x-ring-color)`,\n boxShadow: \"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow, 0 0 #0000)\"\n })\n});\nconst ringInset = style({\n prop: \"ringInset\",\n css: () => ({ \"--x-ring-inset\": \"inset\" })\n});\nconst ringColor = style({\n prop: \"ringColor\",\n themeGet: getColor,\n css: (value) => ({ \"--x-ring-color\": value })\n});\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderWidth, borderTopWidth, borderRightWidth, borderBottomWidth, borderLeftWidth, borderStyle, borderRadius, outline, outlineColor, outlineWidth, outlineStyle, divideX, divideY, divideXReverse, divideYReverse, divideColor, divideStyle, ring, ringInset, ringColor);\n\nconst getShadow = themeGetter({\n name: \"shadow\",\n key: \"shadows\",\n multiple: true\n});\nconst opacity = style({\n prop: \"opacity\"\n});\nconst boxShadow = style({\n prop: \"boxShadow\",\n themeGet: getShadow,\n css: (value) => ({\n \"--x-shadow\": value,\n boxShadow: \"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow)\"\n })\n});\nconst textShadow = style({\n prop: \"textShadow\",\n themeGet: getShadow\n});\nconst effects = compose(opacity, boxShadow, textShadow);\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj2, key, value) => key in obj2 ? __defProp$4(obj2, key, { enumerable: true, configurable: true, writable: true, value }) : obj2[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nconst row = style({\n prop: \"row\",\n css: () => ({\n boxSizing: \"border-box\",\n flexGrow: 1,\n flexWrap: \"wrap\",\n display: \"flex\"\n })\n});\nconst getColStyle = (props, size) => {\n if (!is(size))\n return null;\n if (size === true) {\n return {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\"\n };\n }\n if (size === \"auto\") {\n return {\n flex: `0 0 auto`,\n maxWidth: \"none\",\n width: \"auto\"\n };\n }\n const sizeWidth = getPercent(size)(props);\n return {\n flex: `0 0 ${sizeWidth}`,\n maxWidth: sizeWidth\n };\n};\nconst col = createStyleGenerator({\n getStyle: (props) => {\n const value = props.col;\n const common = {\n boxSizing: \"border-box\",\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\"\n };\n if (obj(value)) {\n const breakpointsStyle = reduceVariants(props, value, (v) => getColStyle(props, v));\n return __spreadValues$4(__spreadValues$4({}, common), breakpointsStyle);\n }\n return __spreadValues$4(__spreadValues$4({}, common), getColStyle(props, value));\n },\n props: [\"col\"]\n});\nconst flexboxGrids = compose(row, col);\n\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj2, key, value) => key in obj2 ? __defProp$3(obj2, key, { enumerable: true, configurable: true, writable: true, value }) : obj2[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nconst display = style({\n prop: \"display\"\n});\nconst float = style({\n prop: \"float\"\n});\nconst boxSizing = style({\n prop: \"boxSizing\"\n});\nconst container = createStyleGenerator({\n getStyle: (props) => {\n if (!props.container)\n return null;\n const breakpoints = getScreens(props);\n let styles = reduceVariants(props, breakpoints, (v) => v !== 0 ? { maxWidth: v } : {});\n if (obj(props.container)) {\n styles = reduceVariants(props, props.container, () => styles);\n }\n return __spreadValues$3({\n width: \"100%\"\n }, styles);\n },\n props: [\"container\"]\n});\nconst overflow = style({\n prop: \"overflow\"\n});\nconst overflowX = style({\n prop: \"overflowX\"\n});\nconst overflowY = style({\n prop: \"overflowY\"\n});\nconst getZIndex = themeGetter({\n name: \"zIndex\",\n key: \"zIndices\"\n});\nconst zIndex = style({\n prop: \"zIndex\",\n themeGet: getZIndex\n});\nconst position = style({\n prop: \"position\"\n});\nconst getInset = themeGetter({\n name: \"inset\",\n key: \"inset\",\n compose: getPx,\n transform: transformNegative\n});\nconst top = style({\n prop: \"top\",\n themeGet: getInset\n});\nconst right = style({\n prop: \"right\",\n themeGet: getInset\n});\nconst bottom = style({\n prop: \"bottom\",\n themeGet: getInset\n});\nconst left = style({\n prop: \"left\",\n themeGet: getInset\n});\nconst visibility = style({\n prop: \"visibility\"\n});\nconst overscrollBehavior = style({\n prop: \"overscrollBehavior\"\n});\nconst objectFit = style({\n prop: \"objectFit\"\n});\nconst layout = compose(boxSizing, display, float, container, overflow, overflowX, overflowY, position, zIndex, top, right, bottom, left, visibility, overscrollBehavior, objectFit);\n\nconst alignItems = style({\n prop: \"alignItems\"\n});\nconst alignContent = style({\n prop: \"alignContent\"\n});\nconst justifyContent = style({\n prop: \"justifyContent\"\n});\nconst justifyItems = style({\n prop: \"justifyItems\"\n});\nconst flexWrap = style({\n prop: \"flexWrap\"\n});\nconst flexGrow = style({\n prop: \"flexGrow\"\n});\nconst flexShrink = style({\n prop: \"flexShrink\"\n});\nconst flexBasis = style({\n prop: \"flexBasis\",\n themeGet: getPercent\n});\nconst flexDirection = style({\n prop: \"flexDirection\"\n});\nconst flex = style({\n prop: \"flex\"\n});\nconst justifySelf = style({\n prop: \"justifySelf\"\n});\nconst alignSelf = style({\n prop: \"alignSelf\"\n});\nconst order = style({\n prop: \"order\"\n});\nconst flexboxes = compose(display, alignItems, alignContent, justifyContent, justifyItems, flexWrap, flexBasis, flexShrink, flexGrow, flexDirection, flex, justifySelf, alignSelf, order);\n\nconst getSpace = themeGetter({\n name: \"space\",\n key: \"space\",\n compose: getPx,\n shorthand: true,\n transform: transformNegative\n});\nconst margin = style({\n prop: [\"margin\", \"m\"],\n themeGet: getSpace,\n css: \"margin\"\n});\nconst marginTop = style({\n prop: [\"marginTop\", \"mt\"],\n themeGet: getSpace,\n css: \"marginTop\"\n});\nconst marginRight = style({\n prop: [\"marginRight\", \"mr\"],\n themeGet: getSpace,\n css: \"marginRight\"\n});\nconst marginBottom = style({\n prop: [\"marginBottom\", \"mb\"],\n themeGet: getSpace,\n css: \"marginBottom\"\n});\nconst marginLeft = style({\n prop: [\"marginLeft\", \"ml\"],\n themeGet: getSpace,\n css: \"marginLeft\"\n});\nconst mx = style({\n prop: \"mx\",\n themeGet: getSpace,\n css: [\"marginRight\", \"marginLeft\"]\n});\nconst my = style({\n prop: \"my\",\n themeGet: getSpace,\n css: [\"marginTop\", \"marginBottom\"]\n});\nconst padding = style({\n prop: [\"padding\", \"p\"],\n themeGet: getSpace,\n css: \"padding\"\n});\nconst paddingTop = style({\n prop: [\"paddingTop\", \"pt\"],\n themeGet: getSpace,\n css: \"paddingTop\"\n});\nconst paddingRight = style({\n prop: [\"paddingRight\", \"pr\"],\n themeGet: getSpace,\n css: \"paddingRight\"\n});\nconst paddingBottom = style({\n prop: [\"paddingBottom\", \"pb\"],\n themeGet: getSpace,\n css: \"paddingBottom\"\n});\nconst paddingLeft = style({\n prop: [\"paddingLeft\", \"pl\"],\n themeGet: getSpace,\n css: \"paddingLeft\"\n});\nconst px = style({\n prop: \"px\",\n themeGet: getSpace,\n css: [\"paddingRight\", \"paddingLeft\"]\n});\nconst py = style({\n prop: \"py\",\n themeGet: getSpace,\n css: [\"paddingTop\", \"paddingBottom\"]\n});\nconst spaceY = style({\n prop: \"spaceY\",\n themeGet: getSpace,\n css: (value) => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-y-reverse\": 0,\n marginTop: `calc(${value} * calc(1 - var(--x-space-y-reverse)))`,\n marginBottom: `calc(${value} * var(--x-space-y-reverse))`\n }\n })\n});\nconst spaceX = style({\n prop: \"spaceX\",\n themeGet: getSpace,\n css: (value) => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-x-reverse\": 0,\n marginRight: `calc(${value} * var(--x-space-x-reverse))`,\n marginLeft: `calc(${value} * calc(1 - var(--x-space-x-reverse)))`\n }\n })\n});\nconst spaceXReverse = style({\n prop: \"spaceXReverse\",\n css: () => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-x-reverse\": \"1\"\n }\n })\n});\nconst spaceYReverse = style({\n prop: \"spaceYReverse\",\n css: () => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-y-reverse\": \"1\"\n }\n })\n});\nconst space$1 = compose(margin, marginTop, marginRight, marginBottom, marginLeft, mx, my, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py, spaceX, spaceY, spaceXReverse, spaceYReverse);\n\nconst gap = style({\n prop: \"gap\",\n themeGet: getSpace\n});\nconst columnGap = style({\n prop: \"columnGap\",\n themeGet: getSpace\n});\nconst rowGap = style({\n prop: \"rowGap\",\n themeGet: getSpace\n});\nconst gridColumn = style({\n prop: \"gridColumn\"\n});\nconst gridRow = style({\n prop: \"gridRow\"\n});\nconst gridAutoFlow = style({\n prop: \"gridAutoFlow\"\n});\nconst gridAutoColumns = style({\n prop: \"gridAutoColumns\"\n});\nconst gridAutoRows = style({\n prop: \"gridAutoRows\"\n});\nconst gridTemplateColumns = style({\n prop: \"gridTemplateColumns\",\n key: \"gridTemplateColumns\"\n});\nconst gridTemplateRows = style({\n prop: \"gridTemplateRows\",\n key: \"gridTemplateRows\"\n});\nconst gridTemplateAreas = style({\n prop: \"gridTemplateAreas\"\n});\nconst gridArea = style({\n prop: \"gridArea\"\n});\nconst grids = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\n\nconst appearance = style({\n prop: \"appearance\"\n});\nconst cursor = style({\n prop: \"cursor\"\n});\nconst pointerEvents = style({\n prop: \"pointerEvents\"\n});\nconst resize = style({\n prop: \"resize\"\n});\nconst userSelect = style({\n prop: \"userSelect\"\n});\nconst interactivity = compose(appearance, cursor, pointerEvents, resize, userSelect);\n\nconst getSize = themeGetter({\n name: \"size\",\n key: \"sizes\",\n compose: getPercent\n});\nconst width = style({\n prop: \"w\",\n themeGet: getSize,\n css: \"width\"\n});\nconst height = style({\n prop: \"h\",\n themeGet: getSize,\n css: \"height\"\n});\nconst maxWidth = style({\n prop: [\"maxWidth\", \"maxW\"],\n themeGet: getSize,\n css: \"maxWidth\"\n});\nconst maxHeight = style({\n prop: [\"maxHeight\", \"maxH\"],\n themeGet: getSize,\n css: \"maxHeight\"\n});\nconst minWidth = style({\n prop: [\"minWidth\", \"minW\"],\n themeGet: getSize,\n css: \"minWidth\"\n});\nconst minHeight = style({\n prop: [\"minHeight\", \"minH\"],\n themeGet: getSize,\n css: \"minHeight\"\n});\nconst maskSize = style({\n prop: \"maskSize\",\n themeGet: themeGetter({\n name: \"size\",\n key: \"sizes\",\n compose: getPercent,\n multiple: true,\n shorthand: true\n })\n});\nconst sizing = compose(width, height, maxWidth, maxHeight, minWidth, minHeight, maskSize);\n\nconst fill = style({\n prop: \"fill\",\n themeGet: getColor\n});\nconst stroke = style({\n prop: \"stroke\",\n themeGet: getColor\n});\nconst svg = compose(fill, stroke);\n\nconst borderCollapse = style({\n prop: \"borderCollapse\"\n});\nconst tableLayout = style({\n prop: \"tableLayout\"\n});\nconst tables = compose(borderCollapse, tableLayout);\n\nconst getTransform = themeGetter({\n name: \"transform\",\n key: \"transforms\"\n});\nconst transform = style({\n prop: \"transform\",\n themeGet: getTransform,\n css: (value) => {\n if (value === true) {\n return {\n \"--x-translate-x\": 0,\n \"--x-translate-y\": 0,\n \"--x-rotate\": 0,\n \"--x-skew-x\": 0,\n \"--x-skew-y\": 0,\n \"--x-scale-x\": \"1\",\n \"--x-scale-y\": \"1\",\n transform: \"translate3d(var(--x-translate-x), var(--x-translate-y), 0) rotate(var(--x-rotate)) skewX(var(--x-skew-x)) skewY(var(--x-skew-y)) scaleX(var(--x-scale-x)) scaleY(var(--x-scale-y))\"\n };\n }\n return { transform: value };\n }\n});\nconst transformOrigin = style({\n prop: \"transformOrigin\"\n});\nconst translateX = style({\n prop: \"translateX\",\n themeGet: getSpace,\n css: \"--x-translate-x\"\n});\nconst translateY = style({\n prop: \"translateY\",\n themeGet: getSpace,\n css: \"--x-translate-y\"\n});\nconst rotate = style({\n prop: \"rotate\",\n themeGet: getAngle,\n css: \"--x-rotate\"\n});\nconst skewX = style({\n prop: \"skewX\",\n themeGet: getAngle,\n css: \"--x-skew-x\"\n});\nconst skewY = style({\n prop: \"skewY\",\n themeGet: getAngle,\n css: \"--x-skew-y\"\n});\nconst scale = style({\n prop: \"scale\",\n transform: (v) => String(v),\n css: [\"--x-scale-x\", \"--x-scale-y\"]\n});\nconst scaleX = style({\n prop: \"scaleX\",\n transform: (v) => String(v),\n css: \"--x-scale-x\"\n});\nconst scaleY = style({\n prop: \"scaleY\",\n transform: (v) => String(v),\n css: \"--x-scale-y\"\n});\nconst transforms = compose(transform, transformOrigin, translateX, translateY, rotate, skewX, skewY, scale, scaleX, scaleY);\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst getFont = themeGetter({ name: \"font\", key: \"fonts\" });\nconst getLineHeight = themeGetter({\n name: \"lineHeight\",\n key: \"lineHeights\",\n transform: (value, { props }) => {\n var _a, _b, _c;\n const rootFontSize = (_c = (_b = (_a = props == null ? void 0 : props.theme) == null ? void 0 : _a.settings) == null ? void 0 : _b.rootFontSize) != null ? _c : void 0;\n return rpx(value, { rootFontSize });\n }\n});\nconst getFontWeight = themeGetter({\n name: \"fontWeight\",\n key: \"fontWeights\"\n});\nconst getLetterSpacing = themeGetter({\n name: \"letterSpacing\",\n key: \"letterSpacings\",\n compose: getPx\n});\nconst getFontSize = themeGetter({\n name: \"fontSize\",\n key: \"fontSizes\",\n compose: getPx\n});\nconst fontFamily = style({\n prop: \"fontFamily\",\n themeGet: getFont\n});\nconst fontSize = style({\n prop: \"fontSize\",\n themeGet: getFontSize\n});\nconst lineHeight = style({\n prop: \"lineHeight\",\n themeGet: getLineHeight\n});\nconst fontWeight = style({\n prop: \"fontWeight\",\n themeGet: getFontWeight\n});\nconst fontStyle = style({\n prop: \"fontStyle\"\n});\nconst letterSpacing = style({\n prop: \"letterSpacing\",\n themeGet: getLetterSpacing\n});\nconst color = style({\n prop: \"color\",\n themeGet: getColor\n});\nconst textTransform = style({\n prop: \"textTransform\"\n});\nconst textDecoration = style({\n prop: \"textDecoration\"\n});\nconst textAlign = style({\n prop: \"textAlign\"\n});\nconst verticalAlign = style({\n prop: \"verticalAlign\"\n});\nconst whiteSpace = style({\n prop: \"whiteSpace\"\n});\nconst textOverflow = style({\n prop: \"textOverflow\"\n});\nconst listStyleType = style({\n prop: \"listStyleType\"\n});\nconst listStylePosition = style({\n prop: \"listStylePosition\"\n});\nconst all = compose(fontFamily, fontSize, fontStyle, lineHeight, fontWeight, textAlign, letterSpacing, color, textTransform, textDecoration, verticalAlign, whiteSpace, textOverflow, listStyleType, listStylePosition);\nconst text = style({\n prop: \"text\",\n key: \"texts\",\n css: (value) => ({ theme }) => all(__spreadProps$1(__spreadValues$2({}, value), { theme }))\n});\nconst typography = compose(all, text);\n\nconst system = compose(animations, backgrounds, borders, effects, flexboxGrids, flexboxes, grids, interactivity, layout, sizing, space$1, svg, tables, transforms, transitions$1, typography);\n\nconst th = (path, defaultValue) => (props) => {\n const value = getThemeValue(props, path);\n if (is(value))\n return value;\n if (is(defaultValue))\n return defaultValue;\n return path;\n};\n[\n getAngle,\n getAnimation,\n getBorder,\n getBorderColor,\n getBorderStyle,\n getBorderWidth,\n getColor,\n getDuration,\n getFont,\n getFontSize,\n getFontWeight,\n getInset,\n getLetterSpacing,\n getLineHeight,\n getPercent,\n getPx,\n getRadius,\n getRingWidth,\n getShadow,\n getSize,\n getSpace,\n getTimingFunction,\n getTransform,\n getTransition,\n getTransitionProperty,\n getZIndex\n].forEach((themeGetter) => {\n th[themeGetter.meta.name] = themeGetter;\n});\n\nconst up = (key, rules) => (props) => {\n const screens = getScreens(props);\n const value = getBreakpointMin(screens, key);\n if (value === null)\n return rules;\n return [`${mediaMinWidth(value)} {`, rules, \"}\"];\n};\nconst down = (key, rules) => (props) => {\n const screens = getScreens(props);\n const value = getBreakpointMax(screens, key);\n if (value === null)\n return null;\n return [`${mediaMaxWidth(value)} {`, rules, \"}\"];\n};\nconst between = (lower, upper, rules) => (props) => {\n const screens = getScreens(props);\n const min = getBreakpointMin(screens, lower);\n const max = getBreakpointMax(screens, upper);\n if (max === null)\n return up(lower, rules)(props);\n if (min === null)\n return down(upper, rules)(props);\n return [`${mediaBetweenWidth(min, max)} {`, rules, \"}\"];\n};\nconst breakpoints = (values) => (props) => {\n const allRules = [];\n const keys = Object.keys(values);\n const keysLength = keys.length;\n for (let i = 0; i < keysLength; i++) {\n const key = keys[i];\n const rules = values[key];\n const result = up(key, rules)(props);\n if (Array.isArray(result)) {\n result.forEach((v) => allRules.push(v));\n } else {\n allRules.push(result);\n }\n }\n return allRules;\n};\n\nconst rpxTransformers = {\n px: (value) => remPx(rpx(value)),\n border: (value) => num(value) && value > 0 ? `${remPx(value)} solid` : value\n};\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst defaultAlphaVariants = [\n 0,\n 5,\n 10,\n 20,\n 25,\n 30,\n 40,\n 50,\n 60,\n 70,\n 75,\n 80,\n 90,\n 95,\n 100\n];\nconst generateHexAlphaVariants = (colors, variants = defaultAlphaVariants) => {\n const transform = (value, variant) => `${value}${Math.round(variant / 100 * 255).toString(16)}`;\n const alphaColors = Object.keys(colors).reduce((obj, key) => {\n variants.forEach((variant) => {\n const value = colors[key];\n const variantKey = `${key}-a${variant}`;\n obj[variantKey] = string(value) ? transform(value, variant) : generateHexAlphaVariants(value, variants);\n });\n return obj;\n }, {});\n return __spreadValues$1(__spreadValues$1({}, colors), alphaColors);\n};\nconst defaultTones = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\nconst aliasColor = (alias, color, tones = defaultTones, variants = defaultAlphaVariants) => {\n return tones.reduce((obj, tone) => {\n obj[`${alias}-${tone}`] = th.color(`${color}-${tone}`);\n variants.forEach((i) => {\n obj[`${alias}-${tone}-a${i}`] = th.color(`${color}-${tone}-a${i}`);\n });\n return obj;\n }, {});\n};\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst space = {\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\"\n};\nconst timingFunctions = {\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n};\nconst transitionProperties = {\n default: [\n \"background-color\",\n \"border-color\",\n \"color\",\n \"fill\",\n \"stroke\",\n \"opacity\",\n \"box-shadow\",\n \"transform\"\n ],\n colors: [\"background-color\", \"border-color\", \"color\", \"fill\", \"stroke\"],\n opacity: [\"opacity\"],\n shadow: [\"box-shadow\"],\n transform: [\"transform\"]\n};\nconst transitions = Object.keys(transitionProperties).reduce((obj, key) => {\n obj[key] = transitionProperties[key].map((property) => `${property} ${timingFunctions[\"ease-in-out\"]} 150ms`).join(\",\");\n return obj;\n}, {});\nconst colors = {\n black: \"#000000\",\n white: \"#ffffff\",\n \"blue-gray-50\": \"#f8fafc\",\n \"blue-gray-100\": \"#f1f5f9\",\n \"blue-gray-200\": \"#e2e8f0\",\n \"blue-gray-300\": \"#cbd5e1\",\n \"blue-gray-400\": \"#94a3b8\",\n \"blue-gray-500\": \"#64748b\",\n \"blue-gray-600\": \"#475569\",\n \"blue-gray-700\": \"#334155\",\n \"blue-gray-800\": \"#1e293b\",\n \"blue-gray-900\": \"#0f172a\",\n \"cool-gray-50\": \"#f9fafb\",\n \"cool-gray-100\": \"#f3f4f6\",\n \"cool-gray-200\": \"#e5e7eb\",\n \"cool-gray-300\": \"#d1d5db\",\n \"cool-gray-400\": \"#9ca3af\",\n \"cool-gray-500\": \"#6b7280\",\n \"cool-gray-600\": \"#4b5563\",\n \"cool-gray-700\": \"#374151\",\n \"cool-gray-800\": \"#1f2937\",\n \"cool-gray-900\": \"#111827\",\n \"gray-50\": \"#fafafa\",\n \"gray-100\": \"#f4f4f5\",\n \"gray-200\": \"#e4e4e7\",\n \"gray-300\": \"#d4d4d8\",\n \"gray-400\": \"#a1a1aa\",\n \"gray-500\": \"#71717a\",\n \"gray-600\": \"#52525b\",\n \"gray-700\": \"#3f3f46\",\n \"gray-800\": \"#27272a\",\n \"gray-900\": \"#18181b\",\n \"true-gray-50\": \"#fafafa\",\n \"true-gray-100\": \"#f5f5f5\",\n \"true-gray-200\": \"#e5e5e5\",\n \"true-gray-300\": \"#d4d4d4\",\n \"true-gray-400\": \"#a3a3a3\",\n \"true-gray-500\": \"#737373\",\n \"true-gray-600\": \"#525252\",\n \"true-gray-700\": \"#404040\",\n \"true-gray-800\": \"#262626\",\n \"true-gray-900\": \"#171717\",\n \"warm-gray-50\": \"#fafaf9\",\n \"warm-gray-100\": \"#f5f5f4\",\n \"warm-gray-200\": \"#e7e5e4\",\n \"warm-gray-300\": \"#d6d3d1\",\n \"warm-gray-400\": \"#a8a29e\",\n \"warm-gray-500\": \"#78716c\",\n \"warm-gray-600\": \"#57534e\",\n \"warm-gray-700\": \"#44403c\",\n \"warm-gray-800\": \"#292524\",\n \"warm-gray-900\": \"#1c1917\",\n \"red-50\": \"#fef2f2\",\n \"red-100\": \"#fee2e2\",\n \"red-200\": \"#fecaca\",\n \"red-300\": \"#fca5a5\",\n \"red-400\": \"#f87171\",\n \"red-500\": \"#ef4444\",\n \"red-600\": \"#dc2626\",\n \"red-700\": \"#b91c1c\",\n \"red-800\": \"#991b1b\",\n \"red-900\": \"#7f1d1d\",\n \"orange-50\": \"#fff7ed\",\n \"orange-100\": \"#ffedd5\",\n \"orange-200\": \"#fed7aa\",\n \"orange-300\": \"#fdba74\",\n \"orange-400\": \"#fb923c\",\n \"orange-500\": \"#f97316\",\n \"orange-600\": \"#ea580c\",\n \"orange-700\": \"#c2410c\",\n \"orange-800\": \"#9a3412\",\n \"orange-900\": \"#7c2d12\",\n \"amber-50\": \"#fffbeb\",\n \"amber-100\": \"#fef3c7\",\n \"amber-200\": \"#fde68a\",\n \"amber-300\": \"#fcd34d\",\n \"amber-400\": \"#fbbf24\",\n \"amber-500\": \"#f59e0b\",\n \"amber-600\": \"#d97706\",\n \"amber-700\": \"#b45309\",\n \"amber-800\": \"#92400e\",\n \"amber-900\": \"#78350f\",\n \"yellow-50\": \"#fefce8\",\n \"yellow-100\": \"#fef9c3\",\n \"yellow-200\": \"#fef08a\",\n \"yellow-300\": \"#fde047\",\n \"yellow-400\": \"#facc15\",\n \"yellow-500\": \"#eab308\",\n \"yellow-600\": \"#ca8a04\",\n \"yellow-700\": \"#a16207\",\n \"yellow-800\": \"#854d0e\",\n \"yellow-900\": \"#713f12\",\n \"lime-50\": \"#f7fee7\",\n \"lime-100\": \"#ecfccb\",\n \"lime-200\": \"#d9f99d\",\n \"lime-300\": \"#bef264\",\n \"lime-400\": \"#a3e635\",\n \"lime-500\": \"#84cc16\",\n \"lime-600\": \"#65a30d\",\n \"lime-700\": \"#4d7c0f\",\n \"lime-800\": \"#3f6212\",\n \"lime-900\": \"#365314\",\n \"green-50\": \"#f0fdf4\",\n \"green-100\": \"#dcfce7\",\n \"green-200\": \"#bbf7d0\",\n \"green-300\": \"#86efac\",\n \"green-400\": \"#4ade80\",\n \"green-500\": \"#22c55e\",\n \"green-600\": \"#16a34a\",\n \"green-700\": \"#15803d\",\n \"green-800\": \"#166534\",\n \"green-900\": \"#14532d\",\n \"emerald-50\": \"#ecfdf5\",\n \"emerald-100\": \"#d1fae5\",\n \"emerald-200\": \"#a7f3d0\",\n \"emerald-300\": \"#6ee7b7\",\n \"emerald-400\": \"#34d399\",\n \"emerald-500\": \"#10b981\",\n \"emerald-600\": \"#059669\",\n \"emerald-700\": \"#047857\",\n \"emerald-800\": \"#065f46\",\n \"emerald-900\": \"#064e3b\",\n \"teal-50\": \"#f0fdfa\",\n \"teal-100\": \"#ccfbf1\",\n \"teal-200\": \"#99f6e4\",\n \"teal-300\": \"#5eead4\",\n \"teal-400\": \"#2dd4bf\",\n \"teal-500\": \"#14b8a6\",\n \"teal-600\": \"#0d9488\",\n \"teal-700\": \"#0f766e\",\n \"teal-800\": \"#115e59\",\n \"teal-900\": \"#134e4a\",\n \"cyan-50\": \"#ecfeff\",\n \"cyan-100\": \"#cffafe\",\n \"cyan-200\": \"#a5f3fc\",\n \"cyan-300\": \"#67e8f9\",\n \"cyan-400\": \"#22d3ee\",\n \"cyan-500\": \"#06b6d4\",\n \"cyan-600\": \"#0891b2\",\n \"cyan-700\": \"#0e7490\",\n \"cyan-800\": \"#155e75\",\n \"cyan-900\": \"#164e63\",\n \"light-blue-50\": \"#f0f9ff\",\n \"light-blue-100\": \"#e0f2fe\",\n \"light-blue-200\": \"#bae6fd\",\n \"light-blue-300\": \"#7dd3fc\",\n \"light-blue-400\": \"#38bdf8\",\n \"light-blue-500\": \"#0ea5e9\",\n \"light-blue-600\": \"#0284c7\",\n \"light-blue-700\": \"#0369a1\",\n \"light-blue-800\": \"#075985\",\n \"light-blue-900\": \"#0c4a6e\",\n \"blue-50\": \"#eff6ff\",\n \"blue-100\": \"#dbeafe\",\n \"blue-200\": \"#bfdbfe\",\n \"blue-300\": \"#93c5fd\",\n \"blue-400\": \"#60a5fa\",\n \"blue-500\": \"#3b82f6\",\n \"blue-600\": \"#2563eb\",\n \"blue-700\": \"#1d4ed8\",\n \"blue-800\": \"#1e40af\",\n \"blue-900\": \"#1e3a8a\",\n \"indigo-50\": \"#eef2ff\",\n \"indigo-100\": \"#e0e7ff\",\n \"indigo-200\": \"#c7d2fe\",\n \"indigo-300\": \"#a5b4fc\",\n \"indigo-400\": \"#818cf8\",\n \"indigo-500\": \"#6366f1\",\n \"indigo-600\": \"#4f46e5\",\n \"indigo-700\": \"#4338ca\",\n \"indigo-800\": \"#3730a3\",\n \"indigo-900\": \"#312e81\",\n \"violet-50\": \"#f5f3ff\",\n \"violet-100\": \"#ede9fe\",\n \"violet-200\": \"#ddd6fe\",\n \"violet-300\": \"#c4b5fd\",\n \"violet-400\": \"#a78bfa\",\n \"violet-500\": \"#8b5cf6\",\n \"violet-600\": \"#7c3aed\",\n \"violet-700\": \"#6d28d9\",\n \"violet-800\": \"#5b21b6\",\n \"violet-900\": \"#4c1d95\",\n \"purple-50\": \"#faf5ff\",\n \"purple-100\": \"#f3e8ff\",\n \"purple-200\": \"#e9d5ff\",\n \"purple-300\": \"#d8b4fe\",\n \"purple-400\": \"#c084fc\",\n \"purple-500\": \"#a855f7\",\n \"purple-600\": \"#9333ea\",\n \"purple-700\": \"#7e22ce\",\n \"purple-800\": \"#6b21a8\",\n \"purple-900\": \"#581c87\",\n \"fuchsia-50\": \"#fdf4ff\",\n \"fuchsia-100\": \"#fae8ff\",\n \"fuchsia-200\": \"#f5d0fe\",\n \"fuchsia-300\": \"#f0abfc\",\n \"fuchsia-400\": \"#e879f9\",\n \"fuchsia-500\": \"#d946ef\",\n \"fuchsia-600\": \"#c026d3\",\n \"fuchsia-700\": \"#a21caf\",\n \"fuchsia-800\": \"#86198f\",\n \"fuchsia-900\": \"#701a75\",\n \"pink-50\": \"#fdf2f8\",\n \"pink-100\": \"#fce7f3\",\n \"pink-200\": \"#fbcfe8\",\n \"pink-300\": \"#f9a8d4\",\n \"pink-400\": \"#f472b6\",\n \"pink-500\": \"#ec4899\",\n \"pink-600\": \"#db2777\",\n \"pink-700\": \"#be185d\",\n \"pink-800\": \"#9d174d\",\n \"pink-900\": \"#831843\",\n \"rose-50\": \"#fff1f2\",\n \"rose-100\": \"#ffe4e6\",\n \"rose-200\": \"#fecdd3\",\n \"rose-300\": \"#fda4af\",\n \"rose-400\": \"#fb7185\",\n \"rose-500\": \"#f43f5e\",\n \"rose-600\": \"#e11d48\",\n \"rose-700\": \"#be123c\",\n \"rose-800\": \"#9f1239\",\n \"rose-900\": \"#881337\"\n};\nconst fontSizes = {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n default: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\"\n};\nconst texts = Object.keys(fontSizes).reduce((texts2, key) => {\n texts2[key] = { fontSize: key, lineHeight: key };\n return texts2;\n}, {});\nconst defaultTheme = {\n colors: generateHexAlphaVariants(colors),\n space,\n screens: {\n _: 0,\n xs: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536\n },\n durations: {\n instant: \"100ms\",\n \"fast-in\": \"250ms\",\n \"fast-out\": \"200ms\",\n \"slow-in\": \"300ms\",\n \"slow-out\": \"250ms\"\n },\n sizes: __spreadProps(__spreadValues({}, space), {\n 0.5: void 0,\n 1: void 0,\n \"0.5s\": space[0.5],\n \"1s\": space[1],\n full: \"100%\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\"\n }),\n radii: {\n none: \"0\",\n sm: \"0.125rem\",\n default: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\"\n },\n shadows: {\n xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n default: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n inner: \"inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\n outline: \"0 0 0 3px rgba(66, 153, 225, 0.5)\"\n },\n fontSizes,\n fontWeights: {\n hairline: \"100\",\n thin: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\"\n },\n fonts: {\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace`,\n serif: `ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif`,\n sans: `ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"`\n },\n letterSpacings: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\"\n },\n lineHeights: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n xs: \"1rem\",\n sm: \"1.25rem\",\n default: \"1.5rem\",\n lg: \"1.75rem\",\n xl: \"1.75rem\",\n \"2xl\": \"2rem\",\n \"3xl\": \"2.25rem\",\n \"4xl\": \"2.5rem\",\n \"5xl\": 1,\n \"6xl\": 1,\n \"7xl\": 1,\n \"8xl\": 1,\n \"9xl\": 1\n },\n gridTemplateColumns: {\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\"\n },\n gridTemplateRows: {\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\"\n },\n borderWidths: {\n default: 1\n },\n ringWidths: {\n default: 3\n },\n borders: {\n default: \"1px solid transparent\"\n },\n texts,\n transitions,\n transitionProperties,\n timingFunctions,\n animations: {\n spin: \"x-spin 1s linear infinite\",\n ping: \"x-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",\n pulse: \"x-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n bounce: \"x-bounce 1s infinite\"\n },\n states: {\n _: null,\n motionSafe: \"@media (prefers-reduced-motion: no-preference)\",\n motionReduce: \"@media (prefers-reduced-motion: reduce)\",\n first: \"&:first-child\",\n last: \"&:last-child\",\n odd: \"&:odd\",\n even: \"&:even\",\n visited: \"&:visited\",\n checked: \"&:checked\",\n focusWithin: \"&:focus-within\",\n hover: \"&:hover\",\n focus: \"&:focus\",\n focusVisible: \"&:focus-visible\",\n active: \"&:active\",\n disabled: \"&:disabled, &[aria-disabled=true]\",\n placeholder: \"&::placeholder\"\n }\n};\n\nconst getPreflightStyles = (theme) => `\n/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n*,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}\n\n/* Role button pointer */\n[role=button], button {\n cursor: pointer;\n}\n\n/* Remove default margins */\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\n/* Remove headings styles */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/* Unstyle lists */\nol,\nul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/* Image are block-level */\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\n\n/* Reset border styles */\n*,\n::before,\n::after {\n border-width: 0;\n border-style: solid;\n border-color: ${th.color(\"default-border-color\", \"currentColor\")({ theme })};\n}\n\n* {\n --x-ring-color: ${th.color(\"default-ring-color\", \"rgba(59,130,246,0.5)\")({ theme })};\n}\n\n/* Default outline on buttons */\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\n// Animations\n@keyframes x-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes x-ping {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@keyframes x-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes x-bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animationTimingFunction: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: translateY(0);\n animationTimingFunction: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n`;\n\nexport { aliasColor, alignContent, alignItems, alignSelf, animation, animationDuration, animationTimingFunction, animations, appearance, background, backgroundAttachment, backgroundClip, backgroundColor, backgroundImage, backgroundPosition, backgroundRepeat, backgroundSize, backgrounds, between, border, borderBottom, borderBottomColor, borderBottomWidth, borderCollapse, borderColor, borderLeft, borderLeftColor, borderLeftWidth, borderRadius, borderRight, borderRightColor, borderRightWidth, borderStyle, borderTop, borderTopColor, borderTopWidth, borderWidth, borders, bottom, boxShadow, boxSizing, breakpoints, col, color, columnGap, compose, container, createStyleGenerator, cursor, defaultTheme, display, divideColor, divideStyle, divideX, divideXReverse, divideY, divideYReverse, down, effects, fill, flex, flexBasis, flexDirection, flexGrow, flexShrink, flexWrap, flexboxGrids, flexboxes, float, fontFamily, fontSize, fontStyle, fontWeight, gap, generateHexAlphaVariants, getAngle, getAnimation, getBorder, getBorderColor, getBorderStyle, getBorderWidth, getBreakpointMax, getBreakpointMin, getColor, getDuration, getFont, getFontSize, getFontWeight, getInset, getLetterSpacing, getLineHeight, getPercent, getPreflightStyles, getPx, getRadius, getRingWidth, getScreens, getShadow, getSize, getSpace, getStates, getTimingFunction, getTransform, getTransition, getTransitionProperty, getVariants, getZIndex, gradientFrom, gradientTo, gradientVia, gridArea, gridAutoColumns, gridAutoFlow, gridAutoRows, gridColumn, gridRow, gridTemplateAreas, gridTemplateColumns, gridTemplateRows, grids, height, interactivity, justifyContent, justifyItems, justifySelf, layout, left, letterSpacing, lineHeight, listStylePosition, listStyleType, margin, marginBottom, marginLeft, marginRight, marginTop, maskSize, maxHeight, maxWidth, minHeight, minWidth, mx, my, objectFit, opacity, order, outline, outlineColor, outlineStyle, outlineWidth, overflow, overflowX, overflowY, overscrollBehavior, padding, paddingBottom, paddingLeft, paddingRight, paddingTop, pointerEvents, position, px, py, resize, right, ring, ringColor, ringInset, rotate, row, rowGap, rpxTransformers, scale, scaleX, scaleY, sizing, skewX, skewY, space$1 as space, spaceX, spaceXReverse, spaceY, spaceYReverse, stroke, style, svg, system, tableLayout, tables, text, textAlign, textDecoration, textOverflow, textShadow, textTransform, th, themeGetter, top, transform, transformOrigin, transforms, transition, transitionDelay, transitionDuration, transitionProperty, transitionTimingFunction, transitions$1 as transitions, translateX, translateY, typography, up, userSelect, verticalAlign, visibility, whiteSpace, width, zIndex };\n//# sourceMappingURL=index.esm.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar utils_1 = require(\"./utils\");\nvar GoogleTagManager = function (_a) {\n var _b = (_a === void 0 ? {} : _a).dataLayerName, dataLayerName = _b === void 0 ? 'dataLayer' : _b;\n return function (events) {\n if (typeof window === 'undefined') {\n return;\n }\n if (!window[dataLayerName] ||\n typeof window[dataLayerName].push !== 'function') {\n throw new Error(\"redux-beacon error: window.\" + dataLayerName + \" is not defined. Have you forgotten to include Google Tag Manager and dataLayer?\");\n }\n events.forEach(function (event) {\n if (typeof event === 'object') {\n window[dataLayerName].push(utils_1.convertFromGoogleAnalyticsEventIfNeeded(event));\n }\n });\n };\n};\nexports.default = GoogleTagManager;\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar offline_web_1 = require(\"./offline-web\");\nexports.default = offline_web_1.default;\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { getScreens, system, getBreakpointMax, getBreakpointMin } from '@xstyled/system';\nimport { obj, string, func, cascade } from '@xstyled/util';\n\nfunction useThemeScreens(theme) {\n return getScreens({ theme });\n}\nfunction useThemeMinValue(theme, key) {\n const screens = useThemeScreens(theme);\n const value = screens[key];\n return value === 0 ? null : value;\n}\nfunction useThemeMaxValue(theme, key) {\n const screens = useThemeScreens(theme);\n const breakPoint = screens[key];\n return breakPoint === 0 ? null : breakPoint - 0.02;\n}\nfunction useViewportWidth() {\n const [width, setWidth] = React.useState(typeof window === \"undefined\" ? null : window.innerWidth);\n React.useEffect(() => {\n function handleResize() {\n setWidth(window.innerWidth);\n }\n window.addEventListener(\"resize\", handleResize);\n setWidth(window.innerWidth);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n return width;\n}\nfunction useThemeBreakpoint(theme) {\n const screns = useThemeScreens(theme);\n const width = useViewportWidth();\n return React.useMemo(() => {\n return Object.keys(screns).reverse().find((screen) => width !== null && width > screns[screen]) || null;\n }, [screns, width]);\n}\nfunction useThemeUp(theme, key) {\n const value = useThemeMinValue(theme, key);\n const width = useViewportWidth();\n return width !== null && value !== null && width >= value;\n}\nfunction useThemeDown(theme, key) {\n const value = useThemeMaxValue(theme, key);\n const width = useViewportWidth();\n return width !== null && value !== null && width < value;\n}\n\nconst join = (...args) => args.filter(Boolean).join(\".\");\nconst toVarName = (key) => `--${key.replace(/\\./g, \"-\")}`;\nconst toVarValue = (key, value) => `var(${toVarName(key)}, ${value})`;\nconst toProp = (key, value) => `${key}: ${value};`;\nfunction toCustomPropertiesReferences(values, theme, keys = Object.keys(values), parent) {\n const next = Array.isArray(values) ? [] : {};\n for (const i in keys) {\n const key = keys[i];\n const value = values[key];\n const name = join(parent, key);\n if (obj(value)) {\n next[key] = toCustomPropertiesReferences(value, theme, Object.keys(value), name);\n continue;\n }\n if (string(value)) {\n next[key] = toVarValue(name, value);\n continue;\n }\n if (func(value)) {\n next[key] = toVarValue(name, cascade(value, { theme }));\n continue;\n }\n }\n return next;\n}\nfunction toCustomPropertiesDeclarations(values, theme, keys = Object.keys(values), parent, state = { value: \"\" }) {\n for (const i in keys) {\n const key = keys[i];\n const value = values[key];\n const name = join(parent, key);\n if (obj(value)) {\n toCustomPropertiesDeclarations(value, theme, Object.keys(value), name, state);\n continue;\n }\n if (string(value)) {\n state.value += toProp(toVarName(name), value);\n continue;\n }\n if (func(value)) {\n state.value += toProp(toVarName(name), cascade(value, { theme }));\n continue;\n }\n }\n return state.value;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst STORAGE_KEY = \"xstyled-color-mode\";\nconst isLocalStorageAvailable = typeof window !== \"undefined\" && (() => {\n try {\n const key = \"xstyled-test-key\";\n window.localStorage.setItem(key, key);\n window.localStorage.removeItem(key);\n return true;\n } catch (err) {\n return false;\n }\n})();\nconst storage = isLocalStorageAvailable ? {\n get: () => window.localStorage.getItem(STORAGE_KEY),\n set: (value) => {\n window.localStorage.setItem(STORAGE_KEY, value);\n },\n clear: () => window.localStorage.removeItem(STORAGE_KEY)\n} : {\n get: () => null,\n set: () => {\n },\n clear: () => {\n }\n};\nconst COLOR_MODE_CLASS_PREFIX = \"xstyled-color-mode-\";\nconst getColorModeClassName = (mode) => `${COLOR_MODE_CLASS_PREFIX}${mode}`;\nconst XSTYLED_COLORS_PREFIX = \"xstyled-colors\";\nconst SYSTEM_MODES = [\"light\", \"dark\"];\nfunction getModeTheme(theme, mode) {\n return __spreadProps(__spreadValues({}, theme), {\n colors: __spreadValues(__spreadValues({}, theme.colors), theme.colors.modes[mode])\n });\n}\nconst getMediaQuery = (query) => `@media ${query}`;\nconst getColorModeQuery = (mode) => `(prefers-color-scheme: ${mode})`;\nfunction checkHasColorModes(theme) {\n return Boolean(theme && theme.colors && theme.colors.modes);\n}\nfunction checkHasCustomPropertiesEnabled(theme) {\n return Boolean(theme && (theme.useCustomProperties === void 0 || theme.useCustomProperties));\n}\nfunction checkHasMediaQueryEnabled(theme) {\n return Boolean(theme && (theme.useColorSchemeMediaQuery === void 0 || theme.useColorSchemeMediaQuery));\n}\nfunction getInitialColorModeName(theme) {\n return theme.initialColorModeName || \"default\";\n}\nfunction getDefaultColorModeName(theme) {\n return theme.defaultColorModeName || getInitialColorModeName(theme);\n}\nfunction getUsedColorKeys(modes) {\n let keys = [];\n for (const key in modes) {\n keys = [...keys, ...Object.keys(modes[key])];\n }\n return keys;\n}\nfunction createColorStyles(theme, { targetSelector = \"body\" } = {}) {\n if (!checkHasColorModes(theme))\n return null;\n const _a = theme.colors, { modes } = _a, colors = __objRest(_a, [\"modes\"]);\n const colorKeys = getUsedColorKeys(modes);\n let styles = toCustomPropertiesDeclarations(colors, theme, colorKeys, XSTYLED_COLORS_PREFIX);\n function getModePropertiesDeclarations(mode) {\n const modeTheme = getModeTheme(theme, mode);\n const _a2 = modeTheme.colors, { modes: modes2 } = _a2, colors2 = __objRest(_a2, [\"modes\"]);\n return toCustomPropertiesDeclarations(__spreadValues(__spreadValues({}, colors2), modes2[mode]), modeTheme, colorKeys, XSTYLED_COLORS_PREFIX);\n }\n if (theme.useColorSchemeMediaQuery !== false) {\n SYSTEM_MODES.forEach((mode) => {\n if (modes[mode]) {\n const mediaQuery = getMediaQuery(getColorModeQuery(mode));\n styles += `${mediaQuery}{${getModePropertiesDeclarations(mode)}}`;\n }\n });\n }\n const initialModeName = getInitialColorModeName(theme);\n [initialModeName, ...Object.keys(modes)].forEach((mode) => {\n const key = `&.${getColorModeClassName(mode)}`;\n styles += `${key}{${getModePropertiesDeclarations(mode)}}`;\n });\n return `${targetSelector}{${styles}}`;\n}\nfunction getSystemModeMql(mode) {\n if (typeof window === \"undefined\" || window.matchMedia === void 0) {\n return null;\n }\n const query = getColorModeQuery(mode);\n return window.matchMedia(query);\n}\nfunction useSystemMode(theme) {\n const configs = React.useMemo(() => {\n if (!checkHasMediaQueryEnabled(theme))\n return [];\n return SYSTEM_MODES.map((mode) => {\n if (!checkHasColorModes(theme))\n return null;\n if (!theme.colors.modes[mode])\n return null;\n const mql = getSystemModeMql(mode);\n return mql ? { mode, mql } : null;\n }).filter(Boolean);\n }, [theme]);\n const [systemMode, setSystemMode] = React.useState(() => {\n const config = configs.find((config2) => config2.mql.matches);\n return config ? config.mode : null;\n });\n React.useEffect(() => {\n const cleans = configs.map(({ mode, mql }) => {\n const handler = ({ matches }) => {\n if (matches) {\n setSystemMode(mode);\n } else {\n setSystemMode((previousMode) => previousMode === mode ? null : mode);\n }\n };\n mql.addEventListener(\"change\", handler);\n return () => mql.removeEventListener(\"change\", handler);\n });\n return () => cleans.forEach((clean) => clean());\n });\n return systemMode;\n}\nconst useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useColorModeState(theme, { target } = {}) {\n const systemMode = useSystemMode(theme);\n const defaultColorMode = getDefaultColorModeName(theme);\n const initialColorMode = getInitialColorModeName(theme);\n const [mode, setMode] = React.useState(() => {\n if (!checkHasColorModes(theme))\n return null;\n return defaultColorMode;\n });\n const customPropertiesEnabled = checkHasCustomPropertiesEnabled(theme);\n const manualSetRef = React.useRef(false);\n const manuallySetMode = React.useCallback((value) => {\n manualSetRef.current = true;\n setMode(value);\n }, []);\n useIsomorphicLayoutEffect(() => {\n if (!checkHasColorModes(theme))\n return;\n const storedMode = storage.get();\n const initialMode = storedMode || systemMode || defaultColorMode;\n if (mode !== initialMode) {\n setMode(storedMode || systemMode || defaultColorMode);\n }\n }, []);\n useIsomorphicLayoutEffect(() => {\n if (manualSetRef.current) {\n if (mode) {\n storage.set(mode);\n } else {\n storage.clear();\n }\n }\n }, [mode]);\n useIsomorphicLayoutEffect(() => {\n const storedMode = storage.get();\n if (storedMode)\n return;\n const targetMode = systemMode || defaultColorMode;\n if (targetMode === mode)\n return;\n setMode(targetMode);\n }, [mode, systemMode, defaultColorMode]);\n useIsomorphicLayoutEffect(() => {\n if (!mode)\n return void 0;\n if (!customPropertiesEnabled)\n return void 0;\n const stored = storage.get();\n const initial = initialColorMode !== mode;\n if (!stored && !initial)\n return void 0;\n const className = getColorModeClassName(mode);\n const usedTarget = target || document.body;\n usedTarget.classList.add(className);\n return () => {\n usedTarget.classList.remove(className);\n };\n }, [customPropertiesEnabled, target, mode, initialColorMode]);\n return [mode, manuallySetMode];\n}\nfunction useColorModeTheme(theme, mode) {\n const [initialMode] = React.useState(mode);\n const customPropertiesTheme = React.useMemo(() => {\n if (!initialMode)\n return null;\n if (!checkHasCustomPropertiesEnabled(theme))\n return null;\n if (!checkHasColorModes(theme))\n return theme;\n const _a = theme.colors, { modes } = _a, colors = __objRest(_a, [\"modes\"]);\n const colorKeys = getUsedColorKeys(modes);\n return __spreadProps(__spreadValues({}, theme), {\n colors: __spreadProps(__spreadValues(__spreadValues({}, colors), toCustomPropertiesReferences(colors, theme, colorKeys, XSTYLED_COLORS_PREFIX)), {\n modes\n }),\n __rawColors: theme.colors\n });\n }, [initialMode, theme]);\n const swapModeTheme = React.useMemo(() => {\n if (!mode)\n return null;\n if (checkHasCustomPropertiesEnabled(theme))\n return null;\n if (!checkHasColorModes(theme))\n return theme;\n if (mode === getInitialColorModeName(theme)) {\n return __spreadProps(__spreadValues({}, theme), { __colorMode: mode });\n }\n return __spreadProps(__spreadValues({}, theme), {\n colors: __spreadValues(__spreadValues({}, theme.colors), theme.colors.modes[mode]),\n __colorMode: mode,\n __rawColors: theme.colors\n });\n }, [theme, mode]);\n return customPropertiesTheme || swapModeTheme;\n}\nconst ColorModeContext = React.createContext(null);\nfunction useColorMode() {\n const colorModeState = React.useContext(ColorModeContext);\n if (!colorModeState) {\n throw new Error(`[useColorMode] requires the ColorModeProvider component`);\n }\n return colorModeState;\n}\nfunction createColorModeProvider({\n ThemeContext,\n ThemeProvider,\n ColorModeStyle\n}) {\n function ColorModeProvider({\n children,\n target,\n targetSelector\n }) {\n const theme = React.useContext(ThemeContext);\n if (!theme) {\n throw new Error(\"[ColorModeProvider] requires ThemeProvider upper in the tree\");\n }\n const colorState = useColorModeState(theme, { target });\n const colorModeTheme = useColorModeTheme(theme, colorState[0]);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ColorModeStyle, {\n targetSelector\n }), /* @__PURE__ */ React.createElement(ThemeProvider, {\n theme: colorModeTheme\n }, /* @__PURE__ */ React.createElement(ColorModeContext.Provider, {\n value: colorState\n }, children)));\n }\n return ColorModeProvider;\n}\nfunction getInitScript({\n target = \"document.body\"\n} = {}) {\n return `(function() { try {\n var mode = localStorage.getItem('${STORAGE_KEY}');\n if (mode) ${target}.classList.add('${COLOR_MODE_CLASS_PREFIX}' + mode);\n } catch (e) {} })();`;\n}\nfunction getColorModeInitScriptElement(options) {\n return /* @__PURE__ */ React.createElement(\"script\", {\n key: \"xstyled-color-mode-init\",\n dangerouslySetInnerHTML: { __html: getInitScript(options) }\n });\n}\nfunction getColorModeInitScriptTag(options) {\n return `