{"version":3,"file":"static/js/main.6fd6c801.js","mappings":"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","sources":["../node_modules/invariant/browser.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.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/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/void-elements/index.js","../node_modules/warning/warning.js","../node_modules/classnames/index.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/publicPath","../node_modules/recoil/es/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/@amplitude/analytics-types/src/logger.ts","../node_modules/@amplitude/analytics-core/src/utils/debug.ts","../node_modules/@amplitude/analytics-types/src/status.ts","../node_modules/@amplitude/analytics-core/src/utils/return-wrapper.ts","../node_modules/@amplitude/analytics-core/src/messages.ts","../node_modules/@amplitude/analytics-core/src/constants.ts","../node_modules/@amplitude/analytics-core/src/utils/result-builder.ts","../node_modules/@amplitude/analytics-core/src/logger.ts","../node_modules/@amplitude/analytics-core/src/config.ts","../node_modules/@amplitude/analytics-core/src/utils/uuid.ts","../node_modules/@amplitude/analytics-core/src/plugins/destination.ts","../node_modules/@amplitude/analytics-types/src/event.ts","../node_modules/@amplitude/analytics-core/src/utils/chunk.ts","../node_modules/@amplitude/analytics-core/src/utils/valid-properties.ts","../node_modules/@amplitude/analytics-core/src/identify.ts","../node_modules/@amplitude/analytics-core/src/revenue.ts","../node_modules/@amplitude/analytics-core/src/timeline.ts","../node_modules/@amplitude/analytics-core/src/utils/event-builder.ts","../node_modules/@amplitude/analytics-core/src/core-client.ts","../node_modules/@amplitude/analytics-client-common/src/default-tracking.ts","../node_modules/@amplitude/analytics-client-common/src/attribution/constants.ts","../node_modules/@amplitude/analytics-client-common/src/attribution/helpers.ts","../node_modules/@amplitude/analytics-client-common/src/global-scope.ts","../node_modules/@amplitude/analytics-client-common/src/query-params.ts","../node_modules/@amplitude/analytics-client-common/src/attribution/campaign-parser.ts","../node_modules/@amplitude/analytics-client-common/src/session.ts","../node_modules/@amplitude/analytics-client-common/src/attribution/web-attribution.ts","../node_modules/@amplitude/analytics-client-common/src/storage/helpers.ts","../node_modules/@amplitude/analytics-connector/dist/analytics-connector.esm.js","../node_modules/@amplitude/analytics-client-common/src/analytics-connector.ts","../node_modules/@amplitude/analytics-client-common/src/plugins/identity.ts","../node_modules/@amplitude/analytics-browser/src/utils/snippet-helper.ts","../node_modules/@amplitude/analytics-client-common/src/language.ts","../node_modules/@amplitude/analytics-browser/src/plugins/context.ts","../node_modules/@amplitude/analytics-browser/src/version.ts","../node_modules/@amplitude/analytics-core/src/storage/memory.ts","../node_modules/@amplitude/analytics-client-common/src/cookie-name.ts","../node_modules/@amplitude/analytics-client-common/src/storage/cookie.ts","../node_modules/@amplitude/analytics-core/src/transports/base.ts","../node_modules/@amplitude/analytics-client-common/src/transports/fetch.ts","../node_modules/@amplitude/analytics-browser/src/storage/browser-storage.ts","../node_modules/@amplitude/analytics-browser/src/storage/local-storage.ts","../node_modules/@amplitude/analytics-browser/src/storage/session-storage.ts","../node_modules/@amplitude/analytics-browser/src/transports/xhr.ts","../node_modules/@amplitude/analytics-browser/src/transports/send-beacon.ts","../node_modules/@amplitude/analytics-browser/src/cookie-migration/index.ts","../node_modules/@amplitude/analytics-browser/src/constants.ts","../node_modules/@amplitude/analytics-browser/src/config.ts","../node_modules/@amplitude/plugin-page-view-tracking-browser/src/utils.ts","../node_modules/@amplitude/plugin-page-view-tracking-browser/src/page-view-tracking.ts","../node_modules/@amplitude/analytics-browser/src/plugins/form-interaction-tracking.ts","../node_modules/@amplitude/analytics-browser/src/plugins/file-download-tracking.ts","../node_modules/@amplitude/analytics-browser/src/det-notification.ts","../node_modules/@amplitude/analytics-browser/src/plugins/network-connectivity-checker.ts","../node_modules/@amplitude/analytics-browser/src/browser-client.ts","../node_modules/@amplitude/analytics-types/src/offline.ts","../node_modules/@amplitude/analytics-browser/src/browser-client-factory.ts","../node_modules/@amplitude/analytics-browser/src/index.ts","env/environment.js","util/Amplitude.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/html-parse-stringify/src/parse-tag.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/html-parse-stringify/src/index.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/TransWithoutContext.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/index.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/i18next-http-backend/esm/index.js","i18n.js","../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-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/dom-helpers/esm/ownerDocument.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/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/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useMediaQuery.js","../node_modules/@restart/hooks/esm/useBreakpoint.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/ModalManager.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/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/dom-helpers/esm/hasClass.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/react-bootstrap/esm/Offcanvas.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/NavbarText.js","../node_modules/react-bootstrap/esm/Navbar.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","constants.js","utils.js","assets/images/svg-images/globe.svg","components/Header/Header.jsx","components/HeroPanel/HeroPanel.jsx","../node_modules/react-bootstrap/esm/Image.js","components/InfoGraphic/InfoGraphic.jsx","components/LearnPanel/LearnPanel.jsx","components/VideoPanel/VideoTracking.jsx","components/VideoPanel/VideoPlayer.jsx","components/VideoPanel/VideoPanel.jsx","components/ProcessInfoPanel/ProcessInfoPanel.jsx","components/WhatYouNeedPanel/WhatYouNeedPanel.jsx","components/FAQItem/FAQItem.jsx","components/FAQPanel/FAQData.jsx","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","components/FAQPanel/FAQPanel.jsx","../node_modules/react-bootstrap/esm/Anchor.js","components/Footer/FooterPanel.jsx","../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/ElementChildren.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/react-bootstrap/esm/AlertHeading.js","../node_modules/react-bootstrap/esm/AlertLink.js","../node_modules/react-bootstrap/esm/Alert.js","../node_modules/@restart/ui/esm/TabPanel.js","../node_modules/@restart/ui/esm/Tabs.js","../node_modules/react-bootstrap/esm/getTabTransitionComponent.js","../node_modules/react-bootstrap/esm/TabContainer.js","../node_modules/react-bootstrap/esm/TabContent.js","../node_modules/react-bootstrap/esm/TabPane.js","../node_modules/react-bootstrap/esm/Tab.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/react-bootstrap/esm/Nav.js","../node_modules/react-bootstrap/esm/Tabs.js","recoilState.js","components/UtilityProgramResults/UtilityPrograms.jsx","components/UtilityProgramResults/UtilityProgramResults.jsx","components/KmiSuccessMessage/KmiSuccessMessage.jsx","clients/EnrollmentBroker.js","components/NoParticipatingUtilitiesFound/NoParticipatingUtilitiesFound.jsx","components/ZipCodeSearch/ZipCodeSearch.jsx","components/PopupModal/PopupModal.jsx","pages/LandingPage/LandingPage.jsx","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/react-bootstrap/esm/createUtilityClasses.js","../node_modules/react-bootstrap/esm/Stack.js","components/LoadingScreen/LoadingScreen.jsx","components/VehicleSelection/VehicleSelection.jsx","components/FordAccountInformation/FordAccountInformation.jsx","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/react-bootstrap/esm/getInitialPopperStyles.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","components/UtilityAccountInformation/UtilityAccountInformation.jsx","components/ProgramComponent/ProgramComponent.jsx","components/TnCModal/TnCModal.jsx","components/TermsAndConditions/TermsAndConditions.jsx","pages/EnrollmentPage/EnrollmentPage.jsx","pages/ErrorPage/ErrorPage.jsx","components/EnrollmentSuccessVehicleDisplay/EnrollmentSuccessVehicleDisplay.jsx","components/EnrollmentSuccess/EnrollmentCompletePage.jsx","components/DashboardWelcomeBanner/DashboardWelcomeBanner.jsx","../node_modules/react-bootstrap/esm/CardBody.js","../node_modules/react-bootstrap/esm/CardFooter.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardImgOverlay.js","../node_modules/react-bootstrap/esm/CardLink.js","../node_modules/react-bootstrap/esm/CardSubtitle.js","../node_modules/react-bootstrap/esm/CardText.js","../node_modules/react-bootstrap/esm/CardTitle.js","../node_modules/react-bootstrap/esm/Card.js","components/DashboardSupportFeedback/DashboardSupportFeedback.jsx","components/DashboardSupportTnC/DashboardSupportTnC.jsx","components/DashboardSupportContact/DashboardSupportContact.jsx","components/DashboardSupportContactCanada/DashboardSupportContactCanada.jsx","components/DashboardSupport/DashboardSupport.jsx","components/DashboardUnenrollFeedbackForm/DashboardUnenrollFeedbackForm.jsx","components/DashboardUnenrollVehicleModal/DashboardUnenrollVehicleModal.jsx","components/DashboardVehicleSelection/DashboardVehicleSelection.jsx","pages/DashboardPage/DashboardPage.jsx","globals.js","pages/EnrollmentPage/Auth.jsx","util/PrivateRoute.js","util/DashboardHandler.js","components/FMALogin/FMALoginComponent.js","pages/NoMatchErrorPage/NoMatchErrorPage.jsx","index.jsx"],"sourcesContent":["/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","/**\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&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(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=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(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=Sg(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);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(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,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;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;zj(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;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(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=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&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 Ij(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 zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);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(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(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 Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(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:Ci(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=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(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 Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(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(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(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=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=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)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(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)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(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*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=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()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();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,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(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:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(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=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(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),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(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(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(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=mh(-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);bh(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);bh(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}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(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 $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(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 Pg(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 Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(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 pj(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 Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(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 al(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 bl(a,b,c,d,e,f,g,h,k){a=new al(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};kh(f);return a}function cl(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 * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","/**\n * Copyright (c) 2014-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\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\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\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) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\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","// 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](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__.p = \"/fordenergyrewards/\";","import react from 'react';\nimport reactDom from 'react-dom';\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction err(message) {\n const error = new Error(message); // In V8, Error objects keep the closure scope chain alive until the\n // err.stack property is accessed.\n\n if (error.stack === undefined) {\n // IE sets the stack only if error is thrown\n try {\n throw error;\n } catch (_) {} // eslint-disable-line fb-www/no-unused-catch-bindings, no-empty\n\n }\n\n return error;\n}\n\nvar err_1 = err;\n\n// @oss-only\n\n\nvar Recoil_err = err_1;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\n// Split declaration and implementation to allow this function to pretend to\n// check for actual instance of Promise instead of something with a `then`\n// method.\n// eslint-disable-next-line no-redeclare\nfunction isPromise(p) {\n return !!p && typeof p.then === 'function';\n}\n\nvar Recoil_isPromise = isPromise;\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n\n throw Recoil_err(message !== null && message !== void 0 ? message : 'Got unexpected null or undefined');\n}\n\nvar Recoil_nullthrows = nullthrows;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nclass BaseLoadable {\n getValue() {\n throw Recoil_err('BaseLoadable');\n }\n\n toPromise() {\n throw Recoil_err('BaseLoadable');\n }\n\n valueMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n valueOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected value, but in \"${this.state}\" state`);\n }\n\n promiseMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n promiseOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected promise, but in \"${this.state}\" state`);\n }\n\n errorMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n errorOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected error, but in \"${this.state}\" state`);\n }\n\n is(other) {\n // $FlowFixMe[prop-missing]\n return other.state === this.state && other.contents === this.contents;\n }\n\n map(_map) {\n throw Recoil_err('BaseLoadable');\n }\n\n}\n\nclass ValueLoadable extends BaseLoadable {\n constructor(value) {\n super();\n\n _defineProperty(this, \"state\", 'hasValue');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = value;\n }\n\n getValue() {\n return this.contents;\n }\n\n toPromise() {\n return Promise.resolve(this.contents);\n }\n\n valueMaybe() {\n return this.contents;\n }\n\n valueOrThrow() {\n return this.contents;\n }\n\n promiseMaybe() {\n return undefined;\n }\n\n errorMaybe() {\n return undefined;\n }\n\n map(map) {\n try {\n const next = map(this.contents);\n return Recoil_isPromise(next) ? loadableWithPromise(next) : isLoadable(next) ? next : loadableWithValue(next);\n } catch (e) {\n return Recoil_isPromise(e) ? // If we \"suspended\", then try again.\n // errors and subsequent retries will be handled in 'loading' case\n // $FlowFixMe[prop-missing]\n loadableWithPromise(e.next(() => this.map(map))) : loadableWithError(e);\n }\n }\n\n}\n\nclass ErrorLoadable extends BaseLoadable {\n constructor(error) {\n super();\n\n _defineProperty(this, \"state\", 'hasError');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = error;\n }\n\n getValue() {\n throw this.contents;\n }\n\n toPromise() {\n return Promise.reject(this.contents);\n }\n\n valueMaybe() {\n return undefined;\n }\n\n promiseMaybe() {\n return undefined;\n }\n\n errorMaybe() {\n return this.contents;\n }\n\n errorOrThrow() {\n return this.contents;\n }\n\n map(_map) {\n // $FlowIssue[incompatible-return]\n return this;\n }\n\n}\n\nclass LoadingLoadable extends BaseLoadable {\n constructor(promise) {\n super();\n\n _defineProperty(this, \"state\", 'loading');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = promise;\n }\n\n getValue() {\n throw this.contents;\n }\n\n toPromise() {\n return this.contents;\n }\n\n valueMaybe() {\n return undefined;\n }\n\n promiseMaybe() {\n return this.contents;\n }\n\n promiseOrThrow() {\n return this.contents;\n }\n\n errorMaybe() {\n return undefined;\n }\n\n map(map) {\n return loadableWithPromise(this.contents.then(value => {\n const next = map(value);\n\n if (isLoadable(next)) {\n const nextLoadable = next;\n\n switch (nextLoadable.state) {\n case 'hasValue':\n return nextLoadable.contents;\n\n case 'hasError':\n throw nextLoadable.contents;\n\n case 'loading':\n return nextLoadable.contents;\n }\n } // $FlowIssue[incompatible-return]\n\n\n return next;\n }) // $FlowFixMe[incompatible-call]\n .catch(e => {\n if (Recoil_isPromise(e)) {\n // we were \"suspended,\" try again\n return e.then(() => this.map(map).contents);\n }\n\n throw e;\n }));\n }\n\n}\n\nfunction loadableWithValue(value) {\n return Object.freeze(new ValueLoadable(value));\n}\n\nfunction loadableWithError(error) {\n return Object.freeze(new ErrorLoadable(error));\n}\n\nfunction loadableWithPromise(promise) {\n return Object.freeze(new LoadingLoadable(promise));\n}\n\nfunction loadableLoading() {\n return Object.freeze(new LoadingLoadable(new Promise(() => {})));\n}\n\nfunction loadableAllArray(inputs) {\n return inputs.every(i => i.state === 'hasValue') ? loadableWithValue(inputs.map(i => i.contents)) : inputs.some(i => i.state === 'hasError') ? loadableWithError(Recoil_nullthrows(inputs.find(i => i.state === 'hasError'), 'Invalid loadable passed to loadableAll').contents) : loadableWithPromise(Promise.all(inputs.map(i => i.contents)));\n}\n\nfunction loadableAll(inputs) {\n const unwrapedInputs = Array.isArray(inputs) ? inputs : Object.getOwnPropertyNames(inputs).map(key => inputs[key]);\n const normalizedInputs = unwrapedInputs.map(x => isLoadable(x) ? x : Recoil_isPromise(x) ? loadableWithPromise(x) : loadableWithValue(x));\n const output = loadableAllArray(normalizedInputs);\n return Array.isArray(inputs) ? // $FlowIssue[incompatible-return]\n output : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n // $FlowIssue[incompatible-call]\n output.map(outputs => Object.getOwnPropertyNames(inputs).reduce( // $FlowFixMe[invalid-computed-prop]\n (out, key, idx) => ({ ...out,\n [key]: outputs[idx]\n }), {}));\n}\n\nfunction isLoadable(x) {\n return x instanceof BaseLoadable;\n}\n\nconst LoadableStaticInterface = {\n of: value => Recoil_isPromise(value) ? loadableWithPromise(value) : isLoadable(value) ? value : loadableWithValue(value),\n error: error => loadableWithError(error),\n // $FlowIssue[incompatible-return]\n loading: () => loadableLoading(),\n // $FlowIssue[unclear-type]\n all: loadableAll,\n isLoadable\n};\nvar Recoil_Loadable = {\n loadableWithValue,\n loadableWithError,\n loadableWithPromise,\n loadableLoading,\n loadableAll,\n isLoadable,\n RecoilLoadable: LoadableStaticInterface\n};\n\nvar Recoil_Loadable_1 = Recoil_Loadable.loadableWithValue;\nvar Recoil_Loadable_2 = Recoil_Loadable.loadableWithError;\nvar Recoil_Loadable_3 = Recoil_Loadable.loadableWithPromise;\nvar Recoil_Loadable_4 = Recoil_Loadable.loadableLoading;\nvar Recoil_Loadable_5 = Recoil_Loadable.loadableAll;\nvar Recoil_Loadable_6 = Recoil_Loadable.isLoadable;\nvar Recoil_Loadable_7 = Recoil_Loadable.RecoilLoadable;\n\nvar Recoil_Loadable$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n loadableWithValue: Recoil_Loadable_1,\n loadableWithError: Recoil_Loadable_2,\n loadableWithPromise: Recoil_Loadable_3,\n loadableLoading: Recoil_Loadable_4,\n loadableAll: Recoil_Loadable_5,\n isLoadable: Recoil_Loadable_6,\n RecoilLoadable: Recoil_Loadable_7\n});\n\nconst env = {\n RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED: true,\n // Note: RECOIL_GKS_ENABLED settings will only be honored in OSS builds of Recoil\n RECOIL_GKS_ENABLED: new Set(['recoil_hamt_2020', 'recoil_sync_external_store', 'recoil_suppress_rerender_in_callback', 'recoil_memory_managament_2020'])\n};\n\nfunction readProcessEnvBooleanFlag(name, set) {\n var _process$env$name, _process$env$name$toL;\n\n const sanitizedValue = (_process$env$name = process.env[name]) === null || _process$env$name === void 0 ? void 0 : (_process$env$name$toL = _process$env$name.toLowerCase()) === null || _process$env$name$toL === void 0 ? void 0 : _process$env$name$toL.trim();\n\n if (sanitizedValue == null || sanitizedValue === '') {\n return;\n }\n\n const allowedValues = ['true', 'false'];\n\n if (!allowedValues.includes(sanitizedValue)) {\n throw Recoil_err(`process.env.${name} value must be 'true', 'false', or empty: ${sanitizedValue}`);\n }\n\n set(sanitizedValue === 'true');\n}\n\nfunction readProcessEnvStringArrayFlag(name, set) {\n var _process$env$name2;\n\n const sanitizedValue = (_process$env$name2 = process.env[name]) === null || _process$env$name2 === void 0 ? void 0 : _process$env$name2.trim();\n\n if (sanitizedValue == null || sanitizedValue === '') {\n return;\n }\n\n set(sanitizedValue.split(/\\s*,\\s*|\\s+/));\n}\n/**\n * Allow NodeJS/NextJS/etc to set the initial state through process.env variable\n * Note: we don't assume 'process' is available in all runtime environments\n *\n * @see https://github.com/facebookexperimental/Recoil/issues/733\n */\n\n\nfunction applyProcessEnvFlagOverrides() {\n var _process;\n\n // note: this check is needed in addition to the check below, runtime error will occur without it!\n // eslint-disable-next-line fb-www/typeof-undefined\n if (typeof process === 'undefined') {\n return;\n }\n\n if (((_process = process) === null || _process === void 0 ? void 0 : _process.env) == null) {\n return;\n }\n\n readProcessEnvBooleanFlag('RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED', value => {\n env.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED = value;\n });\n readProcessEnvStringArrayFlag('RECOIL_GKS_ENABLED', value => {\n value.forEach(gk => {\n env.RECOIL_GKS_ENABLED.add(gk);\n });\n });\n}\n\napplyProcessEnvFlagOverrides();\nvar Recoil_RecoilEnv = env;\n\nfunction Recoil_gkx_OSS(gk) {\n return Recoil_RecoilEnv.RECOIL_GKS_ENABLED.has(gk);\n}\n\nRecoil_gkx_OSS.setPass = gk => {\n Recoil_RecoilEnv.RECOIL_GKS_ENABLED.add(gk);\n};\n\nRecoil_gkx_OSS.setFail = gk => {\n Recoil_RecoilEnv.RECOIL_GKS_ENABLED.delete(gk);\n};\n\nRecoil_gkx_OSS.clear = () => {\n Recoil_RecoilEnv.RECOIL_GKS_ENABLED.clear();\n};\n\nvar Recoil_gkx = Recoil_gkx_OSS; // @oss-only\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction recoverableViolation(message, _projectName, {\n error\n} = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(message, error);\n }\n\n return null;\n}\n\nvar recoverableViolation_1 = recoverableViolation;\n\n// @oss-only\n\n\nvar Recoil_recoverableViolation = recoverableViolation_1;\n\nvar _createMutableSource, _useMutableSource, _useSyncExternalStore;\n\n\n\n\n\n\n\nconst createMutableSource = // flowlint-next-line unclear-type:off\n(_createMutableSource = react.createMutableSource) !== null && _createMutableSource !== void 0 ? _createMutableSource : react.unstable_createMutableSource;\nconst useMutableSource = // flowlint-next-line unclear-type:off\n(_useMutableSource = react.useMutableSource) !== null && _useMutableSource !== void 0 ? _useMutableSource : react.unstable_useMutableSource; // https://github.com/reactwg/react-18/discussions/86\n\nconst useSyncExternalStore = // flowlint-next-line unclear-type:off\n(_useSyncExternalStore = react.useSyncExternalStore) !== null && _useSyncExternalStore !== void 0 ? _useSyncExternalStore : // flowlint-next-line unclear-type:off\nreact.unstable_useSyncExternalStore;\nlet ReactRendererVersionMismatchWarnOnce = false; // Check if the current renderer supports `useSyncExternalStore()`.\n// Since React goes through a proxy dispatcher and the current renderer can\n// change we can't simply check if `React.useSyncExternalStore()` is defined.\n\nfunction currentRendererSupportsUseSyncExternalStore() {\n var _ReactCurrentDispatch;\n\n // $FlowFixMe[incompatible-use]\n const {\n ReactCurrentDispatcher,\n ReactCurrentOwner\n } =\n /* $FlowFixMe[prop-missing] This workaround was approved as a safer mechanism\n * to detect if the current renderer supports useSyncExternalStore()\n * https://fb.workplace.com/groups/reactjs/posts/9558682330846963/ */\n react.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n const dispatcher = (_ReactCurrentDispatch = ReactCurrentDispatcher === null || ReactCurrentDispatcher === void 0 ? void 0 : ReactCurrentDispatcher.current) !== null && _ReactCurrentDispatch !== void 0 ? _ReactCurrentDispatch : ReactCurrentOwner.currentDispatcher;\n const isUseSyncExternalStoreSupported = dispatcher.useSyncExternalStore != null;\n\n if (useSyncExternalStore && !isUseSyncExternalStoreSupported && !ReactRendererVersionMismatchWarnOnce) {\n ReactRendererVersionMismatchWarnOnce = true;\n Recoil_recoverableViolation('A React renderer without React 18+ API support is being used with React 18+.');\n }\n\n return isUseSyncExternalStoreSupported;\n}\n\n/**\n * mode: The React API and approach to use for syncing state with React\n * early: Re-renders from Recoil updates occur:\n * 1) earlier\n * 2) in sync with React updates in the same batch\n * 3) before transaction observers instead of after.\n * concurrent: Is the current mode compatible with Concurrent Mode and useTransition()\n */\nfunction reactMode() {\n // NOTE: This mode is currently broken with some Suspense cases\n // see Recoil_selector-test.js\n if (Recoil_gkx('recoil_transition_support')) {\n return {\n mode: 'TRANSITION_SUPPORT',\n early: true,\n concurrent: true\n };\n }\n\n if (Recoil_gkx('recoil_sync_external_store') && useSyncExternalStore != null) {\n return {\n mode: 'SYNC_EXTERNAL_STORE',\n early: true,\n concurrent: false\n };\n }\n\n if (Recoil_gkx('recoil_mutable_source') && useMutableSource != null && typeof window !== 'undefined' && !window.$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE) {\n return Recoil_gkx('recoil_suppress_rerender_in_callback') ? {\n mode: 'MUTABLE_SOURCE',\n early: true,\n concurrent: true\n } : {\n mode: 'MUTABLE_SOURCE',\n early: false,\n concurrent: false\n };\n }\n\n return Recoil_gkx('recoil_suppress_rerender_in_callback') ? {\n mode: 'LEGACY',\n early: true,\n concurrent: false\n } : {\n mode: 'LEGACY',\n early: false,\n concurrent: false\n };\n} // TODO Need to figure out if there is a standard/open-source equivalent to see if hot module replacement is happening:\n\n\nfunction isFastRefreshEnabled() {\n // @fb-only: const {isAcceptingUpdate} = require('__debug');\n // @fb-only: return typeof isAcceptingUpdate === 'function' && isAcceptingUpdate();\n return false; // @oss-only\n}\n\nvar Recoil_ReactMode = {\n createMutableSource,\n useMutableSource,\n useSyncExternalStore,\n currentRendererSupportsUseSyncExternalStore,\n reactMode,\n isFastRefreshEnabled\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\n// eslint-disable-next-line no-unused-vars\nclass AbstractRecoilValue {\n constructor(newKey) {\n _defineProperty(this, \"key\", void 0);\n\n this.key = newKey;\n }\n\n toJSON() {\n return {\n key: this.key\n };\n }\n\n}\n\nclass RecoilState extends AbstractRecoilValue {}\n\nclass RecoilValueReadOnly extends AbstractRecoilValue {}\n\nfunction isRecoilValue(x) {\n return x instanceof RecoilState || x instanceof RecoilValueReadOnly;\n}\n\nvar Recoil_RecoilValue = {\n AbstractRecoilValue,\n RecoilState,\n RecoilValueReadOnly,\n isRecoilValue\n};\n\nvar Recoil_RecoilValue_1 = Recoil_RecoilValue.AbstractRecoilValue;\nvar Recoil_RecoilValue_2 = Recoil_RecoilValue.RecoilState;\nvar Recoil_RecoilValue_3 = Recoil_RecoilValue.RecoilValueReadOnly;\nvar Recoil_RecoilValue_4 = Recoil_RecoilValue.isRecoilValue;\n\nvar Recoil_RecoilValue$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AbstractRecoilValue: Recoil_RecoilValue_1,\n RecoilState: Recoil_RecoilValue_2,\n RecoilValueReadOnly: Recoil_RecoilValue_3,\n isRecoilValue: Recoil_RecoilValue_4\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction sprintf(format, ...args) {\n let index = 0;\n return format.replace(/%s/g, () => String(args[index++]));\n}\n\nvar sprintf_1 = sprintf;\n\nfunction expectationViolation(format, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const message = sprintf_1.call(null, format, ...args);\n const error = new Error(message);\n error.name = 'Expectation Violation';\n console.error(error);\n }\n}\n\nvar expectationViolation_1 = expectationViolation;\n\n// @oss-only\n\n\nvar Recoil_expectationViolation = expectationViolation_1;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Creates a new iterable whose output is generated by passing the input\n * iterable's values through the mapper function.\n */\n\nfunction mapIterable(iterable, callback) {\n // Use generator to create iterable/iterator\n return function* () {\n let index = 0;\n\n for (const value of iterable) {\n yield callback(value, index++);\n }\n }();\n}\n\nvar Recoil_mapIterable = mapIterable;\n\nconst {\n isFastRefreshEnabled: isFastRefreshEnabled$1\n} = Recoil_ReactMode;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass DefaultValue {}\n\nconst DEFAULT_VALUE = new DefaultValue();\n// flowlint-next-line unclear-type:off\nconst nodes = new Map(); // flowlint-next-line unclear-type:off\n\nconst recoilValues = new Map();\n/* eslint-disable no-redeclare */\n\nfunction recoilValuesForKeys(keys) {\n return Recoil_mapIterable(keys, key => Recoil_nullthrows(recoilValues.get(key)));\n}\n\nfunction checkForDuplicateAtomKey(key) {\n if (nodes.has(key)) {\n const message = `Duplicate atom key \"${key}\". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.`;\n\n if (process.env.NODE_ENV !== \"production\") {\n // TODO Figure this out for open-source\n if (!isFastRefreshEnabled$1()) {\n Recoil_expectationViolation(message, 'recoil');\n }\n } else {\n // @fb-only: recoverableViolation(message, 'recoil');\n console.warn(message); // @oss-only\n }\n }\n}\n\nfunction registerNode(node) {\n if (Recoil_RecoilEnv.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED) {\n checkForDuplicateAtomKey(node.key);\n }\n\n nodes.set(node.key, node);\n const recoilValue = node.set == null ? new Recoil_RecoilValue$1.RecoilValueReadOnly(node.key) : new Recoil_RecoilValue$1.RecoilState(node.key);\n recoilValues.set(node.key, recoilValue);\n return recoilValue;\n}\n/* eslint-enable no-redeclare */\n\n\nclass NodeMissingError extends Error {} // flowlint-next-line unclear-type:off\n\n\nfunction getNode(key) {\n const node = nodes.get(key);\n\n if (node == null) {\n throw new NodeMissingError(`Missing definition for RecoilValue: \"${key}\"\"`);\n }\n\n return node;\n} // flowlint-next-line unclear-type:off\n\n\nfunction getNodeMaybe(key) {\n return nodes.get(key);\n}\n\nconst configDeletionHandlers = new Map();\n\nfunction deleteNodeConfigIfPossible(key) {\n var _node$shouldDeleteCon;\n\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const node = nodes.get(key);\n\n if (node !== null && node !== void 0 && (_node$shouldDeleteCon = node.shouldDeleteConfigOnRelease) !== null && _node$shouldDeleteCon !== void 0 && _node$shouldDeleteCon.call(node)) {\n var _getConfigDeletionHan;\n\n nodes.delete(key);\n (_getConfigDeletionHan = getConfigDeletionHandler(key)) === null || _getConfigDeletionHan === void 0 ? void 0 : _getConfigDeletionHan();\n configDeletionHandlers.delete(key);\n }\n}\n\nfunction setConfigDeletionHandler(key, fn) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n if (fn === undefined) {\n configDeletionHandlers.delete(key);\n } else {\n configDeletionHandlers.set(key, fn);\n }\n}\n\nfunction getConfigDeletionHandler(key) {\n return configDeletionHandlers.get(key);\n}\n\nvar Recoil_Node = {\n nodes,\n recoilValues,\n registerNode,\n getNode,\n getNodeMaybe,\n deleteNodeConfigIfPossible,\n setConfigDeletionHandler,\n getConfigDeletionHandler,\n recoilValuesForKeys,\n NodeMissingError,\n DefaultValue,\n DEFAULT_VALUE\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction enqueueExecution(s, f) {\n f();\n}\n\nvar Recoil_Queue = {\n enqueueExecution\n};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar hamt_1 = createCommonjsModule(function (module) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n/**\n @fileOverview Hash Array Mapped Trie.\n\n Code based on: https://github.com/exclipy/pdata\n*/\n\n\nvar hamt = {}; // export\n\n/* Configuration\n ******************************************************************************/\n\nvar SIZE = 5;\nvar BUCKET_SIZE = Math.pow(2, SIZE);\nvar MASK = BUCKET_SIZE - 1;\nvar MAX_INDEX_NODE = BUCKET_SIZE / 2;\nvar MIN_ARRAY_NODE = BUCKET_SIZE / 4;\n/*\n ******************************************************************************/\n\nvar nothing = {};\n\nvar constant = function constant(x) {\n return function () {\n return x;\n };\n};\n/**\n Get 32 bit hash of string.\n\n Based on:\n http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery\n*/\n\n\nvar hash = hamt.hash = function (str) {\n var type = typeof str === 'undefined' ? 'undefined' : _typeof(str);\n if (type === 'number') return str;\n if (type !== 'string') str += '';\n var hash = 0;\n\n for (var i = 0, len = str.length; i < len; ++i) {\n var c = str.charCodeAt(i);\n hash = (hash << 5) - hash + c | 0;\n }\n\n return hash;\n};\n/* Bit Ops\n ******************************************************************************/\n\n/**\n Hamming weight.\n\n Taken from: http://jsperf.com/hamming-weight\n*/\n\n\nvar popcount = function popcount(x) {\n x -= x >> 1 & 0x55555555;\n x = (x & 0x33333333) + (x >> 2 & 0x33333333);\n x = x + (x >> 4) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n};\n\nvar hashFragment = function hashFragment(shift, h) {\n return h >>> shift & MASK;\n};\n\nvar toBitmap = function toBitmap(x) {\n return 1 << x;\n};\n\nvar fromBitmap = function fromBitmap(bitmap, bit) {\n return popcount(bitmap & bit - 1);\n};\n/* Array Ops\n ******************************************************************************/\n\n/**\n Set a value in an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to change.\n @param v New value\n @param arr Array.\n*/\n\n\nvar arrayUpdate = function arrayUpdate(mutate, at, v, arr) {\n var out = arr;\n\n if (!mutate) {\n var len = arr.length;\n out = new Array(len);\n\n for (var i = 0; i < len; ++i) {\n out[i] = arr[i];\n }\n }\n\n out[at] = v;\n return out;\n};\n/**\n Remove a value from an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to remove.\n @param arr Array.\n*/\n\n\nvar arraySpliceOut = function arraySpliceOut(mutate, at, arr) {\n var newLen = arr.length - 1;\n var i = 0;\n var g = 0;\n var out = arr;\n\n if (mutate) {\n i = g = at;\n } else {\n out = new Array(newLen);\n\n while (i < at) {\n out[g++] = arr[i++];\n }\n }\n\n ++i;\n\n while (i <= newLen) {\n out[g++] = arr[i++];\n }\n\n if (mutate) {\n out.length = newLen;\n }\n\n return out;\n};\n/**\n Insert a value into an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to insert at.\n @param v Value to insert,\n @param arr Array.\n*/\n\n\nvar arraySpliceIn = function arraySpliceIn(mutate, at, v, arr) {\n var len = arr.length;\n\n if (mutate) {\n var _i = len;\n\n while (_i >= at) {\n arr[_i--] = arr[_i];\n }\n\n arr[at] = v;\n return arr;\n }\n\n var i = 0,\n g = 0;\n var out = new Array(len + 1);\n\n while (i < at) {\n out[g++] = arr[i++];\n }\n\n out[at] = v;\n\n while (i < len) {\n out[++g] = arr[i++];\n }\n\n return out;\n};\n/* Node Structures\n ******************************************************************************/\n\n\nvar LEAF = 1;\nvar COLLISION = 2;\nvar INDEX = 3;\nvar ARRAY = 4;\n/**\n Empty node.\n*/\n\nvar empty = {\n __hamt_isEmpty: true\n};\n\nvar isEmptyNode = function isEmptyNode(x) {\n return x === empty || x && x.__hamt_isEmpty;\n};\n/**\n Leaf holding a value.\n\n @member edit Edit of the node.\n @member hash Hash of key.\n @member key Key.\n @member value Value stored.\n*/\n\n\nvar Leaf = function Leaf(edit, hash, key, value) {\n return {\n type: LEAF,\n edit: edit,\n hash: hash,\n key: key,\n value: value,\n _modify: Leaf__modify\n };\n};\n/**\n Leaf holding multiple values with the same hash but different keys.\n\n @member edit Edit of the node.\n @member hash Hash of key.\n @member children Array of collision children node.\n*/\n\n\nvar Collision = function Collision(edit, hash, children) {\n return {\n type: COLLISION,\n edit: edit,\n hash: hash,\n children: children,\n _modify: Collision__modify\n };\n};\n/**\n Internal node with a sparse set of children.\n\n Uses a bitmap and array to pack children.\n\n @member edit Edit of the node.\n @member mask Bitmap that encode the positions of children in the array.\n @member children Array of child nodes.\n*/\n\n\nvar IndexedNode = function IndexedNode(edit, mask, children) {\n return {\n type: INDEX,\n edit: edit,\n mask: mask,\n children: children,\n _modify: IndexedNode__modify\n };\n};\n/**\n Internal node with many children.\n\n @member edit Edit of the node.\n @member size Number of children.\n @member children Array of child nodes.\n*/\n\n\nvar ArrayNode = function ArrayNode(edit, size, children) {\n return {\n type: ARRAY,\n edit: edit,\n size: size,\n children: children,\n _modify: ArrayNode__modify\n };\n};\n/**\n Is `node` a leaf node?\n*/\n\n\nvar isLeaf = function isLeaf(node) {\n return node === empty || node.type === LEAF || node.type === COLLISION;\n};\n/* Internal node operations.\n ******************************************************************************/\n\n/**\n Expand an indexed node into an array node.\n\n @param edit Current edit.\n @param frag Index of added child.\n @param child Added child.\n @param mask Index node mask before child added.\n @param subNodes Index node children before child added.\n*/\n\n\nvar expand = function expand(edit, frag, child, bitmap, subNodes) {\n var arr = [];\n var bit = bitmap;\n var count = 0;\n\n for (var i = 0; bit; ++i) {\n if (bit & 1) arr[i] = subNodes[count++];\n bit >>>= 1;\n }\n\n arr[frag] = child;\n return ArrayNode(edit, count + 1, arr);\n};\n/**\n Collapse an array node into a indexed node.\n\n @param edit Current edit.\n @param count Number of elements in new array.\n @param removed Index of removed element.\n @param elements Array node children before remove.\n*/\n\n\nvar pack = function pack(edit, count, removed, elements) {\n var children = new Array(count - 1);\n var g = 0;\n var bitmap = 0;\n\n for (var i = 0, len = elements.length; i < len; ++i) {\n if (i !== removed) {\n var elem = elements[i];\n\n if (elem && !isEmptyNode(elem)) {\n children[g++] = elem;\n bitmap |= 1 << i;\n }\n }\n }\n\n return IndexedNode(edit, bitmap, children);\n};\n/**\n Merge two leaf nodes.\n\n @param shift Current shift.\n @param h1 Node 1 hash.\n @param n1 Node 1.\n @param h2 Node 2 hash.\n @param n2 Node 2.\n*/\n\n\nvar mergeLeaves = function mergeLeaves(edit, shift, h1, n1, h2, n2) {\n if (h1 === h2) return Collision(edit, h1, [n2, n1]);\n var subH1 = hashFragment(shift, h1);\n var subH2 = hashFragment(shift, h2);\n return IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), subH1 === subH2 ? [mergeLeaves(edit, shift + SIZE, h1, n1, h2, n2)] : subH1 < subH2 ? [n1, n2] : [n2, n1]);\n};\n/**\n Update an entry in a collision list.\n\n @param mutate Should mutation be used?\n @param edit Current edit.\n @param keyEq Key compare function.\n @param hash Hash of collision.\n @param list Collision list.\n @param f Update function.\n @param k Key to update.\n @param size Size ref.\n*/\n\n\nvar updateCollisionList = function updateCollisionList(mutate, edit, keyEq, h, list, f, k, size) {\n var len = list.length;\n\n for (var i = 0; i < len; ++i) {\n var child = list[i];\n\n if (keyEq(k, child.key)) {\n var value = child.value;\n\n var _newValue = f(value);\n\n if (_newValue === value) return list;\n\n if (_newValue === nothing) {\n --size.value;\n return arraySpliceOut(mutate, i, list);\n }\n\n return arrayUpdate(mutate, i, Leaf(edit, h, k, _newValue), list);\n }\n }\n\n var newValue = f();\n if (newValue === nothing) return list;\n ++size.value;\n return arrayUpdate(mutate, len, Leaf(edit, h, k, newValue), list);\n};\n\nvar canEditNode = function canEditNode(edit, node) {\n return edit === node.edit;\n};\n/* Editing\n ******************************************************************************/\n\n\nvar Leaf__modify = function Leaf__modify(edit, keyEq, shift, f, h, k, size) {\n if (keyEq(k, this.key)) {\n var _v = f(this.value);\n\n if (_v === this.value) return this;else if (_v === nothing) {\n --size.value;\n return empty;\n }\n\n if (canEditNode(edit, this)) {\n this.value = _v;\n return this;\n }\n\n return Leaf(edit, h, k, _v);\n }\n\n var v = f();\n if (v === nothing) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));\n};\n\nvar Collision__modify = function Collision__modify(edit, keyEq, shift, f, h, k, size) {\n if (h === this.hash) {\n var canEdit = canEditNode(edit, this);\n var list = updateCollisionList(canEdit, edit, keyEq, this.hash, this.children, f, k, size);\n if (list === this.children) return this;\n return list.length > 1 ? Collision(edit, this.hash, list) : list[0]; // collapse single element collision list\n }\n\n var v = f();\n if (v === nothing) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));\n};\n\nvar IndexedNode__modify = function IndexedNode__modify(edit, keyEq, shift, f, h, k, size) {\n var mask = this.mask;\n var children = this.children;\n var frag = hashFragment(shift, h);\n var bit = toBitmap(frag);\n var indx = fromBitmap(mask, bit);\n var exists = mask & bit;\n var current = exists ? children[indx] : empty;\n\n var child = current._modify(edit, keyEq, shift + SIZE, f, h, k, size);\n\n if (current === child) return this;\n var canEdit = canEditNode(edit, this);\n var bitmap = mask;\n var newChildren = void 0;\n\n if (exists && isEmptyNode(child)) {\n // remove\n bitmap &= ~bit;\n if (!bitmap) return empty;\n if (children.length <= 2 && isLeaf(children[indx ^ 1])) return children[indx ^ 1]; // collapse\n\n newChildren = arraySpliceOut(canEdit, indx, children);\n } else if (!exists && !isEmptyNode(child)) {\n // add\n if (children.length >= MAX_INDEX_NODE) return expand(edit, frag, child, mask, children);\n bitmap |= bit;\n newChildren = arraySpliceIn(canEdit, indx, child, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, indx, child, children);\n }\n\n if (canEdit) {\n this.mask = bitmap;\n this.children = newChildren;\n return this;\n }\n\n return IndexedNode(edit, bitmap, newChildren);\n};\n\nvar ArrayNode__modify = function ArrayNode__modify(edit, keyEq, shift, f, h, k, size) {\n var count = this.size;\n var children = this.children;\n var frag = hashFragment(shift, h);\n var child = children[frag];\n\n var newChild = (child || empty)._modify(edit, keyEq, shift + SIZE, f, h, k, size);\n\n if (child === newChild) return this;\n var canEdit = canEditNode(edit, this);\n var newChildren = void 0;\n\n if (isEmptyNode(child) && !isEmptyNode(newChild)) {\n // add\n ++count;\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n } else if (!isEmptyNode(child) && isEmptyNode(newChild)) {\n // remove\n --count;\n if (count <= MIN_ARRAY_NODE) return pack(edit, count, frag, children);\n newChildren = arrayUpdate(canEdit, frag, empty, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n }\n\n if (canEdit) {\n this.size = count;\n this.children = newChildren;\n return this;\n }\n\n return ArrayNode(edit, count, newChildren);\n};\n\nempty._modify = function (edit, keyEq, shift, f, h, k, size) {\n var v = f();\n if (v === nothing) return empty;\n ++size.value;\n return Leaf(edit, h, k, v);\n};\n/*\n ******************************************************************************/\n\n\nfunction Map(editable, edit, config, root, size) {\n this._editable = editable;\n this._edit = edit;\n this._config = config;\n this._root = root;\n this._size = size;\n}\n\nMap.prototype.setTree = function (newRoot, newSize) {\n if (this._editable) {\n this._root = newRoot;\n this._size = newSize;\n return this;\n }\n\n return newRoot === this._root ? this : new Map(this._editable, this._edit, this._config, newRoot, newSize);\n};\n/* Queries\n ******************************************************************************/\n\n/**\n Lookup the value for `key` in `map` using a custom `hash`.\n\n Returns the value or `alt` if none.\n*/\n\n\nvar tryGetHash = hamt.tryGetHash = function (alt, hash, key, map) {\n var node = map._root;\n var shift = 0;\n var keyEq = map._config.keyEq;\n\n while (true) {\n switch (node.type) {\n case LEAF:\n {\n return keyEq(key, node.key) ? node.value : alt;\n }\n\n case COLLISION:\n {\n if (hash === node.hash) {\n var children = node.children;\n\n for (var i = 0, len = children.length; i < len; ++i) {\n var child = children[i];\n if (keyEq(key, child.key)) return child.value;\n }\n }\n\n return alt;\n }\n\n case INDEX:\n {\n var frag = hashFragment(shift, hash);\n var bit = toBitmap(frag);\n\n if (node.mask & bit) {\n node = node.children[fromBitmap(node.mask, bit)];\n shift += SIZE;\n break;\n }\n\n return alt;\n }\n\n case ARRAY:\n {\n node = node.children[hashFragment(shift, hash)];\n\n if (node) {\n shift += SIZE;\n break;\n }\n\n return alt;\n }\n\n default:\n return alt;\n }\n }\n};\n\nMap.prototype.tryGetHash = function (alt, hash, key) {\n return tryGetHash(alt, hash, key, this);\n};\n/**\n Lookup the value for `key` in `map` using internal hash function.\n\n @see `tryGetHash`\n*/\n\n\nvar tryGet = hamt.tryGet = function (alt, key, map) {\n return tryGetHash(alt, map._config.hash(key), key, map);\n};\n\nMap.prototype.tryGet = function (alt, key) {\n return tryGet(alt, key, this);\n};\n/**\n Lookup the value for `key` in `map` using a custom `hash`.\n\n Returns the value or `undefined` if none.\n*/\n\n\nvar getHash = hamt.getHash = function (hash, key, map) {\n return tryGetHash(undefined, hash, key, map);\n};\n\nMap.prototype.getHash = function (hash, key) {\n return getHash(hash, key, this);\n};\n/**\n Lookup the value for `key` in `map` using internal hash function.\n\n @see `get`\n*/\n\n\nvar get = hamt.get = function (key, map) {\n return tryGetHash(undefined, map._config.hash(key), key, map);\n};\n\nMap.prototype.get = function (key, alt) {\n return tryGet(alt, key, this);\n};\n/**\n Does an entry exist for `key` in `map`? Uses custom `hash`.\n*/\n\n\nvar hasHash = hamt.has = function (hash, key, map) {\n return tryGetHash(nothing, hash, key, map) !== nothing;\n};\n\nMap.prototype.hasHash = function (hash, key) {\n return hasHash(hash, key, this);\n};\n/**\n Does an entry exist for `key` in `map`? Uses internal hash function.\n*/\n\n\nvar has = hamt.has = function (key, map) {\n return hasHash(map._config.hash(key), key, map);\n};\n\nMap.prototype.has = function (key) {\n return has(key, this);\n};\n\nvar defKeyCompare = function defKeyCompare(x, y) {\n return x === y;\n};\n/**\n Create an empty map.\n\n @param config Configuration.\n*/\n\n\nhamt.make = function (config) {\n return new Map(0, 0, {\n keyEq: config && config.keyEq || defKeyCompare,\n hash: config && config.hash || hash\n }, empty, 0);\n};\n/**\n Empty map.\n*/\n\n\nhamt.empty = hamt.make();\n/**\n Does `map` contain any elements?\n*/\n\nvar isEmpty = hamt.isEmpty = function (map) {\n return map && !!isEmptyNode(map._root);\n};\n\nMap.prototype.isEmpty = function () {\n return isEmpty(this);\n};\n/* Updates\n ******************************************************************************/\n\n/**\n Alter the value stored for `key` in `map` using function `f` using\n custom hash.\n\n `f` is invoked with the current value for `k` if it exists,\n or no arguments if no such value exists. `modify` will always either\n update or insert a value into the map.\n\n Returns a map with the modified value. Does not alter `map`.\n*/\n\n\nvar modifyHash = hamt.modifyHash = function (f, hash, key, map) {\n var size = {\n value: map._size\n };\n\n var newRoot = map._root._modify(map._editable ? map._edit : NaN, map._config.keyEq, 0, f, hash, key, size);\n\n return map.setTree(newRoot, size.value);\n};\n\nMap.prototype.modifyHash = function (hash, key, f) {\n return modifyHash(f, hash, key, this);\n};\n/**\n Alter the value stored for `key` in `map` using function `f` using\n internal hash function.\n\n @see `modifyHash`\n*/\n\n\nvar modify = hamt.modify = function (f, key, map) {\n return modifyHash(f, map._config.hash(key), key, map);\n};\n\nMap.prototype.modify = function (key, f) {\n return modify(f, key, this);\n};\n/**\n Store `value` for `key` in `map` using custom `hash`.\n\n Returns a map with the modified value. Does not alter `map`.\n*/\n\n\nvar setHash = hamt.setHash = function (hash, key, value, map) {\n return modifyHash(constant(value), hash, key, map);\n};\n\nMap.prototype.setHash = function (hash, key, value) {\n return setHash(hash, key, value, this);\n};\n/**\n Store `value` for `key` in `map` using internal hash function.\n\n @see `setHash`\n*/\n\n\nvar set = hamt.set = function (key, value, map) {\n return setHash(map._config.hash(key), key, value, map);\n};\n\nMap.prototype.set = function (key, value) {\n return set(key, value, this);\n};\n/**\n Remove the entry for `key` in `map`.\n\n Returns a map with the value removed. Does not alter `map`.\n*/\n\n\nvar del = constant(nothing);\n\nvar removeHash = hamt.removeHash = function (hash, key, map) {\n return modifyHash(del, hash, key, map);\n};\n\nMap.prototype.removeHash = Map.prototype.deleteHash = function (hash, key) {\n return removeHash(hash, key, this);\n};\n/**\n Remove the entry for `key` in `map` using internal hash function.\n\n @see `removeHash`\n*/\n\n\nvar remove = hamt.remove = function (key, map) {\n return removeHash(map._config.hash(key), key, map);\n};\n\nMap.prototype.remove = Map.prototype.delete = function (key) {\n return remove(key, this);\n};\n/* Mutation\n ******************************************************************************/\n\n/**\n Mark `map` as mutable.\n */\n\n\nvar beginMutation = hamt.beginMutation = function (map) {\n return new Map(map._editable + 1, map._edit + 1, map._config, map._root, map._size);\n};\n\nMap.prototype.beginMutation = function () {\n return beginMutation(this);\n};\n/**\n Mark `map` as immutable.\n */\n\n\nvar endMutation = hamt.endMutation = function (map) {\n map._editable = map._editable && map._editable - 1;\n return map;\n};\n\nMap.prototype.endMutation = function () {\n return endMutation(this);\n};\n/**\n Mutate `map` within the context of `f`.\n @param f\n @param map HAMT\n*/\n\n\nvar mutate = hamt.mutate = function (f, map) {\n var transient = beginMutation(map);\n f(transient);\n return endMutation(transient);\n};\n\nMap.prototype.mutate = function (f) {\n return mutate(f, this);\n};\n/* Traversal\n ******************************************************************************/\n\n/**\n Apply a continuation.\n*/\n\n\nvar appk = function appk(k) {\n return k && lazyVisitChildren(k[0], k[1], k[2], k[3], k[4]);\n};\n/**\n Recursively visit all values stored in an array of nodes lazily.\n*/\n\n\nvar lazyVisitChildren = function lazyVisitChildren(len, children, i, f, k) {\n while (i < len) {\n var child = children[i++];\n if (child && !isEmptyNode(child)) return lazyVisit(child, f, [len, children, i, f, k]);\n }\n\n return appk(k);\n};\n/**\n Recursively visit all values stored in `node` lazily.\n*/\n\n\nvar lazyVisit = function lazyVisit(node, f, k) {\n switch (node.type) {\n case LEAF:\n return {\n value: f(node),\n rest: k\n };\n\n case COLLISION:\n case ARRAY:\n case INDEX:\n var children = node.children;\n return lazyVisitChildren(children.length, children, 0, f, k);\n\n default:\n return appk(k);\n }\n};\n\nvar DONE = {\n done: true\n};\n/**\n Javascript iterator over a map.\n*/\n\nfunction MapIterator(v) {\n this.v = v;\n}\n\nMapIterator.prototype.next = function () {\n if (!this.v) return DONE;\n var v0 = this.v;\n this.v = appk(v0.rest);\n return v0;\n};\n\nMapIterator.prototype[Symbol.iterator] = function () {\n return this;\n};\n/**\n Lazily visit each value in map with function `f`.\n*/\n\n\nvar visit = function visit(map, f) {\n return new MapIterator(lazyVisit(map._root, f));\n};\n/**\n Get a Javascsript iterator of `map`.\n\n Iterates over `[key, value]` arrays.\n*/\n\n\nvar buildPairs = function buildPairs(x) {\n return [x.key, x.value];\n};\n\nvar entries = hamt.entries = function (map) {\n return visit(map, buildPairs);\n};\n\nMap.prototype.entries = Map.prototype[Symbol.iterator] = function () {\n return entries(this);\n};\n/**\n Get array of all keys in `map`.\n\n Order is not guaranteed.\n*/\n\n\nvar buildKeys = function buildKeys(x) {\n return x.key;\n};\n\nvar keys = hamt.keys = function (map) {\n return visit(map, buildKeys);\n};\n\nMap.prototype.keys = function () {\n return keys(this);\n};\n/**\n Get array of all values in `map`.\n\n Order is not guaranteed, duplicates are preserved.\n*/\n\n\nvar buildValues = function buildValues(x) {\n return x.value;\n};\n\nvar values = hamt.values = Map.prototype.values = function (map) {\n return visit(map, buildValues);\n};\n\nMap.prototype.values = function () {\n return values(this);\n};\n/* Fold\n ******************************************************************************/\n\n/**\n Visit every entry in the map, aggregating data.\n\n Order of nodes is not guaranteed.\n\n @param f Function mapping accumulated value, value, and key to new value.\n @param z Starting value.\n @param m HAMT\n*/\n\n\nvar fold = hamt.fold = function (f, z, m) {\n var root = m._root;\n if (root.type === LEAF) return f(z, root.value, root.key);\n var toVisit = [root.children];\n var children = void 0;\n\n while (children = toVisit.pop()) {\n for (var i = 0, len = children.length; i < len;) {\n var child = children[i++];\n\n if (child && child.type) {\n if (child.type === LEAF) z = f(z, child.value, child.key);else toVisit.push(child.children);\n }\n }\n }\n\n return z;\n};\n\nMap.prototype.fold = function (f, z) {\n return fold(f, z, this);\n};\n/**\n Visit every entry in the map, aggregating data.\n\n Order of nodes is not guaranteed.\n\n @param f Function invoked with value and key\n @param map HAMT\n*/\n\n\nvar forEach = hamt.forEach = function (f, map) {\n return fold(function (_, value, key) {\n return f(value, key, map);\n }, null, map);\n};\n\nMap.prototype.forEach = function (f) {\n return forEach(f, this);\n};\n/* Aggregate\n ******************************************************************************/\n\n/**\n Get the number of entries in `map`.\n*/\n\n\nvar count = hamt.count = function (map) {\n return map._size;\n};\n\nMap.prototype.count = function () {\n return count(this);\n};\n\nObject.defineProperty(Map.prototype, 'size', {\n get: Map.prototype.count\n});\n/* Export\n ******************************************************************************/\n\nif ( module.exports) {\n module.exports = hamt;\n} else {\n undefined.hamt = hamt;\n}\n});\n\nclass BuiltInMap {\n constructor(existing) {\n _defineProperty(this, \"_map\", void 0);\n\n this._map = new Map(existing === null || existing === void 0 ? void 0 : existing.entries());\n }\n\n keys() {\n return this._map.keys();\n }\n\n entries() {\n return this._map.entries();\n }\n\n get(k) {\n return this._map.get(k);\n }\n\n has(k) {\n return this._map.has(k);\n }\n\n set(k, v) {\n this._map.set(k, v);\n\n return this;\n }\n\n delete(k) {\n this._map.delete(k);\n\n return this;\n }\n\n clone() {\n return persistentMap(this);\n }\n\n toMap() {\n return new Map(this._map);\n }\n\n}\n\nclass HashArrayMappedTrieMap {\n // Because hamt.empty is not a function there is no way to introduce type\n // parameters on it, so empty is typed as HAMTPlusMap.\n // $FlowIssue\n constructor(existing) {\n _defineProperty(this, \"_hamt\", hamt_1.empty.beginMutation());\n\n if (existing instanceof HashArrayMappedTrieMap) {\n const h = existing._hamt.endMutation();\n\n existing._hamt = h.beginMutation();\n this._hamt = h.beginMutation();\n } else if (existing) {\n for (const [k, v] of existing.entries()) {\n this._hamt.set(k, v);\n }\n }\n }\n\n keys() {\n return this._hamt.keys();\n }\n\n entries() {\n return this._hamt.entries();\n }\n\n get(k) {\n return this._hamt.get(k);\n }\n\n has(k) {\n return this._hamt.has(k);\n }\n\n set(k, v) {\n this._hamt.set(k, v);\n\n return this;\n }\n\n delete(k) {\n this._hamt.delete(k);\n\n return this;\n }\n\n clone() {\n return persistentMap(this);\n }\n\n toMap() {\n return new Map(this._hamt);\n }\n\n}\n\nfunction persistentMap(existing) {\n if (Recoil_gkx('recoil_hamt_2020')) {\n return new HashArrayMappedTrieMap(existing);\n } else {\n return new BuiltInMap(existing);\n }\n}\n\nvar Recoil_PersistentMap = {\n persistentMap\n};\n\nvar Recoil_PersistentMap_1 = Recoil_PersistentMap.persistentMap;\n\nvar Recoil_PersistentMap$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n persistentMap: Recoil_PersistentMap_1\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Returns a set containing all of the values from the first set that are not\n * present in any of the subsequent sets.\n *\n * Note: this is written procedurally (i.e., without filterSet) for performant\n * use in tight loops.\n */\n\nfunction differenceSets(set, ...setsWithValuesToRemove) {\n const ret = new Set();\n\n FIRST: for (const value of set) {\n for (const otherSet of setsWithValuesToRemove) {\n if (otherSet.has(value)) {\n continue FIRST;\n }\n }\n\n ret.add(value);\n }\n\n return ret;\n}\n\nvar Recoil_differenceSets = differenceSets;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Returns a new Map object with the same keys as the original, but with the\n * values replaced with the output of the given callback function.\n */\n\nfunction mapMap(map, callback) {\n const result = new Map();\n map.forEach((value, key) => {\n result.set(key, callback(value, key));\n });\n return result;\n}\n\nvar Recoil_mapMap = mapMap;\n\nfunction makeGraph() {\n return {\n nodeDeps: new Map(),\n nodeToNodeSubscriptions: new Map()\n };\n}\n\nfunction cloneGraph(graph) {\n return {\n nodeDeps: Recoil_mapMap(graph.nodeDeps, s => new Set(s)),\n nodeToNodeSubscriptions: Recoil_mapMap(graph.nodeToNodeSubscriptions, s => new Set(s))\n };\n} // Note that this overwrites the deps of existing nodes, rather than unioning\n// the new deps with the old deps.\n\n\nfunction mergeDepsIntoGraph(key, newDeps, graph, // If olderGraph is given then we will not overwrite changes made to the given\n// graph compared with olderGraph:\nolderGraph) {\n const {\n nodeDeps,\n nodeToNodeSubscriptions\n } = graph;\n const oldDeps = nodeDeps.get(key);\n\n if (oldDeps && olderGraph && oldDeps !== olderGraph.nodeDeps.get(key)) {\n return;\n } // Update nodeDeps:\n\n\n nodeDeps.set(key, newDeps); // Add new deps to nodeToNodeSubscriptions:\n\n const addedDeps = oldDeps == null ? newDeps : Recoil_differenceSets(newDeps, oldDeps);\n\n for (const dep of addedDeps) {\n if (!nodeToNodeSubscriptions.has(dep)) {\n nodeToNodeSubscriptions.set(dep, new Set());\n }\n\n const existing = Recoil_nullthrows(nodeToNodeSubscriptions.get(dep));\n existing.add(key);\n } // Remove removed deps from nodeToNodeSubscriptions:\n\n\n if (oldDeps) {\n const removedDeps = Recoil_differenceSets(oldDeps, newDeps);\n\n for (const dep of removedDeps) {\n if (!nodeToNodeSubscriptions.has(dep)) {\n return;\n }\n\n const existing = Recoil_nullthrows(nodeToNodeSubscriptions.get(dep));\n existing.delete(key);\n\n if (existing.size === 0) {\n nodeToNodeSubscriptions.delete(dep);\n }\n }\n }\n}\n\nfunction saveDepsToStore(key, deps, store, version) {\n var _storeState$nextTree, _storeState$previousT, _storeState$previousT2, _storeState$previousT3;\n\n const storeState = store.getState();\n\n if (!(version === storeState.currentTree.version || version === ((_storeState$nextTree = storeState.nextTree) === null || _storeState$nextTree === void 0 ? void 0 : _storeState$nextTree.version) || version === ((_storeState$previousT = storeState.previousTree) === null || _storeState$previousT === void 0 ? void 0 : _storeState$previousT.version))) {\n Recoil_recoverableViolation('Tried to save dependencies to a discarded tree');\n } // Merge the dependencies discovered into the store's dependency map\n // for the version that was read:\n\n\n const graph = store.getGraph(version);\n mergeDepsIntoGraph(key, deps, graph); // If this version is not the latest version, also write these dependencies\n // into later versions if they don't already have their own:\n\n if (version === ((_storeState$previousT2 = storeState.previousTree) === null || _storeState$previousT2 === void 0 ? void 0 : _storeState$previousT2.version)) {\n const currentGraph = store.getGraph(storeState.currentTree.version);\n mergeDepsIntoGraph(key, deps, currentGraph, graph);\n }\n\n if (version === ((_storeState$previousT3 = storeState.previousTree) === null || _storeState$previousT3 === void 0 ? void 0 : _storeState$previousT3.version) || version === storeState.currentTree.version) {\n var _storeState$nextTree2;\n\n const nextVersion = (_storeState$nextTree2 = storeState.nextTree) === null || _storeState$nextTree2 === void 0 ? void 0 : _storeState$nextTree2.version;\n\n if (nextVersion !== undefined) {\n const nextGraph = store.getGraph(nextVersion);\n mergeDepsIntoGraph(key, deps, nextGraph, graph);\n }\n }\n}\n\nvar Recoil_Graph = {\n cloneGraph,\n graph: makeGraph,\n saveDepsToStore\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nlet nextTreeStateVersion = 0;\n\nconst getNextTreeStateVersion = () => nextTreeStateVersion++;\n\nlet nextStoreID = 0;\n\nconst getNextStoreID = () => nextStoreID++;\n\nlet nextComponentID = 0;\n\nconst getNextComponentID = () => nextComponentID++;\n\nvar Recoil_Keys = {\n getNextTreeStateVersion,\n getNextStoreID,\n getNextComponentID\n};\n\nconst {\n persistentMap: persistentMap$1\n} = Recoil_PersistentMap$1;\n\nconst {\n graph\n} = Recoil_Graph;\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$1\n} = Recoil_Keys;\n\nfunction makeEmptyTreeState() {\n const version = getNextTreeStateVersion$1();\n return {\n version,\n stateID: version,\n transactionMetadata: {},\n dirtyAtoms: new Set(),\n atomValues: persistentMap$1(),\n nonvalidatedAtoms: persistentMap$1()\n };\n}\n\nfunction makeEmptyStoreState() {\n const currentTree = makeEmptyTreeState();\n return {\n currentTree,\n nextTree: null,\n previousTree: null,\n commitDepth: 0,\n knownAtoms: new Set(),\n knownSelectors: new Set(),\n transactionSubscriptions: new Map(),\n nodeTransactionSubscriptions: new Map(),\n nodeToComponentSubscriptions: new Map(),\n queuedComponentCallbacks_DEPRECATED: [],\n suspendedComponentResolvers: new Set(),\n graphsByVersion: new Map().set(currentTree.version, graph()),\n retention: {\n referenceCounts: new Map(),\n nodesRetainedByZone: new Map(),\n retainablesToCheckForRelease: new Set()\n },\n nodeCleanupFunctions: new Map()\n };\n}\n\nvar Recoil_State = {\n makeEmptyTreeState,\n makeEmptyStoreState,\n getNextTreeStateVersion: getNextTreeStateVersion$1\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nclass RetentionZone {}\n\nfunction retentionZone() {\n return new RetentionZone();\n}\n\nvar Recoil_RetentionZone = {\n RetentionZone,\n retentionZone\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * Utilities for working with built-in Maps and Sets without mutating them.\n *\n * \n * @format\n * @oncall recoil\n */\n\nfunction setByAddingToSet(set, v) {\n const next = new Set(set);\n next.add(v);\n return next;\n}\n\nfunction setByDeletingFromSet(set, v) {\n const next = new Set(set);\n next.delete(v);\n return next;\n}\n\nfunction mapBySettingInMap(map, k, v) {\n const next = new Map(map);\n next.set(k, v);\n return next;\n}\n\nfunction mapByUpdatingInMap(map, k, updater) {\n const next = new Map(map);\n next.set(k, updater(next.get(k)));\n return next;\n}\n\nfunction mapByDeletingFromMap(map, k) {\n const next = new Map(map);\n next.delete(k);\n return next;\n}\n\nfunction mapByDeletingMultipleFromMap(map, ks) {\n const next = new Map(map);\n ks.forEach(k => next.delete(k));\n return next;\n}\n\nvar Recoil_CopyOnWrite = {\n setByAddingToSet,\n setByDeletingFromSet,\n mapBySettingInMap,\n mapByUpdatingInMap,\n mapByDeletingFromMap,\n mapByDeletingMultipleFromMap\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Creates a new iterable whose output is generated by passing the input\n * iterable's values through the filter function.\n */\n\nfunction* filterIterable(iterable, predicate) {\n // Use generator to create iterable/iterator\n let index = 0;\n\n for (const value of iterable) {\n if (predicate(value, index++)) {\n yield value;\n }\n }\n}\n\nvar Recoil_filterIterable = filterIterable;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Return a proxy object based on the provided base and factories objects.\n * The proxy will include all properties of the base object as-is.\n * The factories object contains callbacks to obtain the values of the properies\n * for its keys.\n *\n * This is useful for providing users an object where some properties may be\n * lazily computed only on first access.\n */\n// $FlowIssue[unclear-type]\n\nfunction lazyProxy(base, factories) {\n const proxy = new Proxy(base, {\n // Compute and cache lazy property if not already done.\n get: (target, prop) => {\n if (!(prop in target) && prop in factories) {\n target[prop] = factories[prop]();\n }\n\n return target[prop];\n },\n // This method allows user to iterate keys as normal\n ownKeys: target => {\n\n return Object.keys(target);\n }\n }); // $FlowIssue[incompatible-return]\n\n return proxy;\n}\n\nvar Recoil_lazyProxy = lazyProxy;\n\nconst {\n getNode: getNode$1,\n getNodeMaybe: getNodeMaybe$1,\n recoilValuesForKeys: recoilValuesForKeys$1\n} = Recoil_Node;\n\nconst {\n RetentionZone: RetentionZone$1\n} = Recoil_RetentionZone;\n\nconst {\n setByAddingToSet: setByAddingToSet$1\n} = Recoil_CopyOnWrite;\n\n\n\n\n\n\n\n // flowlint-next-line unclear-type:off\n\n\nconst emptySet = Object.freeze(new Set());\n\nclass ReadOnlyRecoilValueError extends Error {}\n\nfunction initializeRetentionForNode(store, nodeKey, retainedBy) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return () => undefined;\n }\n\n const {\n nodesRetainedByZone\n } = store.getState().retention;\n\n function addToZone(zone) {\n let set = nodesRetainedByZone.get(zone);\n\n if (!set) {\n nodesRetainedByZone.set(zone, set = new Set());\n }\n\n set.add(nodeKey);\n }\n\n if (retainedBy instanceof RetentionZone$1) {\n addToZone(retainedBy);\n } else if (Array.isArray(retainedBy)) {\n for (const zone of retainedBy) {\n addToZone(zone);\n }\n }\n\n return () => {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const {\n retention\n } = store.getState();\n\n function deleteFromZone(zone) {\n const set = retention.nodesRetainedByZone.get(zone);\n set === null || set === void 0 ? void 0 : set.delete(nodeKey);\n\n if (set && set.size === 0) {\n retention.nodesRetainedByZone.delete(zone);\n }\n }\n\n if (retainedBy instanceof RetentionZone$1) {\n deleteFromZone(retainedBy);\n } else if (Array.isArray(retainedBy)) {\n for (const zone of retainedBy) {\n deleteFromZone(zone);\n }\n }\n };\n}\n\nfunction initializeNodeIfNewToStore(store, treeState, key, trigger) {\n const storeState = store.getState();\n\n if (storeState.nodeCleanupFunctions.has(key)) {\n return;\n }\n\n const node = getNode$1(key);\n const retentionCleanup = initializeRetentionForNode(store, key, node.retainedBy);\n const nodeCleanup = node.init(store, treeState, trigger);\n storeState.nodeCleanupFunctions.set(key, () => {\n nodeCleanup();\n retentionCleanup();\n });\n}\n\nfunction initializeNode(store, key, trigger) {\n initializeNodeIfNewToStore(store, store.getState().currentTree, key, trigger);\n}\n\nfunction cleanUpNode(store, key) {\n var _state$nodeCleanupFun;\n\n const state = store.getState();\n (_state$nodeCleanupFun = state.nodeCleanupFunctions.get(key)) === null || _state$nodeCleanupFun === void 0 ? void 0 : _state$nodeCleanupFun();\n state.nodeCleanupFunctions.delete(key);\n} // Get the current value loadable of a node and update the state.\n// Update dependencies and subscriptions for selectors.\n// Update saved value validation for atoms.\n\n\nfunction getNodeLoadable(store, state, key) {\n initializeNodeIfNewToStore(store, state, key, 'get');\n return getNode$1(key).get(store, state);\n} // Peek at the current value loadable for a node without any evaluation or state change\n\n\nfunction peekNodeLoadable(store, state, key) {\n return getNode$1(key).peek(store, state);\n} // Write value directly to state bypassing the Node interface as the node\n// definitions may not have been loaded yet when processing the initial snapshot.\n\n\nfunction setUnvalidatedAtomValue_DEPRECATED(state, key, newValue) {\n var _node$invalidate;\n\n const node = getNodeMaybe$1(key);\n node === null || node === void 0 ? void 0 : (_node$invalidate = node.invalidate) === null || _node$invalidate === void 0 ? void 0 : _node$invalidate.call(node, state);\n return { ...state,\n atomValues: state.atomValues.clone().delete(key),\n nonvalidatedAtoms: state.nonvalidatedAtoms.clone().set(key, newValue),\n dirtyAtoms: setByAddingToSet$1(state.dirtyAtoms, key)\n };\n} // Return the discovered dependencies and values to be written by setting\n// a node value. (Multiple values may be written due to selectors getting to\n// set upstreams; deps may be discovered because of reads in updater functions.)\n\n\nfunction setNodeValue(store, state, key, newValue) {\n const node = getNode$1(key);\n\n if (node.set == null) {\n throw new ReadOnlyRecoilValueError(`Attempt to set read-only RecoilValue: ${key}`);\n }\n\n const set = node.set; // so flow doesn't lose the above refinement.\n\n initializeNodeIfNewToStore(store, state, key, 'set');\n return set(store, state, newValue);\n}\n\nfunction peekNodeInfo(store, state, key) {\n const storeState = store.getState();\n const graph = store.getGraph(state.version);\n const type = getNode$1(key).nodeType;\n return Recoil_lazyProxy({\n type\n }, {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n loadable: () => peekNodeLoadable(store, state, key),\n isActive: () => storeState.knownAtoms.has(key) || storeState.knownSelectors.has(key),\n isSet: () => type === 'selector' ? false : state.atomValues.has(key),\n isModified: () => state.dirtyAtoms.has(key),\n // Report current dependencies. If the node hasn't been evaluated, then\n // dependencies may be missing based on the current state.\n deps: () => {\n var _graph$nodeDeps$get;\n\n return recoilValuesForKeys$1((_graph$nodeDeps$get = graph.nodeDeps.get(key)) !== null && _graph$nodeDeps$get !== void 0 ? _graph$nodeDeps$get : []);\n },\n // Reports all \"current\" subscribers. Evaluating other nodes or\n // previous in-progress async evaluations may introduce new subscribers.\n subscribers: () => {\n var _storeState$nodeToCom, _storeState$nodeToCom2;\n\n return {\n nodes: recoilValuesForKeys$1(Recoil_filterIterable(getDownstreamNodes(store, state, new Set([key])), nodeKey => nodeKey !== key)),\n components: Recoil_mapIterable((_storeState$nodeToCom = (_storeState$nodeToCom2 = storeState.nodeToComponentSubscriptions.get(key)) === null || _storeState$nodeToCom2 === void 0 ? void 0 : _storeState$nodeToCom2.values()) !== null && _storeState$nodeToCom !== void 0 ? _storeState$nodeToCom : [], ([name]) => ({\n name\n }))\n };\n }\n });\n} // Find all of the recursively dependent nodes\n\n\nfunction getDownstreamNodes(store, state, keys) {\n const visitedNodes = new Set();\n const visitingNodes = Array.from(keys);\n const graph = store.getGraph(state.version);\n\n for (let key = visitingNodes.pop(); key; key = visitingNodes.pop()) {\n var _graph$nodeToNodeSubs;\n\n visitedNodes.add(key);\n const subscribedNodes = (_graph$nodeToNodeSubs = graph.nodeToNodeSubscriptions.get(key)) !== null && _graph$nodeToNodeSubs !== void 0 ? _graph$nodeToNodeSubs : emptySet;\n\n for (const downstreamNode of subscribedNodes) {\n if (!visitedNodes.has(downstreamNode)) {\n visitingNodes.push(downstreamNode);\n }\n }\n }\n\n return visitedNodes;\n}\n\nvar Recoil_FunctionalCore = {\n getNodeLoadable,\n peekNodeLoadable,\n setNodeValue,\n initializeNode,\n cleanUpNode,\n setUnvalidatedAtomValue_DEPRECATED,\n peekNodeInfo,\n getDownstreamNodes\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nlet _invalidateMemoizedSnapshot = null;\n\nfunction setInvalidateMemoizedSnapshot(invalidate) {\n _invalidateMemoizedSnapshot = invalidate;\n}\n\nfunction invalidateMemoizedSnapshot() {\n var _invalidateMemoizedSn;\n\n (_invalidateMemoizedSn = _invalidateMemoizedSnapshot) === null || _invalidateMemoizedSn === void 0 ? void 0 : _invalidateMemoizedSn();\n}\n\nvar Recoil_SnapshotCache = {\n setInvalidateMemoizedSnapshot,\n invalidateMemoizedSnapshot\n};\n\nconst {\n getDownstreamNodes: getDownstreamNodes$1,\n getNodeLoadable: getNodeLoadable$1,\n setNodeValue: setNodeValue$1\n} = Recoil_FunctionalCore;\n\nconst {\n getNextComponentID: getNextComponentID$1\n} = Recoil_Keys;\n\nconst {\n getNode: getNode$2,\n getNodeMaybe: getNodeMaybe$2\n} = Recoil_Node;\n\nconst {\n DefaultValue: DefaultValue$1\n} = Recoil_Node;\n\nconst {\n reactMode: reactMode$1\n} = Recoil_ReactMode;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$1,\n RecoilState: RecoilState$1,\n RecoilValueReadOnly: RecoilValueReadOnly$1,\n isRecoilValue: isRecoilValue$1\n} = Recoil_RecoilValue$1;\n\nconst {\n invalidateMemoizedSnapshot: invalidateMemoizedSnapshot$1\n} = Recoil_SnapshotCache;\n\n\n\n\n\n\n\nfunction getRecoilValueAsLoadable(store, {\n key\n}, treeState = store.getState().currentTree) {\n var _storeState$nextTree, _storeState$previousT;\n\n // Reading from an older tree can cause bugs because the dependencies that we\n // discover during the read are lost.\n const storeState = store.getState();\n\n if (!(treeState.version === storeState.currentTree.version || treeState.version === ((_storeState$nextTree = storeState.nextTree) === null || _storeState$nextTree === void 0 ? void 0 : _storeState$nextTree.version) || treeState.version === ((_storeState$previousT = storeState.previousTree) === null || _storeState$previousT === void 0 ? void 0 : _storeState$previousT.version))) {\n Recoil_recoverableViolation('Tried to read from a discarded tree');\n }\n\n const loadable = getNodeLoadable$1(store, treeState, key);\n\n if (loadable.state === 'loading') {\n loadable.contents.catch(() => {\n /**\n * HACK: intercept thrown error here to prevent an uncaught promise exception. Ideally this would happen closer to selector\n * execution (perhaps introducing a new ERROR class to be resolved by async selectors that are in an error state)\n */\n return;\n });\n }\n\n return loadable;\n}\n\nfunction applyAtomValueWrites(atomValues, writes) {\n const result = atomValues.clone();\n writes.forEach((v, k) => {\n if (v.state === 'hasValue' && v.contents instanceof DefaultValue$1) {\n result.delete(k);\n } else {\n result.set(k, v);\n }\n });\n return result;\n}\n\nfunction valueFromValueOrUpdater(store, state, {\n key\n}, valueOrUpdater) {\n if (typeof valueOrUpdater === 'function') {\n // Updater form: pass in the current value. Throw if the current value\n // is unavailable (namely when updating an async selector that's\n // pending or errored):\n const current = getNodeLoadable$1(store, state, key);\n\n if (current.state === 'loading') {\n const msg = `Tried to set atom or selector \"${key}\" using an updater function while the current state is pending, this is not currently supported.`;\n Recoil_recoverableViolation(msg);\n throw Recoil_err(msg);\n } else if (current.state === 'hasError') {\n throw current.contents;\n } // T itself may be a function, so our refinement is not sufficient:\n\n\n return valueOrUpdater(current.contents); // flowlint-line unclear-type:off\n } else {\n return valueOrUpdater;\n }\n}\n\nfunction applyAction(store, state, action) {\n if (action.type === 'set') {\n const {\n recoilValue,\n valueOrUpdater\n } = action;\n const newValue = valueFromValueOrUpdater(store, state, recoilValue, valueOrUpdater);\n const writes = setNodeValue$1(store, state, recoilValue.key, newValue);\n\n for (const [key, loadable] of writes.entries()) {\n writeLoadableToTreeState(state, key, loadable);\n }\n } else if (action.type === 'setLoadable') {\n const {\n recoilValue: {\n key\n },\n loadable\n } = action;\n writeLoadableToTreeState(state, key, loadable);\n } else if (action.type === 'markModified') {\n const {\n recoilValue: {\n key\n }\n } = action;\n state.dirtyAtoms.add(key);\n } else if (action.type === 'setUnvalidated') {\n var _node$invalidate;\n\n // Write value directly to state bypassing the Node interface as the node\n // definitions may not have been loaded yet when processing the initial snapshot.\n const {\n recoilValue: {\n key\n },\n unvalidatedValue\n } = action;\n const node = getNodeMaybe$2(key);\n node === null || node === void 0 ? void 0 : (_node$invalidate = node.invalidate) === null || _node$invalidate === void 0 ? void 0 : _node$invalidate.call(node, state);\n state.atomValues.delete(key);\n state.nonvalidatedAtoms.set(key, unvalidatedValue);\n state.dirtyAtoms.add(key);\n } else {\n Recoil_recoverableViolation(`Unknown action ${action.type}`);\n }\n}\n\nfunction writeLoadableToTreeState(state, key, loadable) {\n if (loadable.state === 'hasValue' && loadable.contents instanceof DefaultValue$1) {\n state.atomValues.delete(key);\n } else {\n state.atomValues.set(key, loadable);\n }\n\n state.dirtyAtoms.add(key);\n state.nonvalidatedAtoms.delete(key);\n}\n\nfunction applyActionsToStore(store, actions) {\n store.replaceState(state => {\n const newState = copyTreeState(state);\n\n for (const action of actions) {\n applyAction(store, newState, action);\n }\n\n invalidateDownstreams(store, newState);\n invalidateMemoizedSnapshot$1();\n return newState;\n });\n}\n\nfunction queueOrPerformStateUpdate(store, action) {\n if (batchStack.length) {\n const actionsByStore = batchStack[batchStack.length - 1];\n let actions = actionsByStore.get(store);\n\n if (!actions) {\n actionsByStore.set(store, actions = []);\n }\n\n actions.push(action);\n } else {\n applyActionsToStore(store, [action]);\n }\n}\n\nconst batchStack = [];\n\nfunction batchStart() {\n const actionsByStore = new Map();\n batchStack.push(actionsByStore);\n return () => {\n for (const [store, actions] of actionsByStore) {\n applyActionsToStore(store, actions);\n }\n\n const popped = batchStack.pop();\n\n if (popped !== actionsByStore) {\n Recoil_recoverableViolation('Incorrect order of batch popping');\n }\n };\n}\n\nfunction copyTreeState(state) {\n return { ...state,\n atomValues: state.atomValues.clone(),\n nonvalidatedAtoms: state.nonvalidatedAtoms.clone(),\n dirtyAtoms: new Set(state.dirtyAtoms)\n };\n}\n\nfunction invalidateDownstreams(store, state) {\n // Inform any nodes that were changed or downstream of changes so that they\n // can clear out any caches as needed due to the update:\n const downstreams = getDownstreamNodes$1(store, state, state.dirtyAtoms);\n\n for (const key of downstreams) {\n var _getNodeMaybe, _getNodeMaybe$invalid;\n\n (_getNodeMaybe = getNodeMaybe$2(key)) === null || _getNodeMaybe === void 0 ? void 0 : (_getNodeMaybe$invalid = _getNodeMaybe.invalidate) === null || _getNodeMaybe$invalid === void 0 ? void 0 : _getNodeMaybe$invalid.call(_getNodeMaybe, state);\n }\n}\n\nfunction setRecoilValue(store, recoilValue, valueOrUpdater) {\n queueOrPerformStateUpdate(store, {\n type: 'set',\n recoilValue,\n valueOrUpdater\n });\n}\n\nfunction setRecoilValueLoadable(store, recoilValue, loadable) {\n if (loadable instanceof DefaultValue$1) {\n return setRecoilValue(store, recoilValue, loadable);\n }\n\n queueOrPerformStateUpdate(store, {\n type: 'setLoadable',\n recoilValue,\n loadable: loadable\n });\n}\n\nfunction markRecoilValueModified(store, recoilValue) {\n queueOrPerformStateUpdate(store, {\n type: 'markModified',\n recoilValue\n });\n}\n\nfunction setUnvalidatedRecoilValue(store, recoilValue, unvalidatedValue) {\n queueOrPerformStateUpdate(store, {\n type: 'setUnvalidated',\n recoilValue,\n unvalidatedValue\n });\n}\n\nfunction subscribeToRecoilValue(store, {\n key\n}, callback, componentDebugName = null) {\n const subID = getNextComponentID$1();\n const storeState = store.getState();\n\n if (!storeState.nodeToComponentSubscriptions.has(key)) {\n storeState.nodeToComponentSubscriptions.set(key, new Map());\n }\n\n Recoil_nullthrows(storeState.nodeToComponentSubscriptions.get(key)).set(subID, [componentDebugName !== null && componentDebugName !== void 0 ? componentDebugName : '', callback]); // Handle the case that, during the same tick that we are subscribing, an atom\n // has been updated by some effect handler. Otherwise we will miss the update.\n\n const mode = reactMode$1();\n\n if (mode.early && (mode.mode === 'LEGACY' || mode.mode === 'MUTABLE_SOURCE')) {\n const nextTree = store.getState().nextTree;\n\n if (nextTree && nextTree.dirtyAtoms.has(key)) {\n callback(nextTree);\n }\n }\n\n return {\n release: () => {\n const releaseStoreState = store.getState();\n const subs = releaseStoreState.nodeToComponentSubscriptions.get(key);\n\n if (subs === undefined || !subs.has(subID)) {\n Recoil_recoverableViolation(`Subscription missing at release time for atom ${key}. This is a bug in Recoil.`);\n return;\n }\n\n subs.delete(subID);\n\n if (subs.size === 0) {\n releaseStoreState.nodeToComponentSubscriptions.delete(key);\n }\n }\n };\n}\n\nfunction refreshRecoilValue(store, recoilValue) {\n var _node$clearCache;\n\n const {\n currentTree\n } = store.getState();\n const node = getNode$2(recoilValue.key);\n (_node$clearCache = node.clearCache) === null || _node$clearCache === void 0 ? void 0 : _node$clearCache.call(node, store, currentTree);\n}\n\nvar Recoil_RecoilValueInterface = {\n RecoilValueReadOnly: RecoilValueReadOnly$1,\n AbstractRecoilValue: AbstractRecoilValue$1,\n RecoilState: RecoilState$1,\n getRecoilValueAsLoadable,\n setRecoilValue,\n setRecoilValueLoadable,\n markRecoilValueModified,\n setUnvalidatedRecoilValue,\n subscribeToRecoilValue,\n isRecoilValue: isRecoilValue$1,\n applyAtomValueWrites,\n // TODO Remove export when deprecating initialStoreState_DEPRECATED in RecoilRoot\n batchStart,\n writeLoadableToTreeState,\n invalidateDownstreams,\n copyTreeState,\n refreshRecoilValue\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * The someSet() method tests whether some elements in the given Set pass the\n * test implemented by the provided function.\n */\n\nfunction someSet(set, callback, context) {\n const iterator = set.entries();\n let current = iterator.next();\n\n while (!current.done) {\n const entry = current.value;\n\n if (callback.call(context, entry[1], entry[0], set)) {\n return true;\n }\n\n current = iterator.next();\n }\n\n return false;\n}\n\nvar Recoil_someSet = someSet;\n\nconst {\n cleanUpNode: cleanUpNode$1\n} = Recoil_FunctionalCore;\n\nconst {\n deleteNodeConfigIfPossible: deleteNodeConfigIfPossible$1,\n getNode: getNode$3\n} = Recoil_Node;\n\nconst {\n RetentionZone: RetentionZone$2\n} = Recoil_RetentionZone;\n\n\n\n\n\n\n\n // Components that aren't mounted after suspending for this long will be assumed\n// to be discarded and their resources released.\n\n\nconst SUSPENSE_TIMEOUT_MS = 120000;\nconst emptySet$1 = new Set();\n\nfunction releaseRetainablesNowOnCurrentTree(store, retainables) {\n const storeState = store.getState();\n const treeState = storeState.currentTree;\n\n if (storeState.nextTree) {\n Recoil_recoverableViolation('releaseNodesNowOnCurrentTree should only be called at the end of a batch');\n return; // leak memory rather than erase something that's about to be used.\n }\n\n const nodes = new Set();\n\n for (const r of retainables) {\n if (r instanceof RetentionZone$2) {\n for (const n of nodesRetainedByZone(storeState, r)) {\n nodes.add(n);\n }\n } else {\n nodes.add(r);\n }\n }\n\n const releasableNodes = findReleasableNodes(store, nodes);\n\n for (const node of releasableNodes) {\n releaseNode(store, treeState, node);\n }\n}\n\nfunction findReleasableNodes(store, searchFromNodes) {\n const storeState = store.getState();\n const treeState = storeState.currentTree;\n const graph = store.getGraph(treeState.version);\n const releasableNodes = new Set(); // mutated to collect answer\n\n const nonReleasableNodes = new Set();\n findReleasableNodesInner(searchFromNodes);\n return releasableNodes;\n\n function findReleasableNodesInner(searchFromNodes) {\n const releasableNodesFoundThisIteration = new Set();\n const downstreams = getDownstreamNodesInTopologicalOrder(store, treeState, searchFromNodes, releasableNodes, // don't descend into these\n nonReleasableNodes // don't descend into these\n ); // Find which of the downstream nodes are releasable and which are not:\n\n for (const node of downstreams) {\n var _storeState$retention;\n\n // Not releasable if configured to be retained forever:\n if (getNode$3(node).retainedBy === 'recoilRoot') {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if retained directly by a component:\n\n\n if (((_storeState$retention = storeState.retention.referenceCounts.get(node)) !== null && _storeState$retention !== void 0 ? _storeState$retention : 0) > 0) {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if retained by a zone:\n\n\n if (zonesThatCouldRetainNode(node).some(z => storeState.retention.referenceCounts.get(z))) {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if it has a non-releasable child (which will already be in\n // nonReleasableNodes because we are going in topological order):\n\n\n const nodeChildren = graph.nodeToNodeSubscriptions.get(node);\n\n if (nodeChildren && Recoil_someSet(nodeChildren, child => nonReleasableNodes.has(child))) {\n nonReleasableNodes.add(node);\n continue;\n }\n\n releasableNodes.add(node);\n releasableNodesFoundThisIteration.add(node);\n } // If we found any releasable nodes, we need to walk UP from those nodes to\n // find whether their parents can now be released as well:\n\n\n const parents = new Set();\n\n for (const node of releasableNodesFoundThisIteration) {\n for (const parent of (_graph$nodeDeps$get = graph.nodeDeps.get(node)) !== null && _graph$nodeDeps$get !== void 0 ? _graph$nodeDeps$get : emptySet$1) {\n var _graph$nodeDeps$get;\n\n if (!releasableNodes.has(parent)) {\n parents.add(parent);\n }\n }\n }\n\n if (parents.size) {\n findReleasableNodesInner(parents);\n }\n }\n} // Children before parents\n\n\nfunction getDownstreamNodesInTopologicalOrder(store, treeState, nodes, // Mutable set is destroyed in place\ndoNotDescendInto1, doNotDescendInto2) {\n const graph = store.getGraph(treeState.version);\n const answer = [];\n const visited = new Set();\n\n while (nodes.size > 0) {\n visit(Recoil_nullthrows(nodes.values().next().value));\n }\n\n return answer;\n\n function visit(node) {\n if (doNotDescendInto1.has(node) || doNotDescendInto2.has(node)) {\n nodes.delete(node);\n return;\n }\n\n if (visited.has(node)) {\n return;\n }\n\n const children = graph.nodeToNodeSubscriptions.get(node);\n\n if (children) {\n for (const child of children) {\n visit(child);\n }\n }\n\n visited.add(node);\n nodes.delete(node);\n answer.push(node);\n }\n}\n\nfunction releaseNode(store, treeState, node) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n } // Atom effects, in-closure caches, etc.:\n\n\n cleanUpNode$1(store, node); // Delete from store state:\n\n const storeState = store.getState();\n storeState.knownAtoms.delete(node);\n storeState.knownSelectors.delete(node);\n storeState.nodeTransactionSubscriptions.delete(node);\n storeState.retention.referenceCounts.delete(node);\n const zones = zonesThatCouldRetainNode(node);\n\n for (const zone of zones) {\n var _storeState$retention2;\n\n (_storeState$retention2 = storeState.retention.nodesRetainedByZone.get(zone)) === null || _storeState$retention2 === void 0 ? void 0 : _storeState$retention2.delete(node);\n } // Note that we DO NOT delete from nodeToComponentSubscriptions because this\n // already happens when the last component that was retaining the node unmounts,\n // and this could happen either before or after that.\n // Delete from TreeState and dep graph:\n\n\n treeState.atomValues.delete(node);\n treeState.dirtyAtoms.delete(node);\n treeState.nonvalidatedAtoms.delete(node);\n const graph = storeState.graphsByVersion.get(treeState.version);\n\n if (graph) {\n const deps = graph.nodeDeps.get(node);\n\n if (deps !== undefined) {\n graph.nodeDeps.delete(node);\n\n for (const dep of deps) {\n var _graph$nodeToNodeSubs;\n\n (_graph$nodeToNodeSubs = graph.nodeToNodeSubscriptions.get(dep)) === null || _graph$nodeToNodeSubs === void 0 ? void 0 : _graph$nodeToNodeSubs.delete(node);\n }\n } // No need to delete sub's deps as there should be no subs at this point.\n // But an invariant would require deleting nodes in topological order.\n\n\n graph.nodeToNodeSubscriptions.delete(node);\n } // Node config (for family members only as their configs can be recreated, and\n // only if they are not retained within any other Stores):\n\n\n deleteNodeConfigIfPossible$1(node);\n}\n\nfunction nodesRetainedByZone(storeState, zone) {\n var _storeState$retention3;\n\n return (_storeState$retention3 = storeState.retention.nodesRetainedByZone.get(zone)) !== null && _storeState$retention3 !== void 0 ? _storeState$retention3 : emptySet$1;\n}\n\nfunction zonesThatCouldRetainNode(node) {\n const retainedBy = getNode$3(node).retainedBy;\n\n if (retainedBy === undefined || retainedBy === 'components' || retainedBy === 'recoilRoot') {\n return [];\n } else if (retainedBy instanceof RetentionZone$2) {\n return [retainedBy];\n } else {\n return retainedBy; // it's an array of zones\n }\n}\n\nfunction scheduleOrPerformPossibleReleaseOfRetainable(store, retainable) {\n const state = store.getState();\n\n if (state.nextTree) {\n state.retention.retainablesToCheckForRelease.add(retainable);\n } else {\n releaseRetainablesNowOnCurrentTree(store, new Set([retainable]));\n }\n}\n\nfunction updateRetainCount(store, retainable, delta) {\n var _map$get;\n\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const map = store.getState().retention.referenceCounts;\n const newCount = ((_map$get = map.get(retainable)) !== null && _map$get !== void 0 ? _map$get : 0) + delta;\n\n if (newCount === 0) {\n updateRetainCountToZero(store, retainable);\n } else {\n map.set(retainable, newCount);\n }\n}\n\nfunction updateRetainCountToZero(store, retainable) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const map = store.getState().retention.referenceCounts;\n map.delete(retainable);\n scheduleOrPerformPossibleReleaseOfRetainable(store, retainable);\n}\n\nfunction releaseScheduledRetainablesNow(store) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const state = store.getState();\n releaseRetainablesNowOnCurrentTree(store, state.retention.retainablesToCheckForRelease);\n state.retention.retainablesToCheckForRelease.clear();\n}\n\nfunction retainedByOptionWithDefault(r) {\n // The default will change from 'recoilRoot' to 'components' in the future.\n return r === undefined ? 'recoilRoot' : r;\n}\n\nvar Recoil_Retention = {\n SUSPENSE_TIMEOUT_MS,\n updateRetainCount,\n updateRetainCountToZero,\n releaseScheduledRetainablesNow,\n retainedByOptionWithDefault\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * This is to export esstiential functions from react-dom\n * for our web build\n *\n * \n * @format\n * @oncall recoil\n */\nconst {\n unstable_batchedUpdates\n} = reactDom;\n\nvar ReactBatchedUpdates = {\n unstable_batchedUpdates\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * This is to export esstiential functions from react-dom\n * for our web build\n *\n * \n * @format\n * @oncall recoil\n */\n// @fb-only: const {unstable_batchedUpdates} = require('ReactDOMComet');\n// prettier-ignore\nconst {\n unstable_batchedUpdates: unstable_batchedUpdates$1\n} = ReactBatchedUpdates; // @oss-only\n\n\nvar Recoil_ReactBatchedUpdates = {\n unstable_batchedUpdates: unstable_batchedUpdates$1\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\nconst {\n batchStart: batchStart$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n unstable_batchedUpdates: unstable_batchedUpdates$2\n} = Recoil_ReactBatchedUpdates; // flowlint-next-line unclear-type:off\n\n\n/*\n * During SSR, unstable_batchedUpdates may be undefined so this\n * falls back to a basic function that executes the batch\n */\nlet batcher = unstable_batchedUpdates$2 || (batchFn => batchFn());\n/**\n * Sets the provided batcher function as the batcher function used by Recoil.\n *\n * Set the batcher to a custom batcher for your renderer,\n * if you use a renderer other than React DOM or React Native.\n */\n\n\nconst setBatcher = newBatcher => {\n batcher = newBatcher;\n};\n/**\n * Returns the current batcher function.\n */\n\n\nconst getBatcher = () => batcher;\n/**\n * Calls the current batcher function and passes the\n * provided callback function.\n */\n\n\nconst batchUpdates = callback => {\n batcher(() => {\n let batchEnd = () => undefined;\n\n try {\n batchEnd = batchStart$1();\n callback();\n } finally {\n batchEnd();\n }\n });\n};\n\nvar Recoil_Batching = {\n getBatcher,\n setBatcher,\n batchUpdates\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Combines multiple Iterables into a single Iterable.\n * Traverses the input Iterables in the order provided and maintains the order\n * of their elements.\n *\n * Example:\n * ```\n * const r = Array.from(concatIterables(['a', 'b'], ['c'], ['d', 'e', 'f']));\n * r == ['a', 'b', 'c', 'd', 'e', 'f'];\n * ```\n */\n\nfunction* concatIterables(iters) {\n for (const iter of iters) {\n for (const val of iter) {\n yield val;\n }\n }\n}\n\nvar Recoil_concatIterables = concatIterables;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/* eslint-disable fb-www/typeof-undefined */\n\nconst isSSR = // $FlowFixMe(site=recoil) Window does not have a FlowType definition https://github.com/facebook/flow/issues/6709\ntypeof Window === 'undefined' || typeof window === 'undefined';\n/* eslint-enable fb-www/typeof-undefined */\n\nconst isWindow = value => !isSSR && ( // $FlowFixMe(site=recoil) Window does not have a FlowType definition https://github.com/facebook/flow/issues/6709\nvalue === window || value instanceof Window);\n\nconst isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; // eslint-disable-line fb-www/typeof-undefined\n\nvar Recoil_Environment = {\n isSSR,\n isReactNative,\n isWindow\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Caches a function's results based on the key returned by the passed\n * hashFunction.\n */\n\nfunction memoizeWithArgsHash(fn, hashFunction) {\n let cache;\n return (...args) => {\n if (!cache) {\n cache = {};\n }\n\n const key = hashFunction(...args);\n\n if (!Object.hasOwnProperty.call(cache, key)) {\n cache[key] = fn(...args);\n }\n\n return cache[key];\n };\n}\n/**\n * Caches a function's results based on a comparison of the arguments.\n * Only caches the last return of the function.\n * Defaults to reference equality\n */\n\n\nfunction memoizeOneWithArgsHash(fn, hashFunction) {\n let lastKey;\n let lastResult; // breaking cache when arguments change\n\n return (...args) => {\n const key = hashFunction(...args);\n\n if (lastKey === key) {\n return lastResult;\n }\n\n lastKey = key;\n lastResult = fn(...args);\n return lastResult;\n };\n}\n/**\n * Caches a function's results based on a comparison of the arguments.\n * Only caches the last return of the function.\n * Defaults to reference equality\n */\n\n\nfunction memoizeOneWithArgsHashAndInvalidation(fn, hashFunction) {\n let lastKey;\n let lastResult; // breaking cache when arguments change\n\n const memoizedFn = (...args) => {\n const key = hashFunction(...args);\n\n if (lastKey === key) {\n return lastResult;\n }\n\n lastKey = key;\n lastResult = fn(...args);\n return lastResult;\n };\n\n const invalidate = () => {\n lastKey = null;\n };\n\n return [memoizedFn, invalidate];\n}\n\nvar Recoil_Memoize = {\n memoizeWithArgsHash,\n memoizeOneWithArgsHash,\n memoizeOneWithArgsHashAndInvalidation\n};\n\nconst {\n batchUpdates: batchUpdates$1\n} = Recoil_Batching;\n\nconst {\n initializeNode: initializeNode$1,\n peekNodeInfo: peekNodeInfo$1\n} = Recoil_FunctionalCore;\n\nconst {\n graph: graph$1\n} = Recoil_Graph;\n\nconst {\n getNextStoreID: getNextStoreID$1\n} = Recoil_Keys;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$1,\n recoilValues: recoilValues$1,\n recoilValuesForKeys: recoilValuesForKeys$2\n} = Recoil_Node;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$2,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$1,\n setRecoilValue: setRecoilValue$1,\n setUnvalidatedRecoilValue: setUnvalidatedRecoilValue$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n updateRetainCount: updateRetainCount$1\n} = Recoil_Retention;\n\nconst {\n setInvalidateMemoizedSnapshot: setInvalidateMemoizedSnapshot$1\n} = Recoil_SnapshotCache;\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$2,\n makeEmptyStoreState: makeEmptyStoreState$1\n} = Recoil_State;\n\n\n\nconst {\n isSSR: isSSR$1\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\nconst {\n memoizeOneWithArgsHashAndInvalidation: memoizeOneWithArgsHashAndInvalidation$1\n} = Recoil_Memoize;\n\n\n\n // Opaque at this surface because it's part of the public API from here.\n\n\nconst retainWarning = `\nRecoil Snapshots only last for the duration of the callback they are provided to. To keep a Snapshot longer, do this:\n\n const release = snapshot.retain();\n try {\n await doSomethingWithSnapshot(snapshot);\n } finally {\n release();\n }\n\nThis is currently a DEV-only warning but will become a thrown exception in the next release of Recoil.\n`; // A \"Snapshot\" is \"read-only\" and captures a specific set of values of atoms.\n// However, the data-flow-graph and selector values may evolve as selector\n// evaluation functions are executed and async selectors resolve.\n\nclass Snapshot {\n // eslint-disable-next-line fb-www/no-uninitialized-properties\n constructor(storeState, parentStoreID) {\n _defineProperty(this, \"_store\", void 0);\n\n _defineProperty(this, \"_refCount\", 1);\n\n _defineProperty(this, \"getLoadable\", recoilValue => {\n this.checkRefCount_INTERNAL();\n return getRecoilValueAsLoadable$1(this._store, recoilValue);\n });\n\n _defineProperty(this, \"getPromise\", recoilValue => {\n this.checkRefCount_INTERNAL();\n return this.getLoadable(recoilValue).toPromise();\n });\n\n _defineProperty(this, \"getNodes_UNSTABLE\", opt => {\n this.checkRefCount_INTERNAL(); // TODO Deal with modified selectors\n\n if ((opt === null || opt === void 0 ? void 0 : opt.isModified) === true) {\n if ((opt === null || opt === void 0 ? void 0 : opt.isInitialized) === false) {\n return [];\n }\n\n const state = this._store.getState().currentTree;\n\n return recoilValuesForKeys$2(state.dirtyAtoms);\n }\n\n const knownAtoms = this._store.getState().knownAtoms;\n\n const knownSelectors = this._store.getState().knownSelectors;\n\n return (opt === null || opt === void 0 ? void 0 : opt.isInitialized) == null ? recoilValues$1.values() : opt.isInitialized === true ? recoilValuesForKeys$2(Recoil_concatIterables([knownAtoms, knownSelectors])) : Recoil_filterIterable(recoilValues$1.values(), ({\n key\n }) => !knownAtoms.has(key) && !knownSelectors.has(key));\n });\n\n _defineProperty(this, \"getInfo_UNSTABLE\", ({\n key\n }) => {\n this.checkRefCount_INTERNAL();\n return peekNodeInfo$1(this._store, this._store.getState().currentTree, key);\n });\n\n _defineProperty(this, \"map\", mapper => {\n this.checkRefCount_INTERNAL();\n const mutableSnapshot = new MutableSnapshot(this, batchUpdates$1);\n mapper(mutableSnapshot); // if removing batchUpdates from `set` add it here\n\n return mutableSnapshot;\n });\n\n _defineProperty(this, \"asyncMap\", async mapper => {\n this.checkRefCount_INTERNAL();\n const mutableSnapshot = new MutableSnapshot(this, batchUpdates$1);\n mutableSnapshot.retain(); // Retain new snapshot during async mapper\n\n await mapper(mutableSnapshot); // Continue to retain the new snapshot for the user, but auto-release it\n // after the next tick, the same as a new synchronous snapshot.\n\n mutableSnapshot.autoRelease_INTERNAL();\n return mutableSnapshot;\n });\n\n this._store = {\n storeID: getNextStoreID$1(),\n parentStoreID,\n getState: () => storeState,\n replaceState: replacer => {\n // no batching, so nextTree is never active\n storeState.currentTree = replacer(storeState.currentTree);\n },\n getGraph: version => {\n const graphs = storeState.graphsByVersion;\n\n if (graphs.has(version)) {\n return Recoil_nullthrows(graphs.get(version));\n }\n\n const newGraph = graph$1();\n graphs.set(version, newGraph);\n return newGraph;\n },\n subscribeToTransactions: () => ({\n release: () => {}\n }),\n addTransactionMetadata: () => {\n throw Recoil_err('Cannot subscribe to Snapshots');\n }\n }; // Initialize any nodes that are live in the parent store (primarily so that\n // this snapshot gets counted towards the node's live stores count).\n // TODO Optimize this when cloning snapshots for callbacks\n\n for (const nodeKey of this._store.getState().knownAtoms) {\n initializeNode$1(this._store, nodeKey, 'get');\n updateRetainCount$1(this._store, nodeKey, 1);\n }\n\n this.autoRelease_INTERNAL();\n }\n\n retain() {\n if (this._refCount <= 0) {\n if (process.env.NODE_ENV !== \"production\") {\n throw Recoil_err('Snapshot has already been released.');\n } else {\n Recoil_recoverableViolation('Attempt to retain() Snapshot that was already released.');\n }\n }\n\n this._refCount++;\n let released = false;\n return () => {\n if (!released) {\n released = true;\n\n this._release();\n }\n };\n }\n /**\n * Release the snapshot on the next tick. This means the snapshot is retained\n * during the execution of the current function using it.\n */\n\n\n autoRelease_INTERNAL() {\n if (!isSSR$1) {\n // Use timeout of 10 to workaround Firefox issue: https://github.com/facebookexperimental/Recoil/issues/1936\n window.setTimeout(() => this._release(), 10);\n }\n }\n\n _release() {\n this._refCount--;\n\n if (this._refCount === 0) {\n this._store.getState().nodeCleanupFunctions.forEach(cleanup => cleanup());\n\n this._store.getState().nodeCleanupFunctions.clear();\n\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n } // Temporarily nerfing this to allow us to find broken call sites without\n // actually breaking anybody yet.\n // for (const k of this._store.getState().knownAtoms) {\n // updateRetainCountToZero(this._store, k);\n // }\n\n } else if (this._refCount < 0) {\n if (process.env.NODE_ENV !== \"production\") {\n Recoil_recoverableViolation('Snapshot released an extra time.');\n }\n }\n }\n\n isRetained() {\n return this._refCount > 0;\n }\n\n checkRefCount_INTERNAL() {\n if (Recoil_gkx('recoil_memory_managament_2020') && this._refCount <= 0) {\n if (process.env.NODE_ENV !== \"production\") {\n Recoil_recoverableViolation(retainWarning);\n } // What we will ship later:\n // throw err(retainWarning);\n\n }\n }\n\n getStore_INTERNAL() {\n this.checkRefCount_INTERNAL();\n return this._store;\n }\n\n getID() {\n this.checkRefCount_INTERNAL();\n return this._store.getState().currentTree.stateID;\n }\n\n getStoreID() {\n this.checkRefCount_INTERNAL();\n return this._store.storeID;\n } // We want to allow the methods to be destructured and used as accessors\n\n /* eslint-disable fb-www/extra-arrow-initializer */\n\n /* eslint-enable fb-www/extra-arrow-initializer */\n\n\n}\n\nfunction cloneStoreState(store, treeState, bumpVersion = false) {\n const storeState = store.getState();\n const version = bumpVersion ? getNextTreeStateVersion$2() : treeState.version;\n return {\n // Always clone the TreeState to isolate stores from accidental mutations.\n // For example, reading a selector from a cloned snapshot shouldn't cache\n // in the original treestate which may cause the original to skip\n // initialization of upstream atoms.\n currentTree: {\n // TODO snapshots shouldn't really have versions because a new version number\n // is always assigned when the snapshot is gone to.\n version: bumpVersion ? version : treeState.version,\n stateID: bumpVersion ? version : treeState.stateID,\n transactionMetadata: { ...treeState.transactionMetadata\n },\n dirtyAtoms: new Set(treeState.dirtyAtoms),\n atomValues: treeState.atomValues.clone(),\n nonvalidatedAtoms: treeState.nonvalidatedAtoms.clone()\n },\n commitDepth: 0,\n nextTree: null,\n previousTree: null,\n knownAtoms: new Set(storeState.knownAtoms),\n // FIXME here's a copy\n knownSelectors: new Set(storeState.knownSelectors),\n // FIXME here's a copy\n transactionSubscriptions: new Map(),\n nodeTransactionSubscriptions: new Map(),\n nodeToComponentSubscriptions: new Map(),\n queuedComponentCallbacks_DEPRECATED: [],\n suspendedComponentResolvers: new Set(),\n graphsByVersion: new Map().set(version, store.getGraph(treeState.version)),\n retention: {\n referenceCounts: new Map(),\n nodesRetainedByZone: new Map(),\n retainablesToCheckForRelease: new Set()\n },\n // FIXME here's a copy\n // Create blank cleanup handlers for atoms so snapshots don't re-run\n // atom effects.\n nodeCleanupFunctions: new Map(Recoil_mapIterable(storeState.nodeCleanupFunctions.entries(), ([key]) => [key, () => {}]))\n };\n} // Factory to build a fresh snapshot\n\n\nfunction freshSnapshot(initializeState) {\n const snapshot = new Snapshot(makeEmptyStoreState$1());\n return initializeState != null ? snapshot.map(initializeState) : snapshot;\n} // Factory to clone a snapshot state\n\n\nconst [memoizedCloneSnapshot, invalidateMemoizedSnapshot$2] = memoizeOneWithArgsHashAndInvalidation$1( // $FlowFixMe[missing-local-annot]\n(store, version) => {\n var _storeState$nextTree;\n\n const storeState = store.getState();\n const treeState = version === 'latest' ? (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree : Recoil_nullthrows(storeState.previousTree);\n return new Snapshot(cloneStoreState(store, treeState), store.storeID);\n}, (store, version) => {\n var _store$getState$nextT, _store$getState$previ;\n\n return String(version) + String(store.storeID) + String((_store$getState$nextT = store.getState().nextTree) === null || _store$getState$nextT === void 0 ? void 0 : _store$getState$nextT.version) + String(store.getState().currentTree.version) + String((_store$getState$previ = store.getState().previousTree) === null || _store$getState$previ === void 0 ? void 0 : _store$getState$previ.version);\n}); // Avoid circular dependencies\n\nsetInvalidateMemoizedSnapshot$1(invalidateMemoizedSnapshot$2);\n\nfunction cloneSnapshot(store, version = 'latest') {\n const snapshot = memoizedCloneSnapshot(store, version);\n\n if (!snapshot.isRetained()) {\n invalidateMemoizedSnapshot$2();\n return memoizedCloneSnapshot(store, version);\n }\n\n return snapshot;\n}\n\nclass MutableSnapshot extends Snapshot {\n constructor(snapshot, batch) {\n super(cloneStoreState(snapshot.getStore_INTERNAL(), snapshot.getStore_INTERNAL().getState().currentTree, true), snapshot.getStoreID());\n\n _defineProperty(this, \"_batch\", void 0);\n\n _defineProperty(this, \"set\", (recoilState, newValueOrUpdater) => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // This batchUpdates ensures this `set` is applied immediately and you can\n // read the written value after calling `set`. I would like to remove this\n // behavior and only batch in `Snapshot.map`, but this would be a breaking\n // change potentially.\n\n this._batch(() => {\n updateRetainCount$1(store, recoilState.key, 1);\n setRecoilValue$1(this.getStore_INTERNAL(), recoilState, newValueOrUpdater);\n });\n });\n\n _defineProperty(this, \"reset\", recoilState => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // See note at `set` about batched updates.\n\n this._batch(() => {\n updateRetainCount$1(store, recoilState.key, 1);\n setRecoilValue$1(this.getStore_INTERNAL(), recoilState, DEFAULT_VALUE$1);\n });\n });\n\n _defineProperty(this, \"setUnvalidatedAtomValues_DEPRECATED\", values => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // See note at `set` about batched updates.\n\n batchUpdates$1(() => {\n for (const [k, v] of values.entries()) {\n updateRetainCount$1(store, k, 1);\n setUnvalidatedRecoilValue$1(store, new AbstractRecoilValue$2(k), v);\n }\n });\n });\n\n this._batch = batch;\n }\n\n}\n\nvar Recoil_Snapshot = {\n Snapshot,\n MutableSnapshot,\n freshSnapshot,\n cloneSnapshot\n};\n\nvar Recoil_Snapshot_1 = Recoil_Snapshot.Snapshot;\nvar Recoil_Snapshot_2 = Recoil_Snapshot.MutableSnapshot;\nvar Recoil_Snapshot_3 = Recoil_Snapshot.freshSnapshot;\nvar Recoil_Snapshot_4 = Recoil_Snapshot.cloneSnapshot;\n\nvar Recoil_Snapshot$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Snapshot: Recoil_Snapshot_1,\n MutableSnapshot: Recoil_Snapshot_2,\n freshSnapshot: Recoil_Snapshot_3,\n cloneSnapshot: Recoil_Snapshot_4\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction unionSets(...sets) {\n const result = new Set();\n\n for (const set of sets) {\n for (const value of set) {\n result.add(value);\n }\n }\n\n return result;\n}\n\nvar Recoil_unionSets = unionSets;\n\nconst {\n useRef\n} = react;\n/**\n * The same as `useRef()` except that if a function is specified then it will\n * call that function to get the value to initialize the reference with.\n * This is similar to how `useState()` behaves when given a function. It allows\n * the user to avoid generating the initial value for subsequent renders.\n * The tradeoff is that to set the reference to a function itself you need to\n * nest it: useRefInitOnce(() => () => {...});\n */\n\n\nfunction useRefInitOnce(initialValue) {\n // $FlowExpectedError[incompatible-call]\n const ref = useRef(initialValue);\n\n if (ref.current === initialValue && typeof initialValue === 'function') {\n // $FlowExpectedError[incompatible-use]\n ref.current = initialValue();\n }\n\n return ref;\n}\n\nvar Recoil_useRefInitOnce = useRefInitOnce;\n\n// @fb-only: const RecoilusagelogEvent = require('RecoilusagelogEvent');\n// @fb-only: const RecoilUsageLogFalcoEvent = require('RecoilUsageLogFalcoEvent');\n// @fb-only: const URI = require('URI');\n\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$3,\n makeEmptyStoreState: makeEmptyStoreState$2\n} = Recoil_State;\n\nconst {\n cleanUpNode: cleanUpNode$2,\n getDownstreamNodes: getDownstreamNodes$2,\n initializeNode: initializeNode$2,\n setNodeValue: setNodeValue$2,\n setUnvalidatedAtomValue_DEPRECATED: setUnvalidatedAtomValue_DEPRECATED$1\n} = Recoil_FunctionalCore;\n\nconst {\n graph: graph$2\n} = Recoil_Graph;\n\nconst {\n cloneGraph: cloneGraph$1\n} = Recoil_Graph;\n\nconst {\n getNextStoreID: getNextStoreID$2\n} = Recoil_Keys;\n\nconst {\n createMutableSource: createMutableSource$1,\n reactMode: reactMode$2\n} = Recoil_ReactMode;\n\nconst {\n applyAtomValueWrites: applyAtomValueWrites$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n releaseScheduledRetainablesNow: releaseScheduledRetainablesNow$1\n} = Recoil_Retention;\n\nconst {\n freshSnapshot: freshSnapshot$1\n} = Recoil_Snapshot$1;\n\n\n\nconst {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef: useRef$1,\n useState\n} = react;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction notInAContext() {\n throw Recoil_err('This component must be used inside a component.');\n}\n\nconst defaultStore = Object.freeze({\n storeID: getNextStoreID$2(),\n getState: notInAContext,\n replaceState: notInAContext,\n getGraph: notInAContext,\n subscribeToTransactions: notInAContext,\n addTransactionMetadata: notInAContext\n});\nlet stateReplacerIsBeingExecuted = false;\n\nfunction startNextTreeIfNeeded(store) {\n if (stateReplacerIsBeingExecuted) {\n throw Recoil_err('An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.');\n }\n\n const storeState = store.getState();\n\n if (storeState.nextTree === null) {\n if (Recoil_gkx('recoil_memory_managament_2020') && Recoil_gkx('recoil_release_on_cascading_update_killswitch_2021')) {\n // If this is a cascading update (that is, rendering due to one state change\n // invokes a second state change), we won't have cleaned up retainables yet\n // because this normally happens after notifying components. Do it before\n // proceeding with the cascading update so that it remains predictable:\n if (storeState.commitDepth > 0) {\n releaseScheduledRetainablesNow$1(store);\n }\n }\n\n const version = storeState.currentTree.version;\n const nextVersion = getNextTreeStateVersion$3();\n storeState.nextTree = { ...storeState.currentTree,\n version: nextVersion,\n stateID: nextVersion,\n dirtyAtoms: new Set(),\n transactionMetadata: {}\n };\n storeState.graphsByVersion.set(nextVersion, cloneGraph$1(Recoil_nullthrows(storeState.graphsByVersion.get(version))));\n }\n}\n\nconst AppContext = react.createContext({\n current: defaultStore\n});\n\nconst useStoreRef = () => useContext(AppContext); // $FlowExpectedError[incompatible-call]\n\n\nconst MutableSourceContext = react.createContext(null);\n\nfunction useRecoilMutableSource() {\n const mutableSource = useContext(MutableSourceContext);\n\n if (mutableSource == null) {\n Recoil_expectationViolation('Attempted to use a Recoil hook outside of a . ' + ' must be an ancestor of any component that uses ' + 'Recoil hooks.');\n }\n\n return mutableSource;\n}\n\nfunction notifyComponents(store, storeState, treeState) {\n const dependentNodes = getDownstreamNodes$2(store, treeState, treeState.dirtyAtoms);\n\n for (const key of dependentNodes) {\n const comps = storeState.nodeToComponentSubscriptions.get(key);\n\n if (comps) {\n for (const [_subID, [_debugName, callback]] of comps) {\n callback(treeState);\n }\n }\n }\n}\n\nfunction sendEndOfBatchNotifications(store) {\n const storeState = store.getState();\n const treeState = storeState.currentTree; // Inform transaction subscribers of the transaction:\n\n const dirtyAtoms = treeState.dirtyAtoms;\n\n if (dirtyAtoms.size) {\n // Execute Node-specific subscribers before global subscribers\n for (const [key, subscriptions] of storeState.nodeTransactionSubscriptions) {\n if (dirtyAtoms.has(key)) {\n for (const [_, subscription] of subscriptions) {\n subscription(store);\n }\n }\n }\n\n for (const [_, subscription] of storeState.transactionSubscriptions) {\n subscription(store);\n }\n\n if (!reactMode$2().early || storeState.suspendedComponentResolvers.size > 0) {\n // Notifying components is needed to wake from suspense, even when using\n // early rendering.\n notifyComponents(store, storeState, treeState); // Wake all suspended components so the right one(s) can try to re-render.\n // We need to wake up components not just when some asynchronous selector\n // resolved, but also when changing synchronous values because this may cause\n // a selector to change from asynchronous to synchronous, in which case there\n // would be no follow-up asynchronous resolution to wake us up.\n // TODO OPTIMIZATION Only wake up related downstream components\n\n storeState.suspendedComponentResolvers.forEach(cb => cb());\n storeState.suspendedComponentResolvers.clear();\n }\n } // Special behavior ONLY invoked by useInterface.\n // FIXME delete queuedComponentCallbacks_DEPRECATED when deleting useInterface.\n\n\n storeState.queuedComponentCallbacks_DEPRECATED.forEach(cb => cb(treeState));\n storeState.queuedComponentCallbacks_DEPRECATED.splice(0, storeState.queuedComponentCallbacks_DEPRECATED.length);\n}\n\nfunction endBatch(store) {\n const storeState = store.getState();\n storeState.commitDepth++;\n\n try {\n const {\n nextTree\n } = storeState; // Ignore commits that are not because of Recoil transactions -- namely,\n // because something above RecoilRoot re-rendered:\n\n if (nextTree == null) {\n return;\n } // nextTree is now committed -- note that copying and reset occurs when\n // a transaction begins, in startNextTreeIfNeeded:\n\n\n storeState.previousTree = storeState.currentTree;\n storeState.currentTree = nextTree;\n storeState.nextTree = null;\n sendEndOfBatchNotifications(store);\n\n if (storeState.previousTree != null) {\n storeState.graphsByVersion.delete(storeState.previousTree.version);\n } else {\n Recoil_recoverableViolation('Ended batch with no previous state, which is unexpected', 'recoil');\n }\n\n storeState.previousTree = null;\n\n if (Recoil_gkx('recoil_memory_managament_2020')) {\n // Only release retainables if there were no writes during the end of the\n // batch. This avoids releasing something we might be about to use.\n if (nextTree == null) {\n releaseScheduledRetainablesNow$1(store);\n }\n }\n } finally {\n storeState.commitDepth--;\n }\n}\n/*\n * The purpose of the Batcher is to observe when React batches end so that\n * Recoil state changes can be batched. Whenever Recoil state changes, we call\n * setState on the batcher. Then we wait for that change to be committed, which\n * signifies the end of the batch. That's when we respond to the Recoil change.\n */\n\n\nfunction Batcher({\n setNotifyBatcherOfChange\n}) {\n const storeRef = useStoreRef();\n const [, setState] = useState([]); // $FlowFixMe[incompatible-call]\n\n setNotifyBatcherOfChange(() => setState({}));\n useEffect(() => {\n // $FlowFixMe[incompatible-call]\n setNotifyBatcherOfChange(() => setState({})); // If an asynchronous selector resolves after the Batcher is unmounted,\n // notifyBatcherOfChange will still be called. An error gets thrown whenever\n // setState is called after a component is already unmounted, so this sets\n // notifyBatcherOfChange to be a no-op.\n\n return () => {\n setNotifyBatcherOfChange(() => {});\n };\n }, [setNotifyBatcherOfChange]);\n useEffect(() => {\n // enqueueExecution runs this function immediately; it is only used to\n // manipulate the order of useEffects during tests, since React seems to\n // call useEffect in an unpredictable order sometimes.\n Recoil_Queue.enqueueExecution('Batcher', () => {\n endBatch(storeRef.current);\n });\n });\n return null;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined' && !window.$recoilDebugStates) {\n window.$recoilDebugStates = [];\n }\n} // When removing this deprecated function, remove stateBySettingRecoilValue\n// which will no longer be needed.\n\n\nfunction initialStoreState_DEPRECATED(store, initializeState) {\n const initial = makeEmptyStoreState$2();\n initializeState({\n set: (atom, value) => {\n const state = initial.currentTree;\n const writes = setNodeValue$2(store, state, atom.key, value);\n const writtenNodes = new Set(writes.keys());\n const nonvalidatedAtoms = state.nonvalidatedAtoms.clone();\n\n for (const n of writtenNodes) {\n nonvalidatedAtoms.delete(n);\n }\n\n initial.currentTree = { ...state,\n dirtyAtoms: Recoil_unionSets(state.dirtyAtoms, writtenNodes),\n atomValues: applyAtomValueWrites$1(state.atomValues, writes),\n // NB: PLEASE un-export applyAtomValueWrites when deleting this code\n nonvalidatedAtoms\n };\n },\n setUnvalidatedAtomValues: atomValues => {\n // FIXME replace this with a mutative loop\n atomValues.forEach((v, k) => {\n initial.currentTree = setUnvalidatedAtomValue_DEPRECATED$1(initial.currentTree, k, v);\n });\n }\n });\n return initial;\n} // Initialize state snapshot for for the initializeState prop.\n// Atom effect initialization takes precedence over this prop.\n// Any atom effects will be run before initialization, but then cleaned up,\n// they are then re-run when used as part of rendering. These semantics are\n// compatible with React StrictMode where effects may be re-run multiple times\n// but state initialization only happens once the first time.\n\n\nfunction initialStoreState(initializeState) {\n // Initialize a snapshot and get its store\n const snapshot = freshSnapshot$1(initializeState);\n const storeState = snapshot.getStore_INTERNAL().getState(); // Counteract the snapshot auto-release\n\n snapshot.retain(); // Cleanup any effects run during initialization and clear the handlers so\n // they will re-initialize if used during rendering. This allows atom effect\n // initialization to take precedence over initializeState and be compatible\n // with StrictMode semantics.\n\n storeState.nodeCleanupFunctions.forEach(cleanup => cleanup());\n storeState.nodeCleanupFunctions.clear();\n return storeState;\n}\n\nlet nextID = 0;\n\nfunction RecoilRoot_INTERNAL({\n initializeState_DEPRECATED,\n initializeState,\n store_INTERNAL: storeProp,\n // For use with React \"context bridging\"\n children\n}) {\n // prettier-ignore\n // @fb-only: useEffect(() => {\n // @fb-only: if (gkx('recoil_usage_logging')) {\n // @fb-only: try {\n // @fb-only: RecoilUsageLogFalcoEvent.log(() => ({\n // @fb-only: type: RecoilusagelogEvent.RECOIL_ROOT_MOUNTED,\n // @fb-only: path: URI.getRequestURI().getPath(),\n // @fb-only: }));\n // @fb-only: } catch {\n // @fb-only: recoverableViolation(\n // @fb-only: 'Error when logging Recoil Usage event',\n // @fb-only: 'recoil',\n // @fb-only: );\n // @fb-only: }\n // @fb-only: }\n // @fb-only: }, []);\n let storeStateRef; // eslint-disable-line prefer-const\n\n const getGraph = version => {\n const graphs = storeStateRef.current.graphsByVersion;\n\n if (graphs.has(version)) {\n return Recoil_nullthrows(graphs.get(version));\n }\n\n const newGraph = graph$2();\n graphs.set(version, newGraph);\n return newGraph;\n };\n\n const subscribeToTransactions = (callback, key) => {\n if (key == null) {\n // Global transaction subscriptions\n const {\n transactionSubscriptions\n } = storeRef.current.getState();\n const id = nextID++;\n transactionSubscriptions.set(id, callback);\n return {\n release: () => {\n transactionSubscriptions.delete(id);\n }\n };\n } else {\n // Node-specific transaction subscriptions:\n const {\n nodeTransactionSubscriptions\n } = storeRef.current.getState();\n\n if (!nodeTransactionSubscriptions.has(key)) {\n nodeTransactionSubscriptions.set(key, new Map());\n }\n\n const id = nextID++;\n Recoil_nullthrows(nodeTransactionSubscriptions.get(key)).set(id, callback);\n return {\n release: () => {\n const subs = nodeTransactionSubscriptions.get(key);\n\n if (subs) {\n subs.delete(id);\n\n if (subs.size === 0) {\n nodeTransactionSubscriptions.delete(key);\n }\n }\n }\n };\n }\n };\n\n const addTransactionMetadata = metadata => {\n startNextTreeIfNeeded(storeRef.current);\n\n for (const k of Object.keys(metadata)) {\n Recoil_nullthrows(storeRef.current.getState().nextTree).transactionMetadata[k] = metadata[k];\n }\n };\n\n const replaceState = replacer => {\n startNextTreeIfNeeded(storeRef.current); // Use replacer to get the next state:\n\n const nextTree = Recoil_nullthrows(storeStateRef.current.nextTree);\n let replaced;\n\n try {\n stateReplacerIsBeingExecuted = true;\n replaced = replacer(nextTree);\n } finally {\n stateReplacerIsBeingExecuted = false;\n }\n\n if (replaced === nextTree) {\n return;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined') {\n window.$recoilDebugStates.push(replaced); // TODO this shouldn't happen here because it's not batched\n }\n } // Save changes to nextTree and schedule a React update:\n\n\n storeStateRef.current.nextTree = replaced;\n\n if (reactMode$2().early) {\n notifyComponents(storeRef.current, storeStateRef.current, replaced);\n }\n\n Recoil_nullthrows(notifyBatcherOfChange.current)();\n };\n\n const notifyBatcherOfChange = useRef$1(null);\n const setNotifyBatcherOfChange = useCallback(x => {\n notifyBatcherOfChange.current = x;\n }, [notifyBatcherOfChange]);\n const storeRef = Recoil_useRefInitOnce(() => storeProp !== null && storeProp !== void 0 ? storeProp : {\n storeID: getNextStoreID$2(),\n getState: () => storeStateRef.current,\n replaceState,\n getGraph,\n subscribeToTransactions,\n addTransactionMetadata\n });\n\n if (storeProp != null) {\n storeRef.current = storeProp;\n }\n\n storeStateRef = Recoil_useRefInitOnce(() => initializeState_DEPRECATED != null ? initialStoreState_DEPRECATED(storeRef.current, initializeState_DEPRECATED) : initializeState != null ? initialStoreState(initializeState) : makeEmptyStoreState$2());\n const mutableSource = useMemo(() => createMutableSource$1 === null || createMutableSource$1 === void 0 ? void 0 : createMutableSource$1(storeStateRef, () => storeStateRef.current.currentTree.version), [storeStateRef]); // Cleanup when the is unmounted\n\n useEffect(() => {\n // React is free to call effect cleanup handlers and effects at will, the\n // deps array is only an optimization. For example, React strict mode\n // will execute each effect twice for testing. Therefore, we need symmetry\n // to re-initialize all known atoms after they were cleaned up.\n const store = storeRef.current;\n\n for (const atomKey of new Set(store.getState().knownAtoms)) {\n initializeNode$2(store, atomKey, 'get');\n }\n\n return () => {\n for (const atomKey of store.getState().knownAtoms) {\n cleanUpNode$2(store, atomKey);\n }\n };\n }, [storeRef]);\n return /*#__PURE__*/react.createElement(AppContext.Provider, {\n value: storeRef\n }, /*#__PURE__*/react.createElement(MutableSourceContext.Provider, {\n value: mutableSource\n }, /*#__PURE__*/react.createElement(Batcher, {\n setNotifyBatcherOfChange: setNotifyBatcherOfChange\n }), children));\n}\n\nfunction RecoilRoot(props) {\n const {\n override,\n ...propsExceptOverride\n } = props;\n const ancestorStoreRef = useStoreRef();\n\n if (override === false && ancestorStoreRef.current !== defaultStore) {\n // If ancestorStoreRef.current !== defaultStore, it means that this\n // RecoilRoot is not nested within another.\n return props.children;\n }\n\n return /*#__PURE__*/react.createElement(RecoilRoot_INTERNAL, propsExceptOverride);\n}\n\nfunction useRecoilStoreID() {\n return useStoreRef().current.storeID;\n}\n\nvar Recoil_RecoilRoot = {\n RecoilRoot,\n useStoreRef,\n useRecoilMutableSource,\n useRecoilStoreID,\n notifyComponents_FOR_TESTING: notifyComponents,\n sendEndOfBatchNotifications_FOR_TESTING: sendEndOfBatchNotifications\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction shallowArrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar Recoil_shallowArrayEqual = shallowArrayEqual;\n\nconst {\n useEffect: useEffect$1,\n useRef: useRef$2\n} = react;\n\nfunction usePrevious(value) {\n const ref = useRef$2();\n useEffect$1(() => {\n // $FlowFixMe[incompatible-type]\n ref.current = value;\n });\n return ref.current;\n}\n\nvar Recoil_usePrevious = usePrevious;\n\nconst {\n useStoreRef: useStoreRef$1\n} = Recoil_RecoilRoot;\n\nconst {\n SUSPENSE_TIMEOUT_MS: SUSPENSE_TIMEOUT_MS$1\n} = Recoil_Retention;\n\nconst {\n updateRetainCount: updateRetainCount$2\n} = Recoil_Retention;\n\nconst {\n RetentionZone: RetentionZone$3\n} = Recoil_RetentionZone;\n\nconst {\n useEffect: useEffect$2,\n useRef: useRef$3\n} = react;\n\nconst {\n isSSR: isSSR$2\n} = Recoil_Environment;\n\n\n\n\n\n // I don't see a way to avoid the any type here because we want to accept readable\n// and writable values with any type parameter, but normally with writable ones\n// RecoilState is not a subtype of RecoilState.\n\n\n// flowlint-line unclear-type:off\nfunction useRetain(toRetain) {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n } // eslint-disable-next-line fb-www/react-hooks\n\n\n return useRetain_ACTUAL(toRetain);\n}\n\nfunction useRetain_ACTUAL(toRetain) {\n const array = Array.isArray(toRetain) ? toRetain : [toRetain];\n const retainables = array.map(a => a instanceof RetentionZone$3 ? a : a.key);\n const storeRef = useStoreRef$1();\n useEffect$2(() => {\n if (!Recoil_gkx('recoil_memory_managament_2020')) {\n return;\n }\n\n const store = storeRef.current;\n\n if (timeoutID.current && !isSSR$2) {\n // Already performed a temporary retain on render, simply cancel the release\n // of that temporary retain.\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n } else {\n for (const r of retainables) {\n updateRetainCount$2(store, r, 1);\n }\n }\n\n return () => {\n for (const r of retainables) {\n updateRetainCount$2(store, r, -1);\n }\n }; // eslint-disable-next-line fb-www/react-hooks-deps\n }, [storeRef, ...retainables]); // We want to retain if the component suspends. This is terrible but the Suspense\n // API affords us no better option. If we suspend and never commit after some\n // seconds, then release. The 'actual' retain/release in the effect above\n // cancels this.\n\n const timeoutID = useRef$3();\n const previousRetainables = Recoil_usePrevious(retainables);\n\n if (!isSSR$2 && (previousRetainables === undefined || !Recoil_shallowArrayEqual(previousRetainables, retainables))) {\n const store = storeRef.current;\n\n for (const r of retainables) {\n updateRetainCount$2(store, r, 1);\n }\n\n if (previousRetainables) {\n for (const r of previousRetainables) {\n updateRetainCount$2(store, r, -1);\n }\n }\n\n if (timeoutID.current) {\n window.clearTimeout(timeoutID.current);\n }\n\n timeoutID.current = window.setTimeout(() => {\n timeoutID.current = null;\n\n for (const r of retainables) {\n updateRetainCount$2(store, r, -1);\n }\n }, SUSPENSE_TIMEOUT_MS$1);\n }\n}\n\nvar Recoil_useRetain = useRetain;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * THIS CODE HAS BEEN COMMENTED OUT INTENTIONALLY\n *\n * This technique of getting the component name is imperfect, since it both only\n * works in a non-minified code base, and more importantly introduces performance\n * problems since it relies in throwing errors which is an expensive operation.\n *\n * At some point we may want to reevaluate this technique hence why we have commented\n * this code out, rather than delete it all together.\n */\n// const {useRef} = require('react');\n// const gkx = require('recoil-shared/util/Recoil_gkx');\n// const stackTraceParser = require('recoil-shared/util/Recoil_stackTraceParser');\n\nfunction useComponentName() {\n // const nameRef = useRef();\n // if (__DEV__) {\n // if (gkx('recoil_infer_component_names')) {\n // if (nameRef.current === undefined) {\n // // There is no blessed way to determine the calling React component from\n // // within a hook. This hack uses the fact that hooks must start with 'use'\n // // and that hooks are either called by React Components or other hooks. It\n // // follows therefore, that to find the calling component, you simply need\n // // to look down the stack and find the first function which doesn't start\n // // with 'use'. We are only enabling this in dev for now, since once the\n // // codebase is minified, the naming assumptions no longer hold true.\n // // eslint-disable-next-line fb-www/no-new-error\n // const frames = stackTraceParser(new Error().stack);\n // for (const {methodName} of frames) {\n // // I observed cases where the frame was of the form 'Object.useXXX'\n // // hence why I'm searching for hooks following a word boundary\n // if (!methodName.match(/\\buse[^\\b]+$/)) {\n // return (nameRef.current = methodName);\n // }\n // }\n // nameRef.current = null;\n // }\n // return nameRef.current ?? '';\n // }\n // }\n // @fb-only: return \"\";\n return ''; // @oss-only\n}\n\nvar Recoil_useComponentName = useComponentName;\n\nconst {\n batchUpdates: batchUpdates$2\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$2\n} = Recoil_Node;\n\nconst {\n currentRendererSupportsUseSyncExternalStore: currentRendererSupportsUseSyncExternalStore$1,\n reactMode: reactMode$3,\n useMutableSource: useMutableSource$1,\n useSyncExternalStore: useSyncExternalStore$1\n} = Recoil_ReactMode;\n\nconst {\n useRecoilMutableSource: useRecoilMutableSource$1,\n useStoreRef: useStoreRef$2\n} = Recoil_RecoilRoot;\n\nconst {\n isRecoilValue: isRecoilValue$2\n} = Recoil_RecoilValue$1;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$3,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$2,\n setRecoilValue: setRecoilValue$2,\n setUnvalidatedRecoilValue: setUnvalidatedRecoilValue$2,\n subscribeToRecoilValue: subscribeToRecoilValue$1\n} = Recoil_RecoilValueInterface;\n\n\n\nconst {\n useCallback: useCallback$1,\n useEffect: useEffect$3,\n useMemo: useMemo$1,\n useRef: useRef$4,\n useState: useState$1\n} = react;\n\nconst {\n setByAddingToSet: setByAddingToSet$2\n} = Recoil_CopyOnWrite;\n\n\n\nconst {\n isSSR: isSSR$3\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction handleLoadable(loadable, recoilValue, storeRef) {\n // We can't just throw the promise we are waiting on to Suspense. If the\n // upstream dependencies change it may produce a state in which the component\n // can render, but it would still be suspended on a Promise that may never resolve.\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'loading') {\n const promise = new Promise(resolve => {\n const suspendedComponentResolvers = storeRef.current.getState().suspendedComponentResolvers;\n suspendedComponentResolvers.add(resolve); // SSR should clear out the wake-up resolver if the Promise is resolved\n // to avoid infinite loops. (See https://github.com/facebookexperimental/Recoil/pull/2073)\n\n if (isSSR$3 && Recoil_isPromise(loadable.contents)) {\n loadable.contents.finally(() => {\n suspendedComponentResolvers.delete(resolve);\n });\n }\n }); // $FlowExpectedError Flow(prop-missing) for integrating with tools that inspect thrown promises @fb-only\n // @fb-only: promise.displayName = `Recoil State: ${recoilValue.key}`;\n\n throw promise;\n } else if (loadable.state === 'hasError') {\n throw loadable.contents;\n } else {\n throw Recoil_err(`Invalid value of loadable atom \"${recoilValue.key}\"`);\n }\n}\n\nfunction validateRecoilValue(recoilValue, hookName // $FlowFixMe[missing-local-annot]\n) {\n if (!isRecoilValue$2(recoilValue)) {\n throw Recoil_err(`Invalid argument to ${hookName}: expected an atom or selector but got ${String(recoilValue)}`);\n }\n}\n\n/**\n * Various things are broken with useRecoilInterface, particularly concurrent\n * mode, React strict mode, and memory management. They will not be fixed.\n * */\nfunction useRecoilInterface_DEPRECATED() {\n const componentName = Recoil_useComponentName();\n const storeRef = useStoreRef$2(); // eslint-disable-next-line fb-www/react-no-unused-state-hook\n\n const [, forceUpdate] = useState$1([]);\n const recoilValuesUsed = useRef$4(new Set());\n recoilValuesUsed.current = new Set(); // Track the RecoilValues used just during this render\n\n const previousSubscriptions = useRef$4(new Set());\n const subscriptions = useRef$4(new Map());\n const unsubscribeFrom = useCallback$1(key => {\n const sub = subscriptions.current.get(key);\n\n if (sub) {\n sub.release();\n subscriptions.current.delete(key);\n }\n }, [subscriptions]);\n const updateState = useCallback$1((_state, key) => {\n if (subscriptions.current.has(key)) {\n forceUpdate([]);\n }\n }, []); // Effect to add/remove subscriptions as nodes are used\n\n useEffect$3(() => {\n const store = storeRef.current;\n Recoil_differenceSets(recoilValuesUsed.current, previousSubscriptions.current).forEach(key => {\n if (subscriptions.current.has(key)) {\n Recoil_expectationViolation(`Double subscription to RecoilValue \"${key}\"`);\n return;\n }\n\n const sub = subscribeToRecoilValue$1(store, new AbstractRecoilValue$3(key), state => updateState(state, key), componentName);\n subscriptions.current.set(key, sub);\n /**\n * Since we're subscribing in an effect we need to update to the latest\n * value of the atom since it may have changed since we rendered. We can\n * go ahead and do that now, unless we're in the middle of a batch --\n * in which case we should do it at the end of the batch, due to the\n * following edge case: Suppose an atom is updated in another useEffect\n * of this same component. Then the following sequence of events occur:\n * 1. Atom is updated and subs fired (but we may not be subscribed\n * yet depending on order of effects, so we miss this) Updated value\n * is now in nextTree, but not currentTree.\n * 2. This effect happens. We subscribe and update.\n * 3. From the update we re-render and read currentTree, with old value.\n * 4. Batcher's effect sets currentTree to nextTree.\n * In this sequence we miss the update. To avoid that, add the update\n * to queuedComponentCallback if a batch is in progress.\n */\n // FIXME delete queuedComponentCallbacks_DEPRECATED when deleting useInterface.\n\n const state = store.getState();\n\n if (state.nextTree) {\n store.getState().queuedComponentCallbacks_DEPRECATED.push(() => {\n updateState(store.getState(), key);\n });\n } else {\n updateState(store.getState(), key);\n }\n });\n Recoil_differenceSets(previousSubscriptions.current, recoilValuesUsed.current).forEach(key => {\n unsubscribeFrom(key);\n });\n previousSubscriptions.current = recoilValuesUsed.current;\n }); // Effect to unsubscribe from all when unmounting\n\n useEffect$3(() => {\n const currentSubscriptions = subscriptions.current; // Restore subscriptions that were cleared due to StrictMode running this effect twice\n\n Recoil_differenceSets(recoilValuesUsed.current, new Set(currentSubscriptions.keys())).forEach(key => {\n const sub = subscribeToRecoilValue$1(storeRef.current, new AbstractRecoilValue$3(key), state => updateState(state, key), componentName);\n currentSubscriptions.set(key, sub);\n });\n return () => currentSubscriptions.forEach((_, key) => unsubscribeFrom(key));\n }, [componentName, storeRef, unsubscribeFrom, updateState]);\n return useMemo$1(() => {\n // eslint-disable-next-line no-shadow\n function useSetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useSetRecoilState');\n }\n\n return newValueOrUpdater => {\n setRecoilValue$2(storeRef.current, recoilState, newValueOrUpdater);\n };\n } // eslint-disable-next-line no-shadow\n\n\n function useResetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useResetRecoilState');\n }\n\n return () => setRecoilValue$2(storeRef.current, recoilState, DEFAULT_VALUE$2);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilValueLoadable(recoilValue) {\n var _storeState$nextTree;\n\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n if (!recoilValuesUsed.current.has(recoilValue.key)) {\n recoilValuesUsed.current = setByAddingToSet$2(recoilValuesUsed.current, recoilValue.key);\n } // TODO Restore optimization to memoize lookup\n\n\n const storeState = storeRef.current.getState();\n return getRecoilValueAsLoadable$2(storeRef.current, recoilValue, reactMode$3().early ? (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree : storeState.currentTree);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilValue(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValue');\n }\n\n const loadable = useRecoilValueLoadable(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilState');\n }\n\n return [useRecoilValue(recoilState), useSetRecoilState(recoilState)];\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilStateLoadable(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilStateLoadable');\n }\n\n return [useRecoilValueLoadable(recoilState), useSetRecoilState(recoilState)];\n }\n\n return {\n getRecoilValue: useRecoilValue,\n getRecoilValueLoadable: useRecoilValueLoadable,\n getRecoilState: useRecoilState,\n getRecoilStateLoadable: useRecoilStateLoadable,\n getSetRecoilState: useSetRecoilState,\n getResetRecoilState: useResetRecoilState\n };\n }, [recoilValuesUsed, storeRef]);\n}\n\nconst recoilComponentGetRecoilValueCount_FOR_TESTING = {\n current: 0\n};\n\nfunction useRecoilValueLoadable_SYNC_EXTERNAL_STORE(recoilValue) {\n const storeRef = useStoreRef$2();\n const componentName = Recoil_useComponentName();\n const getSnapshot = useCallback$1(() => {\n var _storeState$nextTree2;\n\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree2 = storeState.nextTree) !== null && _storeState$nextTree2 !== void 0 ? _storeState$nextTree2 : storeState.currentTree : storeState.currentTree;\n const loadable = getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n return {\n loadable,\n key: recoilValue.key\n };\n }, [storeRef, recoilValue]); // Memoize the state to avoid unnecessary rerenders\n\n const memoizePreviousSnapshot = useCallback$1(getState => {\n let prevState;\n return () => {\n var _prevState, _prevState2;\n\n const nextState = getState();\n\n if ((_prevState = prevState) !== null && _prevState !== void 0 && _prevState.loadable.is(nextState.loadable) && ((_prevState2 = prevState) === null || _prevState2 === void 0 ? void 0 : _prevState2.key) === nextState.key) {\n return prevState;\n }\n\n prevState = nextState;\n return nextState;\n };\n }, []);\n const getMemoizedSnapshot = useMemo$1(() => memoizePreviousSnapshot(getSnapshot), [getSnapshot, memoizePreviousSnapshot]);\n const subscribe = useCallback$1(notify => {\n const store = storeRef.current;\n const subscription = subscribeToRecoilValue$1(store, recoilValue, notify, componentName);\n return subscription.release;\n }, [storeRef, recoilValue, componentName]);\n return useSyncExternalStore$1(subscribe, getMemoizedSnapshot, // getSnapshot()\n getMemoizedSnapshot // getServerSnapshot() for SSR support\n ).loadable;\n}\n\nfunction useRecoilValueLoadable_MUTABLE_SOURCE(recoilValue) {\n const storeRef = useStoreRef$2();\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree3;\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree3 = storeState.nextTree) !== null && _storeState$nextTree3 !== void 0 ? _storeState$nextTree3 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const getLoadableWithTesting = useCallback$1(() => {\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n return getLoadable();\n }, [getLoadable]);\n const componentName = Recoil_useComponentName();\n const subscribe = useCallback$1((_storeState, notify) => {\n const store = storeRef.current;\n const subscription = subscribeToRecoilValue$1(store, recoilValue, () => {\n if (!Recoil_gkx('recoil_suppress_rerender_in_callback')) {\n return notify();\n } // Only re-render if the value has changed.\n // This will evaluate the atom/selector now as well as when the\n // component renders, but that may help with prefetching.\n\n\n const newLoadable = getLoadable();\n\n if (!prevLoadableRef.current.is(newLoadable)) {\n notify();\n } // If the component is suspended then the effect setting prevLoadableRef\n // will not run. So, set the previous value here when its subscription\n // is fired to wake it up. We can't just rely on this, though, because\n // this only executes when an atom/selector is dirty and the atom/selector\n // passed to the hook can dynamically change.\n\n\n prevLoadableRef.current = newLoadable;\n }, componentName);\n return subscription.release;\n }, [storeRef, recoilValue, componentName, getLoadable]);\n const source = useRecoilMutableSource$1();\n\n if (source == null) {\n throw Recoil_err('Recoil hooks must be used in components contained within a component.');\n }\n\n const loadable = useMutableSource$1(source, getLoadableWithTesting, subscribe);\n const prevLoadableRef = useRef$4(loadable);\n useEffect$3(() => {\n prevLoadableRef.current = loadable;\n });\n return loadable;\n}\n\nfunction useRecoilValueLoadable_TRANSITION_SUPPORT(recoilValue) {\n const storeRef = useStoreRef$2();\n const componentName = Recoil_useComponentName(); // Accessors to get the current state\n\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree4;\n\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree4 = storeState.nextTree) !== null && _storeState$nextTree4 !== void 0 ? _storeState$nextTree4 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const getState = useCallback$1(() => ({\n loadable: getLoadable(),\n key: recoilValue.key\n }), [getLoadable, recoilValue.key]); // Memoize state snapshots\n\n const updateState = useCallback$1(prevState => {\n const nextState = getState();\n return prevState.loadable.is(nextState.loadable) && prevState.key === nextState.key ? prevState : nextState;\n }, [getState]); // Subscribe to Recoil state changes\n\n useEffect$3(() => {\n const subscription = subscribeToRecoilValue$1(storeRef.current, recoilValue, _state => {\n setState(updateState);\n }, componentName); // Update state in case we are using a different key\n\n setState(updateState);\n return subscription.release;\n }, [componentName, recoilValue, storeRef, updateState]); // Get the current state\n\n const [state, setState] = useState$1(getState); // If we changed keys, then return the state for the new key.\n // This is important in case the old key would cause the component to suspend.\n // We don't have to set the new state here since the subscribing effect above\n // will do that.\n\n return state.key !== recoilValue.key ? getState().loadable : state.loadable;\n}\n\nfunction useRecoilValueLoadable_LEGACY(recoilValue) {\n const storeRef = useStoreRef$2(); // eslint-disable-next-line fb-www/react-no-unused-state-hook\n\n const [, forceUpdate] = useState$1([]);\n const componentName = Recoil_useComponentName();\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree5;\n\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = reactMode$3().early ? (_storeState$nextTree5 = storeState.nextTree) !== null && _storeState$nextTree5 !== void 0 ? _storeState$nextTree5 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const loadable = getLoadable();\n const prevLoadableRef = useRef$4(loadable);\n useEffect$3(() => {\n prevLoadableRef.current = loadable;\n });\n useEffect$3(() => {\n const store = storeRef.current;\n const storeState = store.getState();\n const subscription = subscribeToRecoilValue$1(store, recoilValue, _state => {\n var _prevLoadableRef$curr;\n\n if (!Recoil_gkx('recoil_suppress_rerender_in_callback')) {\n return forceUpdate([]);\n }\n\n const newLoadable = getLoadable();\n\n if (!((_prevLoadableRef$curr = prevLoadableRef.current) !== null && _prevLoadableRef$curr !== void 0 && _prevLoadableRef$curr.is(newLoadable))) {\n // $FlowFixMe[incompatible-call]\n forceUpdate(newLoadable);\n }\n\n prevLoadableRef.current = newLoadable;\n }, componentName);\n /**\n * Since we're subscribing in an effect we need to update to the latest\n * value of the atom since it may have changed since we rendered. We can\n * go ahead and do that now, unless we're in the middle of a batch --\n * in which case we should do it at the end of the batch, due to the\n * following edge case: Suppose an atom is updated in another useEffect\n * of this same component. Then the following sequence of events occur:\n * 1. Atom is updated and subs fired (but we may not be subscribed\n * yet depending on order of effects, so we miss this) Updated value\n * is now in nextTree, but not currentTree.\n * 2. This effect happens. We subscribe and update.\n * 3. From the update we re-render and read currentTree, with old value.\n * 4. Batcher's effect sets currentTree to nextTree.\n * In this sequence we miss the update. To avoid that, add the update\n * to queuedComponentCallback if a batch is in progress.\n */\n\n if (storeState.nextTree) {\n store.getState().queuedComponentCallbacks_DEPRECATED.push(() => {\n // $FlowFixMe[incompatible-type]\n prevLoadableRef.current = null;\n forceUpdate([]);\n });\n } else {\n var _prevLoadableRef$curr2;\n\n if (!Recoil_gkx('recoil_suppress_rerender_in_callback')) {\n return forceUpdate([]);\n }\n\n const newLoadable = getLoadable();\n\n if (!((_prevLoadableRef$curr2 = prevLoadableRef.current) !== null && _prevLoadableRef$curr2 !== void 0 && _prevLoadableRef$curr2.is(newLoadable))) {\n // $FlowFixMe[incompatible-call]\n forceUpdate(newLoadable);\n }\n\n prevLoadableRef.current = newLoadable;\n }\n\n return subscription.release;\n }, [componentName, getLoadable, recoilValue, storeRef]);\n return loadable;\n}\n/**\n Like useRecoilValue(), but either returns the value if available or\n just undefined if not available for any reason, such as pending or error.\n*/\n\n\nfunction useRecoilValueLoadable(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n if (Recoil_gkx('recoil_memory_managament_2020')) {\n // eslint-disable-next-line fb-www/react-hooks\n Recoil_useRetain(recoilValue);\n }\n\n return {\n TRANSITION_SUPPORT: useRecoilValueLoadable_TRANSITION_SUPPORT,\n // Recoil will attemp to detect if `useSyncExternalStore()` is supported with\n // `reactMode()` before calling it. However, sometimes the host React\n // environment supports it but uses additional React renderers (such as with\n // `react-three-fiber`) which do not. While this is technically a user issue\n // by using a renderer with React 18+ that doesn't fully support React 18 we\n // don't want to break users if it can be avoided. As the current renderer can\n // change at runtime, we need to dynamically check and fallback if necessary.\n SYNC_EXTERNAL_STORE: currentRendererSupportsUseSyncExternalStore$1() ? useRecoilValueLoadable_SYNC_EXTERNAL_STORE : useRecoilValueLoadable_TRANSITION_SUPPORT,\n MUTABLE_SOURCE: useRecoilValueLoadable_MUTABLE_SOURCE,\n LEGACY: useRecoilValueLoadable_LEGACY\n }[reactMode$3().mode](recoilValue);\n}\n/**\n Returns the value represented by the RecoilValue.\n If the value is pending, it will throw a Promise to suspend the component,\n if the value is an error it will throw it for the nearest React error boundary.\n This will also subscribe the component for any updates in the value.\n */\n\n\nfunction useRecoilValue(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValue');\n }\n\n const storeRef = useStoreRef$2();\n const loadable = useRecoilValueLoadable(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n}\n/**\n Returns a function that allows the value of a RecoilState to be updated, but does\n not subscribe the component to changes to that RecoilState.\n*/\n\n\nfunction useSetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useSetRecoilState');\n }\n\n const storeRef = useStoreRef$2();\n return useCallback$1(newValueOrUpdater => {\n setRecoilValue$2(storeRef.current, recoilState, newValueOrUpdater);\n }, [storeRef, recoilState]);\n}\n/**\n Returns a function that will reset the value of a RecoilState to its default\n*/\n\n\nfunction useResetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useResetRecoilState');\n }\n\n const storeRef = useStoreRef$2();\n return useCallback$1(() => {\n setRecoilValue$2(storeRef.current, recoilState, DEFAULT_VALUE$2);\n }, [storeRef, recoilState]);\n}\n/**\n Equivalent to useState(). Allows the value of the RecoilState to be read and written.\n Subsequent updates to the RecoilState will cause the component to re-render. If the\n RecoilState is pending, this will suspend the component and initiate the\n retrieval of the value. If evaluating the RecoilState resulted in an error, this will\n throw the error so that the nearest React error boundary can catch it.\n*/\n\n\nfunction useRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilState');\n }\n\n return [useRecoilValue(recoilState), useSetRecoilState(recoilState)];\n}\n/**\n Like useRecoilState(), but does not cause Suspense or React error handling. Returns\n an object that indicates whether the RecoilState is available, pending, or\n unavailable due to an error.\n*/\n\n\nfunction useRecoilStateLoadable(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilStateLoadable');\n }\n\n return [useRecoilValueLoadable(recoilState), useSetRecoilState(recoilState)];\n}\n\nfunction useSetUnvalidatedAtomValues() {\n const storeRef = useStoreRef$2();\n return (values, transactionMetadata = {}) => {\n batchUpdates$2(() => {\n storeRef.current.addTransactionMetadata(transactionMetadata);\n values.forEach((value, key) => setUnvalidatedRecoilValue$2(storeRef.current, new AbstractRecoilValue$3(key), value));\n });\n };\n}\n/**\n * Experimental variants of hooks with support for useTransition()\n */\n\n\nfunction useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE');\n\n if (!reactMode$3().early) {\n Recoil_recoverableViolation('Attepmt to use a hook with UNSTABLE_TRANSITION_SUPPORT in a rendering mode incompatible with concurrent rendering. Try enabling the recoil_sync_external_store or recoil_transition_support GKs.');\n }\n }\n\n if (Recoil_gkx('recoil_memory_managament_2020')) {\n // eslint-disable-next-line fb-www/react-hooks\n Recoil_useRetain(recoilValue);\n }\n\n return useRecoilValueLoadable_TRANSITION_SUPPORT(recoilValue);\n}\n\nfunction useRecoilValue_TRANSITION_SUPPORT_UNSTABLE(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilValue, 'useRecoilValue_TRANSITION_SUPPORT_UNSTABLE');\n }\n\n const storeRef = useStoreRef$2();\n const loadable = useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n}\n\nfunction useRecoilState_TRANSITION_SUPPORT_UNSTABLE(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n validateRecoilValue(recoilState, 'useRecoilState_TRANSITION_SUPPORT_UNSTABLE');\n }\n\n return [useRecoilValue_TRANSITION_SUPPORT_UNSTABLE(recoilState), useSetRecoilState(recoilState)];\n}\n\nvar Recoil_Hooks = {\n recoilComponentGetRecoilValueCount_FOR_TESTING,\n useRecoilInterface: useRecoilInterface_DEPRECATED,\n useRecoilState,\n useRecoilStateLoadable,\n useRecoilValue,\n useRecoilValueLoadable,\n useResetRecoilState,\n useSetRecoilState,\n useSetUnvalidatedAtomValues,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE\n};\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Returns a map containing all of the keys + values from the original map where\n * the given callback returned true.\n */\n\nfunction filterMap(map, callback) {\n const result = new Map();\n\n for (const [key, value] of map) {\n if (callback(value, key)) {\n result.set(key, value);\n }\n }\n\n return result;\n}\n\nvar Recoil_filterMap = filterMap;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n/**\n * Returns a set containing all of the values from the original set where\n * the given callback returned true.\n */\n\nfunction filterSet(set, callback) {\n const result = new Set();\n\n for (const value of set) {\n if (callback(value)) {\n result.add(value);\n }\n }\n\n return result;\n}\n\nvar Recoil_filterSet = filterSet;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction mergeMaps(...maps) {\n const result = new Map();\n\n for (let i = 0; i < maps.length; i++) {\n const iterator = maps[i].keys();\n let nextKey;\n\n while (!(nextKey = iterator.next()).done) {\n // $FlowIssue[incompatible-call] - map/iterator knows nothing about flow types\n result.set(nextKey.value, maps[i].get(nextKey.value));\n }\n }\n\n return result;\n}\n\nvar Recoil_mergeMaps = mergeMaps;\n\nconst {\n batchUpdates: batchUpdates$3\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$3,\n getNode: getNode$4,\n nodes: nodes$1\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$3\n} = Recoil_RecoilRoot;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$4,\n setRecoilValueLoadable: setRecoilValueLoadable$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n SUSPENSE_TIMEOUT_MS: SUSPENSE_TIMEOUT_MS$2\n} = Recoil_Retention;\n\nconst {\n cloneSnapshot: cloneSnapshot$1\n} = Recoil_Snapshot$1;\n\nconst {\n useCallback: useCallback$2,\n useEffect: useEffect$4,\n useRef: useRef$5,\n useState: useState$2\n} = react;\n\nconst {\n isSSR: isSSR$4\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction useTransactionSubscription(callback) {\n const storeRef = useStoreRef$3();\n useEffect$4(() => {\n const sub = storeRef.current.subscribeToTransactions(callback);\n return sub.release;\n }, [callback, storeRef]);\n}\n\nfunction externallyVisibleAtomValuesInState(state) {\n const atomValues = state.atomValues.toMap();\n const persistedAtomContentsValues = Recoil_mapMap(Recoil_filterMap(atomValues, (v, k) => {\n const node = getNode$4(k);\n const persistence = node.persistence_UNSTABLE;\n return persistence != null && persistence.type !== 'none' && v.state === 'hasValue';\n }), v => v.contents); // Merge in nonvalidated atoms; we may not have defs for them but they will\n // all have persistence on or they wouldn't be there in the first place.\n\n return Recoil_mergeMaps(state.nonvalidatedAtoms.toMap(), persistedAtomContentsValues);\n}\n\n/**\n Calls the given callback after any atoms have been modified and the consequent\n component re-renders have been committed. This is intended for persisting\n the values of the atoms to storage. The stored values can then be restored\n using the useSetUnvalidatedAtomValues hook.\n\n The callback receives the following info:\n\n atomValues: The current value of every atom that is both persistable (persistence\n type not set to 'none') and whose value is available (not in an\n error or loading state).\n\n previousAtomValues: The value of every persistable and available atom before\n the transaction began.\n\n atomInfo: A map containing the persistence settings for each atom. Every key\n that exists in atomValues will also exist in atomInfo.\n\n modifiedAtoms: The set of atoms that were written to during the transaction.\n\n transactionMetadata: Arbitrary information that was added via the\n useSetUnvalidatedAtomValues hook. Useful for ignoring the useSetUnvalidatedAtomValues\n transaction, to avoid loops.\n*/\nfunction useTransactionObservation_DEPRECATED(callback) {\n useTransactionSubscription(useCallback$2(store => {\n let previousTree = store.getState().previousTree;\n const currentTree = store.getState().currentTree;\n\n if (!previousTree) {\n Recoil_recoverableViolation('Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil');\n previousTree = store.getState().currentTree; // attempt to trundle on\n }\n\n const atomValues = externallyVisibleAtomValuesInState(currentTree);\n const previousAtomValues = externallyVisibleAtomValuesInState(previousTree);\n const atomInfo = Recoil_mapMap(nodes$1, node => {\n var _node$persistence_UNS, _node$persistence_UNS2, _node$persistence_UNS3, _node$persistence_UNS4;\n\n return {\n persistence_UNSTABLE: {\n type: (_node$persistence_UNS = (_node$persistence_UNS2 = node.persistence_UNSTABLE) === null || _node$persistence_UNS2 === void 0 ? void 0 : _node$persistence_UNS2.type) !== null && _node$persistence_UNS !== void 0 ? _node$persistence_UNS : 'none',\n backButton: (_node$persistence_UNS3 = (_node$persistence_UNS4 = node.persistence_UNSTABLE) === null || _node$persistence_UNS4 === void 0 ? void 0 : _node$persistence_UNS4.backButton) !== null && _node$persistence_UNS3 !== void 0 ? _node$persistence_UNS3 : false\n }\n };\n }); // Filter on existance in atomValues so that externally-visible rules\n // are also applied to modified atoms (specifically exclude selectors):\n\n const modifiedAtoms = Recoil_filterSet(currentTree.dirtyAtoms, k => atomValues.has(k) || previousAtomValues.has(k));\n callback({\n atomValues,\n previousAtomValues,\n atomInfo,\n modifiedAtoms,\n transactionMetadata: { ...currentTree.transactionMetadata\n }\n });\n }, [callback]));\n}\n\nfunction useRecoilTransactionObserver(callback) {\n useTransactionSubscription(useCallback$2(store => {\n const snapshot = cloneSnapshot$1(store, 'latest');\n const previousSnapshot = cloneSnapshot$1(store, 'previous');\n callback({\n snapshot,\n previousSnapshot\n });\n }, [callback]));\n} // Return a snapshot of the current state and subscribe to all state changes\n\n\nfunction useRecoilSnapshot() {\n const storeRef = useStoreRef$3();\n const [snapshot, setSnapshot] = useState$2(() => cloneSnapshot$1(storeRef.current));\n const previousSnapshot = Recoil_usePrevious(snapshot);\n const timeoutID = useRef$5();\n const releaseRef = useRef$5();\n useTransactionSubscription(useCallback$2(store => setSnapshot(cloneSnapshot$1(store)), [])); // Retain snapshot for duration component is mounted\n\n useEffect$4(() => {\n const release = snapshot.retain(); // Release the retain from the rendering call\n\n if (timeoutID.current && !isSSR$4) {\n var _releaseRef$current;\n\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n (_releaseRef$current = releaseRef.current) === null || _releaseRef$current === void 0 ? void 0 : _releaseRef$current.call(releaseRef);\n releaseRef.current = null;\n }\n\n return () => {\n // Defer the release. If \"Fast Refresh\"\" is used then the component may\n // re-render with the same state. The previous cleanup will then run and\n // then the new effect will run. We don't want the snapshot to be released\n // by that cleanup before the new effect has a chance to retain it again.\n // Use timeout of 10 to workaround Firefox issue: https://github.com/facebookexperimental/Recoil/issues/1936\n window.setTimeout(release, 10);\n };\n }, [snapshot]); // Retain snapshot until above effect is run.\n // Release after a threshold in case component is suspended.\n\n if (previousSnapshot !== snapshot && !isSSR$4) {\n // Release the previous snapshot\n if (timeoutID.current) {\n var _releaseRef$current2;\n\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n (_releaseRef$current2 = releaseRef.current) === null || _releaseRef$current2 === void 0 ? void 0 : _releaseRef$current2.call(releaseRef);\n releaseRef.current = null;\n }\n\n releaseRef.current = snapshot.retain();\n timeoutID.current = window.setTimeout(() => {\n var _releaseRef$current3;\n\n timeoutID.current = null;\n (_releaseRef$current3 = releaseRef.current) === null || _releaseRef$current3 === void 0 ? void 0 : _releaseRef$current3.call(releaseRef);\n releaseRef.current = null;\n }, SUSPENSE_TIMEOUT_MS$2);\n }\n\n return snapshot;\n}\n\nfunction gotoSnapshot(store, snapshot) {\n var _storeState$nextTree;\n\n const storeState = store.getState();\n const prev = (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree;\n const next = snapshot.getStore_INTERNAL().getState().currentTree;\n batchUpdates$3(() => {\n const keysToUpdate = new Set();\n\n for (const keys of [prev.atomValues.keys(), next.atomValues.keys()]) {\n for (const key of keys) {\n var _prev$atomValues$get, _next$atomValues$get;\n\n if (((_prev$atomValues$get = prev.atomValues.get(key)) === null || _prev$atomValues$get === void 0 ? void 0 : _prev$atomValues$get.contents) !== ((_next$atomValues$get = next.atomValues.get(key)) === null || _next$atomValues$get === void 0 ? void 0 : _next$atomValues$get.contents) && getNode$4(key).shouldRestoreFromSnapshots) {\n keysToUpdate.add(key);\n }\n }\n }\n\n keysToUpdate.forEach(key => {\n setRecoilValueLoadable$1(store, new AbstractRecoilValue$4(key), next.atomValues.has(key) ? Recoil_nullthrows(next.atomValues.get(key)) : DEFAULT_VALUE$3);\n });\n store.replaceState(state => ({ ...state,\n stateID: snapshot.getID()\n }));\n });\n}\n\nfunction useGotoRecoilSnapshot() {\n const storeRef = useStoreRef$3();\n return useCallback$2(snapshot => gotoSnapshot(storeRef.current, snapshot), [storeRef]);\n}\n\nvar Recoil_SnapshotHooks = {\n useRecoilSnapshot,\n gotoSnapshot,\n useGotoRecoilSnapshot,\n useRecoilTransactionObserver,\n useTransactionObservation_DEPRECATED,\n useTransactionSubscription_DEPRECATED: useTransactionSubscription\n};\n\nconst {\n peekNodeInfo: peekNodeInfo$2\n} = Recoil_FunctionalCore;\n\nconst {\n useStoreRef: useStoreRef$4\n} = Recoil_RecoilRoot;\n\nfunction useGetRecoilValueInfo() {\n const storeRef = useStoreRef$4(); // $FlowFixMe[incompatible-return]\n\n return ({\n key\n }) => peekNodeInfo$2(storeRef.current, storeRef.current.getState().currentTree, key);\n}\n\nvar Recoil_useGetRecoilValueInfo = useGetRecoilValueInfo;\n\nconst {\n reactMode: reactMode$4\n} = Recoil_ReactMode;\n\nconst {\n RecoilRoot: RecoilRoot$1,\n useStoreRef: useStoreRef$5\n} = Recoil_RecoilRoot;\n\n\n\nconst {\n useMemo: useMemo$2\n} = react;\n\nfunction useRecoilBridgeAcrossReactRoots() {\n // The test fails when using useMutableSource(), but only if act() is used\n // for the nested root. So, this may only be a testing environment issue.\n if (reactMode$4().mode === 'MUTABLE_SOURCE') {\n // eslint-disable-next-line fb-www/no-console\n console.warn('Warning: There are known issues using useRecoilBridgeAcrossReactRoots() in recoil_mutable_source rendering mode. Please consider upgrading to recoil_sync_external_store mode.');\n }\n\n const store = useStoreRef$5().current;\n return useMemo$2(() => {\n // eslint-disable-next-line no-shadow\n function RecoilBridge({\n children\n }) {\n return /*#__PURE__*/react.createElement(RecoilRoot$1, {\n store_INTERNAL: store\n }, children);\n }\n\n return RecoilBridge;\n }, [store]);\n}\n\nvar Recoil_useRecoilBridgeAcrossReactRoots = useRecoilBridgeAcrossReactRoots;\n\nconst {\n loadableWithValue: loadableWithValue$1\n} = Recoil_Loadable$1;\n\nconst {\n initializeNode: initializeNode$3\n} = Recoil_FunctionalCore;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$4,\n getNode: getNode$5\n} = Recoil_Node;\n\nconst {\n copyTreeState: copyTreeState$1,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$3,\n invalidateDownstreams: invalidateDownstreams$1,\n writeLoadableToTreeState: writeLoadableToTreeState$1\n} = Recoil_RecoilValueInterface;\n\n\n\nfunction isAtom(recoilValue) {\n return getNode$5(recoilValue.key).nodeType === 'atom';\n}\n\nclass TransactionInterfaceImpl {\n constructor(store, treeState) {\n _defineProperty(this, \"_store\", void 0);\n\n _defineProperty(this, \"_treeState\", void 0);\n\n _defineProperty(this, \"_changes\", void 0);\n\n _defineProperty(this, \"get\", recoilValue => {\n if (this._changes.has(recoilValue.key)) {\n // $FlowIssue[incompatible-return]\n return this._changes.get(recoilValue.key);\n }\n\n if (!isAtom(recoilValue)) {\n throw Recoil_err('Reading selectors within atomicUpdate is not supported');\n }\n\n const loadable = getRecoilValueAsLoadable$3(this._store, recoilValue, this._treeState);\n\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'hasError') {\n throw loadable.contents;\n } else {\n throw Recoil_err(`Expected Recoil atom ${recoilValue.key} to have a value, but it is in a loading state.`);\n }\n });\n\n _defineProperty(this, \"set\", (recoilState, valueOrUpdater) => {\n if (!isAtom(recoilState)) {\n throw Recoil_err('Setting selectors within atomicUpdate is not supported');\n }\n\n if (typeof valueOrUpdater === 'function') {\n const current = this.get(recoilState);\n\n this._changes.set(recoilState.key, valueOrUpdater(current)); // flowlint-line unclear-type:off\n\n } else {\n // Initialize atom and run effects if not initialized yet\n initializeNode$3(this._store, recoilState.key, 'set');\n\n this._changes.set(recoilState.key, valueOrUpdater);\n }\n });\n\n _defineProperty(this, \"reset\", recoilState => {\n this.set(recoilState, DEFAULT_VALUE$4);\n });\n\n this._store = store;\n this._treeState = treeState;\n this._changes = new Map();\n } // Allow destructing\n // eslint-disable-next-line fb-www/extra-arrow-initializer\n\n\n newTreeState_INTERNAL() {\n if (this._changes.size === 0) {\n return this._treeState;\n }\n\n const newState = copyTreeState$1(this._treeState);\n\n for (const [k, v] of this._changes) {\n writeLoadableToTreeState$1(newState, k, loadableWithValue$1(v));\n }\n\n invalidateDownstreams$1(this._store, newState);\n return newState;\n }\n\n}\n\nfunction atomicUpdater(store) {\n return fn => {\n store.replaceState(treeState => {\n const changeset = new TransactionInterfaceImpl(store, treeState);\n fn(changeset);\n return changeset.newTreeState_INTERNAL();\n });\n };\n}\n\nvar Recoil_AtomicUpdates = {\n atomicUpdater\n};\n\nvar Recoil_AtomicUpdates_1 = Recoil_AtomicUpdates.atomicUpdater;\n\nvar Recoil_AtomicUpdates$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n atomicUpdater: Recoil_AtomicUpdates_1\n});\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\n\nvar invariant_1 = invariant;\n\n// @oss-only\n\n\nvar Recoil_invariant = invariant_1;\n\nconst {\n atomicUpdater: atomicUpdater$1\n} = Recoil_AtomicUpdates$1;\n\nconst {\n batchUpdates: batchUpdates$4\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$5\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$6\n} = Recoil_RecoilRoot;\n\nconst {\n refreshRecoilValue: refreshRecoilValue$1,\n setRecoilValue: setRecoilValue$3\n} = Recoil_RecoilValueInterface;\n\nconst {\n cloneSnapshot: cloneSnapshot$2\n} = Recoil_Snapshot$1;\n\nconst {\n gotoSnapshot: gotoSnapshot$1\n} = Recoil_SnapshotHooks;\n\nconst {\n useCallback: useCallback$3\n} = react;\n\n\n\n\n\n\n\n\n\nclass Sentinel {}\n\nconst SENTINEL = new Sentinel();\n\nfunction recoilCallback(store, fn, args, extraInterface) {\n let ret = SENTINEL;\n let releaseSnapshot;\n batchUpdates$4(() => {\n const errMsg = 'useRecoilCallback() expects a function that returns a function: ' + 'it accepts a function of the type (RecoilInterface) => (Args) => ReturnType ' + 'and returns a callback function (Args) => ReturnType, where RecoilInterface is ' + 'an object {snapshot, set, ...} and Args and ReturnType are the argument and return ' + 'types of the callback you want to create. Please see the docs ' + 'at recoiljs.org for details.';\n\n if (typeof fn !== 'function') {\n throw Recoil_err(errMsg);\n } // Clone the snapshot lazily to avoid overhead if the callback does not use it.\n // Note that this means the snapshot may represent later state from when\n // the callback was called if it first accesses the snapshot asynchronously.\n\n\n const callbackInterface = Recoil_lazyProxy({ ...(extraInterface !== null && extraInterface !== void 0 ? extraInterface : {}),\n // flowlint-line unclear-type:off\n // $FlowFixMe[missing-local-annot]\n set: (node, newValue) => setRecoilValue$3(store, node, newValue),\n // $FlowFixMe[missing-local-annot]\n reset: node => setRecoilValue$3(store, node, DEFAULT_VALUE$5),\n // $FlowFixMe[missing-local-annot]\n refresh: node => refreshRecoilValue$1(store, node),\n gotoSnapshot: snapshot => gotoSnapshot$1(store, snapshot),\n transact_UNSTABLE: transaction => atomicUpdater$1(store)(transaction)\n }, {\n snapshot: () => {\n const snapshot = cloneSnapshot$2(store);\n releaseSnapshot = snapshot.retain();\n return snapshot;\n }\n });\n const callback = fn(callbackInterface);\n\n if (typeof callback !== 'function') {\n throw Recoil_err(errMsg);\n }\n\n ret = callback(...args);\n });\n !!(ret instanceof Sentinel) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'batchUpdates should return immediately') : Recoil_invariant(false) : void 0;\n\n if (Recoil_isPromise(ret)) {\n ret = ret.finally(() => {\n var _releaseSnapshot;\n\n (_releaseSnapshot = releaseSnapshot) === null || _releaseSnapshot === void 0 ? void 0 : _releaseSnapshot();\n });\n } else {\n var _releaseSnapshot2;\n\n (_releaseSnapshot2 = releaseSnapshot) === null || _releaseSnapshot2 === void 0 ? void 0 : _releaseSnapshot2();\n }\n\n return ret;\n}\n\nfunction useRecoilCallback(fn, deps) {\n const storeRef = useStoreRef$6();\n return useCallback$3( // $FlowIssue[incompatible-call]\n (...args) => {\n return recoilCallback(storeRef.current, fn, args);\n }, deps != null ? [...deps, storeRef] : undefined // eslint-disable-line fb-www/react-hooks-deps\n );\n}\n\nvar Recoil_useRecoilCallback = {\n recoilCallback,\n useRecoilCallback\n};\n\nconst {\n useStoreRef: useStoreRef$7\n} = Recoil_RecoilRoot;\n\nconst {\n refreshRecoilValue: refreshRecoilValue$2\n} = Recoil_RecoilValueInterface;\n\nconst {\n useCallback: useCallback$4\n} = react;\n\nfunction useRecoilRefresher(recoilValue) {\n const storeRef = useStoreRef$7();\n return useCallback$4(() => {\n const store = storeRef.current;\n refreshRecoilValue$2(store, recoilValue);\n }, [recoilValue, storeRef]);\n}\n\nvar Recoil_useRecoilRefresher = useRecoilRefresher;\n\nconst {\n atomicUpdater: atomicUpdater$2\n} = Recoil_AtomicUpdates$1;\n\nconst {\n useStoreRef: useStoreRef$8\n} = Recoil_RecoilRoot;\n\nconst {\n useMemo: useMemo$3\n} = react;\n\nfunction useRecoilTransaction(fn, deps) {\n const storeRef = useStoreRef$8();\n return useMemo$3(() => (...args) => {\n const atomicUpdate = atomicUpdater$2(storeRef.current);\n atomicUpdate(transactionInterface => {\n fn(transactionInterface)(...args);\n });\n }, deps != null ? [...deps, storeRef] : undefined // eslint-disable-line fb-www/react-hooks-deps\n );\n}\n\nvar Recoil_useRecoilTransaction = useRecoilTransaction;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nclass WrappedValue {\n constructor(value) {\n _defineProperty(this, \"value\", void 0);\n\n this.value = value;\n }\n\n}\n\nvar Recoil_Wrapper = {\n WrappedValue\n};\n\nvar Recoil_Wrapper_1 = Recoil_Wrapper.WrappedValue;\n\nvar Recoil_Wrapper$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n WrappedValue: Recoil_Wrapper_1\n});\n\nconst {\n isFastRefreshEnabled: isFastRefreshEnabled$2\n} = Recoil_ReactMode;\n\n\n\nclass ChangedPathError extends Error {}\n\nclass TreeCache {\n // $FlowIssue[unclear-type]\n constructor(options) {\n var _options$onHit, _options$onSet, _options$mapNodeValue;\n\n _defineProperty(this, \"_name\", void 0);\n\n _defineProperty(this, \"_numLeafs\", void 0);\n\n _defineProperty(this, \"_root\", void 0);\n\n _defineProperty(this, \"_onHit\", void 0);\n\n _defineProperty(this, \"_onSet\", void 0);\n\n _defineProperty(this, \"_mapNodeValue\", void 0);\n\n this._name = options === null || options === void 0 ? void 0 : options.name;\n this._numLeafs = 0;\n this._root = null;\n this._onHit = (_options$onHit = options === null || options === void 0 ? void 0 : options.onHit) !== null && _options$onHit !== void 0 ? _options$onHit : () => {};\n this._onSet = (_options$onSet = options === null || options === void 0 ? void 0 : options.onSet) !== null && _options$onSet !== void 0 ? _options$onSet : () => {};\n this._mapNodeValue = (_options$mapNodeValue = options === null || options === void 0 ? void 0 : options.mapNodeValue) !== null && _options$mapNodeValue !== void 0 ? _options$mapNodeValue : val => val;\n }\n\n size() {\n return this._numLeafs;\n } // $FlowIssue[unclear-type]\n\n\n root() {\n return this._root;\n }\n\n get(getNodeValue, handlers) {\n var _this$getLeafNode;\n\n return (_this$getLeafNode = this.getLeafNode(getNodeValue, handlers)) === null || _this$getLeafNode === void 0 ? void 0 : _this$getLeafNode.value;\n }\n\n getLeafNode(getNodeValue, handlers) {\n if (this._root == null) {\n return undefined;\n } // Iterate down the tree based on the current node values until we hit a leaf\n // $FlowIssue[unclear-type]\n\n\n let node = this._root;\n\n while (node) {\n handlers === null || handlers === void 0 ? void 0 : handlers.onNodeVisit(node);\n\n if (node.type === 'leaf') {\n this._onHit(node);\n\n return node;\n }\n\n const nodeValue = this._mapNodeValue(getNodeValue(node.nodeKey));\n\n node = node.branches.get(nodeValue);\n }\n\n return undefined;\n }\n\n set(route, value, handlers) {\n const addLeaf = () => {\n var _node2, _node3, _this$_root2, _handlers$onNodeVisit2;\n\n // First, setup the branch nodes for the route:\n // Iterate down the tree to find or add branch nodes following the route\n let node;\n let branchKey;\n\n for (const [nodeKey, nodeValue] of route) {\n var _node, _handlers$onNodeVisit, _this$_root;\n\n // If the previous root was a leaf, while we not have a get(), it means\n // the selector has inconsistent values or implementation changed.\n const root = this._root;\n\n if ((root === null || root === void 0 ? void 0 : root.type) === 'leaf') {\n throw this.invalidCacheError();\n } // node now refers to the next node down in the tree\n\n\n const parent = node; // $FlowFixMe[prop-missing]\n // $FlowFixMe[incompatible-type]\n\n node = parent ? parent.branches.get(branchKey) : root; // $FlowFixMe[prop-missing]\n // $FlowFixMe[incompatible-type]\n\n node = (_node = node) !== null && _node !== void 0 ? _node : {\n type: 'branch',\n nodeKey,\n parent,\n branches: new Map(),\n branchKey\n }; // If we found an existing node, confirm it has a consistent value\n\n if (node.type !== 'branch' || node.nodeKey !== nodeKey) {\n throw this.invalidCacheError();\n } // Add the branch node to the tree\n\n\n parent === null || parent === void 0 ? void 0 : parent.branches.set(branchKey, node);\n handlers === null || handlers === void 0 ? void 0 : (_handlers$onNodeVisit = handlers.onNodeVisit) === null || _handlers$onNodeVisit === void 0 ? void 0 : _handlers$onNodeVisit.call(handlers, node); // Prepare for next iteration and install root if it is new.\n\n branchKey = this._mapNodeValue(nodeValue);\n this._root = (_this$_root = this._root) !== null && _this$_root !== void 0 ? _this$_root : node;\n } // Second, setup the leaf node:\n // If there is an existing leaf for this route confirm it is consistent\n\n\n const oldLeaf = node ? (_node2 = node) === null || _node2 === void 0 ? void 0 : _node2.branches.get(branchKey) : this._root;\n\n if (oldLeaf != null && (oldLeaf.type !== 'leaf' || oldLeaf.branchKey !== branchKey)) {\n throw this.invalidCacheError();\n } // Create a new or replacement leaf.\n\n\n const leafNode = {\n type: 'leaf',\n value,\n parent: node,\n branchKey\n }; // Install the leaf and call handlers\n\n (_node3 = node) === null || _node3 === void 0 ? void 0 : _node3.branches.set(branchKey, leafNode);\n this._root = (_this$_root2 = this._root) !== null && _this$_root2 !== void 0 ? _this$_root2 : leafNode;\n this._numLeafs++;\n\n this._onSet(leafNode);\n\n handlers === null || handlers === void 0 ? void 0 : (_handlers$onNodeVisit2 = handlers.onNodeVisit) === null || _handlers$onNodeVisit2 === void 0 ? void 0 : _handlers$onNodeVisit2.call(handlers, leafNode);\n };\n\n try {\n addLeaf();\n } catch (error) {\n // If the cache was stale or observed inconsistent values, such as with\n // Fast Refresh, then clear it and rebuild with the new values.\n if (error instanceof ChangedPathError) {\n this.clear();\n addLeaf();\n } else {\n throw error;\n }\n }\n } // Returns true if leaf was actually deleted from the tree\n\n\n delete(leaf) {\n const root = this.root();\n\n if (!root) {\n return false;\n }\n\n if (leaf === root) {\n this._root = null;\n this._numLeafs = 0;\n return true;\n } // Iterate up from the leaf deleteing it from it's parent's branches.\n\n\n let node = leaf.parent;\n let branchKey = leaf.branchKey;\n\n while (node) {\n var _node4;\n\n node.branches.delete(branchKey); // Stop iterating if we hit the root.\n\n if (node === root) {\n if (node.branches.size === 0) {\n this._root = null;\n this._numLeafs = 0;\n } else {\n this._numLeafs--;\n }\n\n return true;\n } // Stop iterating if there are other branches since we don't need to\n // remove any more nodes.\n\n\n if (node.branches.size > 0) {\n break;\n } // Iterate up to our parent\n\n\n branchKey = (_node4 = node) === null || _node4 === void 0 ? void 0 : _node4.branchKey;\n node = node.parent;\n } // Confirm that the leaf we are deleting is actually attached to our tree\n\n\n for (; node !== root; node = node.parent) {\n if (node == null) {\n return false;\n }\n }\n\n this._numLeafs--;\n return true;\n }\n\n clear() {\n this._numLeafs = 0;\n this._root = null;\n }\n\n invalidCacheError() {\n const CHANGED_PATH_ERROR_MESSAGE = isFastRefreshEnabled$2() ? 'Possible Fast Refresh module reload detected. ' + 'This may also be caused by an selector returning inconsistent values. ' + 'Resetting cache.' : 'Invalid cache values. This happens when selectors do not return ' + 'consistent values for the same input dependency values. That may also ' + 'be caused when using Fast Refresh to change a selector implementation. ' + 'Resetting cache.';\n Recoil_recoverableViolation(CHANGED_PATH_ERROR_MESSAGE + (this._name != null ? ` - ${this._name}` : ''));\n throw new ChangedPathError();\n }\n\n}\n\nvar Recoil_TreeCache = {\n TreeCache\n};\n\nvar Recoil_TreeCache_1 = Recoil_TreeCache.TreeCache;\n\nvar Recoil_TreeCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TreeCache: Recoil_TreeCache_1\n});\n\nclass LRUCache {\n constructor(options) {\n var _options$mapKey;\n\n _defineProperty(this, \"_maxSize\", void 0);\n\n _defineProperty(this, \"_size\", void 0);\n\n _defineProperty(this, \"_head\", void 0);\n\n _defineProperty(this, \"_tail\", void 0);\n\n _defineProperty(this, \"_map\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n this._maxSize = options.maxSize;\n this._size = 0;\n this._head = null;\n this._tail = null;\n this._map = new Map();\n this._keyMapper = (_options$mapKey = options.mapKey) !== null && _options$mapKey !== void 0 ? _options$mapKey : v => v;\n }\n\n head() {\n return this._head;\n }\n\n tail() {\n return this._tail;\n }\n\n size() {\n return this._size;\n }\n\n maxSize() {\n return this._maxSize;\n }\n\n has(key) {\n return this._map.has(this._keyMapper(key));\n }\n\n get(key) {\n const mappedKey = this._keyMapper(key);\n\n const node = this._map.get(mappedKey);\n\n if (!node) {\n return undefined;\n }\n\n this.set(key, node.value);\n return node.value;\n }\n\n set(key, val) {\n const mappedKey = this._keyMapper(key);\n\n const existingNode = this._map.get(mappedKey);\n\n if (existingNode) {\n this.delete(key);\n }\n\n const head = this.head();\n const node = {\n key,\n right: head,\n left: null,\n value: val\n };\n\n if (head) {\n head.left = node;\n } else {\n this._tail = node;\n }\n\n this._map.set(mappedKey, node);\n\n this._head = node;\n this._size++;\n\n this._maybeDeleteLRU();\n }\n\n _maybeDeleteLRU() {\n if (this.size() > this.maxSize()) {\n this.deleteLru();\n }\n }\n\n deleteLru() {\n const tail = this.tail();\n\n if (tail) {\n this.delete(tail.key);\n }\n }\n\n delete(key) {\n const mappedKey = this._keyMapper(key);\n\n if (!this._size || !this._map.has(mappedKey)) {\n return;\n }\n\n const node = Recoil_nullthrows(this._map.get(mappedKey));\n const right = node.right;\n const left = node.left;\n\n if (right) {\n right.left = node.left;\n }\n\n if (left) {\n left.right = node.right;\n }\n\n if (node === this.head()) {\n this._head = right;\n }\n\n if (node === this.tail()) {\n this._tail = left;\n }\n\n this._map.delete(mappedKey);\n\n this._size--;\n }\n\n clear() {\n this._size = 0;\n this._head = null;\n this._tail = null;\n this._map = new Map();\n }\n\n}\n\nvar Recoil_LRUCache = {\n LRUCache\n};\n\nvar Recoil_LRUCache_1 = Recoil_LRUCache.LRUCache;\n\nvar Recoil_LRUCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n LRUCache: Recoil_LRUCache_1\n});\n\nconst {\n LRUCache: LRUCache$1\n} = Recoil_LRUCache$1;\n\nconst {\n TreeCache: TreeCache$1\n} = Recoil_TreeCache$1;\n\nfunction treeCacheLRU({\n name,\n maxSize,\n mapNodeValue = v => v\n}) {\n const lruCache = new LRUCache$1({\n maxSize\n });\n const cache = new TreeCache$1({\n name,\n mapNodeValue,\n onHit: node => {\n lruCache.set(node, true);\n },\n onSet: node => {\n const lruNode = lruCache.tail();\n lruCache.set(node, true);\n\n if (lruNode && cache.size() > maxSize) {\n // $FlowFixMe[incompatible-call]\n cache.delete(lruNode.key);\n }\n }\n });\n return cache;\n}\n\nvar Recoil_treeCacheLRU = treeCacheLRU;\n\nconst TIME_WARNING_THRESHOLD_MS = 15;\n\nfunction stringify(x, opt, key) {\n // A optimization to avoid the more expensive JSON.stringify() for simple strings\n // This may lose protection for u2028 and u2029, though.\n if (typeof x === 'string' && !x.includes('\"') && !x.includes('\\\\')) {\n return `\"${x}\"`;\n } // Handle primitive types\n\n\n switch (typeof x) {\n case 'undefined':\n return '';\n // JSON.stringify(undefined) returns undefined, but we always want to return a string\n\n case 'boolean':\n return x ? 'true' : 'false';\n\n case 'number':\n case 'symbol':\n // case 'bigint': // BigInt is not supported in www\n return String(x);\n\n case 'string':\n // Add surrounding quotes and escape internal quotes\n return JSON.stringify(x);\n\n case 'function':\n if ((opt === null || opt === void 0 ? void 0 : opt.allowFunctions) !== true) {\n throw Recoil_err('Attempt to serialize function in a Recoil cache key');\n }\n\n return `__FUNCTION(${x.name})__`;\n }\n\n if (x === null) {\n return 'null';\n } // Fallback case for unknown types\n\n\n if (typeof x !== 'object') {\n var _JSON$stringify;\n\n return (_JSON$stringify = JSON.stringify(x)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : '';\n } // Deal with all promises as equivalent for now.\n\n\n if (Recoil_isPromise(x)) {\n return '__PROMISE__';\n } // Arrays handle recursive stringification\n\n\n if (Array.isArray(x)) {\n // $FlowFixMe[missing-local-annot]\n return `[${x.map((v, i) => stringify(v, opt, i.toString()))}]`;\n } // If an object defines a toJSON() method, then use that to override the\n // serialization. This matches the behavior of JSON.stringify().\n // Pass the key for compatibility.\n // Immutable.js collections define this method to allow us to serialize them.\n\n\n if (typeof x.toJSON === 'function') {\n // flowlint-next-line unclear-type: off\n return stringify(x.toJSON(key), opt, key);\n } // For built-in Maps, sort the keys in a stable order instead of the\n // default insertion order. Support non-string keys.\n\n\n if (x instanceof Map) {\n const obj = {};\n\n for (const [k, v] of x) {\n // Stringify will escape any nested quotes\n obj[typeof k === 'string' ? k : stringify(k, opt)] = v;\n }\n\n return stringify(obj, opt, key);\n } // For built-in Sets, sort the keys in a stable order instead of the\n // default insertion order.\n\n\n if (x instanceof Set) {\n return stringify( // $FlowFixMe[missing-local-annot]\n Array.from(x).sort((a, b) => stringify(a, opt).localeCompare(stringify(b, opt))), opt, key);\n } // Anything else that is iterable serialize as an Array.\n\n\n if (Symbol !== undefined && x[Symbol.iterator] != null && typeof x[Symbol.iterator] === 'function') {\n // flowlint-next-line unclear-type: off\n return stringify(Array.from(x), opt, key);\n } // For all other Objects, sort the keys in a stable order.\n\n\n return `{${Object.keys(x).filter(k => x[k] !== undefined).sort() // stringify the key to add quotes and escape any nested slashes or quotes.\n .map(k => `${stringify(k, opt)}:${stringify(x[k], opt, k)}`).join(',')}}`;\n} // Utility similar to JSON.stringify() except:\n// * Serialize built-in Sets as an Array\n// * Serialize built-in Maps as an Object. Supports non-string keys.\n// * Serialize other iterables as arrays\n// * Sort the keys of Objects and Maps to have a stable order based on string conversion.\n// This overrides their default insertion order.\n// * Still uses toJSON() of any object to override serialization\n// * Support Symbols (though don't guarantee uniqueness)\n// * We could support BigInt, but Flow doesn't seem to like it.\n// See Recoil_stableStringify-test.js for examples\n\n\nfunction stableStringify(x, opt = {\n allowFunctions: false\n}) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined') {\n const startTime = window.performance ? window.performance.now() : 0;\n const str = stringify(x, opt);\n const endTime = window.performance ? window.performance.now() : 0;\n\n if (endTime - startTime > TIME_WARNING_THRESHOLD_MS) {\n /* eslint-disable fb-www/no-console */\n console.groupCollapsed(`Recoil: Spent ${endTime - startTime}ms computing a cache key`);\n console.warn(x, str);\n console.groupEnd();\n /* eslint-enable fb-www/no-console */\n }\n\n return str;\n }\n }\n\n return stringify(x, opt);\n}\n\nvar Recoil_stableStringify = stableStringify;\n\nconst {\n TreeCache: TreeCache$2\n} = Recoil_TreeCache$1;\n\n\n\n\n\n\n\n\n\nconst defaultPolicy = {\n equality: 'reference',\n eviction: 'keep-all',\n maxSize: Infinity\n};\n\nfunction treeCacheFromPolicy({\n equality = defaultPolicy.equality,\n eviction = defaultPolicy.eviction,\n maxSize = defaultPolicy.maxSize\n} = defaultPolicy, name) {\n const valueMapper = getValueMapper(equality);\n return getTreeCache(eviction, maxSize, valueMapper, name);\n}\n\nfunction getValueMapper(equality) {\n switch (equality) {\n case 'reference':\n return val => val;\n\n case 'value':\n return val => Recoil_stableStringify(val);\n }\n\n throw Recoil_err(`Unrecognized equality policy ${equality}`);\n}\n\nfunction getTreeCache(eviction, maxSize, mapNodeValue, name) {\n switch (eviction) {\n case 'keep-all':\n return new TreeCache$2({\n name,\n mapNodeValue\n });\n\n case 'lru':\n return Recoil_treeCacheLRU({\n name,\n maxSize: Recoil_nullthrows(maxSize),\n mapNodeValue\n });\n\n case 'most-recent':\n return Recoil_treeCacheLRU({\n name,\n maxSize: 1,\n mapNodeValue\n });\n }\n\n throw Recoil_err(`Unrecognized eviction policy ${eviction}`);\n}\n\nvar Recoil_treeCacheFromPolicy = treeCacheFromPolicy;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nfunction isNode(object) {\n var _ownerDocument, _doc$defaultView;\n\n if (typeof window === 'undefined') {\n return false;\n }\n\n const doc = object != null ? (_ownerDocument = object.ownerDocument) !== null && _ownerDocument !== void 0 ? _ownerDocument : object : document;\n const defaultView = (_doc$defaultView = doc.defaultView) !== null && _doc$defaultView !== void 0 ? _doc$defaultView : window;\n return !!(object != null && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nvar Recoil_isNode = isNode;\n\nconst {\n isReactNative: isReactNative$1,\n isWindow: isWindow$1\n} = Recoil_Environment;\n\n\n\n\n\nfunction shouldNotBeFrozen(value) {\n // Primitives and functions:\n if (value === null || typeof value !== 'object') {\n return true;\n } // React elements:\n\n\n switch (typeof value.$$typeof) {\n case 'symbol':\n return true;\n\n case 'number':\n return true;\n } // Immutable structures:\n\n\n if (value['@@__IMMUTABLE_ITERABLE__@@'] != null || value['@@__IMMUTABLE_KEYED__@@'] != null || value['@@__IMMUTABLE_INDEXED__@@'] != null || value['@@__IMMUTABLE_ORDERED__@@'] != null || value['@@__IMMUTABLE_RECORD__@@'] != null) {\n return true;\n } // DOM nodes:\n\n\n if (Recoil_isNode(value)) {\n return true;\n }\n\n if (Recoil_isPromise(value)) {\n return true;\n }\n\n if (value instanceof Error) {\n return true;\n }\n\n if (ArrayBuffer.isView(value)) {\n return true;\n } // Some environments, just as Jest, don't work with the instanceof check\n\n\n if (!isReactNative$1 && isWindow$1(value)) {\n return true;\n }\n\n return false;\n} // Recursively freeze a value to enforce it is read-only.\n// This may also have minimal performance improvements for enumerating\n// objects (based on browser implementations, of course)\n\n\nfunction deepFreezeValue(value) {\n if (typeof value !== 'object' || shouldNotBeFrozen(value)) {\n return;\n }\n\n Object.freeze(value); // Make all properties read-only\n\n for (const key in value) {\n // $FlowIssue[method-unbinding] added when improving typing for this parameters\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n const prop = value[key]; // Prevent infinite recurssion for circular references.\n\n if (typeof prop === 'object' && prop != null && !Object.isFrozen(prop)) {\n deepFreezeValue(prop);\n }\n }\n }\n\n Object.seal(value); // This also makes existing properties non-configurable.\n}\n\nvar Recoil_deepFreezeValue = deepFreezeValue;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * This is a stub for some integration into FB internal stuff\n *\n * \n * @format\n * @oncall recoil\n */\nfunction startPerfBlock(_id) {\n return () => null;\n}\n\nvar Recoil_PerformanceTimings = {\n startPerfBlock\n};\n\nconst {\n isLoadable: isLoadable$1,\n loadableWithError: loadableWithError$1,\n loadableWithPromise: loadableWithPromise$1,\n loadableWithValue: loadableWithValue$2\n} = Recoil_Loadable$1;\n\nconst {\n WrappedValue: WrappedValue$1\n} = Recoil_Wrapper$1;\n\n\n\nconst {\n getNodeLoadable: getNodeLoadable$2,\n peekNodeLoadable: peekNodeLoadable$1,\n setNodeValue: setNodeValue$3\n} = Recoil_FunctionalCore;\n\nconst {\n saveDepsToStore: saveDepsToStore$1\n} = Recoil_Graph;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$6,\n getConfigDeletionHandler: getConfigDeletionHandler$1,\n getNode: getNode$6,\n registerNode: registerNode$1\n} = Recoil_Node;\n\nconst {\n isRecoilValue: isRecoilValue$3\n} = Recoil_RecoilValue$1;\n\nconst {\n markRecoilValueModified: markRecoilValueModified$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n retainedByOptionWithDefault: retainedByOptionWithDefault$1\n} = Recoil_Retention;\n\nconst {\n recoilCallback: recoilCallback$1\n} = Recoil_useRecoilCallback;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n startPerfBlock: startPerfBlock$1\n} = Recoil_PerformanceTimings;\n\n\n\nclass Canceled {}\n\nconst CANCELED = new Canceled();\n/**\n * An ExecutionID is an arbitrary ID that lets us distinguish executions from\n * each other. This is necessary as we need a way of solving this problem:\n * \"given 3 async executions, only update state for the 'latest' execution when\n * it finishes running regardless of when the other 2 finish\". ExecutionIDs\n * provide a convenient way of identifying executions so that we can track and\n * manage them over time.\n */\n\nconst dependencyStack = []; // for detecting circular dependencies.\n\nconst waitingStores = new Map();\n\nconst getNewExecutionID = (() => {\n let executionID = 0;\n return () => executionID++;\n})();\n/* eslint-disable no-redeclare */\n\n\nfunction selector(options) {\n let recoilValue = null;\n const {\n key,\n get,\n cachePolicy_UNSTABLE: cachePolicy\n } = options;\n const set = options.set != null ? options.set : undefined; // flow\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof key !== 'string') {\n throw Recoil_err('A key option with a unique string value must be provided when creating a selector.');\n }\n\n if (typeof get !== 'function') {\n throw Recoil_err('Selectors must specify a get callback option to get the selector value.');\n }\n } // This is every discovered dependency across all executions\n\n\n const discoveredDependencyNodeKeys = new Set();\n const cache = Recoil_treeCacheFromPolicy(cachePolicy !== null && cachePolicy !== void 0 ? cachePolicy : {\n equality: 'reference',\n eviction: 'keep-all'\n }, key);\n const retainedBy = retainedByOptionWithDefault$1(options.retainedBy_UNSTABLE);\n const executionInfoMap = new Map();\n let liveStoresCount = 0;\n\n function selectorIsLive() {\n return !Recoil_gkx('recoil_memory_managament_2020') || liveStoresCount > 0;\n }\n\n function selectorInit(store) {\n store.getState().knownSelectors.add(key);\n liveStoresCount++;\n return () => {\n liveStoresCount--;\n };\n }\n\n function selectorShouldDeleteConfigOnRelease() {\n return getConfigDeletionHandler$1(key) !== undefined && !selectorIsLive();\n }\n\n function resolveAsync(store, state, executionID, loadable, depValues) {\n setCache(state, loadable, depValues);\n notifyStoresOfResolvedAsync(store, executionID);\n }\n\n function notifyStoresOfResolvedAsync(store, executionID) {\n if (isLatestExecution(store, executionID)) {\n clearExecutionInfo(store);\n }\n\n notifyWaitingStores(executionID, true);\n }\n /**\n * Notify stores to pull the selector again if a new async dep was discovered.\n * 1) Async selector adds a new dep but doesn't resolve yet.\n * Note that deps for an async selector are based on the state when the\n * evaluation started, in order to provide a consistent picture of state.\n * 2) But, new value of dep based on the current state might cause the selector\n * to resolve or resolve differently.\n * 3) Therefore, this notification will pull the selector based on the current\n * state for the components\n */\n\n\n function notifyStoresOfNewAsyncDep(store, executionID) {\n if (isLatestExecution(store, executionID)) {\n const executionInfo = Recoil_nullthrows(getExecutionInfo(store));\n executionInfo.stateVersions.clear();\n notifyWaitingStores(executionID, false);\n }\n }\n\n function notifyWaitingStores(executionID, clearWaitlist) {\n const stores = waitingStores.get(executionID);\n\n if (stores != null) {\n for (const waitingStore of stores) {\n markRecoilValueModified$1(waitingStore, Recoil_nullthrows(recoilValue));\n }\n\n if (clearWaitlist) {\n waitingStores.delete(executionID);\n }\n }\n }\n\n function markStoreWaitingForResolvedAsync(store, executionID) {\n let stores = waitingStores.get(executionID);\n\n if (stores == null) {\n waitingStores.set(executionID, stores = new Set());\n }\n\n stores.add(store);\n }\n /**\n * This function attaches a then() and a catch() to a promise that was\n * returned from a selector's get() (either explicitly or implicitly by\n * running a function that uses the \"async\" keyword). If a selector's get()\n * returns a promise, we have two possibilities:\n *\n * 1. The promise will resolve, in which case it will have completely finished\n * executing without any remaining pending dependencies. No more retries\n * are needed and we can proceed with updating the cache and notifying\n * subscribers (if it is the latest execution, otherwise only the cache\n * will be updated and subscriptions will not be fired). This is the case\n * handled by the attached then() handler.\n *\n * 2. The promise will throw because it either has an error or it came across\n * an async dependency that has not yet resolved, in which case we will\n * call wrapDepdencyPromise(), whose responsibility is to handle dependency\n * promises. This case is handled by the attached catch() handler.\n *\n * Both branches will eventually resolve to the final result of the selector\n * (or an error if a real error occurred).\n *\n * The execution will run to completion even if it is stale, and its value\n * will be cached. But stale executions will not update global state or update\n * executionInfo as that is the responsibility of the 'latest' execution.\n *\n * Note this function should not be passed a promise that was thrown--AKA a\n * dependency promise. Dependency promises should be passed to\n * wrapPendingDependencyPromise()).\n */\n\n\n function wrapResultPromise(store, promise, state, depValues, executionID, loadingDepsState) {\n return promise.then(value => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store);\n throw CANCELED;\n }\n\n const loadable = loadableWithValue$2(value);\n resolveAsync(store, state, executionID, loadable, depValues);\n return value;\n }).catch(errorOrPromise => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store);\n throw CANCELED;\n }\n\n if (Recoil_isPromise(errorOrPromise)) {\n return wrapPendingDependencyPromise(store, errorOrPromise, state, depValues, executionID, loadingDepsState);\n }\n\n const loadable = loadableWithError$1(errorOrPromise);\n resolveAsync(store, state, executionID, loadable, depValues);\n throw errorOrPromise;\n });\n }\n /**\n * This function attaches a then() and a catch() to a promise that was\n * thrown from a selector's get(). If a selector's get() throws a promise,\n * we have two possibilities:\n *\n * 1. The promise will resolve, meaning one of our selector's dependencies is\n * now available and we should \"retry\" our get() by running it again. This\n * is the case handled by the attached then() handler.\n *\n * 2. The promise will throw because something went wrong with the dependency\n * promise (in other words a real error occurred). This case is handled by\n * the attached catch() handler. If the dependency promise throws, it is\n * _always_ a real error and not another dependency promise (any dependency\n * promises would have been handled upstream).\n *\n * The then() branch will eventually resolve to the final result of the\n * selector (or an error if a real error occurs), and the catch() will always\n * resolve to an error because the dependency promise is a promise that was\n * wrapped upstream, meaning it will only resolve to its real value or to a\n * real error.\n *\n * The execution will run to completion even if it is stale, and its value\n * will be cached. But stale executions will not update global state or update\n * executionInfo as that is the responsibility of the 'latest' execution.\n *\n * Note this function should not be passed a promise that was returned from\n * get(). The intention is that this function is only passed promises that\n * were thrown due to a pending dependency. Promises returned by get() should\n * be passed to wrapResultPromise() instead.\n */\n\n\n function wrapPendingDependencyPromise(store, promise, state, existingDeps, executionID, loadingDepsState) {\n return promise.then(resolvedDep => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store);\n throw CANCELED;\n } // Check if we are handling a pending Recoil dependency or if the user\n // threw their own Promise to \"suspend\" a selector evaluation. We need\n // to check that the loadingDepPromise actually matches the promise that\n // we caught in case the selector happened to catch the promise we threw\n // for a pending Recoil dependency from `getRecoilValue()` and threw\n // their own promise instead.\n\n\n if (loadingDepsState.loadingDepKey != null && loadingDepsState.loadingDepPromise === promise) {\n /**\n * Note for async atoms, this means we are changing the atom's value\n * in the store for the given version. This should be alright because\n * the version of state is now stale and a new version will have\n * already been triggered by the atom being resolved (see this logic\n * in Recoil_atom.js)\n */\n state.atomValues.set(loadingDepsState.loadingDepKey, loadableWithValue$2(resolvedDep));\n } else {\n /**\n * If resolvedDepKey is not defined, the promise was a user-thrown\n * promise. User-thrown promises are an advanced feature and they\n * should be avoided in almost all cases. Using `loadable.map()` inside\n * of selectors for loading loadables and then throwing that mapped\n * loadable's promise is an example of a user-thrown promise.\n *\n * When we hit a user-thrown promise, we have to bail out of an optimization\n * where we bypass calculating selector cache keys for selectors that\n * have been previously seen for a given state (these selectors are saved in\n * state.atomValues) to avoid stale state as we have no way of knowing\n * what state changes happened (if any) in result to the promise resolving.\n *\n * Ideally we would only bail out selectors that are in the chain of\n * dependencies for this selector, but there's currently no way to get\n * a full list of a selector's downstream nodes because the state that\n * is executing may be a discarded tree (so store.getGraph(state.version)\n * will be empty), and the full dep tree may not be in the selector\n * caches in the case where the selector's cache was cleared. To solve\n * for this we would have to keep track of all running selector\n * executions and their downstream deps. Because this only covers edge\n * cases, that complexity might not be justifyable.\n */\n store.getState().knownSelectors.forEach(nodeKey => {\n state.atomValues.delete(nodeKey);\n });\n }\n /**\n * Optimization: Now that the dependency has resolved, let's try hitting\n * the cache in case the dep resolved to a value we have previously seen.\n *\n * TODO:\n * Note this optimization is not perfect because it only prevents re-executions\n * _after_ the point where an async dependency is found. Any code leading\n * up to the async dependency may have run unnecessarily. The ideal case\n * would be to wait for the async dependency to resolve first, check the\n * cache, and prevent _any_ execution of the selector if the resulting\n * value of the dependency leads to a path that is found in the cache.\n * The ideal case is more difficult to implement as it would require that\n * we capture and wait for the the async dependency right after checking\n * the cache. The current approach takes advantage of the fact that running\n * the selector already has a code path that lets us exit early when\n * an async dep resolves.\n */\n\n\n const cachedLoadable = getLoadableFromCacheAndUpdateDeps(store, state);\n\n if (cachedLoadable && cachedLoadable.state !== 'loading') {\n /**\n * This has to notify stores of a resolved async, even if there is no\n * current pending execution for the following case:\n * 1) A component renders with this pending loadable.\n * 2) The upstream dependency resolves.\n * 3) While processing some other selector it reads this one, such as\n * while traversing its dependencies. At this point it gets the\n * new resolved value synchronously and clears the current\n * execution ID. The component wasn't getting the value itself,\n * though, so it still has the pending loadable.\n * 4) When this code executes the current execution id was cleared\n * and it wouldn't notify the component of the new value.\n *\n * I think this is only an issue with \"early\" rendering since the\n * components got their value using the in-progress execution.\n * We don't have a unit test for this case yet. I'm not sure it is\n * necessary with recoil_transition_support mode.\n */\n if (isLatestExecution(store, executionID) || getExecutionInfo(store) == null) {\n notifyStoresOfResolvedAsync(store, executionID);\n }\n\n if (cachedLoadable.state === 'hasValue') {\n return cachedLoadable.contents;\n } else {\n throw cachedLoadable.contents;\n }\n }\n /**\n * If this execution is stale, let's check to see if there is some in\n * progress execution with a matching state. If we find a match, then\n * we can take the value from that in-progress execution. Note this may\n * sound like an edge case, but may be very common in cases where a\n * loading dependency resolves from loading to having a value (thus\n * possibly triggering a re-render), and React re-renders before the\n * chained .then() functions run, thus starting a new execution as the\n * dep has changed value. Without this check we will run the selector\n * twice (once in the new execution and once again in this .then(), so\n * this check is necessary to keep unnecessary re-executions to a\n * minimum).\n *\n * Also note this code does not check across all executions that may be\n * running. It only optimizes for the _latest_ execution per store as\n * we currently do not maintain a list of all currently running executions.\n * This means in some cases we may run selectors more than strictly\n * necessary when there are multiple executions running for the same\n * selector. This may be a valid tradeoff as checking for dep changes\n * across all in-progress executions may take longer than just\n * re-running the selector. This will be app-dependent, and maybe in the\n * future we can make the behavior configurable. An ideal fix may be\n * to extend the tree cache to support caching loading states.\n */\n\n\n if (!isLatestExecution(store, executionID)) {\n const executionInfo = getInProgressExecutionInfo(store, state);\n\n if (executionInfo != null) {\n /**\n * Returning promise here without wrapping as the wrapper logic was\n * already done upstream when this promise was generated.\n */\n return executionInfo.loadingLoadable.contents;\n }\n } // Retry the selector evaluation now that the dependency has resolved\n\n\n const [loadable, depValues] = evaluateSelectorGetter(store, state, executionID);\n\n if (loadable.state !== 'loading') {\n resolveAsync(store, state, executionID, loadable, depValues);\n }\n\n if (loadable.state === 'hasError') {\n throw loadable.contents;\n }\n\n return loadable.contents;\n }).catch(error => {\n // The selector was released since the request began; ignore the response.\n if (error instanceof Canceled) {\n throw CANCELED;\n }\n\n if (!selectorIsLive()) {\n clearExecutionInfo(store);\n throw CANCELED;\n }\n\n const loadable = loadableWithError$1(error);\n resolveAsync(store, state, executionID, loadable, existingDeps);\n throw error;\n });\n }\n\n function updateDeps(store, state, deps, executionID) {\n var _store$getState, _store$getState$curre, _store$getState2, _store$getState2$next;\n\n if (isLatestExecution(store, executionID) || state.version === ((_store$getState = store.getState()) === null || _store$getState === void 0 ? void 0 : (_store$getState$curre = _store$getState.currentTree) === null || _store$getState$curre === void 0 ? void 0 : _store$getState$curre.version) || state.version === ((_store$getState2 = store.getState()) === null || _store$getState2 === void 0 ? void 0 : (_store$getState2$next = _store$getState2.nextTree) === null || _store$getState2$next === void 0 ? void 0 : _store$getState2$next.version)) {\n var _store$getState$nextT, _store$getState3, _store$getState3$next;\n\n saveDepsToStore$1(key, deps, store, (_store$getState$nextT = (_store$getState3 = store.getState()) === null || _store$getState3 === void 0 ? void 0 : (_store$getState3$next = _store$getState3.nextTree) === null || _store$getState3$next === void 0 ? void 0 : _store$getState3$next.version) !== null && _store$getState$nextT !== void 0 ? _store$getState$nextT : store.getState().currentTree.version);\n }\n\n for (const nodeKey of deps) {\n discoveredDependencyNodeKeys.add(nodeKey);\n }\n }\n\n function evaluateSelectorGetter(store, state, executionID) {\n const endPerfBlock = startPerfBlock$1(key); // TODO T63965866: use execution ID here\n\n let duringSynchronousExecution = true;\n let duringAsynchronousExecution = true;\n\n const finishEvaluation = () => {\n endPerfBlock();\n duringAsynchronousExecution = false;\n };\n\n let result;\n let resultIsError = false;\n let loadable;\n const loadingDepsState = {\n loadingDepKey: null,\n loadingDepPromise: null\n };\n /**\n * Starting a fresh set of deps that we'll be using to update state. We're\n * starting a new set versus adding it in existing state deps because\n * the version of state that we update deps for may be a more recent version\n * than the version the selector was called with. This is because the latest\n * execution will update the deps of the current/latest version of state\n * (This is safe to do because the fact that the selector is the latest\n * execution means the deps we discover below are our best guess at the\n * deps for the current/latest state in the store)\n */\n\n const depValues = new Map();\n\n function getRecoilValue({\n key: depKey\n }) {\n const depLoadable = getNodeLoadable$2(store, state, depKey);\n depValues.set(depKey, depLoadable); // We need to update asynchronous dependencies as we go so the selector\n // knows if it has to restart evaluation if one of them is updated before\n // the asynchronous selector completely resolves.\n\n if (!duringSynchronousExecution) {\n updateDeps(store, state, new Set(depValues.keys()), executionID);\n notifyStoresOfNewAsyncDep(store, executionID);\n }\n\n switch (depLoadable.state) {\n case 'hasValue':\n return depLoadable.contents;\n\n case 'hasError':\n throw depLoadable.contents;\n\n case 'loading':\n loadingDepsState.loadingDepKey = depKey;\n loadingDepsState.loadingDepPromise = depLoadable.contents;\n throw depLoadable.contents;\n }\n\n throw Recoil_err('Invalid Loadable state');\n }\n\n const getCallback = fn => {\n return (...args) => {\n if (duringAsynchronousExecution) {\n throw Recoil_err('Callbacks from getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can work with Recoil state without a subscription.');\n }\n\n !(recoilValue != null) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Recoil Value can never be null') : Recoil_invariant(false) : void 0;\n return recoilCallback$1(store, fn, args, {\n node: recoilValue\n } // flowlint-line unclear-type:off\n );\n };\n };\n\n try {\n result = get({\n get: getRecoilValue,\n getCallback\n });\n result = isRecoilValue$3(result) ? getRecoilValue(result) : result;\n\n if (isLoadable$1(result)) {\n if (result.state === 'hasError') {\n resultIsError = true;\n }\n\n result = result.contents;\n }\n\n if (Recoil_isPromise(result)) {\n result = wrapResultPromise(store, result, state, depValues, executionID, loadingDepsState).finally(finishEvaluation);\n } else {\n finishEvaluation();\n }\n\n result = result instanceof WrappedValue$1 ? result.value : result;\n } catch (errorOrDepPromise) {\n result = errorOrDepPromise;\n\n if (Recoil_isPromise(result)) {\n result = wrapPendingDependencyPromise(store, result, state, depValues, executionID, loadingDepsState).finally(finishEvaluation);\n } else {\n resultIsError = true;\n finishEvaluation();\n }\n }\n\n if (resultIsError) {\n loadable = loadableWithError$1(result);\n } else if (Recoil_isPromise(result)) {\n loadable = loadableWithPromise$1(result);\n } else {\n loadable = loadableWithValue$2(result);\n }\n\n duringSynchronousExecution = false;\n updateExecutionInfoDepValues(store, executionID, depValues);\n updateDeps(store, state, new Set(depValues.keys()), executionID);\n return [loadable, depValues];\n }\n\n function getLoadableFromCacheAndUpdateDeps(store, state) {\n // First, look up in the state cache\n // If it's here, then the deps in the store should already be valid.\n let cachedLoadable = state.atomValues.get(key);\n\n if (cachedLoadable != null) {\n return cachedLoadable;\n } // Second, look up in the selector cache and update the deps in the store\n\n\n const depsAfterCacheLookup = new Set();\n\n try {\n cachedLoadable = cache.get(nodeKey => {\n !(typeof nodeKey === 'string') ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Cache nodeKey is type string') : Recoil_invariant(false) : void 0;\n return getNodeLoadable$2(store, state, nodeKey).contents;\n }, {\n onNodeVisit: node => {\n if (node.type === 'branch' && node.nodeKey !== key) {\n depsAfterCacheLookup.add(node.nodeKey);\n }\n }\n });\n } catch (error) {\n throw Recoil_err(`Problem with cache lookup for selector \"${key}\": ${error.message}`);\n }\n\n if (cachedLoadable) {\n var _getExecutionInfo;\n\n // Cache the results in the state to allow for cheaper lookup than\n // iterating the tree cache of dependencies.\n state.atomValues.set(key, cachedLoadable);\n /**\n * Ensure store contains correct dependencies if we hit the cache so that\n * the store deps and cache are in sync for a given state. This is important\n * because store deps are normally updated when new executions are created,\n * but cache hits don't trigger new executions but they still _may_ signify\n * a change in deps in the store if the store deps for this state are empty\n * or stale.\n */\n\n updateDeps(store, state, depsAfterCacheLookup, (_getExecutionInfo = getExecutionInfo(store)) === null || _getExecutionInfo === void 0 ? void 0 : _getExecutionInfo.executionID);\n }\n\n return cachedLoadable;\n }\n /**\n * Given a tree state, this function returns a Loadable of the current state.\n *\n * The selector's get() function will only be re-evaluated if _both_ of the\n * following statements are true:\n *\n * 1. The current dep values from the given state produced a cache key that\n * was not found in the cache.\n * 2. There is no currently running async execution OR there is an\n * async execution that is running, but after comparing the dep values in\n * the given state with the dep values that the execution has discovered so\n * far we find that at least one dep value has changed, in which case we\n * start a new execution (the previously running execution will continue to\n * run to completion, but only the new execution will be deemed the\n * 'latest' execution, meaning it will be the only execution that will\n * update global state when it is finished. Any non-latest executions will\n * run to completion and update the selector cache but not global state).\n */\n\n\n function getSelectorLoadableAndUpdateDeps(store, state) {\n // First, see if our current state is cached\n const cachedVal = getLoadableFromCacheAndUpdateDeps(store, state);\n\n if (cachedVal != null) {\n clearExecutionInfo(store);\n return cachedVal;\n } // Second, check if there is already an ongoing execution based on the current state\n\n\n const inProgressExecutionInfo = getInProgressExecutionInfo(store, state);\n\n if (inProgressExecutionInfo != null) {\n var _inProgressExecutionI;\n\n if (((_inProgressExecutionI = inProgressExecutionInfo.loadingLoadable) === null || _inProgressExecutionI === void 0 ? void 0 : _inProgressExecutionI.state) === 'loading') {\n markStoreWaitingForResolvedAsync(store, inProgressExecutionInfo.executionID);\n } // FIXME: check after the fact to see if we made the right choice by waiting\n\n\n return inProgressExecutionInfo.loadingLoadable;\n } // Third, start a new evaluation of the selector\n\n\n const newExecutionID = getNewExecutionID();\n const [loadable, newDepValues] = evaluateSelectorGetter(store, state, newExecutionID);\n /**\n * Conditionally updates the cache with a given loadable.\n *\n * We only cache loadables that are not loading because our cache keys are\n * based on dep values, which are in an unfinished state for loadables that\n * have a 'loading' state (new deps may be discovered while the selector\n * runs its async code). We never want to cache partial dependencies b/c it\n * could lead to errors, such as prematurely returning the result based on a\n * partial list of deps-- we need the full list of deps to ensure that we\n * are returning the correct result from cache.\n */\n\n if (loadable.state === 'loading') {\n setExecutionInfo(store, newExecutionID, loadable, newDepValues, state);\n markStoreWaitingForResolvedAsync(store, newExecutionID);\n } else {\n clearExecutionInfo(store);\n setCache(state, loadable, newDepValues);\n }\n\n return loadable;\n }\n /**\n * Searches execution info across all stores to see if there is an in-progress\n * execution whose dependency values match the values of the requesting store.\n */\n\n\n function getInProgressExecutionInfo(store, state) {\n // Sort the pending executions so that our current store is checked first.\n const pendingExecutions = Recoil_concatIterables([executionInfoMap.has(store) ? [Recoil_nullthrows(executionInfoMap.get(store))] : [], Recoil_mapIterable(Recoil_filterIterable(executionInfoMap, ([s]) => s !== store), ([, execInfo]) => execInfo)]);\n\n function anyDepChanged(execDepValues) {\n for (const [depKey, execLoadable] of execDepValues) {\n if (!getNodeLoadable$2(store, state, depKey).is(execLoadable)) {\n return true;\n }\n }\n\n return false;\n }\n\n for (const execInfo of pendingExecutions) {\n if ( // If this execution was already checked to be valid with this version\n // of state, then let's use it!\n execInfo.stateVersions.get(state.version) || // If the deps for the execution match our current state, then it's valid\n !anyDepChanged(execInfo.depValuesDiscoveredSoFarDuringAsyncWork)) {\n execInfo.stateVersions.set(state.version, true);\n return execInfo;\n } else {\n execInfo.stateVersions.set(state.version, false);\n }\n }\n\n return undefined;\n }\n\n function getExecutionInfo(store) {\n return executionInfoMap.get(store);\n }\n /**\n * This function will update the selector's execution info when the selector\n * has either finished running an execution or has started a new execution. If\n * the given loadable is in a 'loading' state, the intention is that a new\n * execution has started. Otherwise, the intention is that an execution has\n * just finished.\n */\n\n\n function setExecutionInfo(store, newExecutionID, loadable, depValues, state) {\n executionInfoMap.set(store, {\n depValuesDiscoveredSoFarDuringAsyncWork: depValues,\n executionID: newExecutionID,\n loadingLoadable: loadable,\n stateVersions: new Map([[state.version, true]])\n });\n }\n\n function updateExecutionInfoDepValues(store, executionID, depValues) {\n // We only need to bother updating the deps for the latest execution because\n // that's all getInProgressExecutionInfo() will be looking for.\n if (isLatestExecution(store, executionID)) {\n const executionInfo = getExecutionInfo(store);\n\n if (executionInfo != null) {\n executionInfo.depValuesDiscoveredSoFarDuringAsyncWork = depValues;\n }\n }\n }\n\n function clearExecutionInfo(store) {\n executionInfoMap.delete(store);\n }\n\n function isLatestExecution(store, executionID) {\n var _getExecutionInfo2;\n\n return executionID === ((_getExecutionInfo2 = getExecutionInfo(store)) === null || _getExecutionInfo2 === void 0 ? void 0 : _getExecutionInfo2.executionID);\n }\n /**\n * FIXME: dep keys should take into account the state of the loadable to\n * prevent the edge case where a loadable with an error and a loadable with\n * an error as a value are treated as the same thing incorrectly. For example\n * these two should be treated differently:\n *\n * selector({key: '', get: () => new Error('hi')});\n * selector({key: '', get () => {throw new Error('hi')}});\n *\n * With current implementation they are treated the same\n */\n\n\n function depValuesToDepRoute(depValues) {\n return Array.from(depValues.entries()).map(([depKey, valLoadable]) => [depKey, valLoadable.contents]);\n }\n\n function setCache(state, loadable, depValues) {\n if (process.env.NODE_ENV !== \"production\") {\n if (loadable.state !== 'loading' && Boolean(options.dangerouslyAllowMutability) === false) {\n Recoil_deepFreezeValue(loadable.contents);\n }\n }\n\n state.atomValues.set(key, loadable);\n\n try {\n cache.set(depValuesToDepRoute(depValues), loadable);\n } catch (error) {\n throw Recoil_err(`Problem with setting cache for selector \"${key}\": ${error.message}`);\n }\n }\n\n function detectCircularDependencies(fn) {\n if (dependencyStack.includes(key)) {\n const message = `Recoil selector has circular dependencies: ${dependencyStack.slice(dependencyStack.indexOf(key)).join(' \\u2192 ')}`;\n return loadableWithError$1(Recoil_err(message));\n }\n\n dependencyStack.push(key);\n\n try {\n return fn();\n } finally {\n dependencyStack.pop();\n }\n }\n\n function selectorPeek(store, state) {\n const cachedLoadable = state.atomValues.get(key);\n\n if (cachedLoadable != null) {\n return cachedLoadable;\n }\n\n return cache.get(nodeKey => {\n var _peekNodeLoadable;\n\n !(typeof nodeKey === 'string') ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Cache nodeKey is type string') : Recoil_invariant(false) : void 0;\n return (_peekNodeLoadable = peekNodeLoadable$1(store, state, nodeKey)) === null || _peekNodeLoadable === void 0 ? void 0 : _peekNodeLoadable.contents;\n });\n }\n\n function selectorGet(store, state) {\n return detectCircularDependencies(() => getSelectorLoadableAndUpdateDeps(store, state));\n }\n\n function invalidateSelector(state) {\n state.atomValues.delete(key);\n }\n\n function clearSelectorCache(store, treeState) {\n !(recoilValue != null) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Recoil Value can never be null') : Recoil_invariant(false) : void 0;\n\n for (const nodeKey of discoveredDependencyNodeKeys) {\n var _node$clearCache;\n\n const node = getNode$6(nodeKey);\n (_node$clearCache = node.clearCache) === null || _node$clearCache === void 0 ? void 0 : _node$clearCache.call(node, store, treeState);\n }\n\n discoveredDependencyNodeKeys.clear();\n invalidateSelector(treeState);\n cache.clear();\n markRecoilValueModified$1(store, recoilValue);\n }\n\n if (set != null) {\n /**\n * ES5 strict mode prohibits defining non-top-level function declarations,\n * so don't use function declaration syntax here\n */\n const selectorSet = (store, state, newValue) => {\n let syncSelectorSetFinished = false;\n const writes = new Map();\n\n function getRecoilValue({\n key: depKey\n }) {\n if (syncSelectorSetFinished) {\n throw Recoil_err('Recoil: Async selector sets are not currently supported.');\n }\n\n const loadable = getNodeLoadable$2(store, state, depKey);\n\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'loading') {\n const msg = `Getting value of asynchronous atom or selector \"${depKey}\" in a pending state while setting selector \"${key}\" is not yet supported.`;\n Recoil_recoverableViolation(msg);\n throw Recoil_err(msg);\n } else {\n throw loadable.contents;\n }\n }\n\n function setRecoilState(recoilState, valueOrUpdater // $FlowFixMe[missing-local-annot]\n ) {\n if (syncSelectorSetFinished) {\n const msg = 'Recoil: Async selector sets are not currently supported.';\n Recoil_recoverableViolation(msg);\n throw Recoil_err(msg);\n }\n\n const setValue = typeof valueOrUpdater === 'function' ? // cast to any because we can't restrict type S from being a function itself without losing support for opaque types\n // flowlint-next-line unclear-type:off\n valueOrUpdater(getRecoilValue(recoilState)) : valueOrUpdater;\n const upstreamWrites = setNodeValue$3(store, state, recoilState.key, setValue);\n upstreamWrites.forEach((v, k) => writes.set(k, v));\n }\n\n function resetRecoilState(recoilState) {\n setRecoilState(recoilState, DEFAULT_VALUE$6);\n }\n\n const ret = set({\n set: setRecoilState,\n get: getRecoilValue,\n reset: resetRecoilState\n }, newValue); // set should be a void method, but if the user makes it `async`, then it\n // will return a Promise, which we don't currently support.\n\n if (ret !== undefined) {\n throw Recoil_isPromise(ret) ? Recoil_err('Recoil: Async selector sets are not currently supported.') : Recoil_err('Recoil: selector set should be a void function.');\n }\n\n syncSelectorSetFinished = true;\n return writes;\n };\n\n return recoilValue = registerNode$1({\n key,\n nodeType: 'selector',\n peek: selectorPeek,\n get: selectorGet,\n set: selectorSet,\n init: selectorInit,\n invalidate: invalidateSelector,\n clearCache: clearSelectorCache,\n shouldDeleteConfigOnRelease: selectorShouldDeleteConfigOnRelease,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n shouldRestoreFromSnapshots: false,\n retainedBy\n });\n } else {\n return recoilValue = registerNode$1({\n key,\n nodeType: 'selector',\n peek: selectorPeek,\n get: selectorGet,\n init: selectorInit,\n invalidate: invalidateSelector,\n clearCache: clearSelectorCache,\n shouldDeleteConfigOnRelease: selectorShouldDeleteConfigOnRelease,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n shouldRestoreFromSnapshots: false,\n retainedBy\n });\n }\n}\n/* eslint-enable no-redeclare */\n// $FlowIssue[incompatible-use]\n// $FlowFixMe[missing-local-annot]\n\n\nselector.value = value => new WrappedValue$1(value);\n\nvar Recoil_selector = selector;\n\n// @fb-only: import type {ScopeRules} from 'Recoil_ScopedAtom';\n// @fb-only: const {scopedAtom} = require('Recoil_ScopedAtom');\nconst {\n isLoadable: isLoadable$2,\n loadableWithError: loadableWithError$2,\n loadableWithPromise: loadableWithPromise$2,\n loadableWithValue: loadableWithValue$3\n} = Recoil_Loadable$1;\n\nconst {\n WrappedValue: WrappedValue$2\n} = Recoil_Wrapper$1;\n\nconst {\n peekNodeInfo: peekNodeInfo$3\n} = Recoil_FunctionalCore;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$7,\n DefaultValue: DefaultValue$2,\n getConfigDeletionHandler: getConfigDeletionHandler$2,\n registerNode: registerNode$2,\n setConfigDeletionHandler: setConfigDeletionHandler$1\n} = Recoil_Node;\n\nconst {\n isRecoilValue: isRecoilValue$4\n} = Recoil_RecoilValue$1;\n\nconst {\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$4,\n markRecoilValueModified: markRecoilValueModified$2,\n setRecoilValue: setRecoilValue$4,\n setRecoilValueLoadable: setRecoilValueLoadable$2\n} = Recoil_RecoilValueInterface;\n\nconst {\n retainedByOptionWithDefault: retainedByOptionWithDefault$2\n} = Recoil_Retention;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst unwrap = x => x instanceof WrappedValue$2 ? x.value : x;\n\nfunction baseAtom(options) {\n const {\n key,\n persistence_UNSTABLE: persistence\n } = options;\n const retainedBy = retainedByOptionWithDefault$2(options.retainedBy_UNSTABLE);\n let liveStoresCount = 0;\n\n function unwrapPromise(promise) {\n return loadableWithPromise$2(promise.then(value => {\n defaultLoadable = loadableWithValue$3(value);\n return value;\n }).catch(error => {\n defaultLoadable = loadableWithError$2(error);\n throw error;\n }));\n }\n\n let defaultLoadable = Recoil_isPromise(options.default) ? unwrapPromise(options.default) : isLoadable$2(options.default) ? options.default.state === 'loading' ? unwrapPromise(options.default.contents) : options.default : // $FlowFixMe[incompatible-call]\n loadableWithValue$3(unwrap(options.default));\n maybeFreezeValueOrPromise(defaultLoadable.contents);\n let cachedAnswerForUnvalidatedValue = undefined; // Cleanup handlers for this atom\n // Rely on stable reference equality of the store to use it as a key per \n\n const cleanupEffectsByStore = new Map();\n\n function maybeFreezeValueOrPromise(valueOrPromise) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.dangerouslyAllowMutability !== true) {\n if (Recoil_isPromise(valueOrPromise)) {\n return valueOrPromise.then(value => {\n Recoil_deepFreezeValue(value);\n return value;\n });\n } else {\n Recoil_deepFreezeValue(valueOrPromise);\n return valueOrPromise;\n }\n }\n }\n\n return valueOrPromise;\n }\n\n function wrapPendingPromise(store, promise) {\n const wrappedPromise = promise.then(value => {\n var _store$getState$nextT, _state$atomValues$get;\n\n const state = (_store$getState$nextT = store.getState().nextTree) !== null && _store$getState$nextT !== void 0 ? _store$getState$nextT : store.getState().currentTree;\n\n if (((_state$atomValues$get = state.atomValues.get(key)) === null || _state$atomValues$get === void 0 ? void 0 : _state$atomValues$get.contents) === wrappedPromise) {\n setRecoilValue$4(store, node, value);\n }\n\n return value;\n }).catch(error => {\n var _store$getState$nextT2, _state$atomValues$get2;\n\n const state = (_store$getState$nextT2 = store.getState().nextTree) !== null && _store$getState$nextT2 !== void 0 ? _store$getState$nextT2 : store.getState().currentTree;\n\n if (((_state$atomValues$get2 = state.atomValues.get(key)) === null || _state$atomValues$get2 === void 0 ? void 0 : _state$atomValues$get2.contents) === wrappedPromise) {\n setRecoilValueLoadable$2(store, node, loadableWithError$2(error));\n }\n\n throw error;\n });\n return wrappedPromise;\n }\n\n function initAtom(store, initState, trigger) {\n var _options$effects;\n\n liveStoresCount++;\n\n const cleanupAtom = () => {\n var _cleanupEffectsByStor;\n\n liveStoresCount--;\n (_cleanupEffectsByStor = cleanupEffectsByStore.get(store)) === null || _cleanupEffectsByStor === void 0 ? void 0 : _cleanupEffectsByStor.forEach(cleanup => cleanup());\n cleanupEffectsByStore.delete(store);\n };\n\n store.getState().knownAtoms.add(key); // Setup async defaults to notify subscribers when they resolve\n\n if (defaultLoadable.state === 'loading') {\n const notifyDefaultSubscribers = () => {\n var _store$getState$nextT3;\n\n const state = (_store$getState$nextT3 = store.getState().nextTree) !== null && _store$getState$nextT3 !== void 0 ? _store$getState$nextT3 : store.getState().currentTree;\n\n if (!state.atomValues.has(key)) {\n markRecoilValueModified$2(store, node);\n }\n };\n\n defaultLoadable.contents.finally(notifyDefaultSubscribers);\n } ///////////////////\n // Run Atom Effects\n ///////////////////\n\n\n const effects = (_options$effects = options.effects) !== null && _options$effects !== void 0 ? _options$effects : options.effects_UNSTABLE;\n\n if (effects != null) {\n // This state is scoped by Store, since this is in the initAtom() closure\n let initValue = DEFAULT_VALUE$7;\n let isDuringInit = true;\n let isInitError = false;\n let pendingSetSelf = null;\n\n function getLoadable(recoilValue) {\n // Normally we can just get the current value of another atom.\n // But for our own value we need to check if there is a pending\n // initialized value or get the fallback default value.\n if (isDuringInit && recoilValue.key === key) {\n // Cast T to S\n const retValue = initValue; // flowlint-line unclear-type:off\n\n return retValue instanceof DefaultValue$2 ? peekAtom(store, initState) // flowlint-line unclear-type:off\n : Recoil_isPromise(retValue) ? loadableWithPromise$2(retValue.then(v => v instanceof DefaultValue$2 ? // Cast T to S\n defaultLoadable.toPromise() // flowlint-line unclear-type:off\n : v)) : // $FlowFixMe[incompatible-call]\n loadableWithValue$3(retValue);\n }\n\n return getRecoilValueAsLoadable$4(store, recoilValue);\n }\n\n function getPromise(recoilValue) {\n return getLoadable(recoilValue).toPromise();\n }\n\n function getInfo_UNSTABLE(recoilValue) {\n var _store$getState$nextT4;\n\n const info = peekNodeInfo$3(store, (_store$getState$nextT4 = store.getState().nextTree) !== null && _store$getState$nextT4 !== void 0 ? _store$getState$nextT4 : store.getState().currentTree, recoilValue.key);\n return isDuringInit && recoilValue.key === key && !(initValue instanceof DefaultValue$2) ? { ...info,\n isSet: true,\n loadable: getLoadable(recoilValue)\n } : info;\n }\n\n const setSelf = effect => valueOrUpdater => {\n if (isDuringInit) {\n const currentLoadable = getLoadable(node);\n const currentValue = currentLoadable.state === 'hasValue' ? currentLoadable.contents : DEFAULT_VALUE$7;\n initValue = typeof valueOrUpdater === 'function' ? // cast to any because we can't restrict T from being a function without losing support for opaque types\n valueOrUpdater(currentValue) // flowlint-line unclear-type:off\n : valueOrUpdater;\n\n if (Recoil_isPromise(initValue)) {\n initValue = initValue.then(value => {\n // Avoid calling onSet() when setSelf() initializes with a Promise\n pendingSetSelf = {\n effect,\n value\n };\n return value;\n });\n }\n } else {\n if (Recoil_isPromise(valueOrUpdater)) {\n throw Recoil_err('Setting atoms to async values is not implemented.');\n }\n\n if (typeof valueOrUpdater !== 'function') {\n pendingSetSelf = {\n effect,\n value: unwrap(valueOrUpdater)\n };\n }\n\n setRecoilValue$4(store, node, typeof valueOrUpdater === 'function' ? currentValue => {\n const newValue = unwrap( // cast to any because we can't restrict T from being a function without losing support for opaque types\n valueOrUpdater(currentValue) // flowlint-line unclear-type:off\n ); // $FlowFixMe[incompatible-type]\n\n pendingSetSelf = {\n effect,\n value: newValue\n };\n return newValue;\n } : unwrap(valueOrUpdater));\n }\n };\n\n const resetSelf = effect => () => setSelf(effect)(DEFAULT_VALUE$7);\n\n const onSet = effect => handler => {\n var _cleanupEffectsByStor2;\n\n const {\n release\n } = store.subscribeToTransactions(currentStore => {\n var _currentTree$atomValu;\n\n // eslint-disable-next-line prefer-const\n let {\n currentTree,\n previousTree\n } = currentStore.getState();\n\n if (!previousTree) {\n Recoil_recoverableViolation('Transaction subscribers notified without a next tree being present -- this is a bug in Recoil');\n previousTree = currentTree; // attempt to trundle on\n }\n\n const newLoadable = (_currentTree$atomValu = currentTree.atomValues.get(key)) !== null && _currentTree$atomValu !== void 0 ? _currentTree$atomValu : defaultLoadable;\n\n if (newLoadable.state === 'hasValue') {\n var _previousTree$atomVal, _pendingSetSelf, _pendingSetSelf2, _pendingSetSelf3;\n\n const newValue = newLoadable.contents;\n const oldLoadable = (_previousTree$atomVal = previousTree.atomValues.get(key)) !== null && _previousTree$atomVal !== void 0 ? _previousTree$atomVal : defaultLoadable;\n const oldValue = oldLoadable.state === 'hasValue' ? oldLoadable.contents : DEFAULT_VALUE$7; // TODO This isn't actually valid, use as a placeholder for now.\n // Ignore atom value changes that were set via setSelf() in the same effect.\n // We will still properly call the handler if there was a subsequent\n // set from something other than an atom effect which was batched\n // with the `setSelf()` call. However, we may incorrectly ignore\n // the handler if the subsequent batched call happens to set the\n // atom to the exact same value as the `setSelf()`. But, in that\n // case, it was kind of a noop, so the semantics are debatable..\n\n if (((_pendingSetSelf = pendingSetSelf) === null || _pendingSetSelf === void 0 ? void 0 : _pendingSetSelf.effect) !== effect || ((_pendingSetSelf2 = pendingSetSelf) === null || _pendingSetSelf2 === void 0 ? void 0 : _pendingSetSelf2.value) !== newValue) {\n handler(newValue, oldValue, !currentTree.atomValues.has(key));\n } else if (((_pendingSetSelf3 = pendingSetSelf) === null || _pendingSetSelf3 === void 0 ? void 0 : _pendingSetSelf3.effect) === effect) {\n pendingSetSelf = null;\n }\n }\n }, key);\n cleanupEffectsByStore.set(store, [...((_cleanupEffectsByStor2 = cleanupEffectsByStore.get(store)) !== null && _cleanupEffectsByStor2 !== void 0 ? _cleanupEffectsByStor2 : []), release]);\n };\n\n for (const effect of effects) {\n try {\n const cleanup = effect({\n node,\n storeID: store.storeID,\n parentStoreID_UNSTABLE: store.parentStoreID,\n trigger,\n setSelf: setSelf(effect),\n resetSelf: resetSelf(effect),\n onSet: onSet(effect),\n getPromise,\n getLoadable,\n getInfo_UNSTABLE\n });\n\n if (cleanup != null) {\n var _cleanupEffectsByStor3;\n\n cleanupEffectsByStore.set(store, [...((_cleanupEffectsByStor3 = cleanupEffectsByStore.get(store)) !== null && _cleanupEffectsByStor3 !== void 0 ? _cleanupEffectsByStor3 : []), cleanup]);\n }\n } catch (error) {\n initValue = error;\n isInitError = true;\n }\n }\n\n isDuringInit = false; // Mutate initial state in place since we know there are no other subscribers\n // since we are the ones initializing on first use.\n\n if (!(initValue instanceof DefaultValue$2)) {\n var _store$getState$nextT5;\n\n const initLoadable = isInitError ? loadableWithError$2(initValue) : Recoil_isPromise(initValue) ? loadableWithPromise$2(wrapPendingPromise(store, initValue)) : loadableWithValue$3(unwrap(initValue));\n maybeFreezeValueOrPromise(initLoadable.contents);\n initState.atomValues.set(key, initLoadable); // If there is a pending transaction, then also mutate the next state tree.\n // This could happen if the atom was first initialized in an action that\n // also updated some other atom's state.\n\n (_store$getState$nextT5 = store.getState().nextTree) === null || _store$getState$nextT5 === void 0 ? void 0 : _store$getState$nextT5.atomValues.set(key, initLoadable);\n }\n }\n\n return cleanupAtom;\n }\n\n function peekAtom(_store, state) {\n var _ref, _state$atomValues$get3;\n\n return (_ref = (_state$atomValues$get3 = state.atomValues.get(key)) !== null && _state$atomValues$get3 !== void 0 ? _state$atomValues$get3 : cachedAnswerForUnvalidatedValue) !== null && _ref !== void 0 ? _ref : defaultLoadable;\n }\n\n function getAtom(_store, state) {\n if (state.atomValues.has(key)) {\n // Atom value is stored in state:\n return Recoil_nullthrows(state.atomValues.get(key));\n } else if (state.nonvalidatedAtoms.has(key)) {\n // Atom value is stored but needs validation before use.\n // We might have already validated it and have a cached validated value:\n if (cachedAnswerForUnvalidatedValue != null) {\n return cachedAnswerForUnvalidatedValue;\n }\n\n if (persistence == null) {\n Recoil_expectationViolation(`Tried to restore a persisted value for atom ${key} but it has no persistence settings.`);\n return defaultLoadable;\n }\n\n const nonvalidatedValue = state.nonvalidatedAtoms.get(key);\n const validatorResult = persistence.validator(nonvalidatedValue, DEFAULT_VALUE$7);\n const validatedValueLoadable = validatorResult instanceof DefaultValue$2 ? defaultLoadable : loadableWithValue$3(validatorResult);\n cachedAnswerForUnvalidatedValue = validatedValueLoadable;\n return cachedAnswerForUnvalidatedValue;\n } else {\n return defaultLoadable;\n }\n }\n\n function invalidateAtom() {\n cachedAnswerForUnvalidatedValue = undefined;\n }\n\n function setAtom(_store, state, newValue) {\n // Bail out if we're being set to the existing value, or if we're being\n // reset but have no stored value (validated or unvalidated) to reset from:\n if (state.atomValues.has(key)) {\n const existing = Recoil_nullthrows(state.atomValues.get(key));\n\n if (existing.state === 'hasValue' && newValue === existing.contents) {\n return new Map();\n }\n } else if (!state.nonvalidatedAtoms.has(key) && newValue instanceof DefaultValue$2) {\n return new Map();\n }\n\n maybeFreezeValueOrPromise(newValue);\n cachedAnswerForUnvalidatedValue = undefined; // can be released now if it was previously in use\n\n return new Map().set(key, loadableWithValue$3(newValue));\n }\n\n function shouldDeleteConfigOnReleaseAtom() {\n return getConfigDeletionHandler$2(key) !== undefined && liveStoresCount <= 0;\n }\n\n const node = registerNode$2({\n key,\n nodeType: 'atom',\n peek: peekAtom,\n get: getAtom,\n set: setAtom,\n init: initAtom,\n invalidate: invalidateAtom,\n shouldDeleteConfigOnRelease: shouldDeleteConfigOnReleaseAtom,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n persistence_UNSTABLE: options.persistence_UNSTABLE ? {\n type: options.persistence_UNSTABLE.type,\n backButton: options.persistence_UNSTABLE.backButton\n } : undefined,\n shouldRestoreFromSnapshots: true,\n retainedBy\n });\n return node;\n} // prettier-ignore\n\n\nfunction atom(options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options.key !== 'string') {\n throw Recoil_err('A key option with a unique string value must be provided when creating an atom.');\n }\n }\n\n const { // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n ...restOptions\n } = options;\n const optionsDefault = 'default' in options ? // $FlowIssue[incompatible-type] No way to refine in Flow that property is not defined\n options.default : new Promise(() => {});\n\n if (isRecoilValue$4(optionsDefault) // Continue to use atomWithFallback for promise defaults for scoped atoms\n // for now, since scoped atoms don't support async defaults\n // @fb-only: || (isPromise(optionsDefault) && scopeRules_APPEND_ONLY_READ_THE_DOCS)\n // @fb-only: || (isLoadable(optionsDefault) && scopeRules_APPEND_ONLY_READ_THE_DOCS)\n ) {\n return atomWithFallback({ ...restOptions,\n default: optionsDefault // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n\n }); // @fb-only: } else if (scopeRules_APPEND_ONLY_READ_THE_DOCS\n // @fb-only: && !isPromise(optionsDefault)\n // @fb-only: && !isLoadable(optionsDefault)\n // @fb-only: ) {\n // @fb-only: return scopedAtom({\n // @fb-only: ...restOptions,\n // @fb-only: default: unwrap(optionsDefault),\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: });\n } else {\n return baseAtom({ ...restOptions,\n default: optionsDefault\n });\n }\n}\n\nfunction atomWithFallback(options) {\n const base = atom({ ...options,\n default: DEFAULT_VALUE$7,\n persistence_UNSTABLE: options.persistence_UNSTABLE === undefined ? undefined : { ...options.persistence_UNSTABLE,\n validator: storedValue => storedValue instanceof DefaultValue$2 ? storedValue : Recoil_nullthrows(options.persistence_UNSTABLE).validator(storedValue, DEFAULT_VALUE$7)\n },\n // TODO Hack for now.\n effects: options.effects,\n // flowlint-line unclear-type: off\n effects_UNSTABLE: options.effects_UNSTABLE // flowlint-line unclear-type: off\n\n }); // $FlowFixMe[incompatible-call]\n\n const sel = Recoil_selector({\n key: `${options.key}__withFallback`,\n get: ({\n get\n }) => {\n const baseValue = get(base);\n return baseValue instanceof DefaultValue$2 ? options.default : baseValue;\n },\n // $FlowFixMe[incompatible-call]\n set: ({\n set\n }, newValue) => set(base, newValue),\n // This selector does not need to cache as it is a wrapper selector\n // and the selector within the wrapper selector will have a cache\n // option by default\n cachePolicy_UNSTABLE: {\n eviction: 'most-recent'\n },\n dangerouslyAllowMutability: options.dangerouslyAllowMutability\n });\n setConfigDeletionHandler$1(sel.key, getConfigDeletionHandler$2(options.key));\n return sel;\n} // $FlowFixMe[missing-local-annot]\n\n\natom.value = value => new WrappedValue$2(value);\n\nvar Recoil_atom = atom;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @oncall recoil\n */\n\nclass MapCache {\n constructor(options) {\n var _options$mapKey;\n\n _defineProperty(this, \"_map\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n this._map = new Map();\n this._keyMapper = (_options$mapKey = options === null || options === void 0 ? void 0 : options.mapKey) !== null && _options$mapKey !== void 0 ? _options$mapKey : v => v;\n }\n\n size() {\n return this._map.size;\n }\n\n has(key) {\n return this._map.has(this._keyMapper(key));\n }\n\n get(key) {\n return this._map.get(this._keyMapper(key));\n }\n\n set(key, val) {\n this._map.set(this._keyMapper(key), val);\n }\n\n delete(key) {\n this._map.delete(this._keyMapper(key));\n }\n\n clear() {\n this._map.clear();\n }\n\n}\n\nvar Recoil_MapCache = {\n MapCache\n};\n\nvar Recoil_MapCache_1 = Recoil_MapCache.MapCache;\n\nvar Recoil_MapCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MapCache: Recoil_MapCache_1\n});\n\nconst {\n LRUCache: LRUCache$2\n} = Recoil_LRUCache$1;\n\nconst {\n MapCache: MapCache$1\n} = Recoil_MapCache$1;\n\n\n\n\n\n\n\nconst defaultPolicy$1 = {\n equality: 'reference',\n eviction: 'none',\n maxSize: Infinity\n};\n\nfunction cacheFromPolicy({\n equality = defaultPolicy$1.equality,\n eviction = defaultPolicy$1.eviction,\n maxSize = defaultPolicy$1.maxSize\n} = defaultPolicy$1) {\n const valueMapper = getValueMapper$1(equality);\n const cache = getCache(eviction, maxSize, valueMapper);\n return cache;\n}\n\nfunction getValueMapper$1(equality) {\n switch (equality) {\n case 'reference':\n return val => val;\n\n case 'value':\n return val => Recoil_stableStringify(val);\n }\n\n throw Recoil_err(`Unrecognized equality policy ${equality}`);\n}\n\nfunction getCache(eviction, maxSize, mapKey) {\n switch (eviction) {\n case 'keep-all':\n return new MapCache$1({\n mapKey\n });\n\n case 'lru':\n return new LRUCache$2({\n mapKey,\n maxSize: Recoil_nullthrows(maxSize)\n });\n\n case 'most-recent':\n return new LRUCache$2({\n mapKey,\n maxSize: 1\n });\n }\n\n throw Recoil_err(`Unrecognized eviction policy ${eviction}`);\n}\n\nvar Recoil_cacheFromPolicy = cacheFromPolicy;\n\n// @fb-only: import type {ScopeRules} from 'Recoil_ScopedAtom';\n\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$2\n} = Recoil_Node;\n\n\n\n\n\n// Process scopeRules to handle any entries which are functions taking parameters\n// prettier-ignore\n// @fb-only: function mapScopeRules

(\n// @fb-only: scopeRules?: ParameterizedScopeRules

,\n// @fb-only: param: P,\n// @fb-only: ): ScopeRules | void {\n// @fb-only: return scopeRules?.map(rule =>\n// @fb-only: Array.isArray(rule)\n// @fb-only: ? rule.map(entry => (typeof entry === 'function' ? entry(param) : entry))\n// @fb-only: : rule,\n// @fb-only: );\n// @fb-only: }\n\n/*\nA function which returns an atom based on the input parameter.\n\nEach unique parameter returns a unique atom. E.g.,\n\n const f = atomFamily(...);\n f({a: 1}) => an atom\n f({a: 2}) => a different atom\n\nThis allows components to persist local, private state using atoms. Each\ninstance of the component may have a different key, which it uses as the\nparameter for a family of atoms; in this way, each component will have\nits own atom not shared by other instances. These state keys may be composed\ninto children's state keys as well.\n*/\nfunction atomFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const atomCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n }); // Simple atomFamily implementation to cache individual atoms based\n // on the parameter value equality.\n\n return params => {\n var _stableStringify, _options$effects;\n\n const cachedAtom = atomCache.get(params);\n\n if (cachedAtom != null) {\n return cachedAtom;\n }\n\n const {\n cachePolicyForParams_UNSTABLE,\n ...atomOptions\n } = options;\n const optionsDefault = 'default' in options ? // $FlowIssue[incompatible-type] No way to refine in Flow that property is not defined\n options.default : new Promise(() => {});\n const newAtom = Recoil_atom({ ...atomOptions,\n key: `${options.key}__${(_stableStringify = Recoil_stableStringify(params)) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}`,\n default: typeof optionsDefault === 'function' ? // The default was parameterized\n // Flow doesn't know that T isn't a function, so we need to case to any\n // $FlowIssue[incompatible-use]\n optionsDefault(params) : // Default may be a static value, promise, or RecoilValue\n optionsDefault,\n retainedBy_UNSTABLE: typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE,\n effects: typeof options.effects === 'function' ? options.effects(params) : typeof options.effects_UNSTABLE === 'function' ? options.effects_UNSTABLE(params) : (_options$effects = options.effects) !== null && _options$effects !== void 0 ? _options$effects : options.effects_UNSTABLE // prettier-ignore\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS: mapScopeRules(\n // @fb-only: options.scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: params,\n // @fb-only: ),\n\n });\n atomCache.set(params, newAtom);\n setConfigDeletionHandler$2(newAtom.key, () => {\n atomCache.delete(params);\n });\n return newAtom;\n };\n}\n\nvar Recoil_atomFamily = atomFamily;\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$3\n} = Recoil_Node;\n\n\n\n\n\n // Keep in mind the parameter needs to be serializable as a cahche key\n// using Recoil_stableStringify\n\n\n// Add a unique index to each selector in case the cache implementation allows\n// duplicate keys based on equivalent stringified parameters\nlet nextIndex = 0;\n/* eslint-disable no-redeclare */\n\n// Return a function that returns members of a family of selectors of the same type\n// E.g.,\n//\n// const s = selectorFamily(...);\n// s({a: 1}) => a selector\n// s({a: 2}) => a different selector\n//\n// By default, the selectors are distinguished by distinct values of the\n// parameter based on value equality, not reference equality. This allows using\n// object literals or other equivalent objects at callsites to not create\n// duplicate cache entries. This behavior may be overridden with the\n// cacheImplementationForParams option.\nfunction selectorFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const selectorCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n });\n return params => {\n var _stableStringify;\n\n // Throw an error with selector key so that it is clear which\n // selector is causing an error\n let cachedSelector;\n\n try {\n cachedSelector = selectorCache.get(params);\n } catch (error) {\n throw Recoil_err(`Problem with cache lookup for selector ${options.key}: ${error.message}`);\n }\n\n if (cachedSelector != null) {\n return cachedSelector;\n }\n\n const myKey = `${options.key}__selectorFamily/${(_stableStringify = Recoil_stableStringify(params, {\n // It is possible to use functions in parameters if the user uses\n // a cache with reference equality thanks to the incrementing index.\n allowFunctions: true\n })) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}/${nextIndex++}`; // Append index in case values serialize to the same key string\n\n const myGet = callbacks => options.get(params)(callbacks);\n\n const myCachePolicy = options.cachePolicy_UNSTABLE;\n const retainedBy = typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE;\n let newSelector;\n\n if (options.set != null) {\n const set = options.set;\n\n const mySet = (callbacks, newValue) => set(params)(callbacks, newValue);\n\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n set: mySet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n } else {\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n }\n\n selectorCache.set(params, newSelector);\n setConfigDeletionHandler$3(newSelector.key, () => {\n selectorCache.delete(params);\n });\n return newSelector;\n };\n}\n/* eslint-enable no-redeclare */\n\n\nvar Recoil_selectorFamily = selectorFamily;\n\n// flowlint-next-line unclear-type:off\n\n\nconst constantSelector = Recoil_selectorFamily({\n key: '__constant',\n get: constant => () => constant,\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always produces the\n// same constant value. It may be called multiple times with the\n// same value, based on reference equality, and will provide the\n// same selector.\n\nfunction constSelector(constant) {\n return constantSelector(constant);\n}\n\nvar Recoil_constSelector = constSelector;\n\n// flowlint-next-line unclear-type:off\n\n\nconst throwingSelector = Recoil_selectorFamily({\n key: '__error',\n get: message => () => {\n throw Recoil_err(message);\n },\n // TODO Why?\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always throws an error\n// with the provided message.\n\nfunction errorSelector(message) {\n return throwingSelector(message);\n}\n\nvar Recoil_errorSelector = errorSelector;\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * Wraps another recoil value and prevents writing to it.\n *\n * \n * @format\n * @oncall recoil\n */\n\nfunction readOnlySelector(atom) {\n // flowlint-next-line unclear-type: off\n return atom;\n}\n\nvar Recoil_readOnlySelector = readOnlySelector;\n\nconst {\n loadableWithError: loadableWithError$3,\n loadableWithPromise: loadableWithPromise$3,\n loadableWithValue: loadableWithValue$4\n} = Recoil_Loadable$1;\n\n\n\n\n\n /////////////////\n// TRUTH TABLE\n/////////////////\n// Dependencies waitForNone waitForAny waitForAll waitForAllSettled\n// [loading, loading] [Promise, Promise] Promise Promise Promise\n// [value, loading] [value, Promise] [value, Promise] Promise Promise\n// [value, value] [value, value] [value, value] [value, value] [value, value]\n//\n// [error, loading] [Error, Promise] [Error, Promise] Error Promise\n// [error, error] [Error, Error] [Error, Error] Error [error, error]\n// [value, error] [value, Error] [value, Error] Error [value, error]\n// Issue parallel requests for all dependencies and return the current\n// status if they have results, have some error, or are still pending.\n\n\nfunction concurrentRequests(getRecoilValue, deps) {\n const results = Array(deps.length).fill(undefined);\n const exceptions = Array(deps.length).fill(undefined);\n\n for (const [i, dep] of deps.entries()) {\n try {\n results[i] = getRecoilValue(dep);\n } catch (e) {\n // exceptions can either be Promises of pending results or real errors\n exceptions[i] = e;\n }\n }\n\n return [results, exceptions];\n}\n\nfunction isError(exp) {\n return exp != null && !Recoil_isPromise(exp);\n}\n\nfunction unwrapDependencies(dependencies) {\n return Array.isArray(dependencies) ? dependencies : Object.getOwnPropertyNames(dependencies).map(key => dependencies[key]);\n}\n\nfunction wrapResults(dependencies,\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nresults) {\n return Array.isArray(dependencies) ? results : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n Object.getOwnPropertyNames(dependencies).reduce((out, key, idx) => ({ ...out,\n [key]: results[idx]\n }), {});\n}\n\nfunction wrapLoadables(dependencies, results, exceptions) {\n const output = exceptions.map((exception, idx) => exception == null ? loadableWithValue$4(results[idx]) : Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n return wrapResults(dependencies, output);\n}\n\nfunction combineAsyncResultsWithSyncResults(syncResults, asyncResults) {\n return asyncResults.map((result, idx) =>\n /**\n * it's important we use === undefined as opposed to == null, because the\n * resolved value of the async promise could be `null`, in which case we\n * don't want to use syncResults[idx], which would be undefined. If async\n * promise resolves to `undefined`, that's ok because `syncResults[idx]`\n * will also be `undefined`. That's a little hacky, but it works.\n */\n result === undefined ? syncResults[idx] : result);\n} // Selector that requests all dependencies in parallel and immediately returns\n// current results without waiting.\n\n\nconst waitForNone = Recoil_selectorFamily({\n key: '__waitForNone',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // Always return the current status of the results; never block.\n\n return wrapLoadables(dependencies, results, exceptions);\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for at least\n// one to be available before returning results. It will only error if all\n// dependencies have errors.\n\nconst waitForAny = Recoil_selectorFamily({\n key: '__waitForAny',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If any results are available, value or error, return the current status\n\n if (exceptions.some(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Otherwise, return a promise that will resolve when the next result is\n // available, whichever one happens to be next. But, if all pending\n // dependencies end up with errors, then reject the promise.\n\n\n return new Promise(resolve => {\n for (const [i, exp] of exceptions.entries()) {\n if (Recoil_isPromise(exp)) {\n exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n resolve(wrapLoadables(dependencies, results, exceptions));\n }).catch(error => {\n exceptions[i] = error;\n resolve(wrapLoadables(dependencies, results, exceptions));\n });\n }\n }\n });\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for all to be\n// available before returning a value. It will error if any dependencies error.\n\nconst waitForAll = Recoil_selectorFamily({\n key: '__waitForAll',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => exp == null)) {\n return wrapResults(dependencies, results);\n } // If we have any errors, throw the first error\n\n\n const error = exceptions.find(isError);\n\n if (error != null) {\n throw error;\n } // Otherwise, return a promise that will resolve when all results are available\n\n\n return Promise.all(exceptions).then(exceptionResults => wrapResults(dependencies, combineAsyncResultsWithSyncResults(results, exceptionResults)));\n },\n dangerouslyAllowMutability: true\n});\nconst waitForAllSettled = Recoil_selectorFamily({\n key: '__waitForAllSettled',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Wait for all results to settle\n\n\n return Promise.all(exceptions.map((exp, i) => Recoil_isPromise(exp) ? exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n }).catch(error => {\n results[i] = undefined;\n exceptions[i] = error;\n }) : null)) // Then wrap them as loadables\n .then(() => wrapLoadables(dependencies, results, exceptions));\n },\n dangerouslyAllowMutability: true\n});\nconst noWait = Recoil_selectorFamily({\n key: '__noWait',\n get: dependency => ({\n get\n }) => {\n try {\n return Recoil_selector.value(loadableWithValue$4(get(dependency)));\n } catch (exception) {\n return Recoil_selector.value(Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n }\n },\n dangerouslyAllowMutability: true\n});\nvar Recoil_WaitFor = {\n waitForNone,\n waitForAny,\n waitForAll,\n waitForAllSettled,\n noWait\n};\n\nconst {\n RecoilLoadable\n} = Recoil_Loadable$1;\n\nconst {\n DefaultValue: DefaultValue$3\n} = Recoil_Node;\n\nconst {\n RecoilRoot: RecoilRoot$2,\n useRecoilStoreID: useRecoilStoreID$1\n} = Recoil_RecoilRoot;\n\nconst {\n isRecoilValue: isRecoilValue$5\n} = Recoil_RecoilValue$1;\n\nconst {\n retentionZone: retentionZone$1\n} = Recoil_RetentionZone;\n\nconst {\n freshSnapshot: freshSnapshot$2\n} = Recoil_Snapshot$1;\n\nconst {\n useRecoilState: useRecoilState$1,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE: useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useRecoilValue: useRecoilValue$1,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE: useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE: useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1,\n useResetRecoilState: useResetRecoilState$1,\n useSetRecoilState: useSetRecoilState$1\n} = Recoil_Hooks;\n\nconst {\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver: useRecoilTransactionObserver$1\n} = Recoil_SnapshotHooks;\n\n\n\n\n\nconst {\n useRecoilCallback: useRecoilCallback$1\n} = Recoil_useRecoilCallback;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n noWait: noWait$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n waitForAny: waitForAny$1,\n waitForNone: waitForNone$1\n} = Recoil_WaitFor;\n\n\n\nvar Recoil_index = {\n // Types\n DefaultValue: DefaultValue$3,\n isRecoilValue: isRecoilValue$5,\n RecoilLoadable,\n // Global Recoil environment settiongs\n RecoilEnv: Recoil_RecoilEnv,\n // Recoil Root\n RecoilRoot: RecoilRoot$2,\n useRecoilStoreID: useRecoilStoreID$1,\n useRecoilBridgeAcrossReactRoots_UNSTABLE: Recoil_useRecoilBridgeAcrossReactRoots,\n // Atoms/Selectors\n atom: Recoil_atom,\n selector: Recoil_selector,\n // Convenience Atoms/Selectors\n atomFamily: Recoil_atomFamily,\n selectorFamily: Recoil_selectorFamily,\n constSelector: Recoil_constSelector,\n errorSelector: Recoil_errorSelector,\n readOnlySelector: Recoil_readOnlySelector,\n // Concurrency Helpers for Atoms/Selectors\n noWait: noWait$1,\n waitForNone: waitForNone$1,\n waitForAny: waitForAny$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n // Hooks for Atoms/Selectors\n useRecoilValue: useRecoilValue$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilState: useRecoilState$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useSetRecoilState: useSetRecoilState$1,\n useResetRecoilState: useResetRecoilState$1,\n useGetRecoilValueInfo_UNSTABLE: Recoil_useGetRecoilValueInfo,\n useRecoilRefresher_UNSTABLE: Recoil_useRecoilRefresher,\n useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE: useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilValue_TRANSITION_SUPPORT_UNSTABLE: useRecoilValue_TRANSITION_SUPPORT_UNSTABLE$1,\n useRecoilState_TRANSITION_SUPPORT_UNSTABLE: useRecoilState_TRANSITION_SUPPORT_UNSTABLE$1,\n // Hooks for complex operations\n useRecoilCallback: useRecoilCallback$1,\n useRecoilTransaction_UNSTABLE: Recoil_useRecoilTransaction,\n // Snapshots\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver_UNSTABLE: useRecoilTransactionObserver$1,\n snapshot_UNSTABLE: freshSnapshot$2,\n // Memory Management\n useRetain: Recoil_useRetain,\n retentionZone: retentionZone$1\n};\nvar Recoil_index_1 = Recoil_index.DefaultValue;\nvar Recoil_index_2 = Recoil_index.isRecoilValue;\nvar Recoil_index_3 = Recoil_index.RecoilLoadable;\nvar Recoil_index_4 = Recoil_index.RecoilEnv;\nvar Recoil_index_5 = Recoil_index.RecoilRoot;\nvar Recoil_index_6 = Recoil_index.useRecoilStoreID;\nvar Recoil_index_7 = Recoil_index.useRecoilBridgeAcrossReactRoots_UNSTABLE;\nvar Recoil_index_8 = Recoil_index.atom;\nvar Recoil_index_9 = Recoil_index.selector;\nvar Recoil_index_10 = Recoil_index.atomFamily;\nvar Recoil_index_11 = Recoil_index.selectorFamily;\nvar Recoil_index_12 = Recoil_index.constSelector;\nvar Recoil_index_13 = Recoil_index.errorSelector;\nvar Recoil_index_14 = Recoil_index.readOnlySelector;\nvar Recoil_index_15 = Recoil_index.noWait;\nvar Recoil_index_16 = Recoil_index.waitForNone;\nvar Recoil_index_17 = Recoil_index.waitForAny;\nvar Recoil_index_18 = Recoil_index.waitForAll;\nvar Recoil_index_19 = Recoil_index.waitForAllSettled;\nvar Recoil_index_20 = Recoil_index.useRecoilValue;\nvar Recoil_index_21 = Recoil_index.useRecoilValueLoadable;\nvar Recoil_index_22 = Recoil_index.useRecoilState;\nvar Recoil_index_23 = Recoil_index.useRecoilStateLoadable;\nvar Recoil_index_24 = Recoil_index.useSetRecoilState;\nvar Recoil_index_25 = Recoil_index.useResetRecoilState;\nvar Recoil_index_26 = Recoil_index.useGetRecoilValueInfo_UNSTABLE;\nvar Recoil_index_27 = Recoil_index.useRecoilRefresher_UNSTABLE;\nvar Recoil_index_28 = Recoil_index.useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_29 = Recoil_index.useRecoilValue_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_30 = Recoil_index.useRecoilState_TRANSITION_SUPPORT_UNSTABLE;\nvar Recoil_index_31 = Recoil_index.useRecoilCallback;\nvar Recoil_index_32 = Recoil_index.useRecoilTransaction_UNSTABLE;\nvar Recoil_index_33 = Recoil_index.useGotoRecoilSnapshot;\nvar Recoil_index_34 = Recoil_index.useRecoilSnapshot;\nvar Recoil_index_35 = Recoil_index.useRecoilTransactionObserver_UNSTABLE;\nvar Recoil_index_36 = Recoil_index.snapshot_UNSTABLE;\nvar Recoil_index_37 = Recoil_index.useRetain;\nvar Recoil_index_38 = Recoil_index.retentionZone;\n\nexport default Recoil_index;\nexport { Recoil_index_1 as DefaultValue, Recoil_index_4 as RecoilEnv, Recoil_index_3 as RecoilLoadable, Recoil_index_5 as RecoilRoot, Recoil_index_8 as atom, Recoil_index_10 as atomFamily, Recoil_index_12 as constSelector, Recoil_index_13 as errorSelector, Recoil_index_2 as isRecoilValue, Recoil_index_15 as noWait, Recoil_index_14 as readOnlySelector, Recoil_index_38 as retentionZone, Recoil_index_9 as selector, Recoil_index_11 as selectorFamily, Recoil_index_36 as snapshot_UNSTABLE, Recoil_index_26 as useGetRecoilValueInfo_UNSTABLE, Recoil_index_33 as useGotoRecoilSnapshot, Recoil_index_7 as useRecoilBridgeAcrossReactRoots_UNSTABLE, Recoil_index_31 as useRecoilCallback, Recoil_index_27 as useRecoilRefresher_UNSTABLE, Recoil_index_34 as useRecoilSnapshot, Recoil_index_22 as useRecoilState, Recoil_index_23 as useRecoilStateLoadable, Recoil_index_30 as useRecoilState_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_6 as useRecoilStoreID, Recoil_index_35 as useRecoilTransactionObserver_UNSTABLE, Recoil_index_32 as useRecoilTransaction_UNSTABLE, Recoil_index_20 as useRecoilValue, Recoil_index_21 as useRecoilValueLoadable, Recoil_index_28 as useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_29 as useRecoilValue_TRANSITION_SUPPORT_UNSTABLE, Recoil_index_25 as useResetRecoilState, Recoil_index_37 as useRetain, Recoil_index_24 as useSetRecoilState, Recoil_index_18 as waitForAll, Recoil_index_19 as waitForAllSettled, Recoil_index_17 as waitForAny, Recoil_index_16 as waitForNone };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export interface Logger {\n disable(): void;\n enable(logLevel: LogLevel): void;\n log(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n debug(...args: any[]): void;\n}\n\nexport enum LogLevel {\n None = 0,\n Error = 1,\n Warn = 2,\n Verbose = 3,\n Debug = 4,\n}\n\nexport interface LogConfig {\n logger: Logger;\n logLevel: LogLevel;\n}\n\ntype TimeKey = 'start' | 'end';\n\nexport interface DebugContext {\n type: string;\n name: string;\n args: string[] | string;\n stacktrace?: string[] | string;\n time?: { [key in TimeKey]?: string };\n states?: { [key: string]: any };\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { LogLevel, LogConfig, DebugContext } from '@amplitude/analytics-types';\nimport { AmplitudeCore } from '../core-client';\n\nexport const getStacktrace = (ignoreDepth = 0): string[] => {\n const trace = new Error().stack || '';\n return trace\n .split('\\n')\n .slice(2 + ignoreDepth)\n .map((text) => text.trim());\n};\n\n// This hook makes sure we always get the latest logger and logLevel.\nexport const getClientLogConfig = (client: AmplitudeCore) => (): LogConfig => {\n const { loggerProvider: logger, logLevel } = { ...client.config };\n return {\n logger,\n logLevel,\n };\n};\n\n// This is a convenient function to get the attribute from object with string path, similar to lodash '#get'.\nexport const getValueByStringPath = (obj: any, path: string): any => {\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n for (const attr of path.split('.')) {\n if (attr in obj) {\n obj = obj[attr];\n } else {\n return;\n }\n }\n return obj;\n};\n\nexport const getClientStates = (client: AmplitudeCore, paths: Array) => (): { [key: string]: any } => {\n const res: { [key: string]: any } = {};\n for (const path of paths) {\n res[path] = getValueByStringPath(client, path);\n }\n return res;\n};\n\nexport const debugWrapper =\n , R>(\n fn: (...args: T) => R,\n fnName: string,\n getLogConfig: () => LogConfig,\n getStates?: () => { [key: string]: any },\n fnContext: any = null,\n ) =>\n (...args: T): R => {\n const { logger, logLevel } = getLogConfig();\n // return early if possible to reduce overhead\n if ((logLevel && logLevel < LogLevel.Debug) || !logLevel || !logger) {\n return fn.apply(fnContext, args);\n }\n const debugContext: DebugContext = {\n type: 'invoke public method',\n name: fnName,\n args,\n stacktrace: getStacktrace(1),\n time: {\n start: new Date().toISOString(),\n },\n states: {},\n };\n if (getStates && debugContext.states) {\n debugContext.states.before = getStates();\n }\n const result = fn.apply(fnContext, args);\n if (result && (result as any).promise) {\n // if result is a promise, add the callback\n (result as any).promise.then(() => {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n });\n } else {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n }\n return result;\n };\n","/** The status of an event. */\nexport enum Status {\n /** The status could not be determined. */\n Unknown = 'unknown',\n /** The event was skipped due to configuration or callbacks. */\n Skipped = 'skipped',\n /** The event was sent successfully. */\n Success = 'success',\n /** A user or device in the payload is currently rate limited and should try again later. */\n RateLimit = 'rate_limit',\n /** The sent payload was too large to be processed. */\n PayloadTooLarge = 'payload_too_large',\n /** The event could not be processed. */\n Invalid = 'invalid',\n /** A server-side error ocurred during submission. */\n Failed = 'failed',\n /** a server or client side error occuring when a request takes too long and is cancelled */\n Timeout = 'Timeout',\n /** NodeJS runtime environment error.. E.g. disconnected from network */\n SystemError = 'SystemError',\n}\n","import { AmplitudeReturn } from '@amplitude/analytics-types';\n\nexport const returnWrapper: {\n (): AmplitudeReturn;\n (awaitable: Promise): AmplitudeReturn;\n} = (awaitable?: Promise) => ({\n promise: awaitable || Promise.resolve(),\n});\n","export const SUCCESS_MESSAGE = 'Event tracked successfully';\nexport const UNEXPECTED_ERROR_MESSAGE = 'Unexpected error occurred';\nexport const MAX_RETRIES_EXCEEDED_MESSAGE = 'Event rejected due to exceeded retry count';\nexport const OPT_OUT_MESSAGE = 'Event skipped due to optOut config';\nexport const MISSING_API_KEY_MESSAGE = 'Event rejected due to missing API key';\nexport const INVALID_API_KEY = 'Invalid API key';\nexport const CLIENT_NOT_INITIALIZED = 'Client not initialized';\n","export const UNSET_VALUE = '-';\nexport const AMPLITUDE_PREFIX = 'AMP';\nexport const STORAGE_PREFIX = `${AMPLITUDE_PREFIX}_unsent`;\nexport const AMPLITUDE_SERVER_URL = 'https://api2.amplitude.com/2/httpapi';\nexport const EU_AMPLITUDE_SERVER_URL = 'https://api.eu.amplitude.com/2/httpapi';\nexport const AMPLITUDE_BATCH_SERVER_URL = 'https://api2.amplitude.com/batch';\nexport const EU_AMPLITUDE_BATCH_SERVER_URL = 'https://api.eu.amplitude.com/batch';\n","import { Event, Result, Status } from '@amplitude/analytics-types';\n\nexport const buildResult = (event: Event, code = 0, message: string = Status.Unknown): Result => {\n return { event, code, message };\n};\n","import { LogLevel, Logger as ILogger } from '@amplitude/analytics-types';\n\nconst PREFIX = 'Amplitude Logger ';\n\nexport class Logger implements ILogger {\n logLevel: LogLevel;\n\n constructor() {\n this.logLevel = LogLevel.None;\n }\n\n disable(): void {\n this.logLevel = LogLevel.None;\n }\n\n enable(logLevel: LogLevel = LogLevel.Warn): void {\n this.logLevel = logLevel;\n }\n\n log(...args: any[]): void {\n if (this.logLevel < LogLevel.Verbose) {\n return;\n }\n console.log(`${PREFIX}[Log]: ${args.join(' ')}`);\n }\n\n warn(...args: any[]): void {\n if (this.logLevel < LogLevel.Warn) {\n return;\n }\n console.warn(`${PREFIX}[Warn]: ${args.join(' ')}`);\n }\n\n error(...args: any[]): void {\n if (this.logLevel < LogLevel.Error) {\n return;\n }\n console.error(`${PREFIX}[Error]: ${args.join(' ')}`);\n }\n\n debug(...args: any[]): void {\n if (this.logLevel < LogLevel.Debug) {\n return;\n }\n // console.debug output is hidden by default in chrome\n console.log(`${PREFIX}[Debug]: ${args.join(' ')}`);\n }\n}\n","import {\n Event,\n Config as IConfig,\n Logger as ILogger,\n LogLevel,\n Storage,\n Transport,\n Plan,\n IngestionMetadata,\n Options,\n ServerZoneType,\n OfflineDisabled,\n} from '@amplitude/analytics-types';\nimport {\n AMPLITUDE_SERVER_URL,\n AMPLITUDE_BATCH_SERVER_URL,\n EU_AMPLITUDE_SERVER_URL,\n EU_AMPLITUDE_BATCH_SERVER_URL,\n} from './constants';\n\nimport { Logger } from './logger';\n\nexport const getDefaultConfig = () => ({\n flushMaxRetries: 12,\n flushQueueSize: 200,\n flushIntervalMillis: 10000,\n instanceName: '$default_instance',\n logLevel: LogLevel.Warn,\n loggerProvider: new Logger(),\n offline: false,\n optOut: false,\n serverUrl: AMPLITUDE_SERVER_URL,\n serverZone: 'US' as ServerZoneType,\n useBatch: false,\n});\n\nexport class Config implements IConfig {\n apiKey: string;\n flushIntervalMillis: number;\n flushMaxRetries: number;\n flushQueueSize: number;\n instanceName?: string;\n loggerProvider: ILogger;\n logLevel: LogLevel;\n minIdLength?: number;\n offline?: boolean | typeof OfflineDisabled;\n plan?: Plan;\n ingestionMetadata?: IngestionMetadata;\n serverUrl: string | undefined;\n serverZone?: ServerZoneType;\n transportProvider: Transport;\n storageProvider?: Storage;\n useBatch: boolean;\n\n protected _optOut = false;\n get optOut() {\n return this._optOut;\n }\n set optOut(optOut: boolean) {\n this._optOut = optOut;\n }\n\n constructor(options: Options) {\n const defaultConfig = getDefaultConfig();\n this.apiKey = options.apiKey;\n this.flushIntervalMillis = options.flushIntervalMillis ?? defaultConfig.flushIntervalMillis;\n this.flushMaxRetries = options.flushMaxRetries || defaultConfig.flushMaxRetries;\n this.flushQueueSize = options.flushQueueSize || defaultConfig.flushQueueSize;\n this.instanceName = options.instanceName || defaultConfig.instanceName;\n this.loggerProvider = options.loggerProvider || defaultConfig.loggerProvider;\n this.logLevel = options.logLevel ?? defaultConfig.logLevel;\n this.minIdLength = options.minIdLength;\n this.plan = options.plan;\n this.ingestionMetadata = options.ingestionMetadata;\n this.offline = options.offline !== undefined ? options.offline : defaultConfig.offline;\n this.optOut = options.optOut ?? defaultConfig.optOut;\n this.serverUrl = options.serverUrl;\n this.serverZone = options.serverZone || defaultConfig.serverZone;\n this.storageProvider = options.storageProvider;\n this.transportProvider = options.transportProvider;\n this.useBatch = options.useBatch ?? defaultConfig.useBatch;\n this.loggerProvider.enable(this.logLevel);\n\n const serverConfig = createServerConfig(options.serverUrl, options.serverZone, options.useBatch);\n this.serverZone = serverConfig.serverZone;\n this.serverUrl = serverConfig.serverUrl;\n }\n}\n\nexport const getServerUrl = (serverZone: ServerZoneType, useBatch: boolean) => {\n if (serverZone === 'EU') {\n return useBatch ? EU_AMPLITUDE_BATCH_SERVER_URL : EU_AMPLITUDE_SERVER_URL;\n }\n return useBatch ? AMPLITUDE_BATCH_SERVER_URL : AMPLITUDE_SERVER_URL;\n};\n\nexport const createServerConfig = (\n serverUrl = '',\n serverZone: ServerZoneType = getDefaultConfig().serverZone,\n useBatch: boolean = getDefaultConfig().useBatch,\n) => {\n if (serverUrl) {\n return { serverUrl, serverZone: undefined };\n }\n const _serverZone = ['US', 'EU'].includes(serverZone) ? serverZone : getDefaultConfig().serverZone;\n return {\n serverZone: _serverZone,\n serverUrl: getServerUrl(_serverZone, useBatch),\n };\n};\n","/**\n * Source: [jed's gist]{@link https://gist.github.com/982883}.\n * Returns a random v4 UUID of the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,\n * where each x is replaced with a random hexadecimal digit from 0 to f, and\n * y is replaced with a random hexadecimal digit from 8 to b.\n * Used to generate UUIDs for deviceIds.\n * @private\n */\nexport const UUID = function (a?: any): string {\n return a // if the placeholder was passed, return\n ? // a random number from 0 to 15\n (\n a ^ // unless b is 8,\n ((Math.random() * // in which case\n 16) >> // a random number from\n (a / 4))\n ) // 8 to 11\n .toString(16) // in hexadecimal\n : // or otherwise a concatenated string:\n (\n String(1e7) + // 10000000 +\n String(-1e3) + // -1000 +\n String(-4e3) + // -4000 +\n String(-8e3) + // -80000000 +\n String(-1e11)\n ) // -100000000000,\n .replace(\n // replacing\n /[018]/g, // zeroes, ones, and eights with\n UUID, // random hex digits\n );\n};\n","import {\n Config,\n DestinationContext as Context,\n DestinationPlugin,\n Event,\n InvalidResponse,\n PayloadTooLargeResponse,\n RateLimitResponse,\n Response,\n Result,\n Status,\n SuccessResponse,\n} from '@amplitude/analytics-types';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\nimport { UUID } from '../utils/uuid';\n\nfunction getErrorMessage(error: unknown) {\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nexport function getResponseBodyString(res: Response) {\n let responseBodyString = '';\n try {\n if ('body' in res) {\n responseBodyString = JSON.stringify(res.body, null, 2);\n }\n } catch {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n return responseBodyString;\n}\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = 'destination' as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n private scheduled: ReturnType | null = null;\n queue: Context[] = [];\n\n async setup(config: Config): Promise {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise {\n // Assign insert_id for dropping invalid event later\n if (!event.insert_id) {\n event.insert_id = UUID();\n }\n\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n void this.addToQueue(context);\n });\n }\n\n getTryableList(list: Context[]) {\n return list.filter((context) => {\n if (context.attempts < this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n }\n\n scheduleTryable(list: Context[], shouldAddToQueue = false) {\n list.forEach((context) => {\n // Only need to concat the queue for the first time\n if (shouldAddToQueue) {\n this.queue = this.queue.concat(context);\n }\n if (context.timeout === 0) {\n this.schedule(this.config.flushIntervalMillis);\n return;\n }\n\n setTimeout(() => {\n context.timeout = 0;\n this.schedule(0);\n }, context.timeout);\n });\n }\n\n addToQueue(...list: Context[]) {\n const tryable = this.getTryableList(list);\n this.scheduleTryable(tryable, true);\n this.saveEvents();\n }\n\n schedule(timeout: number) {\n if (this.scheduled || this.config.offline) {\n return;\n }\n\n this.scheduled = setTimeout(() => {\n void this.flush(true).then(() => {\n if (this.queue.length > 0) {\n this.schedule(timeout);\n }\n });\n }, timeout);\n }\n\n async flush(useRetry = false) {\n // Skip flush if offline\n if (this.config.offline) {\n this.config.loggerProvider.debug('Skipping flush while offline.');\n return;\n }\n\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n\n const batches = chunk(list, this.config.flushQueueSize);\n\n await Promise.all(batches.map((batch) => this.send(batch, useRetry)));\n\n this.scheduleTryable(later);\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n client_upload_time: new Date().toISOString(),\n };\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n if ('body' in res) {\n this.fulfillRequest(list, res.statusCode, `${res.status}: ${getResponseBodyString(res)}`);\n } else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return;\n }\n this.handleResponse(res, list);\n } catch (e) {\n const errorMessage = getErrorMessage(e);\n this.config.loggerProvider.error(errorMessage);\n this.handleResponse({ status: Status.Failed, statusCode: 0 }, list);\n }\n }\n\n handleResponse(res: Response, list: Context[]) {\n const { status } = res;\n\n switch (status) {\n case Status.Success: {\n this.handleSuccessResponse(res, list);\n break;\n }\n case Status.Invalid: {\n this.handleInvalidResponse(res, list);\n break;\n }\n case Status.PayloadTooLarge: {\n this.handlePayloadTooLargeResponse(res, list);\n break;\n }\n case Status.RateLimit: {\n this.handleRateLimitResponse(res, list);\n break;\n }\n default: {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(`{code: 0, error: \"Status '${status}' provided for ${list.length} events\"}`);\n this.handleOtherResponse(list);\n break;\n }\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n\n const tryable = this.getTryableList(retry);\n this.scheduleTryable(tryable);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n\n this.config.flushQueueSize /= 2;\n\n const tryable = this.getTryableList(list);\n this.scheduleTryable(tryable);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n\n const tryable = this.getTryableList(retry);\n this.scheduleTryable(tryable);\n }\n\n handleOtherResponse(list: Context[]) {\n const later = list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n });\n\n const tryable = this.getTryableList(later);\n this.scheduleTryable(tryable);\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.removeEvents(list);\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n *\n * Update the event storage based on the queue\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n\n const updatedEvents = this.queue.map((context) => context.event);\n void this.config.storageProvider.set(this.storageKey, updatedEvents);\n }\n\n /**\n * This is called on response comes back for a request\n */\n removeEvents(eventsToRemove: Context[]) {\n this.queue = this.queue.filter(\n (queuedContext) => !eventsToRemove.some((context) => context.event.insert_id === queuedContext.event.insert_id),\n );\n\n this.saveEvents();\n }\n}\n","import { BaseEvent } from './base-event';\n\nexport interface Identify {\n getUserProperties(): IdentifyUserProperties;\n set(property: string, value: ValidPropertyType): Identify;\n setOnce(property: string, value: ValidPropertyType): Identify;\n append(property: string, value: ValidPropertyType): Identify;\n prepend(property: string, value: ValidPropertyType): Identify;\n postInsert(property: string, value: ValidPropertyType): Identify;\n preInsert(property: string, value: ValidPropertyType): Identify;\n remove(property: string, value: ValidPropertyType): Identify;\n add(property: string, value: number): Identify;\n unset(property: string): Identify;\n clearAll(): Identify;\n}\n\nexport enum IdentifyOperation {\n // Base Operations to set values\n SET = '$set',\n SET_ONCE = '$setOnce',\n\n // Operations around modifying existing values\n ADD = '$add',\n APPEND = '$append',\n PREPEND = '$prepend',\n REMOVE = '$remove',\n\n // Operations around appending values *if* they aren't present\n PREINSERT = '$preInsert',\n POSTINSERT = '$postInsert',\n\n // Operations around removing properties/values\n UNSET = '$unset',\n CLEAR_ALL = '$clearAll',\n}\n\nexport type ValidPropertyType =\n | number\n | string\n | boolean\n | Array\n | { [key: string]: ValidPropertyType };\n\ninterface BaseOperationConfig {\n [key: string]: ValidPropertyType;\n}\n\nexport interface IdentifyUserProperties {\n // Add operations can only take numbers\n [IdentifyOperation.ADD]?: { [key: string]: number };\n\n // This reads the keys of the passed object, but the values are not used\n [IdentifyOperation.UNSET]?: BaseOperationConfig;\n // This option does not read the key as it unsets all user properties\n [IdentifyOperation.CLEAR_ALL]?: any;\n\n // These operations can take numbers, strings, or arrays of both.\n [IdentifyOperation.SET]?: BaseOperationConfig;\n [IdentifyOperation.SET_ONCE]?: BaseOperationConfig;\n [IdentifyOperation.APPEND]?: BaseOperationConfig;\n [IdentifyOperation.PREPEND]?: BaseOperationConfig;\n [IdentifyOperation.POSTINSERT]?: BaseOperationConfig;\n [IdentifyOperation.PREINSERT]?: BaseOperationConfig;\n [IdentifyOperation.REMOVE]?: BaseOperationConfig;\n}\n\nexport type UserProperties =\n | IdentifyUserProperties\n | {\n [key in Exclude]: any;\n };\n\nexport interface Revenue {\n getEventProperties(): RevenueEventProperties;\n setProductId(productId: string): Revenue;\n setQuantity(quantity: number): Revenue;\n setPrice(price: number): Revenue;\n setRevenueType(revenueType: string): Revenue;\n setEventProperties(properties: { [key: string]: any }): Revenue;\n setRevenue(revenue: number): Revenue;\n}\n\nexport enum RevenueProperty {\n REVENUE_PRODUCT_ID = '$productId',\n REVENUE_QUANTITY = '$quantity',\n REVENUE_PRICE = '$price',\n REVENUE_TYPE = '$revenueType',\n REVENUE = '$revenue',\n}\n\nexport interface RevenueEventProperties {\n [RevenueProperty.REVENUE_PRODUCT_ID]?: string;\n [RevenueProperty.REVENUE_QUANTITY]?: number;\n [RevenueProperty.REVENUE_PRICE]?: number;\n [RevenueProperty.REVENUE_TYPE]?: string;\n [RevenueProperty.REVENUE_TYPE]?: string;\n [RevenueProperty.REVENUE]?: number;\n}\n\n/**\n * Strings that have special meaning when used as an event's type\n * and have different specifications.\n */\nexport enum SpecialEventType {\n IDENTIFY = '$identify',\n GROUP_IDENTIFY = '$groupidentify',\n REVENUE = 'revenue_amount',\n}\n\nexport interface TrackEvent extends BaseEvent {\n event_type: Exclude;\n}\n\nexport interface IdentifyEvent extends BaseEvent {\n event_type: SpecialEventType.IDENTIFY;\n user_properties: UserProperties;\n}\n\nexport interface GroupIdentifyEvent extends BaseEvent {\n event_type: SpecialEventType.GROUP_IDENTIFY;\n group_properties: UserProperties;\n}\n\nexport interface RevenueEvent extends BaseEvent {\n event_type: SpecialEventType.REVENUE;\n event_properties:\n | RevenueEventProperties\n | {\n [key: string]: any;\n };\n}\n\nexport type Event = TrackEvent | IdentifyEvent | GroupIdentifyEvent | RevenueEvent;\n","// Creates an array of elements split into groups the length of size.\n// If array can't be split evenly, the final chunk will be the remaining elements.\n// Works similary as https://lodash.com/docs/4.17.15#chunk\n\nexport const chunk = (arr: T[], size: number) => {\n const chunkSize = Math.max(size, 1);\n return arr.reduce((chunks, element, index) => {\n const chunkIndex = Math.floor(index / chunkSize);\n if (!chunks[chunkIndex]) {\n chunks[chunkIndex] = [];\n }\n chunks[chunkIndex].push(element);\n return chunks;\n }, []);\n};\n","const MAX_PROPERTY_KEYS = 1000;\n\nexport const isValidObject = (properties: { [key: string]: any }): boolean => {\n if (Object.keys(properties).length > MAX_PROPERTY_KEYS) {\n return false;\n }\n for (const key in properties) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const value = properties[key];\n if (!isValidProperties(key, value)) return false;\n }\n return true;\n};\n\nexport const isValidProperties = (property: string, value: any): boolean => {\n if (typeof property !== 'string') return false;\n if (Array.isArray(value)) {\n let isValid = true;\n for (const valueElement of value) {\n if (Array.isArray(valueElement)) {\n return false;\n } else if (typeof valueElement === 'object') {\n isValid = isValid && isValidObject(valueElement as object);\n } else if (!['number', 'string'].includes(typeof valueElement)) {\n return false;\n }\n if (!isValid) {\n return false;\n }\n }\n } else if (value === null || value === undefined) {\n return false;\n } else if (typeof value === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return isValidObject(value);\n } else if (!['number', 'string', 'boolean'].includes(typeof value)) {\n return false;\n }\n return true;\n};\n","import {\n IdentifyOperation,\n IdentifyUserProperties,\n ValidPropertyType,\n Identify as IIdentify,\n} from '@amplitude/analytics-types';\nimport { UNSET_VALUE } from './constants';\nimport { isValidProperties } from './utils/valid-properties';\n\nexport class Identify implements IIdentify {\n protected readonly _propertySet: Set = new Set();\n protected _properties: IdentifyUserProperties = {};\n\n public getUserProperties(): IdentifyUserProperties {\n return { ...this._properties };\n }\n\n public set(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.SET, property, value);\n return this;\n }\n\n public setOnce(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.SET_ONCE, property, value);\n return this;\n }\n\n public append(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.APPEND, property, value);\n return this;\n }\n\n public prepend(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.PREPEND, property, value);\n return this;\n }\n\n public postInsert(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.POSTINSERT, property, value);\n return this;\n }\n\n public preInsert(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.PREINSERT, property, value);\n return this;\n }\n\n public remove(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.REMOVE, property, value);\n return this;\n }\n\n public add(property: string, value: number): Identify {\n this._safeSet(IdentifyOperation.ADD, property, value);\n return this;\n }\n\n public unset(property: string): Identify {\n this._safeSet(IdentifyOperation.UNSET, property, UNSET_VALUE);\n return this;\n }\n\n public clearAll(): Identify {\n // When clear all happens, all properties are unset. Reset the entire object.\n this._properties = {};\n this._properties[IdentifyOperation.CLEAR_ALL] = UNSET_VALUE;\n\n return this;\n }\n\n // Returns whether or not this set actually worked.\n private _safeSet(operation: IdentifyOperation, property: string, value: ValidPropertyType): boolean {\n if (this._validate(operation, property, value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n let userPropertyMap: any = this._properties[operation];\n if (userPropertyMap === undefined) {\n userPropertyMap = {};\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._properties[operation] = userPropertyMap;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n userPropertyMap[property] = value;\n this._propertySet.add(property);\n return true;\n }\n\n return false;\n }\n\n private _validate(operation: IdentifyOperation, property: string, value: ValidPropertyType): boolean {\n if (this._properties[IdentifyOperation.CLEAR_ALL] !== undefined) {\n // clear all already set. Skipping operation;\n return false;\n }\n\n if (this._propertySet.has(property)) {\n // Property already used. Skipping operation\n return false;\n }\n\n if (operation === IdentifyOperation.ADD) {\n return typeof value === 'number';\n }\n\n if (operation !== IdentifyOperation.UNSET && operation !== IdentifyOperation.REMOVE) {\n return isValidProperties(property, value);\n }\n return true;\n }\n}\n","import {\n RevenueProperty,\n RevenueEventProperties,\n Revenue as IRevenue,\n ValidPropertyType,\n} from '@amplitude/analytics-types';\nimport { isValidObject } from './utils/valid-properties';\n\nexport class Revenue implements IRevenue {\n private productId: string;\n private quantity: number;\n private price: number;\n private revenueType?: string;\n private properties?: { [key: string]: any };\n private revenue?: number;\n\n constructor() {\n this.productId = '';\n this.quantity = 1;\n this.price = 0.0;\n }\n\n setProductId(productId: string) {\n this.productId = productId;\n return this;\n }\n\n setQuantity(quantity: number) {\n if (quantity > 0) {\n this.quantity = quantity;\n }\n return this;\n }\n\n setPrice(price: number) {\n this.price = price;\n return this;\n }\n\n setRevenueType(revenueType: string) {\n this.revenueType = revenueType;\n return this;\n }\n\n setRevenue(revenue: number) {\n this.revenue = revenue;\n return this;\n }\n\n setEventProperties(properties: { [key: string]: ValidPropertyType }) {\n if (isValidObject(properties)) {\n this.properties = properties;\n }\n return this;\n }\n\n getEventProperties(): RevenueEventProperties {\n const eventProperties: RevenueEventProperties = this.properties ? { ...this.properties } : {};\n eventProperties[RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;\n eventProperties[RevenueProperty.REVENUE_QUANTITY] = this.quantity;\n eventProperties[RevenueProperty.REVENUE_PRICE] = this.price;\n eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;\n eventProperties[RevenueProperty.REVENUE] = this.revenue;\n return eventProperties;\n }\n}\n","import {\n BeforePlugin,\n Config,\n CoreClient,\n DestinationPlugin,\n EnrichmentPlugin,\n Event,\n EventCallback,\n Plugin,\n Result,\n} from '@amplitude/analytics-types';\nimport { buildResult } from './utils/result-builder';\nimport { UUID } from './utils/uuid';\n\nexport class Timeline {\n queue: [Event, EventCallback][] = [];\n // Flag to guarantee one schedule apply is running\n applying = false;\n // Flag indicates whether timeline is ready to process event\n // Events collected before timeline is ready will stay in the queue to be processed later\n plugins: Plugin[] = [];\n\n constructor(private client: CoreClient) {}\n\n async register(plugin: Plugin, config: Config) {\n plugin.name = plugin.name ?? UUID();\n plugin.type = plugin.type ?? 'enrichment';\n await plugin.setup?.(config, this.client);\n this.plugins.push(plugin);\n }\n\n async deregister(pluginName: string) {\n const index = this.plugins.findIndex((plugin) => plugin.name === pluginName);\n const plugin = this.plugins[index];\n this.plugins.splice(index, 1);\n await plugin.teardown?.();\n }\n\n reset(client: CoreClient) {\n this.applying = false;\n const plugins = this.plugins;\n plugins.map((plugin) => plugin.teardown?.());\n this.plugins = [];\n this.client = client;\n }\n\n push(event: Event) {\n return new Promise((resolve) => {\n this.queue.push([event, resolve]);\n this.scheduleApply(0);\n });\n }\n\n scheduleApply(timeout: number) {\n if (this.applying) return;\n this.applying = true;\n setTimeout(() => {\n void this.apply(this.queue.shift()).then(() => {\n this.applying = false;\n if (this.queue.length > 0) {\n this.scheduleApply(0);\n }\n });\n }, timeout);\n }\n\n async apply(item: [Event, EventCallback] | undefined) {\n if (!item) {\n return;\n }\n\n let [event] = item;\n const [, resolve] = item;\n\n const before = this.plugins.filter(\n (plugin: Plugin): plugin is BeforePlugin => plugin.type === 'before',\n );\n\n for (const plugin of before) {\n /* istanbul ignore if */\n if (!plugin.execute) {\n // do nothing\n continue;\n }\n const e = await plugin.execute({ ...event });\n if (e === null) {\n resolve({ event, code: 0, message: '' });\n return;\n } else {\n event = e;\n }\n }\n\n const enrichment = this.plugins.filter(\n (plugin: Plugin): plugin is EnrichmentPlugin => plugin.type === 'enrichment' || plugin.type === undefined,\n );\n\n for (const plugin of enrichment) {\n /* istanbul ignore if */\n if (!plugin.execute) {\n // do nothing\n continue;\n }\n const e = await plugin.execute({ ...event });\n if (e === null) {\n resolve({ event, code: 0, message: '' });\n return;\n } else {\n event = e;\n }\n }\n\n const destination = this.plugins.filter(\n (plugin: Plugin): plugin is DestinationPlugin => plugin.type === 'destination',\n );\n\n const executeDestinations = destination.map((plugin) => {\n const eventClone = { ...event };\n return plugin.execute(eventClone).catch((e) => buildResult(eventClone, 0, String(e)));\n });\n\n void Promise.all(executeDestinations).then(([result]) => {\n const resolveResult =\n result || buildResult(event, 100, 'Event not tracked, no destination plugins on the instance');\n resolve(resolveResult);\n });\n\n return;\n }\n\n async flush() {\n const queue = this.queue;\n this.queue = [];\n\n await Promise.all(queue.map((item) => this.apply(item)));\n\n const destination = this.plugins.filter(\n (plugin: Plugin): plugin is DestinationPlugin => plugin.type === 'destination',\n );\n\n const executeDestinations = destination.map((plugin) => {\n return plugin.flush && plugin.flush();\n });\n\n await Promise.all(executeDestinations);\n }\n}\n","import {\n BaseEvent,\n TrackEvent,\n IdentifyEvent,\n GroupIdentifyEvent,\n SpecialEventType,\n Identify as IIdentify,\n Revenue,\n RevenueEvent,\n EventOptions,\n} from '@amplitude/analytics-types';\nimport { Identify } from '../identify';\n\nexport const createTrackEvent = (\n eventInput: BaseEvent | string,\n eventProperties?: Record,\n eventOptions?: EventOptions,\n): TrackEvent => {\n const baseEvent: BaseEvent = typeof eventInput === 'string' ? { event_type: eventInput } : eventInput;\n return {\n ...baseEvent,\n ...eventOptions,\n ...(eventProperties && { event_properties: eventProperties }),\n };\n};\n\nexport const createIdentifyEvent = (identify: IIdentify, eventOptions?: EventOptions): IdentifyEvent => {\n const identifyEvent: IdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties(),\n };\n\n return identifyEvent;\n};\n\nexport const createGroupIdentifyEvent = (\n groupType: string,\n groupName: string | string[],\n identify: IIdentify,\n eventOptions?: EventOptions,\n): GroupIdentifyEvent => {\n const groupIdentify: GroupIdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.GROUP_IDENTIFY,\n group_properties: identify.getUserProperties(),\n groups: {\n [groupType]: groupName,\n },\n };\n\n return groupIdentify;\n};\n\nexport const createGroupEvent = (groupType: string, groupName: string | string[], eventOptions?: EventOptions) => {\n const identify = new Identify();\n identify.set(groupType, groupName);\n\n const groupEvent: IdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties(),\n groups: {\n [groupType]: groupName,\n },\n };\n return groupEvent;\n};\n\nexport const createRevenueEvent = (revenue: Revenue, eventOptions?: EventOptions): RevenueEvent => {\n return {\n ...eventOptions,\n event_type: SpecialEventType.REVENUE,\n event_properties: revenue.getEventProperties(),\n };\n};\n","import {\n BaseEvent,\n Config,\n CoreClient,\n Event,\n EventOptions,\n Identify,\n Plugin,\n Result,\n Revenue,\n} from '@amplitude/analytics-types';\nimport { CLIENT_NOT_INITIALIZED, OPT_OUT_MESSAGE } from './messages';\nimport { Timeline } from './timeline';\nimport {\n createGroupEvent,\n createGroupIdentifyEvent,\n createIdentifyEvent,\n createRevenueEvent,\n createTrackEvent,\n} from './utils/event-builder';\nimport { buildResult } from './utils/result-builder';\nimport { returnWrapper } from './utils/return-wrapper';\n\nexport class AmplitudeCore implements CoreClient {\n protected initializing = false;\n protected name: string;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n timeline: Timeline;\n isReady = false;\n protected q: Array = [];\n protected dispatchQ: Array = [];\n\n constructor(name = '$default') {\n this.timeline = new Timeline(this);\n this.name = name;\n }\n\n protected async _init(config: Config) {\n this.config = config;\n this.timeline.reset(this);\n await this.runQueuedFunctions('q');\n this.isReady = true;\n }\n\n async runQueuedFunctions(queueName: 'q' | 'dispatchQ') {\n const queuedFunctions = this[queueName];\n this[queueName] = [];\n for (const queuedFunction of queuedFunctions) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const val: ReturnType | Promise = queuedFunction();\n if (val && 'promise' in val) {\n await val.promise;\n } else {\n await val;\n }\n }\n // Rerun queued functions if the queue has accrued more while awaiting promises\n if (this[queueName].length) {\n await this.runQueuedFunctions(queueName);\n }\n }\n\n track(eventInput: BaseEvent | string, eventProperties?: Record, eventOptions?: EventOptions) {\n const event = createTrackEvent(eventInput, eventProperties, eventOptions);\n return returnWrapper(this.dispatch(event));\n }\n\n logEvent = this.track.bind(this);\n\n identify(identify: Identify, eventOptions?: EventOptions) {\n const event = createIdentifyEvent(identify, eventOptions);\n return returnWrapper(this.dispatch(event));\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: Identify, eventOptions?: EventOptions) {\n const event = createGroupIdentifyEvent(groupType, groupName, identify, eventOptions);\n return returnWrapper(this.dispatch(event));\n }\n\n setGroup(groupType: string, groupName: string | string[], eventOptions?: EventOptions) {\n const event = createGroupEvent(groupType, groupName, eventOptions);\n return returnWrapper(this.dispatch(event));\n }\n\n revenue(revenue: Revenue, eventOptions?: EventOptions) {\n const event = createRevenueEvent(revenue, eventOptions);\n return returnWrapper(this.dispatch(event));\n }\n\n add(plugin: Plugin) {\n if (!this.isReady) {\n this.q.push(this._addPlugin.bind(this, plugin));\n return returnWrapper();\n }\n return this._addPlugin(plugin);\n }\n\n _addPlugin(plugin: Plugin) {\n return returnWrapper(this.timeline.register(plugin, this.config));\n }\n\n remove(pluginName: string) {\n if (!this.isReady) {\n this.q.push(this._removePlugin.bind(this, pluginName));\n return returnWrapper();\n }\n return this._removePlugin(pluginName);\n }\n\n _removePlugin(pluginName: string) {\n return returnWrapper(this.timeline.deregister(pluginName));\n }\n\n dispatchWithCallback(event: Event, callback: (result: Result) => void): void {\n if (!this.isReady) {\n return callback(buildResult(event, 0, CLIENT_NOT_INITIALIZED));\n }\n void this.process(event).then(callback);\n }\n\n async dispatch(event: Event): Promise {\n if (!this.isReady) {\n return new Promise((resolve) => {\n this.dispatchQ.push(this.dispatchWithCallback.bind(this, event, resolve));\n });\n }\n\n return this.process(event);\n }\n\n async process(event: Event): Promise {\n try {\n // skip event processing if opt out\n if (this.config.optOut) {\n return buildResult(event, 0, OPT_OUT_MESSAGE);\n }\n\n const result = await this.timeline.push(event);\n\n result.code === 200\n ? this.config.loggerProvider.log(result.message)\n : result.code === 100\n ? this.config.loggerProvider.warn(result.message)\n : this.config.loggerProvider.error(result.message);\n\n return result;\n } catch (e) {\n const message = String(e);\n this.config.loggerProvider.error(message);\n const result = buildResult(event, 0, message);\n\n return result;\n }\n }\n\n setOptOut(optOut: boolean) {\n if (!this.isReady) {\n this.q.push(this._setOptOut.bind(this, Boolean(optOut)));\n return;\n }\n this._setOptOut(optOut);\n }\n\n _setOptOut(optOut: boolean) {\n this.config.optOut = Boolean(optOut);\n }\n\n flush() {\n return returnWrapper(this.timeline.flush());\n }\n}\n","import {\n AttributionOptions,\n BrowserOptions,\n DefaultTrackingOptions,\n PageTrackingHistoryChanges,\n PageTrackingOptions,\n PageTrackingTrackOn,\n} from '@amplitude/analytics-types';\n\n/**\n * Returns false if defaultTracking === false or if defaultTracking[event],\n * otherwise returns true\n */\nconst isTrackingEnabled = (\n defaultTracking: DefaultTrackingOptions | boolean | undefined,\n event: keyof DefaultTrackingOptions,\n) => {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n\n if (defaultTracking?.[event] === false) {\n return false;\n }\n\n return true;\n};\n\nexport const isAttributionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'attribution');\n\nexport const isFileDownloadTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'fileDownloads');\n\nexport const isFormInteractionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'formInteractions');\n\nexport const isPageViewTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'pageViews');\n\nexport const isSessionTrackingEnabled = (defaultTracking: DefaultTrackingOptions | boolean | undefined) =>\n isTrackingEnabled(defaultTracking, 'sessions');\n\nexport const getPageViewTrackingConfig = (config: BrowserOptions): PageTrackingOptions => {\n let trackOn: PageTrackingTrackOn | undefined = () => false;\n let trackHistoryChanges: PageTrackingHistoryChanges | undefined = undefined;\n let eventType: string | undefined;\n const pageCounter = config.pageCounter;\n\n const isDefaultPageViewTrackingEnabled = isPageViewTrackingEnabled(config.defaultTracking);\n if (isDefaultPageViewTrackingEnabled) {\n trackOn = undefined;\n eventType = undefined;\n\n if (\n config.defaultTracking &&\n typeof config.defaultTracking === 'object' &&\n config.defaultTracking.pageViews &&\n typeof config.defaultTracking.pageViews === 'object'\n ) {\n if ('trackOn' in config.defaultTracking.pageViews) {\n trackOn = config.defaultTracking.pageViews.trackOn;\n }\n\n if ('trackHistoryChanges' in config.defaultTracking.pageViews) {\n trackHistoryChanges = config.defaultTracking.pageViews.trackHistoryChanges;\n }\n\n if ('eventType' in config.defaultTracking.pageViews && config.defaultTracking.pageViews.eventType) {\n eventType = config.defaultTracking.pageViews.eventType;\n }\n }\n }\n\n return {\n trackOn,\n trackHistoryChanges,\n eventType,\n pageCounter,\n };\n};\n\nexport const getAttributionTrackingConfig = (config: BrowserOptions): AttributionOptions => {\n if (\n isAttributionTrackingEnabled(config.defaultTracking) &&\n config.defaultTracking &&\n typeof config.defaultTracking === 'object' &&\n config.defaultTracking.attribution &&\n typeof config.defaultTracking.attribution === 'object'\n ) {\n return {\n ...config.defaultTracking.attribution,\n };\n }\n\n return {};\n};\n","import { Campaign } from '@amplitude/analytics-types';\n\nexport const UTM_CAMPAIGN = 'utm_campaign';\nexport const UTM_CONTENT = 'utm_content';\nexport const UTM_ID = 'utm_id';\nexport const UTM_MEDIUM = 'utm_medium';\nexport const UTM_SOURCE = 'utm_source';\nexport const UTM_TERM = 'utm_term';\n\nexport const DCLID = 'dclid';\nexport const FBCLID = 'fbclid';\nexport const GBRAID = 'gbraid';\nexport const GCLID = 'gclid';\nexport const KO_CLICK_ID = 'ko_click_id';\nexport const LI_FAT_ID = 'li_fat_id';\nexport const MSCLKID = 'msclkid';\nexport const RDT_CID = 'rtd_cid';\nexport const TTCLID = 'ttclid';\nexport const TWCLID = 'twclid';\nexport const WBRAID = 'wbraid';\n\nexport const EMPTY_VALUE = 'EMPTY';\n\nexport const BASE_CAMPAIGN: Campaign = {\n utm_campaign: undefined,\n utm_content: undefined,\n utm_id: undefined,\n utm_medium: undefined,\n utm_source: undefined,\n utm_term: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gbraid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n li_fat_id: undefined,\n msclkid: undefined,\n rtd_cid: undefined,\n ttclid: undefined,\n twclid: undefined,\n wbraid: undefined,\n};\n\nexport const MKTG = 'MKTG';\n","import { createIdentifyEvent, Identify } from '@amplitude/analytics-core';\nimport { Campaign } from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from './constants';\n\nexport interface Options {\n excludeReferrers?: (string | RegExp)[];\n initialEmptyValue?: string;\n resetSessionOnNewCampaign?: boolean;\n}\n\nconst domainWithoutSubdomain = (domain: string) => {\n const parts = domain.split('.');\n\n if (parts.length <= 2) {\n return domain;\n }\n\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\n\n//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.\nconst isDirectTraffic = (current: Campaign) => {\n return Object.values(current).every((value) => !value);\n};\n\nexport const isNewCampaign = (\n current: Campaign,\n previous: Campaign | undefined,\n options: Options,\n isNewSession = true,\n) => {\n const { referrer, referring_domain, ...currentCampaign } = current;\n const { referrer: _previous_referrer, referring_domain: prevReferringDomain, ...previousCampaign } = previous || {};\n\n if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {\n return false;\n }\n\n //In the same session, direct traffic should not override or unset any persisting query params\n if (!isNewSession && isDirectTraffic(current) && previous) {\n return false;\n }\n\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n const hasNewDomain =\n domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n\n return !previous || hasNewCampaign || hasNewDomain;\n};\n\nexport const isExcludedReferrer = (excludeReferrers: (string | RegExp)[] = [], referringDomain = '') => {\n return excludeReferrers.some((value) =>\n value instanceof RegExp ? value.test(referringDomain) : value === referringDomain,\n );\n};\n\nexport const createCampaignEvent = (campaign: Campaign, options: Options) => {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value ?? options.initialEmptyValue ?? 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n return createIdentifyEvent(identifyEvent);\n};\n\nexport const getDefaultExcludedReferrers = (cookieDomain: string | undefined) => {\n let domain = cookieDomain;\n if (domain) {\n if (domain.startsWith('.')) {\n domain = domain.substring(1);\n }\n return [new RegExp(`${domain.replace('.', '\\\\.')}$`)];\n }\n return [];\n};\n","/* eslint-disable no-restricted-globals */\n/* Only file allowed to access to globalThis, window, self */\n\nexport const getGlobalScope = (): typeof globalThis | undefined => {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n};\n","import { getGlobalScope } from './global-scope';\n\nexport const getQueryParams = (): Record => {\n const globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!globalScope?.location?.search) {\n return {};\n }\n const pairs = globalScope.location.search.substring(1).split('&').filter(Boolean);\n const params = pairs.reduce>((acc, curr) => {\n const query = curr.split('=', 2);\n const key = tryDecodeURIComponent(query[0]);\n const value = tryDecodeURIComponent(query[1]);\n if (!value) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n return params;\n};\n\nexport const tryDecodeURIComponent = (value = '') => {\n try {\n return decodeURIComponent(value);\n } catch {\n return '';\n }\n};\n","import { getQueryParams } from '../query-params';\nimport {\n UTM_CAMPAIGN,\n UTM_CONTENT,\n UTM_MEDIUM,\n UTM_SOURCE,\n UTM_TERM,\n GCLID,\n FBCLID,\n BASE_CAMPAIGN,\n DCLID,\n MSCLKID,\n RDT_CID,\n TWCLID,\n TTCLID,\n KO_CLICK_ID,\n LI_FAT_ID,\n GBRAID,\n WBRAID,\n UTM_ID,\n} from './constants';\nimport {\n Campaign,\n CampaignParser as ICampaignParser,\n ClickIdParameters,\n ReferrerParameters,\n UTMParameters,\n} from '@amplitude/analytics-types';\n\nexport class CampaignParser implements ICampaignParser {\n async parse(): Promise {\n return {\n ...BASE_CAMPAIGN,\n ...this.getUtmParam(),\n ...this.getReferrer(),\n ...this.getClickIds(),\n } as Campaign;\n }\n\n getUtmParam(): UTMParameters {\n const params = getQueryParams();\n\n const utmCampaign = params[UTM_CAMPAIGN];\n const utmContent = params[UTM_CONTENT];\n const utmId = params[UTM_ID];\n const utmMedium = params[UTM_MEDIUM];\n const utmSource = params[UTM_SOURCE];\n const utmTerm = params[UTM_TERM];\n\n return {\n utm_campaign: utmCampaign,\n utm_content: utmContent,\n utm_id: utmId,\n utm_medium: utmMedium,\n utm_source: utmSource,\n utm_term: utmTerm,\n };\n }\n\n getReferrer(): ReferrerParameters {\n const data: ReferrerParameters = {\n referrer: undefined,\n referring_domain: undefined,\n };\n try {\n data.referrer = document.referrer || undefined;\n data.referring_domain = data.referrer?.split('/')[2] ?? undefined;\n } catch {\n // nothing to track\n }\n return data;\n }\n\n getClickIds(): ClickIdParameters {\n const params = getQueryParams();\n return {\n [DCLID]: params[DCLID],\n [FBCLID]: params[FBCLID],\n [GBRAID]: params[GBRAID],\n [GCLID]: params[GCLID],\n [KO_CLICK_ID]: params[KO_CLICK_ID],\n [LI_FAT_ID]: params[LI_FAT_ID],\n [MSCLKID]: params[MSCLKID],\n [RDT_CID]: params[RDT_CID],\n [TTCLID]: params[TTCLID],\n [TWCLID]: params[TWCLID],\n [WBRAID]: params[WBRAID],\n };\n }\n}\n","export const isNewSession = (sessionTimeout: number, lastEventTime: number = Date.now()): boolean => {\n const currentTime = Date.now();\n const timeSinceLastEvent = currentTime - lastEventTime;\n\n return timeSinceLastEvent > sessionTimeout;\n};\n","import { BrowserConfig } from '@amplitude/analytics-types';\nimport { Campaign, Storage } from '@amplitude/analytics-types';\nimport { Options, getDefaultExcludedReferrers, createCampaignEvent, isNewCampaign } from './helpers';\nimport { getStorageKey } from '../storage/helpers';\nimport { CampaignParser } from './campaign-parser';\nimport { BASE_CAMPAIGN } from './constants';\nimport { isNewSession } from '../session';\n\nexport class WebAttribution {\n options: Options;\n storage: Storage;\n storageKey: string;\n previousCampaign?: Campaign;\n currentCampaign: Campaign;\n shouldTrackNewCampaign = false;\n sessionTimeout: number;\n lastEventTime?: number;\n\n constructor(options: Options, config: BrowserConfig) {\n this.options = {\n initialEmptyValue: 'EMPTY',\n resetSessionOnNewCampaign: false,\n excludeReferrers: getDefaultExcludedReferrers(config.cookieOptions?.domain),\n ...options,\n };\n this.storage = config.cookieStorage as unknown as Storage;\n this.storageKey = getStorageKey(config.apiKey, 'MKTG');\n this.currentCampaign = BASE_CAMPAIGN;\n this.sessionTimeout = config.sessionTimeout;\n this.lastEventTime = config.lastEventTime;\n config.loggerProvider.log('Installing web attribution tracking.');\n }\n\n async init() {\n [this.currentCampaign, this.previousCampaign] = await this.fetchCampaign();\n const isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);\n\n if (isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, isEventInNewSession)) {\n this.shouldTrackNewCampaign = true;\n await this.storage.set(this.storageKey, this.currentCampaign);\n }\n }\n\n async fetchCampaign() {\n return await Promise.all([new CampaignParser().parse(), this.storage.get(this.storageKey)]);\n }\n\n /**\n * This can be called when enable web attribution and either\n * 1. set a new session\n * 2. has new campaign and enable resetSessionOnNewCampaign\n */\n generateCampaignEvent(event_id?: number) {\n // Mark this campaign has been tracked\n this.shouldTrackNewCampaign = false;\n const campaignEvent = createCampaignEvent(this.currentCampaign, this.options);\n if (event_id) {\n campaignEvent.event_id = event_id;\n }\n return campaignEvent;\n }\n\n shouldSetSessionIdOnNewCampaign() {\n return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;\n }\n}\n","import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const getStorageKey = (apiKey: string, postKey = '', limit = 10) => {\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\n","var ApplicationContextProviderImpl = /** @class */ (function () {\n function ApplicationContextProviderImpl() {\n }\n ApplicationContextProviderImpl.prototype.getApplicationContext = function () {\n return {\n versionName: this.versionName,\n language: getLanguage(),\n platform: 'Web',\n os: undefined,\n deviceModel: undefined,\n };\n };\n return ApplicationContextProviderImpl;\n}());\nvar getLanguage = function () {\n return ((typeof navigator !== 'undefined' &&\n ((navigator.languages && navigator.languages[0]) ||\n navigator.language)) ||\n '');\n};\n\nvar EventBridgeImpl = /** @class */ (function () {\n function EventBridgeImpl() {\n this.queue = [];\n }\n EventBridgeImpl.prototype.logEvent = function (event) {\n if (!this.receiver) {\n if (this.queue.length < 512) {\n this.queue.push(event);\n }\n }\n else {\n this.receiver(event);\n }\n };\n EventBridgeImpl.prototype.setEventReceiver = function (receiver) {\n this.receiver = receiver;\n if (this.queue.length > 0) {\n this.queue.forEach(function (event) {\n receiver(event);\n });\n this.queue = [];\n }\n };\n return EventBridgeImpl;\n}());\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar isEqual = function (obj1, obj2) {\n var primitive = ['string', 'number', 'boolean', 'undefined'];\n var typeA = typeof obj1;\n var typeB = typeof obj2;\n if (typeA !== typeB) {\n return false;\n }\n for (var _i = 0, primitive_1 = primitive; _i < primitive_1.length; _i++) {\n var p = primitive_1[_i];\n if (p === typeA) {\n return obj1 === obj2;\n }\n }\n // check null\n if (obj1 == null && obj2 == null) {\n return true;\n }\n else if (obj1 == null || obj2 == null) {\n return false;\n }\n // if got here - objects\n if (obj1.length !== obj2.length) {\n return false;\n }\n //check if arrays\n var isArrayA = Array.isArray(obj1);\n var isArrayB = Array.isArray(obj2);\n if (isArrayA !== isArrayB) {\n return false;\n }\n if (isArrayA && isArrayB) {\n //arrays\n for (var i = 0; i < obj1.length; i++) {\n if (!isEqual(obj1[i], obj2[i])) {\n return false;\n }\n }\n }\n else {\n //objects\n var sorted1 = Object.keys(obj1).sort();\n var sorted2 = Object.keys(obj2).sort();\n if (!isEqual(sorted1, sorted2)) {\n return false;\n }\n //compare object values\n var result_1 = true;\n Object.keys(obj1).forEach(function (key) {\n if (!isEqual(obj1[key], obj2[key])) {\n result_1 = false;\n }\n });\n return result_1;\n }\n return true;\n};\n\nvar ID_OP_SET = '$set';\nvar ID_OP_UNSET = '$unset';\nvar ID_OP_CLEAR_ALL = '$clearAll';\n// Polyfill for Object.entries\nif (!Object.entries) {\n Object.entries = function (obj) {\n var ownProps = Object.keys(obj);\n var i = ownProps.length;\n var resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n };\n}\nvar IdentityStoreImpl = /** @class */ (function () {\n function IdentityStoreImpl() {\n this.identity = { userProperties: {} };\n this.listeners = new Set();\n }\n IdentityStoreImpl.prototype.editIdentity = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var actingUserProperties = __assign({}, this.identity.userProperties);\n var actingIdentity = __assign(__assign({}, this.identity), { userProperties: actingUserProperties });\n return {\n setUserId: function (userId) {\n actingIdentity.userId = userId;\n return this;\n },\n setDeviceId: function (deviceId) {\n actingIdentity.deviceId = deviceId;\n return this;\n },\n setUserProperties: function (userProperties) {\n actingIdentity.userProperties = userProperties;\n return this;\n },\n setOptOut: function (optOut) {\n actingIdentity.optOut = optOut;\n return this;\n },\n updateUserProperties: function (actions) {\n var actingProperties = actingIdentity.userProperties || {};\n for (var _i = 0, _a = Object.entries(actions); _i < _a.length; _i++) {\n var _b = _a[_i], action = _b[0], properties = _b[1];\n switch (action) {\n case ID_OP_SET:\n for (var _c = 0, _d = Object.entries(properties); _c < _d.length; _c++) {\n var _e = _d[_c], key = _e[0], value = _e[1];\n actingProperties[key] = value;\n }\n break;\n case ID_OP_UNSET:\n for (var _f = 0, _g = Object.keys(properties); _f < _g.length; _f++) {\n var key = _g[_f];\n delete actingProperties[key];\n }\n break;\n case ID_OP_CLEAR_ALL:\n actingProperties = {};\n break;\n }\n }\n actingIdentity.userProperties = actingProperties;\n return this;\n },\n commit: function () {\n self.setIdentity(actingIdentity);\n return this;\n },\n };\n };\n IdentityStoreImpl.prototype.getIdentity = function () {\n return __assign({}, this.identity);\n };\n IdentityStoreImpl.prototype.setIdentity = function (identity) {\n var originalIdentity = __assign({}, this.identity);\n this.identity = __assign({}, identity);\n if (!isEqual(originalIdentity, this.identity)) {\n this.listeners.forEach(function (listener) {\n listener(identity);\n });\n }\n };\n IdentityStoreImpl.prototype.addIdentityListener = function (listener) {\n this.listeners.add(listener);\n };\n IdentityStoreImpl.prototype.removeIdentityListener = function (listener) {\n this.listeners.delete(listener);\n };\n return IdentityStoreImpl;\n}());\n\nvar safeGlobal = typeof globalThis !== 'undefined'\n ? globalThis\n : typeof global !== 'undefined'\n ? global\n : self;\n\nvar AnalyticsConnector = /** @class */ (function () {\n function AnalyticsConnector() {\n this.identityStore = new IdentityStoreImpl();\n this.eventBridge = new EventBridgeImpl();\n this.applicationContextProvider = new ApplicationContextProviderImpl();\n }\n AnalyticsConnector.getInstance = function (instanceName) {\n if (!safeGlobal['analyticsConnectorInstances']) {\n safeGlobal['analyticsConnectorInstances'] = {};\n }\n if (!safeGlobal['analyticsConnectorInstances'][instanceName]) {\n safeGlobal['analyticsConnectorInstances'][instanceName] =\n new AnalyticsConnector();\n }\n return safeGlobal['analyticsConnectorInstances'][instanceName];\n };\n return AnalyticsConnector;\n}());\n\nexport { AnalyticsConnector };\n","import { AnalyticsConnector } from '@amplitude/analytics-connector';\n\nexport const getAnalyticsConnector = (instanceName = '$default_instance'): AnalyticsConnector => {\n return AnalyticsConnector.getInstance(instanceName);\n};\n\nexport const setConnectorUserId = (userId: string | undefined, instanceName?: string): void => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n getAnalyticsConnector(instanceName).identityStore.editIdentity().setUserId(userId).commit();\n};\n\nexport const setConnectorDeviceId = (deviceId: string, instanceName?: string): void => {\n getAnalyticsConnector(instanceName).identityStore.editIdentity().setDeviceId(deviceId).commit();\n};\n","import { BeforePlugin, Config, Event } from '@amplitude/analytics-types';\nimport { getAnalyticsConnector } from '../analytics-connector';\n\nexport class IdentityEventSender implements BeforePlugin {\n name = 'identity';\n type = 'before' as const;\n\n identityStore = getAnalyticsConnector().identityStore;\n\n async execute(context: Event): Promise {\n const userProperties = context.user_properties as Record;\n if (userProperties) {\n this.identityStore.editIdentity().updateUserProperties(userProperties).commit();\n }\n return context;\n }\n\n async setup(config: Config) {\n if (config.instanceName) {\n this.identityStore = getAnalyticsConnector(config.instanceName).identityStore;\n }\n }\n}\n","import { AmplitudeReturn, InstanceProxy, QueueProxy, Result } from '@amplitude/analytics-types';\n\n/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport const runQueuedFunctions = (instance: object, queue: QueueProxy) => {\n convertProxyObjectToRealObject(instance, queue);\n};\n\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport const convertProxyObjectToRealObject = (instance: T, queue: QueueProxy): T => {\n for (let i = 0; i < queue.length; i++) {\n const { name, args, resolve } = queue[i];\n const fn = instance && instance[name as keyof T];\n if (typeof fn === 'function') {\n const result = fn.apply(instance, args) as AmplitudeReturn;\n if (typeof resolve === 'function') {\n resolve(result?.promise);\n }\n }\n }\n return instance;\n};\n\n/**\n * Check if the param is snippet proxy\n */\nexport const isInstanceProxy = (instance: unknown): instance is InstanceProxy => {\n const instanceProxy = instance as InstanceProxy;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n","export const getLanguage = (): string => {\n if (typeof navigator === 'undefined') return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const userLanguage = (navigator as any).userLanguage as string | undefined;\n\n return navigator.languages?.[0] ?? navigator.language ?? userLanguage ?? '';\n};\n","import { BeforePlugin, BrowserConfig, Event } from '@amplitude/analytics-types';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\nexport class Context implements BeforePlugin {\n name = '@amplitude/plugin-context-browser';\n type = 'before' as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n userAgent: string | undefined;\n library = `amplitude-ts/${VERSION}`;\n\n constructor() {\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n this.userAgent = navigator.userAgent;\n }\n }\n\n setup(config: BrowserConfig): Promise {\n this.config = config;\n\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise {\n const time = new Date().getTime();\n const lastEventId = this.config.lastEventId ?? -1;\n const nextEventId = context.event_id ?? lastEventId + 1;\n this.config.lastEventId = nextEventId;\n if (!context.time) {\n this.config.lastEventTime = time;\n }\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: this.config.appVersion }),\n ...(this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM }),\n ...(this.config.trackingOptions.language && { language: getLanguage() }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...(this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n }),\n ...context,\n event_id: nextEventId,\n library: this.library,\n user_agent: this.userAgent,\n };\n return event;\n }\n}\n","export const VERSION = '2.9.0';\n","import { Storage } from '@amplitude/analytics-types';\n\nexport class MemoryStorage implements Storage {\n memoryStorage: Map = new Map();\n\n async isEnabled(): Promise {\n return true;\n }\n\n async get(key: string): Promise {\n return this.memoryStorage.get(key);\n }\n\n async getRaw(key: string): Promise {\n const value = await this.get(key);\n return value ? JSON.stringify(value) : undefined;\n }\n\n async set(key: string, value: T): Promise {\n this.memoryStorage.set(key, value);\n }\n\n async remove(key: string): Promise {\n this.memoryStorage.delete(key);\n }\n\n async reset(): Promise {\n this.memoryStorage.clear();\n }\n}\n","import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const getCookieName = (apiKey: string, postKey = '', limit = 10) => {\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\n\nexport const getOldCookieName = (apiKey: string) => {\n return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;\n};\n","import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\nimport { getGlobalScope } from '../global-scope';\n\nexport class CookieStorage implements Storage {\n options: CookieStorageOptions;\n private static testValue: undefined | string;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n async isEnabled(): Promise {\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return false;\n }\n\n CookieStorage.testValue = String(Date.now());\n const testStrorage = new CookieStorage(this.options);\n const testKey = 'AMP_TEST';\n try {\n await testStrorage.set(testKey, CookieStorage.testValue);\n const value = await testStrorage.get(testKey);\n return value === CookieStorage.testValue;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStrorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise {\n let value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to decode cookie value for key: ${key}, value: ${value}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`Amplitude Logger [Error]: Failed to parse cookie value for key: ${key}, value: ${value}`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise {\n const globalScope = getGlobalScope();\n const cookie = globalScope?.document?.cookie.split('; ') ?? [];\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n async set(key: string, value: T | null): Promise {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${btoa(encodeURIComponent(JSON.stringify(value)))}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n const globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(`Amplitude Logger [Error]: Failed to set cookie for key: ${key}. Error: ${errorMessage}`);\n }\n }\n\n async remove(key: string): Promise {\n await this.set(key, null);\n }\n\n async reset(): Promise {\n return;\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { Payload, Response, Status, Transport } from '@amplitude/analytics-types';\n\nexport class BaseTransport implements Transport {\n send(_serverUrl: string, _payload: Payload): Promise {\n return Promise.resolve(null);\n }\n\n buildResponse(responseJSON: Record): Response | null {\n if (typeof responseJSON !== 'object') {\n return null;\n }\n\n const statusCode = responseJSON.code || 0;\n const status = this.buildStatus(statusCode);\n\n switch (status) {\n case Status.Success:\n return {\n status,\n statusCode,\n body: {\n eventsIngested: responseJSON.events_ingested ?? 0,\n payloadSizeBytes: responseJSON.payload_size_bytes ?? 0,\n serverUploadTime: responseJSON.server_upload_time ?? 0,\n },\n };\n\n case Status.Invalid:\n return {\n status,\n statusCode,\n body: {\n error: responseJSON.error ?? '',\n missingField: responseJSON.missing_field ?? '',\n eventsWithInvalidFields: responseJSON.events_with_invalid_fields ?? {},\n eventsWithMissingFields: responseJSON.events_with_missing_fields ?? {},\n eventsWithInvalidIdLengths: responseJSON.events_with_invalid_id_lengths ?? {},\n epsThreshold: responseJSON.eps_threshold ?? 0,\n exceededDailyQuotaDevices: responseJSON.exceeded_daily_quota_devices ?? {},\n silencedDevices: responseJSON.silenced_devices ?? [],\n silencedEvents: responseJSON.silenced_events ?? [],\n throttledDevices: responseJSON.throttled_devices ?? {},\n throttledEvents: responseJSON.throttled_events ?? [],\n },\n };\n case Status.PayloadTooLarge:\n return {\n status,\n statusCode,\n body: {\n error: responseJSON.error ?? '',\n },\n };\n case Status.RateLimit:\n return {\n status,\n statusCode,\n body: {\n error: responseJSON.error ?? '',\n epsThreshold: responseJSON.eps_threshold ?? 0,\n throttledDevices: responseJSON.throttled_devices ?? {},\n throttledUsers: responseJSON.throttled_users ?? {},\n exceededDailyQuotaDevices: responseJSON.exceeded_daily_quota_devices ?? {},\n exceededDailyQuotaUsers: responseJSON.exceeded_daily_quota_users ?? {},\n throttledEvents: responseJSON.throttled_events ?? [],\n },\n };\n case Status.Timeout:\n default:\n return {\n status,\n statusCode,\n };\n }\n }\n\n buildStatus(code: number): Status {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n\n if (code === 429) {\n return Status.RateLimit;\n }\n\n if (code === 413) {\n return Status.PayloadTooLarge;\n }\n\n if (code === 408) {\n return Status.Timeout;\n }\n\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n\n if (code >= 500) {\n return Status.Failed;\n }\n\n return Status.Unknown;\n }\n}\n","import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class FetchTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise {\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n const options: RequestInit = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n },\n body: JSON.stringify(payload),\n method: 'POST',\n };\n const response = await fetch(serverUrl, options);\n const responseText = await response.text();\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return this.buildResponse(JSON.parse(responseText));\n } catch {\n return this.buildResponse({ code: response.status });\n }\n }\n}\n","import { Storage as AmplitudeStorage } from '@amplitude/analytics-types';\n\nexport class BrowserStorage implements AmplitudeStorage {\n constructor(private storage?: Storage) {}\n\n async isEnabled(): Promise {\n /* istanbul ignore if */\n if (!this.storage) {\n return false;\n }\n\n const random = String(Date.now());\n const testStorage = new BrowserStorage(this.storage);\n const testKey = 'AMP_TEST';\n try {\n await testStorage.set(testKey, random);\n const value = await testStorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n await testStorage.remove(testKey);\n }\n }\n\n async get(key: string): Promise {\n try {\n const value = await this.getRaw(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n console.error(`[Amplitude] Error: Could not get value from storage`);\n return undefined;\n }\n }\n\n async getRaw(key: string): Promise {\n return this.storage?.getItem(key) || undefined;\n }\n\n async set(key: string, value: T): Promise {\n try {\n this.storage?.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n async remove(key: string): Promise {\n try {\n this.storage?.removeItem(key);\n } catch {\n //\n }\n }\n\n async reset(): Promise {\n try {\n this.storage?.clear();\n } catch {\n //\n }\n }\n}\n","import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BrowserStorage } from './browser-storage';\nimport { Logger } from '@amplitude/analytics-types';\n\nconst MAX_ARRAY_LENGTH = 1000;\n\ninterface LocalStorageOptions {\n loggerProvider?: Logger;\n}\nexport class LocalStorage extends BrowserStorage {\n loggerProvider?: Logger;\n\n constructor(config?: LocalStorageOptions) {\n super(getGlobalScope()?.localStorage);\n this.loggerProvider = config?.loggerProvider;\n }\n\n async set(key: string, value: T): Promise {\n if (Array.isArray(value) && value.length > MAX_ARRAY_LENGTH) {\n const droppedEventsCount = value.length - MAX_ARRAY_LENGTH;\n await super.set(key, value.slice(0, MAX_ARRAY_LENGTH) as T);\n this.loggerProvider?.error(\n `Failed to save ${droppedEventsCount} events because the queue length exceeded ${MAX_ARRAY_LENGTH}.`,\n );\n } else {\n await super.set(key, value);\n }\n }\n}\n","import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BrowserStorage } from './browser-storage';\n\nexport class SessionStorage extends BrowserStorage {\n constructor() {\n super(getGlobalScope()?.sessionStorage);\n }\n}\n","import { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class XHRTransport extends BaseTransport implements Transport {\n private state = {\n done: 4,\n };\n\n async send(serverUrl: string, payload: Payload): Promise {\n return new Promise((resolve, reject) => {\n /* istanbul ignore if */\n if (typeof XMLHttpRequest === 'undefined') {\n reject(new Error('XHRTransport is not supported.'));\n }\n\n const xhr = new XMLHttpRequest();\n xhr.open('POST', serverUrl, true);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === this.state.done) {\n const responseText = xhr.responseText;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n resolve(this.buildResponse(JSON.parse(responseText)));\n } catch {\n resolve(this.buildResponse({ code: xhr.status }));\n }\n }\n };\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Accept', '*/*');\n xhr.send(JSON.stringify(payload));\n });\n }\n}\n","import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BaseTransport } from '@amplitude/analytics-core';\nimport { Payload, Response, Transport } from '@amplitude/analytics-types';\n\nexport class SendBeaconTransport extends BaseTransport implements Transport {\n async send(serverUrl: string, payload: Payload): Promise {\n return new Promise((resolve, reject) => {\n const globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!globalScope?.navigator.sendBeacon) {\n throw new Error('SendBeaconTransport is not supported');\n }\n try {\n const data = JSON.stringify(payload);\n const success = globalScope.navigator.sendBeacon(serverUrl, JSON.stringify(payload));\n if (success) {\n return resolve(\n this.buildResponse({\n code: 200,\n events_ingested: payload.events.length,\n payload_size_bytes: data.length,\n server_upload_time: Date.now(),\n }),\n );\n }\n return resolve(this.buildResponse({ code: 500 }));\n } catch (e) {\n reject(e);\n }\n });\n }\n}\n","import { Storage, UserSession } from '@amplitude/analytics-types';\nimport { getOldCookieName } from '@amplitude/analytics-client-common';\n\nexport const parseLegacyCookies = async (\n apiKey: string,\n cookieStorage: Storage,\n deleteLegacyCookies = true,\n): Promise => {\n const cookieName = getOldCookieName(apiKey);\n const cookies = await cookieStorage.getRaw(cookieName);\n if (!cookies) {\n return {\n optOut: false,\n };\n }\n if (deleteLegacyCookies) {\n await cookieStorage.remove(cookieName);\n }\n const [deviceId, userId, optOut, sessionId, lastEventTime, lastEventId] = cookies.split('.');\n return {\n deviceId,\n userId: decode(userId),\n sessionId: parseTime(sessionId),\n lastEventId: parseTime(lastEventId),\n lastEventTime: parseTime(lastEventTime),\n optOut: Boolean(optOut),\n };\n};\n\nexport const parseTime = (num: string) => {\n const integer = parseInt(num, 32);\n if (isNaN(integer)) {\n return undefined;\n }\n return integer;\n};\n\nexport const decode = (value?: string): string | undefined => {\n if (!atob || !escape || !value) {\n return undefined;\n }\n try {\n return decodeURIComponent(escape(atob(value)));\n } catch {\n return undefined;\n }\n};\n","import { IdentityStorageType, ServerZoneType } from '@amplitude/analytics-types';\n\nexport const DEFAULT_EVENT_PREFIX = '[Amplitude]';\n\nexport const DEFAULT_PAGE_VIEW_EVENT = `${DEFAULT_EVENT_PREFIX} Page Viewed`;\nexport const DEFAULT_FORM_START_EVENT = `${DEFAULT_EVENT_PREFIX} Form Started`;\nexport const DEFAULT_FORM_SUBMIT_EVENT = `${DEFAULT_EVENT_PREFIX} Form Submitted`;\nexport const DEFAULT_FILE_DOWNLOAD_EVENT = `${DEFAULT_EVENT_PREFIX} File Downloaded`;\nexport const DEFAULT_SESSION_START_EVENT = 'session_start';\nexport const DEFAULT_SESSION_END_EVENT = 'session_end';\n\nexport const FILE_EXTENSION = `${DEFAULT_EVENT_PREFIX} File Extension`;\nexport const FILE_NAME = `${DEFAULT_EVENT_PREFIX} File Name`;\nexport const LINK_ID = `${DEFAULT_EVENT_PREFIX} Link ID`;\nexport const LINK_TEXT = `${DEFAULT_EVENT_PREFIX} Link Text`;\nexport const LINK_URL = `${DEFAULT_EVENT_PREFIX} Link URL`;\n\nexport const FORM_ID = `${DEFAULT_EVENT_PREFIX} Form ID`;\nexport const FORM_NAME = `${DEFAULT_EVENT_PREFIX} Form Name`;\nexport const FORM_DESTINATION = `${DEFAULT_EVENT_PREFIX} Form Destination`;\n\nexport const DEFAULT_IDENTITY_STORAGE: IdentityStorageType = 'cookie';\nexport const DEFAULT_SERVER_ZONE: ServerZoneType = 'US';\n","import {\n Event,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n DefaultTrackingOptions,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n Logger as ILogger,\n LogLevel,\n Plan,\n IngestionMetadata,\n IdentityStorageType,\n ServerZoneType,\n OfflineDisabled,\n} from '@amplitude/analytics-types';\nimport { Config, Logger, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport { CookieStorage, getCookieName, FetchTransport, getQueryParams } from '@amplitude/analytics-client-common';\n\nimport { LocalStorage } from './storage/local-storage';\nimport { SessionStorage } from './storage/session-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { CookieOptions } from '@amplitude/analytics-types/lib/esm/config/browser';\nimport { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';\nimport { AmplitudeBrowser } from './browser-client';\n\n// Exported for testing purposes only. Do not expose to public interface.\nexport class BrowserConfig extends Config implements IBrowserConfig {\n protected _cookieStorage: Storage;\n protected _deviceId?: string;\n protected _lastEventId?: number;\n protected _lastEventTime?: number;\n protected _optOut = false;\n protected _sessionId?: number;\n protected _userId?: string;\n protected _pageCounter?: number;\n protected _debugLogsEnabled?: boolean;\n constructor(\n public apiKey: string,\n public appVersion?: string,\n cookieStorage: Storage = new MemoryStorage(),\n public cookieOptions: CookieOptions = {\n domain: '',\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n },\n public defaultTracking?: boolean | DefaultTrackingOptions,\n deviceId?: string,\n public flushIntervalMillis: number = 1000,\n public flushMaxRetries: number = 5,\n public flushQueueSize: number = 30,\n public identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n public ingestionMetadata?: IngestionMetadata,\n public instanceName?: string,\n lastEventId?: number,\n lastEventTime?: number,\n public loggerProvider: ILogger = new Logger(),\n public logLevel: LogLevel = LogLevel.Warn,\n public minIdLength?: number,\n public offline: boolean | typeof OfflineDisabled = false,\n optOut = false,\n public partnerId?: string,\n public plan?: Plan,\n public serverUrl: string = '',\n public serverZone: ServerZoneType = DEFAULT_SERVER_ZONE,\n sessionId?: number,\n public sessionTimeout: number = 30 * 60 * 1000,\n public storageProvider: Storage = new LocalStorage({ loggerProvider }),\n public trackingOptions: Required = {\n ipAddress: true,\n language: true,\n platform: true,\n },\n public transport: 'fetch' | 'xhr' | 'beacon' = 'fetch',\n public useBatch: boolean = false,\n userId?: string,\n pageCounter?: number,\n debugLogsEnabled?: boolean,\n ) {\n super({ apiKey, storageProvider, transportProvider: createTransport(transport) });\n this._cookieStorage = cookieStorage;\n this.deviceId = deviceId;\n this.lastEventId = lastEventId;\n this.lastEventTime = lastEventTime;\n this.optOut = optOut;\n this.sessionId = sessionId;\n this.pageCounter = pageCounter;\n this.userId = userId;\n this.debugLogsEnabled = debugLogsEnabled;\n this.loggerProvider.enable(debugLogsEnabled ? LogLevel.Debug : this.logLevel);\n }\n\n get cookieStorage() {\n return this._cookieStorage;\n }\n\n set cookieStorage(cookieStorage: Storage) {\n if (this._cookieStorage !== cookieStorage) {\n this._cookieStorage = cookieStorage;\n this.updateStorage();\n }\n }\n\n get deviceId() {\n return this._deviceId;\n }\n\n set deviceId(deviceId: string | undefined) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n }\n\n get userId() {\n return this._userId;\n }\n\n set userId(userId: string | undefined) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n }\n\n get sessionId() {\n return this._sessionId;\n }\n\n set sessionId(sessionId: number | undefined) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n this.updateStorage();\n }\n }\n\n get optOut() {\n return this._optOut;\n }\n\n set optOut(optOut: boolean) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n }\n\n get lastEventTime() {\n return this._lastEventTime;\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n }\n\n get lastEventId() {\n return this._lastEventId;\n }\n\n set lastEventId(lastEventId: number | undefined) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n }\n\n get pageCounter() {\n return this._pageCounter;\n }\n\n set pageCounter(pageCounter: number | undefined) {\n if (this._pageCounter !== pageCounter) {\n this._pageCounter = pageCounter;\n this.updateStorage();\n }\n }\n\n set debugLogsEnabled(debugLogsEnabled: boolean | undefined) {\n if (this._debugLogsEnabled !== debugLogsEnabled) {\n this._debugLogsEnabled = debugLogsEnabled;\n this.updateStorage();\n }\n }\n\n private updateStorage() {\n const cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId,\n pageCounter: this._pageCounter,\n debugLogsEnabled: this._debugLogsEnabled,\n };\n void this.cookieStorage.set(getCookieName(this.apiKey), cache);\n }\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n options: BrowserOptions = {},\n amplitudeInstance: AmplitudeBrowser,\n): Promise => {\n // Step 1: Create identity storage instance\n const identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;\n const cookieOptions = {\n domain:\n identityStorage !== DEFAULT_IDENTITY_STORAGE ? '' : options.cookieOptions?.domain ?? (await getTopLevelDomain()),\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n ...options.cookieOptions,\n };\n const cookieStorage = createCookieStorage(options.identityStorage, cookieOptions);\n\n // Step 1: Parse cookies using identity storage instance\n const legacyCookies = await parseLegacyCookies(apiKey, cookieStorage, options.cookieOptions?.upgrade ?? true);\n const previousCookies = await cookieStorage.get(getCookieName(apiKey));\n const queryParams = getQueryParams();\n\n // Step 3: Reconcile user identity\n const deviceId =\n options.deviceId ??\n queryParams.ampDeviceId ??\n queryParams.deviceId ??\n previousCookies?.deviceId ??\n legacyCookies.deviceId ??\n UUID();\n const lastEventId = previousCookies?.lastEventId ?? legacyCookies.lastEventId;\n const lastEventTime = previousCookies?.lastEventTime ?? legacyCookies.lastEventTime;\n const optOut = options.optOut ?? previousCookies?.optOut ?? legacyCookies.optOut;\n const sessionId = previousCookies?.sessionId ?? legacyCookies.sessionId;\n const userId = options.userId ?? previousCookies?.userId ?? legacyCookies.userId;\n amplitudeInstance.previousSessionDeviceId = previousCookies?.deviceId ?? legacyCookies.deviceId;\n amplitudeInstance.previousSessionUserId = previousCookies?.userId ?? legacyCookies.userId;\n\n const trackingOptions = {\n ipAddress: options.trackingOptions?.ipAddress ?? true,\n language: options.trackingOptions?.language ?? true,\n platform: options.trackingOptions?.platform ?? true,\n };\n const pageCounter = previousCookies?.pageCounter;\n const debugLogsEnabled = previousCookies?.debugLogsEnabled;\n\n return new BrowserConfig(\n apiKey,\n options.appVersion,\n cookieStorage,\n cookieOptions,\n options.defaultTracking,\n deviceId,\n options.flushIntervalMillis,\n options.flushMaxRetries,\n options.flushQueueSize,\n identityStorage,\n options.ingestionMetadata,\n options.instanceName,\n lastEventId,\n lastEventTime,\n options.loggerProvider,\n options.logLevel,\n options.minIdLength,\n options.offline,\n optOut,\n options.partnerId,\n options.plan,\n options.serverUrl,\n options.serverZone,\n sessionId,\n options.sessionTimeout,\n options.storageProvider,\n trackingOptions,\n options.transport,\n options.useBatch,\n userId,\n pageCounter,\n debugLogsEnabled,\n );\n};\n\nexport const createCookieStorage = (\n identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n cookieOptions: CookieOptions = {},\n) => {\n switch (identityStorage) {\n case 'localStorage':\n return new LocalStorage();\n case 'sessionStorage':\n return new SessionStorage();\n case 'none':\n return new MemoryStorage();\n case 'cookie':\n default:\n return new CookieStorage({\n ...cookieOptions,\n expirationDays: cookieOptions.expiration,\n });\n }\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === 'xhr') {\n return new XHRTransport();\n }\n if (transport === 'beacon') {\n return new SendBeaconTransport();\n }\n return new FetchTransport();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (\n !(await new CookieStorage().isEnabled()) ||\n (!url && (typeof location === 'undefined' || !location.hostname))\n ) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n","export const omitUndefined = (input: Record) => {\n const obj: Record = {};\n for (const key in input) {\n const val = input[key];\n if (val) {\n obj[key] = val;\n }\n }\n return obj;\n};\n","import { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport {\n BrowserClient,\n BrowserConfig,\n EnrichmentPlugin,\n Event,\n IdentifyOperation,\n IdentifyUserProperties,\n Logger,\n} from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { CreatePageViewTrackingPlugin, Options } from './typings/page-view-tracking';\nimport { omitUndefined } from './utils';\n\nexport const defaultPageViewEvent = '[Amplitude] Page Viewed';\n\nexport const pageViewTrackingPlugin: CreatePageViewTrackingPlugin = (options: Options = {}) => {\n let amplitude: BrowserClient | undefined;\n const globalScope = getGlobalScope();\n let loggerProvider: Logger | undefined = undefined;\n let pushState: undefined | ((data: any, unused: string, url?: string | URL | null) => void);\n let localConfig: BrowserConfig;\n const { trackOn, trackHistoryChanges, eventType = defaultPageViewEvent } = options;\n\n const createPageViewEvent = async (): Promise => {\n return {\n event_type: eventType,\n event_properties: {\n ...(await getCampaignParams()),\n '[Amplitude] Page Domain':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '',\n '[Amplitude] Page Location':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '',\n '[Amplitude] Page Path':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '',\n '[Amplitude] Page Title': /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '',\n '[Amplitude] Page URL':\n /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '',\n },\n };\n };\n\n const shouldTrackOnPageLoad = () => typeof trackOn === 'undefined' || (typeof trackOn === 'function' && trackOn());\n\n /* istanbul ignore next */\n let previousURL: string | null = typeof location !== 'undefined' ? location.href : null;\n\n const trackHistoryPageView = async (): Promise => {\n const newURL = location.href;\n const shouldTrackPageView =\n shouldTrackHistoryPageView(trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad();\n // Note: Update `previousURL` in the same clock tick as `shouldTrackHistoryPageView()`\n // This was previously done after `amplitude?.track(await createPageViewEvent());` and\n // causes a concurrency issue where app triggers `pushState` twice with the same URL target\n // but `previousURL` is only updated after the second `pushState` producing two page viewed events\n previousURL = newURL;\n\n if (shouldTrackPageView) {\n /* istanbul ignore next */\n loggerProvider?.log('Tracking page view event');\n amplitude?.track(await createPageViewEvent());\n }\n };\n\n /* istanbul ignore next */\n const trackHistoryPageViewWrapper = () => {\n void trackHistoryPageView();\n };\n\n const plugin: EnrichmentPlugin = {\n name: '@amplitude/plugin-page-view-tracking-browser',\n type: 'enrichment',\n\n setup: async (config: BrowserConfig, client: BrowserClient) => {\n amplitude = client;\n localConfig = config;\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n\n if (globalScope) {\n globalScope.addEventListener('popstate', trackHistoryPageViewWrapper);\n\n // Save reference to original push state, to be used in teardown\n // eslint-disable-next-line @typescript-eslint/unbound-method\n pushState = globalScope.history.pushState;\n\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n target.apply(thisArg, [state, unused, url]);\n void trackHistoryPageView();\n },\n });\n }\n\n if (shouldTrackOnPageLoad()) {\n loggerProvider.log('Tracking page view event');\n\n amplitude.track(await createPageViewEvent());\n }\n },\n\n execute: async (event: Event) => {\n if (trackOn === 'attribution' && isCampaignEvent(event)) {\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider?.log('Enriching campaign event to page view event with campaign parameters');\n const pageViewEvent = await createPageViewEvent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = {\n ...event.event_properties,\n ...pageViewEvent.event_properties,\n };\n }\n\n // Update the pageCounter for the page view event\n if (localConfig && event.event_type === eventType) {\n localConfig.pageCounter = !localConfig.pageCounter ? 1 : localConfig.pageCounter + 1;\n event.event_properties = {\n ...event.event_properties,\n '[Amplitude] Page Counter': localConfig.pageCounter,\n };\n }\n return event;\n },\n\n teardown: async () => {\n if (globalScope) {\n globalScope.removeEventListener('popstate', trackHistoryPageViewWrapper);\n if (pushState) {\n globalScope.history.pushState = pushState;\n }\n }\n },\n };\n return plugin;\n};\n\nconst getCampaignParams = async () => omitUndefined(await new CampaignParser().parse());\n\nconst isCampaignEvent = (event: Event) => {\n if (event.event_type === '$identify' && event.user_properties) {\n const properties = event.user_properties as IdentifyUserProperties;\n const $set = properties[IdentifyOperation.SET] || {};\n const $unset = properties[IdentifyOperation.UNSET] || {};\n const userProperties = [...Object.keys($set), ...Object.keys($unset)];\n return Object.keys(BASE_CAMPAIGN).every((value) => userProperties.includes(value));\n }\n return false;\n};\n\nexport const shouldTrackHistoryPageView = (\n trackingOption: Options['trackHistoryChanges'],\n newURL: string,\n oldURL: string,\n): boolean => {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n","import { BrowserClient, Event, EnrichmentPlugin } from '@amplitude/analytics-types';\nimport {\n DEFAULT_FORM_START_EVENT,\n DEFAULT_FORM_SUBMIT_EVENT,\n FORM_ID,\n FORM_NAME,\n FORM_DESTINATION,\n} from '../constants';\nimport { BrowserConfig } from '../config';\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\n\ninterface EventListener {\n element: Element;\n type: 'change' | 'submit';\n handler: () => void;\n}\n\nexport const formInteractionTracking = (): EnrichmentPlugin => {\n let observer: MutationObserver | undefined;\n let eventListeners: EventListener[] = [];\n\n const addEventListener = (element: Element, type: 'change' | 'submit', handler: () => void) => {\n element.addEventListener(type, handler);\n eventListeners.push({\n element,\n type,\n handler,\n });\n };\n\n const removeClickListeners = () => {\n eventListeners.forEach(({ element, type, handler }) => {\n /* istanbul ignore next */\n element?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const name = '@amplitude/plugin-form-interaction-tracking-browser';\n const type = 'enrichment';\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n // The form interaction plugin observes changes in the dom. For this to work correctly, the observer can only be setup\n // after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this\n // only after the window is loaded\n /* istanbul ignore next */\n getGlobalScope()?.addEventListener('load', function () {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.',\n );\n return;\n }\n\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n\n const addFormInteractionListener = (form: HTMLFormElement) => {\n let hasFormChanged = false;\n\n addEventListener(form, 'change', () => {\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: form.action,\n });\n }\n hasFormChanged = true;\n });\n\n addEventListener(form, 'submit', () => {\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: form.action,\n });\n }\n\n amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, {\n [FORM_ID]: stringOrUndefined(form.id),\n [FORM_NAME]: stringOrUndefined(form.name),\n [FORM_DESTINATION]: form.action,\n });\n hasFormChanged = false;\n });\n };\n\n // Adds listener to existing anchor tags\n const forms = Array.from(document.getElementsByTagName('form'));\n forms.forEach(addFormInteractionListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'FORM') {\n addFormInteractionListener(node as HTMLFormElement);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('form') as HTMLFormElement[]).map(addFormInteractionListener);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n });\n };\n const execute = async (event: Event) => event;\n const teardown = async () => {\n observer?.disconnect();\n removeClickListeners();\n };\n\n return {\n name,\n type,\n setup,\n execute,\n teardown,\n };\n};\n\nexport const stringOrUndefined = (name: T): T extends string ? string : undefined => {\n /* istanbul ignore if */\n if (typeof name !== 'string') {\n // We found instances where the value of `name` is an Element and not a string.\n // Elements may have circular references and would throw an error when passed to `JSON.stringify(...)`.\n // If a non-string value is seen, assume there is no value.\n return undefined as T extends string ? string : undefined;\n }\n\n return name as T extends string ? string : undefined;\n};\n","import { BrowserClient, Event, EnrichmentPlugin } from '@amplitude/analytics-types';\nimport { DEFAULT_FILE_DOWNLOAD_EVENT, FILE_EXTENSION, FILE_NAME, LINK_ID, LINK_TEXT, LINK_URL } from '../constants';\nimport { BrowserConfig } from '../config';\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\n\ninterface EventListener {\n element: Element;\n type: 'click';\n handler: () => void;\n}\n\nexport const fileDownloadTracking = (): EnrichmentPlugin => {\n let observer: MutationObserver | undefined;\n let eventListeners: EventListener[] = [];\n const addEventListener = (element: Element, type: 'click', handler: () => void) => {\n element.addEventListener(type, handler);\n eventListeners.push({\n element,\n type,\n handler,\n });\n };\n const removeClickListeners = () => {\n eventListeners.forEach(({ element, type, handler }) => {\n /* istanbul ignore next */\n element?.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n\n const name = '@amplitude/plugin-file-download-tracking-browser';\n const type = 'enrichment';\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n // The form interaction plugin observes changes in the dom. For this to work correctly, the observer can only be setup\n // after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this\n // only after the window is loaded\n /* istanbul ignore next */\n getGlobalScope()?.addEventListener('load', function () {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'File download tracking requires a later version of @amplitude/analytics-browser. File download events are not tracked.',\n );\n return;\n }\n\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n\n const addFileDownloadListener = (a: HTMLAnchorElement) => {\n let url: URL;\n try {\n // eslint-disable-next-line no-restricted-globals\n url = new URL(a.href, window.location.href);\n } catch {\n /* istanbul ignore next */\n return;\n }\n const result = ext.exec(url.href);\n const fileExtension = result?.[1];\n\n if (fileExtension) {\n addEventListener(a, 'click', () => {\n if (fileExtension) {\n amplitude.track(DEFAULT_FILE_DOWNLOAD_EVENT, {\n [FILE_EXTENSION]: fileExtension,\n [FILE_NAME]: url.pathname,\n [LINK_ID]: a.id,\n [LINK_TEXT]: a.text,\n [LINK_URL]: a.href,\n });\n }\n });\n }\n };\n\n const ext =\n /\\.(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)$/;\n\n // Adds listener to existing anchor tags\n const links = Array.from(document.getElementsByTagName('a'));\n links.forEach(addFileDownloadListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'A') {\n addFileDownloadListener(node as HTMLAnchorElement);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('a') as HTMLAnchorElement[]).map(addFileDownloadListener);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n });\n };\n const execute = async (event: Event) => event;\n const teardown = async () => {\n observer?.disconnect();\n removeClickListeners();\n };\n\n return {\n name,\n type,\n setup,\n execute,\n teardown,\n };\n};\n","import { BrowserConfig } from '@amplitude/analytics-types';\n\nlet notified = false;\n\nexport const detNotify = (config: BrowserConfig): void => {\n if (notified || config.defaultTracking !== undefined) {\n return;\n }\n\n const message = `\\`options.defaultTracking\\` is set to undefined. This implicitly configures your Amplitude instance to track Page Views, Sessions, File Downloads, and Form Interactions. You can suppress this warning by explicitly setting a value to \\`options.defaultTracking\\`. The value must either be a boolean, to enable and disable all default events, or an object, for advanced configuration. For example:\n\namplitude.init(, {\n defaultTracking: true,\n});\n\nVisit https://www.docs.developers.amplitude.com/data/sdks/browser-2/#tracking-default-events for more details.`;\n config.loggerProvider.warn(message);\n notified = true;\n};\n\n/**\n * @private\n * This function is meant for testing purposes only\n */\nexport const resetNotify = () => {\n notified = false;\n};\n","import { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BeforePlugin, BrowserClient } from '@amplitude/analytics-types';\nimport { BrowserConfig } from 'src/config';\n\ninterface EventListener {\n type: 'online' | 'offline';\n handler: () => void;\n}\n\nexport const networkConnectivityCheckerPlugin = (): BeforePlugin => {\n const name = '@amplitude/plugin-network-checker-browser';\n const type = 'before' as const;\n const globalScope = getGlobalScope();\n let eventListeners: EventListener[] = [];\n\n const addNetworkListener = (type: 'online' | 'offline', handler: () => void) => {\n if (globalScope) {\n globalScope.addEventListener(type, handler);\n eventListeners.push({\n type,\n handler,\n });\n }\n };\n\n const removeNetworkListeners = () => {\n eventListeners.forEach(({ type, handler }) => {\n if (globalScope) {\n globalScope.removeEventListener(type, handler);\n }\n });\n eventListeners = [];\n };\n\n const setup = async (config: BrowserConfig, amplitude: BrowserClient) => {\n config.offline = !navigator.onLine;\n\n addNetworkListener('online', () => {\n config.loggerProvider.debug('Network connectivity changed to online.');\n config.offline = false;\n // Flush immediately will cause ERR_NETWORK_CHANGED\n setTimeout(() => {\n amplitude.flush();\n }, config.flushIntervalMillis);\n });\n\n addNetworkListener('offline', () => {\n config.loggerProvider.debug('Network connectivity changed to offline.');\n config.offline = true;\n });\n };\n\n const teardown = async () => {\n removeNetworkListeners();\n };\n\n return {\n name,\n type,\n setup,\n teardown,\n };\n};\n","import { AmplitudeCore, Destination, Identify, returnWrapper, Revenue, UUID } from '@amplitude/analytics-core';\nimport {\n getAnalyticsConnector,\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n IdentityEventSender,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n setConnectorDeviceId,\n setConnectorUserId,\n isNewSession,\n isPageViewTrackingEnabled,\n WebAttribution,\n getQueryParams,\n} from '@amplitude/analytics-client-common';\nimport {\n BrowserClient,\n BrowserConfig,\n BrowserOptions,\n Event,\n EventOptions,\n Identify as IIdentify,\n Revenue as IRevenue,\n TransportType,\n OfflineDisabled,\n Result,\n} from '@amplitude/analytics-types';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport } from './config';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from './constants';\nimport { detNotify } from './det-notification';\nimport { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';\n\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n previousSessionDeviceId: string | undefined;\n previousSessionUserId: string | undefined;\n webAttribution: WebAttribution | undefined;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\n\n if (arguments.length > 2) {\n userId = userIdOrOptions as string | undefined;\n options = maybeOptions;\n } else {\n if (typeof userIdOrOptions === 'string') {\n userId = userIdOrOptions;\n options = undefined;\n } else {\n userId = userIdOrOptions?.userId;\n options = userIdOrOptions;\n }\n }\n return returnWrapper(this._init({ ...options, userId, apiKey }));\n }\n protected async _init(options: BrowserOptions & { apiKey: string }) {\n // Step 1: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 2: Create browser config\n const browserOptions = await useBrowserConfig(options.apiKey, options, this);\n await super._init(browserOptions);\n this.logBrowserOptions(options);\n\n // Add web attribution plugin\n if (isAttributionTrackingEnabled(this.config.defaultTracking)) {\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n // Fetch the current campaign, check if need to track web attribution later\n await this.webAttribution.init();\n }\n\n // Step 3: Set session ID\n // Priority 1: `options.sessionId`\n // Priority 2: sessionId from url if it's Number\n // Priority 3: last known sessionId from user identity storage\n // Default: `Date.now()`\n // Session ID is handled differently than device ID and user ID due to session events\n const queryParams = getQueryParams();\n const querySessionId = Number.isNaN(Number(queryParams.ampSessionId))\n ? undefined\n : Number(queryParams.ampSessionId);\n this.setSessionId(options.sessionId ?? querySessionId ?? this.config.sessionId ?? Date.now());\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector(options.instanceName);\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n if (this.config.offline !== OfflineDisabled) {\n await this.add(networkConnectivityCheckerPlugin()).promise;\n }\n await this.add(new Destination()).promise;\n await this.add(new Context()).promise;\n await this.add(new IdentityEventSender()).promise;\n\n // Notify if DET is enabled\n detNotify(this.config);\n\n if (isFileDownloadTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding file download tracking plugin');\n await this.add(fileDownloadTracking()).promise;\n }\n\n if (isFormInteractionTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding form interaction plugin');\n await this.add(formInteractionTracking()).promise;\n }\n\n // Add page view plugin\n if (isPageViewTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n }\n\n this.initializing = false;\n\n // Step 6: Run queued dispatch functions\n await this.runQueuedFunctions('dispatchQ');\n\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.loggerProvider.debug('function setUserId: ', userId);\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n setConnectorUserId(userId, this.config.instanceName);\n }\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.loggerProvider.debug('function setDeviceId: ', deviceId);\n this.config.deviceId = deviceId;\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n const promises: Promise[] = [];\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return returnWrapper(Promise.resolve());\n }\n // Prevents starting a new session with the same session ID\n if (sessionId === this.config.sessionId) {\n return returnWrapper(Promise.resolve());\n }\n\n this.config.loggerProvider.debug('function setSessionId: ', sessionId);\n\n const previousSessionId = this.getSessionId();\n const lastEventTime = this.config.lastEventTime;\n let lastEventId = this.config.lastEventId ?? -1;\n\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n this.config.pageCounter = 0;\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && lastEventTime) {\n promises.push(\n this.track(DEFAULT_SESSION_END_EVENT, undefined, {\n device_id: this.previousSessionDeviceId,\n event_id: ++lastEventId,\n session_id: previousSessionId,\n time: lastEventTime + 1,\n user_id: this.previousSessionUserId,\n }).promise,\n );\n }\n this.config.lastEventTime = this.config.sessionId;\n }\n\n // Fire web attribution event when enable webAttribution tracking\n // 1. has new campaign (call setSessionId from init function)\n // 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )\n const isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n promises.push(\n this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,\n session_id: this.config.sessionId,\n time: this.config.lastEventTime,\n }).promise,\n );\n }\n\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n return returnWrapper(Promise.all(promises));\n }\n\n extendSession() {\n if (!this.config) {\n this.q.push(this.extendSession.bind(this));\n return;\n }\n this.config.lastEventTime = Date.now();\n }\n\n setTransport(transport: TransportType) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n\n private trackCampaignEventIfNeeded(lastEventId?: number, promises?: Promise[]) {\n if (!this.webAttribution || !this.webAttribution.shouldTrackNewCampaign) {\n return false;\n }\n\n const campaignEvent = this.webAttribution.generateCampaignEvent(lastEventId);\n if (promises) {\n promises.push(this.track(campaignEvent).promise);\n } else {\n this.track(campaignEvent);\n }\n this.config.loggerProvider.log('Tracking attribution.');\n return true;\n }\n\n async process(event: Event) {\n const currentTime = Date.now();\n const isEventInNewSession = isNewSession(this.config.sessionTimeout, this.config.lastEventTime);\n const shouldSetSessionIdOnNewCampaign =\n this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();\n\n if (\n event.event_type !== DEFAULT_SESSION_START_EVENT &&\n event.event_type !== DEFAULT_SESSION_END_EVENT &&\n (!event.session_id || event.session_id === this.getSessionId())\n ) {\n if (isEventInNewSession || shouldSetSessionIdOnNewCampaign) {\n this.setSessionId(currentTime);\n if (shouldSetSessionIdOnNewCampaign) {\n this.config.loggerProvider.log('Created a new session for new campaign.');\n }\n } else if (!isEventInNewSession) {\n // Web attribution should be tracked during the middle of a session\n // if there has been a chance in the campaign information.\n this.trackCampaignEventIfNeeded();\n }\n }\n\n return super.process(event);\n }\n\n private logBrowserOptions(browserConfig: BrowserOptions & { apiKey: string }) {\n try {\n const browserConfigCopy = {\n ...browserConfig,\n apiKey: browserConfig.apiKey.substring(0, 10) + '********',\n };\n this.config.loggerProvider.debug('Initialized Amplitude with BrowserConfig:', JSON.stringify(browserConfigCopy));\n } catch (e) {\n /* istanbul ignore next */\n this.config.loggerProvider.error('Error logging browser config', e);\n }\n }\n}\n","export const OfflineDisabled = null;\n","import { debugWrapper, getClientLogConfig, getClientStates } from '@amplitude/analytics-core';\nimport { BrowserClient } from '@amplitude/analytics-types';\nimport { AmplitudeBrowser } from './browser-client';\n\nexport const createInstance = (): BrowserClient => {\n const client = new AmplitudeBrowser();\n return {\n init: debugWrapper(\n client.init.bind(client),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n client.add.bind(client),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n client.remove.bind(client),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n client.track.bind(client),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n client.logEvent.bind(client),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n client.identify.bind(client),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n client.groupIdentify.bind(client),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n client.setGroup.bind(client),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n client.revenue.bind(client),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n client.flush.bind(client),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n extendSession: debugWrapper(\n client.extendSession.bind(client),\n 'extendSession',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setTransport: debugWrapper(\n client.setTransport.bind(client),\n 'setTransport',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n","/* eslint-disable @typescript-eslint/unbound-method */\nimport client from './browser-client-factory';\nexport { createInstance } from './browser-client-factory';\nexport const {\n add,\n extendSession,\n flush,\n getDeviceId,\n getSessionId,\n getUserId,\n groupIdentify,\n identify,\n init,\n logEvent,\n remove,\n reset,\n revenue,\n setDeviceId,\n setGroup,\n setOptOut,\n setSessionId,\n setTransport,\n setUserId,\n track,\n} = client;\nexport { runQueuedFunctions } from './utils/snippet-helper';\nexport { Revenue, Identify } from '@amplitude/analytics-core';\nexport * as Types from '@amplitude/analytics-types';\n","const isLocalDevOrTestEnvironment = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test';\nconst getEnvVar = (name) => {\n if (isLocalDevOrTestEnvironment) {\n return process.env[name];\n }\n return window.RUNTIME_CONFIG?.[name];\n};\n\nconst AMPLITUDE_API_KEY = getEnvVar('REACT_APP_AMPLITUDE_API_KEY');\nconst DEPLOYMENT_ENV = getEnvVar('REACT_APP_DEPLOYMENT_ENV');\nconst HERE_MAPS_API_KEY = getEnvVar('REACT_APP_HERE_MAPS_API_KEY');\n\nconst commonConfig = {\n enrollmentBrokerApi: {\n KMI_PATH: '/public/api/v1/marketing/keepMeInformed',\n SEARCH_PROGRAMS_PATH: '/utility/programs/byPostcode/',\n ACCOUNT_INFO: '/dashboard/accountInfo',\n CUSTOMER_VEHICLE_PATH: '/customer/vehicles',\n ACCOUNT_DETAILS: '/customer/profile',\n SUPPORT_URL: '/customer/support',\n TERMS_AND_CONDITIONS: '/customer/ford/termsAndConditions/',\n UNENROLL_VEHICLE: '/api/v1/customer/unenroll/',\n UNENROLL_FEEDBACK: '/customer/feedback',\n SAVE_NEW_ENROLLMENT: '/api/v2/customer/enroll',\n CAN_ENROLL_1: '/customer/vehicle/',\n CAN_ENROLL_2: '/canEnroll'\n },\n HERE_MAPS_CONFIG: {\n geoCodeURL: 'https://geocode.search.hereapi.com',\n reverseGeoCodeURL: 'https://revgeocode.search.hereapi.com',\n autoSuggestURL: 'https://autosuggest.search.hereapi.com',\n credentials: {\n apikey: HERE_MAPS_API_KEY,\n useHTTPS: true,\n },\n defaultLocation: {\n latitude: 39,\n longitude: -94,\n },\n },\n AMPLITUDE_API_KEY,\n DATA_DOMAIN_SCRIPT: '474f6f1e-8e77-40c9-97fd-ab58b6e08de0',\n};\n\nconst prod = {\n ...commonConfig,\n production: true,\n enrollmentBrokerApi: {\n ...commonConfig.enrollmentBrokerApi,\n BASE_URL: 'https://api.pd01e.gcp.ford.com/smartgrid-enrollment-broker',\n },\n subdomain_part :{\n FRCA:'www-frca.',\n ENCA: 'www-enca.',\n ENUS: 'www.'\n },\n FMA: {\n APP_ID: '63FEC628-F06C-4B87-9418-5D2F835AEC57',\n AZURE_CID: '2c003691-a64c-49a3-b325-e7d68d867ee1',\n PROPERTY_SPECIFIC_CONTENT_KEY: 'grid_ford',\n REGION: 'na',\n LANG: 'en_us',\n FMA_URL: 'https://www.account.ford.com/'\n }\n};\n\nconst qa = {\n ...commonConfig,\n production: false,\n enrollmentBrokerApi: {\n ...commonConfig.enrollmentBrokerApi,\n BASE_URL: 'https://api.stg01e.gcp.ford.com/smartgrid-enrollment-broker',\n },\n subdomain_part :{\n FRCA:'wwwqa-frca.',\n ENCA: 'wwwqa-enca.',\n ENUS: 'wwwqa.'\n },\n FMA: {\n APP_ID: '6B2FD70A-9733-4486-B54A-79B1750C31AD',\n AZURE_CID: 'db8511c5-99d7-4762-9ab5-1274e287b919',\n PROPERTY_SPECIFIC_CONTENT_KEY: 'grid_ford',\n REGION: 'na',\n LANG: 'en_us',\n FMA_URL: 'https://wwwqa.account.ford.com/'\n }\n};\n\nconst dev = {\n ...commonConfig,\n production: false,\n enrollmentBrokerApi: {\n ...commonConfig.enrollmentBrokerApi,\n BASE_URL: 'https://api.qa01i.gcp.ford.com/smartgrid-enrollment-broker',\n },\n subdomain_part :{\n FRCA:'wwwdev-frca.',\n ENCA: 'wwwdev-enca.',\n ENUS: 'wwwdev.'\n },\n FMA: {\n APP_ID: '6B2FD70A-9733-4486-B54A-79B1750C31AD',\n AZURE_CID: 'db8511c5-99d7-4762-9ab5-1274e287b919',\n PROPERTY_SPECIFIC_CONTENT_KEY: 'grid_ford',\n REGION: 'na',\n LANG: 'en_us',\n FMA_URL: 'https://wwwqa.account.ford.com/'\n }\n};\n\nconst local = {\n ...commonConfig,\n production: false,\n enrollmentBrokerApi: {\n ...commonConfig.enrollmentBrokerApi,\n BASE_URL: 'http://localhost:8080', // adjust as needed\n },\n subdomain_part: {\n FRCA: 'www-frca.grid-local',\n ENCA: 'www-enca.grid-local',\n ENUS: 'www.grid-local'\n },\n FMA: {\n APP_ID: '6B2FD70A-9733-4486-B54A-79B1750C31AD',\n AZURE_CID: 'db8511c5-99d7-4762-9ab5-1274e287b919',\n PROPERTY_SPECIFIC_CONTENT_KEY: 'grid_ford',\n REGION: 'na',\n LANG: 'en_us',\n FMA_URL: 'https://wwwqa.account.ford.com/'\n }\n};\n\nconst environments = { prod, qa, dev, local };\n\nconst config = isLocalDevOrTestEnvironment\n ? local\n : (environments[DEPLOYMENT_ENV] || prod);\n\nexport default config;\n","import * as Amplitude from '@amplitude/analytics-browser';\nimport config from '../env/environment.js';\n\nexport const AMPLITUDE_EVENTS = {\n ENROLL_NOW: 'enroll button clicked',\n FIND_UTILITY: 'find your utility button clicked',\n UTILITY_CLOSE_BUTTON_CLICK: 'utility lookup close button clicked',\n SEARCH_UTILITIES_BY_ZIPCODE_BUTTON_CLICKED: 'Utility lookup Search button clicked',\n PROGRAM_TAB_CLICKED: 'program tab tapped',\n UTILITY_LOOKUP_ENROLL_CLICKED: 'utility lookup enroll button clicked',\n NOTIFY_ME_KMI: 'utility lookup notify me button clicked',\n FORD_LOGO_CLICKED: 'ford logo icon clicked',\n HOME_ICON_CLICKED: 'home icon clicked',\n ACCOUNTS_ICON_CLICKED: 'accounts icon clicked',\n VIDEO_PLAYED: 'embedded video played',\n FAQ_EXPANDED: 'faq accordion expanded',\n DASHBOARD_ENROLL_CLICKED: 'dashboard enroll button clicked',\n DASHBOARD_UNENROLL_CLICKED: 'dashboard unenroll button clicked',\n DASHBOARD_UNENROLL_CONFIRMED: 'dashboard unenroll confirmed',\n DASHBOARD_UNENROLL_FAILED: 'dashboard unenroll failed',\n DASHBOARD_UNENROLL_CANCELLED: 'dashboard unenroll cancelled',\n SUPPORT_EMAIL_CLICKED: 'support email clicked',\n SUPPORT_PHONE_CLICKED: 'support phone clicked',\n REPORT_ISSUE_CLICKED: 'report issue clicked',\n REPORT_ISSUE_SUBMITTED: 'report issue submitted',\n REPORT_ISSUE_SUBMISSION_FAILED: 'report issue submission failed',\n REPORT_ISSUE_CANCELLED: 'report issue cancelled',\n FORD_TNC_CLICKED: 'ford tnc clicked',\n UTILITY_TNC_CLICKED: 'utility tnc clicked',\n ENROLLMENT_UTILITY_TNC_CLICKED: 'enrollment form utility tnc clicked',\n ENROLLMENT_FORD_TNC_CLICKED: 'enrollment form ford tnc clicked',\n ENROLLMENT_FORM_SUBMIT_BUTTON_CLICKED: 'submit button clicked',\n ENROLLMENT_FORM_PROGRAM_SELECTED: 'program selected',\n ENROLLMENT_FORM_ACCOUNT_TOOL_TIP_CLICKED: 'tooltip viewed',\n ENROLLMENT_FORM_GOTO_DASHBOARD_CLICKED: 'enrollment form goto dashboard clicked',\n ENROLLMENT_COMPLETE_GOTO_DASHBOARD_CLICKED: 'enrollment complete goto dashboard clicked',\n SUPPORT_TWENTY_FOUR_SEVEN_CLICKED: 'support 24x7 clicked'\n};\n\nexport const initAmplitude = () => {\n Amplitude.init(config.AMPLITUDE_API_KEY, {\n defaultTracking: true\n });\n};\n\nexport const identifyUser = (VIN, email, userType) => {\n if (email) Amplitude.setUserId(email);\n else Amplitude.setUserId(VIN);\n Amplitude.setGroup('User Type', userType);\n};\n\nexport const trackEvent = (eventName, eventProps = { Timestamp: new Date().toISOString() }) => {\n Amplitude.track(eventName, eventProps);\n};\n","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}\nexport { _typeof as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Logger);\n this.init(concreteLogger, options);\n }\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread$6(_objectSpread$6({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n return Logger;\n}();\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.observers = {};\n }\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n var _super = _createSuper$3(ResourceStore);\n function ResourceStore(data) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _classCallCheck(this, ResourceStore);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n return _this;\n }\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$5(_objectSpread$5({}, pack), resources);\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$5(_objectSpread$5({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n var _super = _createSuper$2(Translator);\n function Translator(services) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Translator);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (_typeof(options) === 'object') options = _objectSpread$4({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$4(_objectSpread$4({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$4(_objectSpread$4({}, options), {\n interpolation: _objectSpread$4(_objectSpread$4({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n return null;\n }\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4({\n i18nResolved: resolved\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n var possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this.formatLanguageCode(code);\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this.getLanguagePartFromCode(code);\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, PluralResolver);\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Interpolator);\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\n }\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread$3({}, options);\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Formatter);\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng) {\n var _this = this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var formats = _format.split(this.formatSeparator);\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n if (_this.formats[formatName]) {\n var formatted = mem;\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n return mem;\n }, value);\n return result;\n }\n }]);\n return Formatter;\n}();\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n var _super = _createSuper$1(Connector);\n function Connector(backend, store, services) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _classCallCheck(this, Connector);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n this.readingCalls++;\n var resolver = function resolver(err, data) {\n _this3.readingCalls--;\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n var fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {\n isUpdate: isUpdate\n });\n var fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n var r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n var _super = _createSuper(I18n);\n function I18n() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _classCallCheck(this, I18n);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n var formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n return _this2;\n };\n });\n var deferred = defer();\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n _this2.emit('initialized', _this2.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n _this4.setResolvedLanguage(l);\n };\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n _this4.translator.changeLanguage(l);\n _this4.isLanguageChangingTo = undefined;\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n return _this5.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n var lng = options.lng || this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n var deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n return I18n;\n}(EventEmitter);\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar dir = instance.dir;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import lookup from 'void-elements'\nconst attrRE = /\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g\n\nexport default function stringify(tag) {\n const res = {\n type: 'tag',\n name: '',\n voidElement: false,\n attrs: {},\n children: [],\n }\n\n const tagMatch = tag.match(/<\\/?([^\\s]+?)[/\\s>]/)\n if (tagMatch) {\n res.name = tagMatch[1]\n if (\n lookup[tagMatch[1]] ||\n tag.charAt(tag.length - 2) === '/'\n ) {\n res.voidElement = true\n }\n\n // handle comment tag\n if (res.name.startsWith('!--')) {\n const endIndex = tag.indexOf('-->')\n return {\n type: 'comment',\n comment: endIndex !== -1 ? tag.slice(4, endIndex) : '',\n }\n }\n }\n\n const reg = new RegExp(attrRE)\n let result = null\n for (;;) {\n result = reg.exec(tag)\n\n if (result === null) {\n break\n }\n\n if (!result[0].trim()) {\n continue\n }\n\n if (result[1]) {\n const attr = result[1].trim()\n let arr = [attr, '']\n\n if (attr.indexOf('=') > -1) {\n arr = attr.split('=')\n }\n\n res.attrs[arr[0]] = arr[1]\n reg.lastIndex--\n } else if (result[2]) {\n res.attrs[result[2]] = result[3].trim().substring(1, result[3].length - 1)\n }\n }\n\n return res\n}\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith(''\n return buff\n }\n}\n\nexport default function (doc) {\n return doc.reduce(function (token, rootEl) {\n return token + stringify('', rootEl)\n }, '')\n}\n","import parse from './parse'\nimport stringify from './stringify'\n\nexport default {\n parse,\n stringify,\n}\n","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\n\nvar loadedClb = function loadedClb(i18n, cb) {\n return function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n };\n};\n\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { unescape } from './unescape.js';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}","var i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"format\"],\n _excluded2 = [\"children\", \"count\", \"parent\", \"i18nKey\", \"context\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { isValidElement, cloneElement, createElement } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\n\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n var base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node.props ? node.props.children : node.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"\");\n }\n } else if (child === null) {\n warn(\"Trans: the passed in value is invalid - seems you passed in a null child.\");\n } else if (_typeof(child) === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, _excluded);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var ast = HTML.parse(\"<0>\".concat(targetString, \"\"));\n\n var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) child.children = inner;\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), isVoid ? undefined : inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;\n var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n var _content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _content));\n } else {\n mem.push(_content);\n }\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n context = _ref.context,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded2);\n\n var i18n = i18nFromProps || getI18n();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n if (context) tOptions.context = context;\n\n var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? tOptions.interpolation : {\n interpolation: _objectSpread(_objectSpread({}, tOptions.interpolation), {}, {\n prefix: '#$?',\n suffix: '?$#'\n })\n };\n\n var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {\n count: count\n }, values), interpolationOverride), {}, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport var I18nContext = createContext();\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"children\", \"count\", \"parent\", \"i18nKey\", \"context\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n context = _ref.context,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n var t = tFromProps || i18n && i18n.t.bind(i18n);\n return TransWithoutContext(_objectSpread({\n children: children,\n count: count,\n parent: parent,\n i18nKey: i18nKey,\n context: context,\n tOptions: tOptions,\n values: values,\n defaults: defaults,\n components: components,\n ns: ns || t && t.ns || defaultNSFromContext || i18n && i18n.options && i18n.options.defaultNS,\n i18n: i18n,\n t: tFromProps,\n shouldUnescape: shouldUnescape\n }, additionalProps));\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k, optsOrDefaultValue) {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && _typeof(optsOrDefaultValue) === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n if (props.lng) joinedNS = \"\".concat(props.lng).concat(joinedNS);\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n } else {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, function () {\n return resolve();\n });\n } else {\n loadNamespaces(i18n, namespaces, function () {\n return resolve();\n });\n }\n });\n}","export { Trans } from './Trans.js';\nexport { Trans as TransWithoutContext } from './TransWithoutContext.js';\nexport { useTranslation } from './useTranslation.js';\nexport { withTranslation } from './withTranslation.js';\nexport { Translation } from './Translation.js';\nexport { I18nextProvider } from './I18nextProvider.js';\nexport { withSSR } from './withSSR.js';\nexport { useSSR } from './useSSR.js';\nexport { initReactI18next } from './initReactI18next.js';\nexport { setDefaults, getDefaults } from './defaults.js';\nexport { setI18n, getI18n } from './i18nInstance.js';\nexport { I18nContext, composeInitialProps, getInitialProps } from './context.js';\nexport var date = function date() {\n return '';\n};\nexport var time = function time() {\n return '';\n};\nexport var number = function number() {\n return '';\n};\nexport var select = function select() {\n return '';\n};\nexport var plural = function plural() {\n return '';\n};\nexport var selectOrdinal = function selectOrdinal() {\n return '';\n};","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += \"; Domain=\".concat(opt.domain);\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += \"; Path=\".concat(opt.path);\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n var query = search.substring(1);\n var params = query.split('&');\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[lookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: function convertDetectedLanguage(l) {\n return l;\n }\n };\n}\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Browser);\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services || {\n languageUtils: {}\n }; // this way the language detector can be used without i18next\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = function (l) {\n return l.replace('-', '_');\n };\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(function (d) {\n return _this.options.convertDetectedLanguage(d);\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n return Browser;\n}();\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback, altFetch) {\n var resolver = function resolver(response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n };\n if (altFetch) {\n var altResponse = altFetch(url, fetchOptions);\n if (altResponse instanceof Promise) {\n altResponse.then(resolver).catch(callback);\n return;\n }\n }\n if (typeof fetch === 'function') {\n fetch(url, fetchOptions).then(resolver).catch(callback);\n } else {\n fetchApi(url, fetchOptions).then(resolver).catch(callback);\n }\n};\nvar omitFetchOptions = false;\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = _objectSpread({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"i18next-http-backend (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = _objectSpread({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n var altFetch = typeof options.alternateFetch === 'function' && options.alternateFetch.length >= 1 ? options.alternateFetch : undefined;\n try {\n fetchIt(url, fetchOptions, callback, altFetch);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback, altFetch);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi && url.indexOf('file:') !== 0) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n parseLoadPayload: function parseLoadPayload(languages, namespaces) {\n return undefined;\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n return _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options || {}), options);\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n var timer = setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n if (_typeof(timer) === 'object' && typeof timer.unref === 'function') timer.unref();\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n var lng = typeof languages === 'string' ? [languages] : languages;\n var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;\n var payload = this.options.parseLoadPayload(lng, ns);\n this.options.request(this.options, url, payload, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (typeof callback === 'function') callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n}();\nBackend.type = 'backend';\nexport default Backend;","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport Backend from 'i18next-http-backend';\nimport environment from \"./env/environment\";\n\nconst { version } = require('../package.json');\ni18n\n .use(Backend)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n backend: {\n loadPath: function (language, namespace) {\n const base = process.env.PUBLIC_URL + '/locales';\n return `${base}/${language}/${namespace}.json?v=${version}`;\n },\n },\n returnEmptyString: false,\n debug: !environment.production,\n fallbackLng: 'en-US',\n });\n\nexport default i18n;","////////////////////////////////////////////////////////////////////////////////\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 // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\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: unknown;\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 // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\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\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\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\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\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 actionStatus?: number;\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\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\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 | boolean;\n action?: ActionFunction | boolean;\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: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(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 return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\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 // 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 let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\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 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 allowPartial = false\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 let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\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] = (value || \"\").replace(/%2F/g, \"/\");\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\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\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\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 === pathMatches.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 class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\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\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"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 AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\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 AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\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 matchRoutesImpl,\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 * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): 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 v7_skipActionErrorRevalidation: 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 unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\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?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\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\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\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\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 let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\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 v7_skipActionErrorRevalidation: 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 // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = 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 && !patchRoutesOnNavigationImpl) {\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 // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\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 (!initialMatches.some((m) => m.route.loader)) {\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 let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\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: Set = new Set();\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 // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\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 // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\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 }\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 let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\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 pendingActionResult: PendingActionResult | 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 pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: 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 actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\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: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\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 isFogOfWar: boolean,\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 if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\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 let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\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 isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\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 // 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 it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\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 { 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([...loaderResults, ...fetcherResults]);\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(request, redirect.result, {\n replace,\n });\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 pendingActionResult,\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 // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\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 matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\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 return new Map(state.fetchers);\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 let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\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 fogOfWar.active,\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 fogOfWar.active,\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 isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.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 true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\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(fetchRequest, 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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\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 { 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([...loaderResults, ...fetcherResults]);\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(revalidationRequest, 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 isFogOfWar: boolean,\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\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(fetchRequest, 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 request: Request,\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.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(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(location);\n } else {\n routerWindow.location.assign(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 || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : 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.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: 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 // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\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 let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\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 {\n loaderResults,\n fetcherResults,\n };\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.add(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 cancelledFetcherLoads.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 handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\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 checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\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 patchRoutes,\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 * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\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 * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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 unstable_dataStrategy || null,\n false,\n match\n );\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\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 unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\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 for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\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.response.status,\n headers: {\n Location: result.response.headers.get(\"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 // 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\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 = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\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 : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\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 : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\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 pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\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 // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\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 skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\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 =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\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 (typeof route.loader !== \"function\" || 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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\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.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : 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 * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\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\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\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 [value] = 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 !== undefined) {\n throw handlerError;\n }\n result = value!;\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 runs 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, result: 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.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 // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type } = handlerResult;\n\n if (isResponse(result)) {\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 (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\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 (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\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 if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\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 pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\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 let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\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 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 !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\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 // 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 } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\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 !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[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 pendingActionResult: PendingActionResult | 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 pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\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\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\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 message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\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 (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else 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 isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\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 isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\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 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//#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_decodePath as decodePath,\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, decodePath(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\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\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) {\n return null;\n }\n\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 if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\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] !== undefined\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