{"version":3,"file":"static/js/main.02d3a371.js","mappings":"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AQyE,GAChBF,EAAUC,GAAYL,EAAWM,GAEjCA,GACiB,kBAAVA,GACPA,EAAMC,cAAgBtE,OAEtBmE,EAAUC,GAAYH,EAAMI,GAE5BF,EAAUC,GAAYC,GAK5B,OAAOF,CACT,CASA,SAASI,EAAaL,EAAQM,GAC5B,KAAkB,OAAXN,GAAiB,CACtB,MAAMO,EAAO5D,EAAyBqD,EAAQM,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOjD,EAAQgD,EAAKC,KAGtB,GAA0B,oBAAfD,EAAKJ,MACd,OAAO5C,EAAQgD,EAAKJ,MAExB,CAEAH,EAAStD,EAAesD,EAC1B,CAEA,SAASS,IACP,OAAO,IACT,CAEA,OAAOA,CACT,CC1LO,MAAMC,EAAO9D,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAIW+D,EAAM/D,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGWgE,EAAahE,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOWiE,EAAgBjE,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGWkE,EAASlE,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKWmE,EAAmBnE,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGWoE,EAAOpE,EAAO,CAAC,UCrRfqE,EAAOrE,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,QACA,SAGWsE,EAAMtE,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGWuE,EAASvE,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,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","sources":["../node_modules/classnames/index.js","../node_modules/dompurify/src/utils.js","../node_modules/dompurify/src/tags.js","../node_modules/dompurify/src/attrs.js","../node_modules/dompurify/src/regexp.js","../node_modules/dompurify/src/purify.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/nonce","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/react-redux/es/index.js","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","features/languageSupport/languageSupport.InitialState.ts","app/ConfigFilesHandler.tsx","features/languageSupport/languageSupport.Slice.ts","features/CSLselfAssessmentTool/questions.Slice.ts","features/CSLselfAssessmentTool/questions.InitialState.ts","app/store.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","app/hooks.ts","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/styled-components/node_modules/tslib/tslib.es6.js","../node_modules/styled-components/node_modules/stylis/src/Enum.js","../node_modules/styled-components/node_modules/stylis/src/Utility.js","../node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","../node_modules/styled-components/node_modules/stylis/src/Serializer.js","../node_modules/styled-components/node_modules/stylis/src/Prefixer.js","../node_modules/styled-components/node_modules/stylis/src/Middleware.js","../node_modules/styled-components/node_modules/stylis/src/Parser.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/tslib/tslib.es6.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/style-inject/dist/style-inject.es.js","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Button/Button.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Input/Input.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Footer/Footer.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Header/Header.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Stepper/Stepper.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/StepperMobile/StepperMobile.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/StepperButtons/StepperButtons.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/StepperButtonsOffLineTools/StepperButtonsOffLineTools.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Modal/Modal.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/Timer/Timer.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/TransitionForPages/TransitionForPages.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/CookieBanner/CookieBanner.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/TransitionForInputs/TransitionForInputs.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/DefaultsForInputs/DefaultsForInputs.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/Checkbox/Checkbox.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/Radio/Radio.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/TextField/TextField.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/TextArea/TextArea.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/Dropdown/Dropdown.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/CustomDropdown/CustomDropdown.tsx","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/sv/_lib/formatDistance/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/sv/_lib/formatLong/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/sv/_lib/formatRelative/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/sv/_lib/localize/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/sv/_lib/match/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/ui-components-react-package-45ds546dksw34/node_modules/date-fns/esm/format/index.js","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/DatePicker/DatePicker.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/AddFiles/ClipboardFiles.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/AddFiles/AddFiles.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/AddMoreFields/AddMoreFields.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/CheckboxesInCheckbox/CheckboxesInCheckbox.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/HajkMapArea/HajkMapArea.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/EditPreviewLink/EditPreviewLink.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/RadioMultipleWithInfo/RadioMultipleWithInfo.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/AttachFiles/ClipboardFiles.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/AttachFiles/AttachFiles.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/InfoOnly/InfoOnly.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/InputElements/MultipleCheckboxes/MultipleCheckboxes.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/TextElements/ServiceHeadlineAndBody/ServiceHeadlineAndBody.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/TextElements/TextHeadlineAndBody/TextHeadlineAndBody.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/TextElements/PrincipleOfPublicity/PrincipleOfPublicity.tsx","../node_modules/ui-components-react-package-45ds546dksw34/src/components/TextElements/MapHeadlineAndBody/MapHeadlineAndBody.tsx","pages/root/Root.tsx","pages/root/Error.tsx","app/common.ts","features/CSLselfAssessmentTool/InputComponents.tsx","features/CSLselfAssessmentTool/index.tsx","pages/CSLselfAssessmentTool/index.tsx","app/routes/routes.tsx","App.tsx","index.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function (x) {\n return x;\n };\n}\n\nif (!apply) {\n apply = function (fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!construct) {\n construct = function (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\nfunction addToSet(set, array, transformCaseFunc = stringToLowerCase) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue() {\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n objectHasOwnProperty,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n create,\n objectHasOwnProperty,\n} from './utils.js';\n\nconst getGlobal = function () {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, purifyHostElement) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg = {}) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS')\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR')\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES')\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR')\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS')\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS')\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS')\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR')\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES')\n ? cfg.USE_PROFILES\n : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,\n null\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(\n cloneNode(childNodes[i], true),\n getNextSibling(currentNode)\n );\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName) {\n return tagName !== 'annotation-xml' && tagName.indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * @license React\n * use-sync-external-store-shim.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 e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.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 h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = useContext(context);\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 };\n}\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 = () => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useReduxContext = /*#__PURE__*/createReduxContextHook();","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\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 = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\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 const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\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 const useSelector = /*#__PURE__*/createSelectorHook();","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\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 const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n 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}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\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 selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React 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// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\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} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\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 let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let 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; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\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 const 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} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const 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 connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\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 const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\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 && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.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 const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const 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 const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\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 const subscription = createSubscription(store, didStoreComeFromProps ? undefined : 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 const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // 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 const overriddenContextValue = React.useMemo(() => {\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\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\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 };\n\n return selector;\n }, [store, 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 const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\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(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // 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 const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\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 const renderedChild = React.useMemo(() => {\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 }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext, createReduxContextHook } 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 = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : // @ts-ignore\n createReduxContextHook(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\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 const 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 = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\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 const useDispatch = /*#__PURE__*/createDispatchHook();","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n (...funcs: StoreEnhancer[]): StoreEnhancer\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\r\nexport function isActionCreator(\r\n action: unknown\r\n): action is BaseActionCreator & Function {\r\n return (\r\n typeof action === 'function' &&\r\n 'type' in action &&\r\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\r\n hasMatchFunction(action as any)\r\n )\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware[]\r\n> extends Array {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer[]\r\n> extends Array {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n : ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n actionCreatorCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n if (actionCreatorCheck) {\r\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createActionCreatorInvariantMiddleware(actionCreatorOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (!type) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with an empty action type'\r\n )\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => NoInfer | void | Draft>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = unknown,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n (value: FulfilledValue) => FulfilledValue,\r\n (\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState,\r\n GetExtra,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch, GetExtra, AnyAction>\r\n\r\nexport type GetThunkAPI = BaseThunkAPI<\r\n GetState,\r\n GetExtra,\r\n GetDispatch,\r\n GetRejectValue,\r\n GetRejectedMeta,\r\n GetFulfilledMeta\r\n>\r\n\r\ntype GetRejectValue = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise = T | Promise | (T extends any ? Promise : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta,\r\n Returned,\r\n FulfillWithMeta>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue,\r\n GetRejectedMeta\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI\r\n) => AsyncThunkPayloadCreatorReturnValue\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch,\r\n getState: () => GetState,\r\n extra: GetExtra\r\n) => Promise<\r\n | ReturnType>\r\n | ReturnType>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick, 'getState' | 'extra'>\r\n ): MaybePromise\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue?,\r\n GetRejectedMeta?\r\n ],\r\n GetRejectValue | undefined,\r\n string,\r\n GetSerializedErrorType,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator & {\r\n pending: AsyncThunkPendingActionCreator\r\n rejected: AsyncThunkRejectedActionCreator\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs = Id<\r\n NewConfig & Omit\r\n>\r\n\r\ntype CreateAsyncThunk = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n\r\n withTypes(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk {\r\n type RejectedValue = GetRejectValue\r\n type PendingMeta = GetPendingMeta\r\n type FulfilledMeta = GetFulfilledMeta\r\n type RejectedMeta = GetRejectedMeta\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult(\r\n action: R\r\n): UnwrappedActionPayload {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n ForkOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (\r\n parentAbortSignal: AbortSignalWithReason,\r\n parentBlockingPromises: Promise[]\r\n) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return (\r\n taskExecutor: ForkedTaskExecutor,\r\n opts?: ForkOptions\r\n ): ForkedTask => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask(\r\n async (): Promise => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n if (opts?.autoJoin) {\r\n parentBlockingPromises.push(result)\r\n }\r\n\r\n return {\r\n result: createPause>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = (\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch\r\n >,\r\n signal: AbortSignal\r\n): TakePattern => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async

>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch = ThunkDispatch,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\r\n const listenerMap = new Map()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n const autoJoinPromises: Promise[] = []\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n await Promise.allSettled(autoJoinPromises)\r\n\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal(\r\n signal: AbortSignalWithReason,\r\n promise: Promise\r\n): Promise {\r\n let cleanup = noop\r\n return new Promise((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async (\r\n task: () => Promise,\r\n cleanUp?: () => void\r\n): Promise> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = (signal: AbortSignal) => {\r\n return (promise: Promise): Promise => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause(signal)\r\n return (timeoutMs: number): Promise => {\r\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n () =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isActionCreator,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n\r\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions } from './tsHelpers'\r\n","import { ILanguageSupport } from './languageSupport.Types'\r\n\r\nexport const LanguageSupport: ILanguageSupport = {\r\n activatedLanguage: 'none', //Default language\r\n languageSupportLoaded: false,\r\n supportedLanguage: [\r\n {\r\n language: 'none',\r\n supportedOverall: {\r\n ForwardButton: '',\r\n BackButton: '',\r\n StartButton: '',\r\n SendButton: '',\r\n UploadButton: '',\r\n SelectListDefault: '',\r\n MainHeadLine: '',\r\n },\r\n\r\n NameOfService: '',\r\n Headline: '',\r\n Body: '',\r\n\r\n LinksForMoreInfo: [\r\n {\r\n title: '',\r\n url: '',\r\n },\r\n ],\r\n supportedTextBlock: [{}],\r\n\r\n supportedPage: [\r\n {\r\n page: '',\r\n headline: '',\r\n body: '',\r\n },\r\n ],\r\n },\r\n ],\r\n status: 'idle',\r\n}\r\n","const defaultUrl = '' // Change this to your API URL\r\n\r\nlet localSettingUrl = '' //when empty, it will use settings in web.config\r\n\r\n//to use local setting remove // below...\r\nlocalSettingUrl = '/'\r\n\r\nexport const GetContentConfigFile = async ({ url = '', fileName = '' }: any) => {\r\n let path = `${defaultUrl}${url}/${fileName}`\r\n\r\n localSettingUrl && (path = localSettingUrl + fileName)\r\n\r\n //co-pilot: I get an cors error when trying to fetch a file from a server in react. How do I fix this?\r\n // answer:\r\n // Here's an example of how you can set these headers in a iis server (web.config) to allow CORS requests:\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n\r\n const response = await fetch(path)\r\n //const response = await fetch('/content.etjanstMall.languageSupport.json')\r\n\r\n const data = await response.json()\r\n\r\n if (!response.ok) {\r\n return { data: 'error', status: response.status }\r\n } else {\r\n return { data: data }\r\n }\r\n}\r\n\r\nexport const GetQuestionsConfigFile = async ({ url = '', fileName = '' }: any) => {\r\n let path = `${defaultUrl}${url}/${fileName}`\r\n\r\n localSettingUrl && (path = localSettingUrl + fileName)\r\n\r\n const response = await fetch(path)\r\n //const response = await fetch('/content.etjanstMall.questions.json')\r\n\r\n const data = await response.json()\r\n\r\n if (!response.ok) {\r\n return { data: 'error', status: response.status }\r\n } else {\r\n return { data: data }\r\n }\r\n}\r\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '../../app/store'\r\nimport { ILanguageSupport } from './languageSupport.Types'\r\nimport { LanguageSupport } from './languageSupport.InitialState'\r\n//import { LanguageSupport } from './old_languageSupport.Config innovationstavlingen'\r\n\r\nimport { GetContentConfigFile } from '../../app/ConfigFilesHandler'\r\n\r\nexport const initialState: ILanguageSupport = {\r\n supportedLanguage: LanguageSupport.supportedLanguage,\r\n activatedLanguage: LanguageSupport.activatedLanguage,\r\n languageSupportLoaded: false,\r\n\r\n status: 'idle',\r\n}\r\n\r\nexport const contentConfigFileToGlobalStateAsync = createAsyncThunk(\r\n 'languageSupport/GetContentConfigFileAsync',\r\n async (props: any) => {\r\n const { url, fileName } = props\r\n const response = await GetContentConfigFile({ url, fileName })\r\n //alert('response: ' + JSON.stringify(response))\r\n return response.data\r\n }\r\n)\r\n\r\nexport const LanguageSlice = createSlice({\r\n name: 'LanguageSupport',\r\n initialState,\r\n reducers: {\r\n SetLanguage: (state, action: PayloadAction) => {\r\n state.supportedLanguage = action.payload\r\n },\r\n SetActivatesLanguage: (state, action: PayloadAction) => {\r\n state.activatedLanguage = action.payload\r\n },\r\n },\r\n\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: builder => {\r\n builder\r\n\r\n //get content from config file\r\n .addCase(contentConfigFileToGlobalStateAsync.pending, state => {\r\n state.status = 'loading'\r\n })\r\n .addCase(contentConfigFileToGlobalStateAsync.fulfilled, (state, action: PayloadAction) => {\r\n const { LanguageSupport } = action.payload\r\n state.status = 'idle'\r\n state.supportedLanguage = LanguageSupport.supportedLanguage\r\n state.activatedLanguage = LanguageSupport.activatedLanguage\r\n state.languageSupportLoaded = true\r\n })\r\n .addCase(contentConfigFileToGlobalStateAsync.rejected, (state, action: PayloadAction) => {\r\n state.status = 'failed'\r\n })\r\n },\r\n})\r\n\r\nexport const { SetLanguage, SetActivatesLanguage } = LanguageSlice.actions\r\n\r\nexport const selectLanguageSupportOverAll = (state: RootState) => {\r\n //console.log('languageSupport', state.languageSupport)\r\n const supports = state.languageSupport.supportedLanguage\r\n let blob: any = {}\r\n supports.map((language: any) => {\r\n if (language.language == state.languageSupport.activatedLanguage) {\r\n blob = language\r\n }\r\n })\r\n return blob\r\n}\r\n\r\nexport const selectLanguageSupportForFeature = (state: RootState, page: string) => {\r\n //console.log('languageSupport', state.languageSupport)\r\n const blob = selectLanguageSupportOverAll(state)\r\n let pageBlob: any = {}\r\n blob.supportedPage.map((supported: any) => {\r\n if (supported.page == page) {\r\n pageBlob = supported\r\n }\r\n })\r\n return pageBlob\r\n}\r\n\r\nexport const selectMainHeadline = (state: RootState) => {\r\n const blob = selectLanguageSupportOverAll(state)\r\n return blob.supportedOverall.MainHeadLine\r\n}\r\n\r\nexport const selectStatusLanguageSupportContent = (state: RootState) => state.languageSupport.status\r\n\r\nexport const selectActivatedLanguage = (state: RootState) => state.languageSupport.activatedLanguage\r\n\r\nexport const selectLanguageSupportState = (state: RootState) => state.languageSupport\r\n\r\nexport default LanguageSlice.reducer\r\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '../../app/store'\r\nimport { IExampleState } from '../../app/types'\r\nimport { EditHandler, SubmitHandler, GetTokenHandler } from '../../app/ApiHandler'\r\nimport { ExampleConfig } from './questions.InitialState'\r\nimport { GetQuestionsConfigFile } from '../../app/ConfigFilesHandler'\r\n\r\nexport const initialState: IExampleState = {\r\n data: ExampleConfig,\r\n stepper: [\r\n {\r\n Step: 0,\r\n StepperText: 'InitText',\r\n Text: '',\r\n languageSupport: [{ language: 'sv', StepperText: '', Text: '' }],\r\n },\r\n ],\r\n status: 'idle',\r\n confirmed: false,\r\n caseClosed: false,\r\n editOngoing: false,\r\n editEnabled: false,\r\n saved: 'not yet!',\r\n questionsLoaded: false,\r\n}\r\n\r\nexport const questionsConfigFileToGlobalStateAsync = createAsyncThunk(\r\n 'questions/GetQuestionsConfigFileAsync',\r\n async (props: any) => {\r\n const { url, fileName } = props\r\n const response = await GetQuestionsConfigFile({ url, fileName })\r\n //alert('response: ' + JSON.stringify(response))\r\n return response.data\r\n }\r\n)\r\n\r\nexport const inputComponentLibrarySlice = createSlice({\r\n name: 'CSL',\r\n initialState,\r\n reducers: {\r\n AddQuestionsFromLanguageSupport: (state, action: PayloadAction) => {\r\n state.data = [...action.payload]\r\n },\r\n AddStepsFromLanguageSupport: (state, action: PayloadAction) => {\r\n state.stepper = [...action.payload]\r\n },\r\n AddAnswer: (state, action: PayloadAction) => {\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n //Answer is set when matching row is found AND answer is not same as question (sometimes occurs as first option in a select)\r\n if (qObject.Id == action.payload.Id && qObject.Question != action.payload.Answer) {\r\n qObject.Answer = action.payload.Answer\r\n //qObject.Question = action.payload.Question\r\n qObject.isTouched = true\r\n\r\n return qObject\r\n }\r\n return qObject\r\n }),\r\n ]\r\n },\r\n AddQuestionArrayAnswerId: (state, action: PayloadAction) => {\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n //Answer is set when matching row is found AND answer is not same as question (sometimes occurs as first option in a select)\r\n if (qObject.Id == action.payload.Id && qObject.Question != action.payload.Answer) {\r\n qObject.questionArrayAnswerId = action.payload.questionArrayAnswerId\r\n //qObject.Question = action.payload.Question\r\n qObject.isTouched = true\r\n\r\n return qObject\r\n }\r\n return qObject\r\n }),\r\n ]\r\n },\r\n AddQuestionDisplayed: (state, action: PayloadAction) => {\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n if (qObject.Id == action.payload.Id) {\r\n qObject.isDisplayed = action.payload.isDisplayed\r\n return qObject\r\n }\r\n return qObject\r\n }),\r\n ]\r\n },\r\n\r\n AddError: (state, action: PayloadAction) => {\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n //console.log('AddError', JSON.stringify(action.payload))\r\n if (qObject.Id == action.payload.Id) {\r\n qObject.error = true\r\n\r\n return qObject\r\n }\r\n return qObject\r\n }),\r\n ]\r\n },\r\n RemoveErrors: (state, action: PayloadAction) => {\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n qObject.error = false\r\n return qObject\r\n }),\r\n ]\r\n },\r\n RemoveAll: state => {\r\n state.data = []\r\n },\r\n RemoveAllAnswersForward: (state, action: PayloadAction) => {\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n if (qObject.Order > action.payload.Order) {\r\n qObject.Answer = ''\r\n qObject.isTouched = false\r\n }\r\n return qObject\r\n }),\r\n ]\r\n },\r\n RemoveAllQuestionsDisplayedInStep: (state, action: PayloadAction) => {\r\n const { activeStep } = action.payload\r\n state.data = [\r\n ...state.data.map((qObject: any, index: number) => {\r\n if (qObject.Step >= activeStep) {\r\n qObject.isDisplayed = false\r\n }\r\n return qObject\r\n }),\r\n ]\r\n },\r\n },\r\n // The `extraReducers` field lets the slice handle actions defined elsewhere,\r\n // including actions generated by createAsyncThunk or in other slices.\r\n extraReducers: builder => {\r\n builder\r\n\r\n //get content from config file\r\n .addCase(questionsConfigFileToGlobalStateAsync.pending, state => {\r\n state.status = 'loading'\r\n })\r\n .addCase(questionsConfigFileToGlobalStateAsync.fulfilled, (state, action: PayloadAction) => {\r\n const { data, stepper } = action.payload\r\n state.status = 'idle'\r\n state.stepper = stepper\r\n state.data = data\r\n state.questionsLoaded = true\r\n })\r\n .addCase(questionsConfigFileToGlobalStateAsync.rejected, (state, action: PayloadAction) => {\r\n state.status = 'failed'\r\n })\r\n },\r\n})\r\n\r\nexport const {\r\n AddAnswer,\r\n AddError,\r\n AddQuestionArrayAnswerId,\r\n AddQuestionDisplayed,\r\n RemoveAllQuestionsDisplayedInStep,\r\n RemoveErrors,\r\n RemoveAll,\r\n AddQuestionsFromLanguageSupport,\r\n RemoveAllAnswersForward,\r\n AddStepsFromLanguageSupport,\r\n} = inputComponentLibrarySlice.actions\r\n\r\nexport const selectStateCSLselfAssessmentTool = (state: RootState) => state.CSLselfAssessmentTool\r\n\r\nexport const selectStepQuestions = (state: RootState, step: number, totalSteps: number) => {\r\n if (step == totalSteps) {\r\n return state.CSLselfAssessmentTool.data\r\n } else {\r\n return state.CSLselfAssessmentTool.data.filter((qObject: any, index: number) => {\r\n return qObject.Step == step\r\n })\r\n }\r\n}\r\n\r\nexport const selectQuestionsFromLanguageSupport = (state: RootState, activatedLanguage: string) => {\r\n return state.CSLselfAssessmentTool.data.map((qObject: any, index: number) => {\r\n let languageSupport = qObject.languageSupport.find((lang: any) => lang.language == activatedLanguage)\r\n\r\n let languageSupportExists = true\r\n if (!languageSupport) {\r\n languageSupport = {}\r\n languageSupportExists = false\r\n }\r\n\r\n return {\r\n ...qObject,\r\n Question: languageSupport.Question,\r\n Options: languageSupport.Options,\r\n errorSpecificMessenge: languageSupport.errorSpecificMessenge,\r\n About: languageSupport.About,\r\n MoreInfo: languageSupport.MoreInfo,\r\n CategoryDescription: languageSupport.CategoryDescription,\r\n Category: languageSupport.Category,\r\n questionArray: languageSupport.questionArray,\r\n languageSupportExists: languageSupportExists,\r\n }\r\n })\r\n}\r\n\r\nexport const selectStepsFromLanguageSupport = (state: RootState, activatedLanguage: string) => {\r\n //console.log(state.CSLselfAssessmentTool.stepper)\r\n return state.CSLselfAssessmentTool.stepper.map((stepperObject: any, index: number) => {\r\n let languageSupport = stepperObject.languageSupport.find((lang: any) => lang.language == activatedLanguage)\r\n let languageSupportExists = true\r\n\r\n if (!languageSupport) {\r\n languageSupport = {}\r\n languageSupportExists = false\r\n }\r\n\r\n return {\r\n ...stepperObject,\r\n StepperText: languageSupport.StepperText,\r\n Text: languageSupport.Text,\r\n PreviewHeadline: languageSupport.PreviewHeadline,\r\n }\r\n })\r\n}\r\n\r\nexport default inputComponentLibrarySlice.reducer\r\n","export const ExampleConfig = [\r\n // ----------Step 1-----------\r\n {\r\n Id: 1,\r\n Order: 1,\r\n Step: 1,\r\n Category: 'Komponenter enklare',\r\n CategoryOrder: 1,\r\n Question: '',\r\n Answer: '',\r\n PlaceholderText: '',\r\n QuestionType: 'Checkbox',\r\n isTouched: false,\r\n error: false,\r\n errorType: ['notEmpty'],\r\n errorSpecificMessenge: 'Du måste skriva något',\r\n languageSupport: [\r\n {\r\n language: 'swe',\r\n Question: 'Checkbox ifrån komponentbiblioteket',\r\n\r\n errorSpecificMessenge: 'Ange Name',\r\n },\r\n {\r\n language: 'eng',\r\n Question: 'Checkbox from the component library',\r\n\r\n errorSpecificMessenge: 'Enter the name',\r\n },\r\n ],\r\n },\r\n]\r\n","import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit'\r\n\r\nimport languageReducer from '../features/languageSupport/languageSupport.Slice'\r\n\r\nimport CSLselfAssessmentToolReducer from '../features/CSLselfAssessmentTool/questions.Slice'\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n CSLselfAssessmentTool: CSLselfAssessmentToolReducer,\r\n languageSupport: languageReducer,\r\n },\r\n})\r\n\r\nexport type AppDispatch = typeof store.dispatch\r\nexport type RootState = ReturnType\r\nexport type AppThunk = ThunkAction>\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState` is correct\r\n - `Reducer` is being passed in. In this case, actually `CombinedState` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\ntype Enhancers = ReadonlyArray\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions & Dispatch\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore, A, M> &\r\n ExtractStoreExtensions\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `

`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a